Skip to content

Error Code ​

TIP

Merchants need to sign API requests before sending them, and verify the signature field on async callback notifications after receiving them.

Order Result Rules ​

During integration, first confirm whether the request was accepted at the HTTP level, then read success, code, and data.orderStatus from the response body. Please note: code=00000 only means the request was accepted, not that the transaction succeeded; success only indicates whether the API call itself succeeded and should not be used alone as the final business result.

DimensionPurposeIntegration Guidance
successIndicates whether the API call itself succeededUse only as a supporting signal and always read it together with code
codeRequest acceptance result or failure reason00000 means the request was accepted; other values mean the request was not accepted or failed
data.orderStatusOrder statusReturned only when transaction data exists; only terminal states should be used as the final business result
  1. code != 00000: the request was not accepted. Handle the error according to the error code and do not treat the order as successful.
  2. code = 00000 and data.orderStatus = PENDING: the order has been accepted but is still processing. This is a non-terminal state. Wait for the async callback or continue polling.
  3. code = 00000 and data.orderStatus ∈ {SUCCESS, PARTIAL SUCCESS, FAILED, EXPIRED, CANCELLED, REFUNDED}: the order is in a terminal state and can be handled as the final result.

Common Transaction orderStatus States ​

StatusMeaningFinal StateIntegration Guidance
PENDINGPending payment or processingNoDo not treat it as the final result; wait for callback or continue polling
SUCCESSTransaction succeededYesCan be used as the final success result
PARTIAL SUCCESSPartially completed payment. The requested order amount and actual paid amount are differentYesSettle by the actual paid amount or handle the difference according to your business rules
FAILEDTransaction failedYesCan be used as the final failure result
EXPIREDOrder expiredYesCan be used as the final failure result
CANCELLEDUser cancelled the orderYesCan be used as the final failure result
REFUNDEDRefundedYesHandle according to your refund flow

Common Business code States ​

CodeDescriptionMeaningIntegration Guidance
00000Request acceptedThe platform successfully accepted the requestContinue to determine the final result through data.orderStatus, async callback, or query APIs
40001Invalid parameter formatParameter format is incorrect or a required field is missingCorrect the request and resubmit
40002Request expiredTimestamp is invalid or the request has expiredSync server time and resubmit
40003Insufficient balanceAccount balance is insufficientTop up or confirm balance before retrying
40004Merchant status exceptionMerchant account is abnormalContact your business or operations contact
40101Invalid signatureSignature verification failedCheck the signing string, secret key, letter case, and empty-value filtering rules
40102UnauthorizedAPI Key is invalidCheck whether the merchant access identifier is correct
40301IP not allowedIP address is not in the whitelistContact support to configure the whitelist
40401Transaction not foundNo transaction was foundIf querying immediately after submission, wait 3-5 seconds and retry; if it still does not exist, verify the merchant order number
40402Merchant not foundNo merchant was foundCheck whether the merchant configuration is correct
40901Duplicate transactionTransaction number already existsDo not create another order with the same identifier; query the original order using the same merchantOrderNo
50001Internal service errorInternal server errorDo not directly mark the order as failed; query the order first. For payout orders, contact support if the result remains unclear
50002System errorSystem processing exceptionDo not directly mark the order as failed; query the order first. For payout orders, contact support if the result remains unclear