Skip to main content
PATCH
cURL

Authorizations

Authorization
string
header
required

An Invoice-AI API key sent as Authorization: Bearer inv_live_….

Create keys in Settings → API keys; the secret is shown once. Each key carries scopes, and every operation lists the scope it needs (x-required-scope):

  • business:read — Read your business profile, tax ID and bank details
  • clients:read — List and read your clients
  • clients:write — Create, update and archive clients
  • products:read — List and read products and prices
  • products:write — Create, update and archive products and prices
  • invoices:read — List and read invoices, including PDFs
  • invoices:write — Create, edit and delete drafts
  • invoices:finalize — Finalize invoices and void them
  • invoices:send — Email invoices to your clients
  • payments:write — Mark invoices as paid
  • webhooks:manage — Manage webhook endpoints

Keys cannot be created or revoked through the API, so a leaked key cannot mint more keys.

Path Parameters

id
string
required

The draft, in_… or UUID.

Example:

"in_Pb2Xk7Mv4Qs9Lr1Wd6Tn3Fh8"

Body

application/json

Any subset of fields. Omitted fields keep their stored value; omit items to keep the lines.

customer
string

Bill a different customer, cus_… or UUID. Omit to keep the current one.

Minimum string length: 1
Example:

"cus_Nf3kQ8pR2mX7vB1cT9wL4sZ6"

currency
string

ISO 4217 code. Defaults to your business currency.

Required string length: 3
Pattern: ^[A-Z]{3}$
Example:

"USD"

collection_method
enum<string>

Defaults to send_invoice. Informational today.

Available options:
charge_automatically,
send_invoice
Example:

"send_invoice"

due_date

Due date, YYYY-MM-DD. "" clears it.

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
Example:

"2026-10-22"

days_until_due
integer

Alternative to due_date on create only: issue date + N days (0–365). Ignored on update.

Required range: 0 <= x <= 365
Example:

30

description
string

Notes printed on the invoice.

Terms printed at the foot of the invoice.

items
object[]

The lines, at least one. On update, replaces every existing line; omit to keep them.

Minimum array length: 1

Response

The updated draft, with lines.

data
object
required

The updated draft.