On this page
A2P SMS (application-to-person SMS) is a text message that software sends on behalf of a business: one-time passcodes, order and delivery updates, appointment reminders, fraud alerts and opted-in marketing. It travels over the same SMS networks as messages between friends, but operators register, price and filter it as business traffic. Getting A2P right means choosing the right sender type, sending only to people who agreed, and not paying for messages that can't arrive.
What is A2P messaging?
A2P messaging is any message generated by an application and delivered to a person's phone, as opposed to P2P (person-to-person) messaging, which people type to each other. The application can be a bank's fraud system, a login service, a delivery platform or a clinic's booking tool. Our A2P SMS glossary entry has the short definition.
US carriers use their own vocabulary for the same split. CTIA's Messaging Principles and Best Practices calls it Consumer and Non-Consumer traffic. Non-Consumer messaging "includes, but is not limited to, messaging to and from large-to-small businesses, entities, and organizations", with examples such as "service alerts or notifications (e.g., fraud, airline), and machine-to-machine communications" (CTIA, 2023). The same document covers SMS, MMS and RCS, so the rules follow the business, not only the protocol.
A2P is not limited to SMS. "A2P messaging" or "A2P services" often also means RCS business messages, MMS and messages over chat apps. SMS is the baseline because every mobile phone can receive it without an app.
How is A2P different from P2P?
The two kinds of traffic look identical on the handset. Everything else differs.
| P2P (person-to-person) | A2P (application-to-person) | |
|---|---|---|
| Who sends | A person, typing | Software, on behalf of an organisation |
| Typical volume | Low, conversational | High, often in bursts (campaigns, OTP spikes) |
| Direction | Two-way | Mostly one-way, sometimes two-way support |
| Pricing | Part of the subscriber's plan | Per message, paid by the sender |
| Registration | None | Sender, brand or use case, depending on the country |
| Filtering | Light | Heavier: content, volume and sender checks |
Sending business traffic as if it were P2P, for example from a pool of ordinary SIM cards, is a "grey route". Operators look for it, block it and may fine the sender's provider. Messages that arrive this way are also the first to be filtered.
How does an A2P SMS travel from your app to a phone?
Few businesses connect to mobile networks directly. A typical path has four hops:
- Your application calls an SMS API or connects over SMPP, the protocol most messaging providers expose for high-volume sending (SMPP Developers Forum).
- Your messaging provider chooses a route for the destination country and network.
- One or more aggregators or hubs carry the message onward. Each hop takes a margin.
- The terminating network, the one that serves the recipient's number today, delivers the message to the handset through its SMS centre. The SMS itself is defined in 3GPP TS 23.040.
The terminating network charges for that last step, and it is usually the largest part of the price. That is why the current network of a number matters for both cost and routing. After mobile number portability, the prefix no longer tells you which network that is.
When the message reaches the handset or fails, the network can send a delivery receipt back along the chain. Our guide to SMS delivery report statuses explains what each status really means.
Which sender types can carry A2P SMS?
The sender ID is what the recipient sees as "from". Which types you may use depends on the country and the use case.
| Sender type | What it looks like | Typical use | Notes |
|---|---|---|---|
| Long code | An ordinary phone number | Two-way conversations, lower-volume alerts | In the US, business texting from 10-digit numbers is 10DLC and needs brand and campaign registration |
| Short code | A 5- or 6-digit number | High-volume programmes, OTP, campaigns | Leased per country; slower to obtain, highest throughput |
| Toll-free number | 8XX numbers in North America | Customer care, notifications | Has its own verification process in the US |
| Alphanumeric sender ID | A brand name, such as "MyBank" | One-way alerts and OTP | Allowed in many countries, often with pre-registration; generally not used in the US or Canada; can't receive replies |
CTIA describes a short code as "a five- or six-digit number" that "can also be used to exchange wireless messages via Wireless Providers' messaging networks" (CTIA, 2023). For the US 10DLC process of registering brands and campaigns, see the 10DLC glossary entry.
Outside North America, the most common requirement is sender ID registration: you register the brand name with each operator or the regulator before it may appear as the sender. Messages from unregistered names may be blocked or have the sender replaced by a generic number. Your messaging provider is the best source for the current rules in each country.
What does A2P SMS cost, and what drives the price?
There is no single price for A2P SMS. Your provider's per-message rate is built from:
- Destination country and network. Termination fees vary widely between countries and sometimes between networks in the same country.
- Sender type. Short codes and registered senders carry setup and monthly fees on top of per-message rates in some markets.
- Message length and encoding. A message longer than one segment is billed as several. Characters outside the GSM 7-bit alphabet, such as many emoji and non-Latin scripts, switch the message to UCS-2, which fits far fewer characters per segment.
- Route quality. Direct operator connections cost more than grey routes, and they are the ones that deliver.
- Waste. Messages to invalid numbers, landlines and pumped numbers are billed like any other.
Waste is the one line you control directly. As an example assumption, take a list of 100,000 numbers where 4% are landlines or unassigned, and a blended rate of $0.04 per message. That is 4,000 messages, or $160 per send, that can't reach anyone. A carrier lookup costs $0.001 per number in a bulk job, or $100 for the whole list, at the time of writing (see pricing for current prices). Numbers we hold no data for come back unknown and aren't charged. Whether the check pays off depends on your own rate, your list's decay and how often you send, so measure both sides before you decide.
Why are A2P messages filtered or not delivered?
Most failures fall into a few groups:
| Cause | What happens | Fix |
|---|---|---|
| Unregistered sender or campaign | Operator blocks or throttles the traffic | Register the sender ID, brand or campaign |
| No consent, or ignored opt-outs | Complaints, then filtering of the whole sender | Collect opt-in, honour STOP immediately |
| Spam-like content | Message silently filtered | Clear sender name, no URL shorteners, no misleading text |
| Invalid or disconnected number | Fails, but often still billed | Validate and check numbers before sending |
| Landline or other non-SMS line | Fails or never arrives | Filter by line type |
| Phone off or out of coverage | Retries, then expiry | Retry later or offer another channel |
| Grey route | Low delivery, false "delivered" receipts | Use a provider with direct routes |
On consent, CTIA's guidance is short and practical. Message senders "should ensure that Consumers have the ability to opt-out of receiving Messages at any time" and "should support multiple mechanisms of opt-out, including phone call, email, or text" (CTIA, 2023). In the US, the TCPA also applies. This guide is not legal advice; check the rules for your countries with counsel.
For a full cause tree with network error codes, read why SMS messages aren't delivered.
What is SMS pumping, and why does it target A2P senders?
SMS pumping (also called artificially inflated traffic, AIT) is fraud in which bots make your application send messages, usually one-time passcodes, to numbers that earn the attacker a share of the termination fee. The messages are delivered normally, so delivery rates look fine while costs climb. No real user asked for any of them.
Pumping targets A2P because the sender pays and the trigger is public: any sign-up, login or "send me a code" form will do. Typical signs are bursts of OTP requests to one country or one number range, sequential numbers, and codes that are sent but never entered. Related schemes are covered in the SMS pumping and IRSF glossary entries.
The defence is layered: rate limits per IP, device and number range; country allow-lists for countries you serve; CAPTCHA or proof-of-work on the send-code endpoint; and a pre-send check of the number. Our playbook, SMS pumping: how it works and how to stop it, walks through each layer.
How do pre-send checks fit into an A2P workflow?
A pre-send check answers "should this message be sent at all, and how?" before you pay for it. The checks map to the failure causes above:
| Question | Check | What you get |
|---|---|---|
| Can this number receive SMS? | Carrier lookup (carrier) | line_type (mobile, fixed line, VoIP, toll-free…), current carrier |
| Which network is it on today? | MNP lookup (mnp) | porting, current mcc_mnc |
| Is the phone reachable right now? | HLR lookup (hlr) | status: reachable, unreachable, invalid |
| Can it receive RCS instead? | RCS capability check (rcs, bulk only) | registered, device_os when reported |
Here is a small Python filter that runs a real-time carrier lookup and keeps only numbers worth sending to. With a test key, +447700900001 returns a mobile line and +447700900002 returns unknown (NO_DATA); see test mode.
import os, requests
def sendable(numbers):
r = requests.post(
"https://api.mobilevalidate.com/v1/lookup",
headers={"Authorization": f"Bearer {os.environ['MOBILEVALIDATE_API_KEY']}"},
json={"numbers": numbers, "checks": ["carrier"], "wait": 10},
timeout=40,
)
r.raise_for_status()
keep, skip = [], []
for item in r.json()["results"]:
c = item["checks"].get("network.carrier", {})
if c.get("status") != "completed":
keep.append(item["e164"]) # unknown or pending: not billed, no evidence, send as usual
elif c["attributes"].get("line_type") in ("mobile", "fixed_line_or_mobile", "voip"):
keep.append(item["e164"])
else:
skip.append(item["e164"]) # fixed_line, toll_free, premium_rate…: SMS can't arrive
return keep, skipTwo design choices matter. First, an unknown answer is treated as "no evidence", not as a reason to drop the number. Second, VoIP numbers are kept: many can receive SMS, and blocking them is a fraud-policy decision, not a deliverability one. For lists, run the same check in a bulk job at the bulk price. Full request options are in the lookups reference, and the SMS cost reduction use case shows a complete workflow.
MobileValidate is built for messages people asked for: passcodes, service messages and consented marketing. It must not be used to find targets for unsolicited bulk messaging, and the acceptable use policy forbids range scanning and enumeration.
Key takeaways
- A2P SMS is business messaging sent by software; P2P is people texting each other. Operators register, price and filter them differently.
- The sender type (long code or 10DLC, short code, toll-free, alphanumeric) decides registration work, throughput and whether replies are possible.
- Price is driven by destination network, sender type, message length and encoding, route quality and waste.
- Most delivery problems come from missing registration or consent, spam-like content, and numbers that can't receive SMS.
- SMS pumping turns your OTP form into someone else's revenue. Rate limits, country rules and pre-send number checks stop most of it.
- Check line type, current network and reachability before you pay to send. Unknown answers from MobileValidate are never charged.
Sources
- Messaging Principles and Best Practices (May 2023), sections 2.2, 4.2 and 5.1.3 — CTIA, 2023
- Short Message Peer to Peer Protocol Specification v3.4, Issue 1.2 — SMPP Developers Forum, 1999
- 3GPP TS 23.040: Technical realization of the Short Message Service (SMS) — 3GPP, 2026
Frequently asked questions
What does A2P SMS mean?
A2P stands for application-to-person. An A2P SMS is a text message generated by software on behalf of a business or organisation, such as a one-time passcode, a delivery update or an appointment reminder, rather than typed by one person to another.
What is the difference between A2P and P2P messaging?
P2P (person-to-person) messages are typed by people to each other, at conversational volumes. A2P messages are sent by an application, usually in higher volumes and often one way. Operators price, filter and regulate the two kinds of traffic differently.
Which sender IDs can carry A2P SMS?
Depending on the country: long codes (ordinary phone numbers, called 10DLC in the US), short codes of five or six digits, toll-free numbers in North America, and alphanumeric sender IDs that show a brand name. Each has its own registration rules and throughput.
Why do A2P messages fail or get filtered?
Common causes are unregistered senders, missing consent, content that looks like spam, invalid or disconnected numbers, landlines that cannot receive SMS, and grey routes. Registration, consent and cleaning numbers before you send remove most of them.
What is SMS pumping in A2P messaging?
SMS pumping, also called artificially inflated traffic, is fraud in which bots trigger messages, usually one-time passcodes, to numbers that earn the attacker a share of the termination fee. The business pays for messages that no real user asked for.
How can I lower the cost of A2P SMS?
Stop paying for messages that cannot arrive. Remove invalid numbers and landlines, route by the network a number is actually on, rate-limit OTP endpoints, and offer another channel when a recipient already uses one. Pre-send checks with unknown answers free of charge keep the overhead small.
Related services and guides
More from the blog
All articlesFraud prevention
OTP fraud prevention: the checks to run before you send a code
A practical pre-send pipeline for one-time passcodes: normalize, check line type, messenger presence and reputation in one request, then decide.
8 min read
Fraud prevention
SMS pumping: how it works and how to stop it
How SMS pumping (artificially inflated traffic) drains OTP budgets, the signals that give it away, and a layered checklist to stop it before you pay.
8 min read
Deliverability
Why SMS messages aren't delivered: a cause tree with fixes
A cause tree for undelivered SMS: invalid numbers, unreachable phones, wrong line types, carrier filtering and handsets, with a fix for each.
7 min read

