Skip to main content
POST
← Sold Products API Delete uses of sold products by id, with their emissions. The period, its sales and the product stay: the period is left with no use, and a later Create Use of Sold Products (v2) for it is calculated from scratch. The request checks every id and answers 202 Accepted with an ingest job that deletes them in the background (see how bulk ingestion works). Follow it with GET /v2/ingest-jobs/{id} or, for a job submitted with an API key, the ingest_job.finished webhook. The ids are the entity_id of the items of the job that created the uses, or the use_of_product_data_id of Period Emissions.
Permanent. Deleted uses and their emissions cannot be recovered. Use dry_run=true first if you are not sure.
Beta. Part of the bulk ingest API, in beta. The contract may still change before general availability.

How it works

  1. The request checks every id. One that does not exist, is outside your organization’s perimeter or is repeated rejects the whole request with 422, and nothing is deleted.
  2. The job deletes them in the background, 200 uses per chunk. Each use goes with the emissions it produced on every country sale of its period (with their calculation steps) and its calculation settings; those of a year that another period of the product still uses stay.
  3. When every chunk is done the job is completed (or completed_with_errors). For a job submitted with an API key, ingest_job.finished is sent with "operation": "delete" to the webhook endpoints of the x-organization-id organization.

Request

Headers

string
required
Your API key (see Authentication).
string
required
The organization the uses are deleted for. The uses of its products, and of those of the organizations under it (its perimeter), can be deleted.
string
required
1 to 255 characters, one per batch, looked up per organization across every v2 bulk route. Within 24 hours, the same key with the same route and body returns the original job (with Idempotent-Replayed: true); the same key with another body or on another route is 422 IDEMPOTENCY_KEY_REUSED, and while the first request is still being processed 409 IDEMPOTENCY_KEY_IN_PROGRESS. After 24 hours the key is free, and a request with it is a new one. See The Idempotency-Key.

Query Parameters

boolean
default:"false"
Check only: the same 422 for bad ids, nothing deleted, no job; 200 with {"dry_run": true, "submitted": n, "valid": n} when every id is valid. It does not check or store the Idempotency-Key.

Body Parameters

array[uuid]
required
Use of sold product ids, 1 to 5,000, each once.

Response

202 Accepted with the job (entity_type: use_of_product, operation: delete) and a Location header to it. GET /v2/ingest-jobs/{id}/items has one item per use, in the order sent; an item is failed with DELETE_FAILED when its use was already gone by the time the job reached it.

Errors

Problem details. Per-id codes in errors[].error_code of a 422 BULK_RECORDS_REJECTED (source_row_index is the position in ids): Request-level errors: 401 for a missing or invalid API key, 403 LOGGED_USER_NOT_MEMBER when the key’s user is not a member of the organization, 422 REQUEST_VALIDATION_FAILED for a malformed body (no ids, more than 5,000, no Idempotency-Key), 422 IDEMPOTENCY_KEY_REUSED, 409 IDEMPOTENCY_KEY_IN_PROGRESS, and 429 beyond the rate limits.

Limits

Create Use of Sold Products (v2)

Set or replace the use of periods in bulk

Delete Sold Products (v2)

Delete whole products, with their periods and uses

Period Emissions

Find the id of a period’s use

Get Ingest Job

Follow the deletion