1. Introduction
OnlinePay API
  • Introduction
    • Introduction
    • How to Start
    • Country Code
    • Country Info
    • Currency Code
    • Error Code
    • Transfer Order Info Type
    • Transfer Order File Type
    • Per Bank
    • Spei Bank
    • Vietnam Bank
  • Payin
    • OnRamps API
      GET
    • Alipay API
      POST
    • Apple Pay API
      POST
    • Cash App API
      POST
    • Crypto Pay API
      POST
    • Credit Card API
      POST
    • GCash API
      POST
    • Google Pay API
      POST
    • PIX API
      POST
    • PerTransfer API
      POST
    • SEPA API
      POST
    • SPEI API
      POST
    • Union Pay API
      POST
    • Vietnam Pay API
      POST
    • WeChat API
      POST
    • CheckOut
      POST
    • CheckOut Payment
      POST
  • Payout
    • Bank Account
    • Card
    • Per Transfer
    • Pix
    • CheckOut
    • Spei Payout
  • Notify
    • Pay Notify WebHook API
    • Refund Notify WebHook API
    • Chargeback Notify WebHook API
    • Card Notify WebHook API
  • Refund
    • Refund API
  • Review
    • Upload SEPA File API
  • Query
    • Query API
    • QueryBalance API
    • QueryOrderList API
    • QueryOrderAmount API
  • Card
    • CreateCardholder API
    • CreateCard API
    • QueryCardInfo API
    • ActiveCard API
    • TopUpCard API
    • CardWithdraw API
    • QueryCardTransaction API
    • QueryCardBalance API
    • FreezeCard API
    • UnFreezeCard API
    • CancelCard API
    • AddVpaScene API
    • UploadFile API
  • Schemas
    • Sample Schemas
      • Pet
      • Category
      • Tag
  1. Introduction

Error Code

OnlinePay API Error Code#

Version: 2.0
Last Updated: 2026-04-15
Source: ResponseCodeEnum.java (op-common)

Notes#

Code Format#

The code field in API responses is a 5-digit numeric string, e.g. "10004", "99999".
Some conflicting codes have been split into extended format (e.g. 1005301, 1008702) for forward compatibility.

Multi-language Support#

The message field supports multi-language. The response language is determined by the Accept-Language request header. The enum name (e.g. MERCHANT_NOT_EXISTS) serves as the i18n key.

Response Format#

{
  "code": "10004",
  "message": "Merchant ID does not exist",
  "data": null,
  "sign": ""
}

Error Code List#

