Developer Platform

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.

01 — REST API

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.

api.ondayzero.com/api/v1

REST API

Bearer API keys · OpenAPI schema · llms.txt
Demo
# 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
}
/transactions/invoices/bills/journal-entries/reports/customers/vendors/ledgersOpenAPI schema/llms.txt

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.

02 — MCP server

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.

api.ondayzero.com/mcp

Agent session

send_invoice — dry run, approval, commit
MCP
Send Harvest Market their monthly wholesale invoice.
send_invoice · dry_run: truePreview
Invoice
INV-1042
Customer
Harvest Market
Amount
$12,400.00
Terms
Net 30 — due Jul 31
Dry run — nothing was sent or committed.
Approval required

Send invoice INV-1042 for $12,400.00 to Harvest Market?

Approve & sendCancel
send_invoiceCommitted
Status
Sent — open
Audit trail
Logged, with actor & before/after
Done — INV-1042 for $12,400.00 is on its way to Harvest Market, due Jul 31.

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.

03 — Safety rails

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.

send_invoicesend_estimatefinalize_invoicevoid_invoicemark_invoice_paidlink_invoice_paymentlink_bill_paymentvoid_credit_memovoid_vendor_creditcancel_billconvert_estimate

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.

04 — Embedded UI

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.

MCP Apps host — ui://dayzero/*

Alpenglow — snapshot tools

Rendered inline in the chat, not pasted as text
Embedded UI
Daily briefget_daily_brief
Cash across 3 accounts$312,500.00
AP due this week$17,500.00
Overdue AR$9,100.00
AR agingget_ar_snapshot
Total receivable$68,500.00
60+ days$9,100.00Golden Hour Hotels
05 — Firm scale

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.

api.ondayzero.com/mcp

Harborview Advisors

One call, 24 client businesses
Firm
get_firm_client_overview
ACAlpenglow Chocolate Co.Books current
DSDriftwood Surf SupplyClose in progress
LCLantern Coffee RoastersBooks current
FFFoxglove Florals2 attention items
C&Cedar & Vine Wine BarBooks current
…and 19 more clients in one response — no per-client looping.

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.