Error codes
The following codes describe merchant OpenAPI request results. message can vary with merchant language or the particular cause; use codes for programmatic decisions.
| Code | Meaning |
|---|---|
| 100403 | Forbidden; creation IP not in the configured allowlist can trigger this. Not the specific payout-disabled code. |
| 100404 | Requested resource not found. |
| 100409 | Conflict; the same order ID identifies an ended order or conflicting amount/beneficiary parameters. |
| 100422 | Request validation failed; check required fields, types and formats. A beneficiary restriction can also trigger this code. |
| 100429 | Rate limit exceeded; HTTP 429. Wait as indicated by Retry-After. |
| 100500 | Unexpected system error; retain request_id. This code alone cannot establish the payment outcome. |
| 100503 | Operation failed; may be returned for unsuccessful UTR verification. |
| 201005 | Merchant account does not exist. |
| 202000 | OpenAPI system error. |
| 202001 | Missing sign. |
| 202002 | Missing app_key. |
| 202003 | Invalid app_key, or app_key and tenant_id belong to different merchants. |
| 202004 | Invalid signature. |
| 202005 | Missing timestamp. |
| 202006 | Timestamp expired. |
| 202007 | Application disabled. |
| 203001 | No available payin method. |
| 203002 | No matching collection account. |
| 203003 | Payin amount-adjustment configuration error. |
| 203004 | Amount does not meet the configured adjustment minimum. |
| 203005 | Order creation failed; also used when available balance plus credit cannot cover payout principal and fees. Reconcile the original order if the outcome is uncertain. |
| 203006 | No returnable order found for this merchant and query; not a payment status. |
| 203007 | Operation not supported for the current order status. |
| 203008 | Payment verification failed. |
| 203011 | Payin is not enabled for the merchant. |
| 203012 | Payout is not enabled for the merchant. |
| 203013 | No available H2H payin method. |
| 203014 | Payin amount is outside the merchant per-order range. |
| 203015 | Payout amount is outside the merchant per-order range. |
| 203016 | No available payout method. |
| 204001 | Payment reference record does not exist. |
Common distinctions
202003: invalid application or merchant/application mismatch, not a rate limit.203005: creation failure; also used when payout principal plus fees exceed available balance and credit. The code is not unique to one root cause.100429: rate limit, HTTP 429; distinct from validation code100422.
Where is the failure reason?
For creation failure, inspect top-level code and message. Current query_order responses and ordinary result callbacks do not have a unified detailed failure-reason field. Do not rely on an absent error_message; provide an order ID or request_id to request details.