Deliverability

A2P SMS explained: what application-to-person messaging is and how it works

A2P SMS is text messaging sent by software for a business. How it differs from P2P, sender types, what drives cost, deliverability and SMS pumping risk.

By Published 8 min read

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.

An application terminal sends a message through an API plug, a provider server and a hub stack to a cell tower and a phone with a code; below, four sender types and a cost chart whose last bar is marked as waste.An application terminal sends a message through an API plug, a provider server and a hub stack to a cell tower and a phone with a code; below, four sender types and a cost chart whose last bar is marked as waste.
Business texts pass several hops before the phone; sender type and wasted sends shape the bill.

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 sendsA person, typingSoftware, on behalf of an organisation
Typical volumeLow, conversationalHigh, often in bursts (campaigns, OTP spikes)
DirectionTwo-wayMostly one-way, sometimes two-way support
PricingPart of the subscriber's planPer message, paid by the sender
RegistrationNoneSender, brand or use case, depending on the country
FilteringLightHeavier: 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:

  1. Your application calls an SMS API or connects over SMPP, the protocol most messaging providers expose for high-volume sending (SMPP Developers Forum).
  2. Your messaging provider chooses a route for the destination country and network.
  3. One or more aggregators or hubs carry the message onward. Each hop takes a margin.
  4. 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 typeWhat it looks likeTypical useNotes
Long codeAn ordinary phone numberTwo-way conversations, lower-volume alertsIn the US, business texting from 10-digit numbers is 10DLC and needs brand and campaign registration
Short codeA 5- or 6-digit numberHigh-volume programmes, OTP, campaignsLeased per country; slower to obtain, highest throughput
Toll-free number8XX numbers in North AmericaCustomer care, notificationsHas its own verification process in the US
Alphanumeric sender IDA brand name, such as "MyBank"One-way alerts and OTPAllowed 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:

CauseWhat happensFix
Unregistered sender or campaignOperator blocks or throttles the trafficRegister the sender ID, brand or campaign
No consent, or ignored opt-outsComplaints, then filtering of the whole senderCollect opt-in, honour STOP immediately
Spam-like contentMessage silently filteredClear sender name, no URL shorteners, no misleading text
Invalid or disconnected numberFails, but often still billedValidate and check numbers before sending
Landline or other non-SMS lineFails or never arrivesFilter by line type
Phone off or out of coverageRetries, then expiryRetry later or offer another channel
Grey routeLow delivery, false "delivered" receiptsUse 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:

QuestionCheckWhat 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.

Python
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, skip

Two 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

  1. Messaging Principles and Best Practices (May 2023), sections 2.2, 4.2 and 5.1.3 — CTIA, 2023
  2. Short Message Peer to Peer Protocol Specification v3.4, Issue 1.2 — SMPP Developers Forum, 1999
  3. 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.

All articles

Know before you send.

Tell us about your use case. We review every request and set you up with test and live keys.