API Reference

Integrate with the Numbors platform using our REST API. Manage contacts, invoices, inventory, CRM, and more.

OpenAPI 3.0 Download YAML

Base URL

All API requests are relative to:

https://app.numbors.com/api

Authentication

Include a JWT token with every request:

Authorization: Bearer <token>

Company Context

Send your company ID as a header:

X-Company-Id: <id>

Response Format

All responses return JSON with:

{ "success": true, "data": [...] }

Authentication

Register, login, and retrieve the current user.

POST /api/auth/register Public Register a new user
Responses
201 Created
400 Validation error
POST /api/auth/login Public Log in and receive a JWT
Responses
201 Created
400 Validation error
POST /api/auth/2fa Complete a 2FA login: pending token + TOTP code (or backup code) -> JWT
Responses
201 Created
400 Validation error
GET /api/auth/me Get current authenticated user
Responses
200 OK

Modules

Query enabled modules and license information.

GET /api/modules/enabled List enabled modules
Responses
200 OK
GET /api/modules/check/{alias} Check if specific module is accessible
Parameters
NameInTypeDescription
alias * path string
Responses
200 OK
404 Not found
GET /api/modules/licenses Get detailed license information
Responses
200 OK

Other

GET /api/keys List active keys for this company
Responses
200 OK
POST /api/keys Generate a new key
Responses
201 Created
400 Validation error
POST /api/keys/{id}/rotate Rotate key (revoke old + generate new with same name)
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
POST /api/keys/{id}/revoke Revoke key
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
GET /api/settings List settings
Responses
200 OK
GET /api/receipts List receipts
Responses
200 OK
POST /api/receipts Create a receipts
Responses
201 Created
400 Validation error
GET /api/receipts/{id} Get a receipts
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 OK
404 Not found
POST /api/receipts/{ref}/status Create a receipts status
Parameters
NameInTypeDescription
ref * path string
Responses
201 Created
400 Validation error
GET /api/reports/dashboard-summary List reports dashboard summary
Responses
200 OK
GET /api/reports/chart/income-expense List reports chart income expense
Responses
200 OK
GET /api/reports/chart/income-by-category List reports chart income by category
Responses
200 OK
GET /api/reports/chart/expense-by-category List reports chart expense by category
Responses
200 OK
GET /api/reports/chart/cash-flow List reports chart cash flow
Responses
200 OK
GET /api/reports/chart/account-balances List reports chart account balances
Responses
200 OK
GET /api/reports/list List reports list
Responses
200 OK
GET /api/reports/list/{reportId} Get a reports list
Parameters
NameInTypeDescription
reportId * path string
Responses
200 OK
404 Not found
GET /api/tax/jurisdiction List tax jurisdiction
Responses
200 OK
POST /api/tax/jurisdiction Create a tax jurisdiction
Responses
201 Created
400 Validation error
GET /api/expenses/claims List expenses claims
Responses
200 OK
POST /api/expenses/claims/{ref}/status Create an expenses claims status
Parameters
NameInTypeDescription
ref * path string
Responses
201 Created
400 Validation error
GET /api/proposals/templates ----- Proposal Templates (reusable proposal skeletons) -----
Responses
200 OK
POST /api/proposals/templates Create a proposals templates
Responses
201 Created
400 Validation error
POST /api/proposals/templates/{ref}/status Create a proposals templates status
Parameters
NameInTypeDescription
ref * path string
Responses
201 Created
400 Validation error
GET /api/proposals/pipelines ----- Proposal Pipelines (CRM pipeline → proposal workflow automation) -----
Responses
200 OK
POST /api/proposals/pipelines Create a proposals pipelines
Responses
201 Created
400 Validation error
GET /api/recurring List recurring
Responses
200 OK
POST /api/recurring Create a recurring
Responses
201 Created
400 Validation error
GET /api/recurring/{id} Get a recurring
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 OK
404 Not found
POST /api/recurring/{id}/pause Pause an active schedule (active → paused) — stops generation.
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
POST /api/recurring/{id}/resume Resume a paused schedule (paused → active) — recompute the next run.
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
GET /api/recurring-transactions List recurring transactions
Responses
200 OK
POST /api/recurring-transactions Create a recurring transactions
Responses
201 Created
400 Validation error
GET /api/debit-notes List debit notes
Responses
200 OK
POST /api/debit-notes Create a debit notes
Responses
201 Created
400 Validation error
GET /api/debit-notes/{id} Get a debit notes
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 OK
404 Not found
POST /api/debit-notes/{id}/send Create a debit notes send
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
GET /api/reports/aged-receivables List reports aged receivables
Responses
200 OK
GET /api/reports/aged-payables List reports aged payables
Responses
200 OK
GET /api/reports/profit-and-loss Profit & Loss (income statement) — income/expense totals + net profit for a year
Responses
200 OK
GET /api/reports/balance-sheet Balance Sheet — assets / liabilities / equity totals (as of a date), balanced flag
Responses
200 OK
GET /api/reports/cash-flow Cash Flow Statement — operating/investing/financing totals + net change (period)
Responses
200 OK
GET /api/reports/tax-summary Tax Summary — tax collected (sales) vs tax paid (purchases) + net liability, by tax type
Responses
200 OK
GET /api/reports/cash-flow-forecast List reports cash flow forecast
Responses
200 OK
GET /api/calendar/events List calendar events
Responses
200 OK
POST /api/calendar/events Create a calendar events
Responses
201 Created
400 Validation error
POST /api/calendar/events/{ref}/status Create a calendar events status
Parameters
NameInTypeDescription
ref * path string
Responses
201 Created
400 Validation error
GET /api/calendar/groups List calendar groups
Responses
200 OK
POST /api/calendar/groups Create a calendar groups
Responses
201 Created
400 Validation error
POST /api/calendar/groups/{ref}/status Create a calendar groups status
Parameters
NameInTypeDescription
ref * path string
Responses
201 Created
400 Validation error
GET /api/direct-debit/mandates List direct debit mandates
Responses
200 OK
POST /api/direct-debit/mandates Create a direct debit mandates
Responses
201 Created
400 Validation error
POST /api/direct-debit/mandates/{id}/activate Activate a mandate: draft/pending_auddis → active (sets activatedAt).
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
POST /api/direct-debit/mandates/{id}/cancel Cancel a mandate: any status → cancelled (sets cancelledAt + reason).
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
GET /api/direct-debit/collections List direct debit collections
Responses
200 OK
POST /api/direct-debit/collections Create a direct debit collections
Responses
201 Created
400 Validation error
POST /api/direct-debit/collections/{id}/status Create a direct debit collections status
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
GET /api/direct-debit/bacs-settings List direct debit bacs settings
Responses
200 OK
POST /api/direct-debit/bacs-settings Create a direct debit bacs settings
Responses
201 Created
400 Validation error
GET /api/cosec/dashboard List cosec dashboard
Responses
200 OK
GET /api/cosec/cap-table List cosec cap table
Responses
200 OK
GET /api/cosec/shareholders List cosec shareholders
Responses
200 OK
POST /api/cosec/shareholders Create a cosec shareholders
Responses
201 Created
400 Validation error
POST /api/cosec/shareholders/{ref}/status Create a cosec shareholders status
Parameters
NameInTypeDescription
ref * path string
Responses
201 Created
400 Validation error
GET /api/cosec/share-classes List cosec share classes
Responses
200 OK
POST /api/cosec/share-classes Create a cosec share classes
Responses
201 Created
400 Validation error
GET /api/cosec/option-pools Share option pools — the "share options" agent surface.
Responses
200 OK
POST /api/cosec/option-pools Create a cosec option pools
Responses
201 Created
400 Validation error
GET /api/integrations/stripe List integrations stripe
Responses
200 OK
GET /api/integrations/migrations List integrations migrations
Responses
200 OK
GET /api/cosec/filings List cosec filings
Responses
200 OK
POST /api/cosec/filings Create a cosec filings
Responses
201 Created
400 Validation error
POST /api/cosec/filings/{id}/status Create a cosec filings status
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
GET /api/cosec/companies-house/profile/{number}? Company profile (default: linked company).
Parameters
NameInTypeDescription
number * path string
Responses
200 OK
404 Not found
GET /api/cosec/companies-house/officers/{number}? Officers (directors / secretaries).
Parameters
NameInTypeDescription
number * path string
Responses
200 OK
404 Not found
GET /api/cosec/companies-house/psc/{number}? Persons with Significant Control.
Parameters
NameInTypeDescription
number * path string
Responses
200 OK
404 Not found
GET /api/cosec/companies-house/filing-history/{number}? Filing history.
Parameters
NameInTypeDescription
number * path string
Responses
200 OK
404 Not found
GET /api/cosec/companies-house/charges/{number}? Charges (mortgages / debentures).
Parameters
NameInTypeDescription
number * path string
Responses
200 OK
404 Not found
GET /api/cosec/companies-house/deadlines/{number}? Upcoming statutory deadlines (confirmation statement + accounts).
Parameters
NameInTypeDescription
number * path string
Responses
200 OK
404 Not found
POST /api/cosec/companies-house/sync Sync — pull the profile from CH and persist onto the Company (number + snapshot).
Responses
201 Created
400 Validation error
GET /api/cosec/companies-house/auth-status Auth status — OAuth config presence + stored-token state (no secrets leaked).
Responses
200 OK
GET /api/cosec/companies-house/authorize-url Authorize URL — build the OAuth consent link for a human to open (browser step).
Responses
200 OK
POST /api/cosec/companies-house/filing-submit/{id} Submit a stored CompanyFiling to Companies House (transaction → change → close).
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
POST /api/cosec/companies-house/validate/roa Create a cosec companies house validate roa
Responses
201 Created
400 Validation error
POST /api/cosec/companies-house/rea/eligibility Create a cosec companies house rea eligibility
Responses
201 Created
400 Validation error
POST /api/cosec/companies-house/validate/rea Create a cosec companies house validate rea
Responses
201 Created
400 Validation error
POST /api/cosec/companies-house/officer Create a cosec companies house officer
Responses
201 Created
400 Validation error
GET /api/vat/returns List vat returns
Responses
200 OK
POST /api/vat/connect Create a vat connect
Responses
201 Created
400 Validation error
POST /api/vat/sync Create a vat sync
Responses
201 Created
400 Validation error
POST /api/vat/submit Create a vat submit
Responses
201 Created
400 Validation error
GET /api/vat/liabilities GET /vat/liabilities?from=&to=
Responses
200 OK
GET /api/vat/payments GET /vat/payments?from=&to=
Responses
200 OK
GET /api/vat/penalties GET /vat/penalties
Responses
200 OK
POST /api/hmrc/itsa/nino POST /hmrc/itsa/nino — set the taxpayer NINO (+ optional mtdItId) for ITSA.
Responses
201 Created
400 Validation error
GET /api/hmrc/itsa/businesses GET /hmrc/itsa/businesses — list the taxpayer's businesses.
Responses
200 OK
GET /api/hmrc/itsa/businesses/{businessId} GET /hmrc/itsa/businesses/:businessId — one business's details.
Parameters
NameInTypeDescription
businessId * path string
Responses
200 OK
404 Not found
GET /api/hmrc/itsa/obligations GET /hmrc/itsa/obligations?from=&to= — income-tax filing obligations.
Responses
200 OK
GET /api/hmrc/itsa/self-employment/{businessId}/periods GET /hmrc/itsa/self-employment/:businessId/periods — SE period summaries.
Parameters
NameInTypeDescription
businessId * path string
Responses
200 OK
404 Not found
GET /api/hmrc/itsa/property/{businessId}/periods/{taxYear} GET /hmrc/itsa/property/:businessId/periods/:taxYear — property period summaries.
Parameters
NameInTypeDescription
businessId * path string
taxYear * path string
Responses
200 OK
404 Not found
GET /api/hmrc/itsa/calculations GET /hmrc/itsa/calculations?taxYear= — list Self Assessment calculations.
Responses
200 OK
GET /api/hmrc/itsa/calculations/{calculationId} GET /hmrc/itsa/calculations/:calculationId — one calculation's full detail.
Parameters
NameInTypeDescription
calculationId * path string
Responses
200 OK
404 Not found
GET /api/hmrc/itsa/account/balance GET /hmrc/itsa/account/balance?from=&to= — SA account balance + transactions.
Responses
200 OK
GET /api/hmrc/itsa/account/charges GET /hmrc/itsa/account/charges?from=&to= — SA charge history.
Responses
200 OK
GET /api/hmrc/itsa/account/payments GET /hmrc/itsa/account/payments?from=&to= — SA payment history.
Responses
200 OK
GET /api/hmrc/itsa/biss/{taxYear}/{typeOfBusiness}/{businessId} GET /hmrc/itsa/biss/:taxYear/:typeOfBusiness/:businessId — income source summary.
Parameters
NameInTypeDescription
taxYear * path string
typeOfBusiness * path string
businessId * path string
Responses
200 OK
404 Not found
GET /api/hmrc/itsa/bsas GET /hmrc/itsa/bsas?taxYear= — list Business Source Adjustable Summaries.
Responses
200 OK
GET /api/hmrc/itsa/bsas/{typeOfBusiness}/{bsasId} GET /hmrc/itsa/bsas/:typeOfBusiness/:bsasId — one BSAS summary.
Parameters
NameInTypeDescription
typeOfBusiness * path string
bsasId * path string
Responses
200 OK
404 Not found
GET /api/hmrc/itsa/losses/brought-forward GET /hmrc/itsa/losses/brought-forward — brought-forward losses.
Responses
200 OK
GET /api/hmrc/itsa/losses/claims GET /hmrc/itsa/losses/claims — loss claims.
Responses
200 OK
GET /api/hmrc/cis/deductions List hmrc cis deductions
Responses
200 OK
POST /api/hmrc/test-user Create a hmrc test user
Responses
201 Created
400 Validation error
GET /api/hmrc/vat-number/{vrn} Get a hmrc vat number
Parameters
NameInTypeDescription
vrn * path string
Responses
200 OK
404 Not found
POST /api/hmrc/connect Create a hmrc connect
Responses
201 Created
400 Validation error
GET /api/hmrc/status GET /hmrc/status — per-regime connection state (dashboard / `numbors hmrc status`).
Responses
200 OK
POST /api/hmrc/fph-validate Create a hmrc fph validate
Responses
201 Created
400 Validation error
POST /api/bug-reports Create a bug reports
Responses
201 Created
400 Validation error
POST /api/push-tokens Register (or refresh) this device's raw push token
Responses
201 Created
400 Validation error
DELETE /api/push-tokens Unregister on sign-out
Responses
200 Deleted
POST /api/push-tokens/test Send a test push to the caller's registered devices (settings "Test" button / QA)
Responses
201 Created
400 Validation error
POST /api/push-tokens/run-overdue-sweep Run the overdue-invoice sweep now, scoped to nothing (global) — QA/manual trigger
Responses
201 Created
400 Validation error

