Verify API
Send and check OTP verification codes via SMS, WhatsApp, or Email Base path:/api/v1/verify
Endpoint count: 16
Consume a magic-link token
GET /api/v1/public/verify/magic-link/consumeList verifications
GET /api/v1/verify/Get verification
GET /api/v1/verify/{id}string
required
—
Get verification detail
GET /api/v1/verify/{id}/detailstring
required
—
Verification analytics
GET /api/v1/verify/analyticsVerify Fraud Shield conversion anomaly
GET /api/v1/verify/conversion-anomalywindow_days query (1-90, default 30).
Cancel verification
POST /api/v1/verify/{id}/cancelstring
required
—
Resend verification
POST /api/v1/verify/{id}/resendstring
required
—
Send bulk verifications
POST /api/v1/verify/bulkCheck a verification code
POST /api/v1/verify/checkstring
required
ID returned from the send step. Format is
vrf_<hex> (per generateId('verification')); NOT a bare UUID — paired with the matching loosening on profile_id to prevent the same format: uuid mismatch (DEVOTEL-ORBIT-28 family).string
required
Verification code entered by the user
Create backup-code factor
POST /api/v1/verify/factors/backup-codesstring
required
Identifier for the end user these backup codes belong to, such as their email or username. Required, 1 to 200 characters.
string
Optional label stored with the factor for display in your own factor-management UI. Up to 200 characters.
Verify backup code
POST /api/v1/verify/factors/backup-codes/{id}/verifyremaining_count so the FE can prompt regeneration when the user is low on codes.
string
required
—
Create TOTP factor
POST /api/v1/verify/factors/totpstring
required
Identifier for the end user this authenticator factor belongs to, such as their email or username. It is written into the otpauth:// URI and shown beside the generated code in the user’s authenticator app. Required, 1 to 200 characters.
string
Optional label stored with the factor for display in your own factor-management UI. Up to 200 characters.
Regenerate TOTP recovery codes
POST /api/v1/verify/factors/totp/{id}/recovery-codes/regeneratestring
required
—
Verify TOTP code
POST /api/v1/verify/factors/totp/{id}/verifystring
required
—
Send a verification code
POST /api/v1/verify/sendstring
required
Recipient (E.164 phone or email)
string
default:"sms"
Delivery channel for the OTP. Optional — when omitted it defaults to
sms.Accepts any value in the canonical set: sms, whatsapp, email, voice, viber, telegram, rcs, silent, flashcall, sna, totp, push, magic_link, backup_code.The first seven are direct delivery channels. The remaining values are additional factor channels: some are not OTP-delivery channels and will return a structured error steering you to the dedicated factor endpoints (for example totp, push, magic_link, and backup_code), and provider-dependent channels such as sna and flashcall return a 503 when no capable provider is wired.string (enum: sms|whatsapp|email|voice|viber|telegram|…)[]
Optional ad-hoc fallback channel chain (overlays the send when no
profile_id is set)object
Optional async fallback engine config (pairs with
channels)integer
Max verification attempts
string
Optional verification profile ID. Format is
vprof_<hex> (per generateId("vprof")); NOT a bare UUID — the prior format: uuid constraint here was the root cause of DEVOTEL-ORBIT-28 (27 events in 11 days) where every FE call with a real profile id 422’d before reaching the Zod parse.string
Optional ISO 3166-1 alpha-2 country hint (e.g.
TR) so national-format phone numbers normalise to the E.164 form OTP providers require. Not needed for clean E.164 input.integer
Number of digits in the generated OTP (defaults to 6). Must equal
custom_code length when a custom code is supplied.object
Optional PSD2 SCA dynamic-linking binding. Replay the SAME object on
POST /verify/check; a mismatch rejects with BINDING_MISMATCH. Omit for non-PSD2 flows.string (enum: en|es|fr|de|it|pt|…)
Optional 2-letter language code selecting the localized voice TTS and SMS body for the built-in fallback message. Profile-defined templates override it. Region tags (e.g.
es-MX) are rejected — use es.string
Optional caller-supplied OTP (4–8 digits, digits only) for sandbox / test-mode QA. Rejected on live keys. Its length must equal
code_length.string
Device-bound network access token for the
sna channel (Silent Network Authentication), obtained via the GSMA Open Gateway / CAMARA flow. When present on an sna send, verification completes via a network possession-proof and no OTP is minted.