# MD for: https://www.mercadopago.com.pe/developers/en/docs/prestashop/how-tos/improve-payment-approval/reasons-for-rejection.md \# Why is a payment order rejected? Payment refusal is a reality in the world of online sales and can happen for several reasons. \*\*A payment may be declined due to\*\*: \* an issue with the payment method; \* incorrect data filling on the client side; \* insuficient amount of money on the card used in the transaction; \* breach of any of the necessary security requirements; \* strange movements of the account that may indicate a fraude risk; \* problems in communication between acquirers. You can \*\*find the information and check the status of a payment\*\* via the API, through the \[Get Payment\](https://www.mercadopago.com.pe/developers/en/reference/online-payments/checkout-api-payments/get-payment/get) method. The \`status\` field indicates whether the payment was approved, while the \`status\_detail\` field provides more details, including the reasons for rejection. \`\`\`json { "status": "rejected", "status\_detail": "cc\_rejected\_insufficient\_amount", "id": 47198050, "payment\_method\_id": "master", "payment\_type\_id": "credit\_card", ... } \`\`\` > NOTE > > Important > > You can find more information about payments in the \[Mercado Pago\](https://www.mercadopago.com.pe/activities) account activity. ## Rejections due to errors in data filling These rejections are due to \*\*errors committed during the checkout process\*\*, that may happen for different reasons: trouble understanding the payment screen, problems with the customer's experience, lack of validations in certain fields, or common mistakes made by the client when completing their data, especially their card’s data. In these cases, the \`status\_detail\` field may return: \* \`cc\_rejected\_bad\_filled\_card\_number\` \* \`cc\_rejected\_bad\_filled\_date\` \* \`cc\_rejected\_bad\_filled\_other\` \* \`cc\_rejected\_bad\_filled\_security\_code\` ## Rejections made by the issuing bank When paying with a \*\*credit or debit card\*\*, the issuing bank may refuse the charge for different reasons, such as the expiration date, insufficient balance or limit, or disabled or blocked card for online payments. In these cases, the \`status\_detail\` field may return: \* \`cc\_rejected\_call\_for\_authorize\` \* \`cc\_rejected\_card\_disabled\` \* \`cc\_rejected\_duplicated\_payment\` \* \`cc\_rejected\_insufficient\_amount\` \* \`cc\_rejected\_invalid\_installments\` \* \`cc\_rejected\_max\_attempts\` ## Rejections due to fraud prevention We monitor transactions in real time in order to \*\*recognize suspicious features and patterns\*\* that may indicate a fraude attempt. This is made both by the Mercado Pago algorithm and the banks, in an attempt to reduce chargebacks to a minimum. When our fraud prevention system detects a suspicious payment, the API’s response in the \`status\_detail\` field may return: \* \`cc\_rejected\_blacklist\` \* \`cc\_rejected\_high\_risk\` \* \`cc\_rejected\_other\_reason\` > WARNING > > Attention > > \`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. \`\`\`json { "status": "rejected", "status\_detail": "cc\_rejected\_high\_risk", "id": 47198050, "payment\_method\_id": "master", "payment\_type\_id": "credit\_card", ... } \`\`\` > WARNING > > Attention > > In some cases, the \`cc\_rejected\_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 flag the attempt as a duplicate and reject it as a precaution. As a result, subsequent payments might be temporarily blocked. > > It is recommended to implement controls to avoid immediate retries using the same payment data.