Companies

List companies accessible to the authenticated user.

GET /api/companies List accessible companies
Responses
200 OK

Contacts

Manage customers, suppliers, and other contacts.

GET /api/contacts List contacts
Responses
200 OK
POST /api/contacts Create a contacts
Responses
201 Created
400 Validation error
GET /api/contacts/{id} Get a contacts
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 OK
404 Not found
PUT /api/contacts/{id} Update a contacts
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 Updated
DELETE /api/contacts/{id} Delete a contacts
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 Deleted
POST /api/contacts/{ref}/status Create a contacts status
Parameters
NameInTypeDescription
ref * path string
Responses
201 Created
400 Validation error

Documents

Create and manage invoices, bills, and other financial documents.

GET /api/documents List documents
Responses
200 OK
POST /api/documents Create a documents
Responses
201 Created
400 Validation error
GET /api/documents/{id} Get a documents
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 OK
404 Not found
PUT /api/documents/{id} Update a documents
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 Updated
DELETE /api/documents/{id} Delete a documents
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 Deleted
POST /api/documents/{id}/payment Record a payment against a document (JSON port of invoiceController.addPayment)
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
POST /api/documents/{id}/send Email a document to the customer (JSON port of invoiceController.email)
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
GET /api/documents/{id}/pdf Invoice/document PDF (pdfkit, mirrors orderController.pdfSalesOrder)
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 OK
404 Not found

