Skip to main content
expenses

Create /expenses

Create an expense. Required: name, amount. Optional: category (code_name, defaults to tenant default), date, currency, tax, status, supplier, client, project, object, assignees, note, line items, related invoices/estimates, and custom fields. Returns record with the detail projection.

POST
/expenses
Authorizationstringheaderrequired

API key (Bearer token) created in Setup → API & MCP.

Body

application/json
add_to_project_budget_expensesstring

Add expense to project budget.

additional_infostring

Additional information.

amountstringrequired

Expense amount (excl. VAT when using header tax).

assigneesstring[]

Responsible person staff UUIDs. On update, replaces the full assignee list when sent.

billablestring

Whether the expense is billable.

categorystringrequired

Expense category code_name.

clientstring

Customer client UUID.

currencystring

Currency name (e.g. EUR). Uses tenant default when omitted on create.

custom_fieldsobject[]

Custom field values by slug.

datestring

Expense date (Y-m-d). Defaults to today when omitted.

duedatestring

Due date (Y-m-d).

estimatesstring[]

Related pre-invoice (estimate) UUIDs.

invoicesstring[]

Related invoice UUIDs.

itemsobject[]

Expense line items for create.

namestringrequired

Expense title.

notestring

Expense description / note.

objectstring

Related object UUID.

organizationstring

Organization UUID.

payment_modestring

Payment mode ID from tenant payment modes.

payment_statusinteger

Payment status code (1=unpaid, 2=paid).

projectstring

Related project UUID.

reference_nostring

Reference number.

send_invoice_to_customerstring

Send invoice to customer flag.

statusinteger

Expense status code (1=default, 2=waiting approval, 3=approved, 4=cancelled, 5=incurred, 6=advance paid).

supplierstring

Supplier client UUID.

supplier_account_nostring

Supplier bank account number.

taxstring

Primary VAT rate percent (e.g. 21), or an object with rate or id.

tax2string

Secondary VAT rate percent, or an object with rate or id.

Response

application/json

Success

recordobject

Fields enabled for this documentation instance (projection enabled: feature, option, subdomain, closures) plus account-level form field visibility. Role- and user-level field overrides are not applied here, so an API key whose staff user has such overrides may receive fewer fields. A disabled field is omitted from the response object entirely; a present key with a null value means the record simply has no value.