Billing
The CodeSpar rate card (free to build, 10 bps to move money under mandate, 1% to get paid, never more than R$2.00 per transaction, and customer account governance only when contracted) and how the dashboard shows what you owe. The current table is codespar.dev/pricing.
One public rate card, the same for every account, in BRL:
Build, measure and think: free. Move money under mandate: 10 bps. Get paid: 1%. Never more than R$2.00 per transaction. Rails always pass through at the partner's price. And one line that is not per transaction, only when contracted: Customer account governance, R$4.90 per eligible account per month, under an explicit contract with your organization; never switched on by default. The current table is codespar.dev/pricing.
The direction the money moves picks the line. Money leaving your organization under a signed mandate pays the Move lane. Money arriving in your account pays the Get paid lane. Under a contract that includes it, an eligible account pays Customer account governance. Anything that does not settle money and is not an eligible account under that contract pays nothing. The lane is a fact of the ledger, not a choice you or we make, so the same outcome never pays two lines.
The rate card
| Lane | What it covers | Free | Self-serve | Committed volume |
|---|---|---|---|---|
| Build | Sandbox, catalog, SDK, CLI, Bill usage metering | Unlimited, always | R$0 | R$0 |
| Move | Pay, Embed, Cards at GA: value executed under your mandate | First R$1,000 settled per month, per organization | 10 bps, floor R$0.05, cap R$2.00 per transaction | 8 bps, cap R$1.50 from R$5M/month; 6 bps, cap R$1.00 from R$50M/month |
| Get paid | Gate, Collect (including the Bill invoices it charges), Shop seller side: value that settles in your account | First R$1,000 settled per month, per organization | 1% of settled, no floor, cap R$2.00 per transaction | 0.7% from R$1M/month; 0.5% from R$10M/month |
| Customer account governance (when contracted) | Only under an explicit contract with your organization; never switched on by default. An account is eligible in a month when at least one payment settles, or one purchase receipt is paid or delivered, under its mandates | The free tier does not apply to this line | R$4.90 per eligible account per month, when contracted | R$4.90 per eligible account per month, when contracted |
| Operate | Fiscal documents, identity checks, shipping labels, messages | Included while in preview | Included while in preview | Included while in preview |
Rules that apply to every line:
- Rails pass through at the partner's price, on their own line, never marked up. Pix, boleto, card networks and USDC settlement cost what the partner charges.
- Cross-border FX is a published line, not a spread: 0.5% of the converted amount self-serve, 0.3% with committed volume, on top of the partner's exchange rate at cost.
- Governance features are never a per-transaction line item. Mandate, receipt, identity (KYA), guardrails, audit and routing come inside every paid line; the customer account governance line, when contracted, is per eligible account, not per feature.
- No rev-share, no platform fee, no minimum. The rate card is public and identical for every customer; if it goes down, every contract goes down with it.
- A full refund within 7 days reverses the fee on the original outcome, once per payer-payee pair every 30 days.
- Committed-volume steps trigger on trailing three-month volume with a true-up, never on a minimum with a shortfall penalty.
Status, plainly: these rates are the commitment for general availability. The Move and Get paid lanes are included until general availability, and accounts that sign up before general availability lock these rates for 24 months from general availability. That is a price promise, not an availability promise. On the billing side, only the Move lane is computed by the backend today; the Get paid lane is a published price that is not yet charged, and the customer account governance line applies only under a contract that includes it.
What counts
Only what settles, plus, under a contract that includes it, the eligible account. A Move transaction is one mandate that actually executed a transfer. A Get paid transaction is one payment that actually landed. One settled invoice is one transaction. Under that contract, an account counts once per month in which it is eligible: at least one payment settles, or one purchase receipt is paid or delivered, under its mandates.
| Counts | Does NOT count |
|---|---|
| Payout, supplier payment or purchase executed under mandate (Move) | Attempt, retry, decline, quote, verification, deliberation |
| Paywall settlement, paid link, storefront sale (Get paid) | Session creation, tool listing, catalog browsing |
| An eligible account in the month, under a contract that includes it (Customer account governance) | An account with no eligible outcome in the month, or with no such contract |
| Sandbox runs, Bill usage metering, mandate creation, simulations | |
| Wallet creation, balances, internal transfers inside the same organization | |
| Card issuance, binding and authorizer controls |
Tool calls are logged for audit, debugging and rate limiting. They are never billing events.
Worked examples
Past the free tier, the arithmetic is the one you can do in your head:
| What happened | Lane | Rule | CodeSpar fee |
|---|---|---|---|
| Move R$0.30 under mandate | Move | floor | R$0.05 |
| Move R$100 under mandate | Move | 10 bps | R$0.10 |
| Move R$5,000 under mandate | Move | cap | R$2.00 |
| Get paid R$100 | Get paid | 1% | R$1.00 |
| Get paid R$0.50 | Get paid | 1%, no floor | R$0.005 |
| R$900 settled in the whole month | either | free tier | R$0 |
| 12 governed accounts eligible in the month, when contracted | Customer account governance | R$4.90 each | R$58.80 |
The rail's own fee, if any, shows up as a separate line at the partner's price. Fractions of a centavo (the R$0.50 paywall call) accumulate on the invoice and round once, at invoice time.
Tracking what you owe
Via the dashboard
codespar.dev/dashboard/billing shows the Pay fee card: the Move-lane fee computed for the current period from money moved under mandate, the amount moved, the number of payers and the rate tier applied. Until invoicing goes live the card carries a "Not yet charged" badge, and a workspace that has not had a period computed yet sees "Not computed yet" instead of a number. The rate card block below it repeats the published numbers, including the customer account governance line, which applies only when contracted. There is no plan grid and no upgrade button: there is nothing to upgrade to.
The shapes the dashboard renders
Every /v1/billing* route lives in the API's service-auth subtree, alongside api-keys and team. A csk_ Bearer key is not read there and answers 401 {"error":"unauthorized"}. These are not customer-callable endpoints; the dashboard proxies them through its own server routes. The fee read below lives under /v1/fees/ instead, behind the fees:read scope; the dashboard reaches it with its service credential. The shapes are documented because they are what the dashboard renders, not as a request you have to make.
GET /v1/fees/movimentar — the latest computed Move-lane period for the organization, or null when nothing has computed one yet:
{
"period": "2026-09",
"consumerCount": 3,
"movedMinor": 1250000,
"feeMinor": 1150,
"rateTier": "self_serve",
"computedAt": "2026-09-09T12:00:00Z"
}Amounts are BRL minor units: movedMinor: 1250000 is R$12,500.00 moved and feeMinor: 1150 is R$11.50 owed.
POST /v1/billing/portal returns a Stripe Customer Portal URL for payment methods and invoice history. The dashboard exposes it only to organizations that already have a live paid agreement.
FAQs
Do tool calls count toward billing? No. Tool calls, sandbox runs and Bill usage metering are free without limit. Only a settled money movement bills, plus, when contracted, the eligible account.
What if a transaction fails? Attempts, retries and declines carry no counter. R$0.
What is a governed account, and when does it pay? An account CodeSpar keeps a mandate, identity, guardrails and receipts for: a payer under Embed, a counterparty your agents pay, a customer your paywall collects from. It pays R$4.90 in a month in which it is eligible, and only when your organization has contracted customer account governance. That line is never switched on by default. See codespar.dev/pricing.
What about invoicing, shipping, messaging? The Operate lane, for outcomes that do not move money, is included while in preview. Its price is not published yet, and we will not print a number before it is.
What if the payment is refunded? A full refund within 7 days reverses the fee on that outcome, once per payer-payee pair every 30 days.
Is there a minimum? No minimum, no platform fee, no rev-share. The first R$1,000 settled per month, per lane, per organization, is free.
Next steps
Test Mode
How a test project runs an agent. Tool calls go to each provider's test environment, a session that declares mocks is answered from them, Guardrails governs both, and the platform prepares the project's Test account.
Refunds
How money goes back: outbound refunds through codespar_pay, provider-level refund tools such as Pix devolution, and the commerce.payment.refunded trigger event that tells your backend it happened.