stile

Age-restricted commerce verification

Document capture, liveness, face match, mDL, and jurisdictional age-tier resolution. Signed webhook returns an eligibility signal.

  • Document Capture
  • Liveness
  • Face Match
  • mDL
  • Age Tier
  • Signed Webhook
verification_session.verifiedverification_session.verified
{  "id": "evt_8x2k4dq3w1m7",  "object": "event",  "type": "verification_session.verified",  "api_version": "2026-01-15",  "data": {    "object": {      "id": "vks_8x2k4dq3w1m7",      "object": "verification_session",      "status": "verified",      "age_tier": "min_age_21",      "jurisdiction": "US-CA",      "completed_at": 1715199912    }  },  "livemode": true,  "pending_webhooks": 1,  "created": 1715199912}

The gap

A self-declared birthdate isn't verification — and the statute knows it.

  1. Self-assertion doesn't satisfy the statute

    TX HB 1181, LA Act 440, and follow-on state laws require verification using government ID or comparable data — a typed birthdate or checkbox doesn't meet that bar and leaves the platform exposed the moment an AG inquiry opens.

  2. Synthesized-credential attempts concentrate here

    Adult-content platforms see the highest rate of synthesized and replayed credential attempts of any regulated-commerce vertical. A soft gate doesn't distinguish a real document from a fabricated one.

  3. An AG inquiry expects a specific artifact

    When a state Attorney General opens a compliance inquiry, the ask is a per-session audit trail tied to a signed verification event — not a database row saying a user checked a box.

Capabilities

Hard age verification for adult-content platforms under active state enforcement

Statute-grade verification

Document scan + liveness + face match — Stile's implementation of the 'reasonable age verification' standard mandated by TX HB 1181, LA Act 440, and follow-on state laws. (The statutes require verification using government ID or transactional data; document + liveness + face match is one valid implementation, not a statutory mandate of the specific stack.) Not a self-declared age gate. The signed webhook is the proof artifact a state Attorney General accepts during a compliance inquiry.

Hard liveness, hard face match

Stricter thresholds than the iGaming or alcohol-DTC defaults. Adult-content platforms face the highest concentration of synthesised credential attempts; Stile tunes the false-acceptance ceiling tighter at the cost of slightly higher false-rejection — operators can adjust per their conversion tolerance.

Retention semantics tuned for AG inquiries

When a state AG initiates a compliance inquiry, the artifact required is the per-session audit trail. Stile's signed webhook + per-session audit pointer is that artifact — operators don't need to retain raw documents to satisfy the inquiry. Retention semantics follow the per-account configuration described on the security page; the audit pointer ↔ verification-result mapping is what Stile holds.

How it works

How statute-compliant age verification flows

Configurable per statute. The steps below are the default for TX HB 1181 and LA Act 440 compliance; other state laws swap in their own thresholds.

  1. Step 01

    1. Mandatory verification gate

    Before access to any age-restricted content, the user is routed through Stile's hosted widget. No bypass for self-declared age; the statute requires verification, not assertion.

  2. Step 02

    2. Document or mDL capture

    State-issued license, ID, or mDL. Selfie captured in the same session for liveness + face match. The user explicitly approves attribute release before any data leaves their device.

  3. Step 03

    3. Server-side verification

    OCR + barcode cross-reference + liveness scoring + face match. Stricter thresholds than other verticals — the false-acceptance ceiling is tuned tight per industry expectation.

  4. Step 04

    4. Eligibility signal + audit pointer

    Signed webhook returns 18+ (or 21+, configurable) eligibility plus a per-session audit pointer. The audit pointer is the artifact a state AG receives during a compliance inquiry; retention semantics follow the per-account configuration described on the security page.

Proof

Every gate leaves a signed verification event.

The state AG's compliance inquiry arrives whenever it arrives. Every completed age-gate already has a signed record waiting — not a self-reported log entry.

signed_eventjson
stile-signature: t=1747193410,v1=9a4d71c3... {  "id": "evt_01HR3FK4S2NXQY6",  "type": "verification_session.verified",  "data": { "object": { "id": "vks_4p9x2m" } }}

Outcome

See the statute-compliant gate for your platform.

Tell us which states your users are in and which statutes apply — we'll map the ruleset.

States with active age-verification statutes

States with enforced or recently-passed adult-content age-verification laws as of mid-2026. Stile's per-state ruleset is configured for each — confirm the current statute citation against the state legislature site at integration time.

States with active age-verification statutes
StateStatuteEffective dateEnforcement mechanism
TexasHB 11812023AG civil action; up to $10,000/violation
LouisianaAct 4402022Civil cause of action by parents
UtahSB 2872023Civil cause of action; statutory damages
ArkansasSB 662023Civil action by parents; $10,000+/violation
MississippiHB 11262024Civil + AG enforcement
MontanaSB 5442024Civil action; statutory damages
VirginiaSB 15152023Civil cause of action
North CarolinaHB 82024Civil action; AG supplemental
IdahoHB 4982024Civil cause of action
IndianaSB 172024AG enforcement; civil penalties

FAQ

Adult-content verification — buyer questions

Stile's age-verification flow returns a signed eligibility signal backed by document scan + liveness + face match — Stile's implementation of the 'reasonable age verification' TX HB 1181 mandates. (The statute requires verification using government-issued ID or commercially reasonable transactional data; document + liveness + face match is one valid implementation, not a statutory mandate of the specific stack.) The signed webhook + per-session audit pointer is the artifact the Texas AG asks for during a compliance inquiry. Final compliance posture is the operator's call (your statute citations + retention policy + legal counsel sign-off), but the verification primitives are statute-grade.

Per session: the signed webhook event, the eligibility decision, and the per-session audit pointer. The audit pointer is the artifact retained, not the underlying credential — see the security page for the per-account retention configuration. If a state AG opens an inquiry, the operator produces the per-session events for the disputed access; Stile holds the audit-pointer ↔ verification-result mapping for the contracted retention window.

Indirectly. Stile returns the eligibility signal (e.g. under-18 with verification of age category). The parental-consent layer is a separate flow the operator implements: typically a parent-portal where a verified-adult consents on the minor's behalf. Stile can power the adult-side verification of the parent-portal handoff; the consent ledger itself is operator-side.

Adult-content platforms see the highest concentration of synthesized-credential and replay attacks. Stile tunes the liveness threshold tighter than other verticals; the false-acceptance ceiling is tighter at the cost of slightly higher false-rejection. Operators can adjust per their conversion-vs-compliance tradeoff. Spoof signals are weighted into the eligibility decision but never exposed to the operator's frontend.

Configurable per operator. A common pattern: enable the verification gate for all US users (operator's policy is uniform across states; some non-active-statute states are likely to pass laws), or scope by IP geo-resolution to active-statute states only. Stile's SDK supports both — the per-state ruleset config drives which sessions trigger verification and which fall through to standard access flows.

Get started

Speak with our team about your statute-compliant age-gate

Tell us which states you operate in, which statutes apply, and what retention policy your legal team has approved. We'll send a configuration recommendation back same-week.

Bring statute-grade age verification to your platform

Walk through your use case and we'll send a configuration recommendation back same-week.

Book demo