The gap
A visual ID check at the counter isn't a compliance record.
Fake and borrowed IDs pass a quick glance
A busy dispensary counter is exactly the environment where a convincing fake or an older sibling's license gets through a manual check. Statutory eligibility for the medical tier compounds the risk further.
Manual review can't catch spoofed liveness
A human checking a face against a photo doesn't catch photo-of-photo or replay tactics. Passive liveness scoring does.
Regulator audits arrive after the transaction
When a state cannabis regulator requests records for a disputed sale, there's nothing to hand over without a signed verification event captured at check-in time.
Capabilities
Age-21 verification for cannabis dispensaries operating in state-legal markets
Age-21 verification with optional medical-card capture
State-issued license or mDL captured in-session. Where the state runs a parallel medical-cannabis program (CA, FL, NY, NJ, others), Stile captures the medical-card image alongside the age document and returns it with the session payload — registry-side patient-record validation remains operator-side, since state OCM/DCC databases vary in their integration availability.
Liveness + face match
Same liveness model as the rest of the regulated-commerce family. Tuned for retail-walk-in flows where the dispensary kiosk or budtender handheld captures the credential. Sub-second result keeps the queue moving.
State purchase-limit signals
Per-state statutory purchase limits (e.g. 1oz flower / 8g concentrate in CA) are enforced by the dispensary's POS. Stile contributes the verified identity assertion downstream POS systems consume to enforce per-day, per-month limits across visits.
How it works
How a dispensary check-in flows
Configurable per state. The default is age-21 verification with optional medical-card image capture for states with parallel programs (registry-side validation is operator-side).
- Step 01
1. Check-in
Customer presents state-issued license or mDL at the dispensary kiosk or budtender handheld. Stile's hosted widget runs in the dispensary POS or a tablet workflow.
- Step 02
2. Capture + verify
OCR + barcode cross-reference for physical credentials; ISO/IEC 18013-5 signature verification for mDL. Selfie capture for liveness + face match. Medical-card image capture if the state has a medical-tier flow — the captured image is returned with the session for the dispensary's records; registry-side patient validation is operator-side.
- Step 03
3. Eligibility signal
Signed webhook returns 21+ eligibility, the issuing state, and an audit pointer. Dispensary unlocks the retail flow; if the state has a medical-tier program, the dispensary's POS layers its own registry check on top of the eligibility signal.
- Step 04
4. Purchase-limit cross-reference (optional)
For states with statutory daily/monthly purchase limits, the dispensary POS uses the verified identity assertion to cross-reference prior purchases. Stile contributes the assertion; the limit-tracking is POS-side.
Proof
Every check-in leaves a signed record.
The regulator's records request for a disputed sale arrives whenever it arrives. Every completed check-in already has a signed verification event waiting.
Outcome
See the check-in flow for your dispensary.
Tell us which states you operate in and whether you run a medical tier — we'll map the ruleset.
Adult-use cannabis states and Stile coverage
States with active adult-use cannabis markets as of mid-2026. Min. age is 21 in every active market. The medical-card column reflects whether the state runs a parallel medical program with a separate eligibility tier.
| State | Adult-use start | Medical program | Stile baseline configuration |
|---|---|---|---|
| California | 2018 | Yes (Prop 215, 1996) | License + liveness; medical card optional capture |
| Colorado | 2014 | Yes | License + liveness; medical card optional capture |
| Washington | 2014 | Yes | License + liveness |
| Oregon | 2015 | Yes | License + liveness |
| Massachusetts | 2018 | Yes | License + liveness; medical card optional capture |
| Illinois | 2020 | Yes | License + liveness; medical card optional capture |
| New Jersey | 2022 | Yes | License + liveness; medical card optional capture |
| New York | 2022 | Yes | License + liveness |
| Michigan | 2019 | Yes | License + liveness; medical card optional capture |
| Nevada | 2017 | Yes | License + liveness |
FAQ
Cannabis retail verification — buyer questions
Stile resolves the credential's issuing jurisdiction and returns it as an attribute. Per-state purchase rules (whether a state restricts to in-state-issued credentials) are configurable in the per-state ruleset. Most states accept any US-issued credential at age-21 verification; CA, NY, and a few others have layered rules — confirm at integration.
Medical-card capture is a second document-scan step within the same Stile session. The card is OCR'd and the registry-issuer is validated where the state publishes a verifiable patient registry. The signed webhook returns both the age-21 eligibility and the medical-tier eligibility as separate attributes; the dispensary POS routes to the medical or adult-use flow based on the released attributes.
Median ~2.5 seconds for a license-only flow on the kiosk hardware. mDL flows are faster (~1.5s) because the wallet handles credential release without document capture. Adding a medical-card scan adds ~2 seconds on top. Most dispensary POS deployments queue 4-6 check-ins ahead; Stile is rarely the bottleneck.
Stile follows the operator's configured retention policy — see the security page for the per-account retention configuration. The federal-illegality concern primarily affects payment processing and banking, not identity verification. Operators in states with active programs are operating under state law; Stile's data-handling follows state law and the operator's compliance posture. Federal banking restrictions are handled by the operator's payment stack, not Stile.
Yes. Delivery verification is a separate flow that runs at order placement (verifies the buyer is 21+ and matches the registered customer) and again at delivery handoff (verifies the recipient matches the order's verified identity). Stile's SDK supports both. State-by-state delivery rules vary — some states require courier-side ID re-check at handoff; others accept a one-time placement verification.
Get started
Speak with our team about your dispensary verification flow
Tell us which states you operate in, your POS stack, and whether you run delivery in addition to in-store. We'll send a configuration recommendation back same-week.
Bring age-21 + medical-tier verification to your dispensary
Walk through your use case and we'll send a configuration recommendation back same-week.
Book demo