Skip to main content

Cash-in (recebimento)

Estados:
StatusFinal?Significado
pendingQR Code gerado, aguardando pagamento.
paidCliente pagou. Saldo creditado.
expiredQR Code expirou sem pagamento.
refundedDevolução pós-pagamento. Saldo estornado.

Cash-out (pagamento)

Estados:
StatusFinal?Significado
processingPagamento enviado, aguardando confirmação do banco do destinatário.
paidBanco confirmou. Pagamento concluído.
refundedNão foi possível concluir (ex: chave inválida no banco do destinatário). Saldo é estornado automaticamente.
failedRejeitado na validação inicial (saldo insuficiente, dados inválidos). Nenhum valor é movimentado.

Idempotência

Use external_id como identificador único da sua transação. Se você enviar a mesma cobrança 2x com o mesmo external_id:
  • Se a primeira ainda está pending/processing/paid → retornamos erro 409 Conflict (ou 401 com mensagem específica em endpoints legados).
  • Se a primeira está failed → permitimos retentar com mesmo external_id.
Use UUIDs ou IDs únicos do seu sistema (pedido-001, withdrawal-abc123) — nunca timestamps puros (que podem colidir em alta concorrência).