sms compliance
sms compliance
United Kingdom SMS Guide: Compliance, Best Practices & API Integration
Send SMS to UK numbers with confidence. Learn PECR/GDPR compliance requirements, £17.5M fine penalties, sender ID options, and how to integrate Twilio, Sinch, MessageBird, and Plivo APIs for UK SMS messaging in 2025.
United Kingdom SMS Guide: Compliance, Best Practices & API Integration
Send SMS messages to UK mobile numbers with confidence by understanding PECR compliance, GDPR regulations, and technical requirements. This guide covers obtaining explicit consent, choosing sender IDs, and integrating SMS APIs from Twilio, Sinch, MessageBird, and Plivo for reliable UK messaging in 2025.
The UK operates one of the world's most stringent SMS regulatory environments under the Privacy and Electronic Communications Regulations (PECR) and Information Commissioner's Office (ICO) oversight. Obtain explicit opt-in consent before sending marketing messages – violations now carry fines up to £17.5 million or 4% of global turnover under the 2025 Data (Use and Access) Act. Success in the UK SMS market requires understanding both legal compliance and technical considerations for message delivery across EE, Virgin Media O2, and VodafoneThree networks.
Market Overview
Market Conditions: The UK maintains a mature and sophisticated SMS market with high mobile penetration rates. As of 2025, the market underwent significant consolidation with the Vodafone-Three merger completed on May 31, 2025, creating VodafoneThree with 27 million subscribers and a £11 billion ($13.8 billion USD) ten-year network investment plan. This merger transformed the UK from a four-player to a three-player mobile market.
Major Mobile Operators (2025 Market Share):
| Operator | Market Share | Subscribers |
|---|---|---|
| EE (BT) | 33.2% | Leading provider |
| Virgin Media O2 (Telefónica) | 27.1% | ~24 million customers |
| VodafoneThree (merged entity) | ~28% | ~27 million subscribers |
Network Standards: GSM 900/1800, UMTS 2100, LTE (4G), 5G. The UK has excellent mobile coverage across urban and rural areas.
What SMS Features Are Supported in the UK?
The UK supports a comprehensive range of SMS features including two-way messaging, concatenated messages, and number portability, with strong carrier infrastructure for reliable message delivery.
Two-way SMS Support
Two-way SMS works fully in the UK with no significant restrictions. Engage in bi-directional communications with customers for customer service and interactive campaigns.
Concatenated (Multi-part) SMS
UK carriers fully support concatenated SMS. Messages longer than 160 characters automatically split into multiple parts and reassemble seamlessly on the recipient's device. Each segment counts as one message for billing purposes.
Character Limits:
- Standard SMS (GSM-7): 160 characters per segment
- Unicode (UCS-2): 70 characters per segment (for emojis and special characters)
- Concatenated messages: 153 characters per segment (7 characters reserved for reassembly data)
Number Portability
Number portability operates fully in the UK. Users retain their mobile numbers when switching between carriers, with minimal impact on SMS delivery or routing. The porting process typically completes within 1 business day.
Sending SMS to Landlines
SMS to landline works in the UK, with messages typically converted to text-to-speech for landline recipients. However, Virgin Mobile no longer supports SMS to UK landline numbers, and delivery success varies by carrier.
What Are the UK SMS Compliance Requirements?
The Information Commissioner's Office (ICO) regulates SMS communications in the UK under the Privacy and Electronic Communications Regulations (PECR) and the General Data Protection Regulation (GDPR). The regulatory framework focuses on consent, data protection, and consumer rights.
CRITICAL 2025 UPDATE: The Data (Use and Access) Act came into law on June 19, 2025, increasing the maximum fine under PECR from £500,000 to £17.5 million or 4% of annual global turnover (whichever is higher). This brings PECR penalties in line with GDPR fines and substantially increases compliance risk for SMS marketing violations.
How Do You Obtain Consent for UK SMS Marketing?
Explicit Consent Requirements:
- Obtain clear, specific opt-in consent before sending marketing messages
- Ensure consent is freely given, specific, informed, and unambiguous
- Never use pre-ticked boxes or assumed consent
- Use affirmative consent methods (ICO recommends unticked opt-in boxes that users must actively check)
- Keep detailed records of when and how you obtained consent
- Refresh consent every 24 months
Soft Opt-in Exception:
You can message existing customers who:
- Have purchased similar products or services from you, or
- Have discussed purchasing similar products or services
Requirements:
- The customer had a clear chance to opt out when you collected their details
- Every message includes an opt-out option
- Products or services are genuinely similar (e.g., if they bought shoes, you can market shoes but not electronics)
What Keywords Are Required for SMS Opt-Out?
Required Keywords: Support all of these in your opt-out system:
- STOP
- UNSUBSCRIBE
- END
- QUIT
Additional Requirements:
- Include a clear opt-out mechanism in all marketing messages
- Messages must be in English; you can add other languages but English is mandatory
- Opt-out must be free of charge to the consumer
- HELP responses should include your company information and contact details
Do Not Call / Do Not Disturb Registries
Support: No national Do Not Call registry for SMS in the UK
ICO Guidance: Honor direct opt-out requests immediately and maintain your own suppression lists. The ICO can issue fines for unsolicited marketing messages even without a central registry.
What Are the Best Times to Send SMS in the UK?
Send messages between 8:00 AM and 8:00 PM UK time (GMT/BST). Avoid sending on UK bank holidays unless your message is urgent.
Exceptions: Send emergency or security-related messages outside these hours.
2025 UK Bank Holidays:
- New Year's Day – January 1
- Good Friday – April 18
- Easter Monday – April 21
- Early May Bank Holiday – May 5
- Spring Bank Holiday – May 26
- Summer Bank Holiday – August 25
- Christmas Day – December 25
- Boxing Day – December 26
Regional Considerations: Scotland, Wales, and Northern Ireland observe additional local holidays.
What Sender ID Types Work in the UK?
Alphanumeric Sender ID
Network Support: Fully supported across all major UK networks
Character Limits: 3–11 characters (letters, numbers, and spaces only)
Registration Requirements:
- Pre-registration required for protected sender IDs, especially for banking and financial services
- Contact your SMS provider to register sender IDs
- Approval typically takes 2–5 business days
Sender ID Preservation: Displays as-is on most networks, subject to carrier filtering rules
Best For: Brand recognition, one-way notifications, marketing campaigns
Long Codes
Domestic vs. International:
- Domestic long codes: Fully supported
- International long codes: Completely blocked as of July 30, 2024. All SMS messages sent to UK numbers via international long codes are now blocked by all UK carriers. UK carriers consider use of international long codes for Application-To-Person (A2P) SMS as abuse of Person-To-Person (P2P) routes.
RC Bundle Requirement: Effective May 27, 2024, all new UK long codes require an approved RC (Regulatory Compliance) bundle before they can send SMS or make calls.
Sender ID Preservation: Yes, for domestic numbers
Provisioning Time: 1–2 business days for domestic numbers
Use Cases: Two-way communication, customer service, transactional messages
Typical Monthly Fee: £10–£30 per month (varies by provider)
Short Codes
Support: Fully supported across all UK carriers
Number Format: 5–6 digit numbers (e.g., 83782)
Provisioning Time: 8–12 weeks for approval and setup
Application Requirements:
- Detailed use case description
- Sample message templates
- Opt-in/opt-out process documentation
- Compliance attestation
Use Cases: High-volume marketing, 2FA, emergency alerts, promotional campaigns
Typical Monthly Fee: £500–£1,000+ per month, plus setup fees
Throughput: Up to 100 messages per second
How to Format UK Phone Numbers for SMS
UK phone numbers follow the E.164 international format. Always include the +44 country code and remove any leading zeros from the local number.
Format: +44XXXXXXXXXX (where X represents digits)
Example:
- UK number:
07700 900123 - E.164 format:
+447700900123
Validation Pattern (Regex):
^\+44[1-9]\d{9}$Common Formatting Mistakes:
- ❌
447700900123(missing + prefix) - ❌
+44 (0) 7700 900123(includes leading zero) - ❌
+44 7700 900 123(includes spaces) - ✅
+447700900123(correct format)
What Content Is Restricted for UK SMS?
Restricted Industries:
| Industry | Status | Requirements |
|---|---|---|
| Cannabis | Strictly prohibited | No exceptions |
| Gambling | Requires special permissions | GambleAware guidelines, opt-in verification |
| Financial services | Requires sender ID pre-registration | FCA compliance, clear disclosure |
| Adult content | Heavily restricted | Age verification required |
Penalties for Violations: Up to £17.5 million or 4% of global turnover under PECR (as of June 2025), plus potential FCA or other regulatory sanctions for industry-specific violations.
How Do UK Carriers Filter SMS Content?
Carrier-level Filtering: Active across all UK networks to protect consumers from spam and fraud
Spam Detection Systems:
- Pattern recognition for known spam content
- URL reputation checking
- Sender ID verification
- Volume and velocity monitoring
Common Filter Triggers:
- URLs without proper sender registration
- Excessive special characters (!!! $$$ FREE!!!)
- Phishing keywords (password reset, verify account, urgent action required)
- All-caps messages
- Suspicious shortened URLs
How to Avoid Filters:
- Register your sender ID with carriers
- Use approved URL shorteners or full domain names
- Write clear, professional message content
- Avoid spam trigger words
- Test messages before large campaigns
What Are the Best Practices for Sending SMS in the UK?
Message Content Guidelines
- Keep messages concise – aim for under 160 characters when possible
- Include clear sender identification – recipients should immediately know who sent the message
- Provide opt-out instructions in marketing messages (e.g., "Reply STOP to unsubscribe")
- Use appropriate language and tone for your audience
- Test links before sending – verify all URLs work correctly
- Personalize where appropriate – use recipient names or relevant details
Example Good Message:
Hi Sarah, your dentist appointment is confirmed for tomorrow at 2 PM. Reply STOP to opt out. – City Dental
Compliance Best Practices
Use this checklist before every campaign:
- Obtained explicit opt-in consent for all recipients
- Maintained detailed consent records with timestamps
- Screened numbers against internal suppression lists
- Included company name in message
- Added opt-out instructions (STOP keyword)
- Scheduled messages between 8 AM – 8 PM
- Registered sender ID with carriers (if required)
- Documented campaign purpose and messaging strategy
Consent Record Management:
- Store: Date, time, IP address, consent method, consent text
- Refresh consent every 24 months
- Conduct quarterly compliance audits
- Train staff on PECR and GDPR requirements
Deliverability Optimization
Target Benchmarks:
- Delivery rate: >95%
- Opt-out rate: <2% per campaign
- Response rate: 6–8% for promotional messages
Optimization Tactics:
- Register sender IDs with UK carriers where required
- Monitor delivery rates by carrier (EE, Virgin Media O2, VodafoneThree)
- Avoid URL shorteners unless from approved domains
- Test across all major UK carriers before large campaigns
- Maintain high-quality subscriber lists (remove bounces promptly)
- Remove invalid numbers within 48 hours
Opt-Out Management
- Process STOP requests within 24 hours (immediate processing is best practice)
- Maintain comprehensive suppression lists across all systems
- Confirm opt-out with one final message (e.g., "You've unsubscribed. No further messages will be sent.")
- Audit opt-out processes quarterly
Testing and Monitoring
Pre-Launch Testing:
- Test message delivery across all major UK carriers:
- EE (BT)
- Virgin Media O2
- VodafoneThree
- Verify sender ID displays correctly on multiple devices
- Test opt-out functionality (send STOP and verify processing)
- Confirm links render properly on mobile devices
Ongoing Monitoring:
- Track delivery rates by carrier
- Monitor opt-out rates and patterns
- Set up alerts for delivery rate drops >5%
- Review bounce codes weekly
How to Integrate SMS APIs for UK Messaging
How to Send SMS in the UK with Twilio
Twilio provides a robust SMS API with comprehensive UK support. Integration requires an account SID and auth token for authentication.
Setup Requirements:
- Sign up for a Twilio account at twilio.com
- Obtain your Account SID and Auth Token from the console
- Purchase a UK phone number or configure an alphanumeric sender ID
- Install the Twilio SDK for your programming language
Code Example (Node.js):
const twilio = require("twilio");
const accountSid = "YOUR_ACCOUNT_SID";
const authToken = "YOUR_AUTH_TOKEN";
const client = twilio(accountSid, authToken);
client.messages
.create({
body: "Your verification code is 123456",
from: "+44XXXXXXXXXX", // Your Twilio UK number
to: "+44XXXXXXXXXX" // Recipient UK number
})
.then(message => console.log(message.sid))
.catch(error => console.error(error));Key Features:
- Comprehensive delivery receipts
- Two-way messaging support
- Programmable messaging workflows
- Global reach with local UK numbers
Pricing (as of 2025):
- Outbound SMS: £0.04–£0.07 per message
- UK long code: ~£1.00/month
- Short code: Contact sales for pricing
Rate Limits: 1 message per second per sender (configurable for higher volumes)
Documentation: Twilio SMS API Docs
How to Send SMS in the UK with Sinch
Sinch offers reliable SMS delivery with strong UK carrier relationships and competitive pricing.
Setup Requirements:
- Create a Sinch account at sinch.com
- Generate API credentials from the dashboard
- Configure your sender ID (alphanumeric or UK number)
- Install the Sinch SDK or use REST API
Code Example (REST API with cURL):
curl -X POST https://us.sms.api.sinch.com/xms/v1/{service_plan_id}/batches \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"from": "YourBrand",
"to": ["44XXXXXXXXXX"],
"body": "Your order has shipped!"
}'Key Features:
- High deliverability rates in UK
- Campaign analytics and reporting
- Flexible sender ID options
- Robust API documentation
Pricing (as of 2025):
- Outbound SMS: £0.035–£0.065 per message
- No monthly fees for pay-as-you-go accounts
Rate Limits: 600 messages per minute (default)
Documentation: Sinch SMS API Docs
How to Send SMS in the UK with MessageBird
MessageBird provides enterprise-grade SMS services with excellent UK network coverage.
Setup Requirements:
- Register at messagebird.com
- Obtain your API key from the dashboard
- Purchase a UK virtual number or use alphanumeric sender
- Install MessageBird SDK for your platform
Code Example (Python):
import messagebird
client = messagebird.Client("YOUR_API_KEY")
try:
message = client.message_create(
"YourBrand", # Sender ID
"44XXXXXXXXXX", # Recipient
"Your appointment is confirmed for tomorrow at 2 PM",
{ "reference": "appointment-123" }
)
print(f"Message sent. ID: {message.id}")
except messagebird.client.ErrorException as e:
print(f"Error: {e}")Key Features:
- Real-time delivery tracking
- Number lookup and validation
- Multi-channel communication platform
- Excellent uptime and reliability
Pricing (as of 2025):
- Outbound SMS: £0.04–£0.07 per message
- UK virtual number: £10/month
Rate Limits: Varies by account type (contact sales for enterprise limits)
Documentation: MessageBird SMS API Docs
How to Send SMS in the UK with Plivo
Plivo offers cost-effective SMS solutions with comprehensive UK support and easy integration.
Setup Requirements:
- Sign up at plivo.com
- Get your Auth ID and Auth Token
- Purchase a UK phone number from the console
- Install Plivo SDK or use REST API
Code Example (PHP):
<?php
require "vendor/autoload.php";
use Plivo\RestClient;
$client = new RestClient("YOUR_AUTH_ID", "YOUR_AUTH_TOKEN");
$message_created = $client->messages->create(
"+44XXXXXXXXXX", // Sender
["+44XXXXXXXXXX"], // Recipients
"Thank you for your purchase! Your order #12345 is being processed."
);
print_r($message_created);
?>Key Features:
- Competitive pricing
- Simple RESTful API
- Detailed analytics dashboard
- Strong UK carrier connections
Pricing (as of 2025):
- Outbound SMS: £0.035–£0.06 per message
- UK phone number: £8/month
Rate Limits: 200 requests per minute (default)
Documentation: Plivo SMS API Docs
Common SMS API Implementation Considerations
How to Handle SMS API Errors
Implement robust error handling for these common scenarios:
| Error Type | HTTP Status | Cause | Solution |
|---|---|---|---|
| Invalid Number Format | 400 | Phone number not in E.164 format | Validate format: ^\+44[1-9]\d{9}$ |
| Unregistered Sender ID | 400/403 | Sender ID not whitelisted | Register sender ID with carrier |
| Insufficient Balance | 402 | Account balance too low | Add funds and set up low-balance alerts |
| Rate Limiting | 429 | Too many requests | Implement exponential backoff |
| Network Errors | 500/503 | Temporary service issue | Retry with delays: 1s, 2s, 4s, 8s |
Exponential Backoff Example (JavaScript):
async function sendSMSWithRetry(message, maxRetries = 3) {
let delay = 1000; // Start with 1 second
for (let i = 0; i < maxRetries; i++) {
try {
return await sendSMS(message);
} catch (error) {
if (error.statusCode === 429 && i < maxRetries - 1) {
await new Promise(resolve => setTimeout(resolve, delay));
delay *= 2; // Double the delay each time
} else {
throw error;
}
}
}
}How to Track SMS Delivery Status
Configure webhooks to receive real-time delivery status updates:
Delivery Status Workflow:
- Sent → Message accepted by API
- Queued → Message queued for delivery
- Delivered → Message successfully delivered to recipient
- Failed → Delivery failed (check reason code)
- Undelivered → Message could not be delivered after retries
- Rejected → Message rejected by carrier (check content/compliance)
Webhook Configuration Example (Twilio):
// Express.js endpoint for Twilio webhooks
app.post("/sms/status", (req, res) => {
const { MessageSid, MessageStatus, ErrorCode } = req.body;
console.log(`Message ${MessageSid} status: ${MessageStatus}`);
if (ErrorCode) {
console.error(`Error code: ${ErrorCode}`);
// Handle error appropriately
}
res.sendStatus(200);
});What to Track:
- Delivery rates by carrier
- Average delivery time
- Bounce rates by number type
- Error code frequency
SMS API Testing Recommendations
Test Cases:
- Valid UK number delivery – verify message delivers successfully
- Invalid number handling – verify proper error response
- Sender ID display – test across multiple devices and carriers
- Opt-out functionality – send STOP and verify suppression
- Character encoding – test emojis and special characters
- Long messages – verify proper concatenation
- Rate limiting – test burst sending
- Error handling – simulate network failures
Monitoring Setup:
- Set up alerts for delivery rate drops >5%
- Monitor average API response time
- Track error code frequency
- Review failed deliveries daily
Troubleshooting UK SMS Delivery Issues
Why Is My SMS Not Being Delivered?
Possible Causes:
- Invalid phone number format (must include +44 country code)
- International long code used (blocked since July 30, 2024)
- Carrier filtering triggered by content
- Recipient number out of service
- Account balance insufficient
Solutions:
- Verify number format follows E.164 standard (
+447700900123) - Use UK domestic numbers, alphanumeric IDs, or short codes only
- Review message content for spam triggers (URLs, all-caps, excessive punctuation)
- Implement number validation before sending
- Set up low-balance alerts (threshold: £50 or 1 week of typical usage)
Why Is My Sender ID Not Displaying Correctly?
Possible Causes:
- Sender ID not registered with carrier
- Using reserved or protected terms (bank names, brand names)
- Carrier replacing with default number
- International long code sender (now blocked)
Solutions:
- Pre-register sender IDs for financial services (contact carrier or SMS provider)
- Avoid protected terms without authorization
- Contact carrier support for sender ID whitelisting
- Switch to UK domestic numbers or approved alphanumeric IDs
Why Are My Opt-Out Rates So High?
Benchmark Opt-Out Rates:
- Healthy: <2% per campaign
- Concerning: 2–5% per campaign
- Critical: >5% per campaign
Possible Causes:
- Message frequency too high (more than 4 messages per week)
- Content not relevant to recipients
- Unclear sender identification
- No value proposition in messages
Solutions:
- Implement frequency capping (maximum 4 messages per month for marketing)
- Segment audience for targeted messaging
- Include clear sender identification in every message
- Provide valuable, relevant content (discounts, useful information, timely updates)
- A/B test message content and timing
- Survey opted-out users to understand reasons
How to Avoid UK SMS Compliance Violations
Common Violations and Penalties:
| Violation | Typical Fine | Example Cases |
|---|---|---|
| No consent | £50,000–£500,000 | Honda: £13,000 (2020) |
| No opt-out mechanism | £100,000–£1M | Tetrus Telecoms: £200,000 (2019) |
| Ignoring opt-outs | £200,000–£2M | Multiple cases 2022–2024 |
| Data breach | £500,000–£17.5M | British Airways: £20M (2020) |
Note: Since June 2025, PECR fines can reach £17.5 million or 4% of global turnover.
Prevention Checklist:
- Implement robust consent management system with timestamp logging
- Include STOP keyword in every marketing message
- Respect 8 AM – 8 PM sending window
- Maintain and honor suppression lists across all systems
- Conduct quarterly compliance audits
- Train staff on PECR and GDPR requirements
- Document all processes and procedures
Common UK SMS Error Codes
Understanding SMS Error Codes
| Error Code | Description | Action Required |
|---|---|---|
| 30001 | Queue overflow | Reduce sending rate |
| 30002 | Account suspended | Contact provider |
| 30003 | Unreachable destination | Verify number is active |
| 30004 | Message blocked by carrier | Review content for spam triggers |
| 30005 | Unknown destination | Verify E.164 format |
| 30006 | Landline or unreachable | Verify number type |
| 30007 | Message filtered | Register sender ID, review content |
| 30008 | Unknown error | Retry after 5 minutes |
| 21211 | Invalid phone number | Fix E.164 formatting |
| 21408 | Permission denied | Check sender ID registration |
| 21610 | Message exceeds limit | Reduce message length |
How to Monitor Error Rates:
- Set up alerts for error rates >2%
- Review error logs daily
- Track error patterns by carrier
- Escalate unusual patterns to provider
UK SMS Guide Summary and Resources
Key Takeaways:
- Always use proper UK number formatting (
+447700900123) - International long codes blocked as of July 30, 2024 – use UK domestic numbers, alphanumeric IDs, or short codes only
- New UK long codes require RC bundle approval (effective May 27, 2024)
- PECR fines increased dramatically to £17.5 million or 4% of global turnover (effective June 19, 2025)
- Implement proper opt-out handling with required keywords (STOP, UNSUBSCRIBE, END, QUIT)
- Monitor delivery rates across all three major carriers (EE, Virgin Media O2, VodafoneThree)
- Send messages between 8 AM – 8 PM UK time only
- Obtain explicit opt-in consent before any marketing messages
Next Steps:
- Review ICO guidelines for SMS marketing under updated 2025 regulations
- Set up consent management systems with affirmative opt-in
- Implement robust error handling with exponential backoff
- Test thoroughly across all major UK carriers (including newly merged VodafoneThree)
- Ensure all sender IDs comply with current registration requirements
Additional Resources:
- ICO Guidelines – Official PECR compliance guidance
- Ofcom Regulations – Telecoms regulatory framework
- UK Direct Marketing Association – GDPR and PECR best practices