Réunion Island SMS Guide: Compliance, Regulations & API Integration for French Overseas Department
Complete guide to SMS messaging in Réunion (France). Learn ARCEP regulations, GDPR compliance, time restrictions, operator requirements, and API integration with Twilio, Sinch, Plivo, and MessageBird.
SMS Market in Réunion: Réunion, as a French overseas department, maintains robust mobile telecommunications infrastructure serving over 860,000 residents. The market is served by 4 licensed operators as of May 1, 2025 (per ARCEP frequency allocations): Orange Réunion, SRR (SFR Réunion, holding over 50% market share), Telco OI (operating as Free Mobile and Only brands, acquired by Iliad Group in 2016), and Zeop Mobile. While SMS remains crucial for business communications and authentication, OTT messaging apps like WhatsApp and Facebook Messenger have significant penetration. Android devices hold majority market share, though iOS devices maintain strong presence among higher-income consumers.
SMS Pricing: Based on 2025 market data, SMS pricing to Réunion ranges from $0.10198 to $0.1911 per message across major providers (Sent.dm pricing comparison). Plivo offers the most competitive base rate at $0.10198, followed by Sinch ($0.109), Infobip ($0.13), and Twilio ($0.1911). Volume discounts are available from all providers, with businesses sending 100,000+ messages monthly typically securing 20-40% below standard pay-as-you-go pricing. Mobile penetration exceeds 100% of the population, with 4G/LTE coverage across all major population centers since 2017.
SMS Features and Technical Capabilities in Réunion
Feature
Support Status
Details
Two-way SMS
Not Supported
Use dedicated short codes or alternative messaging solutions
Concatenated Messages
Supported
Availability may vary by sender ID type
MMS
Converted to SMS
Automatically converted to SMS with embedded URL link
Number Portability
Not Available
Numbers remain tied to original carriers
SMS to Landlines
Not Supported
Returns error code 21614 with no charge
Alphanumeric Sender ID
Supported
Up to 11 characters, no registration required
Short Codes
Supported
8-12 weeks provisioning time through operators
Réunion supports most modern SMS features with some limitations, operating under French telecommunications regulations while maintaining its distinct market characteristics.
Two-way SMS Support
Two-way SMS is not supported in Réunion through standard channels. Technical reason: All French mobile operators have contractually prohibited the delivery of A2P (Application-to-Person) services to their customers using standard mobile phone numbers (Twilio France guidelines). This restriction prevents businesses from receiving replies on standard long codes. If you require two-way communication, consider alternative messaging solutions such as WhatsApp Business API, dedicated short code services (which support MO/MT messaging), or other OTT messaging platforms with bidirectional support.
Concatenated Messages (Segmented SMS)
Support: Yes, concatenated messages are supported, though availability may vary by sender ID type.
Message length rules: Standard SMS length of 160 characters for GSM-7 encoding, or 70 characters for Unicode (UCS-2) encoding.
Encoding considerations: Both GSM-7 and UCS-2 encodings are supported. Messages using special characters automatically use UCS-2 encoding, reducing the character limit per segment.
Segmentation example: A 200-character message using GSM-7 encoding splits into 2 segments (153 characters each due to 7-character header overhead). The same message with special characters requiring UCS-2 splits into 3 segments (67 characters each with 3-character header). Recipients see the message reassembled as one continuous text.
MMS Support
MMS messages are automatically converted to SMS with an embedded URL link. This ensures compatibility across all devices while still allowing rich media content to be shared through a web-based interface. Technical process: When you send an MMS, the provider uploads the media to a secure server and generates a short URL. The SMS contains this URL (typically formatted as https://provider.com/v/abc123), which recipients click to view images, videos, or audio in their mobile browser.
Recipient Phone Number Compatibility
Number Portability
Number portability is not available in Réunion. This simplifies message routing as numbers remain tied to their original carriers. Routing implications: Without MNP (Mobile Number Portability), SMS routing is more predictable and delivery rates are typically higher (95%+ vs. 90-93% in markets with MNP) because the number prefix directly identifies the destination operator, eliminating lookup delays and routing errors common in ported number scenarios.
Sending SMS to Landlines
Sending SMS to landline numbers is not supported in Réunion. Attempts to send messages to landline numbers will result in a 400 response with error code 21614, and no charges will be applied to your account.
SMS Compliance and Regulatory Requirements for Réunion (France)
As a French overseas department, Réunion follows French telecommunications regulations, overseen by ARCEP (Autorité de Régulation des Communications Électroniques et des Postes) and CNIL (Commission Nationale de l'Informatique et des Libertés). Ensure all your SMS communications comply with both French national and EU data protection laws, including GDPR.
Consent and Opt-In
Explicit Consent Requirements:
Obtain written or electronic consent before sending marketing messages
Ensure consent is freely given, specific, informed, and unambiguous
Maintain records of consent and keep them easily accessible
Clearly state the purpose of messaging at the time of consent
Compliant Opt-In Form Example:
Code
☐ Yes, I agree to receive promotional SMS messages from [Company Name]
about special offers, new products, and exclusive deals.
Message frequency: Up to 4 messages per month
Standard message and data rates may apply
You can opt out anytime by replying STOP
View our Privacy Policy: [URL]
Best Practices for Documentation:
Maintain detailed records of when and how you obtained consent
Store consent data in a secure, GDPR-compliant database
Implement double opt-in processes for marketing lists
Conduct regular audits of consent records
HELP/STOP and Other Commands
Include clear opt-out instructions in all marketing messages
Support the STOP command in both French and English
Honor these common keywords:
STOP, ARRÊT, DÉSABONNEMENT (unsubscribe)
AIDE, HELP (help)
Respond to STOP commands immediately and confirm the opt-out
Compliant Message Template:
Code
[Company]: Profitez de 20% de réduction ce weekend!
Visitez: example.com/promo
Répondez STOP pour vous désabonner
Do Not Call / Do Not Disturb Registries
Réunion follows the French Bloctel system for telemarketing opt-outs. Important: Bloctel applies only to voice telephone marketing calls and does NOT cover SMS marketing. SMS/MMS messages are governed by separate opt-in consent requirements under GDPR and French data protection law enforced by CNIL.
For SMS marketing, you must:
Obtain prior opt-in consent before sending marketing messages
Use designated commercial SMS number prefixes (0162, 0163, 0270, 0271, 0377, 0378, 0424, 0425, 0568, 0569, 0948, 0949 for metropolitan France as of January 1, 2023)
Maintain internal suppression lists separate from Bloctel
Process opt-out requests immediately
Note: Violations can result in fines up to €75,000 for individuals and €375,000 for companies
Time Zone Sensitivity
Réunion observes Réunion Time (RET) at UTC+4 year-round with no daylight saving time adjustments.
Marketing SMS Time Restrictions (effective March 1, 2023 per French law):
Allowed hours: Monday to Friday, 10:00 AM – 1:00 PM and 2:00 PM – 8:00 PM local time (UTC+4)
Prohibited: Saturdays, Sundays, and all public holidays
Note: While no specific French law mandates these exact hours for SMS (only voice calls have statutory restrictions), following these guidelines ensures your compliance with broader consumer protection regulations and industry best practices to avoid CNIL complaints.
SMS Sender ID Options and Phone Number Requirements in Réunion
Alphanumeric Sender ID for SMS in Réunion
Operator network capability: Supported
Registration requirements: Not required (no pre-registration needed)
Sender ID preservation: Yes, displayed as sent to recipients
Character limit: Up to 11 characters, letters and numbers only
Keep it recognizable: Use your company name or abbreviation (e.g., "BankXYZ", "ShopNow")
Avoid ambiguity: Don't use generic terms like "Alert" or "Info" that could be confused with spam
Character limits: 3-11 characters; most carriers enforce a minimum of 3 characters
No special characters: Only A-Z, a-z, 0-9 allowed; spaces count toward the 11-character limit
Case sensitivity: Use capitalization for readability (e.g., "MyStore" rather than "mystore")
Consistency: Use the same sender ID across all campaigns for brand recognition
Long Codes
Domestic vs. International: International long codes supported; domestic not available
Sender ID preservation: No, typically overwritten with randomshortcode
Provisioning time: Immediate for international numbers
Use cases: Transactional messaging, alerts, notifications
When to use Long Codes vs Alphanumeric IDs:
Use Alphanumeric IDs for: Brand recognition, marketing campaigns, notifications where replies are not needed, one-way transactional messages (order confirmations, shipping updates)
Use Long Codes for: Markets where alphanumeric IDs aren't supported, testing purposes, fallback when alphanumeric registration is pending
Note: In Réunion, alphanumeric sender IDs are preferred for most use cases due to better recognition and no registration requirements
Short Codes
Support: Available through mobile operators
Provisioning time: 8 – 12 weeks
Use cases: High-volume messaging, marketing campaigns, 2FA
Space out bulk campaigns to prevent network congestion
Localization
Use French as your primary language
Consider Creole for specific campaigns
Use appropriate date formats (DD/MM/YYYY)
Account for local cultural references and customs
Réunion Creole Guidance: Réunion Creole (Kréol Rényoné) is widely spoken alongside French. When to use Creole: Local community campaigns, cultural events, informal promotions targeting local residents. Common phrases: "Bonzour" (hello), "Mérsi" (thank you), "Koméla?" (how are you?). Best practice: Always provide a French version or test Creole messages with local speakers to ensure proper understanding and avoid misinterpretation.
Opt-Out Management
Process opt-outs within 24 hours
Maintain centralized opt-out database
Confirm opt-out with one final message
Conduct regular cleanup of contact lists
Technical Implementation for Opt-Out Handling:
TypeScript
// Example webhook handler for STOP commandsasyncfunctionhandleInboundSMS(from: string, body: string) {
const normalizedBody = body.trim().toUpperCase();
const stopKeywords = ['STOP', 'ARRÊT', 'DÉSABONNEMENT', 'UNSUBSCRIBE'];
if (stopKeywords.some(keyword => normalizedBody.includes(keyword))) {
// Add to suppression listawait database.optOuts.create({
phoneNumber: from,
optOutDate: newDate(),
source: 'sms_reply'
});
// Send confirmation (this is the last message they'll receive)awaitsendSMS(from,
"Vous avez été désinscrit. Vous ne recevrez plus de messages de notre part."
);
// Log for compliance auditawait auditLog.create({
action: 'opt_out_processed',
phoneNumber: from,
timestamp: newDate()
});
}
}
Delivery Rate: Target 95%+ (below 95% indicates data quality or platform issues)
Open Rate: Expect 90-98% (SMS inherently has high open rates; most opened within 3 minutes)
Click-Through Rate (CTR): Aim for 20%+ (excellent performance; 10-20% is average)
Conversion Rate: Target 21-40% depending on industry (tech: 31-40%, retail/e-commerce: 11-20%)
Opt-Out Rate: Keep below 1.5% (rates above 1.5% indicate content or frequency issues)
Response Time: 90% of recipients open SMS within 3 minutes of receipt
Monitoring by Carrier:
Track delivery rates separately for Orange Réunion, SRR, Telco OI, and Zeop Mobile
Set alerts if any single carrier's delivery rate drops below 90%
Investigate carrier-specific filtering if one operator shows consistently lower rates
SMS API Integration Guide for Réunion: Twilio, Sinch, MessageBird & Plivo
Twilio
Twilio provides a robust SMS API with specific support for Réunion's messaging requirements. Integration requires your Account SID and Auth Token for authentication.
TypeScript
import { Twilio } from'twilio';
// Initialize Twilio clientconst client = newTwilio(
process.env.TWILIO_ACCOUNT_SID,
process.env.TWILIO_AUTH_TOKEN
);
// Function to send SMS to RéunionasyncfunctionsendSMSToReunion(to: string,
message: string,
senderId: string) {
try {
// Ensure number is in E.164 format for Réunionconst formattedNumber = to.startsWith('+262') ? to : `+262${to}`;
const response = await client.messages.create({
body: message,
from: senderId, // Alphanumeric sender IDto: formattedNumber,
// Schedule message within allowed hours (10 AM – 1 PM, 2 PM – 8 PM Mon-Fri)scheduleType: 'fixed',
sendAt: newDate(), // Adjust if outside allowed hours// Request delivery receiptstatusCallback: 'https://your-domain.com/sms/status',
});
return response;
} catch (error) {
// Handle specific Twilio error codesif (error.code === 21614) {
console.error('Cannot send to landline number');
} elseif (error.code === 21211) {
console.error('Invalid phone number format');
} elseif (error.code === 21408) {
console.error('Permission denied for this destination');
}
throw error;
}
}
// Webhook handler for delivery receipts
app.post('/sms/status', (req, res) => {
const { MessageSid, MessageStatus, ErrorCode } = req.body;
console.log(`Message ${MessageSid} status: ${MessageStatus}`);
// Handle different statusesswitch (MessageStatus) {
case'delivered':
// Update database with successful deliverybreak;
case'failed':
case'undelivered':
console.error(`Delivery failed with error code: ${ErrorCode}`);
// Implement retry logic or alertbreak;
}
res.sendStatus(200);
});
Sinch
Sinch offers comprehensive SMS capabilities for Réunion, requiring API Token and Service Plan ID for authentication.
Queue messages during peak hours (8 – 10 AM local time)
Error Handling and Reporting
Common Error Codes by Provider:
Error Code
Provider
Meaning
Resolution
21614
Twilio
SMS to landline
Validate number type before sending
21211
Twilio
Invalid phone number
Use E.164 format (+262...)
21408
Twilio
Permission denied
Check account permissions for destination
429
All
Rate limit exceeded
Implement exponential backoff, reduce send rate
40001
Sinch
Missing/invalid parameters
Validate request body structure
40301
Sinch
Insufficient balance
Top up account balance
9
MessageBird
Insufficient balance
Add credits to account
21
MessageBird
Invalid recipient
Verify phone number format
155
Plivo
Destination rate limit
Reduce frequency to specific destination
171
Plivo
Invalid sender ID
Use alphanumeric ID or valid long code
Implementation Best Practices:
Implement comprehensive logging with Winston or similar
Track delivery receipts for all messages
Monitor carrier responses for blocking patterns
Set up alerts for unusual error rates
Store message metadata for compliance reporting
Frequently Asked Questions
What are the SMS marketing time restrictions in Réunion?
Marketing SMS in Réunion can only be sent Monday to Friday, 10:00 AM – 1:00 PM and 2:00 PM – 8:00 PM local time (UTC+4), effective March 1, 2023 per French law. Sending is prohibited on Saturdays, Sundays, and all public holidays. Transactional messages (account notifications, delivery updates, authentication codes) can be sent 24/7.
Does Bloctel apply to SMS marketing in Réunion?
No, Bloctel does NOT apply to SMS marketing. Bloctel is only for voice telephone marketing calls. SMS/MMS messages in Réunion are governed by separate opt-in consent requirements under GDPR and French data protection law enforced by CNIL. You must obtain prior opt-in consent before sending any marketing SMS.
What mobile operators serve Réunion Island?
Réunion is served by 4 licensed mobile operators as of May 1, 2025 (per ARCEP frequency allocations): Orange Réunion, SRR (SFR Réunion, holding over 50% market share), Telco OI (operating as Free Mobile and Only brands), and Zeop Mobile. All operators support SMS messaging with varying capabilities.
What timezone does Réunion use for SMS scheduling?
Réunion observes Réunion Time (RET) at UTC+4 year-round with no daylight saving time adjustments. When scheduling SMS campaigns, always use UTC+4 for local time calculations. This is 3 hours ahead of mainland France during standard time (2 hours ahead during French daylight saving time).
What are the penalties for violating SMS marketing rules in Réunion?
Violations of SMS marketing regulations in Réunion can result in fines up to €75,000 for individuals and €375,000 for companies. This includes failing to obtain proper consent, not using designated commercial SMS number prefixes (required since January 1, 2023), or violating GDPR data protection requirements.
Do I need special number prefixes for commercial SMS in Réunion?
Yes, for commercial SMS in metropolitan France (which applies to Réunion), you must use designated prefixes as of January 1, 2023: 0162, 0163, 0270, 0271, 0377, 0378, 0424, 0425, 0568, 0569, 0948, 0949. Regular mobile numbers starting with 06 or 07 cannot be used for commercial messaging.
What is the country code for SMS to Réunion?
The country code for Réunion is +262. All phone numbers must be formatted in E.164 format for SMS delivery: +262 followed by the 9-digit local number. For example: +262692123456. Réunion uses Mobile Country Code (MCC) 647.
Are alphanumeric sender IDs supported in Réunion?
Yes, alphanumeric sender IDs are fully supported in Réunion with no registration required. You can use up to 11 characters (letters and numbers only). Sender IDs are displayed as sent, making them ideal for brand recognition in transactional and marketing messages.
What SMS APIs work best for Réunion messaging?
Twilio, Sinch, MessageBird, and Plivo all provide robust SMS APIs for Réunion with specific compliance features. Pricing comparison (2025 rates): Plivo ($0.10198/msg) offers the lowest cost, followed by Sinch ($0.109/msg), Infobip ($0.13/msg), and Twilio ($0.1911/msg). Feature differentiation: Twilio excels in documentation and advanced features; Plivo offers best pricing for high volumes; Sinch provides balanced pricing with rich messaging features; MessageBird focuses on simplicity and reliable delivery. Choose based on your volume (Plivo for 100k+/month), integration complexity (MessageBird for simple setups), or feature requirements (Twilio for advanced workflows).
Is two-way SMS supported in Réunion?
No, two-way SMS is not supported in Réunion through standard channels. If you require two-way communication capabilities, consider alternative messaging solutions such as WhatsApp Business API, dedicated short code services, or other OTT messaging platforms with bidirectional support.
Recap and Additional Resources
Key Takeaways:
Always use alphanumeric sender IDs for better deliverability
Respect time windows (10 AM – 1 PM, 2 PM – 8 PM Mon-Fri) for marketing messages
Maintain proper consent records and honor opt-outs immediately
Test thoroughly across all major carriers
Common Pitfalls and Troubleshooting:
Low delivery rates (<95%):
Verify phone numbers are in E.164 format (+262XXXXXXXXX)
Check for invalid numbers or landlines in your list
Review message content for spam triggers (excessive caps, multiple URLs)
Confirm sender ID is properly configured
Messages blocked by carriers:
Remove excessive punctuation (!!!, ???)
Use whitelisted URL shorteners only
Avoid restricted industry keywords (gambling, crypto)
Réunion supports SMS messaging through international long codes and alphanumeric sender IDs. Short codes are also available but require longer provisioning times. Ensure compliance with French and EU data protection laws, including GDPR, for all marketing messages. Two-way SMS is not supported through standard channels; consider alternatives or dedicated short codes for two-way communication needs.
The Mobile Country Code (MCC) for Réunion is 647. This code is used in conjunction with the Mobile Network Code (MNC) to identify mobile network operators within Réunion. This information is essential for SMS routing and delivery.
MMS messages are automatically converted to SMS with an embedded URL link in Réunion to ensure compatibility across all devices. This allows for rich media content sharing through a web-based interface while maintaining deliverability to all handsets.
Marketing SMS messages are permitted between 8 AM and 10 PM local time in Réunion, observing UTC+4. No marketing messages are allowed on Sundays or public holidays. Transactional messages and emergency notifications are exempt from these restrictions.
No, sending SMS to landline numbers in Réunion is not supported. Attempts to send messages to landlines will result in a 400 response with error code 21614, and you will not be charged.
Explicit consent, freely given, specific, informed, and unambiguous is required before sending marketing SMS messages in Réunion. Maintain detailed records of consent, ideally through double opt-in processes, and ensure easy access to these records for compliance with GDPR.
All marketing messages must include clear opt-out instructions in both French and English. Support the STOP, ARRÊT, DÉSABONNEMENT (unsubscribe), AIDE, and HELP keywords. Response to STOP commands must be immediate and confirmed.
Alphanumeric sender IDs (up to 11 characters), international long codes, and short codes are supported in Réunion. Domestic long codes are not available. Alphanumeric Sender IDs are recommended for better deliverability and brand recognition.
Standard SMS messages in Réunion are limited to 160 characters for GSM-7 encoding or 70 characters for Unicode (UCS-2) encoding. Messages exceeding these limits are segmented into concatenated messages.
Comply with ARCEP and CNIL regulations by obtaining explicit consent for marketing messages, respecting messaging time restrictions, honoring opt-out requests, and avoiding restricted content such as gambling promotions and adult material. Maintain thorough records for compliance reporting.
Use alphanumeric sender IDs, personalize messages, keep messages concise (under 160 characters), localize content to French and Creole, respect cultural norms, and maintain consistent brand voice. Implement robust opt-out management and monitor delivery rates for optimal campaign performance.
Twilio, Sinch, MessageBird, and Plivo offer SMS API integrations with specific features for Réunion's regulatory requirements. Each platform requires specific authentication credentials and offers various functionalities for sending, scheduling, and managing SMS campaigns.
Default rate limits are typically 100 messages per second. For high-volume campaigns, implement batch sending and exponential backoff for retry logic. Queue messages during peak hours to avoid network congestion.
SMS Market Overview: Réunion Island (France)
SMS Market in Réunion: Réunion, as a French overseas department, maintains robust mobile telecommunications infrastructure serving over 860,000 residents. The market is served by 4 licensed operators as of May 1, 2025 (per ARCEP frequency allocations): Orange Réunion, SRR (SFR Réunion, holding over 50% market share), Telco OI (operating as Free Mobile and Only brands, acquired by Iliad Group in 2016), and Zeop Mobile. While SMS remains crucial for business communications and authentication, OTT messaging apps like WhatsApp and Facebook Messenger have significant penetration. Android devices hold majority market share, though iOS devices maintain strong presence among higher-income consumers.
SMS Pricing: Based on 2025 market data, SMS pricing to Réunion ranges from $0.10198 to $0.1911 per message across major providers (Sent.dm pricing comparison). Plivo offers the most competitive base rate at $0.10198, followed by Sinch ($0.109), Infobip ($0.13), and Twilio ($0.1911). Volume discounts are available from all providers, with businesses sending 100,000+ messages monthly typically securing 20-40% below standard pay-as-you-go pricing. Mobile penetration exceeds 100% of the population, with 4G/LTE coverage across all major population centers since 2017.
SMS Features and Technical Capabilities in Réunion
Réunion supports most modern SMS features with some limitations, operating under French telecommunications regulations while maintaining its distinct market characteristics.
Two-way SMS Support
Two-way SMS is not supported in Réunion through standard channels. Technical reason: All French mobile operators have contractually prohibited the delivery of A2P (Application-to-Person) services to their customers using standard mobile phone numbers (Twilio France guidelines). This restriction prevents businesses from receiving replies on standard long codes. If you require two-way communication, consider alternative messaging solutions such as WhatsApp Business API, dedicated short code services (which support MO/MT messaging), or other OTT messaging platforms with bidirectional support.
Concatenated Messages (Segmented SMS)
Support: Yes, concatenated messages are supported, though availability may vary by sender ID type. Message length rules: Standard SMS length of 160 characters for GSM-7 encoding, or 70 characters for Unicode (UCS-2) encoding. Encoding considerations: Both GSM-7 and UCS-2 encodings are supported. Messages using special characters automatically use UCS-2 encoding, reducing the character limit per segment.
Segmentation example: A 200-character message using GSM-7 encoding splits into 2 segments (153 characters each due to 7-character header overhead). The same message with special characters requiring UCS-2 splits into 3 segments (67 characters each with 3-character header). Recipients see the message reassembled as one continuous text.
MMS Support
MMS messages are automatically converted to SMS with an embedded URL link. This ensures compatibility across all devices while still allowing rich media content to be shared through a web-based interface. Technical process: When you send an MMS, the provider uploads the media to a secure server and generates a short URL. The SMS contains this URL (typically formatted as
https://provider.com/v/abc123), which recipients click to view images, videos, or audio in their mobile browser.Recipient Phone Number Compatibility
Number Portability
Number portability is not available in Réunion. This simplifies message routing as numbers remain tied to their original carriers. Routing implications: Without MNP (Mobile Number Portability), SMS routing is more predictable and delivery rates are typically higher (95%+ vs. 90-93% in markets with MNP) because the number prefix directly identifies the destination operator, eliminating lookup delays and routing errors common in ported number scenarios.
Sending SMS to Landlines
Sending SMS to landline numbers is not supported in Réunion. Attempts to send messages to landline numbers will result in a 400 response with error code 21614, and no charges will be applied to your account.
SMS Compliance and Regulatory Requirements for Réunion (France)
As a French overseas department, Réunion follows French telecommunications regulations, overseen by ARCEP (Autorité de Régulation des Communications Électroniques et des Postes) and CNIL (Commission Nationale de l'Informatique et des Libertés). Ensure all your SMS communications comply with both French national and EU data protection laws, including GDPR.
Consent and Opt-In
Explicit Consent Requirements:
Compliant Opt-In Form Example:
Best Practices for Documentation:
HELP/STOP and Other Commands
Compliant Message Template:
Do Not Call / Do Not Disturb Registries
Réunion follows the French Bloctel system for telemarketing opt-outs. Important: Bloctel applies only to voice telephone marketing calls and does NOT cover SMS marketing. SMS/MMS messages are governed by separate opt-in consent requirements under GDPR and French data protection law enforced by CNIL.
For SMS marketing, you must:
Time Zone Sensitivity
Réunion observes Réunion Time (RET) at UTC+4 year-round with no daylight saving time adjustments.
Marketing SMS Time Restrictions (effective March 1, 2023 per French law):
2025 Réunion Public Holidays to Avoid (based on Calendarific official calendar):
Timezone Conversion Example (TypeScript):
import { DateTime } from 'luxon'; function canSendMarketingSMS(date: Date): boolean { const reunionTime = DateTime.fromJSDate(date).setZone('Indian/Reunion'); // UTC+4 const hour = reunionTime.hour; const day = reunionTime.weekday; // 1=Mon, 7=Sun // Check if weekend if (day > 5) return false; // Check allowed hours (10AM-1PM or 2PM-8PM) const isAllowedHour = (hour >= 10 && hour < 13) || (hour >= 14 && hour < 20); return isAllowedHour; }Note: While no specific French law mandates these exact hours for SMS (only voice calls have statutory restrictions), following these guidelines ensures your compliance with broader consumer protection regulations and industry best practices to avoid CNIL complaints.
SMS Sender ID Options and Phone Number Requirements in Réunion
Alphanumeric Sender ID for SMS in Réunion
Operator network capability: Supported Registration requirements: Not required (no pre-registration needed) Sender ID preservation: Yes, displayed as sent to recipients Character limit: Up to 11 characters, letters and numbers only
Best Practices for Alphanumeric Sender IDs (Infobip guidelines):
Long Codes
Domestic vs. International: International long codes supported; domestic not available Sender ID preservation: No, typically overwritten with randomshortcode Provisioning time: Immediate for international numbers Use cases: Transactional messaging, alerts, notifications
When to use Long Codes vs Alphanumeric IDs:
Short Codes
Support: Available through mobile operators Provisioning time: 8 – 12 weeks Use cases: High-volume messaging, marketing campaigns, 2FA
Short Code Details (Twilio France guidelines):
SMS Content Restrictions and Prohibited Industries in Réunion
Restricted Industries:
Content Filtering
Carrier Filtering Rules:
Common Spam Trigger Words (examples that may trigger filters):
Examples - What Passes vs. What Gets Blocked:
Best Practices to Avoid Blocking:
SMS Best Practices and Optimization Strategies for Réunion
Messaging Strategy
Effective vs. Ineffective Message Examples:
✅ Effective Transactional Message:
Why it works: Personalized, clear information, single relevant URL, under 160 characters
❌ Ineffective Marketing Message:
Why it fails: ALL CAPS, excessive punctuation, lacks personalization, spam-like urgency, likely to be filtered
✅ Effective Marketing Message:
Why it works: Personalized, specific offer, clear expiration, includes opt-out
Sending Frequency and Timing
Localization
Réunion Creole Guidance: Réunion Creole (Kréol Rényoné) is widely spoken alongside French. When to use Creole: Local community campaigns, cultural events, informal promotions targeting local residents. Common phrases: "Bonzour" (hello), "Mérsi" (thank you), "Koméla?" (how are you?). Best practice: Always provide a French version or test Creole messages with local speakers to ensure proper understanding and avoid misinterpretation.
Opt-Out Management
Technical Implementation for Opt-Out Handling:
// Example webhook handler for STOP commands async function handleInboundSMS(from: string, body: string) { const normalizedBody = body.trim().toUpperCase(); const stopKeywords = ['STOP', 'ARRÊT', 'DÉSABONNEMENT', 'UNSUBSCRIBE']; if (stopKeywords.some(keyword => normalizedBody.includes(keyword))) { // Add to suppression list await database.optOuts.create({ phoneNumber: from, optOutDate: new Date(), source: 'sms_reply' }); // Send confirmation (this is the last message they'll receive) await sendSMS(from, "Vous avez été désinscrit. Vous ne recevrez plus de messages de notre part." ); // Log for compliance audit await auditLog.create({ action: 'opt_out_processed', phoneNumber: from, timestamp: new Date() }); } }Testing and Monitoring
Key SMS Metrics and Success Thresholds (Infobip SMS benchmarks):
Monitoring by Carrier:
SMS API Integration Guide for Réunion: Twilio, Sinch, MessageBird & Plivo
Twilio
Twilio provides a robust SMS API with specific support for Réunion's messaging requirements. Integration requires your Account SID and Auth Token for authentication.
import { Twilio } from 'twilio'; // Initialize Twilio client const client = new Twilio( process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN ); // Function to send SMS to Réunion async function sendSMSToReunion( to: string, message: string, senderId: string ) { try { // Ensure number is in E.164 format for Réunion const formattedNumber = to.startsWith('+262') ? to : `+262${to}`; const response = await client.messages.create({ body: message, from: senderId, // Alphanumeric sender ID to: formattedNumber, // Schedule message within allowed hours (10 AM – 1 PM, 2 PM – 8 PM Mon-Fri) scheduleType: 'fixed', sendAt: new Date(), // Adjust if outside allowed hours // Request delivery receipt statusCallback: 'https://your-domain.com/sms/status', }); return response; } catch (error) { // Handle specific Twilio error codes if (error.code === 21614) { console.error('Cannot send to landline number'); } else if (error.code === 21211) { console.error('Invalid phone number format'); } else if (error.code === 21408) { console.error('Permission denied for this destination'); } throw error; } } // Webhook handler for delivery receipts app.post('/sms/status', (req, res) => { const { MessageSid, MessageStatus, ErrorCode } = req.body; console.log(`Message ${MessageSid} status: ${MessageStatus}`); // Handle different statuses switch (MessageStatus) { case 'delivered': // Update database with successful delivery break; case 'failed': case 'undelivered': console.error(`Delivery failed with error code: ${ErrorCode}`); // Implement retry logic or alert break; } res.sendStatus(200); });Sinch
Sinch offers comprehensive SMS capabilities for Réunion, requiring API Token and Service Plan ID for authentication.
import { SinchClient } from '@sinch/sdk-core'; // Initialize Sinch client const sinchClient = new SinchClient({ projectId: process.env.SINCH_PROJECT_ID, apiToken: process.env.SINCH_API_TOKEN }); // Function to send SMS via Sinch async function sendSinchSMS( recipientNumber: string, messageText: string ) { try { const response = await sinchClient.sms.batches.send({ sendSMSRequestBody: { to: [recipientNumber], body: messageText, // Set delivery time window for Réunion (Mon-Fri only) deliveryReport: 'summary', parameters: { delivery_window: { start_time: '10:00', end_time: '20:00' } } } }); // Response structure includes batch_id and status console.log(`Batch sent with ID: ${response.id}`); console.log(`Initial status: ${response.status}`); return response; } catch (error) { console.error('Sinch SMS Error:', error); // Handle rate limiting (429) if (error.status === 429) { console.error('Rate limit exceeded, implement exponential backoff'); } throw error; } } // Check delivery report async function getDeliveryReport(batchId: string) { const report = await sinchClient.sms.batches.get({ batch_id: batchId }); console.log(`Total: ${report.total_message_count}`); console.log(`Delivered: ${report.delivery_report?.statuses?.delivered || 0}`); console.log(`Failed: ${report.delivery_report?.statuses?.failed || 0}`); return report; }MessageBird
MessageBird provides reliable SMS delivery to Réunion with straightforward API integration.
import { MessageBirdClient } from 'messagebird'; // Initialize MessageBird client const messagebird = new MessageBirdClient( process.env.MESSAGEBIRD_API_KEY ); // Function to send SMS via MessageBird async function sendMessageBirdSMS( to: string, message: string, senderId: string ) { return new Promise((resolve, reject) => { messagebird.messages.create({ originator: senderId, recipients: [to], body: message, // Réunion specific parameters datacoding: 'auto', // Handles special characters type: 'premium', // For marketing messages // Webhook for delivery status reportUrl: 'https://your-domain.com/messagebird/status', }, (err, response) => { if (err) { reject(err); } else { resolve(response); } }); }); } // Webhook handler for MessageBird delivery reports app.post('/messagebird/status', (req, res) => { const { id, status, statusDatetime } = req.body; console.log(`Message ${id} status: ${status} at ${statusDatetime}`); // Status values: scheduled, sent, buffered, delivered, expired, // delivery_failed, rejected if (status === 'delivery_failed' || status === 'rejected') { // Log failure and potentially retry console.error(`Message delivery failed: ${id}`); } res.sendStatus(200); });Plivo
Plivo offers SMS capabilities with specific features for Réunion's regulatory requirements.
import { Client } from 'plivo'; // Initialize Plivo client const plivo = new Client( process.env.PLIVO_AUTH_ID, process.env.PLIVO_AUTH_TOKEN ); // Time restriction validation function isWithinAllowedHours(): boolean { const now = new Date(); const reunionTime = new Date(now.toLocaleString('en-US', { timeZone: 'Indian/Reunion' })); const day = reunionTime.getDay(); // 0=Sun, 6=Sat const hour = reunionTime.getHours(); // Weekend check if (day === 0 || day === 6) return false; // Allowed hours: 10AM-1PM or 2PM-8PM return (hour >= 10 && hour < 13) || (hour >= 14 && hour < 20); } // Function to send SMS via Plivo async function sendPlivoSMS( destination: string, message: string, senderId: string, isMarketing: boolean = false ) { try { // Validate time restrictions for marketing messages if (isMarketing && !isWithinAllowedHours()) { throw new Error('Cannot send marketing SMS outside allowed hours (Mon-Fri 10AM-1PM, 2PM-8PM UTC+4)'); } const response = await plivo.messages.create({ src: senderId, dst: destination, text: message, // Réunion specific options url: 'https://your-domain.com/plivo/status', method: 'POST', type: 'sms' }); console.log(`Message UUID: ${response.messageUuid[0]}`); return response; } catch (error) { console.error('Plivo Error:', error); throw error; } } // Status callback handler app.post('/plivo/status', (req, res) => { const { MessageUUID, Status, ErrorCode } = req.body; // Plivo statuses: queued, sent, failed, delivered, undelivered, rejected console.log(`Message ${MessageUUID} status: ${Status}`); if (Status === 'failed' || Status === 'rejected') { console.error(`Delivery failed. Error code: ${ErrorCode}`); } res.sendStatus(200); });API Rate Limits and Throughput
Provider-Specific Rate Limits Comparison:
Best Practices:
Error Handling and Reporting
Common Error Codes by Provider:
Implementation Best Practices:
Frequently Asked Questions
What are the SMS marketing time restrictions in Réunion?
Marketing SMS in Réunion can only be sent Monday to Friday, 10:00 AM – 1:00 PM and 2:00 PM – 8:00 PM local time (UTC+4), effective March 1, 2023 per French law. Sending is prohibited on Saturdays, Sundays, and all public holidays. Transactional messages (account notifications, delivery updates, authentication codes) can be sent 24/7.
Does Bloctel apply to SMS marketing in Réunion?
No, Bloctel does NOT apply to SMS marketing. Bloctel is only for voice telephone marketing calls. SMS/MMS messages in Réunion are governed by separate opt-in consent requirements under GDPR and French data protection law enforced by CNIL. You must obtain prior opt-in consent before sending any marketing SMS.
What mobile operators serve Réunion Island?
Réunion is served by 4 licensed mobile operators as of May 1, 2025 (per ARCEP frequency allocations): Orange Réunion, SRR (SFR Réunion, holding over 50% market share), Telco OI (operating as Free Mobile and Only brands), and Zeop Mobile. All operators support SMS messaging with varying capabilities.
What timezone does Réunion use for SMS scheduling?
Réunion observes Réunion Time (RET) at UTC+4 year-round with no daylight saving time adjustments. When scheduling SMS campaigns, always use UTC+4 for local time calculations. This is 3 hours ahead of mainland France during standard time (2 hours ahead during French daylight saving time).
What are the penalties for violating SMS marketing rules in Réunion?
Violations of SMS marketing regulations in Réunion can result in fines up to €75,000 for individuals and €375,000 for companies. This includes failing to obtain proper consent, not using designated commercial SMS number prefixes (required since January 1, 2023), or violating GDPR data protection requirements.
Do I need special number prefixes for commercial SMS in Réunion?
Yes, for commercial SMS in metropolitan France (which applies to Réunion), you must use designated prefixes as of January 1, 2023: 0162, 0163, 0270, 0271, 0377, 0378, 0424, 0425, 0568, 0569, 0948, 0949. Regular mobile numbers starting with 06 or 07 cannot be used for commercial messaging.
What is the country code for SMS to Réunion?
The country code for Réunion is +262. All phone numbers must be formatted in E.164 format for SMS delivery: +262 followed by the 9-digit local number. For example: +262692123456. Réunion uses Mobile Country Code (MCC) 647.
Are alphanumeric sender IDs supported in Réunion?
Yes, alphanumeric sender IDs are fully supported in Réunion with no registration required. You can use up to 11 characters (letters and numbers only). Sender IDs are displayed as sent, making them ideal for brand recognition in transactional and marketing messages.
What SMS APIs work best for Réunion messaging?
Twilio, Sinch, MessageBird, and Plivo all provide robust SMS APIs for Réunion with specific compliance features. Pricing comparison (2025 rates): Plivo ($0.10198/msg) offers the lowest cost, followed by Sinch ($0.109/msg), Infobip ($0.13/msg), and Twilio ($0.1911/msg). Feature differentiation: Twilio excels in documentation and advanced features; Plivo offers best pricing for high volumes; Sinch provides balanced pricing with rich messaging features; MessageBird focuses on simplicity and reliable delivery. Choose based on your volume (Plivo for 100k+/month), integration complexity (MessageBird for simple setups), or feature requirements (Twilio for advanced workflows).
Is two-way SMS supported in Réunion?
No, two-way SMS is not supported in Réunion through standard channels. If you require two-way communication capabilities, consider alternative messaging solutions such as WhatsApp Business API, dedicated short code services, or other OTT messaging platforms with bidirectional support.
Recap and Additional Resources
Key Takeaways:
Common Pitfalls and Troubleshooting:
Low delivery rates (<95%):
Messages blocked by carriers:
High opt-out rates (>1.5%):
Time restriction violations:
Next Steps:
Additional Information:
Best Practice Resources: