Updates an invoice. Editing is allowed only while the invoice is a draft — once it is committed (lifecycle: issued or beyond) its terms are frozen and any edit is refused with 409 precondition_failed; change a committed invoice by :void + re-issue instead. Uses JSON Merge Patch (RFC 7396), so the request content type is application/merge-patch+json:
-
A field present with a value sets that value.
-
A field present and
nullclears it (nullable fields only;nullon a
non-nullable field is400 invalid_request). -
A field absent is left unchanged.
-
The
linesarray, when present, REPLACES all line items — send the
full list, including a line'sidto keep/modify it, omittingidfor a
new line.lines: []clears all lines; omit the field to leave lines
unchanged.
Lifecycle and settlement are not editable here — move the invoice with the lifecycle commands (:issue / :share / :sync / :void / :delete); settlement is derived from payments.
Concurrency: read the invoice's version, then send it in the body; a stale value is refused with 409 version_mismatch. On success the invoice is returned with an incremented version.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
