Reembolsar una order - Orders - Mercado Pago Developers
Reembolsar una order

Este endpoint permite crear una devolución total o parcial de una transacción de pago asociada a una order para Mercado Pago Point. Para un reembolso total, el body de la solicitud debe ir vacío, mientras que para un reembolso parcial, se debe indicar el monto a reembolsar junto con el identificador de la transacción de pago a devolver, siempre que la suma de las devoluciones no exceda el monto total de la transacción. Además, solo están disponibles para pagos que fueron realizados con tarjeta y códigos QR. Ambos tipos de reembolsos pueden realizarse sujetos a las siguientes condiciones: para pagos con tarjetas físicas, hasta 90 días después del pago; para pagos realizados mediante Edenred, hasta las 23:59:59 del mismo día en que fue realizado el pago; para los pagos efectuados con Pluxee, hasta 5 días hábiles después del pago. Adicionalmente, sólo podrán ser reembolsadas orders con "status=processed". En caso de éxito, la solicitud devolverá una respuesta con el estado 201

POST

https://api.mercadopago.com/v1/orders/{order_id}/refund
Request parameters
Path
order_id
string

REQUERIDO

ID de la order que contiene asociada la transacción de pago a ser reembolsada. Este valor es devuelto en la respuesta a la solicitud "Crear order".
Header
X-Idempotency-Key
string

REQUERIDO

Esta función permite repetir solicitudes de manera segura, sin el riesgo de realizar la misma acción más de una vez por error. Esto es útil para evitar errores, como la creación de dos pagos idénticos. Para garantizar qu...Ver más
Body
transactions
array
Contiene información sobre la transacción asociada a la order que será reembolsada. Este array es opcional y solo debe enviarse para reembolsos parciales. No envíes este nodo para un reembolso total.
Response parameters
id
string
Identificador de la order que va a ser reembolsada, recibido en la respuesta a su creación.
status
string
Estado actual de la order o de la transacción.
refunded: La order ha sido reembolsada de manera exitosa (reembolso total).
processed: El pago de la order ha sido procesado. Este estado se devuelve cuando se realiza un reembolso parcial y todavía queda saldo en la order.
status_detail
string
Detalles sobre el estado del reembolso. Es devuelto exclusivamente cuando la order es reembolsada por medio de la API.
refunded: La order ha sido reembolsada de manera exitosa (reembolso total).
partially_refunded: La order ha sido reembolsada parcialmente. Se ha devuelto una parte del monto de la transacción, pero todavía queda saldo.
transactions
object
Contiene información sobre la transacción asociada a una order.
Errors

400Error.

empty_required_header

El header "X-Idempotency-Key" es requerido y no fue enviado. Vuelve a realizar la petición incluyéndolo.

invalid_path_param

El "order_id" proporcionado en el path de la solicitud tiene un formato inválido. Este debe comenzar con el prefijo "ORD" y ser continuado por 26 caracteres. Compruébalo y proporciona un ID válido para volver a intentarlo.

unsupported_partially_refunds

Debido a validaciones internas, la order no soporta reembolsos parciales.

refund_amount_exceeds

El monto del reembolso excede el monto disponible. Verifica que el monto solicitado sea menor o igual al saldo disponible en la order.

401Error.

unauthorized

El valor enviado como Access Token es incorrecto. Por favor, verifícalo y vuelve a intentar realizar la solicitud enviando el valor correcto.

user_not_authorized

Usuario no autorizado para realizar esta acción.

403Error.

partial_refund_forbidden_with_tips

Reembolsos parciales prohibidos cuando la order tiene propinas.

404Error.

order_not_found

El valor enviado como Access Token es incorrecto, por lo que la order no puede ser encontrada. Por favor, verifícalo y vuelve a intentar realizar la solicitud enviando el valor correcto.

transaction_not_found

La transacción no fue encontrada. Verifica que el ID de la transacción enviado en el cuerpo de la solicitud sea correcto y pertenezca a la order especificada.

409Error.

idempotency_key_already_used

El valor enviado como header de idempotencia ya fue utilizado con una solicitud distinta en un tiempo menor a 24 horas. Por favor, vuelve a intentar realizar la petición enviando un nuevo valor.

order_already_refunded

La order ya fue reembolsada.

cannot_refund_order

El estado de la order no permite el reembolso.

refund_period_exceeded

Se superó el tiempo límite permitido para hacer un reembolso de la order.

action_not_allowed_for_current_state

Acción no permitida por el estado actual del pago.

refund_in_progress

Reembolso en progreso, espere unos minutos.

movement_operations_pending

La order tiene movimientos pendientes, espere unos minutos.

422Error.

payment_not_refundable

No es posible realizar el reembolso de este pago.

amount_not_refundable

El monto no puede ser reembolsado, intente con otro monto.

max_refunds_exceeded

Se excedió el número máximo de reembolsos para esta order.

425Error.

order_payment_not_yet_enabled_for_refund

La order aún no está habilitada para el reembolso, intente nuevamente.

428Error.

insufficient_money_for_refund

No es posible realizar el reembolso, dinero insuficiente en la cuenta.

500Error.

idempotency_validation_failed

Falla en la validación de idempotencia. Intenta enviar la solicitud nuevamente.

500

Error genérico. Intenta enviar la solicitud nuevamente.

Request
curl -X POST \
    'https://api.mercadopago.com/v1/orders/{order_id}/refund'\
    -H 'Content-Type: application/json' \
       -H 'X-Idempotency-Key: 0d5020ed-1af6-469c-ae06-c3bec19954bb' \
       -H 'Authorization: Bearer APP_USR-7*********635832-03*********2ffa6c013*********0a90fa2cd*********120' \
    -d '{
  "transactions": [
    {
      "id": "PAY01J67CQQH5904WDBVZEM4JMEP3",
      "amount": "25"
    }
  ]
}'
Response
{
  "id": "ORD0000ABCD222233334444555566",
  "status": "refunded",
  "status_detail": "refunded",
  "transactions": {
    "refunds": [
      {
        "id": "REF01J67CQQH5904WDBVZEM1234D",
        "transaction_id": "PAY01J67CQQH5904WDBVZEM4JMEP3",
        "reference_id": "12345678",
        "amount": "47",
        "status": "processed"
      }
    ]
  }
}