Reason codes
The API returns, in the payload object reason
, status reasons when HTTP status
code is 200 Ok
, and error details when HTTP status code is different from 200 Ok
. Field reason.code
is a unique value to distinguish the status reason or
error.
note
Mastercard transaction responses may include also a Merchant Advice Code which provides more details about the response.
Reason code | HTTP status code | ResponseObject.status | Cause | Next action |
---|---|---|---|---|
required_next_step | 200 | pending | When present, this property tells you what actions you need to take in order for your consumer to continue the payment flow. | Execute the step described in object nextStep . |
waiting_confirmation | 200 | pending | Confirmation is pending for the non-instant operation. This mainly happens for push payment products (SEPA, 7-Eleven, etc.). When the processors asynchronously inform the status of a payment or refund to us, you can expect this reason code. | Wait for the webhook event from us to inform you the final status of the operation. You can also try fetching the status of the operation at a later moment using the trackingUrl . |
unknown_status | 200 | pending | Status of the operation is unknown at the moment. | Wait for the webhook event from us to inform you the final status of the operation. You can also try fetching the status of the operation at a later moment using the trackingUrl . If the status of the operation stays unknown for more than 48 hours, contact us. |
cancelled | 200 | aborted | The consumer has cancelled the payment. Payment is not completed. | Consumer can retry the payment again or use another payment method to pay. |
timeout | 200 | aborted | In case of instant payment methods, payment is not verified within the required time period. For non-instant payments, the consumer didn't make the payment within the given time frame. | Provide a new payment method to the consumer in-session attempt to fulfil this payment again. For off-session payments, inform the consumer to make the payment again. |
rejected_by_issuer | 200 | declined | The issuer has declined the payment. | The consumer needs to contact their bank or issuer for more information. The consumer can retry the payment later or use another payment method to pay. |
do_not_retry | 200 | declined | The issuer has declined the payment and it should not be retried. | The consumer needs to contact their bank or issuer for more information. The consumer can use another payment method to pay. |
insufficient_funds | 200 | declined | The consumer does not have enough funds to complete the payment. | The consumer needs to use a different payment method. |
suspected_fraud | 200 | declined | The payment is declined because the issuer suspects that it is fraudulent. Examples: - Stolen credentials. - Suspicious consumer information. | Don't report more detailed information to your consumer. Provide a generic user-friendly decline message to the consumer. The consumer needs to contact their bank or issuer for more information. |
required_authentication | 200 | declined | The payment requires strong customer authentication (3-D Secure) to proceed. | The consumer should try again and authenticate their card when prompted during the transaction. |
invalid_amount | 200 | declined | The payment is declined because the amount is invalid. Examples: - The amount exceeds a maximum for a card program. - The amount submitted in the authorization request to the issuer exceeds the amount used in the previous authentication request. | Retry using a correct amount. If the amount appears to be correct, the consumer needs to check with their bank that they can make purchases of that amount. |
referral | 200 | declined | The payment is declined because it requires additional verification by the issuing bank before approval. | The consumer needs to contact their bank or issuer for more information. The consumer can retry the payment later or use another payment method to pay. |
exceeded_activity | 200 | declined | The customer has exceeded the balance, credit limit, or transaction frequency on their account. | The consumer needs to contact their bank or issuer for more information. The consumer can retry the payment later or use another payment method to pay. |
failed_security_code | 200 | declined | The security code is incorrect. | Retry using a correct security code. If the security code appears to be correct, the consumer needs to contact their bank or issuer for more information. |
invalid_account | 200 | declined | The account validations failed for the user. Examples: - The account is closed, blocked or inactive. - The transaction is from a new cardholder, and the account has not been properly unblocked/activated. - There is no checking or saving account available. | The consumer needs to contact their account provider, bank or issuer for more information. The consumer can retry the payment later or use another payment method to pay. |
pickup_card | 200 | declined | The issuer requested to pickup the card. | The consumer needs to contact their bank or issuer for more information. The consumer can retry the payment later or use another payment method to pay. |
restricted_card | 200 | declined | The card can't be used for the payment. | The consumer needs to contact their bank or issuer for more information. The consumer can retry the payment later or use another payment method to pay. |
lost_card | 200 | declined | The card is reported lost. | The consumer needs to contact their bank or issuer for more information. The consumer can retry the payment later or use another payment method to pay. |
stolen_card | 200 | declined | The card is reported stolen. | The consumer needs to contact their bank or issuer for more information. The consumer can retry the payment later or use another payment method to pay. |
expired_card | 200 | declined | The card has expired. | The consumer needs to contact their bank or issuer for more information. The consumer can retry the payment later or use another payment method to pay. |
security_violation | 200 | declined | The procesor or the issuer reported a security violation. | The consumer needs to contact their bank or issuer for more information. The consumer can retry the payment later or use another payment method to pay. |
not_allowed_by_issuer | 200 | declined | Payment not allowed by the issuer. | The consumer needs to contact their bank or issuer for more information. The consumer can retry the payment later or use another payment method to pay. |
invalid_account_number | 200 | declined | The account number is incorrect. | Retry using a correct account number. If the account number appears to be correct, the consumer needs to contact their bank or issuer for more information. The consumer can retry the payment later or use another payment method to pay. |
duplicated_transaction | 200 | declined | The processor or the issuer reported the operation as duplicated. | Check if the operation is already processed. If not, please try again later. |
not_supported_by_issuer | 200 | declined | Issuer reported the operation as not supported. | The consumer needs to contact their bank or issuer for more information. The consumer can retry the payment later or use another payment method to pay. |
blocked | 200 | rejected | The operation is rejected because it is blocked by the system. | Check the field reason.description in the response for further details. |
processing_error | 200 | failed | The operation failed due to incorrect/missing data or internal system error at the processor. | Please try again later. |
invalid_request | 400 | * | The request contains one or more unexpected parameters. | Check the field reason.invalidParams in the response for further details. Adjust the request and resubmit it. |
invalid_operation | 400 | * | The operation is invalid for the current state of the resource. Example: Refund operation returns this reason code when the original payment is not in succeeded status. | Check the field reason.description in the response for further details. Check our developer portal and adjust the sequence or timing of the operation that you are currently performing. |
not_supported | 400 | * | The operation is not supported due to restriction of underlying payment scheme or issuer. | Check the field reason.description in the response for further details. Check our developer portal to know the features and operations supported by every payment method. |
not_allowed | 400 | * | The operation is not allowed due to a configuration restriction. | Check the field reason.description in the response for further details. |
locked_operation | 409 | * | The requested operation is already in progress and has been locked for the idempotency key until completion. | Please try again later. |
configuration_error | 500 | * | Your account is incorrectly configured. | Contact us to get the issue fixed. |
unavailable_idempotency | 503 | * | The idempotency system is unavailable at the moment. | Retry the request without idempotency key or retry later. |
internal_error | 503 | * | Internal error in the processing system. | Please try again later. |
* When HTTP status code is not 200, the response object doesn't contain the
status
field.