For the complete documentation index, see llms.txt. This page is also available as Markdown.

πŸ’Έ Expenses

Expense recording and management

List expenses

get
/api/v1.0/organisation/{org_id}/expenses/

List all expenses for an organization

Authorizations
AuthorizationstringRequired
Path parameters
org_idstringRequired
Query parameters
account_idstringOptional

Filter by account unique_id

employee_idstringOptional

Filter by employee unique_id

from_datestringOptional

Filter expenses from this expense_date (YYYY-MM-DD)

searchstringOptional

Search expense_number or title

statusstring Β· enumOptional

Filter by expense status

Possible values:
to_datestringOptional

Filter expenses up to this expense_date (YYYY-MM-DD)

vendor_idstringOptional

Filter by vendor unique_id

Responses
200Success
application/json

Lightweight version for list views.

unique_idstring Β· max: 100 Β· nullableOptional
titlestringRequired
expense_numberstring Β· max: 100Required
statusstring Β· enumOptional
  • draft - Draft
  • submitted - Submitted for Approval
  • approved - Approved
  • paid - Paid
  • rejected - Rejected
  • reimbursed - Reimbursed
Possible values:
status_displaystringRead-onlyRequired
expense_datestring Β· dateRequired
amountstring Β· decimalRequiredPattern: ^-?\d{0,13}(?:\.\d{0,2})?$
tax_amountstring Β· decimalOptionalPattern: ^-?\d{0,13}(?:\.\d{0,2})?$
total_amountstring Β· decimalRead-onlyRequiredPattern: ^-?\d{0,10}(?:\.\d{0,2})?$
date_createdstring Β· date-time Β· nullableRead-onlyRequired
get
/api/v1.0/organisation/{org_id}/expenses/

Create expense

post
/api/v1.0/organisation/{org_id}/expenses/create/

Create a new expense

Authorizations
AuthorizationstringRequired
Path parameters
org_idstringRequired
Body

Comprehensive serializer for Expense model.

unique_idstring Β· max: 100 Β· nullableOptional
titlestring Β· min: 1Required
descriptionstring Β· nullableOptional
notesstring Β· nullableOptional
expense_numberstring Β· min: 1 Β· max: 100Required
account_idstring Β· min: 1Write-onlyRequired
statusstring Β· enumOptional
  • draft - Draft
  • submitted - Submitted for Approval
  • approved - Approved
  • paid - Paid
  • rejected - Rejected
  • reimbursed - Reimbursed
Possible values:
expense_datestring Β· dateRequired
amountstring Β· decimalRequiredPattern: ^-?\d{0,13}(?:\.\d{0,2})?$
tax_amountstring Β· decimalOptionalPattern: ^-?\d{0,13}(?:\.\d{0,2})?$
vendor_idstring Β· min: 1 Β· nullableWrite-onlyOptional
employee_idstring Β· min: 1 Β· nullableWrite-onlyOptional
receiptstring Β· binary Β· nullableOptional

Receipt or supporting document

vat_processedbooleanOptional

Whether VAT has been processed for reconciliation

Responses
post
/api/v1.0/organisation/{org_id}/expenses/create/

Retrieve expense

get
/api/v1.0/organisation/{org_id}/expenses/{expense_id}/

Retrieve a specific expense with full details

Authorizations
AuthorizationstringRequired
Path parameters
expense_idstringRequired
org_idstringRequired
Responses
200Success
application/json

Comprehensive serializer for Expense model.

unique_idstring Β· max: 100 Β· nullableOptional
titlestringRequired
descriptionstring Β· nullableOptional
notesstring Β· nullableOptional
expense_numberstring Β· max: 100Required
statusstring Β· enumOptional
  • draft - Draft
  • submitted - Submitted for Approval
  • approved - Approved
  • paid - Paid
  • rejected - Rejected
  • reimbursed - Reimbursed
Possible values:
status_displaystringRead-onlyRequired
expense_datestring Β· dateRequired
submitted_datestring Β· date-time Β· nullableRead-onlyRequired
approved_datestring Β· date-time Β· nullableRead-onlyRequired
paid_datestring Β· date-time Β· nullableRead-onlyRequired
amountstring Β· decimalRequiredPattern: ^-?\d{0,13}(?:\.\d{0,2})?$
tax_amountstring Β· decimalOptionalPattern: ^-?\d{0,13}(?:\.\d{0,2})?$
total_amountstring Β· decimalRead-onlyRequiredPattern: ^-?\d{0,10}(?:\.\d{0,2})?$
receiptstring Β· uri Β· nullableOptional

