Invoices
Create, send, and manage invoices. Invoices post to the double-entry ledger when sent — debiting Accounts Receivable and crediting revenue accounts.
The Invoice Object
| Field | Type | Description |
|---|---|---|
| id | string | Unique invoice UUID |
| invoice_number | string | Human-readable invoice number (e.g., INV-0001) |
| status | string | draft, sent, paid, partially_paid, overdue, or void |
| issue_date | string | ISO 8601 date |
| due_date | string | ISO 8601 date |
| currency | string | ISO currency code (e.g., USD) |
| subtotal_cents | integer | Subtotal before tax, in cents |
| tax_amount_cents | integer | Total tax in cents |
| total_cents | integer | Total including tax, in cents |
| amount_due_cents | integer | Remaining balance in cents |
| terms | string | Payment terms |
| memo | string | Internal memo |
| note_to_customer | string | Note visible to customer |
| customer | object | Customer with id, display_name, email |
| line_items | array | Line items with id, description, quantity, rate_cents, amount_cents |
| sent_at | string | ISO 8601 timestamp when sent |
| created_at | string | ISO 8601 timestamp |
| updated_at | string | ISO 8601 timestamp |
Endpoints
GET
/api/v1/invoicesList invoices
Returns a paginated list of invoices for the current organization.
Path & Query Parameters
| Parameter | Type | Description |
|---|---|---|
| status | string | Filter by status (draft, sent, paid, overdue, void) |
| customer_id | string | Filter by customer UUID |
| search | string | Search by invoice number or memo |
| limit | integer | Number of results (1-50, default 25) |
GET
/api/v1/invoices/:idRetrieve an invoice
Returns a single invoice with its payment history.
Path & Query Parameters
| Parameter | Type | Description |
|---|---|---|
| idrequired | string | Invoice UUID |
POST
/api/v1/invoicesCreate an invoice
Creates a new invoice with line items.
Body Parameters
| Parameter | Type | Description |
|---|---|---|
| customer_idrequired | string | Customer UUID |
| invoice_number | string | Custom invoice number |
| issue_date | string | Issue date (YYYY-MM-DD) |
| due_date | string | Due date (YYYY-MM-DD) |
| terms | string | Payment terms |
| note_to_customer | string | Note visible to customer |
| memo | string | Internal memo |
| line_items_attributesrequired | array | Array of line items |
| product_id | string | Product UUID |
| account_id | string | Chart account UUID |
| description | string | Line description |
| quantity | number | Quantity |
| rate_cents | integer | Unit price in cents (e.g., 10000 = $100.00) |
| amount_cents | integer | Line total in cents (overrides qty * rate) |
| taxable | boolean | Whether tax applies |
PATCH
/api/v1/invoices/:idUpdate an invoice
Updates an invoice. Recalculates totals and reposts to the ledger automatically.
Path & Query Parameters
| Parameter | Type | Description |
|---|---|---|
| idrequired | string | Invoice UUID |
Body Parameters
| Parameter | Type | Description |
|---|---|---|
| customer_id | string | Customer UUID |
| issue_date | string | Issue date (YYYY-MM-DD) |
| due_date | string | Due date (YYYY-MM-DD) |
| terms | string | Payment terms |
| memo | string | Internal memo |
| line_items_attributes | array | Line items (include id to update, _destroy to remove) |
POST
/api/v1/invoices/:id/sendSend an invoice
Sends the invoice to the customer via email. Posts to the ledger if not already posted.
Path & Query Parameters
| Parameter | Type | Description |
|---|---|---|
| idrequired | string | Invoice UUID |
POST
/api/v1/invoices/:id/remindSend payment reminder
Queues a payment reminder email to the customer.
Path & Query Parameters
| Parameter | Type | Description |
|---|---|---|
| idrequired | string | Invoice UUID |
POST
/api/v1/invoices/:id/voidVoid an invoice
Voids the invoice and creates a reversing journal entry in the ledger.
Path & Query Parameters
| Parameter | Type | Description |
|---|---|---|
| idrequired | string | Invoice UUID |
POST
/api/v1/invoices/:id/record_paymentRecord a payment
Records a payment against the invoice.
Path & Query Parameters
| Parameter | Type | Description |
|---|---|---|
| idrequired | string | Invoice UUID |
Body Parameters
| Parameter | Type | Description |
|---|---|---|
| amount_cents | integer | Payment amount in cents (defaults to amount due) |
| date | string | Payment date (YYYY-MM-DD, defaults to today) |
| payment_method | string | check, cash, credit_card, bank_transfer, or other |
| deposit_to_account_id | string | Account UUID to deposit into |