Data policy · Zoza Auth

What we store. What we don't. For how long. Full stop.

Zoza Auth is structurally a low-data product: the entire cryptographic protocol is designed so the server sees as little as possible. This page is the honest enumeration — not a 40-page PDF full of "may include" — of every byte we put in a database and how it dies.

What we keep

💼 Identity-adjacent (retained 90 days)

  • app_id — the bank's customer app identifier.
  • user_id — the bank's label for the user, opaque to us.
  • device_id — the bank's label for the device ("iphone_15_pro").
  • device_name — user-facing label for the registered device.
  • public_key — the device's Curve25519 public half.

📓 Operational (retained 90 days)

  • challenge_id, nonce, context, metadata.
  • status: pending / approved / denied / expired.
  • issued_at, expires_at, used_at.
  • Audit rows (see audit policy).

What we don’t

🚫 Never stored, ever

  • The user's private key — it stays in Secure Enclave / Android Keystore.
  • The DH proof — verified once, then garbage-collected.
  • Biometric templates — never reach Zoza; they gate the device's Keystore locally.
  • User phone number, email, Aadhaar, PAN, bank account balance, transaction amount — none of this is in our design.
  • Device location / IP geo — we record submitter_ip for apply-form abuse triage only, not for per-auth operation.

🔒 Kept server-side but never in plaintext

  • Customer bank API key — only SHA-256 hash is stored; raw key shown once at issuance.
  • Customer bank webhook key — same pattern.
  • Customer bank's app server private key — at rest in the Fly volume Postgres, protected by disk encryption at the Fly layer. Roadmap: threshold-split across regions.

Retention ladder

DPDP + RBI alignment

Zoza Auth is designed to fit inside the India DPDP-2023 + RBI SBS-2021 regulatory frame:

Requesting deletion

For end-users: your request must go through your bank, because Zoza is the processor. The bank calls DELETE /v1/devices/{id} on our API. We mark the device inactive immediately; the public key is purged at 30 days; the audit trail rolls off at 90 days.

For customer banks ("right to be forgotten" at the B2B level): email legal@zoza.world or file via zoza-admin. We will offboard within 30 days: disable keys, suspend app, and destroy all device public keys + audit rows older than the 90-day retention. A signed certificate of destruction is provided.