Your books, programmable.
And safe to hand to an agent.
One REST API for the whole ledger, and an MCP server that makes your accounting available to Claude, ChatGPT, Cursor — any MCP client — with dry-run previews, approval gates, and an audit trail on every action.
One API for the ledger. Not a bolt-on export.
Transactions, invoices, bills, journal entries, customers, vendors, and full financial reports — the same API surface the product runs on, documented with an OpenAPI schema and an llms.txt map your coding agent can read.
# Amounts are integer cents — same convention as the ledger. $ curl https://api.ondayzero.com/api/v1/invoices \ -H "Authorization: Bearer dz_••••••••" { "items": [{ "number": "INV-1042", "customer": "Harvest Market", "status": "open", "amount_cents": 1240000, "terms": "net_30" }], "total": 1 }
API keys, scoped and revocable
Generate keys in Settings → Developers, scope what they can reach, and revoke them the moment you're done.
Cents-precise, UUID-keyed
Amounts are integer cents and IDs are UUIDs — the exact conventions the ledger uses internally, so nothing is lossy in translation.
Docs built for agents too
OpenAPI schema plus /llms.txt and /llms-full.txt, so both your IDE and your coding agent can discover every endpoint.
Your books, available to any AI agent.
Point Claude, ChatGPT, or Cursor at api.ondayzero.com/mcp and sign in with OAuth 2.1 — no tokens to copy. 160+ tools across 18 categories cover AR, AP, journal entries, close, reports, and analytics, with focused domain profiles (/mcp/ar, /mcp/ap, /mcp/reports…) for multi-server setups.
- Invoice
- INV-1042
- Customer
- Harvest Market
- Amount
- $12,400.00
- Terms
- Net 30 — due Jul 31
Send invoice INV-1042 for $12,400.00 to Harvest Market?
- Status
- Sent — open
- Audit trail
- Logged, with actor & before/after
Writes preview before they commit
Every write tool supports dry_run, so the agent shows you exactly what would change before anything does.
Approval happens in the chat
High-stakes actions — send, void, finalize, pay — pause for an in-band confirmation via MCP elicitation before they commit.
Slash-command workflows
Built-in prompts like month_end_close, daily_brief, and collections_review launch full workflows from your MCP client.
Agents move fast. Your ledger shouldn't flinch.
Autonomy is only useful if the books stay defensible. Every layer of the MCP server is built so an agent can act — and you can always see, gate, and audit what it did.
Dry-run on every write
All write tools accept dry_run and return a preview instead of committing — the default posture for agents you're still learning to trust.
Approval gates on the risky ones
Sending, voiding, finalizing, and payment-linking tools require an explicit in-chat approval. Clients without elicitation fall back to dry-run previews.
Scoped OAuth & a full audit trail
OAuth 2.1 scopes limit what a connection can touch, and every AI action lands in the same audit trail as human ones — queryable by the audit tools themselves.
Snapshot tools that render, not recite.
In MCP Apps–capable hosts, snapshot tools like get_daily_brief and get_ar_snapshot attach embedded ui://dayzero/* cards — real rendered UI inside the conversation. Hosts without UI support still get the full structured data.
One question, every client.
Firm users get fan-out tools that answer cross-client questions in a single call — plus a fuzzy find_business picker so agents grab the right client without guessing IDs.
Cross-client overviews
get_firm_client_overview and get_firm_user_activity sweep every client business in one response — no per-client loops.
Scope picking built in
When a user has many businesses, the server elicits a scope choice — firm-wide or one client — right in the conversation.
Isolated by design
Fan-out reads respect each business's permissions; a connection only ever sees the businesses its user can access.
Build on the ledger, not around it.
Start with the API reference and the MCP connection guide — your first agent can be reading the books in minutes.