Reembolsar monto parcial
Para reembolsar un monto parcial, es decir, devolver solo una parte del valor pagado, es necesario indicar el valor que debe ser devuelto directamente en el body
del request. Para ello, envía un POST al endpoint /v1/advanced_payments/{advanced_payment_id}/refunds con la información adecuada y ejecuta el request o, si lo prefieres, utiliza el curl
que se muestra a continuación.
curl -X POST \
'https://api.mercadopago.com/v1/advanced_payments/ADVANCED_PAYMENT_ID/refunds' \
-H 'X-Idempotency-Key: IDEMPOTENCY_KEY' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'accept: application/json' \
-H 'content-type: application/json' \
-d '{
"amount":25
}'
Respuestas
Al ejecutar el request de un reembolso parcial, es posible que se devuelvan diferentes respuestas. A continuación se detallan cada una de ellas, así como las posibles causas.
Respuesta exitosa
[
{
"id": 1242469925,
"payment_id": 51617407254,
"amount": 25,
"source": {
"id": 783789745,
"name": "Test Test",
"type": "collector"
},
"date_created": "2022-11-18T08:48:06.768-04:00",
"status": "approved"
}
]
Respuesta fallida: Bad request
Esta respuesta se devuelve cuando uno de los parámetros del request es incorrecto o no se encuentra. Por ejemplo, este error ocurrirá cuando se envíe un ID inválido.
Código de status: 400
{
"status": "400",
"error": "bad_request",
"message": "Invalid splitter id.",
"cause": [
{
"code":"400048",
"message": "Invalid splitter id",
"data": null
}
]
}
Respuesta fallida: Not found
Esta es una respuesta común que se devuelve cuando no se encuentra ningún Advanced Payment creado con el ID proporcionado en los parámetros del request.
Código de status: 404
{
"status": "404",
"error": "not_found",
"message": "Advanced payment not found.",
"cause": [
{
"code":"404002",
"message": "Advanced payment not found",
"data": null
}
]
}
Respuesta fallida: Internal error code
Es la respuesta que indica que se produjo un error en el servidor durante el procesamiento del request. Esto significa que el request del cliente no pudo completarse debido a un problema interno en el servidor.
Código de status: 500
{
"status": "500",
"error": "internal_server_error",
"message": "Invalid splitter id.",
"cause": [
{
"code":"500000",
"message": "Internal server error",
"data": null
}
]
}
Código de status: 200