Skip to main content

Invoices

The Invoices API provides CRUD access to invoices, line-item management, status, tags, clone, publish and email.
New to the API? Start with Getting started (base URL, response envelope, errors, pagination) and Authentication (API keys).
Identifier note: invoices are addressed by their numeric bill_invoiceid.
Totals are computed server-side. You never send totals. You set the line items (and, for summary mode, the tax rates) and the header discount/adjustment; the API computes the subtotal, discount, tax and final amounts to match the CRM exactly.
Scope: payment recording/gateways (a future Payments resource), recurring, file attachments and bulk actions are out of API scope.

The invoice object


List / search invoices

Query params: status, client_id, project_id, category_id, search, sort (bill_date,bill_due_date,bill_final_amount,bill_created), order, limit, page.

Get an invoice

Returns the invoice with line items + computed totals.

Create an invoice

Creates an empty invoice header. Add line items next via the items action.
Returns the new invoice (201, status Draft).

Update an invoice (header) + recalculate

Sets header fields, including the discount, tax mode and adjustment that drive the totals; the invoice is recalculated.

Set line items + recalculate

Replaces the invoice’s line items and recomputes all totals (matching the CRM UI to the cent). The behaviour follows the invoice’s tax_type:
  • summary — pass invoice-level tax_rate_ids[]; the tax applies to the whole invoice.
  • inline — give each item its own tax_rate_id (and optional per-line discount_type/discount_value).
Returns the invoice with recomputed totals (200).

Delete an invoice


Change status


Set tags

Full-set replace (empty clears).

Clone

Returns the new invoice (201).

Publish

Publishes a draft invoice (moves it out of draft and queues the invoice email to the client). No body. 409 if already published.

Email the client

Queues the invoice email to the client (as the UI does). The invoice must not be a draft (409 otherwise). No body.

Errors

See Getting started. Invoice-specific: