Μενού τεκμηρίωσης: Privacy
Privacy
Erase a customer's personal data when they ask.
Η αναφορά API είναι διαθέσιμη μόνο στα αγγλικά, όπως και το API.
Σε αυτή τη σελίδα
Erase a customer's data #
/api/v1/erasuresStarts the erasure of one customer of a merchant, named by the external_reference of each of their documents: one erasure per reference, run in the background. Each matching document keeps its type, status, number, the tax system's identifiers and totals; the parties in its stored request, its external_reference and metadata, and the logged bodies tied to it are removed. A document still pending keeps its request until it is settled. Answer a privacy request (Shopify's customers/redact) well within its deadline: Tallio's own window is RETENTION_DAYS. Each reference spends one token of the merchant's hourly erasure budget (429 rate_limited), and a reference already being erased answers that erasure. While too many of the account's erasures are still running in this mode the answer is 429 too_many_pending_erasures; retry after Retry-After.
- Bearer API key
- Idempotency-Key required
Header parameters
idempotency-keystringrequiredA key you choose (1-255 printable ASCII characters, e.g. a UUID) that makes a create request safe to retry: the same key with the same body returns the first result instead of creating a second document.
1 to 255 characters
Show patternHide pattern
^[\x21-\x7E]+$
Request body
merchantstringrequiredThe merchant whose customer asked to be erased (mer_…).
Show patternHide pattern
^mer_[0-9A-Za-z]{22}$external_referencesstring[]requiredThe external_reference of every document of that customer, exactly as you sent it: 1 to 50 distinct references. Each starts its own erasure.
1 to 50 items
Each item: Your own reference for the document, e.g. an order number: 1 to 200 characters, trimmed. Not unique; list documents by it to find them. Up to 200 characters
Show patternHide pattern
\S
Request
JSON{
"merchant": "mer_02y9O8rh7F50tGi0QcWRrx",
"external_references": [
"#1042",
"1042-refund-7"
]
}| Status | Description |
|---|---|
202 | The erasures started, one per reference. A replay returns the first answer. |
| 4XX, 5XX | An error: see Errors below. |
Response body · 202
objectstringrequiredAlways "list".
Always
listdataobject[]requiredOne erasure per reference, in the order the request named them.
Each item: One customer erasure: the parties in each matching document's stored request, the document's external_reference and metadata, the provider's words and the logged bodies tied to it are removed. The document's type, status, number, the tax system's identifiers and totals stay.
Show nested fields (6)Hide nested fields (6)
idstringrequiredId of the erasure (era_…).
Show patternHide pattern
^era_[0-9A-Za-z]{22}$objectstringrequiredAlways "erasure".
Always
erasuremerchantstringrequiredId of the merchant (mer_…).
Show patternHide pattern
^mer_[0-9A-Za-z]{22}$external_referencestringrequiredThe reference this erasure covers.
Up to 200 characters
Show patternHide pattern
\Sstatusstringrequiredpending while it runs; done once the customer's data is removed; incomplete while a document of theirs is still pending, which keeps its payload until it is settled, when Tallio finishes the erasure.
One of:
pending,done,incompletecreatedstringrequiredWhen the erasure was requested.
Format:
date-time
has_morebooleanrequiredAlways false: every erasure of the request is listed.
Always
false
Example response · 202{
"object": "list",
"data": [],
"has_more": false
}Response headers
x-request-idstringThe request's correlation id; quote it when reporting a problem. One of: req_ plus a uuid (Tallio made it), client: plus the x-request-id you sent (8-128 of A-Z a-z 0-9 . _ : -), or the hosting platform's id.
With every response
Show patternHide pattern
^(?:req_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|client:[A-Za-z0-9._:-]{8,128}|[A-Za-z0-9._-]{1,16}::[A-Za-z0-9._:-]{6,110})$ratelimit-limitintegerRequests allowed in the current window for the bucket this request counted against.
With 202, 400, 404, 409, 413, 415, 429 · At least 1
ratelimit-remainingintegerRequests left in the current window; 0 means the next one is refused until the window resets.
With 202, 400, 404, 409, 413, 415, 429 · At least 0
ratelimit-resetintegerSeconds until the current window resets.
With 202, 400, 404, 409, 413, 415, 429 · At least 0
idempotent-replayedstringtrue when this answer replays an earlier request with the same Idempotency-Key (nothing new was created); absent on the request that created it.
With 202 · Always
truewww-authenticatestringThe bearer challenge: send a vendor secret key as
Authorization: Bearer <key>.With 401 · Always
Bearer realm="tallio"retry-afterintegerSeconds to wait before retrying a request refused with 429
rate_limited.With 429 · At least 1
| Code | Status | Retryable | Meaning |
|---|---|---|---|
validation_failed | 400 | No | Request validation failed. |
unauthorized | 401 | No | Authentication is required. |
vendor_suspended | 403 | No | This vendor's access to Tallio is suspended. Its owner can contact Tallio to restore it. |
not_found | 404 | No | The requested resource was not found. |
idempotency_conflict | 409 | No | This idempotency key was already used with a different request. |
idempotency_in_progress | 409 | Yes | A request with this idempotency key is still in progress; retry it after Retry-After to get its answer. |
payload_too_large | 413 | No | The request body is too large. |
unsupported_media_type | 415 | No | The request body must be JSON (Content-Type: application/json). |
too_many_pending_erasures | 429 | Yes | Too many of this account's erasures are still running in this mode. Retry once some have finished. |
rate_limited | 429 | Yes | A rate limit was reached. Retry later. |
internal_error | 500 | No | An unexpected server error occurred. |