Payout API
Payout Request Table
| Field Name | Data Description | Type | Min | Max | Example | Required |
|---|---|---|---|---|---|---|
| account | Beneficiary Account | CH | 1 | – | abc123 | yes |
| amount | Float data type. Decimals are ignored: 100.99 is paid out as 100. Accepted as a number or a numeric string, e.g. 500 or "500". | NU | 1 | – | 50000.00 | yes |
| currency | Alphabetic currency code, e.g. INR | CH | 3 | 3 | PKR | yes |
| callbackUrl | Url where payment callback will be sent | URL | – | – | https://example.com/callback | yes |
| country | ISO 3166-1-alpha-2 | CH | 2 | 2 | PK | yes |
| Customer’s email | AN | 6 | 120 | name@email.com | yes | |
| data | For additional parameters for payout | OBJ | – | – | data{ "name":"John Doe" } | yes |
| hash | Payout payload signature. Contact your account manager to enable this parameter. When enabled, a payout without it is rejected. More | AN | 64 | 64 | F74723256…..E9EF2 | yes (if enabled) |
| method | Methods supported. | CH | – | – | BANK_TRANSFER | yes |
| orderId | Merchant Order ID | AN | 1 | 50 | abc123456 | yes |
| ip | Customer’s IP | IP | – | – | 192.0.2.1 | yes |
A payout request with an orderId that has already been used is rejected.
Generic Payout Request Body & Response Sample
Request Body for Payouts
{
"account": "5466547856436481364252",
"amount": "10000",
"country": "AR",
"currency": "ARS",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "BANK_TRANSFER",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {}
}{
"account": "5466547856436481364252",
"amount": "10000",
"country": "AR",
"currency": "ARS",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "MERCADO_PAGO",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"cuit": "76576574758"
}
}{
"account": "847536845",
"amount": "20",
"country": "AU",
"currency": "AUD",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "BANK_TRANSFER",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"bsb": "012002",
"city": "Adelaide",
"dob": "1970-12-30",
"lastName": "Cash",
"mobileNumber": "0456785678",
"name": "Johny",
"postalCode": "5000",
"state": "SA",
"street": "122 Grenfell St"
}
}{
"account": "0412345678",
"amount": "100",
"country": "AU",
"currency": "AUD",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "PAY_ID",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"accountName": "Johny Cash"
}
}{
"account": "984793423",
"amount": "100",
"country": "AZ",
"currency": "AZN",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "BANK_TRANSFER",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"accountName": "Johny Cash"
}
}{
"account": "892375982",
"amount": "500",
"country": "BD",
"currency": "BDT",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "BKASH",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"accountName": "Johnny Cash",
"mobileNumber": "01888123456"
}
}{
"account": "01345634562",
"amount": "500",
"country": "BD",
"currency": "BDT",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "NAGAD",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"accountName": "Johnny Cash",
"mobileNumber": "01888123456"
}
}{
"account": "8173586239",
"amount": "500",
"country": "BD",
"currency": "BDT",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "ROCKET",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"accountName": "Johnny Cash",
"mobileNumber": "01888123456"
}
}{
"account": "63640348252",
"amount": "100",
"country": "BR",
"currency": "BRL",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "PIX",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"accountName": "Johny Cash"
}
}{
"account": "8173586239",
"amount": "100",
"country": "GH",
"currency": "GHS",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "MOBILE_MONEY",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"accountName": "Johny Cash"
}
}{
"account": "8173586239",
"amount": "50000",
"country": "ID",
"currency": "IDR",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "BANK_TRANSFER",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"accountName": "Johny Cash",
"bankCode": "BCA"
}
}{
"account": "922010014620362",
"amount": "1000",
"country": "IN",
"currency": "INR",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "BANK_TRANSFER",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"accountName": "Johny Cash",
"ifsc": "BSBN0001234",
"pin": "user_1"
}
}{
"account": "8173586239",
"amount": "1000",
"country": "JP",
"currency": "JPY",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "BANK_TRANSFER",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"accountName": "Johny Cash",
"bankBranch": "4153",
"bankCode": "AOMB"
}
}{
"account": "8173586239",
"amount": "100",
"country": "KE",
"currency": "KES",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "MOBILE_MONEY",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"accountName": "Johny Cash"
}
}{
"account": "8173586239",
"amount": "10000",
"country": "KR",
"currency": "KRW",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "BANK_TRANSFER",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"accountName": "Johny Cash",
"bankCode": "BOKOR"
}
}{
"account": "3021234567890",
"amount": "10000",
"country": "KR",
"currency": "KRW",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "VIRTUAL_ACCOUNT",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"accountName": "Johny Cash",
"bankCode": "KNMB"
}
}{
"account": "8173586239",
"amount": "100",
"country": "MY",
"currency": "MYR",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "BANK_TRANSFER",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"accountName": "Johny Cash",
"bankBranch": "BB",
"bankCode": "BSBN"
}
}{
"account": "8173586239",
"amount": "100",
"country": "NG",
"currency": "NGN",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "BANK_TRANSFER",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"accountName": "Johny Cash"
}
}{
"account": "8173586239",
"amount": "100",
"country": "PH",
"currency": "PHP",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "BANK_TRANSFER",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"accountName": "Johny Cash",
"bankCode": "AOMB"
}
}{
"account": "8173586239",
"amount": "100",
"country": "PH",
"currency": "PHP",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "GOTYME",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"accountName": "John Amigo"
}
}{
"account": "8173586239",
"amount": "100",
"country": "PH",
"currency": "PHP",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "GRABPAY",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"accountName": "John Amigo"
}
}{
"account": "8173586239",
"amount": "100",
"country": "PH",
"currency": "PHP",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "G_CASH",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"accountName": "Johny Cash"
}
}{
"account": "8173586239",
"amount": "100",
"country": "PH",
"currency": "PHP",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "MAYA",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"accountName": "Johny Cash"
}
}{
"account": "8173586239",
"amount": "100",
"country": "PK",
"currency": "PKR",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "EASY_PAISA",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"mobileNumber": "9243134334"
}
}{
"account": "8173586239",
"amount": "100",
"country": "PK",
"currency": "PKR",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "JAZZ_CASH",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"mobileNumber": "9243134334"
}
}{
"account": "8173586239",
"amount": "100",
"country": "SG",
"currency": "SGD",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "BANK_TRANSFER",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"accountName": "Johny Cash",
"bankCode": "DBS"
}
}{
"account": "8173586239",
"amount": "100",
"country": "SG",
"currency": "SGD",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "PAYNOW",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"accountName": "Johny Cash"
}
}{
"account": "8173586239",
"amount": "10000",
"country": "TH",
"currency": "THB",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "BANK_TRANSFER",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"accountName": "Johny Cash",
"bankCode": "BCA"
}
}{
"account": "8173586239",
"amount": "100",
"country": "TR",
"currency": "TRY",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "VIP_HAVALE",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"dob": "01-01-1970",
"accountName": "Johny Cash",
"mobileNumber": "9012345678",
"tin": "12345678911",
"tinDate": "01-01-1970",
"bankCode": "ISBKSI"
}
}{
"account": "8173586239",
"amount": "100",
"country": "VN",
"currency": "VND",
"email": "email@test.com",
"ip": "192.0.2.1",
"method": "BANK_TRANSFER",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"accountName": "Johny Cash",
"bankBranch": "BB",
"bankCode": "BSBN"
}
}Generic Payout Response Sample
{
"status": "PENDING",
"message": "Transaction is being processed",
"id": "912z-1zs4-acvb-1bre3",
"orderId": "abc123456"
}Payout Request Optional Data Field Table:
The payout request “data” field contains possible additional parameters, which are provider dependent. If the parameters are missing, the required values will be asked (via web form) from the customer.
| Field Name | Data Description | Type | Min | Max | Example |
|---|---|---|---|---|---|
| ifsc | Beneficiary ifsc number | CH | 11 | 11 | BSBN0001234 |
| accountName | Beneficiary name | CH | 1 | – | Johny Cash |
| bankCode | Beneficiary bank code | CH | 1 | – | BSBN0001111 |
| bankName | Beneficiary bank | CH | 1 | – | BSBN Bank |
| bankBranch | Beneficiary bank branch | CH | 1 | – | BB |
| bankAddress | Beneficiary bank address | CH | 1 | – | BA |
| bankCity | Beneficiary bank city | CH | 1 | – | Bank Area |
| bankState | Beneficiary bank state | CH | 1 | – | Bank Province |
| bsb | Australian beneficiary bank code | NU | 6 | 6 | 123456 |
| dob | Customer’s Date of Birth | AN | 10 | 10 | 1990-12-21 |
| name | Beneficiary first name | CH | 1 | – | Johny |
| lastName | Beneficiary last name | CH | 1 | – | Cash |
| street | Beneficiary street address | CH | 1 | – | 122 Grenfell St |
| city | Beneficiary city | CH | 1 | – | Adelaide |
| state | Beneficiary state | CH | 1 | – | SA |
| postalCode | Beneficiary postal code | CH | 1 | – | 5000 |
| mobileNumber | Beneficiary mobile number | CH | 1 | – | 5467756764 |
| pin | Merchant’s own customer identifier, e.g. a user ID | CH | 1 | – | user_1 |
| cuit | Beneficiary CUIT (Argentine tax identification number) | CH | 1 | – | 76576574758 |
| tin | Tax Identification Number | NU | 9 | 11 | 12345678910 |
| tinDate | Tax Identification Number Date | AN | 10 | 10 | 2021-12-21 |
Payout API Response Fields
| Description | Format | Explanation |
|---|---|---|
| id | String | System Transaction ID |
| message | String | Payment response message |
| status | String | Transaction status |
| orderId | String | Merchant Order ID |
Payout Request Hash Generation
To ensure the integrity and security of payout requests, the hash value must be generated using the following steps:
- Concatenation of Parameters:
– All parameters from the payload, including both inner and outer object parameters, must be concatenated into a single string.
– Parameters must be sorted alphabetically by their names.
– Each parameter name and value should be combined using an ‘=‘ sign, and each pair should be separated by an ‘&‘ sign.
– The callbackUrl and hash parameters should be excluded from the hash calculation.
– The format of the amount parameter value must be as follows: xx.xx. (Example, 100.00) - Exclusion of Empty Parameters:
– Parameters that have empty or null values must be excluded from the concatenated string. - Appending the Secret Key:
– A unique secret key, provided to the merchant, must be securely stored and never exposed to unauthorized parties.
– This secret key must be prepended to the beginning of the generated string.
– Ensure there is an ‘&‘ sign between the secret key and the concatenated parameters string. - Hashing the Result:
– The final concatenated string must be hashed using the SHA-256 algorithm.
– The resulting hash value will then be compared to the hash value received in the payout request for validation.
Example:
{
"account": "abc123",
"amount": "100",
"country": "IN",
"currency": "INR",
"email": "email@test.com",
"ip": "192.0.2.1",
"midId": "123",
"orderId": "abc123456",
"callbackUrl": "https://example.com/callback",
"data": {
"accountName": "JohnyCash",
"bankCity": "",
"bankCode": "BSBN",
"city": null,
"ifsc": "BSBN0001234",
"mobileNumber": "9123456789"
}
}Step 1: Concatenate Parameters according to the rules. After sorting them alphabetically and excluding certain parameters, the resulting string is as follows:
account=abc123&accountName=JohnyCash&amount=100.00&bankCode=BSBN&country=IN¤cy=INR&email=email@test.com&ifsc=BSBN0001234&ip=192.0.2.1&midId=123&mobileNumber=9123456789&orderId=abc123456Step 2: Append the secret key:
mySecretUniqueKey&account=abc123&accountName=JohnyCash&amount=100.00&bankCode=BSBN&country=IN¤cy=INR&email=email@test.com&ifsc=BSBN0001234&ip=192.0.2.1&midId=123&mobileNumber=9123456789&orderId=abc123456Step 3: Hash the resulting string using SHA-256 algorithm:
AC5654FE3128E76AAF2EC79701DA170BFBC77F8AFBB8F9F060E629A62E1B6B0FStep 4: Send it as a hash parameter value in a payout request.
Payout Statuses
| TX Type | Event | Status |
|---|---|---|
| Received: | Temporary | PENDING |
| Approved: | Final | SUCCESS |
| Failed: | Final | REJECTED, FAIL |
Payout Postbacks
Each postback is a general HTTP POST request with a retry mechanism of maximum 5 attempts with a retry possibility every 3 minutes.
We only consume one unique orderId per merchant. After that all transactions with the same ID will be rejected.
Payout Postback Table
| Title | Format | Explanation |
|---|---|---|
| id | String | System Transaction ID |
| orderId | String | Merchant Order ID |
| status | String | Transaction status |
| hash | String | Data signature for encryption |
Payout Postback for Rejected payouts
Opt-in to get payout ‘message’ in postbacks.
It is possible to opt-in to get more detailed information about rejected payouts. Contact our tech support for assistance. These settings will be default for new apps after 9th September 2025.
| Title | Format | Explanation |
|---|---|---|
| message | String | Missing some fields (could be one or many fields) [Mid 4 rejected due to {Error:{mobile} is missing}] [Mid 4 rejected due to {Error:{accountname, bankcode, ifsc} is missing}] Balance [Mid 4 rejected due to {Insufficient Payout Balance}] [Mid 4 rejected due to {Min amount is 100.0}] [Mid 4 rejected due to {Max amount is 100.0}] Rejected by the bank [Mid 4 rejected due to {Rejected by the Bank}] Rejected by multiple MIDs “[Mid 4 rejected due to {Error:{accountname} is missing}] [Mid 6 rejected due to {Insufficient Payout Balance}] [Mid 9 rejected due to {Rejected by the Bank}]” |
Payout Postback Sample
header name ‘apikey’, header value <merchant-apikey>
{
"id": "912z-1zs4-acvb-1bre3",
"orderId": "merchtx12345",
"status": "SUCCESS",
"hash": "<system-generated-hash>",
"message": "<for-rejected-payouts-only>"
}Data Signature of Payout
| Encryption Variables | Values and explanations |
|---|---|
| apikey | <confidential> |
| Secret key | <confidential> |
| Encryption format | Concatenated and signed by using SHA-256 algorithm |
| Parameter order | The order must be in exact order as per below sample |
| Parameter example | secretKey=xxx&id=xx&orderId=xx&status=xx |
| Result string | Will be signed using SHA-256 |