arrow-rotate-leftEstorno Total de um Pedido

Este endpoint permite realizar o estorno total de uma cobrança (charge) já processada. O estorno é sempre feito no nível da cobrança, e não diretamente no pedido (order).

📌 Um pedido pode possuir uma ou mais cobranças, portanto o estorno deve ser executado para cada charge elegível.


Endpoint

PATCH /v2/charges/{uuid}/refund https://api.barte.com/v2/charges/{uuid}/refund


Headers

X-Token-Api: YOUR_API_KEY
Content-Type: application/json
Accept: */*

Path Param

uuid (obrigatório)

Identificador único da cobrança (charge.uuid).

📌 Esse uuid é obtido:

  • Na criação do pedido

  • Na consulta do pedido (GET /v2/orders/{uuid})

  • Via webhook de atualização de status


Body

asFraud (opcional)

Indica se o estorno está sendo realizado por suspeita de fraude.

📌 Impacta regras internas de risco, antifraude e relatórios.


Exemplo de resposta


Campos mais importantes da resposta

  • uuid - Identificador único da cobrança estornada. Use para:

    • Auditoria

    • Suporte

    • Conciliação financeira

  • status - Status atual da cobrança após a tentativa de estorno. Valores comuns:

    • REFUND → estorno realizado com sucesso

    • PAID → estorno falhou ou não foi processado

    • FAILED → falha definitiva (dependendo do meio de pagamento)

⚠️ Nunca assuma sucesso apenas pela chamada HTTP. Sempre valide o status retornado.

  • retryable ⚠️ CAMPO CRÍTICO

    • Indica se é permitido tentar estornar novamente essa cobrança.

    • Comportamento esperado:

      • retryable = true: O estorno falhou, mas é permitido tentar novamente

      • retryable = false: Não é permitido tentar novamente, independentemente do status

📌 Importante: Mesmo que o status não seja REFUND, se retryable = false, novas tentativas são proibidas.


siren Comportamento em caso de falha de estorno

Quando o estorno falha:

  • O status da cobrança permanece como estava, sem mudar para REFUND

  • O campo retryable define se uma nova tentativa é possível

Exemplo de cenário

➡ É permitido tentar novamente.


Não é permitido tentar novamente, mesmo sem status REFUND.


bell Webhooks e estorno

Após uma tentativa de estorno:

  • O status da cobrança é atualizado

  • Um webhook é disparado para o seu sistema

📌 Sempre:

  • Escute o webhook

  • Atualize seu estado interno

  • Trate divergências como exceção crítica


rotate Fluxo recomendado de estorno


lightbulb Boas práticas

  • Sempre valide:

    • status

    • retryable

  • Armazene:

    • uuid da charge

    • Status anterior e posterior

  • Use webhook como confirmação final

  • Trate estorno como operação assíncrona

  • Diferencie estorno por fraude (asFraud = true) de estorno operacional


hexagon-xmark O que não fazer

  • Tentar estornar novamente quando retryable = false

  • Estornar pedido sem identificar a cobrança correta

  • Ignorar webhook após estorno

  • Implementar loop automático de retry sem validação

Last updated

Was this helpful?