Delete a product
Refused with DELETE_BLOCKED_BY_REFERENCES (409) while a line of an invoice, a recurring series or a credit note of the company names the product: the platform is then not asked. Refused with DELETE_BLOCKED_BY_BOOKINGS (409) when the accounting platform holds bookings against the product. Either way nothing is deleted.
Authorization
bearerAuth An API key minted by an admin under Settings → Developers. It is bound to one company and has a scope: read, or read_write. A request without one, or with one that is not ours, is answered 401 and metered by its client address (x-rate-limits).
In: header
Path Parameters
The record's id, or ext:<external_id> for the record that carries your own key.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X DELETE "https://example.com/products/string"{ "object": "product", "id": "string", "deleted": true}Replace a draft invoice PUT
The body is the whole draft. A line that states its `id` stays the line it was, with the work registered on it; a line that states none is new; a line of the invoice the body leaves out is removed. `external_id` left out stays as it is, and `null` clears it; `auto_send` left out stays as it is. Refused with `INVOICE_ALREADY_ISSUED` (409) once the invoice is issued, with `ISSUE_IN_PROGRESS` (409) while an issue attempt holds it, and with `INVOICE_IS_OCCURRENCE` (409) for an occurrence of a recurring series, which is changed through its series.
List the products the company offers GET
Oldest change first. `updated_since` narrows the list to what changed at or after an instant. A change is stamped as it is written, in the order changes become visible, so a list followed from the newest `updated_at` it answered misses nothing and needs no overlap. A change of `external_id` alone is not such a change.