Pay-Out · Indonesia
About 2 min
Request
The Pay-Out API initiates disbursement transactions. This page is for Indonesia (country code id). bankCode values are in Regional Payment Guide — Indonesia (Disbursement bank list).
Request URL
Domain: Prefer unified host
openapi.toppayment.com(path unchanged); legacy country domain (e.g.global-id-openapi.toppayment.com) remains available.
| Environment | URL |
|---|---|
| Sandbox | https://openapi.toppayment.com/sandbox/id/disbursement/cash |
| Production | https://openapi.toppayment.com/id/disbursement/cash |
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 |
| bankCode | M | String(32) | Bank code (Indonesia) — Regional Payment Guide — Indonesia |
| bankCard | M | String(50) | Account number |
| accountName | M | String(50) | Account name |
| description | O | String(255) | Description |
| feeType | M | Number | Fee type 0: Deduction within the order 1: Handling fee is calculated separately |
| downNotifyUrl | M | String(164) | Callback URL |
| timestamp | M | String | Timestamp (13 digits) |
| sign | M | String | See Signature |
Request Body Example (illustrative — 014 = BCA in the ID bank table; use live codes from the guide)
Content-type: application/json
{
"mchNo": "{{mchNo}}",
"orderNum": "IDPAYOUT1234561",
"amount": 100000,
"bankCode": "014",
"bankCard": "1234567890",
"accountName": "Budi Santoso",
"description": "test",
"feeType": 1,
"downNotifyUrl": "https://example.com/notify",
"timestamp": "1749451858772",
"sign": "Generate per signature rules and replace"
}
Response
| Field | Description |
|---|---|
| data.bankCode | Bank code (Indonesia) — Regional Payment Guide — Indonesia |
| data.status | Numeric — Transaction Status Codes |
Example response
{
"success": true,
"code": "9999",
"timeStamp": 1767772957433,
"data": {
"orderNum": "IDPAYOUT12345617",
"platOrderNum": "TRANS2008811496544403456",
"amount": 100000,
"fee": 2000,
"feeType": 1,
"status": 1,
"statusMsg": "ORDER_RECEIVED_PROCESSING",
"bankCode": "014",
"bankCard": "1234567890",
"accountName": "Budi Santoso",
"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 | Bank code (Indonesia) See Regional Payment Guide — Indonesia |
| 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": "IDPAYOUT12345648",
"amount": 111000,
"fee": 3000,
"feeType": 1,
"status": 2,
"statusMsg": "supplement success!",
"bankCode": "014",
"bankCard": "1234567890",
"accountName": "Budi Santoso",
"description": "test",
"sign": "KCitZCmhtuoGtVOl/EC4Mn1vwf3QRkoL9Ged0psKiCzATvP0AePNc8P1PEcWrbJYAPctewCRO9jW+vHjtXrh6ozk2OUvVDUlLTiM3PS7ydpeogy+W6w3b4OZDg5vUtaTVwz5mpEKBZv/XEhOes1C16+ec36PLp3Mi0Y0g4ivgwk="
}
SUCCESS
