Skip to main content

Visão geral do fluxo

Passo 1 — Criar a cobrança

Resposta 201:
Persista o id imediatamente. Ele é necessário para consultas, cancelamentos e devoluções. O externalId é a sua chave de negócio — guarde ambos.

Parâmetros importantes

Passo 2 — Exibir o QR Code

O campo pixCode retornado é a string EMV (pix copia e cola). Use uma biblioteca de QR Code para renderizar a imagem ao pagador ou exibir o copia e cola diretamente. Exiba expirationDate formatado para o usuário. Após a expiração, o status será EXPIRED e um novo cash-in precisará ser criado.

Passo 3 — Receber o webhook

Quando o pagamento for liquidado, você receberá:
O que fazer ao receber:
  1. Verificar a assinatura (Digital-Signature) antes de qualquer lógica.
  2. Responder 2xx em até ~5 segundos.
  3. Enfileirar o processamento se necessário.
  4. Verificar idempotência: event_type + event.id + status.
  5. Se status == "PAID" e a verificação passar: liberar o pedido, enviar e-mail, etc.
O webhook também pode chegar com status: "FAILED" para cobranças que expiraram ou falharam definitivamente. Trate ambos os casos.

Passo 4 — Consultar o status (opcional)

Sempre que houver dúvida sobre o estado atual:
Use como fall-back quando:
  • O webhook não chegou dentro do tempo esperado.
  • Você precisa confirmar um estado antes de uma ação crítica.
  • O status está em PROVIDER_RESULT_UNKNOWN ou RECONCILIATION_REQUIRED.

Quando considerar o pagamento confirmado

Devoluções (refund-in)

Se precisar devolver um recebimento pago, veja Devolver um cash-in.

Referências