Accounts

Bank accounts and cash accounts.

GET /api/accounts List accounts
Responses
200 OK
POST /api/accounts Create an accounts
Responses
201 Created
400 Validation error

Transactions

Income and expense transactions.

GET /api/transactions List transactions
Responses
200 OK
POST /api/transactions Create a transactions
Responses
201 Created
400 Validation error
PATCH /api/transactions/{id} Update a transaction (categorisation from the mobile app)
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 Updated

Items

Products and services used on invoices and bills.

GET /api/items List items
Responses
200 OK
POST /api/items Create an items
Responses
201 Created
400 Validation error
POST /api/items/{ref}/status Create an items status
Parameters
NameInTypeDescription
ref * path string
Responses
201 Created
400 Validation error

Categories

Income and expense categories.

GET /api/categories List categories
Responses
200 OK
POST /api/categories Create a categories
Responses
201 Created
400 Validation error
PUT /api/categories/{id} Update a categories
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 Updated

Taxes

Tax rates applied to line items.

GET /api/taxes List taxes
Responses
200 OK
POST /api/taxes Create a taxes
Responses
201 Created
400 Validation error
PUT /api/taxes/{id} Update a taxes
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 Updated
POST /api/taxes/{ref}/status Create a taxes status
Parameters
NameInTypeDescription
ref * path string
Responses
201 Created
400 Validation error