Receipt or supporting document

receipt_urlstring Β· nullableRead-onlyRequired
vat_processedbooleanOptional

Whether VAT has been processed for reconciliation

vat_processed_datestring Β· date-time Β· nullableRead-onlyRequired
date_createdstring Β· date-time Β· nullableRead-onlyRequired
last_updatedstring Β· date-time Β· nullableRead-onlyRequired
get
/api/v1.0/organisation/{org_id}/expenses/{expense_id}/

Update expense

put
/api/v1.0/organisation/{org_id}/expenses/{expense_id}/update/

Update an existing expense

Authorizations
AuthorizationstringRequired
Path parameters
expense_idstringRequired
org_idstringRequired
Body

Comprehensive serializer for Expense model.

unique_idstring Β· max: 100 Β· nullableOptional
titlestring Β· min: 1Required
descriptionstring Β· nullableOptional
notesstring Β· nullableOptional
expense_numberstring Β· min: 1 Β· max: 100Required
account_idstring Β· min: 1Write-onlyRequired
statusstring Β· enumOptional
  • draft - Draft
  • submitted - Submitted for Approval
  • approved - Approved
  • paid - Paid
  • rejected - Rejected
  • reimbursed - Reimbursed
Possible values:
expense_datestring Β· dateRequired
amountstring Β· decimalRequiredPattern: ^-?\d{0,13}(?:\.\d{0,2})?$
tax_amountstring Β· decimalOptionalPattern: ^-?\d{0,13}(?:\.\d{0,2})?$
vendor_idstring Β· min: 1 Β· nullableWrite-onlyOptional
employee_idstring Β· min: 1 Β· nullableWrite-onlyOptional
receiptstring Β· binary Β· nullableOptional

Receipt or supporting document

vat_processedbooleanOptional

Whether VAT has been processed for reconciliation

Responses
200Success
application/json

Comprehensive serializer for Expense model.

unique_idstring Β· max: 100 Β· nullableOptional
titlestringRequired
descriptionstring Β· nullableOptional
notesstring Β· nullableOptional
expense_numberstring Β· max: 100Required
statusstring Β· enumOptional
  • draft - Draft
  • submitted - Submitted for Approval
  • approved - Approved
  • paid - Paid
  • rejected - Rejected
  • reimbursed - Reimbursed
Possible values:
status_displaystringRead-onlyRequired
expense_datestring Β· dateRequired
submitted_datestring Β· date-time Β· nullableRead-onlyRequired
approved_datestring Β· date-time Β· nullableRead-onlyRequired
paid_datestring Β· date-time Β· nullableRead-onlyRequired
amountstring Β· decimalRequiredPattern: ^-?\d{0,13}(?:\.\d{0,2})?$
tax_amountstring Β· decimalOptionalPattern: ^-?\d{0,13}(?:\.\d{0,2})?$
total_amountstring Β· decimalRead-onlyRequiredPattern: ^-?\d{0,10}(?:\.\d{0,2})?$
receiptstring Β· uri Β· nullableOptional

Receipt or supporting document

receipt_urlstring Β· nullableRead-onlyRequired
vat_processedbooleanOptional

Whether VAT has been processed for reconciliation

vat_processed_datestring Β· date-time Β· nullableRead-onlyRequired
date_createdstring Β· date-time Β· nullableRead-onlyRequired
last_updatedstring Β· date-time Β· nullableRead-onlyRequired
put
/api/v1.0/organisation/{org_id}/expenses/{expense_id}/update/

Update expense

patch
/api/v1.0/organisation/{org_id}/expenses/{expense_id}/update/

Update an existing expense

Authorizations
AuthorizationstringRequired
Path parameters
expense_idstringRequired
org_idstringRequired
Body

Comprehensive serializer for Expense model.

unique_idstring Β· max: 100 Β· nullableOptional
titlestring Β· min: 1Optional
descriptionstring Β· nullableOptional
notesstring Β· nullableOptional
expense_numberstring Β· min: 1 Β· max: 100Optional
account_idstring Β· min: 1Write-onlyOptional
statusstring Β· enumOptional
  • draft - Draft
  • submitted - Submitted for Approval
  • approved - Approved
  • paid - Paid
  • rejected - Rejected
  • reimbursed - Reimbursed
Possible values:
expense_datestring Β· dateOptional
amountstring Β· decimalOptionalPattern: ^-?\d{0,13}(?:\.\d{0,2})?$
tax_amountstring Β· decimalOptionalPattern: ^-?\d{0,13}(?:\.\d{0,2})?$
vendor_idstring Β· min: 1 Β· nullableWrite-onlyOptional
employee_idstring Β· min: 1 Β· nullableWrite-onlyOptional
receiptstring Β· binary Β· nullableOptional

