OTP Gateway

OTP SMS API for India — delivered in under 3 seconds

An OTP that arrives late is an abandoned signup. BrookTel routes one-time passwords over DLT-approved transactional paths with sub-3-second delivery and 99.99% uptime, so your login, payment and verification flows do not leak users at the last step.

Why OTP traffic needs its own treatment

OTP is transactional traffic. It is time-critical, it must never be queued behind a promotional campaign, and it is exempt from DND scrubbing precisely because the user asked for it seconds ago.

That only holds if the message is submitted on the right DLT template category. Send an OTP on a promotional template and it gets scrubbed against DND, delayed, or dropped entirely — and your support inbox fills up with "I never got the code".

  • Dedicated transactional routing, never mixed with campaign queues
  • Sub-3-second typical delivery to Indian mobile numbers
  • 99.99% platform uptime
  • Delivery webhooks so your app knows the moment a code lands or fails
  • Per-message failure reasons — not a generic "failed" status

Sending an OTP

One call, one template ID, one variable. Generate and store the code on your side; BrookTel delivers it and reports back.

OTP send — Node.js
const res = await fetch('https://api.brooktel.in/v1/sms/send', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.BROOKTEL_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    to: '+919876543210',
    senderId: 'BRKTEL',
    templateId: '1207xxxxxxxxxxxxx',
    variables: { otp: code },
  }),
});

const { messageId } = await res.json();
// Persist messageId, then match it against the delivery webhook.

Common reasons OTPs do not arrive — and how we surface them

CauseWhat you seeFix
Template variable mismatchRejected before submissionPayload is validated against the approved DLT template
Wrong template categoryDelivered late or scrubbedCategories are explicit per template in the dashboard
Unregistered sender headerBlocked at operatorHeader approval status shown against your account
Invalid or ported numberFailure reason on the webhookNumbers are validated before submission
Handset-level spam filterDelivered, not readKeep sender ID consistent and content transactional

Where teams use it

  • Account signup and login verification
  • Payment and transaction confirmation (2FA)
  • Password and PIN reset flows
  • Delivery-agent and field-staff verification
  • KYC and document-submission verification steps

Frequently asked questions

How fast do OTPs deliver?

Typically under 3 seconds to Indian mobile numbers on transactional DLT routes. Final delivery still depends on the recipient's operator and handset state — a phone with no signal will receive the message when it reconnects.

Do OTP messages go to DND numbers?

Yes. Genuine transactional OTP traffic on the correct DLT template category is exempt from DND scrubbing, because the user explicitly initiated the request. This exemption does not apply if you send OTPs on a promotional template.

Do you generate the OTP code for me?

No, and that is deliberate. You generate and verify the code in your own system so the secret never leaves your control. BrookTel handles delivery and reports the outcome.

What does an OTP SMS cost?

OTP is billed per message from your prepaid BrookTel wallet, at a rate that depends on your monthly volume. The platform subscription is separate. Share your expected monthly volume and we will quote a rate.

Can I send OTPs over WhatsApp instead?

Yes — WhatsApp authentication templates are supported, and many teams run WhatsApp as the primary channel with SMS as the fallback. WhatsApp delivery is billed by Meta directly to your own Meta Business account.

Keep reading