Payment Disbursement Business Codes
Transaction Status Codes
{
"transactionStatus": 10,
"transactionMessage": "SUCCESS"
}Status Code Descriptions
| Code | Description | Possible Reasons |
|---|---|---|
| 0 | UNKNOWN | Unknown |
| 10 | SUCCESS | Success |
| 20 | FAILED | Failure |
| 40 | TIMEOUT | Timeout during payment channel processing, status does not imply success or failure |
| 50 | PENDING | Transaction accepted, awaiting payment channel response or T+1 processing, status does not imply success or failure |
API Details
Transfer to Account API
INFO
Purpose: Used for transfers between bank/wallet accounts.
Request URL: api/remit/bank/v1
Request Method: POST
WARNING
Transaction fees are calculated separately and are not deducted from the disbursement amount.
Explanation for
notifyUrl:2.1 If the merchant's backend already has a disbursement callback address configured, this field can be omitted, and the backend configuration will be used.
2.2 If the merchant's backend has no disbursement callback address configured, this field must be provided, and the URL passed in the request will be used.
2.3 If both the backend and the request provide a callback address, the URL passed in the request will take priority.
Request Parameters
| Parameter | Required | Type | Description | Example |
|---|---|---|---|---|
| orderId | Yes | String | Merchant order ID | 202305250001 |
| beneficiary | Yes | Object | ||
| - country | Yes | String | Country, can be "ID" | ID |
| - firstName | Yes | String | First name | Mia |
| - lastName | Yes | String | Last name | Smith |
| - phoneNumber | Yes | String | Phone number | 62856123456 |
| beneficiaryAccount | Yes | Object | Beneficiary account information | |
| - bank | Yes | String | Bank code, refer to the bank code list | 014 |
| - city | Yes | String | Beneficiary account city, can be "Jakarta" | Jakarta |
| - name | Yes | String | Beneficiary account name | John Doe |
| - number | Yes | String | Beneficiary account number | 6790153860 |
| senderAmount | Yes | Long | Payment amount | 10000 |
| notifyUrl | No | String | Callback URL to receive payment status notifications | http://test.com |
| beneficiaryCity | No | String | Beneficiary city name | Jakarta |
| beneficiaryCountry | No | String | Beneficiary country, can be "ID" | ID |
| beneficiaryCurrency | No | String | Beneficiary currency, can be "IDR" | IDR |
| sender | No | Object | If sender is provided, all related fields are required | |
| - country | No | String | Sender's country, can be "ID" | ID |
| - firstName | No | String | Sender's first name | Mia |
| - lastName | No | String | Sender's last name | Smith |
| - phoneNumber | No | String | Sender's phone number | 62856123456 |
| - birthDate | No | String | Sender's birthdate (YYYY-MM-DD) | 2000-01-01 |
| - personalId | No | String | Sender's personal ID number | 167101110100001 |
| - personalIdType | No | String | Personal ID type, fixed values: KTP (ID Card), PASSPORT | KTP |
| - personalIdCountry | No | String | Personal ID issuing country | ID |
| senderCountry | No | String | Sender's country, can be "ID" | ID |
| senderCurrency | No | String | Sender's currency, can be "IDR" | IDR |
Request Example
{
"orderId": "202305250001",
"notifyUrl": "http://test.com",
"beneficiary": {
"country": "ID",
"firstName": "FHILEA",
"lastName": "HERMANUS",
"phoneNumber": "628156056051"
},
"beneficiaryAccount": {
"bank": "014",
"city": "Jakarta",
"name": "FHILEA HERMANUS",
"number": "0803944123"
},
"senderAmount": 10000
}Response Parameters
| Parameter | Type | Description | Example |
|---|---|---|---|
| orderId | String | Merchant order ID | 202305250001 |
| transactionId | String | Platform transaction ID | T230525999999 |
| transactionStatus | Int | Transaction status (see status codes) | 50 |
| transactionMessage | String | Transaction message (corresponds to transaction status) | Pending |
| createdTime | String | Order creation time, YYYY-MM-DD HH:MM:SS | 2023-05-23 17:27:58 |
| cashInTime | String | Cash-in time, YYYY-MM-DD HH:MM:SS | null |
| senderAmount | Long | Payment amount | 10000 |
| serviceFeeAmount | Long | Service fee | 5000 |
| beneficiaryName | String | Beneficiary name | FHILEA HERMANUS |
| beneficiaryAccountNumber | String | Beneficiary account number | 628156056051 |
| reason | String | Failure reason, fixed values: LOW_BALANCE, INVALID_BENEFICIARY, USER_AMOUNT_EXCEED_LIMIT. If empty, contact support for investigation in case of failure. |
Response Example
{
"status": 1,
"message": "PROCESSING SUCCESS",
"data": {
"orderId": "202305250001",
"transactionId": "T230525999999",
"transactionStatus": 50,
"transactionMessage": "PENDING",
"createdTime": "2023-05-23 17:27:58",
"cashInTime": null,
"senderAmount": 10000,
"serviceFeeAmount": 5000,
"beneficiaryName": "FHILEA HERMANUS",
"beneficiaryAccountNumber": "628156056051",
"reason": ""
}
}TIP
The success of the transaction is determined by the transaction status code, not the request processing status. You can use the "Platform Transaction ID" for future status queries.
Asynchronous Callback Notification API
INFO
Purpose: Used to notify the merchant after a disbursement has been completed.
Request URL: Callback URL configured in the merchant backend or the notifyUrl passed in the request.
Request Method: POST
WARNING
After receiving the asynchronous notification, respond with the string "SUCCESS" (without quotes), and not in JSON format. Once successfully notified, no further notifications will be sent, with a maximum of 5 attempts.
Platform Notification Parameters
| Parameter | Type | Description | Example |
|---|---|---|---|
| orderId | String | Merchant order ID | 202305250001 |
| transactionId | String | Platform transaction ID | T230525999999 |
| transactionStatus | Int | Transaction status (see status codes) | 10 |
| transactionMessage | String | Transaction message (corresponds to transaction status) | Success |
| createdTime | String | Order creation time, YYYY-MM-DD HH:MM:SS | 2023-05-23 17:27:58 |
| cashInTime | String | Cash-in time, YYYY-MM-DD HH:MM:SS | 2023-05-23 17:30:58 |
| senderAmount | Long | Payment amount | 10000 |
| serviceFeeAmount | Long | Service fee | 5000 |
| beneficiaryName | String | Beneficiary name | FHILEA HERMANUS |
| beneficiaryAccountNumber | String | Beneficiary account number |
628156056051 | | reason | String | Failure reason, fixed values: LOW_BALANCE, INVALID_BENEFICIARY.
If empty, contact support for investigation in case of failure. | |
Example of Notification Data Sent to Merchant
{
"status": 1,
"message": "PROCESSING SUCCESS",
"data": {
"orderId": "202305250001",
"transactionId": "T230525999999",
"transactionStatus": 10,
"transactionMessage": "SUCCESS",
"createdTime": "2023-05-23 17:27:58",
"cashInTime": "2023-05-23 17:30:58",
"senderAmount": 10000,
"serviceFeeAmount": 5000,
"beneficiaryName": "FHILEA HERMANUS",
"beneficiaryAccountNumber": "628156056051",
"reason": ""
}
}Transaction Query API
INFO
Purpose: Used to query the status of a specific transaction.
Request URL: api/remit/query/v1
Request Method: POST
Request Parameters
| Parameter | Required | Type | Description | Example |
|---|---|---|---|---|
| queryId | Yes | String | Query ID, must be unique | 202305260001 |
| orderId | Yes | String | Merchant order ID | 202305250001 |
| transactionId | No | String | Platform transaction ID (if not specified, merchant order ID will be used; if both are provided, they will be cross-checked) | T20230525999 |
Request Example
{
"queryId": "202305260001",
"orderId": "202305250001",
"transactionId": "T230525999999"
}Response Parameters
| Parameter | Type | Description | Example |
|---|---|---|---|
| orderId | String | Merchant order ID | 202305250001 |
| transactionId | String | Platform transaction ID | T230525999999 |
| transactionStatus | Int | Transaction status (see status codes) | 10 |
| transactionMessage | String | Transaction message (corresponds to transaction status) | Success |
| createdTime | String | Order creation time, YYYY-MM-DD HH:MM:SS | 2023-05-23 17:27:58 |
| cashInTime | String | Cash-in time, YYYY-MM-DD HH:MM:SS | 2023-05-23 17:28:01 |
| senderAmount | Long | Payment amount | 10000 |
| serviceFeeAmount | Long | Service fee | 5000 |
| beneficiaryName | String | Beneficiary name | FHILEA HERMANUS |
| beneficiaryAccountNumber | String | Beneficiary account number | 628156056051 |
| reason | String | Failure reason, fixed values: LOW_BALANCE, INVALID_BENEFICIARY. If empty, contact support for investigation in case of failure. |
Response Example
{
"status": 1,
"message": "PROCESSING SUCCESS",
"data": {
"orderId": "202305250001",
"transactionId": "T230525999999",
"transactionStatus": 10,
"transactionMessage": "SUCCESS",
"createdTime": "2023-05-23 17:27:58",
"cashInTime": "2023-05-23 17:28:01",
"senderAmount": 10000,
"serviceFeeAmount": 5000,
"beneficiaryName": "FHILEA HERMANUS",
"beneficiaryAccountNumber": "628156056051",
"reason": ""
}
}WARNING
Currently, only individual transaction queries are supported. Please do not query the same order frequently, as the platform limits query requests.
The cashInTime will only have a value after a successful transaction.
Balance Inquiry API
INFO
Purpose: Used to query the merchant account balance.
Request URL: api/balance/query/v1
Request Method: POST
Request Parameters
No request body is required; only relevant information in the request header is needed. Refer to Request Header Information.
Response Parameters
| Parameter | Type | Description | Example |
|---|---|---|---|
| amountAvailable | Long | Available balance | 66000 |
| preSettledAmount | Long | Amount pending settlement | 10000 |
| totalAmount | Long | Total balance = Available + Pending Settlement | 76000 |
Response Example
{
"status": 1,
"message": "PROCESSING SUCCESS",
"data": {
"amountAvailable": 66000,
"preSettledAmount": 10000,
"totalAmount": 76000
}
}