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 pricesSMS & 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