Update an invoice
Update the metadata of an issued invoice - a free-form bag of string key/value pairs for your own integration references (external accounting ID, Mews record, sync state…).
An issued invoice is legally immutable: its amounts, lines, and seller/account/contact snapshots are frozen and cannot be changed here. metadata is the only writable field, and sending any other field returns 422. The merge is per key: metadata: { "ref": "ABC" } upserts the ref key; metadata: { "ref": null } deletes it; omitted keys are left untouched.
This endpoint emits no webhook - there is no invoice.updated event.
Authorizations
Bearer authentication using your BookingShake API key. Retrieve your API key from Settings > Integrations in your BookingShake dashboard.
Path Parameters
Invoice document ID (the id field carried by the invoice.created webhook).
Body
The only writable part of an issued invoice. The legal invoice (amounts, lines, snapshots) is immutable; sending any field other than metadata returns 422.
Free-form integration key/value pairs. Merged per key into the existing metadata; pass null as a value to delete that key. Up to 50 keys per invoice, key ≤ 40 chars, value ≤ 500 chars.
{
"external_ref": "MEWS-2026-0042",
"synced_at": "2026-06-18"
}
Response
Invoice metadata updated successfully. Returns the full invoice in its post-update state.
