Why is a payment rejected?
Payment declines are a reality in the world of online sales and can happen for various reasons. A payment may be declined due to:
- An error with the payment method;
- Incorrect information entered by the customer;
- Card with insufficient funds;
- Violation of necessary security requirements;
- Suspicious movements indicating fraud risk;
- Communication issues between acquirers and sub-acquirers.
You can find information and check the status of a payment via API through the endpoint Get paymentsAPI. The status field indicates whether the payment was approved or not, while the status_detail field provides more details, including reasons for decline.
curl{ "status": "rejected", "status_detail": "cc_rejected_insufficient_amount", "id": 47198050, "payment_method_id": "master", "payment_type_id": "credit_card", ... }
These decline reasons occur due to errors during checkout. This can happen for various reasons, such as misunderstanding of the payment screen, buyer experience issues, lack of field validation, or errors that the buyer may make when entering their data, especially card information.
In these cases, the status_detail field will return:
cc_rejected_bad_filled_card_numbercc_rejected_bad_filled_datecc_rejected_bad_filled_othercc_rejected_bad_filled_security_code
When making a credit or debit card payment, for example, the issuing bank may decline the charge for different reasons, such as expired expiration date, insufficient balance or credit limit, disabled card, or card blocked for online purchases.
In these cases, the status_detail field may return:
cc_rejected_call_for_authorizecc_rejected_card_disabledcc_rejected_duplicated_paymentcc_rejected_insufficient_amountcc_rejected_invalid_installmentscc_rejected_max_attempts
We monitor transactions in real-time looking to recognize suspicious patterns and resources that indicate a fraud attempt. This is done by both Mercado Pago's algorithms and banks, all to minimize chargebacks as much as possible.
When our fraud prevention system detects a suspicious payment, the status_detail field may return:
cc_rejected_blacklistcc_rejected_high_riskcc_rejected_other_reason
The response cc_rejected_other_reason is a status given by the bank that doesn’t mention the reason of the rejection, but indicates a fraude risk estimation. However, there may be other reasons why this status is returned. In case of doubt, it is recommended to choose other payment method to fulfill the transaction or to get in touch with the issuer bank institution.
high_risk response may occur when two consecutive payments are made with the same items or with very similar parameters (such as identical payer and items values in both payments made). This can trigger the anti-fraud engine, which may interpret the attempt as duplicate and reject it as a precaution. As a consequence, subsequent payments may be temporarily blocked. It is recommended to implement controls to prevent immediate new attempts with the same payment data.json{ "status": "rejected", "status_detail": "cc_rejected_high_risk", "id": 47198050, "payment_method_id": "master", "payment_type_id": "credit_card", ... }