💸 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
chevron-right
200Success
application/json
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
chevron-right
200Success
application/json
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
chevron-right
200Success
application/json
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
chevron-right
200Success
application/json
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
chevron-right
200Success
application/json
get
/api/v1.0/organisation/{org_id}/expenses/{expense_id}/action/

Last updated