Comunidade
Erro ao estornar cobrança (charge) via API no ambiente Sandbox
about 1 month ago by Bruno Loss Pecorari
Olá, equipe PagBank!
Estou realizando testes de integração com a API de Pedidos & Pagamentos no ambiente Sandbox e estou enfrentando dificuldades para estornar uma cobrança (charge) de cartão de crédito via endpoint /charges/{charge_id}/cancel
.
Cenário:
- Crio um pedido com cartão de crédito, valor de R$ 50,00 (5000 centavos), usando
"capture": true
para que a transação seja concluída e a charge fique com statusPAID
. - Em seguida, tento estornar essa charge usando o endpoint:
POST https://sandbox.api.pagseguro.com/charges/{charge_id}/cancel
- Testei tanto enviando o body:
quanto sem body (body vazio
{ "amount": { "value": 5000 } }
{}
).
Headers enviados:
{
"Authorization": "Bearer <meu_token>",
"Content-Type": "application/json",
"x-idempotency-key": "<uuid>"
}
Resposta da API:
Sempre recebo:
{
"error_messages": [
{
"code": "40002",
"description": "invalid_parameter"
}
]
}
Outros detalhes:
- O status da charge no momento do estorno é
PAID
. - O link de cancelamento (
rel: CHARGE.CANCEL
) está presente no objeto da charge. - Também testei endpoints de estorno (
/refund
,/refunds
,/reverse
,/chargeback
) e todos retornam 403 unauthorized no sandbox. - O valor enviado no campo
amount
é igual ao valor pago.
Perguntas:
- O endpoint
/cancel
é realmente o correto para estornar uma transação já concluída (status PAID) de cartão de crédito? - Existe algum parâmetro obrigatório ou formato específico para estornar uma charge via API?
- Há alguma limitação conhecida no ambiente sandbox para esse tipo de operação?
- Como proceder para testar o fluxo completo de pagamento e estorno de cartão de crédito?
Agradeço desde já pela atenção e aguardo orientações para conseguir validar esse fluxo!