Verification
Verafirma verification checks identity in one HTTPS call. POST a verification request, get back a hosted URL the end-user opens to upload their ID and selfie. We return a status webhook when the check completes. $0.10 per verification — pay per call, no minimum, no commitment.
Why pay per call
The incumbents — DocuSign, ID.me, Entrust — bundle ID verification with liability coverage, KYC pipelines, anti-fraud scoring, AML screening, and enterprise compliance reporting. They charge $1-$2/call for the whole bundle. Most developers and agents only need one thing in that bundle: verified ID. Cable-TV pricing, where you pay for sports when all you want is news. Verafirma sells the channel you actually want, at the cost of running it.
When you need the full bundle (regulated KYC, AML scoring, liability transfer), the incumbents are still your answer. When you just need “this person’s ID checked out,” we’re 10-20x cheaper because we’re not making you pay for the bundle.
How it works
curl -X POST https://api.verafirma.com/v1/verifications \
-H "Authorization: Bearer vf_live_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{ "type": "document" }'
Returns 201 with { id, status: "PENDING", hostedUrl, ... }. The end-user opens hostedUrl, uploads their ID and selfie. We POST a webhook to your registered URL when the check completes.
The type field selects depth: document (ID image + checks), liveness (selfie + liveness probe), biometric (full identity binding). Soft-disableable per type via the verafirma.verification.allowed_types tunable.
See the API reference for the full surface.
Authentication
Four options — same as envelope signing:
- API key (
Authorization: Bearer vf_live_...) — sign up via Google or GitHub OAuth, top up your balance via Stripe. - x402 (
PAYMENT-SIGNATUREheader with a signed EIP-3009 USDC authorization) — no signup, no account, pay per call directly. The cleanest path for AI agents. - Wallet JWT (
Authorization: Bearer <jwt>from/v1/auth/verify) — for crypto-native developers building dashboards. - Session cookie (
vf_session) — for browser-based dashboard flows.
Same wallet identity across all four; if you start with x402 and later sign up via OAuth, the dashboard surfaces the same verification history.
Pricing
$0.10 per verification, charged at creation. Refunded on terminal failure (verification.failed) up to verafirma.verification.refund_cap_per_call (default 1). See /pricing for the per-mode breakdown.
When you outgrow us
Verafirma is built to be replaceable. We host battle-tested open-source verification software ourselves on cheap infrastructure and charge you what it costs to run plus a markup. When your volume reaches the point where running it yourself makes sense, ask us — we’ll point you at exactly what we use and how we configured it. No vendor lock-in. No proprietary client SDK you’d have to throw away. The on-the-wire contract is standard HTTPS + x402; you can swap us out without changing client code.