Developer docs
Spend exposes the same JSON API its web app uses, a signed webhook stream of every ledger event, a Model Context Protocol server for agents, SCIM for directories, and connectors to the ERPs and records systems agencies run.
Quickstart Sign in to the sandbox and make your first calls.
Authentication Sessions, single sign-on and the tokens each surface uses.
API conventions JSON, errors, lists, paging and money.
API reference Every route, generated from the server's route table.
Webhooks and event stream Signed delivery of every ledger event, or pull from a cursor.
MCP server Connect Copilot, Claude or your own agents.
Connectors Workday, Oracle EBS, Fusion, SAP, Maximo and CMIS.
Run Spend Configuration, operations and the security architecture.
How Spend is built
Section titled “How Spend is built”- Node.js 22 and TypeScript, as a pnpm monorepo. The server uses
node:httpwith a small route table and no web framework; the web app is React and Vite. - Packages:
@spend/core(ledger, money, policy, RBAC and segregation of duties, approvals),@spend/ai(Claude client and agent runtime),@spend/docintel(document capture),@spend/procurement,@spend/pay,@spend/platform(analytics, agents hub, tenants, migration) and@spend/connectors. - Storage: Postgres for records, the audit ledger and sessions; S3-compatible object storage for documents. Every row and file is encrypted per tenant before it is written.
- AI: Anthropic’s Claude with structured outputs and quoted evidence. Without a model configured, capture and agents run on rules.