identity verification infrastructure

The Identity Verification & Fraud Prevention API

Add identity infrastructure into your app this afternoon! Verify users in seconds via link or QR code — no app to download. Run biometric liveness checks while retaining zero PII, all with straightforward, usage-based pricing.

Book a demo to see the flow with your team, or start free to create an account and API key in minutes.

Document captureLivenessFace matchmDLAge checksSigned webhooks

How it works

  1. Step 1

    Create a check

    From the dashboard or your backend: share a link, print a QR code, or POST to the API.

    POST /v1/…sessions → 201
  2. Step 2

    User opens the link

    They tap the SMS link or scan the QR code — the flow opens in their browser. Nothing to install.

    sms → stile.id/v/8Kj2mQ
  3. Step 3

    Your user verifies

    Wallet ID or document scan, right on their phone — a full check resolves in about two seconds.

    liveness · face match
  4. Step 4

    You get the signal

    A signed webhook with a clear result plus the audit trail — never the raw identity files.

    stile-signature verified ✓ PASS FAIL

Standards Stile Supports

  • ISO/IEC 18013-5

    Mobile driver's license (mDL)

    The international standard for government IDs on phones

  • W3C VC

    Verifiable Credentials

    Cryptographically signed, tamper-evident identity claims

  • APPLE WALLET

    Wallet credentials

    IDs presented straight from Apple Wallet

  • GOOGLE WALLET

    Wallet credentials

    IDs presented straight from Google Wallet

Apple Wallet is a trademark of Apple Inc. Google Wallet is a trademark of Google LLC. Marks shown to indicate credential compatibility only.

Trigger a check by API, by link, or by QR code.

Run verification at the point of action: from your backend, from tools your team already uses, or from a QR code at pickup.

  • API call: create a verification session, then listen for the signed webhook
  • Share link: text the link to a user, or send it from your CRM, support desk, or order flow
  • QR code: verify in person at pickup, delivery, or entry
Read the quickstart
verification_sessionscreate-check.sh
curl -X POST https://api.stile.id/v1/verification_sessions \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "type": "identity",
    "workflow_id": "wf_payment_change",
    "return_url": "https://you.app/stile/return",
    "metadata": { "trigger": "payment_details_changed" }
  }'

# → 201 — now listen for the signed webhook on your endpoint

Runtime and security posture

Every check runs on infrastructure your security team already trusts. Raw ID data is deleted on completion by default — the signed result is what your audit trail keeps.

  • Microsoft Azure

    Face liveness & document AI

  • AWS

    Face match & encrypted storage

  • Vercel

    Edge hosting & delivery

  • Fly.io

    API & worker runtime

  • Neon

    Serverless Postgres

  • Stripe

    Usage-based billing

  • Cloudflare

    Bot defense

  • Twilio

    SMS link delivery

TLS 1.3 in transitAES-256 at restGDPR ReadyWCAG 2.2 AASOC 2 — program underway

Privacy PolicyData Processing AddendumSecurity

Create a check, send a link, watch it resolve.

Drag checks into a custom workflow — no code, just reorder the steps. Set jurisdiction rules, generate links or QR codes, and watch sessions resolve. Export the audit trail when compliance asks. Every account gets the same dashboard.

Start free

Create an account · API key in minutes

Simulated dashboard preview with demo data — not live verification activity.

dashboard.stile.id

Drag to reorder — checks run in this order. Your users still see one guided flow.

  • 1Document scan
  • 2Liveness
  • 3Face match
  • 4Age rule (21+)

workflow: document → liveness → face_match → age_21 · jurisdiction: auto

Live sessions

Passed

128

In review

3

Failed

9

SessionTriggerResult
vs_94Hdpickup1.4s PASS
vs_93Zqpayment changePENDING
vs_93Yxage-restricted2.1s PASS
vs_93Tkvendor rep FAIL
audit trailwebhooks

14:02:42 vs_94Hd PASS · 1.4s · webhook ✓

14:02:39 vs_93Tk FAIL · face 0.41 · review

In-house verification is easy to start — and expensive to own.

Document formats, wallet integrations, fraud patterns, audit requirements, and state rules become ongoing maintenance. Stile keeps that layer current so your teams can stay on roadmap.

  • Document formats change, and wallet providers ship updates
  • Fraud patterns evolve, and liveness models need retraining
  • State and national rules shift, and audit evidence has to keep up
audit_trail · vs_94Hd…

14:02:11 session.created US-CA · pickup

14:02:39 document.captured CA driver license

14:02:41 liveness.passed score 0.98

14:02:42 face_match.passed score 0.97

14:02:42 session.pass webhook delivered ✓

DataRetention
Source imagesdelete-on-completion (default)
Biometric templatesdelete-on-completion (default)
Pass/fail signalretained: your audit record

Pricing

Public pricing. No minimums. No sales call required.

Pay per completed check, only for what you use: built for high-frequency workflows, so cost per check stays predictable.

Free

$0

100 full checks every month, forever

  • Every check type included
  • Sandbox + production keys
  • No credit card required
Start free

Most flexible

Pay as you go

~$0.38

per full check, no monthly base

Full check (ID + biometric + age + liveness)~$0.38
Or pick components, from~$0.05

ID document ~$0.23 / Biometric face match ~$0.10 / Age check ~$0.10 / Liveness ~$0.05

Bundle saves 21% vs components. Volume discounts auto-apply. Pay only for completed checks

Start free

Enterprise

Custom

SLA, data residency, dedicated support

  • Committed-volume rates
  • Custom retention & DPA
  • Solution engineering
Book demo

Start free. First test webhook in minutes.

The docs and pricing are public: no minimums, no sales call required. Book a demo if you want a walkthrough first.

Common questions

Identity and age. Users verify with a digital ID from a wallet (mDL, ISO/IEC 18013-5) or by scanning a physical document, with liveness and face match. You get a signed pass/fail and an audit trail — never the raw identity files.