Skip to main content
POST
Create invoices

Authorizations

Authorization
string
header
required

API key from Developers → API Keys, sent as Authorization: Bearer .

Headers

Idempotency-Key
string

Any unique string (≤255 chars). A retry with the same key within 24 hours replays the original response (Idempotent-Replayed: true) instead of creating a second record.

Maximum string length: 255

Body

application/json
patient_id
integer
required

The patient who owes the invoice. Allocations against the invoice must name this patient, even when another patient's payment settles it.

Required range: x >= 1
line_items
object[]
required
practitioner_id
integer | null

The practitioner the invoice is billed under. Optional; new lines default their provider to it.

invoice_date
string<date> | null

The invoice's ledger date, YYYY-MM-DD in the account's timezone. Defaults to today on create; backdate freely for migrated history.

location_id
integer | null

The location the invoice was raised at. Optional: an invoice dated today joins the open shift at this location, so its lines appear on that shift's report; without one the invoice is on no shift report. Fixed once raised.

Required range: x >= 1
note
string | null

Free-text note on the invoice, up to 1000 characters.

Maximum string length: 1000
metadata
object

Integrator-owned key/value metadata (max 50 keys). Values are strings (≤500 chars), numbers or booleans and read back with the type they were written with. On write, a null value removes the key. Filter with metadata[key]=op:value; number operands compare numerically.

Response

The resource

data
object
Example: