Delete an invoice
Deletes an invoice (the sale is unaffected).
Deletes an invoice (the sale is unaffected).
Authorization
bearerAuth sales:delete, gallery:read, payments:read, artworks:readA gallery API key, sent as Authorization: Bearer gpk_… (or the x-api-key header).
In: header
Scope: sales:delete, gallery:read, payments:read, artworks:read
Path Parameters
The invoice id.
Query Parameters
Preview this operation without committing it. When true, the request is authenticated, scoped, and validated, but no side effect runs — no write, no idempotency claim, no audit event, no outbound delivery. The response is HTTP 200 with an X-Dry-Run: true header and a body of { "dry_run": true }, plus an effect object describing what the real call would change when this operation can resolve one.
Header Parameters
Optional. Send a unique key per logical operation to make retries safe: a retry with the same key replays the stored success for 14 days instead of re-running the write. Reusing a key with a different body returns 400.
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
{ "id": "string", "deleted": true}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}Issue an invoice POST
Issues an invoice for a sale, generating a gallery-unique invoice number. The sale must belong to the same gallery. Set `create_checkout_link` to also receive a hosted Stripe `checkout_url` (when the gallery can collect and the invoice has a balance) — a one-call issue-and-collect for third parties.
Register an invoice document POST
Registers an already-uploaded object (from the upload-url endpoint) as a document row, appended to the end. Requires a first-party session.