Verifiable parental consent obtained before collecting PI from children under 13
Why it matters
COPPA §312.5 and §312.4 prohibit collecting any personal information from a child under 13 until verifiable parental consent is obtained. 'Verifiable' is the operative word: a checkbox on the child's own signup form is not consent from the parent — it is consent from the child, which COPPA explicitly does not recognize. Creating a user record and storing the child's email and date of birth before the parent has confirmed is a COPPA §312.5 violation from the moment the INSERT executes. The FTC has levied eight-figure fines (FTC v. Google/YouTube, 2019: $170M) specifically for collecting children's data before consent.
Severity rationale
Critical because any personal data stored before parental consent is confirmed constitutes an active COPPA §312.5 violation — the legal exposure exists for every child record created without prior consent.
Remediation
Implement a two-stage flow: Stage 1 stores only a short-lived pending-consent record (not a user account) and emails the parent. Stage 2, triggered by the parent's confirmation link, creates the actual user account.
// Stage 1: app/api/auth/child-signup/route.ts
// Store NOTHING in the users table yet
export async function POST(req: Request) {
const { childEmail, dateOfBirth, parentEmail } = await req.json()
if (computeAge(new Date(dateOfBirth)) >= 13) {
return Response.json({ error: 'Use the standard signup flow.' }, { status: 400 })
}
const token = crypto.randomUUID()
await db.pendingConsentRequest.create({
data: { token, childEmail, parentEmail, dateOfBirth,
expiresAt: new Date(Date.now() + 7 * 24 * 60 * 60 * 1000) }
})
await sendParentConsentEmail({ parentEmail, childEmail, token })
return Response.json({ status: 'awaiting_parental_consent' })
}
The child's account and any personal data are created only after the parent's confirmation link is clicked and a parental_consents record is written.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the COPPA Compliance Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- coppa · §312.5 — Verifiable parental consent — core requirement; no PI collected before consent confirmed
- coppa · §312.4 — Notice to parents — direct notice required as precondition to consent
- cwe · CWE-285 — Improper Authorization — child account data stored before parental consent received
- gdpr · Art. 8 — Conditions applicable to child's consent — parallel requirement for minors under 16
- nist:rev5 · AC-3 — Access Enforcement — account activation gated on out-of-band consent confirmation
Taxons
History
- 2026-04-18·v1.0.0·Initial import from coppa-compliance·automated