Skip to main content

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, R$4.90 per governed account — and how the dashboard shows what you owe.

2 min read
View MarkdownEdit on GitHub

Billing

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: Account governance, R$4.90 per governed account active in the month.

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. A governed account that exists and is active in the month pays Account governance. Anything that does not settle money and is not a governed account 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

LaneWhat it coversFreeSelf-serveCommitted volume
BuildSandbox, catalog, SDK, CLI, MeterUnlimited, alwaysR$0R$0
MovePay, Embed, Cards at GA: value executed under your mandateFirst R$1,000 settled per month, per organization10 bps, floor R$0.05, cap R$2.00 per transaction8 bps, cap R$1.50 from R$5M/month; 6 bps, cap R$1.00 from R$50M/month
Get paidGate, Collect, Shop seller side: value that settles in your accountFirst R$1,000 settled per month, per organization1% of settled, no floor, cap R$2.00 per transaction0.7% from R$1M/month; 0.5% from R$10M/month
Account governanceA governed account exists: mandate, identity, guardrails and receipts kept for that accountAccounts with no outcome in the month: R$0R$4.90 per governed account active in the monthR$4.90 per governed account active in the month
OperateFiscal documents, identity checks, shipping labels, messagesIncluded while in previewIncluded while in previewIncluded 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 Account governance line is per governed 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: Gate and Embed have this pricing in effect for new contracts today. Pay, Collect, Shop, Wallet, Cards and Meter carry the same price as a commitment for general availability, locked for 24 months for anyone who signs before GA, and cost R$0 until then. 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 and the Account governance line are published prices that are not yet charged.

What counts

Only what settles, plus the account that exists. 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. A governed account counts once per month in which it had any outcome.

CountsDoes 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
A governed account with at least one outcome in the month (Account governance)A governed account with no outcome in the month
Sandbox runs, Meter usage tracking, 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 happenedLaneRuleCodeSpar fee
Move R$0.30 under mandateMovefloorR$0.05
Move R$100 under mandateMove10 bpsR$0.10
Move R$5,000 under mandateMovecapR$2.00
Get paid R$100Get paid1%R$1.00
Get paid R$0.50Get paid1%, no floorR$0.005
R$900 settled in the whole montheitherfree tierR$0
12 governed accounts active in the monthAccount governanceR$4.90 eachR$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 Account governance line, which is not yet charged either. 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, team and project members. 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 Meter usage are free without limit. Only a settled money movement bills, plus the governed account that exists.

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 it had at least one outcome, and R$0 in a month it had none.

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

Billing | CodeSpar