For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
  • Getting Started
    • Introduction
    • How Verifa Works
    • Quickstart
    • Choosing an Integration Method
  • Use Cases
    • KYC Onboarding
    • Age Verification
    • AML Compliance
    • Fraud Prevention
    • Marketplace Trust & Safety
  • Core Concepts
    • Overview
    • Sessions
    • Verifications & Checks
    • Workflows
    • Identities
    • Cases
    • Screening & Reports
    • Lists
  • Integration Guides
    • Overview
    • JavaScript SDK
    • Web Capture Flow
    • API-Only Integration
    • Mobile SDK
    • Webhooks Guide
    • MCP Server
    • Migrating from Persona
  • API Details
    • Overview
    • Authentication
    • Pagination
    • Rate Limiting
    • Versioning
    • Errors
    • Webhooks
    • Idempotency
    • Key Inflection
    • Data Access
    • Data Retention
  • Tutorials
    • Creating Your First Verification Session
    • Creating a Workflow
    • Receiving Webhooks & Validating Signatures
    • Handling Webhook Events
    • Custom Document Types & AI Extraction
  • Best Practices
    • Testing
    • Preventing Duplicates
    • Fraud Signals
    • Changelog
  • API Reference
      • GETList sessions
      • POSTCreate a verification session
      • GETGet a session
      • PATCHUpdate a session
      • POSTResume a session
      • POSTResend the invitation email
      • POSTExpire a session
      • POSTSimulate a session action (sandbox only)
      • GETGet session result
      • DELRedact session data
      • GETExport session data (GDPR Art. 15 DSAR)
      • POSTBulk redact sessions
      • POSTSubmit a session for verification
      • POSTAdd a tag to a session
      • POSTRemove a tag from a session
      • POSTReplace all tags on a session
      • POSTGenerate a one-time verification link
      • GETList one-time links for a session
      • GETList verification checks
      • POSTRetry a failed verification check
      • GETList verification attempts
      • GETGenerate PDF verification report
      • POSTSubmit external gate decision
      • POSTReprocess a session
      • GETList webhook deliveries for a session
      • GETGet session risk assessment
API ReferenceSessions

Generate a one-time verification link

POST
https://devapi.withverifa.com/api/v1/sessions/:session_id/generate-one-time-link
POST
/api/v1/sessions/:session_id/generate-one-time-link
$curl -X POST https://devapi.withverifa.com/api/v1/sessions/session_id/generate-one-time-link \
> -H "X-API-Key: <apiKey>" \
> -H "Content-Type: application/json" \
> -d '{}'
1{
2 "id": "slk_abc123",
3 "session_id": "ses_abc123",
4 "capture_url": "string",
5 "status": "pending",
6 "expires_at": "2024-01-15T09:30:00Z",
7 "created_at": "2024-01-15T09:30:00Z",
8 "qr_code_data_url": "string"
9}
Creates a single-use verification URL for the session. Any previously active link is automatically revoked. The returned `capture_url` can be sent to the end-user via email, SMS, or embedded in your application. Once visited, the link is consumed and cannot be reused. Generate a new link if the user needs another attempt. Sessions that are `completed`, `failed`, or redacted cannot have links generated.
Was this page helpful?
Previous

List one-time links for a session

Next
Built with

Creates a single-use verification URL for the session. Any previously active link is automatically revoked.

The returned capture_url can be sent to the end-user via email, SMS, or embedded in your application. Once visited, the link is consumed and cannot be reused. Generate a new link if the user needs another attempt.

Sessions that are completed, failed, or redacted cannot have links generated.

Authentication

X-API-Keystring

Organization API key. Keys are prefixed with vk_live_ (production) or vk_sandbox_ (sandbox).

Path parameters

session_idstringRequired

Session ID (ses_*).

Headers

Verifa-VersiondateOptional

API version date string (e.g. 2026-02-01). If omitted, the version pinned to your API key is used.

Key-InflectionenumOptionalDefaults to snake

Response key casing. Defaults to snake.

Allowed values:
Idempotency-KeystringOptional<=255 characters

Unique key for idempotent requests. Cached for 24 hours. Sending the same key with different parameters returns 422.

Request

This endpoint expects an object.
expires_in_minutesinteger or nullOptional
Custom expiry in minutes. Defaults to the platform session expiry.

Response

One-time link created.

idstring
Public ID of the session link.
session_idstring
Public ID of the parent session.
capture_urlstringformat: "uri"

One-time verification URL to send to the end-user.

statusenum
Current status of the link.
Allowed values:
expires_atdatetime
When this link expires.
created_atdatetime
When this link was created.
qr_code_data_urlstring or null

Base64-encoded QR code image pointing to the capture URL.

Errors

400
Bad Request Error
401
Unauthorized Error
404
Not Found Error
422
Unprocessable Entity Error