Invoice
A bill you send to a client for work on one project, with its line items.
- clientType: string | null
_email requiredEmail address the invoice is addressed to, captured from the client contact when the invoice was created.
- clientType: string | null
_name requiredName the invoice is addressed to.
- companyType: integer | null
_id requiredId of the company being invoiced, or
nullwhen the invoice is addressed to a client that is not a company record. - createdType: string Format: date-time
_at requiredWhen the invoice was created.
- currencyType: stringrequired
Three-letter ISO 4217 currency code every amount on the invoice is expressed in.
- discountType: string | null
_amount requiredDiscount taken off the subtotal, as a decimal string, or
nullwhen there is none. - dueType: string | null Format: date
_date requiredDate payment is due, or
nullwhen the invoice is payable on receipt. - dueType: string | null enum
_date _option requiredHow
due_datewas arrived at:upon_receipt,after_x_days(a fixed number of days after the issue date) orcustom(an explicit date).values- upon
_receipt - after
_x _days - custom
- null
- idType: integerrequired
Unique identifier for the invoice.
- invoiceType: array object[] · InvoiceItem[]
_items requiredThe invoice's line items, in the order they appear on it.
A single line on an invoice: what you are billing for, how much of it, and at what rate.
- amountType: string | nullrequired
Quantity billed, as a decimal string.
- descriptionType: string | nullrequired
Longer description shown beneath the name, or
null. - idType: integerrequired
Unique identifier for the line item.
- nameType: string | nullrequired
Line item name, as it appears on the invoice.
- rateType: string | nullrequired
Price per unit, as a decimal string in the invoice currency.
- totalType: stringrequired
amountmultiplied byrate, rounded, as a decimal string. - unitType: string | null enum
_type requiredWhat the rate is charged per. Defaults to
flat.values- flat
- per
_hour - per
_day - per
_item - per
_word
- invoiceType: string | null
_number requiredHuman-readable invoice reference, unique within your account. The list endpoint accepts it as
filter[invoice_number]. - issuedType: string | null Format: date
_date requiredDate the invoice was sent to the client, or
nullwhile it is still a draft. - projectType: integer | null
_id requiredId of the project the invoice bills.
- publicType: string | null
_url _token requiredToken in the invoice's client-facing URL. Anyone holding that link can view and pay the invoice, so treat this value as a secret.
- statusType: string enumrequired
Where the invoice is in its lifecycle:
new,drafted— not sent to the client yet.scheduled— queued to send automatically on a future date.outstanding— sent and awaiting payment.overdue— sent, unpaid and pastdue_date.pending— a payment has started but has not settled.paid— paid in full.deleted— the invoice has been deleted.
An invoice that is
paidorpendingcan no longer be edited, and neither can its line items.values- new
- drafted
- scheduled
- outstanding
- overdue
- pending
- paid
- deleted
- subtotalType: string | nullrequired
Sum of every line item, before discount and tax, as a decimal string.
- taxType: string | null
_amount requiredTax added to the invoice, as a decimal string.
- titleType: string | nullrequired
Invoice title shown to the client.
- totalType: string
_amount requiredWhat the client owes, as a decimal string, after any discount and tax.
- urlType: stringrequired
Absolute link to the invoice in the Bonsai app. This is the contractor-facing view, not the client payment page — for that, use
public_url_token.