Comunidade
Erro ao estornar cobrança (charge) via API no ambiente Sandbox
3 months 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": truepara 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!
