Standard failure codes

In our error representation guide, we introduced the failure object and the data fields failureType, failureCode, providerFailureCode and failureMessage. These are used when you make a valid API request, but an error or decline occurs further along in the payments process which causes the operation to fail.

This page will give you an overview of all PPRO-standard failureCode values, and how to handle them when you encounter them during processing.

List of Failure Codes

Internal Declines

failureCodeDescriptionRecommended Steps
NO_AUTHORIZED_AMOUNTCapture or Void operation failed because you have not completed a successful Authorization yet, and it has not yet reached the CAPTURE_PENDING state. Ensure that you are following all steps necessary to complete an authorization with the payment method in question. Some payment methods require the consumer to go through an extra authentication step before we can authorize the amount. Refer to the guides page for your payment method for help on how to handle the respectiveauthenticationMethods, or learn about our authentication method types here.

The best way to avoid this error is to wait for an AUTHORIZATION_SUCCEEDED webhook from PPRO. It will contain the current status of the payment charge. If the current status is CAPTURED, the charge has already been captured automatically. If the status is CAPTURE_PENDING, then you can make a capture request without running into this error.
NO_CAPTURED_AMOUNTRefund operation failed because no captures have been made yet, or the amount has been fully refunded already. Refund must be in theCAPTUREDstate.Check that there are successful Capture operations under this payment charge, and that the charge status is not REFUNDED.
EXCEEDS_AUTHORIZED_AMOUNTThe capture or void amount exceeds the remaining authorized amount.You've already full captured the charge, so no further capture requests are necessary. Check that your integration is not accidentally triggering a capture multiple times. If you are using partial captures, ensure the charge is still in the CAPTURE_PENDING state and that the total amount captured so far + the new capture amount is not exceeding the amount authorized.
EXCEEDS_CAPTURED_AMOUNTThe refund amount exceeds the remaining captured amount.Before you make another refund request, check that the total amount of successful Captures, minus the total amount of any existing successful Refunds, are greater than or equal to the amount you are attempting to refund.
REDUNDANT_CONFIRMATION_ATTEMPTWe received an unnecessary confirmation call for a payment authorization, either because the payment method has synchronous authorization and does not expect a separate confirmation call, or a duplicate confirmation was received.Review your integration and our individual payment method docs to ensure you are not attempting to confirm authorizations that should be happening synchronously. Generally, this failure shows up on a duplicate authorization under the payment charge and does not affect the original authorization, so impact is minimal.
PAYMENT_METHOD_TIMEOUTWe discarded the payment charge because it was not authorized within the timeout limit for the paymentMethod specified. Return the consumer to the payment selection step of the checkout so they can initiate a new payment.

(You can see timeout limits for each payment method by referring to the payment method guides in our docs)
INVALID_PAYMENT_METHODpaymentMethod not recognized.Review the docs for the payment method in question to ensure you are sending the correct paymentMethod value listed there.
INVALID_AUTHENTICATION_SETTINGSThe authenticationSettings details are not valid or missing for the specified paymentMethod.Review the docs for the payment method in question to ensure you are sending the correct authenticationSettings type and details.
INVALID_ACCOUNTThe specified card or account format is not supported by the payment method.Review the docs for the payment method in question to ensure it supports the type of account you are trying to pay with.
INVALID_CURRENCYThe currency is not supported by the payment method or instrument.Review the docs for the payment method in question to ensure it supports the currency you are trying to pay with.
INVALID_TAX_IDconsumer.taxIdentification value is not in a valid format for this payment method.Review the docs for the payment method in question to ensure you are including a valid tax id format.
INVALID_IPThe consumer's IP address is in an invalid format or the chosen payment method / provider does not support payments from this IP address.Review the docs for the payment method in question to ensure the payment method can be used in the country that the consumer is located, and check the API reference to ensure that the IP address is in a valid format.
HIGH_ACCOUNT_VELOCITYWe have detected too many payment attempts from the specified card or account. Contact your account manager or technical account manager for more information. You can ask the consumer to try a different payment method.
HIGH_BIN_VELOCITYWe have detected too many payment attempts from the specified BIN range of the card.Contact your account manager or technical account manager for more information. You can ask the consumer to try a different payment method.
HIGH_EMAIL_VELOCITYWe have detected too many payment attempts with the specified email.Contact your account manager or technical account manager for more information. You can ask the consumer to try a different payment method.
HIGH_IP_VELOCITYWe have detected too many payment attempts from the specified consumer IP address.Contact your account manager or technical account manager for more information.
BLOCKED_ACCOUNTThe card or account has been blocked by PPRO due to suspected fraud or abuse.Ask the consumer to choose a different payment method.
BLOCKED_BINThe bank identification number has been blocked by PPRO due to suspected fraud or high risk of chargebacks.Ask the consumer to use a different payment method.
BLOCKED_EMAILThe consumer's email address has been blocked by PPRO due to suspected fraud or abuse.Ask the consumer to use a different payment method with a different email.
BLOCKED_IPThe consumer's IP address has been blocked by PPRO due to suspected fraud or abuse.Present it to the consumer as a generic error. Contact your account manager or technical account manager for more information.
AGREEMENT_INACTIVEThe Payment Agreement failed or has not been properly activated yet. Subsequent payments are not possible.Check that the Agreement status is ACTIVE before creating subsequent payments under it, and make sure you are properly consuming the webhooks we send when an Agreement is activated or fails. Creating a Payment Agreement for certain payment methods involves a consumer auth step where they must agree to the mandate in e.g. their bank's app. Refer to the documentation for your payment method of choice for more details.
AGREEMENT_REVOKEDThe Payment Agreement was revoked by the consumer, or by you at an earlier time. Subsequent payments are not possible.Check that the Agreement status is ACTIVE before creating subsequent payments under it, and make sure you are properly consuming the webhook we send when an Agreement is revoked.
INSTRUMENT_NOT_FOUNDCould not find a payment instrument matching the specified instrumentId in the request.Verify that you are storing instrument ids properly after you create a payment or an instrument. If you have multiple merchants / API accounts with PPRO, check that you are not mixing instrument ids from different merchants / accounts.
GENERIC_DECLINEThe payment was declined by our upstream processing system but no failure code was sent back.Retry the payment. If retry attempts are also unsuccessful, ask the consumer to choose a different payment method.

