invoices.update
Edit a draft, scheduled, or awaiting-approval invoice with its expectedRevision. Editing an approved invoice returns it for approval. Issued invoices can't be edited; void and duplicate them instead. Their memo and project (projectId) can still change.
/api/v1/accounting/invoices.updatePermissions
Who can call it
Retries
MCP
accounting_invoices_updateFields
idstring (ID)RequiredThe record's ID.
expectedRevisionintegerRequiredThe record's current revision, from the last time you read it. If someone changed the record since, the request is refused with a conflict so you can reload and check before trying again.
at most 9007199254740991 · greater than 0
partyIdstring (ID)The ID of a customer or vendor account, from parties.list.
titlestringA short title.
at most 200 characters
issueDatestring or nullThe date the document was issued, as YYYY-MM-DD.
dueDatestring or nullThe date payment is due, as YYYY-MM-DD.
currencystringThree-letter currency code, such as CAD or USD.
linesarray of objectsat most 100 items
taxTreatmentenum or nullautohstgstgst_qstzero_ratedexemptnonecustomtaxRateCodeenum or string or nullpaymentMethodIdsarray of strings (ID)A list of record IDs.
at most 10 items
payUrlstring (uri) or nullnotesstringNotes kept with the record.
at most 4000 characters
memostringat most 4000 characters
termsobjectNo other fields
billToContactIdstring or nullprojectIdstring (ID) or nullidempotencyKeystringRequiredAny unique text you generate once per intended change, so a retried request only happens once. Send it as the Idempotency-Key header instead if you prefer; if you send both they must match.
8–200 characters
Example
curl https://app.getoatmilk.com/api/v1/accounting/invoices.update \
-H "Authorization: Bearer $OATMILK_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
"expectedRevision": 3
}'{
"data": { … }
}Try it
Try it
Checks your input with this action’s real schema and answers like the API, with synthetic data. No key needed, and nothing changes.
curl https://app.getoatmilk.com/api/v1/accounting/invoices.update \
-H "Authorization: Bearer $OATMILK_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
"expectedRevision": 3
}'More in Invoicing.