Skip to main content

Token inválido ou ausente

Sintoma: 401 Unauthorized em qualquer chamada.

Payload inválido (400 / 422)

Sintoma: 400 Bad Request ou 422 Unprocessable Entity.

externalId duplicado (409)

Sintoma: 409 Conflict.

Transação não encontrada (404)

Sintoma: 404 Not Found em GET /api/pix/cash-in/{id} ou similar.

Webhook não recebido

Sintoma: pagamento confirmado (via GET), mas nenhum webhook chegou.
1

Verificar o registro

GET /webhook — confirmar que a URL está registrada e correta.
2

Verificar o endpoint

Testar a URL com uma requisição manual (curl -X POST https://seu-sistema.com/webhooks/pix -H "Content-Type: application/json" -d '{}') — deve retornar 2xx (mesmo sem assinatura válida, o endpoint deve estar acessível).
3

Verificar TLS

Certificado público válido, sem autoassinado, na URL registrada.
4

Verificar logs

Logs do seu endpoint de webhook para o período — possível 5xx que gerou retentativas sem sucesso.
5

Verificar WAF / firewall

Regras de WAF podem bloquear headers como Digital-Signature. Permitir passagem desse header.
6

Consultar via GET

Se o pagamento já está PAID na consulta, o estado real está correto. Reconciliar localmente e investigar a entrega em segundo plano.

Assinatura inválida

Sintoma: verificação de Digital-Signature sempre falha.

QR Code expirado

Sintoma: pagador informa que o QR não funciona ou o cash-in está EXPIRED.

Refund rejeitado

Sintoma: 422 ao tentar criar refund-in.

Estado ambíguo (PROVIDER_RESULT_UNKNOWN / RECONCILIATION_REQUIRED)

Sintoma: transação presa sem avançar para estado terminal. Veja Reconciliação para o fluxo completo.

Cash-out falhado inesperadamente

Sintoma: cash-out vai a FAILED sem causa aparente.

Inconsistência entre consulta e notificação

Sintoma: GET retorna CONFIRMED mas o webhook diz FAILED (ou vice-versa). Regra: GET /.../{id} é o dado mais recente e autoritativo. Webhooks são at-least-once e podem chegar fora de ordem.

Referências