Currencies

Multi-currency support.

GET /api/currencies List currencies
Responses
200 OK
POST /api/currencies Create a currencies
Responses
201 Created
400 Validation error

Estimates

Quotes and estimates sent to customers.

GET /api/estimates List estimates
Responses
200 OK
POST /api/estimates Create an estimates
Responses
201 Created
400 Validation error
GET /api/estimates/{id} Get an estimates
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 OK
404 Not found
PUT /api/estimates/{id} Update an estimates
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 Updated
DELETE /api/estimates/{id} Delete an estimates
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 Deleted
POST /api/estimates/{id}/send Create an estimates send
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
POST /api/estimates/{id}/convert Create an estimates convert
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
POST /api/estimates/{ref}/status Create an estimates status
Parameters
NameInTypeDescription
ref * path string
Responses
201 Created
400 Validation error

Credit Notes

Credit notes issued against invoices.

GET /api/credit-notes List credit notes
Responses
200 OK
POST /api/credit-notes Create a credit notes
Responses
201 Created
400 Validation error
GET /api/credit-notes/{id} Get a credit notes
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 OK
404 Not found
POST /api/credit-notes/{id}/send Create a credit notes send
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
POST /api/credit-notes/{ref}/status Create a credit notes status
Parameters
NameInTypeDescription
ref * path string
Responses
201 Created
400 Validation error

Accounting

Chart of accounts and journal entries.

