Credits & billing
How the prepaid credits wallet works: what fills it, what draws from it, the exact usage rates, spend caps, and where your invoices live.
Dairo bills in two layers. Your plan is a flat monthly subscription that carries the allowances (inboxes, domains, monthly emails, storage) and a monthly grant of usage credits. Your credits wallet is a prepaid USD balance that pays for metered usage — voice calls, printed letters, AI compute, and speech synthesis — at the rates below. Sending and receiving email is covered by your plan's monthly allowance and does not draw credits.
How credits reach your wallet
| Source | Amount | When |
|---|---|---|
| Plan grant — Developer | $10 | Every paid month |
| Plan grant — Startup | $75 | Every paid month |
| Plan grant — Scale | $200 | Every paid month |
| Trial grant | up to $10 | Once, at trial start |
| Starter pack | $10 + a bonus between $1 and $50 | One-time offer |
| Top-up | Any amount, $5–$5,000 | Whenever you choose |
Top-ups and the starter pack are one-time purchases from the dashboard's billing page; the wallet is credited the moment the payment lands. Refunded purchases are debited back out of the wallet.
What draws from credits
| Usage | Rate |
|---|---|
| Voice calls — Dairo Live | 9¢ per started minute, outbound and inbound; calls that never connect are free |
| Voice calls — telephony leg | by destination, e.g. US from 1.2¢/min, DE mobile from 4.62¢/min |
AI compute — claude-haiku-5-5 | $0.22 per 1M input tokens, $1.10 per 1M output tokens; a generation whose prompt exceeds 100,000 tokens is billed $1.10 per 1M input and $5.50 per 1M output tokens |
AI compute — claude-sonnet-5-5 | $4.40 per 1M input tokens, $22 per 1M output tokens |
| Dairo-TTS | 5¢ per 1,000 characters |
| Printed letters | The letter's priced amount in USD (walletAmount); see letter pricing |
Metered work is priced from what actually ran: an AI generation settles from the
model's real token usage, a call from its real duration. Before the work starts,
Dairo places a hold on your wallet for the worst-case price (a call's full
duration cap, a generation's maxTokens ceiling); when it finishes, the exact
amount is charged and the rest of the hold is released. Your wallet therefore
shows both a balance and an available figure — available is what's not currently
held by in-flight work.
If your available balance can't cover the worst case, the action is rejected
up front with the stable error code insufficient_credits — a call never rings,
and a generation never runs, on credit it can't pay for.
Spend caps
You can put a hard daily ceiling on metered spend, independent of your balance:
With that cap in place, any call, letter, or AI generation that would push the
trailing 24-hour spend (settled usage plus everything currently held) past $20
is rejected with the stable error code spend_cap_reached, and a
budget.tripped event is delivered to your webhooks. The cap is enforced
atomically — parallel requests can't slip past it together — and a cap of 0
stops all metered spend. The spend cap is an account limit: setting it on a key
or agent budget is a 400.
Volume budgets (maxSendsPerDay, maxNewRecipientsPerHour,
hardStopOnComplaint) live on the same endpoint and gate email and letter
sending the same way.
Invoices and receipts
Subscriptions and credit purchases are processed by Stripe. Every payment produces a Stripe invoice — top-ups included — and VAT or sales tax is applied on the invoice according to your billing address (enter a VAT ID at checkout for a reverse-charge B2B invoice where that applies). The dashboard's billing page lists every invoice with a downloadable PDF, and the Stripe customer portal lets you change plan, cancel at period end, or update your payment method. Wallet activity (grants, top-ups, holds, settlements, refunds) is itemized in the same place.
Reading your usage
Your live allowances and usage come from whoami under limits and usage;
the dashboard's billing page shows the same numbers with the wallet balance and
recent ledger alongside. The figures your bill is built from are never a
surprise.