Card Exceptions
Wallet Order Creation Exceptions are thrown at the time of order creation because of an issue with the request. Exceptions follow the API error format:
{
"language": "en",
"exceptionId": "TLFN89",
"errorCode": "validation.unsupportedCardType.credit",
"message": "Credit cards are not supported",
"type": "ValidationException",
"transient": false
}
A list of errors can be found below:
Type | Error Code | Message | Notes |
---|---|---|---|
ValidationException | validation.unsupportedCardType.credit | Credit cards are not supported | |
ValidationException | validation.unsupportedCardType.prepaid | PrePaid cards are not supported | |
ValidationException | validation.avs | We are not able to use this card. | General card validation failure, further details on why the card doesn’t work are unavailable. |
ValidationException | validation.avs.invalidBillingAddress | Invalid billing address | |
ValidationException | validation.avs.incorrectBillingAddress | Invalid billing address. Your address is incorrect | |
ValidationException | validation.avs.zipcode | Invalid billing address. Zip code is incorrect | |
ValidationException | validation.avs.unavailable | Invalid billing address. We were not able to validate your address. Try again later. | If our address validation service is unavailable the user will have to try the transaction later |
ValidationException | validation.invalidReferrerId | Invalid referrerAccountId | |
ValidationException | validation.phoneNumRequiresCountryCode | Please include your country code preceded by a "+" with your phone number | |
ValidationException | validation.unsupportedCountry | Country not supported: “XX” | XX is country code submitted by user |
ValidationException | validation.invalidUsState | Invalid US state submitted | |
ValidationException | validation.missingAddressState | Address state must not be empty | |
ValidationException | validation.missingGivenName | givenName must not be empty | |
ValidationException | validation.missingFamilyName | familyName must not be empty | |
ValidationException | limits.dailyLimitReached | You reached your daily limit. | |
ValidationException | limits.weeklyLimitReached | You reached your weekly limit. | |
ValidationException | limits.yearlyLimitReached | You reached your yearly limit | |
ValidationException | validation .invalidPhoneNumber | You did not specify a valid E164 Phone number. Phone numbers must follow the International E.164 format. | |
ValidationException | validation.missingAddressCity | City is mandatory | |
ValidationException | validation.stateNotSupported | If you specify a non supported US state. More info here. | |
ApiException | n/a | n/a | If there is an unhandled error by the API it will appear as an ApiException without an error code or message |
ValidationException | hostedCheckout.illegalReferrer | invalid referrer account id for hosted checkout referrer | |
ValidationException | hostedCheckout.featureNotEnabled | feature not enabled for this account id | |
ValidationException | reservation.requiredFieldValueMismatch | a reservation locked field value did not match the received value | |
ValidationException | reservation.requiredFieldEmpty | a reservation required field is empty (required values cannot be empty) | |
ValidationException | reservation.lockEmptyField | a reservation locked field is empty (locked fields cannot be empty and must match) | |
ValidationException | reservation.invalidLockedField | locked field is invalid | |
ValidationException | validation.sourceCurrencyNotSupported | the specified sourceCurrency is not supported | |
ValidationException | validation.missingGivenName | givenName is not present | |
ValidationException | validation.missingFamilyName | familyName is not present | |
ValidationException | validation.missingAddressStreet1 | missing street1 on address field | |
ValidationException | validation.missingAddressState | missing state on address field | |
ValidationException | validation.missingAddressCity | missing city on address field | |
ValidationException | validation.missingAddressState | missing state on address field | |
ValidationException | validation.amountSourceCurrency | if amount or source currency are locked, you must lock both (amount and sourceCurrency) | |
ValidationException | validation.invalidPaymentMethod | invalid payment method provided (apple-pay or debit-card are the accepted values) | |
ValidationException | validation.invalidRedirectUrl | redirectUrl is not valid (must be a full http url with protocol) | |
ValidationException | validation.invalidFailureRedirectUrl | failureRedirectUrl is not valid (must be a full http url with protocol) | |
ValidationException | validation.referrerAccountId | invalid referrer account id for hosted checkout referrer | |
ValidationException | validation.lockCountry | invalid locked country (if any of phone or country are locked, you must lock both) | |
ValidationException | validation.countryMissing | missing locked field country | |
ValidationException | validation.invalidPhoneNumber | invalid phone number (phones must be in e.164 format with country code) | |
ValidationException | validation.invalidEmail | invalid email | |
ValidationException | debitCardWhiteLabel.illegalReferrer | illegal referrer | |
ValidationException | debitCardWhiteLabel.featureNotEnabled | feature to debit card not enabled for the current authentication | |
ValidationException | validation.invalidCode | invalid authorization code | |
ValidationException | validation.invalidReservation | invalid reservation | |
ValidationException | validation.invalidCodeLength | invalid authorization code length | |
ValidationException | validation.orderNotFound | order not found | |
ValidationException | validation.invalidOrderStatus | invalid order status. Order cannot be authorized at the moment. | |
ValidationException | validation.authorizationCodeNotFound | Authorization codes not found | |
ValidationException | validation.authorizationInvalidReservation | invalid reservation id while authorizing the order | |
ValidationException | validation.authorizationMaxAttempts | max attempts to authorize an order | |
ValidationException | validation.authorizationAlreadyValidated | authorization code already validated for the current order | |
ValidationException | validation.authorizationInvalidState | invalid authorization state | |
ValidationException | validation.authorizationCodeExpired | authorization expired | |
ValidationException | validation.authorizationCodeMismatch | authorization code mismatch | |
ValidationException | validation.orderAuthorizationDetailsNotAvailable | auth details not available. This usually happens | |
ValidationException | validation.cardExpirationYear | card expiration year invalid | |
ValidationException | validation.cardExpirationMonth | card expiration month invalid | |
ValidationException | validation.cardExpirationMonthOutOfRange | card expiration month must be from 01-12 range. | |
ValidationException | validation.invalidExpirationDate | invalid expiration date, usually in the past | |
ValidationException | validation.invalidDebitCardNumber | invalid debit card number | |
ValidationException | validation.walletOrderAuthorizationCodeMissing | authorization request without a auth code on it |
Wallet Order Errors
Error messages are failures that happen after the order has been created. These errors will show up over 3 fields on the wallet order:
errorCategory
errorCode
errorMessage
A full list of errors can be found below:
errorCategory | errorCode | errorMessage | Notes |
---|---|---|---|
GENERAL | UNSUPPORTED_COUNTRY | We do not support this country. | |
GENERAL | UNSUPPORTED_STATE | We do not support this state at this time but hope to soon. | |
GENERAL | UNABLE_TO_PROCESS | Sorry, but we are unable to process your order at this time. | |
GENERAL | SMS_CONFIRMATION_FAILED | SMS confirmation failed | For debit card tx only |
GENERAL | PHONE_NUMBER_MUST_BE_MOBILE | Only mobile cellphone numbers are supported. | |
GENERAL | TRANSACTION_TIMEOUT | Transaction timed out, please try again. | |
GENERAL | UNKNOWN_ERROR | We are unable to process your order at this time. | |
PAYMENT | ISO_8583_XX | See ISO 8583 error message list -> | XX replaced by ISO 8583 code. See full list here: https://developers.google.com/standard-payments/v1/fops/card/response-codes |
PAYMENT | BILLING_ADDRESS_MISMATCH | Billing address error, please check your info and try again. | |
PAYMENT | THREE_D_SECURE_AUTHENTICATION_FAILED | 3DS authentication failed. | |
PAYMENT | UNKNOWN_ERROR | Issue with payment, please check your info and try again | |
RATE_LIMIT | EXCEEDED_DAILY_LIMIT | Transaction limit exceeded, please try again later. | |
RATE_LIMIT | EXCEEDED_WEEKLY_LIMIT | Transaction limit exceeded, please try again later. | |
RATE_LIMIT | EXCEEDED_YEARLY_LIMIT | Transaction limit exceeded, please try again later. | |
RATE_LIMIT | ORDER_AMOUNT_TOO_HIGH | Transaction amount too high, please try a smaller amount. |
Unified Error Codes
In order to achieve unified error codes across multiple payment providers we introduced two new fields in the Wallet Order object: paymentNetworkErrorCode
and internalErrorCode
.
Deprecation Notice
The field
errorCode
is deprecated now and will be removed in future releases. Please, adjust your code to useinternalErrorCode
instead from the time being.
The new internalErrorCode
field values are defined in the next table
internalErrorCode | Description | Who throws? |
---|---|---|
UNKNOWN_ERROR | Uncategorized or unexpected error | Wyre |
EXCEEDED_DAILY_LIMIT | Exceeded daily purchase limit | Wyre |
EXCEEDED_WEEKLY_LIMIT | Exceeded weekly purchase limit | Wyre |
EXCEEDED_YEARLY_LIMIT | Exceeded yearly purchase limit | Wyre |
ORDER_AMOUNT_TOO_HIGH | Payment processor. Card spend limit exceeded. | Bank |
CARD_ISSUER_ERROR | Specific card issuer (bank) error | Bank |
CARD_RESTRICTIONS | Card issuer or law restrictions | Bank |
INVALID_IDENTITY_FOUND | No valid identity found | Wyre |
NO_IDENTITY_FOUND | No identity found | Wyre |
CUSTOMER_NOT_ELIGIBLE | Customer not eligible for the order | Payment processor |
DOB_ERROR | Error with user's date of birth | Wyre |
DO_NOT_HONOR | Do not honor | Bank |
EXPIRED_CARD | Card expiration date is invalid | Bank |
GENERAL_BANK_ERROR | General bank error | Bank |
HIGH_RISK_SCORE | High risk, fraud suspicious | Fraud protection |
INSUFFICIENT_FUNDS | Your card does not have enough funds for the transaction. | Bank |
INTERNAL_ERROR | Wyre's internal error code. | Wyre |
INVALID_BILLING_ADDRESS | Invalid billing address for the card | Bank |
INVALID_CARD_AUTHENTICATION | Invalid card authentication code (CVV) | Bank |
INVALID_CARD_NUMBER | Invalid card number | Bank |
INVALID_CARD_TOKEN | Invalid card | Bank |
INVALID_PAYMENT_INFORMATION | Invalid card payment information (billing address, phone...) | Bank |
INVALID_TRANSACTION | Invalid transaction | Bank |
LIMIT_RESTRICTIONS | Card limit restrictions | Bank |
LOCATION_NOT_SUPPORTED | Geo location (country or state) not supported by Wyre or card not allowed to be used in that location. | Wyre and Bank |
LOST_STOLEN_CARD | Card reported as lost or stolen | Bank |
NO_PHONE_FOUND | No phone found for user | Wyre and Bank |
NO_SMS_CONFIRMATION | No SMS confirmation | Wyre |
ORDER_ALREADY_BEEN_PAID | Order was already been paid | Wyre |
ORDER_EXPIRED | Order has expired | Wyre |
ORDER_LOOKS_BAD | Fraud protection | Fraud protection |
PAYMENT_SCORE_ABUSE | Fraud protection | Fraud protection |
PROCESSING_TIMEOUT | Order processing timeout | Wyre |
SECURITY_VIOLATION | Fraud protection | Fraud protection |
SSN_ERROR | Invalid SSN | Fraud protection |
SUSPECTED_FRAUD | Fraud protection | Fraud protection |
TRANSACTION_NOT_PERMITTED_BY_BANK | Transaction not permitted by the issuer bank | Bank |
TRANSACTION_REJECTED_BY_BANK | Transaction rejected by the issuer bank | Bank |
Updated almost 3 years ago