GET /api/accounting/chart-of-accounts List accounting chart of accounts
Responses
200 OK
POST /api/accounting/chart-of-accounts Create an accounting chart of accounts
Responses
201 Created
400 Validation error
POST /api/accounting/chart-of-accounts/seed Create an accounting chart of accounts seed
Responses
201 Created
400 Validation error
GET /api/accounting/journal List accounting journal
Responses
200 OK
POST /api/accounting/journal Create an accounting journal
Responses
201 Created
400 Validation error
GET /api/accounting/journal/{id} Get an accounting journal
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 OK
404 Not found
POST /api/accounting/journal/{id}/post Post a draft entry → creates Ledger records + updates account balances (→ posted).
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
GET /api/accounting/trial-balance List accounting trial balance
Responses
200 OK
GET /api/accounting/general-ledger List accounting general ledger
Responses
200 OK
GET /api/accounting/fixed-assets List accounting fixed assets
Responses
200 OK
POST /api/accounting/fixed-assets Create an accounting fixed assets
Responses
201 Created
400 Validation error
GET /api/accounting/fixed-assets/{id} Get an accounting fixed assets
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 OK
404 Not found
POST /api/accounting/fixed-assets/{id}/depreciate Create an accounting fixed assets depreciate
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
POST /api/accounting/fixed-assets/{id}/dispose Create an accounting fixed assets dispose
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
POST /api/accounting/fixed-assets/{ref}/status Create an accounting fixed assets status
Parameters
NameInTypeDescription
ref * path string
Responses
201 Created
400 Validation error
GET /api/accounting/budgets List accounting budgets
Responses
200 OK
POST /api/accounting/budgets Create an accounting budgets
Responses
201 Created
400 Validation error
POST /api/accounting/budgets/{ref}/status Create an accounting budgets status
Parameters
NameInTypeDescription
ref * path string
Responses
201 Created
400 Validation error
GET /api/accounting/month-end-close List accounting month end close
Responses
200 OK
POST /api/accounting/month-end-close/run Create an accounting month end close run
Responses
201 Created
400 Validation error

Inventory

Warehouses, stock transfers, and adjustments.

GET /api/inventory/warehouses List inventory warehouses
Responses
200 OK
POST /api/inventory/warehouses Create an inventory warehouses
Responses
201 Created
400 Validation error
POST /api/inventory/warehouses/{ref}/status Create an inventory warehouses status
Parameters
NameInTypeDescription
ref * path string
Responses
201 Created
400 Validation error
GET /api/inventory/transfers List inventory transfers
Responses
200 OK
POST /api/inventory/transfers Create an inventory transfers
Responses
201 Created
400 Validation error
POST /api/inventory/transfers/{id}/ship Create an inventory transfers ship
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
POST /api/inventory/transfers/{id}/receive Create an inventory transfers receive
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
GET /api/inventory/adjustments List inventory adjustments
Responses
200 OK
POST /api/inventory/adjustments Create an inventory adjustments
Responses
201 Created
400 Validation error
GET /api/inventory/item-groups List inventory item groups
Responses
200 OK
POST /api/inventory/item-groups Create an inventory item groups
Responses
201 Created
400 Validation error
POST /api/inventory/item-groups/{ref}/status Create an inventory item groups status
Parameters
NameInTypeDescription
ref * path string
Responses
201 Created
400 Validation error

Projects

Project management and time tracking.

GET /api/projects List projects
Responses
200 OK
POST /api/projects Create a projects
Responses
201 Created
400 Validation error
GET /api/projects/time List projects time
Responses
200 OK
POST /api/projects/time Create a projects time
Responses
201 Created
400 Validation error
POST /api/projects/time/{ref}/status Create a projects time status
Parameters
NameInTypeDescription
ref * path string
Responses
201 Created
400 Validation error
GET /api/projects/tasks List projects tasks
Responses
200 OK
POST /api/projects/tasks Create a projects tasks
Responses
201 Created
400 Validation error
POST /api/projects/tasks/{id}/status Create a projects tasks status
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
GET /api/projects/expenses List projects expenses
Responses
200 OK
POST /api/projects/expenses Create a projects expenses
Responses
201 Created
400 Validation error
POST /api/projects/expenses/{ref}/status Create a projects expenses status
Parameters
NameInTypeDescription
ref * path string
Responses
201 Created
400 Validation error
GET /api/projects/{id} Get a projects
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 OK
404 Not found
PUT /api/projects/{id} Update a projects
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 Updated
POST /api/projects/{id}/status Create a projects status
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
POST /api/projects/{id}/tasks Create a projects tasks
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error

Payroll

Departments, employees, and pay runs.

