Changelog
Verifa uses date-based API versioning. Breaking changes are released as new dated versions. Non-breaking changes (new fields, new endpoints, new webhook events) ship continuously and are available on all versions.
See Versioning for how to pin your API version.
2026-05-21 — MCP server
Verifa now speaks the Model Context Protocol
at https://api.withverifa.com/mcp. AI agents (Claude Code, Cursor,
Claude Desktop, the Anthropic API MCP connector) can call 45 structured
tools against your account without LLM-generated cURL. See the
MCP Server integration guide for the full surface.
New endpoints
POST /mcp— Streamable HTTP MCP transport. Bearer-authenticated by existing API keys. Supports?toolsets=…filter and?read_only=trueflag at connect time.GET /.well-known/oauth-protected-resource— RFC 9728 protected resource metadata. Currently advertises Bearer-only (emptyauthorization_serverslist); future OAuth support will populate it.
New audit-log query
GET /api/v1/events?action_prefix=mcp—action_prefixis a new query param on the events endpoint; matchesaction LIKE 'prefix.%'so callers can scope to one source. Pair withmcpto surface only MCP tool calls. Both the model layer and dashboard “MCP only” filter use it.
New scope
redact:write— required for the five destructive MCP tools (redact session / identity / bulk / blocklist-entry / link-revoke) and the matching REST GDPR Art. 17 endpoints. Never granted by default, never available on publishable keys; manage on a per-key basis in the dashboard’s Developers → API Keys page.
New rate-limit bucket
- MCP requests get a 120 requests / minute per API key bucket separate from the REST quota — a runaway agent on one key cannot starve the REST budget your integration depends on. Destructive MCP operations are throttled by a second bucket on top: 5 ops / hour per key.
Dashboard
- New Integrations → AI / MCP page (URL builder + per-client config snippets).
- Audit log gains an MCP only filter button.
- API-key edit modal: new Destructive scope group with danger styling + a warning callout when enabled.
2026-04-17 — Pre-launch hardening release
New endpoints
DELETE /api/v1/screening-subjects/{subject_id}/data— GDPR Art. 17 erasure for a screening subjectDELETE /api/v1/me/account— Permanent erasure of the authenticated dashboard user’s account (Art. 17)GET /api/v1/sessions/{session_id}/export— GDPR Art. 15 data subject access exportGET /api/v1/identities/{identity_id}/export— Same, aggregated across every session linked to an identityPOST /api/v1/auth/refresh— Refresh the dashboard session cookie
Webhook changes
- Signature format: outbound webhooks now use Stripe-style
X-Verifa-Signature: t=<unix_ts>,v1=<hex_hmac>. Update your verifier per the new tutorial. Legacy bare-hex format remains accepted during a deprecation window so in-flight deliveries continue to verify. - Per-endpoint signing secret is now the source of truth (the
whsec_*returned at endpoint creation/rotation). The legacy org-level webhook secret is the fallback only. - New event:
consortium.match_found— fired when face matching detects the same identity across orgs in the Verifa Network. identity.flaggedpayload: removedflagged_byandflag_reason(privacy hardening); addedhas_reason: bool.
Behavior changes
- Cross-environment isolation: live API keys can no longer read sandbox sessions/identities/workflows and vice versa. Requests with mismatched env return 404. If you were using a live key against sandbox IDs by mistake, you’ll start seeing 404s.
X-Request-Idheader is echoed on every API response. PassX-Request-Idon inbound requests to correlate logs end-to-end.- Vendor name scrubbing:
verification_check.details.providersnow uses sanitized labels (e.g."aml_screening") instead of raw vendor names like"complyadvantage". The session verifications API never returns vendor names directly anymore. - Field length limits: request bodies for sessions, cases, identities, screening enforce
maxLengthon string fields,maxItemson lists, and a 16 KB cap onmetadatadicts. Oversized inputs return422 Validation Error.
Operational
- AML enhanced add-on now requires an annual billing plan with a minimum $5,000 annual contract value (per ComplyAdvantage commercial terms). Existing active addons are grandfathered.
- SAML IdP-initiated sign-in is opt-in per organization (default off). Contact support to enable for orgs using Okta/Azure tile launch.
- Free-plan-expired orgs now blocked at the API layer with a clear 403. Previously only the IDV quota path enforced this.
Internal hardening (not customer-visible)
- Webhook delivery: per-endpoint atomic claim eliminates duplicate dispatches; retry storm capped to 5 attempts.
- Vendor circuit breakers around ComplyAdvantage, MicroBilt, IPQS, TeleSign, Smarty, KYC service.
- Sentry: PII scrubber attached to before_send so emails/SSN/phone/card numbers/JWT/API keys never reach Sentry events.
- JSON-formatted logs (LOG_FORMAT=json) for structured log shipping.
- New
/health/fulldeep-dependency probe (gated byX-Metrics-Tokenheader).
2026-01-01 (current)
Initial public API version.
- Session lifecycle: create, retrieve, list, expire, redact
- Document OCR extraction
- Face match with configurable security levels
- Workflow engine with DAG-based execution
- Webhook delivery with HMAC-SHA256 signatures
- Key inflection support (kebab-case, camelCase, snake_case)
- Idempotency for POST requests
- Sandbox environment with simulated results
- Basic watchlist screening (OFAC, EU, UN, UK sanctions)
- Enhanced AML screening with continuous monitoring
- Risk assessment with 150+ fraud signals
- Duplicate detection across sessions
- Standalone checks API (
POST /api/v1/checks,POST /api/v1/checks/full) - Email risk enhanced and phone risk enhanced checks
- Address validation check
- Custom lists API (allow/block/flag lists)
- PDF report generation for screening checks
- GDPR redaction endpoint for checks
- Identity cross-reference check (
identity_crossref) - Proof of address check (
proof_of_address_check) - Case templates and custom fields APIs
- SCIM 2.0 provisioning
- API log retrieval and analytics endpoints
- Cursor-based pagination for identity listing
- Rate limit headers on all responses
Non-breaking changes
These changes ship continuously and are available without a version upgrade.
April 2026
Standalone Documents & AI Extraction
New top-level Documents area in the dashboard. Upload documents, classify them automatically, extract structured fields, and run verification checks. Custom document types with extraction hints. Server-side PDF preview rendering. All extraction runs on Verifa’s private infrastructure — document data is never sent to third-party services.
- Dashboard Documents page (list, detail, and upload)
- Automatic classification against system and custom document types
- Structured field extraction with per-field confidence scores
- Recency checks via document groups
- PDF page preview with page navigation
GET /documentsnow supportsstandalone=trueand excludes redacted documents by default- New
GET /documents/{id}/previewendpoint for server-side page rendering - Example “Health Insurance Card” document type seeded for new organizations
March 2026
- NFC chip authentication check (
nfc_chip_auth) - Mobile SDK endpoints (
/api/v1/sdk/config,/api/v1/sdk/nfc,/api/v1/sdk/attest) - Device attestation for iOS and Android
- Video-based liveness detection
- Deepfake detection signal
- Mobile-specific fraud signals (root/jailbreak, emulator, screen recording)
- TOTP two-factor authentication for dashboard users
February 2026
- Case escalation workflows with SLA tracking
- Second-reviewer support for cases
- Org-level feature overrides
- Data retention policies with configurable periods
- Webhook retry improvements (exponential backoff, 7 retries)
January 2026
- Initial release
- Dashboard with HTMX-based UI
- Admin portal for platform management
- RBAC with 6 admin roles and 5 org roles
- Sandbox mode with all features unlocked
Upcoming
We publish planned changes here before they ship.
- Client libraries — Official Python, TypeScript, Go, and Java SDKs (auto-generated from the OpenAPI spec)
- GraphQL-style field selection — Request only the fields you need with a
fieldsquery parameter
Related
- Versioning — How to set and manage your API version
- Webhooks — Subscribe to API change notifications
- Errors — Error codes including version-related responses