# MD for: https://www.mercadopago.com.ar/developers/es/docs/qr-code-ca/resources/refund-errors.md \# Refund errors Below you will find all possible errors returned by the :TagComponent{tag="API" text="refund endpoint" href="/developers/en/reference/mp-qr/refund-order/post"} of the Orders API for QR Code and the recommended actions for each case. ## Error codes | HTTP | Error (\`error\`) | Description | Recommended action | |---|---|---|---| | \`400\` | \`empty\_required\_header\` | The \`X-Idempotency-Key\` header is required and was not sent. | Include the header in all refund requests. | | \`400\` | \`invalid\_path\_param\` | The \`order\_id\` sent in the path has an invalid format. It must start with the prefix \`ORD\` followed by 26 characters. | Verify and resend with a valid ID. | | \`400\` | \`invalid\_order\_owner\` | It is not possible to process a refund for an order that was not created by the requester. | Verify that the Access Token belongs to the same user who created the order. | | \`400\` | \`in\_store\_payment\_refund\_order\` | The maximum refund period has been exceeded. The limit is 360 days from the payment date. | No action possible; the refund period has already expired. | | \`400\` | \`unsupported\_partially\_refunds\` | The order does not support partial refunds. | Check if the order is eligible for a partial refund before sending the body with \`transactions\[\]\`. | | \`400\` | \`refund\_amount\_exceeds\` | The refund amount exceeds the available balance. | Verify that the amount sent is less than or equal to the transaction balance. | | \`401\` | \`unauthorized\` | The Access Token sent is invalid or expired. | Verify and resend the request with the correct Access Token. | | \`401\` | \`user\_not\_authorized\` | The user does not have permission to perform this action. | Verify that the Access Token belongs to the same user who created the order. | | \`403\` | \`partial\_refund\_forbidden\_with\_tips\` | Partial refunds are not allowed on orders with tips. | Issue a full refund without sending the \`transactions\[\]\` array. | | \`404\` | \`order\_not\_found\` | Order not found. | Verify that the \`order\_id\` sent in the path is correct. | | \`404\` | \`transaction\_not\_found\` | Transaction not found in the order. | Verify that the \`transactions\[\].id\` sent belongs to the specified order. | | \`409\` | \`idempotency\_key\_already\_used\` | The \`X-Idempotency-Key\` sent has already been used with a different body in the last 24 hours. | Send a new value for the header. | | \`409\` | \`order\_already\_refunded\` | The order has already been fully refunded. | No action needed; the refund has already been completed. | | \`409\` | \`cannot\_refund\_order\` | The current state of the order does not allow a refund. | Verify that the order has \`status: processed\` before requesting a refund. | | \`409\` | \`refund\_period\_exceeded\` | The maximum refund period has been exceeded. | Refunds are accepted up to 360 days from the payment date. | | \`409\` | \`action\_not\_allowed\_for\_current\_state\` | The action is not allowed by the current payment status. | Check the \`status\` and \`status\_detail\` of the order before attempting the refund. | | \`409\` | \`refund\_in\_progress\` | A refund is already being processed for this order. | Wait a few minutes before trying again. | | \`409\` | \`movement\_operations\_pending\` | The order has pending financial movements. | Wait a few minutes and retry the request. | | \`422\` | \`payment\_not\_refundable\` | The payment cannot be refunded. | Check the payment conditions; some payment methods do not support refunds. | | \`422\` | \`amount\_not\_refundable\` | The requested amount cannot be refunded. | Try a different amount or check the payment conditions. | | \`422\` | \`max\_refunds\_exceeded\` | The maximum number of refunds for this order has been exceeded. | No action possible; the refund limit has already been reached. | | \`425\` | \`order\_payment\_not\_yet\_enabled\_for\_refund\` | The order is not yet enabled for refund. | Wait a moment and retry the request. | | \`428\` | \`insufficient\_money\_for\_refund\` | Insufficient balance in the account to process the refund. | Check the available balance in the Mercado Pago account before trying again. | | \`500\` | \`idempotency\_validation\_failed\` | Idempotency validation failed. | Retry the request with the same \`X-Idempotency-Key\`. | | \`500\` | generic | Internal server error. | Retry the request. If the problem persists, contact support. |