Reembolsar valor parcial
Para reembolsar um valor parcial, ou seja, devolver somente parte do valor pago, é necessário indicar o valor que deve ser devolvido diretamente no body
do request. Para isso, envie um POST ao endpoint /v1/advanced_payments/{advanced_payment_id}/refunds com as devidas informações e execute a requisição ou, se preferir, utilize o curl
abaixo.
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
}'
Respostas
Ao executar o request para um reembolso parcial, é possível que se retornem diferentes respostas. Abaixo você encontra o detalhe de cada uma delas, bem como as possíveis causas.
Resposta de sucesso
[
{
"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"
}
]
Resposta com falha: Bad request
Esta resposta retorna quando um dos parâmetros de solicitação está incorreto ou não foi encontrado. Por exemplo, este erro ocorrerá quando um id inválido for enviado.
Código de status: 400
{
"status": "400",
"error": "bad_request",
"message": "Invalid splitter id.",
"cause": [
{
"code":"400048",
"message": "Invalid splitter id",
"data": null
}
]
}
Resposta com falha: Not found
Esta é uma resposta comum que é retornada quando nenhum pagamento antecipado criado com o ID fornecido nos parâmetros da solicitação é encontrado.
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
}
]
}
Resposta com falha: Internal error code
É a resposta que indica que ocorreu um erro no servidor durante o processamento da solicitação. Isso significa que a solicitação do cliente não pôde ser concluída devido a um problema interno no 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