Updates an existing invoice. The fields that can be updated depend on the invoice status:
customer_id, issue_date, due_date, currency, financial fields (subtotal, discount_*, tax_*, total), notes, payment_terms, and status.notes, payment_terms, and status can be updated.When updating the total on a draft invoice, amount_due is automatically recalculated based on the existing amount_paid.
API key authentication. Generate keys from the Corebill dashboard under the Developers section.
Example: Authorization: Bearer sk_live_abc123def456
The invoice ID
The company ID to scope the request to
Fields available for update depend on invoice status.
Draft invoices allow all fields. Non-draft invoices only allow notes, payment_terms, and status.
Customer ID (draft only)
"cus_a1b2c3d4e5f6"
Invoice issue date (draft only)
"2025-04-20"
Payment due date (draft only)
"2025-05-20"
Currency code (draft only)
"USD"
Invoice notes visible to the customer
"Updated payment instructions"
Payment terms description
"Net 15"
Invoice status
draft, sent, viewed, in_review, partial, paid, overdue, cancelled "sent"
Subtotal before discount (draft only)
5000
Discount type (draft only)
percentage, fixed "percentage"
Discount value (draft only)
10
Calculated discount amount (draft only)
500
Subtotal minus discount (draft only)
4500
Tax rate as percentage (draft only)
16
Tax identifier (draft only)
"VAT"
Calculated tax amount (draft only)
720
Final total (draft only). Updates amount_due automatically.
5220
Invoice updated successfully
Full invoice object including items and public_token (returned by GET /invoices/{id} and POST /invoices)