Billing · Invoices
Update invoice
Changes only the fields you send, then emails the updated invoice to the client. A paid or cancelled invoice is final and can’t be changed. Once an invoice has a payment, its amount and currency can’t change.
Authorization
HeaderSend Authorization: Bearer <accessToken>, the token from Create token.
Path parameters
id string Required
The invoice’s id.Body parameters
lineItems array
Replaces all line items and recalculates amount, discount and tax. Items take the same fields as Create invoice. An invoice linked to a project can’t gain items.amount number
New total in major units, e.g. 5000.00. Ignored when lineItems is sent.discount number
Discount amount in major units. Ignored when lineItems is sent.tax number
Tax amount in major units. Ignored when lineItems is sent.currency string
USD, EUR, GBP, CAD, AUD, AED, SGD, INR, BDT or BRL.status enum
DRAFT, PENDING or CANCELLED. Cancelling sends invoice.cancelled. An invoice is PAID only when its payment goes through (that sends invoice.paid); OVERDUE is worked out from the due date and never stored.dueDate date
ISO 8601 date, e.g. 2027-01-31. null clears it.description string
A note shown to the client.clientId string
Moves the invoice to another of your clients.issuedAt date-time
Issue date, ISO 8601.country string
Country shown on the invoice.contractId string
Links the invoice to one of your contracts. Must be of the invoice’s own mode (a sandbox invoice can’t bill a live project or contract): 404 otherwise.clientProjectId string
Links the invoice to one of your client projects. Must be of the invoice’s own mode (a sandbox invoice can’t bill a live project or contract): 404 otherwise.metadata object
Your own JSON data. Replaces the stored metadata.vizibility enum
PUBLIC or PRIVATE. Stored for your records.partialPayment boolean
Stored for your records; the client still pays the full total.recurring boolean
Stored for your records; it doesn’t schedule repeat invoices.quantity number
Whole number stored for your records.Good to know
- Every save emails the client the updated invoice, at most once a minute per invoice. An edit inside that minute is saved but sends no email. Cancelling sends no email.
paidAtis set by the payment. A value you send is ignored.
Errors
- 400 “This invoice is paid, so it can’t be changed.” (or “…is cancelled…”): a PAID or CANCELLED invoice is final.
- 400 “An invoice is marked PAID when its payment goes through; it cannot be set to PAID.”
- 400 “A bank payment on this invoice is still clearing, so it can’t be cancelled.” or “This invoice already has a payment, so it can’t be cancelled.”