Este endpoint permite realizar la devolución total o parcial de una order procesada. Para realizar un reembolso total, no debes enviar el monto a reembolsar en el body de la solicitud. Para realizar un reembolso parcial, debes indicar el valor a ser reembolsado junto con el identificador de la transacción que deseas devolver. Se pueden realizar múltiples reembolsos parciales sobre la misma order, siempre que el monto acumulado reembolsado no supere el monto total pagado. En caso de éxito, la solicitud devolverá una respuesta con el estado 201.
POST
REQUERIDO
REQUERIDO
REQUERIDO
REQUERIDO CONDICIONAL
splits.REQUERIDO CONDICIONAL
transactions.status y status_detail y su significado, consulta la referencia de estados de la order.status y status_detail y su significado, consulta la referencia de estados de la order.400Error de solicitud.
refund_amount_exceeds
Se envió un valor inválido para alguna propiedad. El monto proporcionado supera el disponible para reembolso. Chequea el mensaje devuelto en los detalles del error para saber cuál fue el problema y vuelve a intentarlo.
order_refund_already_in_process
Ya se está procesando un reembolso total para esta order. Chequea el mensaje devuelto en los detalles del error para saber cuál fue el problema y vuelve a intentarlo.
401Error. Access Token no autorizado.
401
El valor enviado como Access Token es incorrecto. Por favor, verifícalo y vuelve a intentar realizar la solicitud enviando el valor correcto.
invalid_credentials
No hay soporte para credenciales de prueba. Utiliza usuarios de prueba con credenciales de producción para el entorno de prueba (sandbox) y sus credenciales de producción para el entorno de producción.
403Error. Prohibido.
forbidden
La aplicación no tiene permisos para acceder a este recurso. Verifica que el Access Token utilizado tenga los permisos y scopes necesarios para esta operación.
PA_UNAUTHORIZED_RESULT_FROM_POLICIES
La cuenta está bloqueada y sus claves de API fueron revocadas. Al menos una política evaluada por el Policy Agent retornó un resultado no autorizado.
404Recurso no encontrado.
transaction_not_found
El ID de transacción proporcionado no existe en esta order. Usa el id de transactions.payments[].id.
409Alguna regla específica del sistema no permite realizar la acción debido a restricciones definidas.
idempotency_key_already_used
El valor enviado como header de idempotencia (X-Idempotency-Key) ya fue utilizado. Por favor, vuelve a intentar realizar la solicitud enviando un nuevo valor.
order_already_refunded
Order ya reembolsada.
cannot_refund_order
No se puede reembolsar la order. Comprueba si la order ya ha sido reembolsada.
order_refund_already_in_process
Ya existe una solicitud de reembolso completo en proceso para la order en cuestión.
429Límite de solicitudes excedido.
too_many_requests
Client ID bloqueado por el gateway porque se alcanzó el límite de solicitudes para el ID en cuestión. Lee el header Retry-After de la respuesta y espera la cantidad de segundos indicada antes de volver a intentarlo. Para mayor resiliencia, implementa backoff exponencial con jitter, es decir, aumenta el tiempo de espera en cada nuevo intento y añade una variación aleatoria para evitar el reenvío simultáneo de muchas solicitudes.
usage_quota_exceeded
Cuota impuesta por el backend de la API porque se alcanzó el límite de solicitudes por cliente. Lee el header Retry-After de la respuesta y espera la cantidad de segundos indicada antes de volver a intentarlo. Para mayor resiliencia, implementa backoff exponencial con jitter, es decir, aumenta el tiempo de espera en cada nuevo intento y añade una variación aleatoria para evitar el reenvío simultáneo de muchas solicitudes.
500Error genérico.
internal_error
Error genérico. Intenta enviar la solicitud nuevamente.
curl -X POST \
'https://api.mercadopago.com/v1/orders/{order_id}/refund'\
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ' \
-H 'X-Idempotency-Key: b84443e1-f6e5-499a-b0de-e70d0ea2ad55' \
-d '{
"transactions": [
{
"id": "PAY01HRYFWNYRE1MR1E60MW3X0T2P",
"amount": "100.00"
}
],
"splits": [
{
"user_id": 1,
"amount": "50.00"
}
]
}'{
"id": "ORD01J49MMW3SSBK5PSV3DFR32959",
"status": "refunded",
"status_detail": "refunded",
"transactions": {
"refunds": [
{
"id": "REF01J49MMW3SSBK5PSV3DFR32959",
"transaction_id": "PAY01JEVQM06WDW16MAQ8B5SC0MSC",
"reference_id": "01JEVQM899NWSQC4FYWWW7KTF9",
"amount": "24.50",
"status": "processed"
}
]
}
}