Μετάβαση στο περιεχόμενο
Μενού τεκμηρίωσης: Privacy

Privacy

Erase a customer's personal data when they ask.

Η αναφορά API είναι διαθέσιμη μόνο στα αγγλικά, όπως και το API.

Σε αυτή τη σελίδα

Erase a customer's data #

POST /api/v1/erasures

Starts 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-keystringrequired

A 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

merchantstringrequired

The merchant whose customer asked to be erased (mer_…).

Show patternHide pattern^mer_[0-9A-Za-z]{22}$
external_referencesstring[]required

The 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"
  ]
}
Responses
StatusDescription
202The erasures started, one per reference. A replay returns the first answer.
4XX, 5XXAn error: see Errors below.

Response body · 202

objectstringrequired

Always "list".

Always list

dataobject[]required

One 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)
idstringrequired

Id of the erasure (era_…).

Show patternHide pattern^era_[0-9A-Za-z]{22}$
objectstringrequired

Always "erasure".

Always erasure

merchantstringrequired

Id of the merchant (mer_…).

Show patternHide pattern^mer_[0-9A-Za-z]{22}$
external_referencestringrequired

The reference this erasure covers.

Up to 200 characters

Show patternHide pattern\S
statusstringrequired

pending 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, incomplete

createdstringrequired

When the erasure was requested.

Format: date-time

has_morebooleanrequired

Always false: every erasure of the request is listed.

Always false

Example response · 202
{
  "object": "list",
  "data": [],
  "has_more": false
}

Response headers

x-request-idstring

The 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-limitinteger

Requests allowed in the current window for the bucket this request counted against.

With 202, 400, 404, 409, 413, 415, 429 · At least 1

ratelimit-remaininginteger

Requests 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-resetinteger

Seconds until the current window resets.

With 202, 400, 404, 409, 413, 415, 429 · At least 0

idempotent-replayedstring

true 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 true

www-authenticatestring

The bearer challenge: send a vendor secret key as Authorization: Bearer <key>.

With 401 · Always Bearer realm="tallio"

retry-afterinteger

Seconds to wait before retrying a request refused with 429 rate_limited.

With 429 · At least 1

Errors
CodeStatusRetryableMeaning
validation_failed400NoRequest validation failed.
unauthorized401NoAuthentication is required.
vendor_suspended403NoThis vendor's access to Tallio is suspended. Its owner can contact Tallio to restore it.
not_found404NoThe requested resource was not found.
idempotency_conflict409NoThis idempotency key was already used with a different request.
idempotency_in_progress409YesA request with this idempotency key is still in progress; retry it after Retry-After to get its answer.
payload_too_large413NoThe request body is too large.
unsupported_media_type415NoThe request body must be JSON (Content-Type: application/json).
too_many_pending_erasures429YesToo many of this account's erasures are still running in this mode. Retry once some have finished.
rate_limited429YesA rate limit was reached. Retry later.
internal_error500NoAn unexpected server error occurred.