Seus agentes movem dinheiro de verdade. Seu CFO tem todas as respostas.
Você define os tetos, as allowlists e a validade. Cada pagamento dos seus agentes termina num registro que você entrega a um auditor.
Exemplo ilustrativo. Quatro sistemas, um pipeline só — cada seção abaixo é uma dessas linhas, por inteiro.
Cinco guardrails. Um comando.
Todo pagamento passa pelo mesmo pipeline. Seu agente pensa. A CodeSpar impõe. Nada se move até cada checagem passar, e cada passo fica registrado pra sempre.
Políticas que evitam o desastre.
Limites de gasto por agente, janelas de tempo, categorias permitidas, restrições geográficas, deny-lists. Seu CFO escreve as regras. Seu agente segue elas.
- Orçamentos diários, semanais e mensais por agente
- Deny-lists pra categorias, países, contrapartes
- Alertas instantâneos quando um agente atinge 80% do orçamento
const policy = { agentId: "agent-checkout", limits: { daily: 10000, weekly: 50000, perTx: 5000, }, denyList: ["RU", "IR", "gambling"], alerts: { at: 0.8 }, };
Router
Uma chamada governada. O router escolhe o rail.
Todo pagamento é checado contra o mandato assinado antes de se mover, depois resolve pro rail que realmente serve. Seu agente nunca escolhe um rail — ele só chama pay.
const session = await codespar.sessions.create({ mandate: mandate.id, }); const payment = await session.execute("codespar_pay", { input: { amount: 14250, // R$142.50 in centavos currency: "BRL", destination: "supplier_8f21a", mandateRef: mandate.id, // cap enforced before the call executes // no `rail` field — the router picks Pix, boleto, card, or USDC }, }); console.log(payment.result); // → { receiptId: "rcpt_9f2c1a4e", rail: "pix", status: "settled" }
Audit
Toda ação termina num recibo que você entrega a um auditor.
Toda checagem de mandato, toda liquidação, todo reembolso sela no mesmo recibo em hash-chain usado no resto do registry — verificável por qualquer um que tenha a chave pública do mandato, sem precisar nos chamar.
// every receipt links to the one before it — tampering with // any record breaks every hash after it, not just that one const receipt = await codespar.ledger.getReceipt("rcpt_8f2a91"); const expected = sha256(receipt.previousHash + receipt.canonical); console.log(expected === receipt.hash); // → true — this receipt is exactly what was sealed, unmodified
Wallets
Wallets programáveis agora têm página própria.
Multi-slot, travada por mandato — o mecanismo completo, os rails e o preço estão na página dedicada de Wallet.
Veja a CodeSpar em ação.
30 minutos. Sem compromisso. Veja um agente ao vivo rodar o Complete Loop — Pix, NF-e, envio, WhatsApp — no seu caso de uso.
Demo ao vivo
Veja o agente cobrar, faturar, enviar e conciliar — em tempo real com o seu cenário.
- Um walkthrough da camada de orquestração pro seu caso de uso
- Um agente ao vivo executando o Complete Loop — Pix, NF-e, Melhor Envio, WhatsApp
- Um esboço de arquitetura sob medida, enviado em até um dia útil
- Go-live em 5–7 dias úteis após o aceite