{"metadata":{"image":[],"title":"","description":""},"api":{"url":"","auth":"required","results":{"codes":[]},"settings":"","params":[]},"next":{"description":"","pages":[]},"title":"Card Exceptions","type":"basic","slug":"wallet-order-creation-exceptions","excerpt":"","body":"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:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n    \\\"language\\\": \\\"en\\\",\\n    \\\"exceptionId\\\": \\\"TLFN89\\\",\\n    \\\"errorCode\\\": \\\"validation.unsupportedCardType.credit\\\",\\n    \\\"message\\\": \\\"Credit cards are not supported\\\",\\n    \\\"type\\\": \\\"ValidationException\\\",\\n    \\\"transient\\\": false\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\nA list of errors can be found below:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Type\",\n    \"h-1\": \"Error Code\",\n    \"0-0\": \"ValidationException\",\n    \"0-1\": \"validation.unsupportedCardType.credit\",\n    \"h-2\": \"Message\",\n    \"0-2\": \"Credit cards are not supported\",\n    \"1-0\": \"ValidationException\",\n    \"1-1\": \"validation.unsupportedCardType.prepaid\",\n    \"1-2\": \"PrePaid cards are not supported\",\n    \"2-0\": \"ValidationException\",\n    \"2-1\": \"validation.avs\",\n    \"2-2\": \"We are not able to use this card.\",\n    \"65-0\": \"`secretKey`\",\n    \"65-1\": \"**(only if auth_type is secretKey)** More information [here](https://docs.sendwyre.com/docs/widget-api#authorization)\\n\\n**Optional**\",\n    \"65-2\": \"`your_secret_key`\",\n    \"12-0\": \"ValidationException\",\n    \"12-1\": \"validation.missingGivenName\",\n    \"12-2\": \"givenName must not be empty\",\n    \"13-0\": \"ValidationException\",\n    \"13-1\": \"validation.missingFamilyName\",\n    \"13-2\": \"familyName must not be empty\",\n    \"64-0\": \"`accountId`\",\n    \"64-1\": \"Your Wyre Account ID. This associates accounts created inside the widget with you, though it does not give you access to their details\",\n    \"0-3\": \"\",\n    \"3-0\": \"ValidationException\",\n    \"4-0\": \"ValidationException\",\n    \"5-0\": \"ValidationException\",\n    \"6-0\": \"ValidationException\",\n    \"7-0\": \"ValidationException\",\n    \"8-0\": \"ValidationException\",\n    \"9-0\": \"ValidationException\",\n    \"10-0\": \"ValidationException\",\n    \"11-0\": \"ValidationException\",\n    \"h-3\": \"Notes\",\n    \"14-0\": \"ValidationException\",\n    \"15-0\": \"ValidationException\",\n    \"16-0\": \"ValidationException\",\n    \"4-1\": \"validation.avs.incorrectBillingAddress\",\n    \"2-3\": \"General card validation failure, further details on why the card doesn’t work are unavailable.\",\n    \"3-1\": \"validation.avs.invalidBillingAddress\",\n    \"3-2\": \"Invalid billing address\",\n    \"4-2\": \"Invalid billing address. Your address is incorrect\",\n    \"5-1\": \"validation.avs.zipcode\",\n    \"5-2\": \"Invalid billing address. Zip code is incorrect\",\n    \"6-1\": \"validation.avs.unavailable\",\n    \"6-2\": \"Invalid billing address. We were not able to validate your address. Try again later.\",\n    \"6-3\": \"If our address validation service is unavailable the user will have to try the transaction later\",\n    \"7-1\": \"validation.invalidReferrerId\",\n    \"7-2\": \"Invalid referrerAccountId\",\n    \"8-1\": \"validation.phoneNumRequiresCountryCode\",\n    \"8-2\": \"Please include your country code preceded by a \\\"+\\\" with your phone number\",\n    \"9-1\": \"validation.unsupportedCountry\",\n    \"9-2\": \"Country not supported: “XX”\",\n    \"9-3\": \"XX is country code submitted by user\",\n    \"10-1\": \"validation.invalidUsState\",\n    \"10-2\": \"Invalid US state submitted\",\n    \"11-1\": \"validation.missingAddressState\",\n    \"11-2\": \"Address state must not be empty\",\n    \"14-1\": \"limits.dailyLimitReached\",\n    \"14-2\": \"You reached your daily limit.\",\n    \"15-1\": \"limits.weeklyLimitReached\",\n    \"15-2\": \"You reached your weekly limit.\",\n    \"16-1\": \"limits.yearlyLimitReached\",\n    \"16-2\": \"You reached your yearly limit\",\n    \"20-0\": \"ApiException\",\n    \"20-1\": \"n/a\",\n    \"20-2\": \"n/a\",\n    \"20-3\": \"If there is an unhandled error by the API it will appear as an ApiException without an error code or message\",\n    \"17-0\": \"ValidationException\",\n    \"17-1\": \"validation .invalidPhoneNumber\",\n    \"17-2\": \"You did not specify a valid E164 Phone number. \\nPhone numbers must follow the International [E.164](https://en.wikipedia.org/wiki/E.164#:~:text=E.164%20defines%20a%20general,excluding%20the%20international%20call%20prefix.&text=As%20described%20in%20by%20the,code%20(1%20to%203%20digits)) format.\",\n    \"18-0\": \"ValidationException\",\n    \"18-1\": \"validation.missingAddressCity\",\n    \"18-2\": \"City is mandatory\",\n    \"19-0\": \"ValidationException\",\n    \"19-1\": \"validation.stateNotSupported\",\n    \"19-2\": \"If you specify a non supported US state. More info [here](https://app.gitbook.com/:::at:::wyre-1/s/wyre-inital-docs/wyre-card-processing/the-wyre-widget/untitled).\",\n    \"21-0\": \"ValidationException\",\n    \"22-0\": \"ValidationException\",\n    \"23-0\": \"ValidationException\",\n    \"24-0\": \"ValidationException\",\n    \"25-0\": \"ValidationException\",\n    \"26-0\": \"ValidationException\",\n    \"27-0\": \"ValidationException\",\n    \"28-0\": \"ValidationException\",\n    \"29-0\": \"ValidationException\",\n    \"30-0\": \"ValidationException\",\n    \"31-0\": \"ValidationException\",\n    \"32-0\": \"ValidationException\",\n    \"33-0\": \"ValidationException\",\n    \"34-0\": \"ValidationException\",\n    \"35-0\": \"ValidationException\",\n    \"36-0\": \"ValidationException\",\n    \"37-0\": \"ValidationException\",\n    \"38-0\": \"ValidationException\",\n    \"39-0\": \"ValidationException\",\n    \"40-0\": \"ValidationException\",\n    \"41-0\": \"ValidationException\",\n    \"42-0\": \"ValidationException\",\n    \"21-1\": \"hostedCheckout.illegalReferrer\",\n    \"21-2\": \"invalid referrer account id for hosted checkout referrer\",\n    \"22-1\": \"hostedCheckout.featureNotEnabled\",\n    \"22-2\": \"feature not enabled  for this account id\",\n    \"23-1\": \"reservation.requiredFieldValueMismatch\",\n    \"23-2\": \"a reservation locked field value did not match the received value\",\n    \"24-1\": \"reservation.requiredFieldEmpty\",\n    \"24-2\": \"a reservation required field is empty (required values cannot be empty)\",\n    \"25-1\": \"reservation.lockEmptyField\",\n    \"25-2\": \"a reservation locked field is empty (locked fields cannot be empty and must match)\",\n    \"26-1\": \"reservation.invalidLockedField\",\n    \"26-2\": \"locked field is invalid\",\n    \"27-1\": \"validation.sourceCurrencyNotSupported\",\n    \"27-2\": \"the specified sourceCurrency is not supported\",\n    \"28-1\": \"validation.missingGivenName\",\n    \"28-2\": \"givenName is not present\",\n    \"29-1\": \"validation.missingFamilyName\",\n    \"29-2\": \"familyName is not present\",\n    \"30-1\": \"validation.missingAddressStreet1\",\n    \"30-2\": \"missing street1 on address field\",\n    \"31-1\": \"validation.missingAddressState\",\n    \"31-2\": \"missing state on address field\",\n    \"32-1\": \"validation.missingAddressCity\",\n    \"32-2\": \"missing city on address field\",\n    \"33-1\": \"validation.missingAddressState\",\n    \"33-2\": \"missing state on address field\",\n    \"34-1\": \"validation.amountSourceCurrency\",\n    \"34-2\": \"if amount or source currency are locked, you must lock both (amount and sourceCurrency)\",\n    \"35-1\": \"validation.invalidPaymentMethod\",\n    \"35-2\": \"invalid payment method provided (apple-pay or debit-card are the accepted values)\",\n    \"36-1\": \"validation.invalidRedirectUrl\",\n    \"36-2\": \"redirectUrl is not valid (must be a full http url with protocol)\",\n    \"37-1\": \"validation.invalidFailureRedirectUrl\",\n    \"37-2\": \"failureRedirectUrl is not valid (must be a full http url with protocol)\",\n    \"38-1\": \"validation.referrerAccountId\",\n    \"38-2\": \"invalid referrer account id for hosted checkout referrer\",\n    \"39-1\": \"validation.lockCountry\",\n    \"39-2\": \"invalid locked country (if any of phone or country are locked, you must lock both)\",\n    \"40-1\": \"validation.countryMissing\",\n    \"40-2\": \"missing locked field country\",\n    \"41-1\": \"validation.invalidPhoneNumber\",\n    \"41-2\": \"invalid phone number (phones must be in e.164 format with country code)\",\n    \"42-1\": \"validation.invalidEmail\",\n    \"42-2\": \"invalid email\",\n    \"43-0\": \"ValidationException\",\n    \"44-0\": \"ValidationException\",\n    \"45-0\": \"ValidationException\",\n    \"46-0\": \"ValidationException\",\n    \"47-0\": \"ValidationException\",\n    \"48-0\": \"ValidationException\",\n    \"49-0\": \"ValidationException\",\n    \"50-0\": \"ValidationException\",\n    \"51-0\": \"ValidationException\",\n    \"52-0\": \"ValidationException\",\n    \"53-0\": \"ValidationException\",\n    \"54-0\": \"ValidationException\",\n    \"55-0\": \"ValidationException\",\n    \"56-0\": \"ValidationException\",\n    \"57-0\": \"ValidationException\",\n    \"58-0\": \"ValidationException\",\n    \"59-0\": \"ValidationException\",\n    \"60-0\": \"ValidationException\",\n    \"61-0\": \"ValidationException\",\n    \"62-0\": \"ValidationException\",\n    \"63-0\": \"ValidationException\",\n    \"43-1\": \"debitCardWhiteLabel.illegalReferrer\",\n    \"44-1\": \"debitCardWhiteLabel.featureNotEnabled\",\n    \"45-1\": \"validation.invalidCode\",\n    \"46-1\": \"validation.invalidReservation\",\n    \"47-1\": \"validation.invalidCodeLength\",\n    \"48-1\": \"validation.orderNotFound\",\n    \"49-1\": \"validation.invalidOrderStatus\",\n    \"50-1\": \"validation.authorizationCodeNotFound\",\n    \"51-1\": \"validation.authorizationInvalidReservation\",\n    \"52-1\": \"validation.authorizationMaxAttempts\",\n    \"53-1\": \"validation.authorizationAlreadyValidated\",\n    \"54-1\": \"validation.authorizationInvalidState\",\n    \"55-1\": \"validation.authorizationCodeExpired\",\n    \"56-1\": \"validation.authorizationCodeMismatch\",\n    \"57-1\": \"validation.orderAuthorizationDetailsNotAvailable\",\n    \"58-1\": \"validation.cardExpirationYear\",\n    \"59-1\": \"validation.cardExpirationMonth\",\n    \"60-1\": \"validation.cardExpirationMonthOutOfRange\",\n    \"61-1\": \"validation.invalidExpirationDate\",\n    \"62-1\": \"validation.invalidDebitCardNumber\",\n    \"63-1\": \"validation.walletOrderAuthorizationCodeMissing\",\n    \"43-2\": \"illegal referrer\",\n    \"44-2\": \"feature to debit card not enabled for the current authentication\",\n    \"45-2\": \"invalid authorization code\",\n    \"46-2\": \"invalid reservation\",\n    \"47-2\": \"invalid authorization code length\",\n    \"48-2\": \"order not found\",\n    \"49-2\": \"invalid order status. Order cannot be authorized at the moment.\",\n    \"50-2\": \"Authorization codes not found\",\n    \"51-2\": \"invalid reservation id while authorizing the order\",\n    \"52-2\": \"max attempts to authorize an order\",\n    \"53-2\": \"authorization code already validated for the current order\",\n    \"54-2\": \"invalid authorization state\",\n    \"55-2\": \"authorization expired\",\n    \"56-2\": \"authorization code mismatch\",\n    \"57-2\": \"auth details not available. This usually happens\",\n    \"58-2\": \"card expiration year invalid\",\n    \"59-2\": \"card expiration month invalid\",\n    \"60-2\": \"card expiration month must be from 01-12 range.\",\n    \"61-2\": \"invalid expiration date, usually in the past\",\n    \"62-2\": \"invalid debit card number\",\n    \"63-2\": \"authorization request without a auth code on it\"\n  },\n  \"cols\": 4,\n  \"rows\": 64\n}\n[/block]\n\n[block:api-header]\n{\n  \"title\": \"Wallet Order Errors\"\n}\n[/block]\nError messages are failures that happen after the order has been created. These errors will show up over 3 fields on the wallet order:\n\n`errorCategory`\n`errorCode`\n`errorMessage`\n\nA full list of errors can be found below:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"errorCategory\",\n    \"h-1\": \"errorCode\",\n    \"h-2\": \"errorMessage\",\n    \"h-3\": \"Notes\",\n    \"0-0\": \"GENERAL\",\n    \"1-0\": \"GENERAL\",\n    \"2-0\": \"GENERAL\",\n    \"3-0\": \"GENERAL\",\n    \"4-0\": \"GENERAL\",\n    \"5-0\": \"GENERAL\",\n    \"6-0\": \"GENERAL\",\n    \"0-1\": \"UNSUPPORTED_COUNTRY\",\n    \"0-2\": \"We do not support this country.\",\n    \"1-1\": \"UNSUPPORTED_STATE\",\n    \"1-2\": \"We do not support this state at this time but hope to soon.\",\n    \"2-1\": \"UNABLE_TO_PROCESS\",\n    \"2-2\": \"Sorry, but we are unable to process your order at this time.\",\n    \"3-1\": \"SMS_CONFIRMATION_FAILED\",\n    \"3-2\": \"SMS confirmation failed\",\n    \"4-1\": \"PHONE_NUMBER_MUST_BE_MOBILE\",\n    \"4-2\": \"Only mobile cellphone numbers are supported.\",\n    \"5-1\": \"TRANSACTION_TIMEOUT\",\n    \"5-2\": \"Transaction timed out, please try again.\",\n    \"6-1\": \"UNKNOWN_ERROR\",\n    \"6-2\": \"We are unable to process your order at this time.\",\n    \"3-3\": \"For debit card tx only\",\n    \"7-0\": \"PAYMENT\",\n    \"8-0\": \"PAYMENT\",\n    \"10-0\": \"PAYMENT\",\n    \"7-1\": \"ISO_8583_XX\",\n    \"8-1\": \"BILLING_ADDRESS_MISMATCH\",\n    \"10-1\": \"UNKNOWN_ERROR\",\n    \"7-2\": \"See ISO 8583 error message list ->\",\n    \"7-3\": \"XX replaced by ISO 8583 code. See full list here: https://developers.google.com/standard-payments/v1/fops/card/response-codes\",\n    \"8-2\": \"Billing address error, please check your info and try again.\",\n    \"10-2\": \"Issue with payment, please check your info and try again\",\n    \"11-0\": \"RATE_LIMIT\",\n    \"12-0\": \"RATE_LIMIT\",\n    \"13-0\": \"RATE_LIMIT\",\n    \"14-0\": \"RATE_LIMIT\",\n    \"11-1\": \"EXCEEDED_DAILY_LIMIT\",\n    \"11-2\": \"Transaction limit exceeded, please try again later.\",\n    \"12-1\": \"EXCEEDED_WEEKLY_LIMIT\",\n    \"12-2\": \"Transaction limit exceeded, please try again later.\",\n    \"13-1\": \"EXCEEDED_YEARLY_LIMIT\",\n    \"13-2\": \"Transaction limit exceeded, please try again later.\",\n    \"14-1\": \"ORDER_AMOUNT_TOO_HIGH\",\n    \"14-2\": \"Transaction amount too high, please try a smaller amount.\",\n    \"9-0\": \"PAYMENT\",\n    \"9-1\": \"THREE_D_SECURE_AUTHENTICATION_FAILED\",\n    \"9-2\": \"3DS authentication failed.\"\n  },\n  \"cols\": 4,\n  \"rows\": 15\n}\n[/block]\n\n[block:api-header]\n{\n  \"title\": \"Unified Error Codes\"\n}\n[/block]\nIn order to achieve unified error codes across multiple payment providers we introduced two new fields in the Wallet Order object: `paymentNetworkErrorCode` and `internalErrorCode`.\n\n\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"Deprecation Notice\",\n  \"body\": \"The field `errorCode` is deprecated now and will be removed in future releases. Please, adjust your code to use `internalErrorCode`  instead from the time being.\"\n}\n[/block]\nThe new `internalErrorCode` field values are defined in the next table\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"internalErrorCode\",\n    \"h-1\": \"Description\",\n    \"0-0\": \"UNKNOWN_ERROR\",\n    \"1-0\": \"EXCEEDED_DAILY_LIMIT\",\n    \"2-0\": \"EXCEEDED_WEEKLY_LIMIT\",\n    \"3-0\": \"EXCEEDED_YEARLY_LIMIT\",\n    \"4-0\": \"ORDER_AMOUNT_TOO_HIGH\",\n    \"5-0\": \"CARD_ISSUER_ERROR\",\n    \"6-0\": \"CARD_RESTRICTIONS\",\n    \"7-0\": \"INVALID_IDENTITY_FOUND\",\n    \"8-0\": \"NO_IDENTITY_FOUND\",\n    \"9-0\": \"CUSTOMER_NOT_ELIGIBLE\",\n    \"10-0\": \"DOB_ERROR\",\n    \"11-0\": \"DO_NOT_HONOR\",\n    \"12-0\": \"EXPIRED_CARD\",\n    \"13-0\": \"GENERAL_BANK_ERROR\",\n    \"14-0\": \"HIGH_RISK_SCORE\",\n    \"15-0\": \"INSUFFICIENT_FUNDS\",\n    \"16-0\": \"INTERNAL_ERROR\",\n    \"17-0\": \"INVALID_BILLING_ADDRESS\",\n    \"18-0\": \"INVALID_CARD_AUTHENTICATION\",\n    \"19-0\": \"INVALID_CARD_NUMBER\",\n    \"20-0\": \"INVALID_CARD_TOKEN\",\n    \"21-0\": \"INVALID_PAYMENT_INFORMATION\",\n    \"22-0\": \"INVALID_TRANSACTION\",\n    \"23-0\": \"LIMIT_RESTRICTIONS\",\n    \"24-0\": \"LOCATION_NOT_SUPPORTED\",\n    \"25-0\": \"LOST_STOLEN_CARD\",\n    \"26-0\": \"NO_PHONE_FOUND\",\n    \"27-0\": \"NO_SMS_CONFIRMATION\",\n    \"28-0\": \"ORDER_ALREADY_BEEN_PAID\",\n    \"29-0\": \"ORDER_EXPIRED\",\n    \"30-0\": \"ORDER_LOOKS_BAD\",\n    \"31-0\": \"PAYMENT_SCORE_ABUSE\",\n    \"32-0\": \"PROCESSING_TIMEOUT\",\n    \"33-0\": \"SECURITY_VIOLATION\",\n    \"34-0\": \"SSN_ERROR\",\n    \"35-0\": \"SUSPECTED_FRAUD\",\n    \"36-0\": \"TRANSACTION_NOT_PERMITTED_BY_BANK\",\n    \"37-0\": \"TRANSACTION_REJECTED_BY_BANK\",\n    \"15-1\": \"Your card does not have enough funds for the transaction.\",\n    \"16-1\": \"Wyre's internal error code.\",\n    \"17-1\": \"Invalid billing address for the card\",\n    \"18-1\": \"Invalid  card authentication code (CVV)\",\n    \"19-1\": \"Invalid card number\",\n    \"20-1\": \"Invalid card\",\n    \"21-1\": \"Invalid card payment information (billing address, phone...)\",\n    \"0-1\": \"Uncategorized or unexpected error\",\n    \"1-1\": \"Exceeded daily purchase limit\",\n    \"2-1\": \"Exceeded weekly purchase limit\",\n    \"3-1\": \"Exceeded yearly purchase limit\",\n    \"4-1\": \"Payment processor. Card spend limit exceeded.\",\n    \"4-2\": \"Bank\",\n    \"5-1\": \"Specific card issuer (bank) error\",\n    \"6-1\": \"Card issuer or law restrictions\",\n    \"6-2\": \"Bank\",\n    \"7-1\": \"No valid identity found\",\n    \"8-1\": \"No identity found\",\n    \"7-2\": \"Wyre\",\n    \"8-2\": \"Wyre\",\n    \"9-1\": \"Customer not eligible for the order\",\n    \"9-2\": \"Payment processor\",\n    \"10-1\": \"Error with user's date of birth\",\n    \"11-1\": \"Do not honor\",\n    \"11-2\": \"Bank\",\n    \"12-1\": \"Card expiration date is invalid\",\n    \"12-2\": \"Bank\",\n    \"13-1\": \"General bank error\",\n    \"13-2\": \"Bank\",\n    \"14-1\": \"High risk, fraud suspicious\",\n    \"14-2\": \"Fraud protection\",\n    \"15-2\": \"Bank\",\n    \"16-2\": \"Wyre\",\n    \"17-2\": \"Bank\",\n    \"18-2\": \"Bank\",\n    \"19-2\": \"Bank\",\n    \"20-2\": \"Bank\",\n    \"21-2\": \"Bank\",\n    \"22-1\": \"Invalid transaction\",\n    \"22-2\": \"Bank\",\n    \"23-1\": \"Card limit restrictions\",\n    \"23-2\": \"Bank\",\n    \"24-1\": \"Geo location (country or state) not supported by Wyre or card not allowed to be used in that location.\",\n    \"24-2\": \"Wyre and Bank\",\n    \"25-1\": \"Card reported as lost or stolen\",\n    \"26-1\": \"No phone found for user\",\n    \"25-2\": \"Bank\",\n    \"26-2\": \"Wyre and Bank\",\n    \"27-1\": \"No SMS confirmation\",\n    \"27-2\": \"Wyre\",\n    \"28-1\": \"Order was already been paid\",\n    \"28-2\": \"Wyre\",\n    \"29-1\": \"Order has expired\",\n    \"29-2\": \"Wyre\",\n    \"30-1\": \"Fraud protection\",\n    \"30-2\": \"Fraud protection\",\n    \"31-1\": \"Fraud protection\",\n    \"31-2\": \"Fraud protection\",\n    \"32-1\": \"Order processing timeout\",\n    \"32-2\": \"Wyre\",\n    \"33-1\": \"Fraud protection\",\n    \"33-2\": \"Fraud protection\",\n    \"34-1\": \"Invalid SSN\",\n    \"34-2\": \"Fraud protection\",\n    \"35-1\": \"Fraud protection\",\n    \"35-2\": \"Fraud protection\",\n    \"36-1\": \"Transaction not permitted by the issuer bank\",\n    \"36-2\": \"Bank\",\n    \"37-1\": \"Transaction rejected by the issuer bank\",\n    \"37-2\": \"Bank\",\n    \"10-2\": \"Wyre\",\n    \"5-2\": \"Bank\",\n    \"0-2\": \"Wyre\",\n    \"1-2\": \"Wyre\",\n    \"2-2\": \"Wyre\",\n    \"3-2\": \"Wyre\",\n    \"h-2\": \"Who throws?\"\n  },\n  \"cols\": 3,\n  \"rows\": 38\n}\n[/block]","updates":["5eb05ad74075d00029eb1fa8"],"order":5,"isReference":true,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"_id":"5eab352229feff0021998ff2","createdAt":"2020-04-30T20:29:22.735Z","user":"5dcd9f0b28d74f003b86eca6","category":{"sync":{"isSync":false,"url":""},"pages":[],"title":"Wyre Checkout","slug":"wyre-sdk","order":3,"from_sync":false,"reference":true,"_id":"5bc63538e5a6ba000d22ee6d","project":"550f74bb6fc8130d0038aad3","version":"550f75de61d9d30d00af9e01","createdAt":"2018-10-16T19:00:08.331Z","__v":1},"version":{"version":"3","version_clean":"3.0.0","codename":"","is_stable":true,"is_beta":true,"is_hidden":false,"is_deprecated":false,"categories":["550f75de61d9d30d00af9e02","551027e38579861900a86698","551029e08579861900a8669a","551029e7498062190006328a","5bc633a722d682005c9ad9e4","5bc633b08c4b0b000d6a7eaa","5bc633b48f3ff600626e3e18","5bc63538e5a6ba000d22ee6d","5bc63587a18a6b000decd295","5bc635c0937fcb0056223d9c","5bc6360f42f41800319aeaa6","5be5d13ff1d319002baca9ce","5be5d2287cd14d00291fbfdb","5be8b3b09f7cb70023c56a39","5be8b3cbb910100044e20206","5c1d769a4f6aed001fe527f0","5c402942010f0d001496dded","5e8127d61c906800374eeb1c","5f2768c98622b8005106544a","5f2768d05702ca0011f7655e","5f276e5348d2b600321aef9b","5f276fd300e519001139200a","5f9a2cb79dafe500259281a7","5fd92bf362bb7301b00e48ba"],"_id":"550f75de61d9d30d00af9e01","__v":24,"releaseDate":"2015-03-23T02:09:34.221Z","project":"550f74bb6fc8130d0038aad3","createdAt":"2015-03-23T02:09:34.221Z","forked_from":"550f74bb6fc8130d0038aad6"},"project":"550f74bb6fc8130d0038aad3","__v":1,"parentDoc":null}
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: [block:code] { "codes": [ { "code": "{\n \"language\": \"en\",\n \"exceptionId\": \"TLFN89\",\n \"errorCode\": \"validation.unsupportedCardType.credit\",\n \"message\": \"Credit cards are not supported\",\n \"type\": \"ValidationException\",\n \"transient\": false\n}", "language": "json" } ] } [/block] A list of errors can be found below: [block:parameters] { "data": { "h-0": "Type", "h-1": "Error Code", "0-0": "ValidationException", "0-1": "validation.unsupportedCardType.credit", "h-2": "Message", "0-2": "Credit cards are not supported", "1-0": "ValidationException", "1-1": "validation.unsupportedCardType.prepaid", "1-2": "PrePaid cards are not supported", "2-0": "ValidationException", "2-1": "validation.avs", "2-2": "We are not able to use this card.", "65-0": "`secretKey`", "65-1": "**(only if auth_type is secretKey)** More information [here](https://docs.sendwyre.com/docs/widget-api#authorization)\n\n**Optional**", "65-2": "`your_secret_key`", "12-0": "ValidationException", "12-1": "validation.missingGivenName", "12-2": "givenName must not be empty", "13-0": "ValidationException", "13-1": "validation.missingFamilyName", "13-2": "familyName must not be empty", "64-0": "`accountId`", "64-1": "Your Wyre Account ID. This associates accounts created inside the widget with you, though it does not give you access to their details", "0-3": "", "3-0": "ValidationException", "4-0": "ValidationException", "5-0": "ValidationException", "6-0": "ValidationException", "7-0": "ValidationException", "8-0": "ValidationException", "9-0": "ValidationException", "10-0": "ValidationException", "11-0": "ValidationException", "h-3": "Notes", "14-0": "ValidationException", "15-0": "ValidationException", "16-0": "ValidationException", "4-1": "validation.avs.incorrectBillingAddress", "2-3": "General card validation failure, further details on why the card doesn’t work are unavailable.", "3-1": "validation.avs.invalidBillingAddress", "3-2": "Invalid billing address", "4-2": "Invalid billing address. Your address is incorrect", "5-1": "validation.avs.zipcode", "5-2": "Invalid billing address. Zip code is incorrect", "6-1": "validation.avs.unavailable", "6-2": "Invalid billing address. We were not able to validate your address. Try again later.", "6-3": "If our address validation service is unavailable the user will have to try the transaction later", "7-1": "validation.invalidReferrerId", "7-2": "Invalid referrerAccountId", "8-1": "validation.phoneNumRequiresCountryCode", "8-2": "Please include your country code preceded by a \"+\" with your phone number", "9-1": "validation.unsupportedCountry", "9-2": "Country not supported: “XX”", "9-3": "XX is country code submitted by user", "10-1": "validation.invalidUsState", "10-2": "Invalid US state submitted", "11-1": "validation.missingAddressState", "11-2": "Address state must not be empty", "14-1": "limits.dailyLimitReached", "14-2": "You reached your daily limit.", "15-1": "limits.weeklyLimitReached", "15-2": "You reached your weekly limit.", "16-1": "limits.yearlyLimitReached", "16-2": "You reached your yearly limit", "20-0": "ApiException", "20-1": "n/a", "20-2": "n/a", "20-3": "If there is an unhandled error by the API it will appear as an ApiException without an error code or message", "17-0": "ValidationException", "17-1": "validation .invalidPhoneNumber", "17-2": "You did not specify a valid E164 Phone number. \nPhone numbers must follow the International [E.164](https://en.wikipedia.org/wiki/E.164#:~:text=E.164%20defines%20a%20general,excluding%20the%20international%20call%20prefix.&text=As%20described%20in%20by%20the,code%20(1%20to%203%20digits)) format.", "18-0": "ValidationException", "18-1": "validation.missingAddressCity", "18-2": "City is mandatory", "19-0": "ValidationException", "19-1": "validation.stateNotSupported", "19-2": "If you specify a non supported US state. More info [here](https://app.gitbook.com/@wyre-1/s/wyre-inital-docs/wyre-card-processing/the-wyre-widget/untitled).", "21-0": "ValidationException", "22-0": "ValidationException", "23-0": "ValidationException", "24-0": "ValidationException", "25-0": "ValidationException", "26-0": "ValidationException", "27-0": "ValidationException", "28-0": "ValidationException", "29-0": "ValidationException", "30-0": "ValidationException", "31-0": "ValidationException", "32-0": "ValidationException", "33-0": "ValidationException", "34-0": "ValidationException", "35-0": "ValidationException", "36-0": "ValidationException", "37-0": "ValidationException", "38-0": "ValidationException", "39-0": "ValidationException", "40-0": "ValidationException", "41-0": "ValidationException", "42-0": "ValidationException", "21-1": "hostedCheckout.illegalReferrer", "21-2": "invalid referrer account id for hosted checkout referrer", "22-1": "hostedCheckout.featureNotEnabled", "22-2": "feature not enabled for this account id", "23-1": "reservation.requiredFieldValueMismatch", "23-2": "a reservation locked field value did not match the received value", "24-1": "reservation.requiredFieldEmpty", "24-2": "a reservation required field is empty (required values cannot be empty)", "25-1": "reservation.lockEmptyField", "25-2": "a reservation locked field is empty (locked fields cannot be empty and must match)", "26-1": "reservation.invalidLockedField", "26-2": "locked field is invalid", "27-1": "validation.sourceCurrencyNotSupported", "27-2": "the specified sourceCurrency is not supported", "28-1": "validation.missingGivenName", "28-2": "givenName is not present", "29-1": "validation.missingFamilyName", "29-2": "familyName is not present", "30-1": "validation.missingAddressStreet1", "30-2": "missing street1 on address field", "31-1": "validation.missingAddressState", "31-2": "missing state on address field", "32-1": "validation.missingAddressCity", "32-2": "missing city on address field", "33-1": "validation.missingAddressState", "33-2": "missing state on address field", "34-1": "validation.amountSourceCurrency", "34-2": "if amount or source currency are locked, you must lock both (amount and sourceCurrency)", "35-1": "validation.invalidPaymentMethod", "35-2": "invalid payment method provided (apple-pay or debit-card are the accepted values)", "36-1": "validation.invalidRedirectUrl", "36-2": "redirectUrl is not valid (must be a full http url with protocol)", "37-1": "validation.invalidFailureRedirectUrl", "37-2": "failureRedirectUrl is not valid (must be a full http url with protocol)", "38-1": "validation.referrerAccountId", "38-2": "invalid referrer account id for hosted checkout referrer", "39-1": "validation.lockCountry", "39-2": "invalid locked country (if any of phone or country are locked, you must lock both)", "40-1": "validation.countryMissing", "40-2": "missing locked field country", "41-1": "validation.invalidPhoneNumber", "41-2": "invalid phone number (phones must be in e.164 format with country code)", "42-1": "validation.invalidEmail", "42-2": "invalid email", "43-0": "ValidationException", "44-0": "ValidationException", "45-0": "ValidationException", "46-0": "ValidationException", "47-0": "ValidationException", "48-0": "ValidationException", "49-0": "ValidationException", "50-0": "ValidationException", "51-0": "ValidationException", "52-0": "ValidationException", "53-0": "ValidationException", "54-0": "ValidationException", "55-0": "ValidationException", "56-0": "ValidationException", "57-0": "ValidationException", "58-0": "ValidationException", "59-0": "ValidationException", "60-0": "ValidationException", "61-0": "ValidationException", "62-0": "ValidationException", "63-0": "ValidationException", "43-1": "debitCardWhiteLabel.illegalReferrer", "44-1": "debitCardWhiteLabel.featureNotEnabled", "45-1": "validation.invalidCode", "46-1": "validation.invalidReservation", "47-1": "validation.invalidCodeLength", "48-1": "validation.orderNotFound", "49-1": "validation.invalidOrderStatus", "50-1": "validation.authorizationCodeNotFound", "51-1": "validation.authorizationInvalidReservation", "52-1": "validation.authorizationMaxAttempts", "53-1": "validation.authorizationAlreadyValidated", "54-1": "validation.authorizationInvalidState", "55-1": "validation.authorizationCodeExpired", "56-1": "validation.authorizationCodeMismatch", "57-1": "validation.orderAuthorizationDetailsNotAvailable", "58-1": "validation.cardExpirationYear", "59-1": "validation.cardExpirationMonth", "60-1": "validation.cardExpirationMonthOutOfRange", "61-1": "validation.invalidExpirationDate", "62-1": "validation.invalidDebitCardNumber", "63-1": "validation.walletOrderAuthorizationCodeMissing", "43-2": "illegal referrer", "44-2": "feature to debit card not enabled for the current authentication", "45-2": "invalid authorization code", "46-2": "invalid reservation", "47-2": "invalid authorization code length", "48-2": "order not found", "49-2": "invalid order status. Order cannot be authorized at the moment.", "50-2": "Authorization codes not found", "51-2": "invalid reservation id while authorizing the order", "52-2": "max attempts to authorize an order", "53-2": "authorization code already validated for the current order", "54-2": "invalid authorization state", "55-2": "authorization expired", "56-2": "authorization code mismatch", "57-2": "auth details not available. This usually happens", "58-2": "card expiration year invalid", "59-2": "card expiration month invalid", "60-2": "card expiration month must be from 01-12 range.", "61-2": "invalid expiration date, usually in the past", "62-2": "invalid debit card number", "63-2": "authorization request without a auth code on it" }, "cols": 4, "rows": 64 } [/block] [block:api-header] { "title": "Wallet Order Errors" } [/block] 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: [block:parameters] { "data": { "h-0": "errorCategory", "h-1": "errorCode", "h-2": "errorMessage", "h-3": "Notes", "0-0": "GENERAL", "1-0": "GENERAL", "2-0": "GENERAL", "3-0": "GENERAL", "4-0": "GENERAL", "5-0": "GENERAL", "6-0": "GENERAL", "0-1": "UNSUPPORTED_COUNTRY", "0-2": "We do not support this country.", "1-1": "UNSUPPORTED_STATE", "1-2": "We do not support this state at this time but hope to soon.", "2-1": "UNABLE_TO_PROCESS", "2-2": "Sorry, but we are unable to process your order at this time.", "3-1": "SMS_CONFIRMATION_FAILED", "3-2": "SMS confirmation failed", "4-1": "PHONE_NUMBER_MUST_BE_MOBILE", "4-2": "Only mobile cellphone numbers are supported.", "5-1": "TRANSACTION_TIMEOUT", "5-2": "Transaction timed out, please try again.", "6-1": "UNKNOWN_ERROR", "6-2": "We are unable to process your order at this time.", "3-3": "For debit card tx only", "7-0": "PAYMENT", "8-0": "PAYMENT", "10-0": "PAYMENT", "7-1": "ISO_8583_XX", "8-1": "BILLING_ADDRESS_MISMATCH", "10-1": "UNKNOWN_ERROR", "7-2": "See ISO 8583 error message list ->", "7-3": "XX replaced by ISO 8583 code. See full list here: https://developers.google.com/standard-payments/v1/fops/card/response-codes", "8-2": "Billing address error, please check your info and try again.", "10-2": "Issue with payment, please check your info and try again", "11-0": "RATE_LIMIT", "12-0": "RATE_LIMIT", "13-0": "RATE_LIMIT", "14-0": "RATE_LIMIT", "11-1": "EXCEEDED_DAILY_LIMIT", "11-2": "Transaction limit exceeded, please try again later.", "12-1": "EXCEEDED_WEEKLY_LIMIT", "12-2": "Transaction limit exceeded, please try again later.", "13-1": "EXCEEDED_YEARLY_LIMIT", "13-2": "Transaction limit exceeded, please try again later.", "14-1": "ORDER_AMOUNT_TOO_HIGH", "14-2": "Transaction amount too high, please try a smaller amount.", "9-0": "PAYMENT", "9-1": "THREE_D_SECURE_AUTHENTICATION_FAILED", "9-2": "3DS authentication failed." }, "cols": 4, "rows": 15 } [/block] [block:api-header] { "title": "Unified Error Codes" } [/block] In order to achieve unified error codes across multiple payment providers we introduced two new fields in the Wallet Order object: `paymentNetworkErrorCode` and `internalErrorCode`. [block:callout] { "type": "warning", "title": "Deprecation Notice", "body": "The field `errorCode` is deprecated now and will be removed in future releases. Please, adjust your code to use `internalErrorCode` instead from the time being." } [/block] The new `internalErrorCode` field values are defined in the next table [block:parameters] { "data": { "h-0": "internalErrorCode", "h-1": "Description", "0-0": "UNKNOWN_ERROR", "1-0": "EXCEEDED_DAILY_LIMIT", "2-0": "EXCEEDED_WEEKLY_LIMIT", "3-0": "EXCEEDED_YEARLY_LIMIT", "4-0": "ORDER_AMOUNT_TOO_HIGH", "5-0": "CARD_ISSUER_ERROR", "6-0": "CARD_RESTRICTIONS", "7-0": "INVALID_IDENTITY_FOUND", "8-0": "NO_IDENTITY_FOUND", "9-0": "CUSTOMER_NOT_ELIGIBLE", "10-0": "DOB_ERROR", "11-0": "DO_NOT_HONOR", "12-0": "EXPIRED_CARD", "13-0": "GENERAL_BANK_ERROR", "14-0": "HIGH_RISK_SCORE", "15-0": "INSUFFICIENT_FUNDS", "16-0": "INTERNAL_ERROR", "17-0": "INVALID_BILLING_ADDRESS", "18-0": "INVALID_CARD_AUTHENTICATION", "19-0": "INVALID_CARD_NUMBER", "20-0": "INVALID_CARD_TOKEN", "21-0": "INVALID_PAYMENT_INFORMATION", "22-0": "INVALID_TRANSACTION", "23-0": "LIMIT_RESTRICTIONS", "24-0": "LOCATION_NOT_SUPPORTED", "25-0": "LOST_STOLEN_CARD", "26-0": "NO_PHONE_FOUND", "27-0": "NO_SMS_CONFIRMATION", "28-0": "ORDER_ALREADY_BEEN_PAID", "29-0": "ORDER_EXPIRED", "30-0": "ORDER_LOOKS_BAD", "31-0": "PAYMENT_SCORE_ABUSE", "32-0": "PROCESSING_TIMEOUT", "33-0": "SECURITY_VIOLATION", "34-0": "SSN_ERROR", "35-0": "SUSPECTED_FRAUD", "36-0": "TRANSACTION_NOT_PERMITTED_BY_BANK", "37-0": "TRANSACTION_REJECTED_BY_BANK", "15-1": "Your card does not have enough funds for the transaction.", "16-1": "Wyre's internal error code.", "17-1": "Invalid billing address for the card", "18-1": "Invalid card authentication code (CVV)", "19-1": "Invalid card number", "20-1": "Invalid card", "21-1": "Invalid card payment information (billing address, phone...)", "0-1": "Uncategorized or unexpected error", "1-1": "Exceeded daily purchase limit", "2-1": "Exceeded weekly purchase limit", "3-1": "Exceeded yearly purchase limit", "4-1": "Payment processor. Card spend limit exceeded.", "4-2": "Bank", "5-1": "Specific card issuer (bank) error", "6-1": "Card issuer or law restrictions", "6-2": "Bank", "7-1": "No valid identity found", "8-1": "No identity found", "7-2": "Wyre", "8-2": "Wyre", "9-1": "Customer not eligible for the order", "9-2": "Payment processor", "10-1": "Error with user's date of birth", "11-1": "Do not honor", "11-2": "Bank", "12-1": "Card expiration date is invalid", "12-2": "Bank", "13-1": "General bank error", "13-2": "Bank", "14-1": "High risk, fraud suspicious", "14-2": "Fraud protection", "15-2": "Bank", "16-2": "Wyre", "17-2": "Bank", "18-2": "Bank", "19-2": "Bank", "20-2": "Bank", "21-2": "Bank", "22-1": "Invalid transaction", "22-2": "Bank", "23-1": "Card limit restrictions", "23-2": "Bank", "24-1": "Geo location (country or state) not supported by Wyre or card not allowed to be used in that location.", "24-2": "Wyre and Bank", "25-1": "Card reported as lost or stolen", "26-1": "No phone found for user", "25-2": "Bank", "26-2": "Wyre and Bank", "27-1": "No SMS confirmation", "27-2": "Wyre", "28-1": "Order was already been paid", "28-2": "Wyre", "29-1": "Order has expired", "29-2": "Wyre", "30-1": "Fraud protection", "30-2": "Fraud protection", "31-1": "Fraud protection", "31-2": "Fraud protection", "32-1": "Order processing timeout", "32-2": "Wyre", "33-1": "Fraud protection", "33-2": "Fraud protection", "34-1": "Invalid SSN", "34-2": "Fraud protection", "35-1": "Fraud protection", "35-2": "Fraud protection", "36-1": "Transaction not permitted by the issuer bank", "36-2": "Bank", "37-1": "Transaction rejected by the issuer bank", "37-2": "Bank", "10-2": "Wyre", "5-2": "Bank", "0-2": "Wyre", "1-2": "Wyre", "2-2": "Wyre", "3-2": "Wyre", "h-2": "Who throws?" }, "cols": 3, "rows": 38 } [/block]