Skip to main content

Phone Validations

What is a Phone Validation?​

A Phone Validation is one OTP session for a phone number. Verifik sends a one-time code over SMS or WhatsApp, then you confirm the code the user enters.

Typical lifecycle:

  1. Send — create a Phone Validation and deliver the OTP
  2. Verify — submit the same phone + OTP to mark the session as validated

See the full field list in The Phone Validation Object.

Timing rules​

RuleDefault
OTP valid for10 minutes (expiresAt on the send response)
Resend cooldown~2 minutes between sends for the same phone + gateway (409 otp_recently_sent)
Bypass cooldownManual create with "force": true

Always send and display countryCode with the national phone (e.g. +57 3001234567) so users know which destination received the message.


Choose your integration path​

Pick the path that matches how you call the API.

Path A — Standalone / Smart Tools (no project)​

Use this when you send OTPs from your backend or from Smart Tools → WhatsApp / SMS Messages, without a Smart Enroll or Smart Access project.

StepEndpoint
1. Send OTPPOST /v2/phone-validations/manual
2. Verify OTPPUT /v2/phone-validations
  • No project / projectFlow required
  • Record source is "manual"
  • Charged with metered communication credits after a successful send
  • Optional title (max 15 chars) sets the company name in the WhatsApp/SMS template
Your app Verifik API
──────── ───────────
POST /manual ───────────► OTP sent (SMS / WhatsApp)
status: sent

PUT /phone-validations ─► OTP checked
{ phone, countryCode, otp } status: validated

Path B — Project / App Registration (Smart Enroll & Access)​

Use this when the OTP is part of an enrollment or login flow tied to a project.

StepEndpoint
1. Send OTPPOST /v2/phone-validations/app-registration
2. Verify OTPPUT /v2/phone-validations
  • Requires project / app registration context
  • Record source defaults to "flow"
  • Billing may use Smart Enroll / Smart Access plan counters depending on the flow

API endpoint index​

ActionMethod & pathDocs
Send standalone OTPPOST /v2/phone-validations/manualCreate a Manual Phone Validation
Verify OTPPUT /v2/phone-validationsValidate a Phone Validation
Send OTP in app registrationPOST /v2/phone-validations/app-registrationCreate an App Registration Phone Validation
ListGET /v2/phone-validationsList All Phone Validations
Retrieve oneGET /v2/phone-validations/{id}Retrieve a Phone Validation
SMS & WhatsApp prices—SMS & WhatsApp Prices
Authentication

All endpoints require Authorization: Bearer {YOUR_ACCESS_TOKEN} and Content-Type: application/json.


Status values​

StatusMeaning
sentOTP was delivered (or accepted by the provider)
validatedUser OTP matched
failedExpired, rejected, or send failed
newCreated but not yet successfully sent