Spain SMS Best Practices, Compliance, and Features
Spain SMS Market Overview
Locale name: | Spain |
---|---|
ISO code: | ES |
Region | Europe |
Mobile country code (MCC) | 214 |
Dialing Code | +34 |
Market Conditions: Spain has a highly developed mobile market with widespread SMS usage. The country's major mobile operators include Movistar, Vodafone, and Orange, collectively serving over 55 million mobile subscribers. While OTT messaging apps like WhatsApp are extremely popular for personal communications, SMS remains crucial for business communications, particularly for authentication, notifications, and marketing. The mobile market shows a relatively even split between Android (around 80%) and iOS (around 20%) users, with strong smartphone penetration rates exceeding 80% of the population.
Key SMS Features and Capabilities in Spain
Spain offers comprehensive SMS capabilities including two-way messaging, concatenated messages, and full support for both domestic and international messaging with various sender ID options.
Two-way SMS Support
Yes, Spain fully supports two-way SMS communications. There are no specific restrictions beyond standard compliance requirements for obtaining user consent and maintaining opt-out mechanisms.
Concatenated Messages (Segmented SMS)
Support: Yes, concatenation is fully supported across Spanish networks.
Message length rules:
- GSM-7 encoding: 160 characters for single SMS, 153 characters per segment for concatenated messages
- Unicode/UCS-2: 70 characters for single SMS, 67 characters per segment for concatenated messages
Encoding considerations: GSM-7 is preferred for standard Latin alphabet, while UCS-2 is required for special characters and Spanish-specific characters (ñ, á, é, í, ó, ú).
MMS Support
MMS messages are automatically converted to SMS with an embedded URL link to access the multimedia content. This ensures compatibility across all devices while maintaining the ability to share rich media content.
Recipient Phone Number Compatibility
Number Portability
Number portability is available in Spain, allowing users to keep their phone numbers when switching carriers. This feature doesn't significantly impact SMS delivery or routing as the Spanish telecommunications infrastructure handles number portability efficiently.
Sending SMS to Landlines
Sending SMS to landline numbers is not supported in Spain. Attempts to send SMS to landline numbers will result in a failed delivery and typically generate a 400 response error (error code 21614) through SMS APIs. Messages won't appear in logs and accounts won't be charged for these attempts.
Compliance and Regulatory Guidelines for SMS in Spain
Spain's SMS communications are regulated by two primary authorities: the Spanish Data Protection Agency (AEPD) and the National Commission of Markets and Competition (CNMC). These bodies enforce GDPR compliance and telecommunications regulations respectively.
Consent and Opt-In
Explicit Consent Requirements:
- Written or electronic confirmation from recipients before sending marketing messages
- Clear disclosure of message purpose, frequency, and company identity
- Separate consent for different types of communications (marketing, transactional, etc.)
- Documentation of when, how, and what consent was given
- Ability to demonstrate consent was freely given and specific
HELP/STOP and Other Commands
Required Keywords:
- STOP/ALTO (Spanish equivalent) for opt-out
- BAJA (unsubscribe)
- AYUDA/HELP for assistance
- All commands must be supported in both Spanish and English
- Response messages must be in the same language as the received command
Do Not Call / Do Not Disturb Registries
Spain maintains the Lista Robinson, a national opt-out registry for marketing communications. Best practices include:
- Regular checking against the Lista Robinson database
- Maintaining internal suppression lists
- Immediate processing of opt-out requests (within 24 hours)
- Proactive filtering of registered numbers before campaign launches
Time Zone Sensitivity
Spain observes specific time restrictions for commercial SMS:
- Permitted Hours: 8:00 AM to 9:00 PM (local time)
- Time Zones: Consider Canary Islands (1 hour behind mainland Spain)
- Exceptions: Emergency or critical service messages
- Holiday Considerations: Avoid sending during national and regional holidays
Phone Numbers Options and SMS Sender Types for Spain
Alphanumeric Sender ID
Operator network capability: Fully supported across all major networks Registration requirements: No pre-registration required, but dynamic usage is supported Sender ID preservation: Yes, sender IDs are preserved as specified Special considerations: MEF-Protected Sender IDs require Letter of Authorization (LOA) from June 6, 2024
Long Codes
Domestic vs. International: Both supported
- Domestic: Limited to in-country messaging
- International: Full support for cross-border messaging Sender ID preservation: Yes, maintained across all major carriers Provisioning time: Immediate to 24 hours Use cases:
- Domestic: Customer service, notifications
- International: Global communications, roaming support
Short Codes
Support: Fully available in Spain Provisioning time: 12-14 weeks Use cases:
- High-volume marketing campaigns
- Two-factor authentication
- Customer engagement programs
- Premium rate services
Restricted SMS Content, Industries, and Use Cases
Prohibited Content:
- Cannabis-related content (strictly forbidden)
- Gambling without proper licensing
- Adult content
- Unauthorized financial services
- Political messaging without proper disclosure
Content Filtering
Carrier Filtering Rules:
- Keywords related to restricted industries
- URLs from suspicious domains
- High-frequency identical messages
- Messages without proper opt-out information
Best Practices to Avoid Filtering:
- Avoid URL shorteners in sensitive industries
- Include clear sender identification
- Maintain consistent sending patterns
- Use approved templates for regulated industries
Best Practices for Sending SMS in Spain
Messaging Strategy
- Keep messages under 160 characters when possible
- Include clear call-to-action
- Personalize using recipient's name or relevant data
- Maintain consistent brand voice
Sending Frequency and Timing
- Limit to 2-4 messages per month per recipient
- Respect Spanish business hours (9:00-14:00, 16:00-19:00)
- Consider siesta time (14:00-16:00)
- Avoid Sundays and national holidays
Localization
- Default to Spanish for general audiences
- Offer Catalan, Basque, or Galician options in relevant regions
- Use proper Spanish formatting for dates (DD/MM/YYYY)
- Consider regional cultural sensitivities
Opt-Out Management
- Process opt-outs within 24 hours
- Maintain centralized opt-out database
- Confirm opt-out with one final message
- Regular audit of opt-out lists
Testing and Monitoring
- Test across Movistar, Vodafone, and Orange networks
- Monitor delivery rates by carrier
- Track engagement metrics by time of day
- Regular A/B testing of message content
SMS API integrations for Spain
Twilio
Twilio provides a robust REST API for sending SMS to Spain. Authentication uses account SID and auth token.
import { Twilio } from 'twilio';
// Initialize client with environment variables
const client = new Twilio(
process.env.TWILIO_ACCOUNT_SID,
process.env.TWILIO_AUTH_TOKEN
);
async function sendSMSToSpain() {
try {
// Send message with Spanish number formatting
const message = await client.messages.create({
body: 'Hola! Este es un mensaje de prueba.',
from: '+34XXXXXXXXX', // Spanish sender number
to: '+34XXXXXXXXX', // Spanish recipient number
// Optional parameters for delivery tracking
statusCallback: 'https://your-callback-url.com/status'
});
console.log(`Message sent successfully! SID: ${message.sid}`);
} catch (error) {
console.error('Error sending message:', error);
}
}
Sinch
Sinch offers a straightforward REST API with bearer token authentication.
import axios from 'axios';
const SINCH_API_TOKEN = process.env.SINCH_API_TOKEN;
const SINCH_SERVICE_PLAN_ID = process.env.SINCH_SERVICE_PLAN_ID;
async function sendSinchSMS() {
try {
const response = await axios.post(
`https://sms.api.sinch.com/xms/v1/${SINCH_SERVICE_PLAN_ID}/batches`,
{
from: 'YourBrand', // Alphanumeric sender ID
to: ['+34XXXXXXXXX'],
body: 'Su mensaje de confirmación',
// Optional delivery report flag
delivery_report: 'summary'
},
{
headers: {
'Authorization': `Bearer ${SINCH_API_TOKEN}`,
'Content-Type': 'application/json'
}
}
);
console.log('Batch ID:', response.data.id);
} catch (error) {
console.error('Sinch API error:', error.response?.data);
}
}
MessageBird
MessageBird provides a feature-rich API with support for various message types.
import messagebird from 'messagebird';
const client = messagebird(process.env.MESSAGEBIRD_API_KEY);
function sendMessageBirdSMS() {
const params = {
originator: 'CompanyName',
recipients: ['+34XXXXXXXXX'],
body: 'Mensaje importante de su empresa',
// Spanish language indicator
language: 'es',
// Enable delivery status updates
reportUrl: 'https://your-webhook.com/delivery-status'
};
client.messages.create(params, (err, response) => {
if (err) {
console.error('MessageBird error:', err);
return;
}
console.log('Message sent successfully:', response.id);
});
}
Plivo
Plivo offers a powerful API with support for high-volume messaging.
import plivo from 'plivo';
const client = new plivo.Client(
process.env.PLIVO_AUTH_ID,
process.env.PLIVO_AUTH_TOKEN
);
async function sendPlivoSMS() {
try {
const response = await client.messages.create({
src: '+34XXXXXXXXX', // Your Plivo Spanish number
dst: '+34XXXXXXXXX', // Destination Spanish number
text: 'Su mensaje de texto',
// Optional URL tracking
url: 'https://your-callback-url.com/status',
// Optional message type
type: 'sms'
});
console.log('Message UUID:', response.messageUuid);
} catch (error) {
console.error('Plivo error:', error);
}
}
API Rate Limits and Throughput
- Standard Limits:
- Twilio: 100 messages/second
- Sinch: 50 messages/second
- MessageBird: 60 messages/second
- Plivo: 80 messages/second
Throughput Management Strategies:
- Implement queue systems (Redis/RabbitMQ)
- Use batch APIs for bulk sending
- Implement exponential backoff for retries
- Monitor rate limit headers
Error Handling and Reporting
- Implement comprehensive logging
- Monitor delivery receipts
- Track common error codes:
- 21614: Invalid number format
- 30003: Unreachable destination
- 30007: Carrier filtering
- Store message status updates
- Set up alerting for failure thresholds
Recap and Additional Resources
Key Takeaways:
- Compliance First: Always obtain explicit consent and honor opt-outs
- Timing Matters: Respect Spanish business hours and cultural considerations
- Language Support: Offer messages in Spanish and regional languages
- Technical Implementation: Use reliable APIs with proper error handling
- Monitoring: Track delivery rates and engagement metrics
Next Steps:
- Review AEPD guidelines at www.aepd.es
- Consult with legal counsel on GDPR compliance
- Set up test accounts with preferred SMS providers
- Implement proper consent management systems
- Develop monitoring and reporting frameworks
Additional Resources:
- Spanish Telecom Regulator (CNMC): www.cnmc.es
- Lista Robinson (Opt-out Registry): www.listarobinson.es
- GDPR Guidelines: gdpr.eu/spain
- Spanish Mobile Operators Association: www.digitales.es