Imprest API

Build integrations with Imprest, the double-entry accounting platform for small businesses. The REST API gives you programmatic access to invoices, bills, expenses, products, and dimensions (classes and locations) today, with contacts next.

Also available: an MCP server

Imprest ships a Model Context Protocol server at POST /mcp, protected by the same OAuth provider, with dynamic client registration so any MCP client can connect. AI assistants that speak MCP can read and record the books through it without any custom integration code. See the MCP server docs & tool catalog.

Base URL

https://imprest.ai/api/v1

All API endpoints are versioned under /api/v1.

Quick Start

Authenticate with OAuth 2.0, then make your first API call to list invoices. The token is already bound to the company that approved your app, so no organization header is needed:

List invoices
curl https://imprest.ai/api/v1/invoices \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Response
{
  "invoices": [
    {
      "id": "d4f5a6b7-8c9d-4e0f-a1b2-c3d4e5f6a7b8",
      "object": "invoice",
      "invoice_number": "INV-0001",
      "status": "sent",
      "currency": "USD",
      "total_cents": 150000,
      "amount_due_cents": 150000,
      "party": {
        "id": "a1b2c3d4-5e6f-7a8b-9c0d-e1f2a3b4c5d6",
        "display_name": "Acme Corp",
        "email": "ap@acme.example"
      },
      "issue_date": "2026-03-15",
      "due_date": "2026-04-14"
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 50,
    "total_count": 1,
    "total_pages": 1
  }
}

What You Can Build

Invoicing Integrations

Create, send, remind, void, and record payments on invoices.

Spend Sync

Book card charges and cash purchases as expenses, and list vendor bills, from your own tooling.

Catalog Sync

Keep services and goods and their prices in step with your store or PIM, and read stock on hand.

AI Assistants

Connect an MCP client and let it read and write the books under the scopes you grant.

Money Convention

Money is never a JSON float. A monetary value is either a decimal string or an integer whose name ends in _cents, and a currency code is always in scope on the same object or its parent. Invoices, bills, and expenses use the cents form.

// $1,200.00 USD on an invoice:

"total_cents": 120000,

"currency": "USD"

// the same amount as a decimal string:

"amount": "1200.00",

"currency": "USD"

Parse decimal strings with a decimal type, not a float. Divide cents by 100 for the dollar amount.

Next Steps