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

Este endpoint permite crear un reembolso total o parcial de una transacción de pago asociada a una order para Código QR de Mercado Pago. 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. 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
Header
Authorization
string

REQUERIDO

Access Token obtenido a través del panel de desarrollador. Obligatorio ser enviado en todas las solicitudes.
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. Para garantizar que cada solicitud sea única, debes utilizar un valor exclusivo para cada lla...Ver más
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".
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. Para verificar el estado del reembolso, ejecute la solicitud 'Obtener order por ID' y confirme el campo "transactions.refunds.status". Además, active sus notificaciones de Webhooks.
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 requisición 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.

invalid_order_owner

Debido a validaciones internas, no puedes procesar el reembolso de una order que no has creado.

in_store_payment_refund_order

Se superó el tiempo límite permitido para hacer un reembolso de la order. Verifica estar dentro del plazo de 330 días desde la creación de la order.

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 Order ID no corresponde a una order creada, por lo que 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

Estás queriendo devolver una order que ya fue reembolsada. Verifica haber enviado el ID correcto.

cannot_refund_order,

El estado de la order no permite su reembolso. Solo pueden ser reembolsadas orders con status 'processed'.

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 'Authorization: Bearer APP_USR-8*********932064-12*********edf6d3c99*********2236c703f*********668' \
       -H 'X-Idempotency-Key: df70fded-7d3d-4471-8e01-553e120caa2c' \
    -d '{
  "transactions": [
    {
      "id": "PAY01J67CQQH5904WDBVZEM4JMEP3",
      "amount": "25"
    }
  ]
}'
Response
{
  "id": "ORD0000ABCD222233334444555566",
  "status": "refunded",
  "status_detail": "refunded",
  "transactions": {
    "refunds": [
      {
        "id": "REF01J67CQQH5904WDBVZEM1234D",
        "transaction_id": "PAY01J67CQQH5904WDBVZEM4JMEP3",
        "amount": "25",
        "status": "processing",
        "reference_id": "12345678"
      }
    ]
  }
}