Só em ambiente local
Conciliação
O ledger e o extrato do patrocinador divergem de quatro formas diferentes, e a conciliação encontra cada uma.
O que este roteiro prova
- A divergência é encontrada por uma rodada de conciliação, não por alguém olhando duas telas.
- Cada tipo de divergência vira uma obrigação em exceção com o motivo classificado: lançamento ausente, tarifa não prevista, duplicado, valor diferente.
- A prova do dia é reproduzível: rode de novo depois de corrigir e ela fecha.
Os passos
Os corpos abaixo estão abreviados nos identificadores, que você substitui pelos que as respostas anteriores devolvem. Cada escrita que cria valor precisa de um cabeçalho Idempotency-Key. Este roteiro roda contra um stack local, não contra o ambiente de avaliação.
Subir o ambiente local e zerar o simulador
A conciliação compara dois lados, então os dois precisam começar de um estado conhecido.
./scripts/devlocal.sh up, depois POST /sim/reset (simulador)Preparar a conta e a identidade
Criar a parte e a conta pela API. A identidade Pix é escrita direto no banco: este é o passo sem equivalente em endpoint, e a razão pela qual o roteiro é local.
POST /v1/parties, POST /v1/accounts, e uma escrita diretaMovimentar dinheiro nos dois sentidos
Um crédito recebido e um pagamento enviado, para que exista algo a conciliar.
POST /sim/inbound-pix (simulador), POST /v1/obligationsComparar os dois lados
A conta espelho do caixa externo no ledger contra o saldo do patrocinador. Em um dia sem divergência, os dois batem.
GET /v1/gl/accounts/gl_external_cash, e o saldo do simuladorRodar um ciclo de conciliação
Uma rodada compara e classifica. Sem divergência, ela fecha limpa.
POST /v1/recon/runs{ "kind": "cycle" }Provocar as quatro divergências
Um crédito sem aviso, uma tarifa que o ledger não previu, um lançamento duplicado no extrato e um valor diferente do combinado. Cada um deve aparecer como exceção classificada, e não como uma diferença total que alguém precisa investigar.
quatro chamadas ao simulador, depois GET /v1/obligations?state=EXCEPTIONFechar a prova do dia
Depois de corrigir, a prova do dia é gerada e consultada. É reproduzível: mesmos dados, mesmo resultado.
POST /v1/recon/runs, depois GET /v1/recon/proofs/{business_day}{ "kind": "daily_proof" }
A versão executável
Este roteiro é a espinha de scripts/demo-recon.sh, no repositório do núcleo. Esse script roda na nossa integração contínua a cada mudança relevante, então uma divergência entre o que está escrito aqui e o que o sistema faz quebra o build antes de chegar a esta página.
./scripts/devlocal.sh up
./scripts/demo-recon.sh