Why SMS Architecture Is Harder Than You Think
Building an SMS feature sounds simple — call an API, send a message. In reality, every country has different regulations, carrier requirements, sender ID rules, and pricing models. Choose wrong and your messages get blocked, you get fined, or you pay 40x more than necessary.
This guide covers everything a developer needs to build a production SMS system: cloud-native options, country-specific regulations, local providers, and cost optimization strategies for 20 major markets.
Cloud Provider SMS Capabilities
AWS — Best Native SMS Coverage
AWS offers SMS through two services: Amazon SNS (Simple Notification Service) and AWS End User Messaging SMS. Key facts:
- Covers 200+ countries
- Only cloud provider with India local routes (via DLT registration in ap-south-1)
- Supports transactional, promotional, and OTP messages
- Pricing varies by destination country and route type
- Requires sender ID or origination number registration per country
Azure — Limited Geography
Azure Communication Services provides SMS capabilities but with significant geographic restrictions:
- Supported countries: US, Canada, UK, Australia, Germany, Netherlands, France, Switzerland, Sweden, Italy, Spain, Denmark, Ireland, Portugal, Poland, Austria, Lithuania, Latvia, Estonia
- No India, no Middle East, no Africa, no Asia-Pacific (except Australia)
- Supports toll-free numbers, short codes, and alphanumeric sender IDs (where available)
- If your app is on Azure and targets India or Southeast Asia, you must use a third-party provider
GCP — No Native SMS Service
Google Cloud Platform has no built-in SMS service. Firebase Cloud Messaging (FCM) handles push notifications only, not SMS. Options for GCP-hosted apps:
- Use a third-party CPaaS (Twilio, Vonage, MessageBird)
- Call AWS SNS cross-cloud via API
- Use regional providers directly
Country-by-Country Breakdown
1. India
Regulator: TRAI (Telecom Regulatory Authority of India)
Key Regulation: DLT (Distributed Ledger Technology) registration is mandatory for ALL commercial SMS since February 2019. No exceptions.
What You Must Register:
- Entity (your business) on a DLT portal (Jio, Airtel, Vodafone-Idea, BSNL, MTNL)
- Sender ID (6 characters, e.g., DEVKIT)
- Message templates (exact text with variables)
- One-time fee: Rs. 5,900 (including GST)
Routing Options:
- Local route (via DLT): Rs. 0.10-0.15 per SMS — requires Mumbai/Hyderabad AWS region
- International route: Rs. 3.00-4.50 per SMS — 25-40x more expensive, avoid this
Recommended Providers:
- AWS SNS via ap-south-1 (cheapest for DLT-compliant traffic)
- Smartping, MSG91, Kaleyra, ValueFirst (local aggregators with DLT support)
- Twilio (supports India but uses international routes unless configured for local)
Architecture Note: AWS End User Messaging SMS only supports India local routes from ap-south-1 (Mumbai) and ap-south-2 (Hyderabad) regions.
2. United States
Regulator: FCC + The Campaign Registry (TCR)
Key Regulation: 10DLC (10-Digit Long Code) registration mandatory for all A2P SMS since 2023. TCPA consent rules apply.
Registration Requirements:
- Brand registration with TCR: $4-$44 one-time fee
- Campaign registration: $15 one-time + monthly fee varies by use case
- External vetting for higher throughput: $40 one-time
Pricing:
- Twilio: $0.0083 per outbound SMS
- AWS SNS: $0.00581 per SMS
- Toll-free: $0.0080 per SMS (no 10DLC registration needed)
- Short code rental: $1,000-$1,500/month
Recommended Providers:
- Twilio, Telnyx, Bandwidth (full 10DLC support)
- AWS SNS (supports 10DLC registration natively)
- Azure Communication Services (US numbers readily available)
3. United Kingdom
Regulator: Ofcom + PECR (Privacy and Electronic Communications Regulations)
Key Regulation: Alphanumeric sender IDs are allowed and commonly used. No mandatory registration for sender IDs, but pre-registration improves delivery.
Pricing:
- Twilio: $0.0420 per SMS
- AWS SNS: $0.0350 per SMS
- UK Tier 1 carriers (direct routes): GBP 0.03-0.05 per SMS
Recommended Providers:
- CM.com, LINK Mobility (direct Tier 1 UK carrier connections — 97-99% delivery)
- Twilio, Vonage (reliable but slightly higher cost)
- TextMagic, FireText (UK-focused, competitive pricing)
4. Canada
Regulator: CRTC + CASL (Canadian Anti-Spam Legislation)
Key Regulation: 10DLC registration (same as US). CASL requires explicit opt-in consent.
Pricing:
- Twilio: $0.0083 per SMS
- AWS SNS: $0.00581 per SMS
Recommended Providers: Same as US — Twilio, AWS SNS, Telnyx, Bandwidth
5. Australia
Regulator: ACMA (Australian Communications and Media Authority)
Key Regulation: Alphanumeric sender IDs supported. No mandatory registration. Do Not Call Register must be respected for promotional messages.
Pricing:
- Twilio: $0.0500 per SMS
- AWS SNS: $0.0400 per SMS
- Local providers: AUD 0.06-0.09 per SMS
Recommended Providers:
- MessageMedia, SMSGlobal (Australian-based, direct carrier connections)
- Sinch, Twilio (global providers with AU presence)
- Azure Communication Services (AU numbers available)
6. Germany
Regulator: BNetzA (Federal Network Agency) + GDPR
Key Regulation: Sender ID pre-registration recommended for reliable delivery. GDPR consent requirements are strict.
Pricing:
- Twilio: $0.0750 per SMS
- AWS SNS: $0.0650 per SMS
- Local: EUR 0.07-0.09
Recommended Providers:
- CM.com, LINK Mobility (strong EU carrier relationships)
- Twilio, Vonage (GDPR-compliant processing)
- Azure Communication Services (DE numbers available)
7. UAE (United Arab Emirates)
Regulator: TDRA (Telecommunications and Digital Government Regulatory Authority)
Key Regulation: Sender ID registration mandatory. Marketing SMS must have "AD-" prefix (max 11 chars including prefix). Content pre-approval required for certain industries.
Registration Requirements:
- Trade License, Establishment Card, Emirates ID, NOC letter
- No registration fee for local entities
- Marketing SMS restricted to certain hours
Pricing:
- AWS SNS: $0.0460 per SMS (international route)
- Local aggregators: AED 0.05-0.12 per SMS
- Etisalat/du direct: cheaper but requires corporate agreement
Recommended Providers:
- d7networks, Unifonic (Middle East specialists)
- Infobip, Nexmo (global with UAE registration support)
8. Saudi Arabia
Regulator: CITC (Communications, Space & Technology Commission)
Key Regulation: Sender ID registration mandatory. Content must be pre-approved. Arabic content support required.
Registration Requirements:
- Commercial Registration (CR) document
- Company letterhead NOC
- Approval can take 2-4 weeks
Pricing:
- AWS SNS: $0.0390 per SMS
- Local: SAR 0.06-0.15 per SMS
Recommended Providers:
- Unifonic (Saudi HQ, fastest approval)
- d7networks, Infobip (strong MENA presence)
- Twilio (supports KSA but slower registration)
9. Singapore
Regulator: IMDA (Infocomm Media Development Authority)
Key Regulation: SSIR (Singapore SMS Sender ID Registry) mandatory since January 2023. All unregistered sender IDs are blocked or marked as "Likely-SCAM."
Registration Requirements:
- One-time setup fee: SGD 545 (with GST) per organization
- Annual fee: SGD 218 per sender ID
- Must register through an authorized aggregator
Pricing:
- Twilio: $0.0430 per SMS
- AWS SNS: $0.0360 per SMS
- Local: SGD 0.04-0.06 per SMS
Recommended Providers:
- Nexmo/Vonage, Plivo (SSIR registration support)
- MessageBird (direct SG carrier connections)
10. Japan
Regulator: MIC (Ministry of Internal Affairs and Communications)
Key Regulation: Dynamic alphanumeric sender IDs permitted. No mandatory pre-registration. However, generic sender IDs (INFO, SMS, NOTICE) are rejected by carriers.
Special Considerations:
- Three major carriers: NTT Docomo, KDDI (au), SoftBank
- Character limits vary by carrier (KDDI: 140 chars default, SoftBank: 664 chars)
- International SMS delivery can be unreliable — use provider with direct carrier relationships
Pricing:
- Twilio: $0.0720 per SMS
- AWS SNS: $0.0645 per SMS (limited support)
- Local carriers via aggregators: JPY 8-12 per SMS
Recommended Providers:
- 8x8 CPaaS (strong Japan carrier relationships)
- CM.com, Sinch (direct NTT Docomo connections)
- Twilio (reliable but higher cost)
11. Brazil
Regulator: Anatel (National Telecommunications Agency)
Key Regulation: Short codes preferred for A2P SMS. Long codes have restrictions. Maximum 157 characters per message (not 160). Political, religious, and abortion-related content is strictly prohibited.
Pricing:
- Twilio: $0.0450 per SMS
- AWS SNS: $0.0375 per SMS
- Zenvia (local): BRL 0.05-0.08 per SMS
Recommended Providers:
- Zenvia (Brazilian market leader, direct carrier connections)
- Infobip, Sinch (global with strong BR presence)
- Twilio (supports Brazil but premium pricing)
12. Nigeria
Regulator: NCC (Nigerian Communications Commission)
Key Regulation: Sender ID registration required with NCC. DND (Do Not Disturb) list must be respected.
Pricing:
- AWS SNS: $0.0528 per SMS (international route)
- Africa's Talking: NGN 2.5-4 per SMS (local route)
- Termii: NGN 2.5-3.5 per SMS
Recommended Providers:
- Africa's Talking (pan-African, direct carrier connections)
- Termii (Nigerian-focused, cheapest local rates)
- SMSLive247, BulkSMSNigeria (ultra-local options)
13. South Africa
Regulator: ICASA + POPIA (Protection of Personal Information Act)
Key Regulation: No strict sender ID registration. Alphanumeric sender IDs allowed. POPIA consent required.
Pricing:
- AWS SNS: $0.0250 per SMS
- Clickatell: ZAR 0.30-0.50 per SMS
- BulkSMS.co.za: ZAR 0.25-0.35 per SMS
Recommended Providers:
- Clickatell (South African origin, pan-African coverage)
- BulkSMS (cheapest for SA-only traffic)
- Africa's Talking (if you also need other African countries)
14. France
Regulator: ARCEP + CNIL (GDPR enforcement)
Key Regulation: Alphanumeric sender IDs allowed. Pre-registration recommended. Strict GDPR consent requirements.
Pricing:
- Twilio: $0.0730 per SMS
- AWS SNS: $0.0620 per SMS
- Local: EUR 0.06-0.09
Recommended Providers:
- OVH (French cloud provider with SMS service)
- CM.com, LINK Mobility (EU-focused)
- Azure Communication Services (FR numbers available)
15. Indonesia
Regulator: Kominfo (Ministry of Communication and Informatics)
Key Regulation: Sender ID registration required through local aggregators. Content filtering is aggressive — URLs in SMS may be blocked unless pre-registered.
Pricing:
- AWS SNS: $0.0330 per SMS (international route)
- Local aggregators: IDR 350-500 per SMS
Recommended Providers:
- Kata.ai (Indonesian market specialist)
- Infobip, Wavecell (strong SEA carrier relationships)
- Twilio (supports ID but registration can be slow)
16. Mexico
Regulator: IFT (Federal Telecommunications Institute)
Key Regulation: No strict sender ID registration. Alphanumeric sender IDs supported. Relatively permissive compared to other markets.
Pricing:
- Twilio: $0.0340 per SMS
- AWS SNS: $0.0280 per SMS
- Local: MXN 0.30-0.50
Recommended Providers:
- Auronix (Mexican market leader)
- Twilio, Sinch (reliable in Mexico)
- Hablame (budget local option)
17. South Korea
Regulator: KCC (Korea Communications Commission)
Key Regulation: Strict sender verification required. Business must be registered. Pre-registration of sender ID mandatory. Only domestic numbers accepted as sender IDs for some carriers.
Pricing:
- Twilio: $0.0280 per SMS
- AWS SNS: $0.0230 per SMS
- Local: KRW 10-20 per SMS
Recommended Providers:
- NHN Cloud (Korean cloud with SMS service)
- Infobip, CM.com (carrier relationships with KT, SKT, LGU+)
- Twilio (supports KR with registration)
18. Philippines
Regulator: NTC (National Telecommunications Commission)
Key Regulation: Sender ID registration required with NTC through aggregators. SIM registration law (2022) tightened compliance.
Pricing:
- AWS SNS: $0.0375 per SMS
- Local: PHP 0.50-1.00 per SMS
Recommended Providers:
- Engagely, M360 (Philippine market specialists)
- Globe Telecom, Smart Communications (direct carrier options via aggregators)
- Infobip (strong PH presence)
19. Kenya
Regulator: CA (Communications Authority of Kenya)
Key Regulation: Short codes preferred for A2P messaging. Sender ID registration available through aggregators. Safaricom dominates with 60%+ market share.
Pricing:
- AWS SNS: $0.0232 per SMS (international route)
- Africa's Talking: KES 1.0-1.5 per SMS (local route)
- Direct Safaricom: KES 0.80-1.20
Recommended Providers:
- Africa's Talking (Kenyan HQ, best local rates)
- Safaricom Bulk SMS (direct, requires corporate account)
- Infobip (if you need Kenya + other markets)
20. Turkey
Regulator: BTK (Information and Communication Technologies Authority)
Key Regulation: Sender ID registration mandatory with BTK. Content pre-approval required. IYS (Message Management System) consent database must be checked before sending commercial SMS.
Registration Requirements:
- Tax number and company registration
- IYS registration mandatory
- Approval takes 1-3 weeks
Pricing:
- AWS SNS: $0.0145 per SMS
- Local: TRY 0.15-0.25 per SMS
Recommended Providers:
- Netgsm, iletimerkezi (Turkish market leaders)
- Infobip, CM.com (support BTK registration)
- Twilio (supports Turkey)
Architecture Patterns
Single-Country App (India Example)
App → API Gateway → Lambda → AWS SNS (ap-south-1, DLT local route)
↓
Indian mobile numbers
Cost: Rs. 0.10-0.15/SMS. Requires DLT registration on Jio/Airtel/Vi portal.
Multi-Country App (Smart Routing)
App → Routing Lambda → ┬→ AWS SNS (India, US, UK)
├→ Africa's Talking (Nigeria, Kenya, SA)
├→ Unifonic (UAE, Saudi Arabia)
└→ Twilio (everywhere else)
Use a routing layer that picks the cheapest provider per destination. Store provider config in a database so you can switch without code changes.
Cloud-Agnostic (App on Azure/GCP, SMS via AWS)
Azure App → HTTPS POST → AWS API Gateway → Lambda → SNS SMS
Nothing stops you from calling AWS SMS APIs from any cloud. The SMS service does not need to run on the same cloud as your application.
Cost Optimization Strategies
Summary Table
| Country | Registration | Cost/SMS (USD) | Best Provider | Cloud-Native |
|---|---|---|---|---|
| India | DLT mandatory | $0.0012-0.0018 | AWS SNS (local) | AWS only |
| USA | 10DLC required | $0.0058-0.0083 | Twilio/AWS | AWS, Azure |
| UK | Recommended | $0.035-0.042 | CM.com | AWS, Azure |
| Canada | 10DLC required | $0.0058-0.0083 | Twilio/AWS | AWS, Azure |
| Australia | Not required | $0.040-0.050 | MessageMedia | AWS, Azure |
| Germany | Recommended | $0.065-0.075 | LINK Mobility | AWS, Azure |
| UAE | Mandatory | $0.046 | Unifonic | AWS |
| Saudi Arabia | Mandatory | $0.039 | Unifonic | AWS |
| Singapore | SSIR mandatory | $0.036-0.043 | Nexmo | AWS |
| Japan | Not required | $0.065-0.072 | 8x8 CPaaS | AWS (limited) |
| Brazil | Short code preferred | $0.038-0.045 | Zenvia | AWS |
| Nigeria | Required | $0.006-0.010 | Africa's Talking | AWS |
| South Africa | Not required | $0.025 | Clickatell | AWS |
| France | Recommended | $0.062-0.073 | CM.com | AWS, Azure |
| Indonesia | Required | $0.022-0.033 | Kata.ai | AWS |
| Mexico | Not required | $0.028-0.034 | Auronix | AWS |
| South Korea | Mandatory | $0.023-0.028 | NHN Cloud | AWS |
| Philippines | Required | $0.012-0.038 | Engagely | AWS |
| Kenya | Short code preferred | $0.007-0.023 | Africa's Talking | AWS |
| Turkey | BTK mandatory | $0.015 | Netgsm | AWS |
Key Takeaways
- GCP has no native SMS — always needs a third-party provider
- Azure SMS is limited to around 20 countries — primarily US, UK, and EU
- AWS SNS has the broadest coverage but India local routes only work from Mumbai/Hyderabad regions
- For India specifically, DLT registration is non-negotiable and the cheapest route
- Multi-country apps should use a routing layer with multiple providers rather than one global provider
- Total cost for a typical startup: $50-200/month for 10,000-50,000 SMS across multiple countries
---
Frequently Asked Questions
How do I send SMS to international phone numbers?
Use E.164 format (country code + number, e.g., +14155551234) for all phone numbers. Choose a provider like Twilio, Vonage, or MessageBird that supports your target countries. Register sender IDs where required, obtain necessary compliance approvals per country, and test delivery with local numbers. Be aware that delivery rates and regulations vary significantly by country.
What is a sender ID and do I need one?
A sender ID is the alphanumeric name (e.g., "MyApp") displayed as the message sender instead of a phone number. Some countries require registered sender IDs, others block them entirely (US), and some allow any text. Register sender IDs in advance where required — approval can take 2-4 weeks. Use a local phone number as fallback for countries that don't support alphanumeric IDs.
How much does international SMS cost?
SMS pricing varies dramatically by country — from $0.005 in India to $0.08+ in the US, typically $0.01-0.10 per message. Costs depend on your provider, volume commitments, and whether you use local or international routes. Some countries charge differently for person-to-person vs application-to-person (A2P) traffic. Always get country-specific pricing from your provider.
How do I handle SMS delivery failures in different countries?
Implement country-specific retry logic since delivery patterns vary. Some countries have high latency (up to 72 hours for delivery reports), while others confirm within seconds. Monitor per-country delivery rates and maintain fallback providers for countries with poor primary delivery. Use provider status pages and in-country testing to identify routing issues early.