GET /api/payroll/departments List payroll departments
Responses
200 OK
POST /api/payroll/departments Create a payroll departments
Responses
201 Created
400 Validation error
GET /api/payroll/employees List payroll employees
Responses
200 OK
POST /api/payroll/employees Create a payroll employees
Responses
201 Created
400 Validation error
POST /api/payroll/employees/{id}/status Create a payroll employees status
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
GET /api/payroll/pay-runs List payroll pay runs
Responses
200 OK
POST /api/payroll/pay-runs Create a payroll pay runs
Responses
201 Created
400 Validation error
GET /api/payroll/dashboard List payroll dashboard
Responses
200 OK
GET /api/payroll/payslips List payroll payslips
Responses
200 OK
POST /api/payroll/payslips/{id}/status Create a payroll payslips status
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
GET /api/payroll/calendars List payroll calendars
Responses
200 OK
POST /api/payroll/calendars Create a payroll calendars
Responses
201 Created
400 Validation error
POST /api/payroll/calendars/{ref}/status Create a payroll calendars status
Parameters
NameInTypeDescription
ref * path string
Responses
201 Created
400 Validation error

Point of Sale

POS terminals, sessions, orders, and loyalty programmes.

GET /api/pos/terminals List pos terminals
Responses
200 OK
POST /api/pos/terminals Create a pos terminals
Responses
201 Created
400 Validation error
POST /api/pos/terminals/{ref}/status Create a pos terminals status
Parameters
NameInTypeDescription
ref * path string
Responses
201 Created
400 Validation error
GET /api/pos/sessions List pos sessions
Responses
200 OK
POST /api/pos/sessions/open Open a new POS session
Responses
201 Created
400 Validation error
POST /api/pos/sessions/{id}/close Create a pos sessions close
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
GET /api/pos/orders List pos orders
Responses
200 OK
POST /api/pos/orders Create a pos orders
Responses
201 Created
400 Validation error
POST /api/pos/orders/{id}/status Create a pos orders status
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
GET /api/pos/loyalty List pos loyalty
Responses
200 OK
POST /api/pos/loyalty/programs Create a pos loyalty programs
Responses
201 Created
400 Validation error
GET /api/pos/reports List pos reports
Responses
200 OK

CRM

Pipelines, leads, deals, activities, and campaigns.

GET /api/crm/leads List crm leads
Responses
200 OK
POST /api/crm/leads Create a crm leads
Responses
201 Created
400 Validation error
GET /api/crm/leads/{id} Get a crm leads
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 OK
404 Not found
PUT /api/crm/leads/{id} Update a crm leads
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 Updated
DELETE /api/crm/leads/{id} Delete a crm leads
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 Deleted
POST /api/crm/leads/{ref}/status Create a crm leads status
Parameters
NameInTypeDescription
ref * path string
Responses
201 Created
400 Validation error
GET /api/crm/contacts ── CRM Contacts (CrmContact wraps a core Contact with pipeline stage/source) ──
Responses
200 OK
POST /api/crm/contacts Create a crm contacts
Responses
201 Created
400 Validation error
POST /api/crm/contacts/{ref}/stage Create a crm contacts stage
Parameters
NameInTypeDescription
ref * path string
Responses
201 Created
400 Validation error
GET /api/crm/companies List crm companies
Responses
200 OK
POST /api/crm/companies Create a crm companies
Responses
201 Created
400 Validation error
POST /api/crm/companies/{ref}/stage Create a crm companies stage
Parameters
NameInTypeDescription
ref * path string
Responses
201 Created
400 Validation error
GET /api/crm/pipelines List crm pipelines
Responses
200 OK
POST /api/crm/pipelines Create a crm pipelines
Responses
201 Created
400 Validation error
GET /api/crm/deals List crm deals
Responses
200 OK
POST /api/crm/deals Create a crm deals
Responses
201 Created
400 Validation error
PUT /api/crm/deals/{id} Update a crm deals
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 Updated
POST /api/crm/deals/{id}/advance Create a crm deals advance
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
POST /api/crm/deals/{id}/win Create a crm deals win
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
POST /api/crm/deals/{id}/lose Create a crm deals lose
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
GET /api/crm/activities List crm activities
Responses
200 OK
POST /api/crm/activities Create a crm activities
Responses
201 Created
400 Validation error
PUT /api/crm/activities/{id} Update a crm activities
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 Updated
POST /api/crm/activities/{id}/status Create a crm activities status
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
GET /api/crm/campaigns List crm campaigns
Responses
200 OK
POST /api/crm/campaigns Create a crm campaigns
Responses
201 Created
400 Validation error
GET /api/crm/campaigns/targeting List crm campaigns targeting
Responses
200 OK
GET /api/crm/campaigns/{id} Get a crm campaigns
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 OK
404 Not found
PUT /api/crm/campaigns/{id} Update a crm campaigns
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 Updated
POST /api/crm/campaigns/{id}/status Create a crm campaigns status
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
POST /api/crm/campaigns/{id}/members Add members: body { contactIds: [] } and/or { leadIds: [] }. Dedupes existing.
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
PUT /api/crm/campaigns/{id}/members/{memberId} Update a crm campaigns members
Parameters
NameInTypeDescription
memberId * path string
id * path string MongoDB ObjectId
Responses
200 Updated
DELETE /api/crm/campaigns/{id}/members/{memberId} Delete a crm campaigns members
Parameters
NameInTypeDescription
memberId * path string
id * path string MongoDB ObjectId
Responses
200 Deleted
POST /api/crm/ai/research Create a crm ai research
Responses
201 Created
400 Validation error
POST /api/crm/ai/draft-outreach Create a crm ai draft outreach
Responses
201 Created
400 Validation error
POST /api/crm/campaigns/{id}/members/{memberId}/send-email Create a crm campaigns members send email
Parameters
NameInTypeDescription
memberId * path string
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error

