Consent request (public)
What the dependent sees: who is asking, what will be accessed, the statement to read. Records that the link was opened. Limits: RATE_CONSENT_READ_PER_LINK / _PER_IP (default 120 and 600 per 10 min), shared with Minha proteção.
token*stringthe opaque token from the link
16 <= length <= 4096The request
application/json- response
success*truetruedata*curl -X GET 'http://localhost:3000/consent-requests/stringstringstri'{ "success": true, "data": { "status": "pending", "guardianName": "string", "familyName": "string", "kind": "minor", "relationship": "child", "dependent": { "name": "string", "documentMasked": "string" }, "phrase": "string", "phraseVersion": "string", "termsVersion": "string", "scope": [ "string" ], "expiresAt": "2019-08-24T14:15:22Z", "protection": { "status": "not_started", "pausedUntil": "2019-08-24T14:15:22Z" }, "privacy": { "evidenceRetentionDays": 0, "verifier": "provider", "providerName": "string" } }}Answer the code shown on the phone POST
WhatsApp sometimes puts a number on the dependent's phone and links the device only once someone says it matches. Nothing else moves the pairing past that point. `matches: false` ends the pairing as `passkey_refused` — the numbers differ only when another device is being linked. Owner only.
Submit consent evidence (public) POST
multipart/form-data: `selfie` (image/jpeg|png|webp, ≤8 MB), `audio` (audio/webm|mp4|ogg|mpeg|wav — video/webm is accepted for webm containers, ≤20 MB), `accepted` = "true", optional `audioDurationMs`. The selfie must show exactly one face and the audio must match the frozen statement (verified synchronously); only then are both stored and the request turned `given`. Limits: RATE_EVIDENCE_PER_LINK (default 10 per hour) and RATE_EVIDENCE_PER_IP (default 30 per hour).
