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
Where failures happen
Every failure code maps to a stage of the payment journey. The category boxes below link to the matching sections on this page. For subscription renewals the customer isn’t present — the saved payment method is charged automatically: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 | Customer didn’t complete the payment in the payment channel in time | Cause: The customer confirmed the payment at checkout and was handed off to the payment channel, but never finished paying there (e.g. the QR code was not scanned or confirmed). The transaction closed automatically when the payment window expired | This is not a platform or checkout failure. If the customer still wants to purchase, have them start a new payment. |
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. |