Update header-level fields on an existing invoice.
items array if you need to
change one row.
If you need a structural change to a fiscal invoice (different client,
wholesale repricing, etc.), issue POST /invoices/{id}/storno followed by a
fresh POST /invoices rather than mutating the original.
| Canonical | Legacy aliases |
|---|---|
info | observation, notes |
date_at | date |
due_at | due_date |
items[] must not carry price_total or
account_amount_total — send the components (quantity, price,
vat_rate) and the server recomputes both. Sending totals directly used to
work in earlier builds and has been a silent source of rounding drift; the
fields are now ignored.
currency is RON, currency_rate is forced to 1.000 regardless
of what you send. For non-RON invoices, a positive exchange_rate
propagates into every account_amount_* field on both the invoice header
and its rows — so the RON-equivalent totals stay consistent with the
foreign-currency totals shown on the PDF.
400 invoice_is_storno — the row is itself a reversal.400 invoice_already_storned — the row has been reversed.400 invoice_is_paid — paid invoice cannot have totals changed
(non-total fields like info and due_at still work).403 invoice_locked_efactura — ANAF has accepted or validated the
invoice via SPV. The error payload includes efactura_status.PUT and PATCH are interchangeable — both route to the same handler.Use your API key (sk_live_xxx or sk_test_xxx)
Invoice CzUid
ISO date or unix timestamp. Alias - date.
ISO date or unix timestamp. Pass empty/null to clear. Alias - due_date.
Free-text notes shown on the PDF. Accepted aliases - observation, notes.
CzUid of an existing firm client; rebinds the invoice to that client's current snapshot.
ISO-4217 code. Passing RON resets currency_rate to 1.
Positive FX rate. Ignored for RON invoices. Overrides currency_rate and propagates to all account_amount_* fields.
CzUid (or numeric PK) of a firm_number series owned by the firm. Only used when actually switching series.
Replace the whole line-items array. Each row accepts
description, quantity, price, vat_rate,
unit, product_czuid, um_id etc. Row-level
price_total and account_amount_total are not
accepted — they are recomputed from the components.