Skip to main content

Use case · Pay an obligation that already exists

Concept · scene A

The month's obligations, paid under a mandate.

A personal assistant pays what the mandate allows: who, how much, until when. Exceptions wait for you. Scene A: a PJ contractor and the month's tax.

Test keys are free.

Scene A · a PJ contractor's monthdemo

October 2026

SMTWTFS12345678910111213141516171819202122232425262728293031
Tax slip from the accountantR$ 1,218.00 · due on the 20th · amount from the accountant, nothing calculatedreceived
Pay by boletoThe barcode marks it as a tax slip · payee: the collecting authority it names−R$ 1,218.00paid
Receipt kept with the sliprcpt_demo_1020 · Ed25519 signaturesigned
Complementary slip · day 24R$ 4,100.00 · above the per-transaction cap of R$ 2,000.00 · waits for your approval−R$ 4,100.00waiting for approval
A payee outside the tax type · day 27Refusing it by type is a direction: no mandate rule restricts by payee type todayDirection
Monthly cap · OctoberR$ 1,218.00 of R$ 6,000.00
1 waiting for approval · R$ 4,100.00no calculation, no reconciliation

Concept · demo data

The pain

Fixed obligations, known payees, and someone still has to remember, check and pay.

Who uses it

The person, or the couple.

Who buys it

The app that already serves them: an online accountant, a bank.

The gain

The assistant pays what the mandate allows; only the unexpected asks for your approval.

The flow, side by side

From the accountant's slip to a receipt kept with it.

The amount comes from the accountant; the assistant calculates nothing, reconciles nothing and pays nobody outside the mandate.

  1. 01Accountant

    Slip of the month

    The accountant sends the month's tax slip. The amount is theirs.

    R$ 1,218.00 · due on the 20th
  2. 02CodeSpar

    Checked

    The barcode marks it as a tax slip; the mandate's caps are checked before anything is sent.

    tributo · collecting authority
  3. 03CodeSpar

    Paid, or waiting

    Under the per-transaction cap the boleto is paid; above it, the payment waits for approval.

    −R$ 1,218.00 · boleto
  4. 04The app

    Receipt with the slip

    The signed receipt is kept with the slip in the app that serves you.

    rcpt_demo_1020 · signed

Behind it

Mandate, slip, approval, receipt.

What the assistant may pay lives in a mandate you sign. The amount comes from the accountant; the platform checks the caps and keeps the proof.

Mandate · mnd_demo_tax demo
Signed byYou, on the consent page
PurposeThe month's tax slips
Per-transaction capR$ 2,000.00 · above it you approve (boleto the agent pays)
Monthly capR$ 6,000.00 / month · above it, refused
Validity12 months
Three paths under the same mandate demo
Happy pathMonthly slip · R$ 1,218 on the 20th → paid by boleto, receipt kept with the slip.
ExceptionComplementary slip · R$ 4,100 · above the per-transaction cap of R$ 2,000 → waits for your approval.
RefusalA payee outside the tax type → refused. Direction: no mandate rule restricts by payee type today; a payee no mandate names is refused.
TypeScript · @codespar/sdk 0.16.11SDK example
const session = await new CodeSpar().create("user_0000", { preset: "brazilian" });const run = await session.send("pay this month's tax slip from the accountant, due on the 20th");const pay = run.tool_calls.find((c) => c.tool_name === "codespar_pay");// R$ 1,218.00 under the cap: paid, rcpt_demo_1020 · the R$ 4,100.00 slip: approval_required

SDK example · demo data · not run on this page

What runs it demo
Mandate and rulesExistsPer-transaction and monthly caps, checked before anything is sent.Open
PaySandboxPays the slip on the boleto rail.Open
ApprovalsExistsAbove the per-transaction cap the payment waits for approval; approvals expire in 24 h.Open
Receipt and audit trailExistsA signed receipt for each paid slip; every decision in the audit trail.Open
The app you already usePilot / integrationShows the slips, asks for your approval, keeps the receipts.

Later variations

Two more households, later.

Scene A is the one this page shows. B and C are candidates for later, with the same rules and no promise beyond them.

Scene BLater

A family

School, housekeeper, electricity and internet under one monthly cap. A one-off enrollment slip above the per-transaction cap waits for approval.

Scene CLater

A doctor with a PJ

Office rent and staff under the mandate; fees received from clinics kept in the history, with no automatic reconciliation. Equipment from a supplier no mandate names needs a new mandate first.

What exists today

Exists, sandbox, pilot or direction: one label per control.

What you can run with a test key today, what runs in the sandbox, what depends on a pilot or an integration, and what is only a direction.

Mandate: per-transaction and monthly capsAbove the per-transaction cap a boleto waits for approval; above the monthly cap it is refused.Exists
Tax slip paid on the boleto railThe barcode is read as a tax slip (kind tributo) and paid as a boleto, in the sandbox with a test key.Sandbox
Payment above the cap waits for approvalAn organization admin decides in the Dashboard; approvals expire in 24 h.Exists
Signed receipt for each paid slipEd25519 under the platform key; the app keeps it with the slip.Exists
Refusing a payee outside the tax typeNo mandate rule restricts by payee type today; a payee no mandate names is refused.Direction
The assistant and the approval in the app you useThe personal assistant is the app's; CodeSpar runs underneath. No calculation, reconciliation or payout is offered.Pilot / integration

Cookbook

The month's slip, paid under a mandate.

You sign the mandate on the consent page; the assistant pays the slip in plain language. Above the per-transaction cap the payment waits for approval; the assistant reads the outcome.

  1. A test keyFrom the Dashboard. Test keys are free; nothing moves real money.
  2. A mandatePurpose, per-transaction and monthly caps. The Dashboard opens the consent page; you sign it.
  3. The slipThe barcode line from the accountant. The amount is theirs; nothing is calculated.
@codespar/sdk 0.16.11SDK example
// 1 · you signed the mandate on the consent page: tax slips, R$ 2,000.00 per transaction, R$ 6,000.00 a monthimport { CodeSpar, isApprovalRequired } from "@codespar/sdk";const session = await new CodeSpar().create("user_0000", { preset: "brazilian" }); // 2 · the assistant pays the slip on the boleto rail; the amount is the accountant'sconst run = await session.send("pay this month's tax slip from the accountant, due on the 20th");const pay = run.tool_calls.find((c) => c.tool_name === "codespar_pay"); // 3 · under the cap: paid · above it: waits for your approvalif (pay && isApprovalRequired(pay.output)) console.log(pay.output.approval_id, pay.output.expires_at);else if (pay) console.log((await session.paymentStatus(pay.id)).payment_status); // "succeeded"

SDK example · demo data · not run on this page

Related use cases

Use casePilot / integration

Business assistant for your customers

The money layer under a platform's assistant.

Use caseSandbox

CFO copilot

Pay approved invoices under your approval policy.

Use caseSandbox

Autonomous procurement

Supplier orders paid under your rules.

Give your agents a way to pay and get paid.

Build is free: hosted MCP, SDK and sandbox.

Test keys are free.

terminal · test modedemo
$ claude mcp add --transport http codespar https://connect.codespar.dev/mcp \    --header "Authorization: Bearer <test key>"> "pay this month's tax slip from the accountant, due on the 20th"  tax slip (tributo) · R$ 1,218.00 · under the R$ 2,000.00 per-transaction cap  paid by boleto · rcpt_demo_1020 · kept with the slip

Illustrative · demo data

Personal assistants · CodeSpar