Contracts & Proposals

Manage contracts and send proposals.

GET /api/contracts List contracts
Responses
200 OK
POST /api/contracts Create a contracts
Responses
201 Created
400 Validation error
POST /api/contracts/{ref}/status Create a contracts status
Parameters
NameInTypeDescription
ref * path string
Responses
201 Created
400 Validation error
GET /api/contracts/proposals List contracts proposals
Responses
200 OK
POST /api/contracts/proposals Create a contracts proposals
Responses
201 Created
400 Validation error
POST /api/contracts/proposals/{id}/send Create a contracts proposals send
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
POST /api/contracts/proposals/{id}/accept Create a contracts proposals accept
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
GET /api/contracts/templates ----- Contract Templates (reusable skeletons) -----
Responses
200 OK
POST /api/contracts/templates Create a contracts templates
Responses
201 Created
400 Validation error
POST /api/contracts/templates/{ref}/status Create a contracts templates status
Parameters
NameInTypeDescription
ref * path string
Responses
201 Created
400 Validation error
GET /api/contracts/lifecycles ----- Contract Lifecycles (renewal terms, one per contract) -----
Responses
200 OK
POST /api/contracts/lifecycles Create a contracts lifecycles
Responses
201 Created
400 Validation error
POST /api/contracts/{id}/sign Create a contracts sign
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
POST /api/contracts/{id}/terminate Terminate a contract: → terminated (stamps endDate if unset).
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error

Helpdesk

Ticket categories, tickets, SLAs, and knowledge-base articles.

GET /api/helpdesk/categories List helpdesk categories
Responses
200 OK
POST /api/helpdesk/categories Create a helpdesk categories
Responses
201 Created
400 Validation error
GET /api/helpdesk/tickets List helpdesk tickets
Responses
200 OK
POST /api/helpdesk/tickets Create a helpdesk tickets
Responses
201 Created
400 Validation error
GET /api/helpdesk/statuses List helpdesk statuses
Responses
200 OK
PATCH /api/helpdesk/tickets/{id} Update a ticket (status change / assignment from the mobile app)
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 Updated
POST /api/helpdesk/tickets/{id}/resolve Create a helpdesk tickets resolve
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
POST /api/helpdesk/tickets/{id}/close Create a helpdesk tickets close
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
POST /api/helpdesk/tickets/{id}/reopen Create a helpdesk tickets reopen
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
GET /api/helpdesk/tickets/{id}/replies Get a helpdesk tickets replies
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 OK
404 Not found
POST /api/helpdesk/tickets/{id}/replies Create a helpdesk tickets replies
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
GET /api/helpdesk/slas List helpdesk slas
Responses
200 OK
POST /api/helpdesk/slas Create a helpdesk slas
Responses
201 Created
400 Validation error
POST /api/helpdesk/slas/{ref}/status Create a helpdesk slas status
Parameters
NameInTypeDescription
ref * path string
Responses
201 Created
400 Validation error
GET /api/helpdesk/articles List helpdesk articles
Responses
200 OK
POST /api/helpdesk/articles Create a helpdesk articles
Responses
201 Created
400 Validation error
POST /api/helpdesk/articles/{ref}/status Create a helpdesk articles status
Parameters
NameInTypeDescription
ref * path string
Responses
201 Created
400 Validation error

Orders

Sales orders and purchase orders.

GET /api/sales/orders List sales orders
Responses
200 OK
POST /api/sales/orders Create a sales orders
Responses
201 Created
400 Validation error
GET /api/sales/orders/{id} Get a sales orders
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 OK
404 Not found
POST /api/sales/orders/{id}/convert Create a sales orders convert
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
POST /api/sales/orders/{id}/status Create a sales orders status
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
GET /api/purchases/orders List purchases orders
Responses
200 OK
POST /api/purchases/orders Create a purchases orders
Responses
201 Created
400 Validation error
GET /api/purchases/orders/{id} Get a purchases orders
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 OK
404 Not found
POST /api/purchases/orders/{id}/convert Create a purchases orders convert
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error
POST /api/purchases/orders/{id}/status Create a purchases orders status
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
201 Created
400 Validation error

Banking

Open-banking feeds, connections, and auto-categorisation rules.

