Invoice Endpoints
Invoices & Billing
InvoiceHeader
GET /Invoice — List InvoiceHeader
Returns multiple InvoiceHeader records. Requires authentication.
Query Parameters
| Name | Type | Description |
|---|---|---|
advanced_search | string | Advanced search string |
asset_id | integer | Filter by specified asset |
awaiting_approval | boolean | Filter invoices awaiting approval |
billing_date | string | Filter on billing date |
billingcategory_ids | string | Filter by billing categories (comma-separated) |
start_date | string | Filter invoices with date greater than specified date (see datesearch) |
end_date | string | Filter invoices with date less than specified date (see datesearch) |
datesearch | string | Date field for start_date/end_date. Values: invoice_date, last_modified, duedate, schedulestartdate, scheduleenddate |
client_id | integer | Filter by specified client |
client_ids | string | Filter by multiple clients (comma-separated) |
contract_id | integer | Filter by specified contract |
count | integer | Number of invoices to return |
idonly | boolean | Include only Invoice ID in response |
includecredits | boolean | Include credit-type invoices in response |
includeinvoices | boolean | Include invoice-type invoices in response |
includelines | boolean | Include invoice lines in response |
includepoinvoices | boolean | Include PO invoices |
invoicedateend | boolean | Include invoicedateend field in response |
invoicedatestart | boolean | Include invoicedatestart field in response |
my_approvals | boolean | Filter to invoices requiring current user's approval |
notpostedonly | boolean | Filter to invoices not yet posted |
order / order2–order5 | string | Field name(s) to sort by |
orderdesc / orderdesc2–orderdesc5 | boolean | Whether to sort descending for each order field |
page_no | integer | Page number (pagination) |
page_size | integer | Page size (pagination) |
pageinate | boolean | Enable pagination |
paymentstatuses | array[integer] | Filter by payment status codes (comma-separated) |
postedonly | boolean | Filter to posted invoices only |
purchaseorder_id | integer | Filter by purchase order |
quote_status | string | Filter by quote status codes (comma-separated) |
ready_for_invoicing | boolean | Filter to invoices ready for invoicing |
recurringinvoice_id | integer | Filter by recurring invoice ID |
reviewrequired | boolean | Filter to invoices requiring review |
rinvoice_type | string | Filter by invoice type: contracts, invoices, both |
salesorder_id | integer | Filter by sales order ID |
search | string | Text search string |
sent_status | integer | Filter by sent status |
site_id | integer | Filter by site |
stripeautopaymentrequired | boolean | Filter to invoices requiring Stripe auto-payment |
ticket_id | integer | Filter by ticket |
toplevel_id | integer | Filter by top-level entity |
user_id | integer | Filter by user |
third_party_id | string | Find invoice by third-party invoice number |
xero_id | string | Find invoice by Xero Online ID |
quickbooks_id | integer | Find invoice by QuickBooks Online ID |
include_linked_item_details | boolean | Include linked item details on invoice lines |
Response 200 OK — InvoiceHeader_View
POST /Invoice — Create InvoiceHeader
Creates one or more invoice records.
Request Body — Array of InvoiceHeader
Response 201 Created — InvoiceHeader
GET /Invoice/{id} — Get InvoiceHeader
Returns a single InvoiceHeader by ID. Requires authentication.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | Invoice ID |
Query Parameters
| Name | Type | Description |
|---|---|---|
includedetails | boolean | Include extra related objects in response |
Response 200 OK — InvoiceHeader
DELETE /Invoice/{id} — Delete InvoiceHeader
Deletes a specific InvoiceHeader. Requires authentication.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | Invoice ID |
Query Parameters
| Name | Type | Description |
|---|---|---|
bypass_accounts_sync | boolean | Skip syncing the deletion to accounting integrations |
Response 200 OK
POST /Invoice/updatelines — Update Invoice Lines
Updates one or more invoice detail lines.
Request Body — Array of InvoiceDetail
Response 200 OK
GET /Invoice/lines — List Invoice Lines
Returns invoice line items.
Response 200 OK — InvoiceHeader_View
POST /Invoice/{id}/void — Void Invoice
Voids a specific invoice.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | Invoice ID |
Response 200 OK
POST /Invoice/View — Record Invoice Viewers
Records that specified agents have viewed an invoice.
Request Body — Array of Viewers
Response 200 OK
POST /Invoice/PDF/{id} — Generate Invoice PDF
Generates a PDF for the specified invoice.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | Invoice ID |
Response 200 OK
InvoiceChange
GET /InvoiceChange — List InvoiceChange
Returns invoice change audit records. Requires authentication.
Query Parameters
| Name | Type | Description |
|---|---|---|
count | integer | Number of records to return |
idonly | boolean | Return only IDs |
invoice_id | integer | Filter by invoice ID |
line_id | integer | Filter by invoice line ID |
order / order2–order5 | string | Sort field(s) |
orderdesc / orderdesc2–orderdesc5 | boolean | Descending sort flags |
page_no | integer | Page number |
page_size | integer | Page size |
pageinate | boolean | Enable pagination |
search | string | Search string |
type_id | integer | Filter by change type |
Response 200 OK
POST /InvoiceChange — Create InvoiceChange
Creates invoice change records.
Request Body — Array of InvoiceChange
Response 200 OK
InvoiceDetailProRata
GET /InvoiceDetailProRata — List Pro Rata Details
Returns pro rata invoice detail records.
Response 200 OK
InvoicePayment
GET /InvoicePayment — List InvoicePayment
Returns multiple InvoicePayment records. Requires authentication.
Query Parameters
| Name | Type | Description |
|---|---|---|
client_id | integer | Filter by client |
count | integer | Number of records to return |
intent_id | string | Filter by payment intent ID (e.g. Stripe intent) |
invoice_id | integer | Filter by invoice |
order / order2–order5 | string | Sort field(s) |
orderdesc / orderdesc2–orderdesc5 | boolean | Descending sort flags |
page_no | integer | Page number |
page_size | integer | Page size |
pageinate | boolean | Enable pagination |
search | string | Search string |
Response 200 OK
POST /InvoicePayment — Create InvoicePayment
Records one or more invoice payments.
Request Body — Array of InvoicePayment_List
Response 200 OK
GET /InvoicePayment/{id} — Get InvoicePayment
Returns a single InvoicePayment by ID. Requires authentication.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | Payment ID |
Query Parameters
| Name | Type | Description |
|---|---|---|
includedetails | boolean | Include extra details in response |
Response 200 OK
DELETE /InvoicePayment/{id} — Delete InvoicePayment
Deletes a specific InvoicePayment.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | Payment ID |
Response 200 OK
RecurringInvoiceHeader
GET /RecurringInvoice — List Recurring Invoices
Returns recurring InvoiceHeader records. Accepts the same query parameters as GET /Invoice.
Key Query Parameters
| Name | Type | Description |
|---|---|---|
client_id | integer | Filter by client |
contract_id | integer | Filter by contract |
start_date / end_date | string | Date range filter (controlled by datesearch) |
datesearch | string | Date field: invoice_date, last_modified, duedate, schedulestartdate, scheduleenddate |
paymentstatuses | array[integer] | Filter by payment status |
search | string | Text search |
pageinate / page_no / page_size | boolean/integer | Pagination controls |
include_linked_item_details | boolean | Include linked item details on lines |
Response 200 OK — InvoiceHeader_View
POST /RecurringInvoice — Create Recurring Invoice
Creates a recurring invoice template.
Request Body — Array of InvoiceHeader
Response 201 Created — InvoiceHeader
GET /RecurringInvoice/{id} — Get Recurring Invoice
Returns a single recurring InvoiceHeader. Requires authentication.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | Recurring invoice ID |
Query Parameters
| Name | Type | Description |
|---|---|---|
includedetails | boolean | Include extra objects in response |
Response 200 OK — InvoiceHeader
DELETE /RecurringInvoice/{id} — Delete Recurring Invoice
Deletes a recurring InvoiceHeader. Requires authentication.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | Recurring invoice ID |
Query Parameters
| Name | Type | Description |
|---|---|---|
bypass_accounts_sync | boolean | Skip accounting integration sync |
Response 200 OK
POST /RecurringInvoice/updatelines — Update Recurring Invoice Lines
Updates lines on a recurring invoice.
Request Body — Array of InvoiceDetail
Response 200 OK
POST /RecurringInvoice/process — Process Recurring Invoices
Triggers processing of specified recurring invoices.
Request Body — Array of integers (recurring invoice IDs)
Response 200 OK
POST /RecurringInvoice/Lines — Add Recurring Invoice Lines
Adds lines to a recurring invoice.
Request Body — Array of InvoiceDetail
Response 200 OK
Tax
GET /Tax — List Tax Rates
Returns all tax rate records. Requires authentication.
Query Parameters
| Name | Type | Description |
|---|---|---|
kashflowtenantid | integer | Filter by KashFlow tenant |
qbocompanyid | string | Filter by QuickBooks Online company ID |
related_to | integer | Filter by related entity ID |
xerotenantid | string | Filter by Xero tenant ID |
Response 200 OK
POST /Tax — Create Tax Rate
Creates one or more tax rate records.
Request Body — Array of Tax
Response 200 OK
GET /Tax/{id} — Get Tax Rate
Returns a single tax rate by ID. Requires authentication.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | Tax rate ID |
Query Parameters
| Name | Type | Description |
|---|---|---|
includedetails | boolean | Include extra details |
includeqbotaxrates | boolean | Include QuickBooks Online tax rates |
Response 200 OK
DELETE /Tax/{id} — Delete Tax Rate
Deletes a specific tax rate.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | Tax rate ID |
Response 200 OK
TaxRule
GET /TaxRule — List Tax Rules
Returns all tax rule records.
Response 200 OK
POST /TaxRule — Create Tax Rule
Creates one or more tax rule records.
Request Body — Array of TaxRule
Response 200 OK
GET /TaxRule/{id} — Get Tax Rule
Returns a single tax rule by ID.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | Tax rule ID |
Response 200 OK
DELETE /TaxRule/{id} — Delete Tax Rule
Deletes a specific tax rule.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | Tax rule ID |
Response 200 OK
Currency
GET /Currency — List Currencies
Returns all currency records.
Response 200 OK
POST /Currency — Create Currency
Creates one or more currency records.
Request Body — Array of Currency
Response 200 OK
GET /Currency/{id} — Get Currency
Returns a single currency by ID. Requires authentication.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | Currency ID |
Query Parameters
| Name | Type | Description |
|---|---|---|
includedetails | boolean | Include extra details |
Response 200 OK
DELETE /Currency/{id} — Delete Currency
Deletes a specific currency.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | Currency ID |
Response 200 OK
ChargeRate
GET /ChargeRate — List Charge Rates
Returns charge rate records. Requires authentication.
Query Parameters
| Name | Type | Description |
|---|---|---|
chargerate_id | integer | Filter by specific charge rate ID |
client_id | integer | Filter by client |
contract_id | integer | Filter by contract |
currentonly | boolean | Return only current/active charge rates |
globalonly | boolean | Return only global (non-client-specific) rates |
Response 200 OK
GET /ChargeRate/{id} — Get Charge Rate
Returns a single charge rate by ID. Requires authentication.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | Charge rate ID |
Query Parameters
| Name | Type | Description |
|---|---|---|
includedetails | boolean | Include extra details |
Response 200 OK
Costcentres
GET /CostCentres — List Cost Centres
Returns all cost centre records.
Response 200 OK
POST /CostCentres — Create Cost Centre
Creates one or more cost centre records.
Request Body — Array of Costcentres
Response 200 OK
GET /CostCentres/{id} — Get Cost Centre
Returns a single cost centre by ID. Requires authentication.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | Cost centre ID |
Query Parameters
| Name | Type | Description |
|---|---|---|
includedetails | boolean | Include extra details |
Response 200 OK
DELETE /CostCentres/{id} — Delete Cost Centre
Deletes a specific cost centre.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | Cost centre ID |
Response 200 OK
Expense
GET /Expense — List Expenses
Returns expense records.
Response 200 OK
POST /Expense — Create Expense
Creates one or more expense records.
Request Body — Array of Expense
Response 200 OK
BudgetType
GET /BudgetType — List Budget Types
Returns budget type records. Requires authentication.
Query Parameters
| Name | Type | Description |
|---|---|---|
ticket_id | integer | Filter by ticket |
Response 200 OK
POST /BudgetType — Create Budget Type
Creates one or more budget type records.
Request Body — Array of BudgetType
Response 200 OK
GET /BudgetType/{id} — Get Budget Type
Returns a single budget type by ID. Requires authentication.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | Budget type ID |
Query Parameters
| Name | Type | Description |
|---|---|---|
includedetails | boolean | Include extra details |
Response 200 OK
DELETE /BudgetType/{id} — Delete Budget Type
Deletes a specific budget type.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | Budget type ID |
Response 200 OK