Create a withdrawal order to send funds to a customer’s bank account
^[A-Za-z0-9 ]{1,200}$https://yoursite.com/api/webhooks/withdrawal?payout_id=12345Example (Static): Configure https://yoursite.com/api/webhooks/payout in Merchant Portal and omit this parameterSee the Initiate Checkout documentation for complete webhook payload structure and implementation examples.a1b2c3d4e5f6789012345678abcdef12Learn how to generate signatures: See the complete Signature Generation Guide for step-by-step instructions and implementation examples in C#, Node.js, Python, PHP, and Java.^\d{13}$352010834567803XXXXXXXXX or +923XXXXXXXXXPK36SCBL0000001123456702PKR, USD, EUR^[A-Za-z0-9 ]{1,200}$amount - Withdrawal amountcurrency - Payment currency (3 characters)description - Transaction descriptioncustomerRef - Customer information objectcustomerRef.bankAccountNumber - Bank account or IBANcustomerRef.bankName - Bank namecustomerRef.accountTitle - Account holder nameorderRef - Order information objectorderRef.orderRef - Unique order referencesignature - Request signature for security verificationintentType - Payment intent typeautoProcessPayout - Auto-process flag (default: false)metadataJson - Additional metadatacallbackUrl - Dynamic callback URL for post-payout redirectcustomerRef.name - Customer full namecustomerRef.email - Customer emailcustomerRef.cnic - Customer CNICcustomerRef.phone - Customer phoneorderRef.discount - Discount informationorderRef.tax - Tax informationautoProcessPayout is set to true, the system will automatically initiate the bank transfer without requiring manual approval. This is useful for:
false (default), the withdrawal will be created but require manual approval before processing.
autoProcessPayout: false for high-value transactions that need reviewpayoutInfo.status to track withdrawal completionpaymentIntentId for future reference and reconciliationmetadataJson to store additional transaction contextestimatedCompletionTime field provides the expected completion timestamp.
| Error | Cause | Solution |
|---|---|---|
| Invalid bank account | Incorrect IBAN or account number format | Verify account number format (10-24 characters) |
| Bank not found | Invalid or unsupported bank name | Use exact bank name from supported list |
| Account mismatch | Account title doesn’t match bank records | Verify account holder name |
| Insufficient balance | Not enough funds in merchant wallet | Top up wallet or reduce withdrawal amount |
| Validation error | Missing required fields | Ensure all required fields are provided |
autoProcessPayout: false for manual review of high-value transactionsTest Usertest@example.com (optional)3520108345678 (optional)03123456789 (optional)PK36SCBL0000001123456702Standard Chartered BankTest User