# MD for: https://www.mercadopago.com.br/developers/pt/docs/checkout-pro/how-tos/improve-payment-approval/reasons-for-rejection.md \# Why is a payment rejected? > RED\_MESSAGE > > This documentation is intended for integrators. If you are a buyer and your payment was declined when using Mercado Pago, please check \[this article\](https://www.mercadopago.com.br/ajuda/25671) in our Help Center for guidance on how to proceed. 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 :TagComponent{tag="API" text="Get payments" href="/developers/en/reference/online-payments/checkout-pro/get-payment/get"}. 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", ... } \`\`\` > SUCCESS\_MESSAGE > > You can also find more information about payments in your \[Mercado Pago\](https://www.mercadopago.com.br/activities) account activity. :::AccordionComponent{title="Declines due to input errors"} 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\_number\` \* \`cc\_rejected\_bad\_filled\_date\` \* \`cc\_rejected\_bad\_filled\_other\` \* \`cc\_rejected\_bad\_filled\_security\_code\` ::: :::AccordionComponent{title="Declines by the issuing bank"} 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\_authorize\` \* \`cc\_rejected\_card\_disabled\` \* \`cc\_rejected\_duplicated\_payment\` \* \`cc\_rejected\_insufficient\_amount\` \* \`cc\_rejected\_invalid\_installments\` \* \`cc\_rejected\_max\_attempts\` ::: :::AccordionComponent{title="Declines due to fraud prevention"} 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\_blacklist\` \* \`cc\_rejected\_high\_risk\` \* \`cc\_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. > WARNING > > In some cases, the \`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", ... } \`\`\` :::