Short answer
Keep SMS as the default for most OTPs and alerts. Add a Voice OTP fallback when SMS is delayed or fails, and use OBD or IVR when a spoken prompt or keypad response is clearer than a text notification. SMSTAKE Voice is an HTTPS JSON API at https://api.smstake.com/v1/voice/.
SMS remains the backbone of transactional messaging in India, but delivery can still struggle with coverage, handset issues or peak queues. Voice calls cut through that for high-stakes authentication and attention-critical updates. Product pages: Voice (OBD/IVR). API reference: Voice API.
1. Core voice capabilities
| Capability | What it does | Typical API |
|---|---|---|
| Voice OTP | Calls the user and speaks a verification code with text-to-speech (space digits for clarity) | POST /v1/voice/otp |
| Outbound dialer (OBD) | Places automated outbound calls with a recorded prompt (audio_file_id) or TTS script | POST /v1/voice/call |
| IVR / DTMF | Collects keypad input on the call; your app receives call.dtmf webhooks with digits | Same call APIs + status/DTMF callbacks |
Authenticate with Authorization: Bearer YOUR_API_TOKEN or X-API-Key (not both). Languages for TTS include en, hi, and other regional codes such as te and ta when enabled on the account - see the language table in the Voice API docs.
2. When to use Voice OTP instead of (or after) SMS
A. High-priority authentication failover
If a user does not receive an SMS OTP - weak signal, handset filtering, or a failed DLR - waiting on endless SMS retries increases drop-off at login or checkout.
- Send SMS OTP first (see the OTP SMS guide and SMS API examples).
- Watch delivery reports. If status stays failed / undelivered / rejected, or no final DLR arrives within a timeout you choose (many teams use roughly 30-45 seconds), trigger Voice OTP for the same session.
- Store SMS
ack_idand voicecall_idso support can see which channel succeeded.
B. Accessibility and regional languages
Spoken codes help users who prefer audio or who are more comfortable in Hindi or another regional language. Set language on the Voice OTP request (for example hi, te, ta) when that language is enabled for your account.
3. When to use OBD and IVR
A. Important service and account alerts
Security notices, EMI reminders, appointment confirmations and similar updates often need more attention than a silent SMS banner. An OBD call with an approved recorded prompt or a short TTS script can deliver that urgency. Place calls only to numbers your use case is allowed to reach.
B. Feedback and simple surveys
Instead of hoping users open a web form, an outbound call can ask one question and capture a keypad answer. Your webhook receives call.dtmf with digits (for example press 1 / press 2). Deduplicate on call_id plus event (and digits when relevant).
C. Inbound routing and deflection
Multi-level IVR menus route callers to the right team or play answers to common questions without an agent. Design prompts and menus with the SMSTAKE team during onboarding - see the example flow on the Voice product page.
4. Technical integration overview
Example Voice OTP call (fields match the public docs). Use E.164 numbers such as +919876543210, and space digits in the spoken script:
{
"phone": "+919876543210",
"text_to_speech": "Your verification code is 4 8 2 9 1 3.",
"language": "en",
"callback_url": "https://yourapp.com/webhooks/smstake/voice",
"client_ref": "otp_login_1001"
}
POST https://api.smstake.com/v1/voice/otp
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/json
For recorded OBD prompts, call POST /v1/voice/call with audio_file_id instead of text_to_speech. A successful response includes call_id for webhook correlation. Full curl, Python and Node examples are in the Voice API reference.
Voice and SMS sit on the same SMSTAKE platform but use different auth styles: Voice (and RCS / WhatsApp) use Bearer or API key on /v1/; SMS HTTP APIs use username and password. Do not invent a single shared api_key body field for both.
Need SMS plus Voice OTP fallback?
We can help you design the DLR wait window, prompts and languages for your stack - with free DLT support for SMS templates.
Request a Demo