GET /api/banking/feeds List banking feeds
Responses
200 OK
GET /api/banking/feeds/connections List banking feeds connections
Responses
200 OK
POST /api/banking/feeds/connections Create a banking feeds connections
Responses
201 Created
400 Validation error
GET /api/banking/feeds/rules List banking feeds rules
Responses
200 OK
POST /api/banking/feeds/rules Create a banking feeds rules
Responses
201 Created
400 Validation error
POST /api/banking/feeds/rules/{ref}/status Create a banking feeds rules status
Parameters
NameInTypeDescription
ref * path string
Responses
201 Created
400 Validation error
GET /api/banking/auto-categorize List banking auto categorize
Responses
200 OK
POST /api/banking/auto-categorize Create a banking auto categorize
Responses
201 Created
400 Validation error

Transfers

Inter-account transfers.

GET /api/transfers List transfers
Responses
200 OK
POST /api/transfers Create a transfers
Responses
201 Created
400 Validation error

Support Chat

Public AI-powered support chat. No authentication required for chat and history.

POST /api/support/chat Public Send message and get AI response
Responses
201 Created
400 Validation error
GET /api/support/history/{sessionId} Public ─── GET /api/support/history/:sessionId — PUBLIC ───────────────────────────
Parameters
NameInTypeDescription
sessionId * path string
Responses
200 OK
404 Not found
POST /api/support/escalate Escalate to helpdesk ticket (auth required)
Responses
201 Created
400 Validation error

Tai Dev Lifecycle

Internal dev lifecycle management: bugs, roadmap, features, and AI experts.

POST /api/tai/message Ask Tai a question
Responses
201 Created
400 Validation error
GET /api/tai/status Get system state summary
Responses
200 OK
GET /api/tai/bugs List tracked bugs
Responses
200 OK
POST /api/tai/bug Report a bug
Responses
201 Created
400 Validation error
GET /api/tai/roadmap Get current roadmap
Responses
200 OK
POST /api/tai/e2e-fix Auto-create bug from E2E failure
Responses
201 Created
400 Validation error
GET /api/tai/log Get recent session log
Responses
200 OK
GET /api/tai/experts List registered experts
Responses
200 OK

Tai Features

Feature tracking via Buggazi integration.

POST /api/tai/feature Add a feature
Responses
201 Created
400 Validation error
GET /api/tai/features List features
Responses
200 OK
GET /api/tai/features/board Get feature board
Responses
200 OK
GET /api/tai/features/stats Get feature stats
Responses
200 OK
PATCH /api/tai/feature/{featureId} Update a tai feature
Parameters
NameInTypeDescription
featureId * path string
Responses
200 Updated
POST /api/tai/feature/{featureId}/link-bug Create a tai feature link bug
Parameters
NameInTypeDescription
featureId * path string
Responses
201 Created
400 Validation error

Tai Sprints

Sprint management via Buggazi integration.

GET /api/tai/sprint/active Get active sprint
Responses
200 OK
POST /api/tai/sprint Create a sprint
Responses
201 Created
400 Validation error
PATCH /api/tai/sprint/{sprintId} Update a tai sprint
Parameters
NameInTypeDescription
sprintId * path string
Responses
200 Updated

Tai Bugfixer

Automated bug-fixing conductor and stats.

POST /api/tai/bugfix/{domain} Create a tai bugfix
Parameters
NameInTypeDescription
domain * path string
Responses
201 Created
400 Validation error
GET /api/tai/bugfix/stats Get bug-fix stats
Responses
200 OK

Tai Seed Conductor

Seed data profile management and recommendation.

GET /api/tai/seed/profiles List seed profiles
Responses
200 OK
GET /api/tai/seed/profile/{id} ─── GET /api/tai/seed/profile/:id ──────────────────────────────────────────
Parameters
NameInTypeDescription
id * path string MongoDB ObjectId
Responses
200 OK
404 Not found
POST /api/tai/seed/recommend Recommend a seed profile
Responses
201 Created
400 Validation error
GET /api/tai/seed/state Get seed state
Responses
200 OK
GET /api/tai/seed/graph Get seeder dependency graph
Responses
200 OK

AI Insights

AI-powered financial report analysis and insights.

GET /api/ai-insights/status Public Check AI availability
Responses
200 OK
GET /api/ai-insights/workflows Public List available conductor workflows
Responses
200 OK
POST /api/ai-insights/analyse Generate AI insights for a report
Responses
201 Created
400 Validation error
POST /api/ai-insights/analyse-stream Stream AI analysis via SSE
Responses
201 Created
400 Validation error
GET /api/ai-insights/audit Get AI insight audit trail
Responses
200 OK
POST /api/ai-insights/memory-hook Public AgenticMemory webhook for real-time notifications
Responses
201 Created
400 Validation error
POST /api/ai-insights/shared Write shared world memory fact
Responses
201 Created
400 Validation error
GET /api/ai-insights/shared Read shared world memory facts
Responses
200 OK

Compliance

Compliance posture snapshots and OCSF audit export.

GET /api/compliance/snapshot Get full compliance posture snapshot
Responses
200 OK
GET /api/compliance/export Export OCSF audit data
Responses
200 OK