Skip to content

API reference

The SAE Books HTTP API. Every accounting operation — journal entries, invoices, payments, reports, reconciliation — is an API endpoint. The browser UI is a consumer of the same API your integration code would use.

Two ways to explore the API

Interactive docs (Swagger UI) — every install ships its own Swagger UI at /api/v1/docs. Hit "Try it out" on any endpoint, authenticate with a bearer token, and make real calls against your data.

https://app.saebooks.com.au/api/v1/docs      # hosted demo
http://localhost:8042/api/v1/docs              # your local install

Raw OpenAPI spec — the machine-readable schema is at /api/v1/openapi.json. Feed it to your code generator of choice.

curl -s https://app.saebooks.com.au/api/v1/openapi.json | python3 -m json.tool | head -60

Generated reference on this site — Endpoints (generated) renders the OpenAPI schema into this documentation site. Use it for quick lookups without leaving the docs.

Before you make your first call

Read in order:

  1. Authentication — how to obtain a token and keep it fresh
  2. Conventions — URL shape, error format, pagination, idempotency, optimistic locking

Endpoint groups

Group Base path What it covers
Auth /api/v1/auth/ Login, signup, email verification, password reset, magic link, WebAuthn
API tokens /api/v1/api-tokens/ Long-lived machine API tokens (issue, list, revoke)
Users /api/v1/users/ User management within a tenant
Companies /api/v1/companies/ Company settings, multi-company (Enterprise)
Branches /api/v1/branches/ Sub-branches within a company
Contacts /api/v1/contacts/ Customers and vendors
Accounts /api/v1/accounts/ Chart of accounts
Tax codes /api/v1/tax_codes/ GST, GST-free, export, etc.
Items /api/v1/items/ Products and services for invoicing
Journal entries /api/v1/journal_entries/ The ledger — double-entry core
Invoices /api/v1/invoices/ Sales invoices (AR)
Bills /api/v1/bills/ Purchase bills (AP)
Payments /api/v1/payments/ Customer payments + bill payments
Credit notes /api/v1/credit_notes/ Sales credit notes
Supplier credit notes /api/v1/supplier_credit_notes/ Purchase-side credit notes
Quotes /api/v1/quotes/ Sales quotes
Purchase orders /api/v1/purchase_orders/ PO lifecycle + convert-to-bill
Expenses /api/v1/expenses/ Cash / card expenditure
Receipts /api/v1/receipts/ Receipts linked to expenses
Transfers /api/v1/transfers/ Between own bank accounts
Intercompany /api/v1/intercompany/ Reciprocal inter-entity postings
Reclassifications /api/v1/reclassifications/ Reclassify posted transactions
Bank accounts /api/v1/bank_accounts/ Bank account registry
Bank statement lines /api/v1/bank_statement_lines/ Imported transactions + matching
Bank feeds /api/v1/bank-feeds/ Automated bank feed connections
Bank rules /api/v1/bank_rules/ Auto-coding rules for bank feed lines
Reconciliation /api/v1/reconciliation/ Match statement lines to journal entries
Fixed assets /api/v1/fixed_assets/ Asset register, depreciation, disposal
Depreciation models /api/v1/depreciation_models/ Depreciation rate / method definitions
Projects /api/v1/projects/ Segments / cost centres
Recurring invoices /api/v1/recurring_invoices/ Scheduled invoice generation
Budgets /api/v1/budgets/ Budget entries + variance reporting
Allocations /api/v1/allocation_rules/ Cost allocations across segments
Cashbook /api/v1/cashbook/ Cash-basis ledger entries
Period close /api/v1/period-close/ Lock / unlock accounting periods
Proration /api/v1/proration/ Period-prorated revenue calculation
Reports /api/v1/reports/ P&L, balance sheet, BAS, aged receivables, etc.
Employees /api/v1/employees/ Employee register
Time entries /api/v1/time-entries/ Time tracking
Leave /api/v1/leave/ Employee leave requests
Pay runs /api/v1/pay-runs/ Payroll pay runs
STP submissions /api/v1/stp-submissions/ Single Touch Payroll
Super funds /api/v1/super-funds/ Superannuation fund registry
Super lodgements /api/v1/super_lodgements/ Super payment lodgements
TPAR /api/v1/tpar/ Taxable payments annual report
Tax returns /api/v1/tax_returns/ Tax return records
Statements /api/v1/statements/ Supplier statements
Statement templates /api/v1/statement-templates/ Statement template management
Attachments /api/v1/attachments/ File attachments on records
Documents /api/v1/documents/ AI-powered document extraction
Imports /api/v1/imports/ CSV / bank statement import
Audit log /api/v1/audit-log/ Immutable audit trail
Search /api/v1/search Full-text across contacts, invoices, journals
Changes /api/v1/changes Audit change log
Snapshot /api/v1/snapshot/ Tenant data snapshot / export
Licence /api/v1/license/ Current licence state + refresh
Lodgement /api/v1/lodgement/ ATO SBR probe (Enterprise)
Health /healthz, /version Liveness, version

Hand-written notes

The hand-written endpoint notes cover the same API but narrated: pagination patterns, idempotency gotchas, why certain endpoints are shaped the way they are, and the soft-delete vs hard-delete distinction. Read those if you're new to the API; use the generated reference once you know what you're looking for.

Are you an LLM reading this?

There are machine-readable indexes at /llms.txt and /llms-full.txt. The raw OpenAPI document is at /api/v1/openapi.json — feed it directly to a code generator rather than scraping this site.

See also the LLM agent integration guide.