# Verification

_Verify identity in one HTTPS call. $0.10 per check. Pay per use; no subscriptions._

_Last updated: 2026-05-14_

---

# 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

```sh
curl -X POST https://api.verafirma.com/v1/verifications \
  -H "Authorization: Bearer vf_live_..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '[component]'
```

Returns `201` with `[component]`. 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](/api-reference#tag/Verification) 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-SIGNATURE` header 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`](/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.