Receipt or supporting document

vat_processedbooleanOptional

Whether VAT has been processed for reconciliation

Responses
200Success
application/json

Comprehensive serializer for Expense model.

unique_idstring Β· max: 100 Β· nullableOptional
titlestringRequired
descriptionstring Β· nullableOptional
notesstring Β· nullableOptional
expense_numberstring Β· max: 100Required
statusstring Β· enumOptional
  • draft - Draft
  • submitted - Submitted for Approval
  • approved - Approved
  • paid - Paid
  • rejected - Rejected
  • reimbursed - Reimbursed
Possible values:
status_displaystringRead-onlyRequired
expense_datestring Β· dateRequired
submitted_datestring Β· date-time Β· nullableRead-onlyRequired
approved_datestring Β· date-time Β· nullableRead-onlyRequired
paid_datestring Β· date-time Β· nullableRead-onlyRequired
amountstring Β· decimalRequiredPattern: ^-?\d{0,13}(?:\.\d{0,2})?$
tax_amountstring Β· decimalOptionalPattern: ^-?\d{0,13}(?:\.\d{0,2})?$
total_amountstring Β· decimalRead-onlyRequiredPattern: ^-?\d{0,10}(?:\.\d{0,2})?$
receiptstring Β· uri Β· nullableOptional

Receipt or supporting document

receipt_urlstring Β· nullableRead-onlyRequired
vat_processedbooleanOptional

Whether VAT has been processed for reconciliation

vat_processed_datestring Β· date-time Β· nullableRead-onlyRequired
date_createdstring Β· date-time Β· nullableRead-onlyRequired
last_updatedstring Β· date-time Β· nullableRead-onlyRequired
patch
/api/v1.0/organisation/{org_id}/expenses/{expense_id}/update/

Perform expense action

get
/api/v1.0/organisation/{org_id}/expenses/{expense_id}/action/

Perform an action on an expense using query parameter.

**Available Actions:**
- `submit` - Submit a draft expense for approval
- `approve` - Approve a submitted expense
- `reject` - Reject a submitted expense (supports optional `reason` parameter)
- `mark_paid` - Mark an approved expense as paid

**Examples:**
- `/expenses/{id}/action?action=submit`
- `/expenses/{id}/action?action=approve`
- `/expenses/{id}/action?action=reject&reason=Missing+receipts`
- `/expenses/{id}/action?action=mark_paid`
Authorizations
AuthorizationstringRequired
Path parameters
expense_idstringRequired
org_idstringRequired
Query parameters
actionstring Β· enumRequired

The action to perform on the expense

Possible values:
reasonstringOptional

Reason for rejection (only used with action=reject)

Responses
200Success
application/json

Comprehensive serializer for Expense model.

unique_idstring Β· max: 100 Β· nullableOptional
titlestringRequired
descriptionstring Β· nullableOptional
notesstring Β· nullableOptional
expense_numberstring Β· max: 100Required
statusstring Β· enumOptional
  • draft - Draft
  • submitted - Submitted for Approval
  • approved - Approved
  • paid - Paid
  • rejected - Rejected
  • reimbursed - Reimbursed
Possible values:
status_displaystringRead-onlyRequired
expense_datestring Β· dateRequired
submitted_datestring Β· date-time Β· nullableRead-onlyRequired
approved_datestring Β· date-time Β· nullableRead-onlyRequired
paid_datestring Β· date-time Β· nullableRead-onlyRequired
amountstring Β· decimalRequiredPattern: ^-?\d{0,13}(?:\.\d{0,2})?$
tax_amountstring Β· decimalOptionalPattern: ^-?\d{0,13}(?:\.\d{0,2})?$
total_amountstring Β· decimalRead-onlyRequiredPattern: ^-?\d{0,10}(?:\.\d{0,2})?$
receiptstring Β· uri Β· nullableOptional

Receipt or supporting document

receipt_urlstring Β· nullableRead-onlyRequired
vat_processedbooleanOptional

Whether VAT has been processed for reconciliation

vat_processed_datestring Β· date-time Β· nullableRead-onlyRequired
date_createdstring Β· date-time Β· nullableRead-onlyRequired
last_updatedstring Β· date-time Β· nullableRead-onlyRequired
get
/api/v1.0/organisation/{org_id}/expenses/{expense_id}/action/

Last updated