Voice OTP

How to Add a Voice OTP Fallback to Your Login (2026)

Step-by-step: add a 'Call me with the code' voice OTP fallback to an SMS login. When to offer it, the API call, the callback handler, code expiry and abuse limits, with cURL and Node examples.

Edesy Team6 min read

Frequently asked questions

When should the voice OTP option appear?

After the SMS has had a fair chance to arrive. A common pattern is to show a 'Call me with the code' button once the resend timer runs out (often 30 to 60 seconds), and to offer it straight away if the user entered a landline number.

Should the voice call read the same code as the SMS?

Either works. Reusing the SMS code is simpler and means either channel's code is accepted. Issuing a new code is stricter; if you do, invalidate the SMS code so only the latest one works.

Do I need an SDK to call the Voice OTP API?

No. It is a single HTTPS POST to https://voice-api.edesy.in/v1/voice-otp/send with a Bearer API key, so any HTTP client works: cURL, fetch, axios, requests or your framework's client.

How do I stop people abusing the call button?

Use three layers: Edesy's per-number hourly rate limit, your own per-user and per-IP limits on the button, and a CAPTCHA or device check before the first call on a new device. Never let the button call a number the user hasn't already entered for SMS.

What if the voice call isn't answered either?

The callback reports no-answer or busy, and the call is not charged. Show the user a clear message, let them retry after a short wait, and point them to support if both channels fail.

What does the fallback cost?

Rs 1.50 per answered minute with a 1-minute minimum, plus 18% GST. You only pay for voice OTPs that were actually answered, and only on logins where the SMS didn't do the job.

Edesy Team

The Edesy engineering team, building voice AI, messaging, and automation products for Indian businesses.

Published

Share

Voice OTPOTPAuthenticationAPIWebhooksHow-To GuidesIndia
Back to blog