Metadata on Customers, Contracts, and Invoices

V4 now supports metadata on customers, contracts, and invoices:

  • Customer, contract, and invoice responses include metadata, a flat map keyed by each definition's
    permanent key. GET /metadata-definitions lists the available definitions, types, assignments, and status.
  • GET, PUT, and PATCH /{customers|contracts|invoices}/{id}/metadata retrieve or update one record.
    Metadata-only PUT replaces all active values; PATCH changes only the keys supplied.
  • POST /{customers|contracts|invoices}/metadata/bulk patches up to 1,000 records atomically.
  • Existing customer, contract, and invoice PUT endpoints accept optional metadata with patch semantics.
    Omitting metadata, or omitting individual keys within it, preserves existing values.

Send null, empty, or whitespace-only values to clear a named key. Invalid definitions or values reject the
entire operation without partial writes.

Applies to V4 only.