Invoice

A bill you send to a client for work on one project, with its line items.

  • Email address the invoice is addressed to, captured from the client contact when the invoice was created.

  • Name the invoice is addressed to.

  • Id of the company being invoiced, or null when the invoice is addressed to a client that is not a company record.

  • When the invoice was created.

  • Three-letter ISO 4217 currency code every amount on the invoice is expressed in.

  • Discount taken off the subtotal, as a decimal string, or null when there is none.

  • Date payment is due, or null when the invoice is payable on receipt.

  • How due_date was arrived at: upon_receipt, after_x_days (a fixed number of days after the issue date) or custom (an explicit date).

    values
    upon_receiptafter_x_dayscustomnull
  • Unique identifier for the invoice.

  • The invoice's line items, in the order they appear on it.

    Properties: 7
  • Human-readable invoice reference, unique within your account. The list endpoint accepts it as filter[invoice_number].

  • Issue date printed on the invoice. Set when the invoice is created, so a draft has one too; sent_date says whether the client has received it.

  • How the invoice repeats:

    • single — a one-off invoice. Scheduling one to send later does not make it recurring; status reports that as scheduled.
    • recurring — reissued on repeat_interval until you stop it or repeat_finish_date arrives.
    • subscription — recurring, and charged automatically to the card the client has on file.
    • bundled — one of several invoices grouped to be sent and paid together.

    bundled is read-only: bundles are assembled in the Bonsai app from invoices that already exist, so it cannot be passed when creating one.

    values
    singlerecurringsubscriptionbundled
  • Id of the project the invoice bills.

  • Token in the invoice's client-facing URL. Anyone holding that link can view and pay the invoice, so treat this value as a secret.

  • Whether the series this invoice belongs to still reissues. Unlike kind and repeat_interval, which describe the invoice, this describes the series, so every invoice in it reports the same answer and an already-issued one turns false once the series is stopped. It is true exactly when DELETE /invoices/{invoice_id}/recurrence has something to stop.

  • Date the series stops reissuing, or null for a one-off or a series that runs until you stop it. Only the newest invoice of a series carries it: each repeat hands the date on to the invoice it creates, so earlier invoices read null even when the series has an end. When the date falls a whole number of repeat_intervals after the issue date, the final invoice is issued on it; otherwise the series ends with the last repeat before it. Stopping a series keeps the date so the series can be started again.

  • How often a recurring or subscription invoice is reissued, or null for a one-off. It records the cadence an invoice was issued under rather than whether its series still runs: stopping a series keeps the interval on every invoice so the series can be started again, including one stopped before it repeated, which then reads kind single. Only the last invoice a series issues on repeat_finish_date comes back null. Use recurrence_active to tell a running series from a stopped or finished one.

    values
    weeklyevery two weeksevery four weeksmonthlyevery two monthsquarterlyevery six monthsannuallynull
  • When the invoice was sent to the client, by email or as a shared link, or null while it has not been sent. A drafted or scheduled invoice has none.

  • Id of the first invoice of the series this one belongs to, the same for every invoice in it, so you can group them. null for an invoice that is not part of a series.

  • 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 past due_date.
    • pending — a payment has started but has not settled.
    • paid — paid in full.
    • deleted — the invoice has been deleted.

    An invoice that is paid or pending can no longer be edited, and neither can its line items.

    values
    newdraftedscheduledoutstandingoverduependingpaiddeleted
  • Sum of every line item, before discount and tax, as a decimal string.

  • Tax added to the invoice, as a decimal string.

  • Invoice title shown to the client.

  • What the client owes, as a decimal string, after any discount and tax.

  • 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.