Pay-Out · Mexico
About 3 min
Request
The Pay-Out API initiates disbursement transactions. This page is for Mexico (country code mx). For SPEI pay-out, bankCode is the participating institution numeric code, and bankCard is usually the beneficiary CLABE (18 digits) or another account identifier. Full code/name list: Regional Payment Guide — Mexico.
Request URL
Domain: Prefer unified host
openapi.toppayment.com(path unchanged); legacy country domain (e.g.global-mx-openapi.toppayment.com) remains available.
| Environment | URL |
|---|---|
| Sandbox | https://openapi.toppayment.com/sandbox/mx/disbursement/cash |
| Production | https://openapi.toppayment.com/mx/disbursement/cash |
bankCode / bankName (SPEI institutions) — Regional Payment Guide — Mexico.
Request Header
| Field | Required | Type | Description |
|---|---|---|---|
| Content-Type | M | String | application/json |
Request Body
| Field | Required | Type | Description |
|---|---|---|---|
| mchNo | M | String(32) | Merchant number |
| orderNum | M | String(50) | Merchant order number |
| amount | M | Number(32,8) | Amount Mexico: positive, integer or at most 2 decimal places, not all zeros, no three or more decimal places. |
| bankCode | M | String(32) | SPEI institution numeric code (Mexico) — Regional Payment Guide — Mexico |
| bankCard | M | String(50) | Beneficiary account identifier Often CLABE (18 digits); exact format per gateway and bank |
| accountName | M | String(50) | Account / beneficiary name |
| description | O | String(255) | Description |
| feeType | M | Number | Fee type 0: Deducted from order amount (net = amount − fee) 1: Fee separate (net = amount) |
| downNotifyUrl | M | String(164) | Callback URL |
| timestamp | M | String | Timestamp (13 digits) |
| sign | M | String | See Signature |
Request Body Example (BBVA MEXICO 40012 + sample CLABE; align with your gateway)
Content-type: application/json
{
"mchNo": "{{mchNo}}",
"orderNum": "MXPAYOUT1234561",
"amount": 100.50,
"bankCode": "40012",
"bankCard": "012345678901234567",
"accountName": "Luis Garcia",
"description": "test",
"feeType": 1,
"downNotifyUrl": "https://example.com/notify",
"timestamp": "1749451858772",
"sign": "Generate per signature rules and replace"
}
Response
HTTP Response
| Field | Required | Type | Description |
|---|---|---|---|
| Content-Type | M | String | application/json |
Response Body Parameters
| Field | Required | Type | Description |
|---|---|---|---|
| success | M | Boolean | Request success |
| code | M | String | 9999 = success; otherwise resolve via status codes before treating as final failure |
| msg | O | String | Message |
| timeStamp | M | Number | Server time (ms) |
| data | M | Object | Payload |
| orderNum | M | String | Merchant order number |
| platOrderNum | M | String | Platform order number |
| amount | M | Number | Amount |
| fee | M | Number | Fee |
| feeType | M | Number | Fee type |
| status | M | Number | Status — Transaction Status Codes |
| statusMsg | M | String | Status message |
| bankCode | M | String | SPEI institution code (Mexico) — Regional Payment Guide — Mexico |
| bankCard | M | String | Account / CLABE (masked or echoed) |
| accountName | M | String | Account name |
| description | O | String | Description |
Content-type: application/json
{
"success": true,
"code": "9999",
"msg": "SUCCESS",
"timeStamp": 1767772957433,
"data": {
"orderNum": "MXPAYOUT12345617",
"platOrderNum": "TRANS2008811496544403456",
"amount": 100.50,
"fee": 2,
"feeType": 1,
"status": 1,
"statusMsg": "ORDER_RECEIVED_PROCESSING",
"bankCode": "40012",
"bankCard": "012345678901234567",
"accountName": "Luis Garcia",
"description": "test"
}
}
Notification
HTTP Request
| Field | Required | Type | Description |
|---|---|---|---|
| Content-Type | M | String | HTTP request content type Fixed value: application/json Indicates JSON request format |
Notification Body
| Field | Required | Type | Description |
|---|---|---|---|
| platOrderNum | M | String | Platform order number System-generated internal transaction reference Used for internal transaction management and support |
| version | M | String | Version API version identifier Example: v1 |
| orderNum | M | String | Merchant order number Same as orderNum in the original request Used for transaction identification and verification |
| amount | M | Number | Transaction amount Confirmed transaction amount |
| fee | M | Number | Fee Fee charged for the transaction |
| feeType | M | Number | Fee type 1: Merchant bears the fee |
| status | M | Number | Transaction status See Transaction Status Codes |
| statusMsg | M | String | Status message Human-readable order status description |
| bankCode | M | String | SPEI institution code (Mexico) See Regional Payment Guide — Mexico |
| bankCard | M | String | Bank card number/account number |
| accountName | M | String | Account name |
| description | O | String | Description |
| sign | M | String | Signature Digital signature of callback data |
Response
Important response
Notification response: Return only the string
SUCCESSto acknowledge receipt of the notification
{
"platOrderNum": "TRANS2008812168572567552",
"version": "v1",
"orderNum": "MXPAYOUT12345648",
"amount": 111.00,
"fee": 3,
"feeType": 1,
"status": 2,
"statusMsg": "supplement success!",
"bankCode": "40012",
"bankCard": "012345678901234567",
"accountName": "Luis Garcia",
"description": "test",
"sign": "KCitZCmhtuoGtVOl/EC4Mn1vwf3QRkoL9Ged0psKiCzATvP0AePNc8P1PEcWrbJYAPctewCRO9jW+vHjtXrh6ozk2OUvVDUlLTiM3PS7ydpeogy+W6w3b4OZDg5vUtaTVwz5mpEKBZv/XEhOes1C16+ec36PLp3Mi0Y0g4ivgwk="
}
SUCCESS