CodeEnum NameDescription
00000SUCCESSSuccess
10000PAYMENT_METHOD_NOT_EMPTYPayment method cannot be empty
10001PAYMENT_METHOD_NOT_EXISTSPayment method does not exist
10002PARAMETER_NOT_EMPTYParameter cannot be empty
10003REPEAT_SUBMITThe same order number can only be submitted once before last order completed
10004MERCHANT_NOT_EXISTSMerchant ID does not exist
10005MERCHANT_NOT_ACTIVEMerchant not activated
10006REFERER_NOT_EMPTYReferer cannot be empty
10007WEBSITE_ILLEGALSource URL does not comply with relevant regulations
10008MERCHANT_WEBSITE_LIMITMerchant URL Restriction
10009MERCHANT_ORDER_NO_REPEATDuplicate order number, please reorder
10010CURRENCY_NOT_SETThe merchant has not set the transaction currency
10011CHANNEL_NOT_OPENChannel not open
10012CARD_UNBINDCard type is not bound
10013BANK_NOT_EXISTSBank does not exist
10014CURRENCY_TRANSFORM_RATE_NOT_EXISTCurrency exchange rate does not exist
10015SIGN_ERRORSignature error
10016OUT_OF_TRADE_COUNT_OF_DAYDaily transaction limit exceeded
10017OUT_OF_TRADE_COUNT_OF_MONTHMonthly transaction limit exceeded
10018CURRENCY_CODE_NOT_EMPAYCurrency cannot be empty
10019CURRENCY_NOT_OPENDThe currency has not been opened or the currency has been passed in incorrectly
10020NOT_EXIST_MERCHANT_TRADE_SINGLE_LIMITNo single transaction limit
10021NOT_EXIST_MERCHANT_TRADE_DAY_LIMITThere is no daily transaction limit
10022NOT_EXIST_MERCHANT_TRADE_MONTH_LIMITNo monthly transaction limit
10023TO_SINGLE_LIMITThe merchant has reached the upper limit of a single transaction
10024TO_DAY_LIMITThe merchant has reached the daily transaction limit
10025TO_MONTH_LIMITThe merchant has reached the monthly transaction limit
10026TRADE_NOT_EXISTThe transaction does not exist or cannot match the original transaction
10027ORDER_IS_NOT_CONFIRMEDOrder not confirmed
10028ORDER_REFUND_PROCESSINGThe order is already being refunded
10029INSUFFICIENT_REFUND_AMOUNTInsufficient refund amount
10030OPERATION_TYPE_NOT_EXISTOperation type does not exist
10031QUERY_TYPE_NOT_EXISTQuery type does not exist
10032UNRECOGNIZED_CARD_TYPEUnrecognized card type
10033MERCHANT_NOT_SET_CARD_TYPE_RATEPayment method not supported (merchant has not set card type rate)
10034MERCHANT_NOT_SET_BAIL_RATEMerchant has not set margin deduction rate
10035QUOTA_USED_OUTAll credits have been exhausted
10036CHANNEL_DISABLEChannel is disabled
10037NOT_SUPPORT_CARD_TRADEThis card transaction is not currently supported
10038SUCCESS_TIMES_LIMITSuccess limit exceeded
10039FAIL_TIMES_LIMITThe number of failures exceeds the set maximum allowable number of failures (cardholder)
10040STOP_RULE_LIMITBlock rules block
10041BLACK_LIST_PREVENTBlacklist block
10042ELEMENT_LIMITElement Qualification limit
10043PRICE_LIMITPrice limit
10044USER_FACE_RULE_LIMITUser feature block
10045All_SITETYPE_LIMITThe website type exceeds the limit
10046All_CHANNEL_LIMITChannel exceeds limit
10047RECEIVE_ACCOUNT_NOT_CONFIGReceiving account not configured
10048ADDRESS_NOT_EXISTAddress not exist
10050NO_COMPLETE_PAYMENTNot complete payment
10051BALANCE_NOT_ENOUGHBalance not enough
10052ADDRESS_ERRORAddress error
10052Credit_Card_ExpiresInvalid expiry date
1005301MER_NO_MISSINGMerchant number missing
1005302Cashier_UnableProhibition of payment
10054Card_UnablePayment method not supported
10055Card_Date_ErrorCard expiration date error
10056NO_Settle_CurrencyPayment method is not set in settlement currency
10057SUBMIT_FAILEDSubmit failed
10058IP_RESTRICTEDIP restricted
10059NOT_FOUND_PAYOUTCan not find records, please check your merNo and tradeNo
10060CARDHOLDER_NOT_EXISTCardholder is not exist
10061FAILED_GET_GOOGLE_RECAPTCHAGoogle verification is still loading, please try again later
1006201GOOGLE_RECAPTCHA_NO_BALANCEGoogle recaptcha over enterprise free quota
10062RECAPTCHA_AUTHEN_FAILEDRecaptcha authentication failed
10063FIRSTLAST_FAILPlease complete KYC certification
10064DIRECT_UNABLEDirect mode unavailable
10065PAY_GATEWAY_UNABLEPayment gateway unavailable
10066CHECKOUT_UNABLECheckout unavailable
10067KYC_NOT_FOUNDKYC certification record not found
10068INVALID_BILLING_NAMEInvalid billing name
10069CARD_NOT_FOUNDCard not found
10070CARD_STATUS_ABNORMALCard status is abnormal, cannot top up/withdraw
10071MERCHANT_BALANCE_INSUFFICIENTMerchant balance insufficient
10072PAYER_ID_FETCH_FAILEDFailed to get payer ID
10073UPSTREAM_TOPUP_FAILEDTop-up failed
10074CARD_TOPUP_FAILEDCard top-up failed
10075CARD_WITHDRAW_PARAM_INVALIDCard withdraw parameters validation failed
10076CARD_BALANCE_NOT_FOUNDCard balance information not found
10077CARD_BALANCE_INSUFFICIENTCard balance insufficient
10078UPSTREAM_WITHDRAW_FAILEDWithdraw failed
10079CARD_WITHDRAW_FAILEDCard withdraw failed
10080CARD_TOPUP_PERMISSION_DENIEDCard top-up permission denied
10081CARD_WITHDRAW_PERMISSION_DENIEDCard withdraw permission denied
10082CARD_QUERY_PERMISSION_DENIEDCard query permission denied
10083CARD_PERMISSION_NOT_FOUNDCard permission configuration not found
10084NOT_OPEN_SUB_CARDNot open sub-card
10085CARD_QUERY_PARAM_INVALIDCard query parameters validation failed
10086CARD_QUERY_FAILEDCard query failed
1008701CARD_TOPUP_PARAM_INVALIDCard top-up parameters validation failed
1008702CARD_HOLDER_NOT_FOUNDCard holder not found
10088MERCHANT_BALANCE_NOT_FOUNDMerchant balance information not found
10089INIT_SECRET_KEY_FAILEDBlockDance service init secretKey failed
1009001ONLY_SUPPORTS_FULL_REFUNDOnly supports full refund
1009002NOT_SUPPORTS_REFUNDRefunds are not supported
1009101CURRENCY_NOT_SUPPORTEDPayment does not support the specified currency. Supported currencies: ...
1009102INVALID_BILLING_COUNTRYInvalid billing country
10092PAYMENT_AMOUNT_OUT_OF_RANGEPayment amount out of range, allowed range: ...
99990HTTP_REQUEST_FAILEDHTTP request failed
99993REQUEST_ILLEGAL_ACCESSIllegal access
99994REQUEST_MODE_INCORRECTThe request method is incorrect
99995CHANNEL_PAYMENT_TIME_OUTPayment channel connection timed out
99996CLASS_CAST_EXCEPTIONData type conversion exception
99997PARAMETER_ABNORMALParameter is missing or does not meet constraints
99998CHANNEL_PAYMENT_FAILChannel payment failed
9999901SYSTEM_EXCEPTIONRequest failed, please try again
9999902SYSTEM_EXCEPTION_ENRequest failed, please try again
9999903PRODUCT_ERRORProduct Error

Deprecated#

CodeEnum NameDescription
10051AUTHENTICATION_FAILEDMerchant authentication failed (deprecated)

Changelog#

v2.0 (2026-04-15)#

Code conflicts resolved - split shared codes into unique values:
Enum NameOld CodeNew Code
MER_NO_MISSING100531005301
Cashier_Unable100531005302
GOOGLE_RECAPTCHA_NO_BALANCE100621006201
CARD_TOPUP_PARAM_INVALID100871008701
CARD_HOLDER_NOT_FOUND100871008702
CARD_TOPUP_PARAM_INVALID_BASE100871008703
INVALID_BILLING_COUNTRY100911009102
CURRENCY_NOT_SUPPORTED100911009101
ONLY_SUPPORTS_FULL_REFUND100901009001
NOT_SUPPORTS_REFUND100901009002
SYSTEM_EXCEPTION999999999901
SYSTEM_EXCEPTION_EN999999999902
PRODUCT_ERROR999999999903
Deprecated: AUTHENTICATION_FAILED (commented out in source).
Modified at 2026-04-15 08:42:50
Previous
Currency Code
Next
Transfer Order Info Type
Built with