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

FieldTypeDescription
idstringUnique invoice UUID
invoice_numberstringHuman-readable invoice number (e.g., INV-0001)
statusstringdraft, sent, paid, partially_paid, overdue, or void
issue_datestringISO 8601 date
due_datestringISO 8601 date
currencystringISO currency code (e.g., USD)
subtotal_centsintegerSubtotal before tax, in cents
tax_amount_centsintegerTotal tax in cents
total_centsintegerTotal including tax, in cents
amount_due_centsintegerRemaining balance in cents
termsstringPayment terms
memostringInternal memo
note_to_customerstringNote visible to customer
customerobjectCustomer with id, display_name, email
line_itemsarrayLine items with id, description, quantity, rate_cents, amount_cents
sent_atstringISO 8601 timestamp when sent
created_atstringISO 8601 timestamp
updated_atstringISO 8601 timestamp

Endpoints

GET/api/v1/invoices

List invoices

Returns a paginated list of invoices for the current organization.

Path & Query Parameters

ParameterTypeDescription
statusstringFilter by status (draft, sent, paid, overdue, void)
customer_idstringFilter by customer UUID
searchstringSearch by invoice number or memo
limitintegerNumber of results (1-50, default 25)
GET/api/v1/invoices/:id

Retrieve an invoice

Returns a single invoice with its payment history.

Path & Query Parameters

ParameterTypeDescription
idrequiredstringInvoice UUID
POST/api/v1/invoices

Create an invoice

Creates a new invoice with line items.

Body Parameters

ParameterTypeDescription
customer_idrequiredstringCustomer UUID
invoice_numberstringCustom invoice number
issue_datestringIssue date (YYYY-MM-DD)
due_datestringDue date (YYYY-MM-DD)
termsstringPayment terms
note_to_customerstringNote visible to customer
memostringInternal memo
line_items_attributesrequiredarrayArray of line items
product_idstringProduct UUID
account_idstringChart account UUID
descriptionstringLine description
quantitynumberQuantity
rate_centsintegerUnit price in cents (e.g., 10000 = $100.00)
amount_centsintegerLine total in cents (overrides qty * rate)
taxablebooleanWhether tax applies
PATCH/api/v1/invoices/:id

Update an invoice

Updates an invoice. Recalculates totals and reposts to the ledger automatically.

Path & Query Parameters

ParameterTypeDescription
idrequiredstringInvoice UUID

Body Parameters

ParameterTypeDescription
customer_idstringCustomer UUID
issue_datestringIssue date (YYYY-MM-DD)
due_datestringDue date (YYYY-MM-DD)
termsstringPayment terms
memostringInternal memo
line_items_attributesarrayLine items (include id to update, _destroy to remove)
POST/api/v1/invoices/:id/send

Send an invoice

Sends the invoice to the customer via email. Posts to the ledger if not already posted.

Path & Query Parameters

ParameterTypeDescription
idrequiredstringInvoice UUID
POST/api/v1/invoices/:id/remind

Send payment reminder

Queues a payment reminder email to the customer.

Path & Query Parameters

ParameterTypeDescription
idrequiredstringInvoice UUID
POST/api/v1/invoices/:id/void

Void an invoice

Voids the invoice and creates a reversing journal entry in the ledger.

Path & Query Parameters

ParameterTypeDescription
idrequiredstringInvoice UUID
POST/api/v1/invoices/:id/record_payment

Record a payment

Records a payment against the invoice.

Path & Query Parameters

ParameterTypeDescription
idrequiredstringInvoice UUID

Body Parameters

ParameterTypeDescription
amount_centsintegerPayment amount in cents (defaults to amount due)
datestringPayment date (YYYY-MM-DD, defaults to today)
payment_methodstringcheck, cash, credit_card, bank_transfer, or other
deposit_to_account_idstringAccount UUID to deposit into