Customer needs to fix input
19 error codes
Customer needs a new payment method
26 error codes
Transient issues — retry later
23 error codes
Terminal — no action available
5 error codes
Other
1 error codes
Customer needs to fix input
Your customer needs to correct something on the checkout (card details, CVV, address, OTP, etc.) and retry.| Code | Meaning | Why it failed | Recommended action |
|---|---|---|---|
CARD_ABNORMAL_CARDNUMBER | Invalid card number | Cause: The card number entered is invalid or does not exist | Ask the customer to re-enter it. |
CARD_ABNORMAL_NOTACTIVATED | Card not yet activated | Cause: The customer’s card hasn’t been activated | Ask them to activate it with their bank. |
CARD_ABNORMAL_NOTACTIVATED_ACCOUNT | Bank account not activated | Cause: The customer’s bank account is inactive | Ask them to contact their bank. |
CARD_AMOUNTOVERLIMIT | Exceeds card transaction limit | Cause: Amount exceeds the card’s per-transaction or daily limit | Customer may split the charge or use another card. |
CARD_AUTHENTICATION_FAILED | Card details verification failed | Cause: Couldn’t initiate bank verification with the card details | Ask the customer to recheck number, expiry, and CVV. |
CARD_AUTHENTICATION_FAILED_ADDRESS | Billing address mismatch | Cause: The billing address doesn’t match the issuer’s records | Ask the customer to correct it. |
CARD_AUTHENTICATION_FAILED_CVV2 | Incorrect CVV | Cause: The card’s security code is wrong | Ask the customer to re-enter it. |
CARD_AUTHENTICATION_FAILED_NEED_ADDITIONAL_AUTH | Additional verification required | Cause: The bank requires extra verification | The customer should contact their bank or complete verification on retry. |
CARD_AUTHENTICATION_FAILED_VERIFICATIONDATA | Verification data mismatch | Cause: Information provided during verification didn’t match the issuer’s records | Ask the customer to retry. |
CARD_AUTHENTICATION_FAILED_VERIFICATIONDATA | 3-D Secure data mismatch | Cause: Information provided during 3-D Secure didn’t match the issuer’s records | Ask the customer to retry. |
CARD_AUTHENTICATION_FAILED_VERIFICATIONDATA | One-time code incorrect | Cause: The customer’s one-time verification code from the bank was wrong | Ask them to request a new code and retry. |
CARD_BANK_REJECT_ISSUER_CONTACT | Issuer requires customer contact | Cause: The customer’s bank wants them to call to verify or lift a restriction before retrying | Ask the customer to contact their bank. |
CARD_BANK_REJECT_ISSUER_URGENT | Bank flagged abnormality | Cause: The customer’s bank flagged something and wants them to call immediately | Ask the customer to contact their bank right away. |
CARD_OVERLIMIT | Exceeds bank limit | Cause: Amount exceeds the customer’s credit limit or per-transaction cap | Suggest splitting the charge or using another card. |
CARD_PIN_INVALID | PIN or CVV incorrect | Cause: The PIN or CVV entered was wrong | Ask the customer to re-verify. |
EXCEED_DAILY_LIMIT | Daily limit reached | Cause: The customer’s daily spending hit the bank’s cap | Suggest retrying tomorrow or using another card. |
INITIATE_AUTHENTICATION_FAILED | Verification could not start | Cause: Couldn’t start bank verification with this card number | Ask the customer to recheck the card number. |
USER_CPF_INVALID | Brazilian Tax ID (CPF) invalid | Cause: The Brazilian Tax ID the customer entered is malformed or doesn’t exist | Ask them to correct it. |
CREATE_ORDER_EXPIRED_TOKEN | Checkout page expired | Cause: The customer took too long on the checkout page | Ask them to start a new checkout. |
Customer needs a new payment method
This card can’t be used. Ask the customer to use a different card or payment method.| Code | Meaning | Why it failed | Recommended action |
|---|---|---|---|
CARD_ABNORMAL | Card in abnormal status | Cause: The customer’s card has been reported lost or frozen | Ask them to use another payment method. |
CARD_ABNORMAL_CLOSED | Bank account closed | Cause: The customer’s bank account is closed | Ask them to use another payment method. |
CARD_ABNORMAL_CLOSED_FROMACCOUNT | Source account closed | Cause: The funding account linked to the customer’s card is closed | Ask them to use another method. |
CARD_ABNORMAL_EXPIRED | Card expired | Cause: The customer’s card has expired | Ask them to update it or use a different card. |
CARD_ABNORMAL_FRAUD | Issuer flagged as fraud | Cause: The customer’s bank blocked this on fraud suspicion | Ask them to contact the bank or use another card. |
CARD_ABNORMAL_ISSUER | Issuer not registered | Cause: The customer’s bank isn’t registered with the card network | Ask them to use a different card. |
CARD_ABNORMAL_LOST | Card reported lost | Cause: The customer’s card was reported lost | Ask them to use another payment method. |
CARD_ABNORMAL_NOCREDIT | No linked credit account | Cause: Couldn’t find a credit account tied to the customer’s card | Ask them to verify or use another card. |
CARD_ABNORMAL_STOLEN | Card reported stolen | Cause: The customer’s card has been reported lost or stolen | Ask them to use another payment method. |
CARD_BANK_REJECT_BLOCK | Bank account blocked | Cause: The customer’s bank account is frozen | Ask them to use another method or contact the bank. |
CARD_BANK_REJECT_FRAUD | Bank blocked for fraud | Cause: The customer’s bank flagged this transaction as fraud and blocked it | Ask them to use another method. |
CARD_BANK_REJECT_LAW | Account restricted by law | Cause: The customer’s account is legally restricted from transactions | Ask them to use another method. |
CARD_BANK_REJECT_REVOKEALL_ACCOUNT | Account access revoked | Cause: The customer’s account access has been fully revoked | Ask them to use another method. |
CARD_INSUFFICIENT_BALANCE | Insufficient funds | Cause: The customer’s card doesn’t have enough funds | Ask them to top up or use another card. |
CARD_INVALID_TRANSACTION | Card type not supported | Cause: The customer’s card doesn’t support this transaction type | Ask them to use a different card. |
CARD_PAYMENT_RETRY_LIMIT | Retry limit reached | Cause: Too many failed attempts on this card; the network has blocked further retries | Ask the customer to use a different card. |
CARD_ABNORMAL_NOCHECKING | Card couldn’t be verified | Cause: The issuer flagged the customer’s card as abnormal and couldn’t verify it | Ask them to use another card. |
CARD_ABNORMAL_RESTRICTED | Card restricted in this region | Cause: The customer’s card is restricted or locked in this region | Ask them to use another method. |
CARD_NOTALLOWED_TXN | Transaction type not allowed | Cause: The issuer prohibits this transaction type on this card (e.g. cross-border) | Ask the customer to use a different card. |
PAYMENT_REJECTION | Blocked by Waffo risk | Cause: This transaction was blocked by Waffo’s risk rules | Contact support if you think this is wrong. |
PAYMENT_CHANNEL_REJECTION | Payment rejected | Cause: The payment service rejected this transaction on its own risk rules | Ask the customer to use another method. |
PAYMENT_CHANNEL_REJECTION | Subscription charge rejected | Cause: The saved payment method for this subscription has not been verified | Ask the customer to verify it in the customer portal. |
PAYMENT_CHANNEL_REJECTION | Subscription charge failed: card expired | Cause: The card on file for this subscription has expired | Ask the customer to update it in the customer portal. |
PAYMENT_CHANNEL_REJECTION | Invalid mobile number | Cause: The customer’s mobile number format is invalid | Ask them to correct it. |
CREATE_ORDER_FAILED | Payment service under maintenance | Cause: The payment service is undergoing maintenance | Ask the customer to retry later. |
CREATE_ORDER_FAILED | Payment service declined | Cause: The payment service rejected this transaction on its own risk rules | Ask the customer to use another method. |
Transient issues — retry later
A temporary glitch in the bank, card network, or payment service. The customer can usually retry in a few minutes.| Code | Meaning | Why it failed | Recommended action |
|---|---|---|---|
CARD_AUTHENTICATION_ERROR | Verification protocol error | Cause: A protocol or communication issue occurred during verification | Ask the customer to retry shortly. |
CARD_BANK_REJECT_REVOKE_SINGLE | Bank revoked this transaction | Cause: The customer’s bank revoked this specific authorization | Ask them to retry. |
CARD_BANK_REJECT_SECURITY | Blocked by bank security | Cause: The customer’s bank blocked this for security | Ask them to retry later or contact the bank. |
CARD_COUNTOVERLIMIT | Too many attempts | Cause: The customer’s card has hit a frequency limit | Ask them to retry later. |
ISSUE_BANK_DECLINE | Issuer declined (no reason) | Cause: The customer’s bank declined without specifying why | Ask them to retry later. |
RISK_TRANSACTION_LIMIT | Waffo risk control triggered | Cause: Waffo’s amount or velocity rules blocked this transaction | Ask the customer to retry later or use another card. |
TIMEOUT_CHANNEL_CLOSE | Payment service timed out | Cause: The payment service didn’t respond in time, so this attempt was auto-closed | Ask the customer to retry. |
CARD_BANK_REJECT | Bank declined | Cause: The customer’s bank declined this without a specific reason | Ask them to retry later. |
CARD_GENERAL_ERROR | Bank generic error | Cause: The bank returned a non-specific error | Ask the customer to retry or switch methods. |
CARD_ORG_OTHER_ERROR | Card network error | Cause: The card network (Visa, Mastercard, etc.) returned an internal error | Ask the customer to retry. |
CARD_SYSTEMERROR | Bank temporarily down | Cause: The customer’s bank is having transient issues | Ask them to retry shortly. |
CREATE_ORDER_ERROR | Payment initiation timed out | Cause: Network timeout when creating the transaction | Ask the customer to retry. |
PAYMENT_CHANNEL_ERROR | Payment service communication error | Cause: An unexpected error occurred communicating with the payment service | Ask the customer to retry. |
PAYMENT_CHANNEL_ERROR | Payment service network error | Cause: The network connection to the payment service failed | Ask the customer to retry. |
PAYMENT_CHANNEL_ERROR | Payment service communication error | Cause: An unexpected error occurred communicating with the payment service | Ask the customer to retry. |
PAYMENT_CHANNEL_ERROR | Unexpected payment service response | Cause: The payment service returned an unparseable response | Ask the customer to retry. |
PAYMENT_FAILED | Payment failed | Cause: See the transaction detail for the specific reason | Contact support if unclear. |
PAYMENT_FAILED | Customer abandoned checkout | Cause: The customer left the checkout page without finishing | Reach out if you want to recover the sale. |
PAYMENT_FAILED | Payment service notification failed | Cause: The payment may have succeeded but the notification didn’t arrive | Check the order status again later. |
PAYMENT_FAILED | Payment service error | Cause: The payment service didn’t give specific details | Ask the customer to retry or switch methods. |
SYSTEM_ERROR | Internal system error | Cause: A transient internal error in Waffo | Ask the customer to retry; contact support if persistent. |
UNKNOWN_ERROR | Unknown error | Cause: An undefined exception occurred | Ask the customer to retry; contact support if it keeps happening. |
UNSPECIFIED_PAYMENT_FAILURE | Payment failed (no specific reason) | Cause: The bank or payment service didn’t give a specific reason | Ask the customer to try another method. |
Terminal — no action available
The payment never went through and the transaction is closed. No remediation is possible; you can still reach out to the customer if you want to recover the sale.| Code | Meaning | Why it failed | Recommended action |
|---|---|---|---|
CANCEL_CLOSE | Order closed | Cause: This order was closed | No action needed. |
TIMEOUT_CLOSE | Customer payment timeout | Cause: The customer didn’t pay in time and the order was closed | Send a new payment link if needed. |
USER_CANCEL_CLOSE | Customer canceled | Cause: The customer canceled this order | Reach out if you want to recover the sale. |
CARD_CARDHOLDER_REJECT | Customer declined at bank | Cause: The customer canceled the payment at their bank | Reach out if you want to recover the sale. |
MERCHANT_ORDER_TIMEOUT | Order expired | Cause: The order’s expiration passed without payment and was auto-closed | Send a new payment link if needed. |
Other
Bank-side duplicate detection.| Code | Meaning | Why it failed | Recommended action |
|---|---|---|---|
CARD_BANK_REJECT_DUPLICATE | Duplicate transaction | Cause: The bank detected this as a duplicate and blocked it to prevent double-charging | The customer should contact the bank if it isn’t. |