An SMS gateway is the system that takes messages from a business’s software and hands them to mobile operators for delivery; an SMS API is the interface a developer calls to send through that gateway. Your app never talks to Airtel, Jio or Vi directly. It calls the API, and the gateway does the rest: it checks the message, routes it to an operator and brings the delivery status back.
In India every one of those messages also passes TRAI’s DLT checks on the way, so this guide covers the technology and the rules together.
What is an SMS gateway and an SMS API?
An SMS gateway delivers business SMS from software to mobile networks, and an SMS API is how your app sends through it. UDO provides both, on a DLT-compliant platform that bills only for delivered messages.
Your app → SMS API → SMS gateway → DLT scrutiny → operator → handset → delivery report back to your app
- API request: your app sends the recipient’s number, a registered header and the message text to the SMS API.
- Gateway checks: the gateway authenticates the request, counts the SMS parts and queues the message on a route to an operator.
- DLT scrutiny: the operator matches the header and text to templates registered on DLT and checks every link against your whitelist.
- Operator delivery: the operator’s network delivers the SMS to the handset, retrying if the phone is off.
- Delivery report: the delivery status comes back to your app by webhook, or when you poll the API.
- 11 characters: the longest a registered SMS header can be in India.
- 4 suffixes: -P, -S, -T and -G mark promotional, service, transactional and government SMS.
- 30 minutes: a transactional SMS, such as an OTP, must be sent within 30 minutes of the customer’s transaction.
- 90 days: headers and content templates left unused for 90 days are deactivated automatically.
- 2 telemarketers: the most allowed between a sender and the operator, so every message stays traceable.
- 160 or 70 characters: one SMS in GSM-7 or in Unicode; longer messages split into parts of 153 or 67.
Sources: TRAI, Second Amendment Regulations, 2025 (first five figures); 3GPP TS 23.038 (character sets).
What is the difference between an SMS gateway and an SMS API?
The SMS gateway is the delivery infrastructure — operator connections, routing, queues and delivery reports — while the SMS API is one way into it, the interface your code calls to send a message and read its status.
A gateway usually has more than one way in. Developers use the API; a marketing team uses a web panel to upload a contact list and send a campaign; aggregators and very large senders may connect over SMPP. All three reach the same gateway and the same operators.
- SMS gateway: the platform connected to mobile operators that routes, queues and tracks every message.
- SMS API: the programmable interface to the gateway, also called an SMS messaging API — usually an HTTP (REST) API that accepts JSON.
- Web panel: the dashboard for sending campaigns and reading reports without writing code.
- SMPP: a telecom protocol that keeps a connection open to the gateway, used for very high sustained volume.
How does an SMS gateway send a message in India?
An SMS gateway sends a message in India in five stages — API request, gateway checks, DLT scrutiny, operator delivery and delivery report — and a message can fail at any one of them for a different reason.
| Stage | What happens | Why it fails here |
|---|---|---|
| API request | Your app sends an HTTPS request with your API key, the recipient’s number, the registered header and the message text | Wrong API key, a badly formatted number, or text that does not match any registered template |
| Gateway checks | The gateway authenticates the request, counts the SMS parts, checks your balance and queues the message on a route | No balance left, or a route that is down with no failover to another operator |
| DLT scrutiny | The operator matches the header and text to your DLT templates, checks the recipient’s preferences for promotional SMS and checks links against your whitelist | An unregistered or inactive template, promotional text on a service template, or a link you have not whitelisted |
| Operator delivery | The operator’s network delivers the SMS to the handset and retries for a period if the phone is off or out of coverage | The phone stays off past the retry period, or the number is no longer active |
| Delivery report | The operator’s delivery status returns through the gateway to your app, by webhook or when you poll the API | Your webhook URL is unreachable, so your system never records the result |
“Sent” in an API response means the gateway accepted the request. Only the delivery report tells you the message reached the phone.
Every message must also stay traceable from sender to recipient. TRAI’s rules allow no more than two telemarketers between a business and the operator — one that aggregates traffic and one that delivers it — so an SMS gateway provider should be able to tell you exactly who sits in your chain.
Most messages that “send but never arrive” fail at the DLT stage, not the network stage. Our guide to improving SMS delivery rates covers the fixes in detail.
What do you need before an SMS API can send in India?
Before an SMS API can send in India you need four things registered on an operator’s DLT platform: your business as a sender, your headers, your message templates, and every link or callback number you plan to put in a message.
TRAI’s regulations allow commercial communication only from registered senders and headers, and a sender that is not registered can have all its telecom resources suspended or disconnected.
- Sender registration. The business registers as a principal entity; TRAI’s rules require physical verification of the entity and biometric authentication of its authorised person.
- Headers. The sender name recipients see, up to 11 alphanumeric characters, with a suffix that shows the message type: -P promotional, -S service, -T transactional, -G government. Headers left unused for 90 days are deactivated until you ask for them back.
- Content templates. Fixed text with variables for the parts that change, such as a name or an OTP. One template can be linked to only one header, more than three variables needs a justification, and templates left unused for 90 days are deactivated.
- Whitelisted links and numbers. Messages containing URLs, APKs, OTT links or callback numbers are checked against the whitelist the sender has uploaded, along with an undertaking that the links are not malicious.
| Type | Header suffix | What it is for | Who receives it |
|---|---|---|---|
| Transactional | -T | A reply to a transaction the customer started, sent within 30 minutes: OTPs, transaction alerts and confirmations, refund information | Any customer; no explicit consent needed |
| Service | -S | Information about a product or service the customer uses, such as delivery updates, warranty or balance alerts | Your customers; messages that help complete an ongoing purchase need explicit consent |
| Promotional | -P | Offers and advertising; must include an opt-out, and any message that mixes in promotion counts as promotional | People who have not blocked that category, or who have given consent |
| Government | -G | Messages sent on the directions of government | All subscribers, including those who have fully blocked commercial messages |
Source: TRAI, Telecom Commercial Communications Customer Preference (Second Amendment) Regulations, 2025, dated 12 February 2025.
For the registration steps themselves, see DLT registration in India, explained and how to get a DLT template ID.
How do you get an SMS API in India?
You get an SMS API in India in six steps: register your business on DLT, register your headers, register your templates and links, choose an SMS gateway provider, test the integration in its sandbox, and go live with a small paid pilot.
- Register your business on an operator’s DLT platform.You register as a principal entity; verification of the business and its authorised person is part of the process.
- Register your headers.Up to 11 characters each, for the types of message you plan to send.
- Register content templates and whitelist your links.Every URL, app link and callback number in a message must be on your whitelist.
- Choose an SMS gateway provider and get an API key.Use the six checks in the provider section below.
- Build and test in the provider’s sandbox.Include your webhook, so delivery reports reach your own systems from day one.
- Go live with a small paid pilot.Send real messages to a sample of customers and compare the delivery reports with your own records.
Should you use an HTTP SMS API or SMPP?
Use an HTTP SMS API if you are sending from an app, website, CRM or OTP flow, and consider SMPP only if you are an aggregator or reseller moving very high volume through a connection that stays open.
| HTTP (REST) SMS API | SMPP | |
|---|---|---|
| How it connects | One HTTPS request per message or batch | A connection to the gateway (a “bind”) that stays open |
| Data format | JSON or form fields | Binary protocol messages |
| Setting up | An API key and a few lines of code in any language | An SMPP client, connection credentials and more testing |
| Delivery reports | Sent to your webhook URL, or read by polling | Returned over the same open connection |
| Best for | Apps, websites, CRMs and OTP flows | Aggregators, resellers and very high sustained volume |
How many characters fit in one SMS?
One SMS holds 160 characters in the standard GSM-7 alphabet or 70 characters in Unicode, and a longer message is split into parts of 153 or 67 characters that the phone joins back together.
SMS parts = characters ÷ 153, rounded up (÷ 67 for Unicode) — once a message is longer than 160 characters (70 for Unicode)
- A 150-character English message: 1 part.
- A 200-character English message: 200 ÷ 153 = 1.3, so 2 parts.
- A 100-character Hindi message: 100 ÷ 67 = 1.5, so 2 parts.
| Encoding | Used when the message contains | One SMS | Each part of a long SMS |
|---|---|---|---|
| GSM-7 | Only characters in the GSM alphabet: English letters, digits and common punctuation | 160 characters | 153 characters |
| Unicode (UCS-2) | Any character outside it: Hindi and other Indian scripts, emoji, curly quotation marks | 70 characters | 67 characters |
One emoji or curly quotation mark switches the whole message to Unicode. In GSM-7, the characters { } [ ] ~ \ | ^ and € each count as two. The alphabets are defined in 3GPP specification TS 23.038.
Each part travels as a separate SMS on the network, so ask any provider whether a long message is billed as one SMS or as one per part.
How do you choose an SMS gateway provider in India?
Choose an SMS gateway provider in India on six checks — DLT support, routes with failover, billing on delivered messages, delivery reports by webhook, developer tooling and Indian-language support — and ask for each answer in writing.
| Check | Ask the provider | Red flag |
|---|---|---|
| DLT support | Will you help us register headers and templates, and fix a rejected one? | “DLT is your job” |
| Routes and failover | What happens to our messages when an operator route fails? | A single route with no switch-over |
| Billing basis | Do you bill on submitted or delivered messages, and per part? | Failed messages are charged |
| Delivery reports | Do delivery reports reach our systems by webhook? | Status only visible in the dashboard |
| Developer tooling | Are there documentation, SDKs and a sandbox? | A sample URL and nothing else |
| Indian languages | Can we send Hindi and regional-language templates? | English only |
Monthly SMS cost = setup and monthly fees + SMS parts billed × rate per SMS
Two providers with the same rate can cost very different amounts: one bills every submitted message and every part, the other bills only what is delivered. For a side-by-side view of providers, see how to choose the best bulk SMS provider in India.
Is there a free SMS API in India?
No: every business SMS in India is sent from a DLT-registered header over a mobile operator’s network, and every one of those messages is paid for.
What you can do without sending anything is test the integration itself in a provider’s sandbox, where API calls are processed but no real SMS goes out. Once your templates are approved, start with a small paid pilot on your own customers before moving all your traffic.
Why use UDO’s SMS API?
Use UDO’s SMS API because it is a JSON REST API on a DLT-compliant platform that bills only for delivered messages, with no setup fee and no monthly minimum.
- A REST API in any language. JSON requests from cURL, PHP, Python or Node.js, with documentation, SDKs and a sandbox.
- Delivery reports your systems can use. Real-time webhooks, or poll the API for the status of every message.
- Billed on delivery. Failed messages are not charged. There is no setup fee and no monthly minimum, and API access is included.
- DLT compliant. Headers and templates are registered on DLT, and UDO’s team helps with template registration.
- Promotional and transactional SMS. Bulk SMS campaigns, OTPs, order updates, payment alerts and reminders from one account.
- Indian languages. Unicode messages in Hindi, Tamil, Telugu, Bengali, Gujarati, Marathi and more.
- An OTP API with fallback. A premium route with direct connectivity to Airtel and Jio, automatic switch-over to another telecom partner if a route fails, and a voice call that reads the OTP aloud if the SMS does not arrive.
- A web panel for your team. Send and schedule campaigns, upload contacts from Excel or CSV, and track delivery in real time.
Connect your app to UDO’s SMS API
Frequently asked questions
The best SMS gateway for an Indian business is one that is DLT-compliant, bills only for delivered messages and sends delivery reports back to your systems. UDO’s SMS API does all three, with no setup fee or monthly minimum. For a wider comparison, see our guide to choosing a bulk SMS provider in India.
No. The SMS gateway is the infrastructure that routes messages to mobile operators and tracks their delivery; the SMS API is the interface your software calls to use that gateway. A gateway can also be used through a web panel or an SMPP connection.
Yes. Every business SMS in India must come from a sender, header and content template registered on an operator’s DLT platform, and any link or callback number in the message must be whitelisted. Messages that do not match a registered template are blocked, whichever API sends them.
A bulk SMS gateway is an SMS gateway built to send the same or a personalised message to thousands of numbers at once, through an API or a web panel, for campaigns, alerts and reminders. In India every one of those messages must still match a DLT template registered to your header.
Not for business messages. TRAI’s regulations allow commercial communication only from registered senders and headers, so bulk messages from an ordinary mobile number count as unsolicited commercial communication. Under the 2025 amendment, complaints from five or more people within ten days suspend outgoing services on all of that sender’s telecom resources while the operator investigates; a confirmed violation bars them for 15 days, and a repeat leads to disconnection for a year.
An SMS header is the registered sender name that appears on the recipient’s phone, up to 11 alphanumeric characters. Under TRAI’s February 2025 amendment, a suffix shows the message type: -P for promotional, -S for service, -T for transactional and -G for government messages.
Yes. OTPs are transactional messages under TRAI’s rules: they answer a transaction the customer started and must be sent within 30 minutes of it. UDO’s OTP API sends codes over SMS or WhatsApp, with automatic switch-over between telecom routes and a voice call as fallback.
SMPP (Short Message Peer-to-Peer) is a telecom protocol for exchanging SMS between gateways, operators and high-volume senders over a connection that stays open. Most businesses do not need it: an HTTP SMS API is simpler to build on and works well for apps, websites, CRMs and OTP flows.
An SMS API in India costs a rate per SMS, plus any setup or monthly fee the provider charges, and long messages can be billed per part. UDO charges no setup fee and no monthly minimum and bills only for delivered messages; current rates are on our pricing page. For OTP traffic, compare channels in our SMS vs WhatsApp OTP pricing guide.
Yes. Messages in Hindi, Tamil, Telugu, Bengali and other Indian scripts are sent in Unicode, which fits 70 characters in one SMS and 67 in each part of a longer message. The template registered on DLT must be in the same language as the message you send.
“Sent” means the gateway accepted your request; “delivered” comes back from the operator only when the phone receives the message. The usual causes of the gap are text that does not match the DLT template, a link that is not whitelisted, a promotional message to someone who has blocked that category, or a phone that stays switched off.
Sources — all read on 14 September 2026.
- Telecom Regulatory Authority of India, Telecom Commercial Communications Customer Preference (Second Amendment) Regulations, 2025, dated 12 February 2025: regulation 2 (definitions of promotional, service and transactional messages), regulation 3 (only registered senders may send commercial communication), regulation 22 (traceability and the two-telemarketer limit), regulation 25 (action against unregistered senders), and Schedule-I items 1, 2 and 4 (sender registration, headers and their suffixes, templates, 90-day deactivation and link whitelisting).
- 3GPP, TS 23.038, Alphabets and language-specific information: the GSM 7-bit default alphabet and UCS-2 character sets.
- Unique Digital Outreach, Bulk SMS and OTP Authentication pages: the UDO features described in this article.