Skip to content

Privacy & retention

DataWhereEncryptedRetention
ID document imagesVault (cloud → offline archive)Per-artifact AES-256-GCM30 days hot, then archive, until erasure
Selfie/challenge framesVaultSameSame
Full AI extraction (incl. document number)VaultSameSame
Minimal identity fields (names, DOB, doc type/country/expiry)DatabaseAt-rest platform encryptionUntil erasure request
Status, decision reasons, hashesDatabase— (no PII)Indefinite (your evidence trail)
Audit chainDatabase— (PII-light by design)Indefinite, append-only
Biometric embeddingsNowhereComputed transiently, never persisted
capture ──► vault (encrypted, "hot") ── 30 days ──►
archival job: tar bundle + hash manifest ──► offline media
hot copies deleted; DB records archive ref
  • The 30-day hot window exists for disputes and manual review; it is a config value (VAULT_HOT_RETENTION_DAYS), not a magic number.
  • Archives are packaging, not re-encryption — blobs are already ciphertext, so the offline media is safe to transport and store.
  • Restore is symmetrical (python -m app.archival restore ver_…) for the rare regulator/dispute lookup.

How deletion actually works (and why you can trust it)

Section titled “How deletion actually works (and why you can trust it)”

Traditional deletion fails at backups: the data you “deleted” lives on in last month’s archive. BAQSHI-KYC inverts this with cryptographic erasure:

  1. Every artifact was encrypted with its own key; only the wrapped key exists, in the database.
  2. DELETE /v1/verifications/{id}/data destroys the wrapped keys, deletes hot blobs, and nulls the identity fields.
  3. Archived ciphertext — wherever it physically is — is now permanent noise. No media retrieval, no archive rewriting.

What remains after erasure: the verification’s status, its decision reasons, and the audit chain (including the erasure event itself). You keep the fact that you verified someone and the evidence of process; you stop holding what you saw.

Data subject requests, mapped to API calls

Section titled “Data subject requests, mapped to API calls”
RequestAction
“What do you hold about me?”GET /v1/verifications/{id} + (if needed) vault artifact retrieval by the operator
“Delete my data”DELETE /v1/verifications/{id}/data — done, retroactively, everywhere
“Correct my details”Reviewer re-examines artifacts and records the correction via the review endpoints (audited)

One disclosure belongs in your privacy notice: document images (not selfies, not biometrics) are sent to the AI provider (Anthropic) for text extraction and tamper inspection under their API data-handling terms. If a deployment must eliminate even that, swap the document model for a self-hosted one — the pipeline interface (extract_document) is the single seam.