⚡ Biometric Consent Withdrawal

step 1 of 3

Operator authentication

Withdrawal is operator-recorded on behalf of the candidate. Paste the legal-tier audit token + your name.

Record withdrawal

The candidate has requested withdrawal of biometric consent. This action sets a 30-day SLA clock for destruction (per consent template v1 §2). The retention sweep + erase runbook handle actual destruction; this endpoint records intent + starts the clock.

What withdrawal does: sets consent.biometric.status = Withdrawn, accelerates retention_until from the 18-month default to 30 days from now. Future photo uploads will be refused (403). General-PII consent is NOT touched — the candidate can keep their non-biometric data on the platform.

✓ Withdrawal recorded

Audit chain row appended; retention sweep will pick it up at the SLA.

State change

Candidate StatusWithdrawn Withdrawn at Retention until

Audit row hmac

What happens next

The retention sweep flags this subject as overdue once retention_until passes. An operator with legal-tier credentials runs the destruction runbook (POST /biometric/subject/<id>/erase) within the 30-day SLA.

To verify the withdrawal landed cleanly:

curl -H "X-Lakehouse-Legal-Token: $TOKEN" http://localhost:3100/audit/subject/<id>
Consent template v1 · Destruction runbook · Phase 1.6 BIPA Gates