Skip to main content

Calls

All four lifecycle actions need an Idempotency-Key.

What each status allows

A refused call returns 409 invalid_state, and detail says why.
On PATCH /invoices/{id}, items replaces every line. To change one line, use POST /invoice-items and DELETE /invoice-items/{id}. A draft must keep at least one line.

Sending

send emails the PDF and a link to the online invoice to the customer’s email, or to to if you pass it.
  • Your account email must be verified. Otherwise you get 409 invalid_state.
  • With no customer email and no to, you get 422.
  • Limited to 10 per hour per key and 50 per hour per account. See Rate limits.

Overdue

overdue is never stored. An open invoice reads as overdue from 00:00 UTC on the day after its due_date. An invoice with no due_date is never overdue. To find overdue invoices, call GET /invoices?status=overdue. There’s no invoice.overdue webhook.

History

GET /invoices/{id}/events returns the invoice’s events, newest first. The event types match the webhook events.