Transaction Status/Errorcode
1. Transaction Status
After PayerMax accepts your order request, you can sense the payment status through Transaction Inquiry or notification. You can obtain transaction status to formulate business processes. The status is as follows:
| Status | Description | Remark |
| SUCCESS | Successful transaction | User's payment is successful |
| PENDING | Transaction processing | Wait for user to complete payment |
| FAILED | Transaction failed | Payment failed |
| CLOSED | Transaction closed | The user did not complete the payment within the validity period |
When the order is unsuccessful, PayerMax will provide an error code so that you can analyze the reason for the failure.
2. Errorcode
PayerMax’s external API provides stable services. If an exception occurs, you will be notified of the error message in the body of the http interface response, for example:
json
{
"msg": "The amount doesn't match the payment method requirement.",
"code": "AMOUNT_LIMIT"
}Similarly, in asynchronous callbacks, failure information will also be responded to, for example:
json
{
"msg": "Payment was not completed on time.",
"code": "PAYMENT_FAILED",
"data": {
"reference": "JOLLY",
"country": "TH",
"totalAmount": 300,
"outTradeNo": "TP002024051309261650130939",
"currency": "THB",
"tradeToken": "T2024051309124735760727",
"paymentDetails": [],
"status": "CLOSED"
},
"keyVersion": "1",
"appId": "5a48dcf440074021b87d4ef901bf9629",
"merchantNo": "SP18440851",
"notifyTime": "2024-05-13T10:28:03.606Z",
"notifyType": "PAYMENT"
}If the transaction is accepted normally, the returned code is "APPLY_SUCCESS".
2.1 Errorcode List
| Category | Result Code | Description | Comments |
| System Exception | SYSTEM_ERROR | System is busy, please try again later. | System error; please contact PayerMax |
| REQUEST_TIMEOUT | Request timeout or didn't get result, If you have finished to pay, pls wait for the result. | Request timeout; please contact PayerMax | |
| UNEXPECTED_ERROR | No further information for the error, plz try it later. | Unknown error; please contact PayerMax | |
| Basic Verification Exception | SIGN_VERIFY_FAILED | The signature verify failed. | Signature error; please verify the signature |
| MERCHANT_INVALID | The merchant has been offline. | Invalid merchant | |
| MERCHANT_APP_INVALID | Signature key is not configured. | Invalid merchant APP | |
| PARAMS_INVALID | ${field} length must be between ${min} and ${max},but your input value length is ${length}.Make sure all requests length is correct. | Invalid parameter - input field length does not meet requirements; please refer to the official website field description | |
| PARAMS_INVALID | ${field} must be ${type} , but your input is ${valueType}.Make sure all requests type is correct. | Invalid parameter - input field type is incorrect; please refer to the official website field description | |
| PARAMS_INVALID | ${field} is invalid,because ${field} is null. | Invalid parameter - input field cannot be empty; please refer to the official website field description | |
| Business Verification exception | AMOUNT_INVALID | Amount is incorrect. | Invalid amount |
| COUNTRY_INVALID | No country support, pls re-pay. | Invalid country; refer to Supported Countries and Currencies | |
| CURRENCY_INVALID | currency is invalid,because currency is not defined. | Invalid currency; refer to Supported Countries and Currencies | |
| CONTRACT_INVALID | Merchant has no activated contract, please check the contract status. | Invalid contract; please check contract validity | |
| CONTRACT_INVALID | Merchant has not signed the contract in ${value}. | Specified country/region is not contracted; please check contract validity | |
| CONTRACT_INVALID | Merchant has not signed the ${paymentMethod} payment method. | Specified payment method is not contracted; please check contract validity | |
| CONTRACT_INVALID | Merchant has not signed the ${targetOrg} target origination correspondingly, although you have signed the ${paymentMethod} payment method. | Specified target organization is not contracted; please check contract validity | |
| CONTRACT_INVALID | Merchant has not signed the ${currency} currency correspondingly, although you have signed the ${paymentMethod} payment method. | The specified payment method is contracted, but the specified currency is not contracted; please check contract validity | |
| CONTRACT_INVALID | Merchant has not signed the ${currency} currency correspondingly, although you have signed the ${paymentMethod} payment method and the ${targetOrg} target origination. | The specified target organization is contracted, but the specified currency is not contracted; please check contract validity | |
| PAYMENT_METHOD_NOT_EXIST | The payment method does not exist. | Payment method does not exist; please try other payment methods | |
| PAYMENT_METHOD_SUSPEND | The payment method already suspend, plz try other payment methods. | Payment method temporarily unavailable; please try other payment methods | |
| AMOUNT_LIMIT_MINIMUM | The order amount is lower than the minimum limit of the payment method. | Minimum amount limit | |
| AMOUNT_LIMIT_MAXIMUM | The order amount exceeds the maximum limit of the payment method. | Maximum amount limit | |
| AMOUNT_LIMIT | The amount doesn't match the payment method requirement. | Amount limit | |
| ORDER_REPEAT | The order number repeat. | Duplicate order | |
| ONBOARD_ERROR | Please complete the merchant onboarding, then refresh the page. | Merchant not registered; please complete registration first | |
| PAYMENT_PROCESSING | The payment is processing, pls check the result. | Payment processing; please try again later | |
| PARTICIPANT_INVALID | Invalid participant. | Invalid settlement participant | |
| ORDER_CLOSED | This order has been closed. | Order closed | |
| BALANCE_INSUFFICIENT | Insufficient balance to pay, please confirm payment account available balance. | Insufficient balance | |
| OTP_VERIFY_LIMIT | OTP verification exceeds limit. | OTP verification exceeds limit | |
| OTP_VERIFY_FAILED | OTP verification failed. | OTP verification failed | |
| OVER_VERIFY_LIMIT | Exceeded the number of verifications. | Exceeded verification attempts | |
| BARCODE_REFRESH_LIMIT | Over barcode refresh times. | Barcode refresh limit | |
| BARCODE_REFRESH_FAILED | Barcode refresh failed. | Barcode refresh failed | |
| CARD_INVALID | Make sure the card number is correct. | Invalid card number | |
| CARD_EXPIRE_DATE_INVALID | Invalid card number validity period | Invalid card expiration date | |
| CARD_HOLDER_NAME_INVALID | Invalid cardholder name | Invalid cardholder name | |
| CVV_INVALID | Cvv is incorrect, pls check. | Invalid CVV | |
| UNSUPPORT_CARD | This card don't support, please change another card. | Card not supported | |
| ACCOUNT_INVALID | Your account is invalid or not active, please confirm and re-enter. | Invalid account | |
| PHONE_NUM_INVALID | The phone number is invalid, pls check and re-enter. | Invalid phone number | |
| UPI_INVALID | UPI is incorrect. | Invalid UPI | |
| PIN_VERIFY_LIMIT | Pin verification exceeds limit | PIN verification exceeds limit | |
| PIN_INVALID | Pin is invalid | Invalid PIN | |
| BANKCODE_INVALID | Invalid bank card number. | Invalid bank card number | |
| ID_NUM_INVALID | Invalid ID number | Invalid ID number | |
| EMAIL_INVALID | Your email is invalid, or your account is not active, please confirm and re-enter. | Invalid email | |
| DOCUMENT_INVALID | Invalid document. | Invalid document | |
| TCK_INVALID | TC Kimlik No. is incorrect. | Invalid TC Kimlik No. | |
| DATE_INVALID | The data format is error, please check. | Invalid date | |
| PAYEE_NAME_INVALID | Your name is invalid, or does not match, please confirm and re-enter. | Invalid payer name | |
| REMARK_INVALID | Invalid remark | Invalid remark | |
| CNIC_INVALID | The CNIC is incorrect, pls confirm and re-enter. | Invalid CNIC | |
| ACCOUNT_BLOCKED | Payer account/card blocked or frozen. Pls confirm payment account/card status. | Account locked/frozen | |
| PAYMENT_CANCELED | payment canceled. | User canceled payment on third-party platform | |
| PAYMENT_TOKEN_ID_INVALID | PaymentTokenID is invalid. Please confirm if it has been authorized and bound | paymentTokenId is invalid, please check if input is correct or if it has been unbound | |
| MER_CONFIG_ERROR | Merchant config error. Please contact us to check your dynamic3DS configuration. | Merchant has not enabled dynamic 3D function | |
| AUTH_NOT_SUPPORT | The contract does not enable the Auth-Capture. | Contract has not enabled Auth-capture function | |
| PRE_AUTH_NOT_SUPPORT | The merchant does not support the PRE_AUTH. | Merchant has not enabled PRE_AUTH function | |
| RDR_REFUNDED_NOT_SUPPORT_RETRY | This transaction has been triggered by RDR. A refund has already been successfully processed by the issuing bank. Merchants are not allowed to initiate any additional refund requests for this transaction. | Order has initiated RDR, cannot initiate refund again | |
| ORDER_CLOSE_FAILED | order already success or failed, cannot be closed | Failed to close order, order is already successful or failed; please check order status | |
| ACCOUNT_VALIDATION_INVALID | Please complete the account verification firstly. | Account verification not completed, please complete account verification first | |
| PAYMENT_PROCESSING_BANKTRANSFER | The previous payment is still processing, please make sure that you have made the bank transfer. Otherwise, please wait for 10 minutes to initiate a new request. | Previous payment is processing, please confirm bank transfer is completed, otherwise wait 10 minutes and retry | |
| REQUEST_PARAM_INVALID | [amount.value] must be greater than zero | Invalid request parameter, amount must be greater than zero | |
| INSUF_BAL_FALLBACK | Your account balance is insufficient to cover the amount. Please check your account balance. | Insufficient account balance, please check account balance | |
| ONLY_ONE_AUTH_CHANNEL_ALLOWED | only one authorization channel is allowed | Only one authorization channel is allowed | |
| ISSUER_PAYMENT_REJECTED | Transaction failed at issuer end due to risk control. Please try using a different card or contact your issuer for more detail. | Transaction rejected by card issuer due to risk control, please change bank card or contact card issuer | |
| AMOUNT_LIMIT | The amount exceeds user amount limit. | User amount limit | |
| AMOUNT_LIMIT | The amount exceeds the limit for per transaction limit. | Single transaction amount limit | |
| AMOUNT_LIMIT | Expired card. | Daily transaction amount limit | |
| CARD_INVALID | Card scheme is not supported. | Card expired | |
| CARD_INVALID | Only support the card which issue by local bank, pls change local card. | Card scheme not supported | |
| CARD_INVALID | order already success or failed, cannot be closed | Only local bank cards supported | |
| OTP_VERIFY_FAILED | OTP verify failed. | OTP verification failed | |
| PAYMENT_METHOD_NOT_EXIST | Bank temporarily not available, please retry later. | Bank temporarily unavailable, please retry later | |
| PAYMENT_METHOD_SUSPEND | The payment method is in maintenance, please try again later. | Payment method under maintenance, please try again later | |
| PAYMENT_FAILED | Transaction declined. | Transaction declined | |
| PAYMENT_FAILED | There is no channel to support the payment. | No available payment channel | |
| PAYMENT_FAILED | Payment was not completed on time. | Payment timeout not completed | |
| PAYMENT_FAILED | Provider failed to process. | Payment failed | |
| Authorization Exception | AUTHENTICATE_FAILED | Your payment was declined due to authentication failure. Please try using a different card or contact your issuer for more detail. | Authorization failed |
| AUTH_EXPIRED | The authorization has expired, pls rebind. | Authorization expired | |
| AUTH_FAILED | Authorization failed. | Authorization failed or does not exist | |
| Transaction Rejection | RISK_FAILED | This transaction was automatically blocked due to identified risk. | Transaction blocked due to identified risk |
| RISK_FAILED | The payment has reached the security limit. Please advise the user to try another payment method or attempt the transaction again later. | User payment reached security limit/quota, suggest trying other payment methods | |
| RISK_FAILED | The payment has exhibited suspicious activity. We suggest that the user use a local card or disable their VPN before trying again. | Suspicious payment activity detected, suggest using local bank card or disabling VPN before retrying | |
| RISK_FAILED | The payment was declined due to unusual activity from the user. We recommend changing to a different payment method and attempting the transaction again. | Payment rejected due to high transaction risk, suggest user try other payment methods | |
| ISSUER_PAYMENT_REJECTED | Device IP restriction,please make sure your VPN is turned off when making the payment for security reason. | Device IP restricted, please disable VPN and retry | |
| PAYMENT_REJECTED | Transaction failed at processor end due to risk control.Please try using a different payment method/card. | ||
| Merchant Rejection | RISK_BLACK_LIST_FAILED | The payment was declined due to high risk with the payment. | Transaction hit merchant-side blacklist, details can be viewed in MMC |
| Declined by the card issuer | ISSUER_PAYMENT_REJECTED | Transaction failed at issuer end due to risk control. Please contact your payment method issuer for more detail. | Transaction rejected by card issuer, please consult card issuer for details |
| Inquiry | ORDER_NOT_EXIST | The order does not exist. | Order does not exist |
| Refund | REFUND_FAILED | The payment method does not support partial refund. | Refund failed - payment method does not support partial refund |
| REFUND_FAILED | The payment method does not support refund. | Refund failed - payment method does not support refund | |
| REFUND_FAILED | The refund amount is too small to refund. | Refund failed - refund amount too small | |
| REFUND_NO_INVALID | RefundNo shouldn't same with TradeNo. | Invalid refund number | |
| REFUND_INSUFFICIENT_BALANCE | Insufficient Txn currency in the to be Settled Account. | Insufficient balance to process refund | |
| ORDER_NOT_EXIST | The orginal order does not exist. | Refund order does not exist |
