How-to

Gate children (§9)

§9(3) absolutely bars tracking, behavioural monitoring and targeted ads at children — and even verifiable parental consent cannot cure it. NoIdMe's gate is fail-closed: a restricted purpose clears only for a verified adult; a self-declared "adult" is treated as a child.

1. Verify adulthood (server-trusted)

Record a verdict via the pluggable age-verifier seam. The suite ships a reference verifier today; the DigiLocker/UIDAI adapter is on the roadmap. The verdict overrides any client claim regardless of which verifier you plug in.

verify adult
curl -X POST $API/v1/age/verify -H "authorization: Bearer sk_live_…" \
  -d '{"principalId":"user-123","method":"digilocker","evidence":{"dateOfBirth":"1996-04-02"}}'
# → { "ageBand":"adult", "ageAssurance":"verified" }
The method field is forwarded to the configured verifier adapter. The reference verifier accepts the payload; real trust requires a production DigiLocker/UIDAI adapter (roadmap).

2. Verifiable parental consent (for a child)

The guardian must be a verified adult; the child is then recorded as parent-attested with a §9(1) proof.

parental
curl -X POST $API/v1/age/parental-consent -H "authorization: Bearer sk_live_…" \
  -d '{"childPrincipalId":"kid-1","guardianPrincipalId":"parent-1",
       "method":"digilocker","evidence":{"assertAdult":true}}'

3. Capture — the gate enforces itself

On capture, restricted purposes are dropped for children (returned in blocked); ordinary purposes are recorded under parent-attested. A child capture with no parental proof is rejected 422 parental-consent-required.

A client that lies (claims adult/verified in the request body) is overridden by the stored verdict — so §9(3) is enforced server-side, not on the honor system.