Skip to content

Create Payout Order

HTTP Request

API EndPoint

POST baseUrl + /api/payOut

Request Parameters

ParameterRequiredTypeDescriptionExample
accountNameYstring(32)Payee name limited to 64 charactersJohn
accountNoYstring(32)Payee bank account number
accountTypeYintAccount typePlease refer to [payout account type]((appendix.md#payout-account-type)
currencyYstring(32)Currency codeINR
amountYdecimal(20)Amount[10,10000]
ifscCodeYstring(32)Payee account number ifsc, 4 letters + '0' + 6 digits or lettersExample: SBIN0014148
mchOrderNoYstring(32)Merchant order number1386556787811426305
notifyUrlYString(250)Callback addresshttps://merchant.com/webhooks
nonceStrYstring(32)Random number1863484722378907648
phoneYstring(32)Payee's mobile number, the real mobile number of the beneficiary+52xxxxxxx
remarkYstring(32)Remark (Please use English characters or Spanish without accents)remark
idTypeNstring(32)[ID Type of the beneficiary](appendix.md#ID Type of the beneficiary)1
idCardNstring(32)Payee's ID number, which must be the account opening ID number corresponding to the beneficiary's accountUser's real ID number
emailNstring(64)The recipient's email address must be a valid email address and cannot be repeated for different usersexample@maildomain.com

Request Example

bash
curl -L 'baseUrl/api/payOut' \
-H 'MerchantId: 1002001' \
-H 'Sign: A6FC73F7D22EC8B4A064C8FFCC592CBF' \
-H 'Content-Type: application/json' \
-d '{"nonceStr":"test001","accountName":"Test","accountNo":"10000000003","accountType":"BANK_CARD_ACCOUNT","currency":"INR","amount":2704.00,"mchOrderNo":"order000000001","notifyUrl":"https://test.com/cashy/payOut/callback","idType":"ID_CARD","idCard":"872966212003","phone":"1340000003","remark":"PayOut","ifscCode":"ZSBL0000311"}'

Response Parameters

ParameterTypeDescription
merchantIdintMerchant Id
mchOrderNostring(32)Merchant order number
orderNostring(32)Platform order number
amountdecimal(20,2)Amount
feedecimal(20,2)fee
orderStatusstringOrder Statuspls refer toPayout Order Status Enum

Response Example

json
{
  "msg": "SUCCESS",
  "code": 200,
  "data": {
    "merchantId": "1002001",
    "mchOrderNo": "order000000001",
    "orderNo": "PAYOUT8232147000000000001",
    "amount": 100,
    "fee": 0,
    "orderStatus": "PROCESSING"
  }
}
json
{
  "msg": "System_error",
  "code": 500
}

Query Payout Order

API EndPoint

POST baseUrl + /api/payOutQuery

Request Parameters

ParameterRequiredTypeExampleDescription
mchOrderNoNstring(32)1863484722378907648Merchant order number
orderNoNstring(32)PAYOUT8551739282639106048Platform order number
nonceStrYstring(32)9459931608Random string

TIP

We recommend using orderNo (platform order number) first. At least one of the platform order number and the merchant order number must be passed.

Request Example

bash
curl -L 'baseUrl/api/payOutQuery' \
-H 'MerchantId: 1002001' \
-H 'Sign: A6FC73F7D22EC8B4A064C8FFCC592CBF' \
-H 'Content-Type: application/json' \
-d '{"mchOrderNo":"1863484722378907648","nonceStr":"9459931608","orderNo":"PAYOUT8551739282639106048"}'

Response Parameters

ParameterTypeDescription
merchantIdintMerchant id
mchOrderNostring(32)Merchant order number
orderNostring(32)Platform order number
channelOrderNostring(32)Channel order number
amountdecimal(20,2)Amount
feedecimal(20,2)Fee
orderStatusstring(32)Payout Order Status Enum
resultDescstring(64)Order Status Description
completionTimeyyyy-MM-dd HH:mm:ssCompletion time

Response Example

json
{
  "msg": "SUCCESS",
  "code": 200,
  "data": {
    "merchantId": "1002001",
    "mchOrderNo": "1863484722378907648",
    "orderNo": "PAYOUT8551739282639106048",
    "amount": "60000",
    "fee": "5150",
    "orderStatus": "PAYING",
    "completionTime": null,
    "resultDesc": null
  }
}

Async Webhook Notification

The webhooks url is provided by the merchant

POST Merchant NotifyUrl

Webhook Request Parameters

ParameterTypeDescription
merchantIdintMerchant id
mchOrderNostring(32)Merchant order number
orderNostring(32)Platform order number
channelOrderNostring(32)Channel order number
amountdecimal(20,2)Amount
feedecimal(20,4)Fee
orderStatusstring(32)Payout Order Status Enum
resultDescstring(64)Order Status Description
completionTimeyyyy-MM-dd HH:mm:ssCompletion time

Webhook Request Example

bash
curl -L 'merchant.com/webhools/payout' \
-H 'MerchantId: 1002001' \
-H 'Sign: A6FC73F7D22EC8B4A064C8FFCC592CBF' \
-H 'Content-Type: application/json' \
-d '{"amount":60000.00,"completionTime":"2024-12-02 08:42:54","fee":5150.0000,"mchOrderNo":"1863484722378907648","merchantId":"3002124","nonceStr":"1733103774518","orderNo":"PAYOUT8551739282639106048","orderStatus":"SUCCESS","payType":"11"}'
json
{
  "amount": 60000.0,
  "completionTime": "2024-12-02 08:42:54",
  "fee": 5150.0,
  "mchOrderNo": "1863484722378907648",
  "merchantId": "1002001",
  "nonceStr": "1733103774518",
  "orderNo": "PAYOUT8551739282639106048",
  "orderStatus": "SUCCESS",
  "payType": "11"
}
json
{
  "amount": 60000.0,
  "completionTime": "2024-12-02 08:42:54",
  "fee": 5150.0,
  "mchOrderNo": "1863484722378907648",
  "merchantId": "1002001",
  "nonceStr": "1733103774518",
  "orderNo": "PAYOUT8551739282639106048",
  "orderStatus": "FAIL",
  "resultDesc": "ACCOUNT NOT EXITS",
  "payType": "11"
}

Order result reversal processing

Please note that in rare cases, a payment order will have a result reversal notification. Your callback processing logic should consider the processing of success->failure and failure->success status.

Webhook Response Example

json
{
  "status": "SUCCESS"
}

TIP

When the webhooks response HTTP status code is 200, 301 or 302, we believe that the merchant has successfully received and processed the callback. For other statuses, we believe that the merchant has failed to process the callback.

After the webhooks fails, it will be retried in 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 minutes, and the webhooks will be retried 10 times in total

Released under the MIT License.