Update InvoiceV2 record (partial)
Change only the fields you send. Other fields stay as they are. Period locks, payments, and approval rules match the full update.
A posted invoice writes general ledger entries. Those entries debit accounts receivable and credit income or a deferral account. Tax and discounts write their own entries. A draft does not post those entries.
An approval workflow can hold the invoice for approval before it posts.
The save links a contract when you send contract_id. It links a sales order when you send sales_order_id.
This call does not calculate tax. Call the tax calculate endpoint first, then copy the result onto each line. This call does not send email. Use the send endpoint for that.
Authorizations
Headers
Optional. A unique value (a UUID works well) identifying this operation. If the request is repeated with the same key, the original response is replayed instead of the operation running again, so a retry cannot create a duplicate record. Results are replayable for 48 hours. Reusing a key with a different request body returns 422.
255Path Parameters
The number attribute of the record.
Body
Partial update payload for PATCH /public/invoices/{number}/.
Every field is optional: send only the fields you want to change. Unset fields are left untouched on the existing record.
Updates allowed under the same constraints as PUT: period locks, payment-applied restrictions, and approval-workflow rules apply.
2AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BRL, BSD, BTN, BWP, BYN, BZD, CAD, CDF, CHF, CLF, CLP, CNY, COP, CRC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRU, MUR, MVR, MWK, MXN, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, UYU, UZS, VES, VND, VUV, WST, XAF, XAG, XAU, XCD, XDR, XOF, XPD, XPF, XPT, YER, ZAR, ZMW, ZWL Deprecated: send the structured billing_address / shipping_address instead.
Deprecated: send the structured billing_address / shipping_address instead.
draft, posted, archived Schema for payment collection configuration input (matches frontend structure).
PERCENTAGE, FIXED Response
OK
Deprecated: send the structured billing_address / shipping_address instead.
Deprecated: send the structured billing_address / shipping_address instead.
Base for record-level tax context; regime discriminates data.
Mirrors TaxResultV2Out (core.taxes.api.taxes)
AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BRL, BSD, BTN, BWP, BYN, BZD, CAD, CDF, CHF, CLF, CLP, CNY, COP, CRC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRU, MUR, MVR, MWK, MXN, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, UYU, UZS, VES, VND, VUV, WST, XAF, XAG, XAU, XCD, XDR, XOF, XPD, XPF, XPT, YER, ZAR, ZMW, ZWL ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,16}0*$Total amount of transaction
^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$Amount to be paid
^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$Amount that was already paid by Customer Repayment Applications or Customer Payments
^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$Timestamp of the most recent change that could have affected amount_due. Moves whenever the invoice itself is edited, or whenever a posted Customer Payment or Customer Prepayment Application referencing this invoice is written.
Posting date (GL date) - the date when the transaction is recorded in the general ledger
Transaction date (inception date) - the date when the transaction actually occurred
draft, posted, archived PERCENTAGE, FIXED ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,6}0*$Date and time the record was created
Date and time the record was last updated
2Schema for payment collection configuration output.
Schema for audit actor information.
Schema for audit actor information.
Schema for rejector information including rejection reason.
The number of the linked sales order.