Internal Errors

failureCodeDescriptionRecommended Steps
INTERNAL_SERVICE_UNAVAILABLEInternal PPRO service is currently unavailable. This failure code covers the scenarios where an internal service goes down, i.e. a production incident, while processing a request that was initially accepted. These errors are very rare.The request may have produced side effects in our system. For example, a capture may have been triggered with the provider, but a PPRO service goes down before we get the response. In this case, we try to resolve the side effects after the incident has been fixed, and send you webhooks after the fact so you are updated on the proper status of the operation.
INTERNAL_PROCESSING_ERRORAn internal service could not process a request for some reason and threw this generic error. These are exceptionally rare.See above.

Provider Declines

failureCodeDescriptionRecommended Steps
AUTHENTICATION_FAILEDThere was an error in authenticating the consumer, e.g. via 3DS.The consumer should contact their issuer to receive more information and resolve the problem.
CANCELED_BY_CONSUMERThe provider has informed us that the consumer intentionally abandoned the authentication flow, for example by clicking 'cancel'.Return the consumer to the payment method selection step of the checkout so they can initiated a new payment.
AMOUNT_NOT_SUPPORTEDThe amount value is not supported by the provider. The payment method used has minimum and maximum values that are accepted in the amount.value field. In rare cases, the provider may have changed their maximum/minimum amounts before communicating the changes to PPRO. You may need to bring the consumer back to checkout and use a different payment method to process a payment with especially high / low amounts.
ACCOUNT_NOT_SUPPORTEDThe consumer's bank account is not available for e.g. online paymentsReturn the consumer to the payment method selection step of the checkout to try again with a new account or payment method.
INCORRECT_CVVThe CVC/CVV was wrong.Have the consumer try again, entering the correct CVC/CVV.
INCORRECT_NUMBERThe card or account number cannot be validated by the issuer.Have the consumer enter their card number again or try a different card.
INCORRECT_HOLDER_NAMEThe card or account holderName could not be validated by the issuer.Have the consumer enter their card details again or try a different card.
INCORRECT_ISSUERThe card number / issuer is not within a card number range supported by the provider.Have the consumer enter their card number again or try a different card.
INCORRECT_BILLING_ADDRESSThe billing address entered was wrong.Have the consumer enter the billing address again.
INCORRECT_TAX_IDThe provider has determined the consumer.taxIdentification to be incorrect.Have the consumer enter their tax identification number again.

If you receive this failure code frequently and consistently, check thatconsumer.taxIdentification is being collected in the right format. You can refer to our guide for the payment method in question to help you with this.
IS_GENERIC_DECLINEGeneric decline by the issuer. The consumer should contact their issuer to receive more information and resolve the problem.
IS_NOT_PERMITTEDNot permitted by the issuer.The consumer should contact their issuer to receive more information and resolve the problem.
IS_EXCEEDING_ACCOUNT_LIMITThe amount value exceeds the limit on the consumer's account.The consumer should contact their issuer to receive more information and resolve the problem.
IS_HIGH_VELOCITYThe consumer has exceeded the number of attempts allowed by the issuer.The consumer should contact their issuer to receive more information and resolve the problem.
SUS_FRAUDThe payment was declined because the issuer or provider suspects it was fraudulent.The consumer should not be informed about the reason for the decline, and should see only a generic error message.
SUS_LOSTThe payment was declined because the consumer's card was reported lost.The consumer should not be informed about the reason for the decline, and should see only a generic error message.
SUS_STOLENThe payment was declined because the consumer's card was reported stolen.The consumer should not be informed about the reason for the decline, and should see only a generic error message.
INSUFFICIENT_FUNDSInsufficient funds on the account.Ask the consumer to choose a different payment method, card or account.
EXPIRED_CARDExpired card.Ask the consumer to update/change their card or choose a different payment method.
DUPLICATE_DETECTEDProvider detected a very similar request recently with the same card data and amount.Check and ensure you are not charging / refunding multiple times for the same product.

Provider Errors

failureCodeDescriptionRecommended Steps
UNRESPONSIVE_ISSUERThe issuer cannot be contacted / is unavailable.Retry the request. If you receive this failure code repeatedly, ask the consumer to contact their issuer to receive more information and resolve the problem.
UNRESPONSIVE_PROVIDERThe provider cannot be contacted / is unavailable.Retry the request. If you receive this failure code repeatedly, there may be an incident / unscheduled maintenance being done by the provider. In general, PPRO will inform you well in advance if we have knowledge that a provider will be unavailable for a time period.
PROVIDER_PROCESSING_ERRORThe provider could not process the request we sent to them. These errors are very rare.This could be caused either by a bug on the provider side, or a bug in the way PPRO formats the request to the provider. These errors are very rare and we work to get them fixed as soon as possible when they arise.