This section lists commonly encountered response codes of Payout API, along with their descriptions and recommended handling procedures. It is intended to help merchants understand the responses returned by the API and determine the appropriate actions to take during API usage.Inquiry#
| HTTP | Code | Message | Condition | Status | Action |
|---|
| 200 | OK | “status”: “SUCCESS” | Inquiry successfully executed | SUCCESS | Merchant request payout |
| 400 | Bad Request | Amount is not acceptable | Amount carries more than two decimal, or is zero, negative, or below the smallest accepted | FAILED | Merchant check the amount format and do retry request |
| 422 | Unprocessable Entity | Account cannot be used + the bank’s reason | The destination bank reports the account is not exist, dormant, or unable to receive | FAILED | Merchant check the account number, verify to the customer (if needed), and retry request with a different account number |
Payout#
| HTTP | Code | Message | Condition | Status | Action |
|---|
| 200 | OK | “status”: “SUCCESS” | Payout successfully executed | SUCCESS | - |
| 200 | OK | “status”: “PENDING” | Bank response took longer than the set timeout | PENDING | Do not retry request. Merchant wait until T+1 max 5 PM MYT for the final status from the bank. For current status, Merchant could call Read Payout Status API. If the final status is SUCCESS, then the merchant cannot retry. If the final status is FAILED, then the merchant could retry the request. |
| 403 | High Risk Transaction | High risk transaction | Request is rejected by DOKU due to high risk transaction | FAILED | Merchant to contact DOKU Sales PIC or Care |
| 404 | Not Found | Inquiry not found | The quoted inquiry belongs to another merchant | FAILED | Merchant check the valid quoted inquiry |
| 409 | Conflict | Payout reference already used with different content | Reference already used before with different details | FAILED | Merchant do retry request |
| 422 | Unprocessable Entity | Beneficiary name does not match the destination account | Failed to compare the beneficiary name | FAILED | Merchant do retry request with the correct name |
| 422 | Unprocessable Entity | Insufficient funds | The merchant’s balance is insufficient or cannot be read | FAILED | Check remaining balance on the dashboard and make sure the balance are sufficient before retry request |
Payout Status#
| HTTP | Code | Message | Condition | Status | Action |
|---|
| 200 | OK | “status”: “SUCCESS” | Check payout transaction successfully executed | SUCCESS | - |
| 200 | OK | “status”: “PENDING” | Pending payout transaction, but successfully check the payout status | SUCCESS | Merchant do check status to know the current payout status |
| 200 | OK | “status”: “FAILED” | Failed payout transaction, but successfully checked the payout status. The deducted balance will return under the “Reversal” description. | SUCCESS | Merchant could retry the inquiry then payout. |
| 200 | OK | “status”: “REFUNDED” | Refunded payout transaction, but successfully checked the payout status. Originated from a successful payout but then got a force back from the bank. The deducted balance will return under the “Refunded” description. | SUCCESS | Merchant could retry the inquiry then payout. |
| 400 | Bad Request | Reference is not valid | The reference value sent is not a valid | FAILED | Merchant recheck the reference and retry request |
Balance#
| HTTP | Code | Message | Condition | Status | Action |
|---|
| 200 | OK | “status”: “SUCCESS” | Check Merchant’s balance successfully executed | SUCCESS | - |
| 400 | Bad Request | Missing merchant configuration | No currency is set or not an MY merchant | FAILED | Merchant to contact DOKU Sales PIC |
Modified at 2026-10-23 09:43:50