Verify

Create, confirm, cancel and query verifications

The TextCall Verify API enables you to verify the identity of your users through a one-time passcode (OTP) delivered over their preferred channel. It handles the full verification lifecycle from sending the OTP to confirming the code entered by the user, so you can add phone verification to your product without building the delivery, retry, or exp

How it works

  1. Create a verification: Your backend calls the Verify API with the recipient's phone number and preferred channel. TextCall generates a secure OTP and dispatches it to the user.
  2. User submits the code: The user enters the OTP in your application.
  3. Confirm the verification: Your backend calls the Confirm endpoint with the code. TextCall validates it and returns the verification outcome.

Custom code support

In addition to TextCall-generated OTPs, the Verify API supports a custom code, giving you full control over both code generation and validation.

There are two distinct flows:

TextCall-managed verification (default)
TextCall generates a cryptographically secure OTP, delivers it to the user, and validates the code when you call the Confirm endpoint. No code logic is required on your side.

Customer-managed verification (BYOC)
You generate the code on your own system and pass it to TextCall via the custom_code parameter when creating the verification. TextCall delivers it to the user exactly as supplied. Validation is performed entirely on your side.

Supported channels

ChannelDescription
SMSVerification message delivered as an SMS to the user's mobile number.
WhatsAppVerification message delivered as a WhatsApp message to the user's mobile number.
TelegramVerification message delivered via Telegram to the user's mobile number.
ViberVerification message delivered as a Viber message to the user's mobile number.
VoiceVerification message text-to-speech delivered as a voice call

Cascading: You can configure a fallback channel sequence (e.g., WhatsApp → SMS → Voice). If delivery fails on the primary channel, TextCall automatically attempts the next channel in the cascade, maximising delivery rates without any additional logic on your side.

Common use cases

  • User registration: Confirm a phone number before activating a new account.
  • Two-factor authentication (2FA): Add a second factor to your login flow.
  • Transaction confirmation: Verify user intent before processing sensitive actions such as payments or account changes.
  • Password reset: Confirm ownership of a phone number before allowing a credential reset.