SMPP stands for Short Message Peer-to-Peer, the open protocol that operators, aggregators and high-volume senders use to exchange text messages over a persistent connection. This glossary explains SMPP and 27 other terms you will meet when you send business SMS, from delivery reports and sender IDs to HLR lookups and India’s DLT registration.
Each entry gives a plain definition, why the term matters once traffic is live, and where it fits in an SMS API integration. Terms are grouped by topic: how messages travel from your application to the handset, how text is encoded and split into parts, who the message appears to come from, what the network knows about a number, why delivery fails, and how verification and consent work. It is written for engineers, product owners and support teams alike. Use the jump list below to go straight to any term.
- How messages travel: SMPP, HTTP API, Throughput (TPS), DLR
- Traffic types: A2P, P2P, Two-way SMS, Flash SMS
- Encoding and length: GSM-7, UCS-2, Concatenated SMS
- Sender identities: Sender ID, Alphanumeric sender ID, Short code, Long code, 10DLC, Toll-free number
- Numbers and networks: HLR, MNP, MCC-MNC, IMSI
- Delivery errors: Absent subscriber, Invalid number
- Verification and fraud: OTP, 2FA, SMS pumping
- Compliance: Opt-out, DLT
SMPP (Short Message Peer-to-Peer)
SMPP is the open, industry-standard protocol for exchanging SMS between applications and message centres. The SMPP v3.4 specification defines a persistent TCP session, called a bind, opened as transmitter, receiver or transceiver. Messages go out as submit_sm, delivery reports return as deliver_sm, and enquire_link keeps the session alive. Because several requests can be in flight at once, SMPP suits aggregators and sustained high volume. See the SMPP gateway API.
HTTP API (REST SMS API)
An HTTP API lets your application send SMS with ordinary web requests instead of a telecom protocol. You POST a JSON body with the recipient, text and sender, authenticate with a key in the header, and get an immediate response with a message ID. Delivery reports arrive later as webhooks. It is quicker to integrate than SMPP and works from any language, which is why most teams start here. Every field is in the SMS.to API documentation.
Throughput (TPS / MPS)
Throughput is how many messages a connection can submit per second, quoted as TPS (transactions per second) or MPS (messages per second). Limits apply at your provider account, the route, the sender type and the operator. When you exceed one, messages queue or the API returns HTTP 429, and passcodes arrive late during campaign bursts. Keep time-critical traffic apart from bulk sends. The SMS.to SMPP API is designed for 2,000+ messages per second on supported setups.
DLR (delivery report)
A delivery report (DLR), or delivery receipt, tells you what happened to a message after submission. The operator’s message centre returns it to your provider, which passes it on as an SMPP deliver_sm or an HTTP webhook. Typical final states are delivered, failed, expired and rejected. Some networks never confirm handset delivery, so “sent” can be the last status you see. SMS.to explains each of its message statuses and posts updates to the callback_url on your SMS API request.
A2P (application-to-person)
A2P messaging is traffic sent by software to people: passcodes, alerts, reminders and marketing. Operators treat it as a separate class with its own routes, pricing and rules, and many countries require A2P senders to register sender IDs, templates or campaigns. The US industry body CTIA calls it “non-consumer” messaging in its Messaging Principles and Best Practices. Anything your application sends through an SMS gateway API is A2P, however conversational it sounds.
P2P (person-to-person)
P2P messaging is ordinary texting between subscribers at conversational volumes, and operators price and filter it on that basis. Business traffic disguised as P2P, sent from SIM farms or consumer numbers to avoid A2P charges, is called grey-route traffic. Operators work to block it, and its delivery reports are often unreliable. If a system generates your messages, they are A2P. A rate that looks like consumer pricing is a warning sign; compare it with the SMS.to price list.
Two-way SMS
Two-way SMS means recipients can reply and your system receives the replies. You need a reply-capable number, usually a rented virtual long code or a short code, because nobody can reply to an alphanumeric sender ID. Replies, called mobile-originated (MO) messages, reach your application as webhooks with the sender, the number texted, the text and a timestamp. Typical uses are confirmations, surveys, support and keyword opt-outs. SMS.to lets you rent numbers for two-way messaging.
Flash SMS (Class 0)
A flash SMS is a Class 0 message: the handset shows it on screen immediately and does not store it automatically, as defined in 3GPP TS 23.038. It suits short, time-critical alerts. Support varies, since some handsets and networks treat it as a normal SMS, and some users find pop-ups intrusive, so test it and use it sparingly. SMS.to sends flash messages through a separate endpoint, POST https://api.sms.to/fsms/send, listed in the API reference.
GSM-7 (GSM 03.38 alphabet)
GSM-7 is the default 7-bit SMS alphabet, specified in 3GPP TS 23.038, the successor to GSM 03.38. It covers basic Latin letters, digits, common punctuation, some accented letters and several Greek capitals. One GSM-7 message holds up to 160 characters. Extension-table symbols take two positions each: ^ { } \ [ ] ~ | and €. One character outside the set switches the whole message to UCS-2. Check a draft with the SMS character counter.
UCS-2 (Unicode SMS)
UCS-2 is the 16-bit encoding used when a message contains any character outside GSM-7: Arabic, Cyrillic or Chinese script, emoji, or a curly apostrophe pasted from a word processor. A single message then holds 70 characters instead of 160 (3GPP TS 23.038), and each part of a long message holds 67. The switch applies to the whole message, so it can double or triple the cost. The Unicode SMS checker highlights the characters responsible.
Concatenated SMS (long SMS)
A concatenated SMS is a long message split into parts that the handset reassembles into one. Each part carries a User Data Header (UDH) with a reference number, the part count and its position. The header takes space: under 3GPP TS 23.040, a GSM-7 part holds 153 characters and a UCS-2 part 67. Each part is billed as one SMS, so a 161-character GSM-7 message costs two. Rates by destination are on the SMS pricing page.
Sender ID
The sender ID is the “from” shown on the recipient’s handset: an alphanumeric brand name, a long code, a short code or a toll-free number, depending on the country. Rules are set nationally and by operators. Some countries accept any name, some require pre-registration, some overwrite unregistered IDs, and some allow numeric senders only. The wrong choice is a common cause of blocked traffic. In SMS.to you set it with the sender_id field on each API send request.
Alphanumeric sender ID
An alphanumeric sender ID is a text name, such as a brand, displayed instead of a number. Regulators that run sender ID registers, such as ACMA and TRAI, cap it at 11 characters. It builds recognition, which is why banks and delivery firms use it for passcodes and alerts. Recipients cannot reply to it, so pair it with a reply-capable number if you need responses. Some countries require registration first and block or replace unregistered names.
Short code
A short code is a short number provisioned for high-volume A2P messaging and keyword campaigns such as “Text JOIN to” a number. In the United States they have five or six digits, according to the Common Short Code Administration. Short codes belong to one country and usually need operator approval before launch, but they are built for volume, easy to remember and support replies. Ask your account manager about short code options on the SMS.to features page.
Long code (virtual number)
A long code is a standard-length phone number, in the same format as a personal mobile or landline number, used as a sender. Recipients can reply as they would to a person, so long codes suit support threads and reminders. Virtual mobile numbers rented from a provider are long codes. In the United States, A2P traffic on local long codes must go through 10DLC registration. SMS.to lets you rent long codes and virtual numbers for sending and receiving.
10DLC (10-digit long code)
10DLC is the US framework for A2P SMS from standard 10-digit local numbers. Businesses register a brand and campaigns, with the use case and sample messages, through The Campaign Registry, the hub US operators use to vet 10DLC senders. Registration status affects filtering and throughput, and unregistered traffic may be throttled or blocked. If you send to the United States from local numbers, register before launch. Our guide to 10DLC vs short code vs toll-free compares the options.
Toll-free number
A toll-free number is free for callers to dial, and in some countries it can also send and receive SMS. In the United States and Canada, toll-free texting is a common option for notifications, support and reminders, alongside 10DLC and short codes, and one number handles both calls and replies. Toll-free messaging has its own registration process, separate from 10DLC, so confirm requirements before fixing a launch date. SMS.to offers a selection of toll-free numbers.
HLR (Home Location Register)
The Home Location Register is the operator database that holds each subscriber’s profile: the SIM identity (IMSI), the phone number (MSISDN), the services on the subscription and the network element currently serving the handset. Message centres query it before delivering an SMS. An HLR lookup returns similar data to you: whether the number is live, which operator serves it, whether it is ported, and sometimes roaming status. Use it to clean lists with the HLR lookup API.
MNP (mobile number portability)
Mobile number portability lets subscribers keep their number when they switch operator. After a port, the prefix no longer identifies the network, so prefix-based routing or pricing can pick the wrong operator or rate. An MNP lookup returns the network that currently serves the number, without the live reachability check of a full HLR lookup. It matters most in markets with heavy porting. See how HLR and MNP checks stop wasted sends, or use the MNP lookup API.
MCC-MNC (mobile country and network codes)
MCC and MNC identify a mobile network anywhere in the world. The Mobile Country Code has three digits and the Mobile Network Code two or three, both defined in ITU-T Recommendation E.212. Together they name one operator in one country. Providers use the pair to price per network, choose routes and report delivery by operator. Store the MNC as a string, because “01” and “001” are different codes. The HLR and MNP lookup API returns both with each result.
IMSI (International Mobile Subscriber Identity)
The IMSI identifies a SIM subscription inside mobile networks. It is not the phone number: under ITU-T E.212 it combines the MCC, the MNC and a subscriber identification number, and the HLR maps the phone number (MSISDN) to it. A new IMSI behind the same phone number usually means a new SIM, which fraud teams treat as a risk signal before sending passcodes. Some lookups return the IMSI where regional rules allow; ask about coverage on the HLR lookup page.
Absent subscriber
Absent subscriber means the number exists but the handset cannot be reached now: it is switched off, out of coverage or not registered on a network. The network signals it with the MAP error absentSubscriberSM. It is usually temporary: the message centre retries until the handset returns or the validity period ends, then reports failed or expired. SMS.to reports it as error codes 16, 17, 18 and 27 in its failure reasons. Repeated absence suggests an abandoned SIM; check with an HLR lookup.
Invalid number
An invalid number cannot receive SMS at all, unlike an absent subscriber, which is only temporarily unreachable. Causes include a wrong format, an unallocated or disconnected number, or a landline without SMS. Networks report “unknown subscriber” or “number not registered in network”. SMS.to rejects badly formatted numbers before sending, and rejected messages are not billed, per its status definitions. Retrying will not help. Correct or remove the number, and validate at sign-up with an HLR number lookup.
OTP (one-time password)
A one-time password, or passcode, is a short code valid for a single login, sign-up or transaction that expires after a set time. SMS is the default channel because it reaches any mobile number without an app; WhatsApp, Viber and Telegram can be added as alternatives. A sound flow sets a short expiry, limits attempts, invalidates used codes and rate-limits requests. The SMS.to Verify API generates, delivers and checks codes, with automatic fallback to the next channel.
2FA (two-factor authentication)
Two-factor authentication requires two kinds of evidence before granting access: something you know (a password), have (a phone or key) or are (a fingerprint). An SMS passcode proves possession of the phone number, but it inherits risks such as SIM swaps. The US NIST SP 800-63B guidelines class phone-network codes as a restricted authenticator and advise checking signals such as SIM change and number porting first. Add those checks with a multi-channel verification API.
SMS pumping (artificially inflated traffic)
SMS pumping, or artificially inflated traffic (AIT), is fraud in which bots trigger masses of sign-up or passcode SMS to number ranges where the fraudster earns a share of termination revenue. You pay for every message and nobody verifies. Warning signs are spikes to countries you rarely serve, sequential numbers and collapsing verification conversion. Defend with rate limits per user, IP and device, destination blocking, CAPTCHA and conversion monitoring, as the Verify API guidance recommends.
Opt-out
An opt-out is a recipient’s request to stop receiving your messages, and honouring it is a legal requirement in many markets. In the UK, the ICO’s PECR guidance says marketing texts must offer a simple opt-out; US guidance from CTIA asks senders to act on STOP and plain requests such as cancel or unsubscribe. Check opt-outs before every send. In SMS.to, STOPSMS {optout} inserts a one-click unsubscribe link, and opted-out recipients are skipped and not charged; see the opt-out tools.
DLT (Distributed Ledger Technology registration, India)
DLT is the blockchain-based registration system Indian operators use to control commercial SMS under TRAI’s Telecom Commercial Communications Customer Preference Regulations, 2018. A business registers as a principal entity, then registers its headers (sender IDs of up to eleven characters), content templates and consent templates, as TRAI’s advice to senders sets out. Skipping any step blocks commercial sending. If you send to India, complete DLT first and keep templates matched to the exact text your application sends.
How SMS.to puts these terms into practice
SMS.to, operated by Intergo Telecom, exposes most of these concepts directly. The SMS.to SMS API takes JSON over HTTPS and posts delivery reports to your callback_url. The SMPP API serves sustained volume with final and intermediate DLRs. HLR and MNP lookups check numbers before you pay to send, and the Verify API delivers OTPs over SMS, WhatsApp, Viber and Telegram with fallback. For more depth on the first entry, read what SMPP is and how it works.
FAQs
What is the full form of SMPP?
SMPP stands for Short Message Peer-to-Peer. It is an open protocol for exchanging SMS between applications and message centres over a persistent TCP connection, used mainly by aggregators, operators and high-volume senders.
What is the difference between SMPP and an HTTP SMS API?
SMPP keeps a session open and streams messages and delivery reports over it, which suits sustained high volume. An HTTP API sends each message as a separate web request and returns delivery reports by webhook, which is simpler to build and suits most applications.
Why is my 160-character SMS billed as two messages?
Either one character is outside GSM-7, which switches the message to UCS-2 and a 70-character limit, or extension characters such as € take two positions each and push it past 160.
What is the difference between absent subscriber and invalid number?
Absent subscriber means the number exists but the phone is off or out of coverage, so a later attempt may succeed. Invalid number means the number cannot receive SMS at all, so remove or correct it instead of retrying.
Ready to put these terms to work? Create a free account, no credit card needed, grab an API key and send your first message in minutes.