Check phone number activity, carrier details, line type and more.
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
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 variablesconst client =newTwilio( process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN);asyncfunctionsendSMSToSpain(){try{// Send message with Spanish number formattingconst 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';constSINCH_API_TOKEN= process.env.SINCH_API_TOKEN;constSINCH_SERVICE_PLAN_ID= process.env.SINCH_SERVICE_PLAN_ID;asyncfunctionsendSinchSMS(){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);functionsendMessageBirdSMS(){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 =newplivo.Client( process.env.PLIVO_AUTH_ID, process.env.PLIVO_AUTH_TOKEN);asyncfunctionsendPlivoSMS(){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 typetype:'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