Estornando um QRCode

Estornando um QRCode

O estorno de um QRCode na API do Pagou permite solicitar o reembolso de um QRCode Pix pago (com ou sem vencimento), transitando seu status para StatusRefunded.

Visão Geral Técnica

O endpoint DELETE /v1/pix/{id}/refund solicita o estorno de um QRCode identificado por seu ID único no formato UUID (ex.: 550e8400-e29b-41d4-a716-446655440000). O payload permite especificar o valor do estorno (para estornos parciais) e o motivo do reembolso. A operação é síncrona, retornando 204 No Content para indicar que o estorno foi iniciado com sucesso, e o status do QRCode é alterado para StatusRefunded.

Especificações:

  • Método: DELETE

  • URL:

    • Produção: https://api.pagou.com.br/v1/pix/{id}/refund

    • Sandbox: https://sandbox.api.pagou.com.br/v1/pix/{id}/refund

  • Autenticação: Cabeçalho X-API-KEY com chave do painel.

  • Content-Type: application/json

  • Resposta: Status 204 No Content sem corpo.

  • Erros: 400 Bad Request, 401 Unauthorized, 500 Internal Server Error.

Cabeçalhos

Cabeçalho

Valor

Descrição

X-API-KEY

sua_chave_api

Chave de autenticação (encontrada em Configurações > API).

Content-Type

application/json

Formato JSON para o corpo da requisição.

User-Agent

NomeDaSuaAplicacao/1.0

Identificador da aplicação (ex.: MinhaLoja/1.0, opcional).

Parâmetros da URL

Parâmetro

Tipo

Obrigatório

Descrição

id

string

Sim

ID único do QRCode no formato UUID (ex.: 550e8400-e29b-41d4-a716-446655440000).

Corpo da Requisição

O payload deve conter informações do estorno, como o valor a ser reembolsado (para estornos parciais) e o motivo do reembolso.

{
  "amount": 50.00,
  "reason": 3,
  "description": "Customer requested refund due to product return"
}

Campos do Payload:

Campo

Tipo

Obrigatório

Descrição

amount

number

Sim

Valor do estorno em reais (ex.: 50.00 para R$ 50,00).

reason

number

Sim

Motivo do estorno. Valores válidos: 1, 2, 3, 4.

description

string

Sim

Descrição do estorno (máx. 255 caracteres, ex.: "Devolução do produto").

Valores de reason:

Valor

Descrição

1

Estorno devido a um erro bancário.

2

Estorno por suspeita de fraude.

3

Estorno solicitado pelo cliente final.

4

Estorno devido a erro relacionado ao Pix Saque ou Pix Troco.

Validações:

  • id: Deve ser um UUID válido (ex.: 550e8400-e29b-41d4-a716-446655440000).

  • amount: Deve ser maior que 0 e menor ou igual ao valor original do QRCode.

  • reason: Máximo de 255 caracteres, se fornecido.

  • O QRCode deve estar no status StatusCompleted. QRCodes em StatusEmpty, StatusActive, StatusCanceled ou StatusRefunded não podem ser estornados.

Notas Técnicas:

  • Use o endpoint GET /v1/pix/{id} (veja Consultando um QRCode) para verificar o status do QRCode antes e após o estorno.

  • O estorno pode ser parcial ou total.

  • Configure o notification_url ao criar o QRCode para receber eventos relacionados ao pagamento ou estorno, se aplicável (veja Webhooks para Interações com Pix).

Resposta

  • Status: 204 No Content

  • Corpo: Nenhum (a resposta não contém corpo, indicando sucesso no início do processo de estorno).

Exemplos de Código

curl -X DELETE https://sandbox.api.pagou.com.br/v1/pix/550e8400-e29b-41d4-a716-446655440000/refund \
  -H "X-API-KEY: sua_chave_api" \
  -H "Content-Type: application/json" \
  -H "User-Agent: MinhaLoja/1.0" \
  -d '{
    "amount": 50.00,
    "reason": "Customer requested refund due to product return"
  }'

Tratamento de Erros

Código HTTP

Descrição

Possível Causa

Solução

400

Bad Request

id não é um UUID válido, amount inválido (ex.: maior que o valor original), ou QRCode não está em StatusCompleted.

Verificar formato do id, validar amount e consultar status com GET /v1/pix/{id}.

401

Unauthorized

X-API-KEY inválido ou ausente.

Verificar chave.

500

Internal Server Error

Erro interno da API.

Tentar novamente e contatar [email protected]

Exemplo de Resposta de Erro:

{
  "error": "QRCode is not in completed status"
}

Boas Práticas Técnicas

  • Verificação Prévia: Consulte o status do QRCode com GET /v1/pix/{id} (veja Consultando um QRCode) para confirmar que está em StatusCompleted antes de tentar estornar.

  • Validação de Dados: Valide o id como UUID e o amount (se fornecido) como menor ou igual ao valor original do QRCode antes de enviar a requisição.

  • Segurança: Armazene X-API-KEY em variáveis de ambiente e use HTTPS para todas as requisições.

  • Monitoramento: Registre todas as requisições e respostas (incluindo id e código de status HTTP) em logs para auditoria e depuração.

  • Confirmação de Estorno: Após o estorno, use GET /v1/pix/{id} para verificar se o status mudou para StatusRefunded.

  • Testes no Sandbox: Use https://sandbox.api.pagou.com.br/v1/pix/{id}/refund para simular estornos sem impacto em produção.

  • Gestão de Erros: Trate erros 400 para evitar tentativas de estorno de QRCodes não pagos (StatusActive) ou já estornados (StatusRefunded).

Last updated