A payment towards an order can be DECLINED
or FAILED
for a reason. You can check it from the failure_reason
field under payments
in the response.
The following table lists the most common reasons that are mapped to human-readable values:
failure_reason value | Description |
---|---|
do_not_honour | The customer's bank declines the payment because it fails the authorization process. The most common reasons are:
|
3ds_challenge_abandoned | The customer has abandoned the 3DS challenge without completing it. |
3ds_challenge_failed | The customer has failed the 3DS challenge. |
3ds_challenge_failed_manually | The customer has failed the 3DS challenge manually. |
insufficient_funds | The account associated with the payment method used doesn't have sufficient funds to make the payment. |
transaction_not_allowed_for_cardholder | The customer's bank doesn't allow the cardholder to make the payment. |
high_risk | The transaction has been declined due to high risk. This can be a trigger from both the issuing bank and internal Revolut tools. |
cardholder_name_missing | The cardholder name is missing. This is a required parameter to make a card payment. |
unknown_card | The card can't be identified. Ensure that you don't use a test card in the production mode. |
invalid_card | The card number provided is invalid. |
invalid_email | The email provided doesn't have a valid format. |
restricted_card | The issuing bank has a restriction on the card. Ask the customer to contact their bank for more details. |
expired_card | The card provided has expired. |
withdrawal_limit_exceeded | The withdrawal limit for a specific card or account has been reached or exceeded. Ask the customer to contact their bank to extend this limit. |
pick_up_card | The card has been reported as lost or stolen. The issuing bank has given the instruction to pick up the card and notify the issuing bank so that it can be returned to its rightful owner. |