Check phone number activity, carrier details, line type and more.
Brazil SMS Best Practices, Compliance, and Features
Brazil SMS Market Overview
Locale name:
Brazil
ISO code:
BR
Region
South America
Mobile country code (MCC)
724
Dialing Code
+55
Market Conditions: Brazil has a thriving mobile market with high smartphone penetration (75.6% as of 2021) and strong SMS usage alongside popular OTT apps like WhatsApp. The country's major mobile operators include Vivo, TIM, Claro, and Oi. Android devices dominate the market, accounting for approximately 85% of mobile devices, while iOS devices make up roughly 15%. The e-commerce sector is particularly active, with businesses heavily utilizing SMS for customer communications and authentication.
Key SMS Features and Capabilities in Brazil
Brazil offers comprehensive SMS capabilities including two-way messaging, concatenated messages, and MMS-to-SMS conversion, with strong support across all major carriers.
Two-way SMS Support
Brazil fully supports two-way SMS messaging across all major carriers. There are no specific restrictions beyond standard compliance requirements, making it ideal for interactive messaging campaigns and customer support.
Concatenated Messages (Segmented SMS)
Support: Yes, concatenation is supported across most carriers, though some limitations exist for certain sender ID types. Message length rules:
NEXTEL: 140 characters per segment
All other carriers: 160 characters per segment Encoding considerations: GSM-7 encoding is standard, while UCS-2 is supported by most carriers except Oi, NEXTEL, and CTBC (Algar).
MMS Support
MMS messages are automatically converted to SMS with an embedded URL link. This ensures compatibility across all carriers while still allowing rich media content to be shared effectively through linked resources.
Recipient Phone Number Compatibility
Number Portability
Number portability is fully available in Brazil. This feature allows users to keep their phone numbers when switching between different network providers, with no impact on SMS delivery or routing.
Sending SMS to Landlines
Sending SMS to landline numbers is not supported in Brazil. Attempts to send messages to landline numbers will result in a 400 response error (code 21614) through the REST API, with no message logging or charges applied.
Compliance and Regulatory Guidelines for SMS in Brazil
Brazil's SMS communications are governed by the Brazilian General Data Protection Law (LGPD) and overseen by the National Telecommunications Agency (ANATEL). These regulations emphasize data privacy, consumer rights, and transparent communication practices.
Consent and Opt-In
Explicit Consent Requirements:
Written or digital confirmation of opt-in must be obtained before sending marketing messages
Consent records must be maintained and easily accessible
Purpose of communication must be clearly stated during opt-in
Separate consent required for different types of communications
Best practices for obtaining consent:
Use double opt-in verification
Maintain detailed consent logs including timestamp and method
Provide clear terms and conditions
Allow easy access to privacy policies
HELP/STOP and Other Commands
All SMS campaigns must support standard opt-out keywords:
"PARE" (Stop)
"SAIR" (Exit)
"AJUDA" (Help)
Messages must be in Portuguese
Response to HELP/STOP commands must be immediate and free of charge
Confirmation of opt-out must be sent within 24 hours
Do Not Call / Do Not Disturb Registries
Brazil does not maintain a centralized DND registry. However, businesses must:
Maintain their own suppression lists
Honor opt-out requests within 24 hours
Keep records of blocked numbers
Implement proactive filtering systems to prevent messaging to opted-out users
Time Zone Sensitivity
Time Restrictions:
Marketing messages prohibited outside 9:00-22:00 local time
No marketing messages allowed on Sundays
Brazil spans three time zones - must respect local time in each zone
Emergency and transactional messages exempt from time restrictions
Phone Numbers Options and SMS Sender Types for Brazil
Pre-registration available for TIM, CLARO, and VIVO networks
10-week provisioning time
Uppercase Sender ID recommended (required for VIVO) Sender ID preservation: Yes, preserved across supported networks
Long Codes
Domestic vs. International:
Domestic: Supported for P2P messaging only
International: Not supported directly Sender ID preservation:
Domestic: Yes
International: No, may be overwritten with random codes Provisioning time: Immediate for domestic numbers Use cases: Person-to-person communications, customer service
Short Codes
Support: Fully supported across all major carriers Provisioning time: 2-4 weeks Use cases:
Marketing campaigns
Two-factor authentication
Customer notifications
High-volume messaging
Restricted SMS Content, Industries, and Use Cases
Prohibited Content:
Adult content
Gambling services
Political messages
Religious content
Controlled substances
Cannabis-related content
Contest promotions
Telecommunication services
Content Filtering
Carrier Filtering Rules:
Oi, NEXTEL, and CTBC (Algar) don't support Unicode
Accented characters automatically converted to ASCII
M2M numbers handled on best-effort basis
Tips to Avoid Blocking:
Use plain text without special characters
Avoid URL shorteners
Keep message length within carrier limits
Use registered sender IDs
Maintain consistent sending patterns
Best Practices for Sending SMS in Brazil
Messaging Strategy
Keep messages under 160 characters when possible
Include clear call-to-action
Use personalization tokens strategically
Maintain consistent brand voice
Sending Frequency and Timing
Limit to 2-3 messages per week per recipient
Respect time zone differences
Avoid major holidays unless essential
Space out bulk campaigns to prevent network congestion
Localization
Default to Portuguese for all messages
Use formal Portuguese ("você" instead of "tu")
Consider regional language variations
Provide language preference options
Opt-Out Management
Process opt-outs in real-time
Maintain centralized opt-out database
Confirm opt-out status to users
Regular audit of opt-out lists
Testing and Monitoring
Test across all major carriers (Vivo, TIM, Claro, Oi)
Monitor delivery rates by carrier
Track engagement metrics
Regular testing of opt-out functionality
SMS API integrations for Brazil
Twilio
Twilio provides a robust SMS API with specific support for Brazil's messaging requirements. Authentication uses account SID and auth token credentials.
import{ Twilio }from'twilio';// Initialize Twilio clientconst client =newTwilio( process.env.TWILIO_ACCOUNT_SID,// Your Account SID process.env.TWILIO_AUTH_TOKEN// Your Auth Token);// Function to send SMS to BrazilasyncfunctionsendSMSToBrazil( to:string, message:string):Promise<void>{try{// Create message with Brazil-specific formattingconst response =await client.messages.create({ to:`+55${to}`,// Brazil country code from: process.env.TWILIO_PHONE_NUMBER, body: message,// Optional: Schedule message within allowed hours (9:00-22:00) scheduleType:'fixed', sendAt:newDate('2024-01-01T13:00:00-03:00')// Brazil timezone});console.log(`Message sent successfully: ${response.sid}`);}catch(error){console.error('Error sending message:', error);}}
Sinch
Sinch offers direct carrier connections in Brazil with support for high-volume messaging.
import{ SinchClient }from'@sinch/sdk-core';// Initialize Sinch clientconst sinch =newSinchClient({ servicePlanId: process.env.SINCH_SERVICE_PLAN_ID, apiToken: process.env.SINCH_API_TOKEN, smsRegion:'br'// Specify Brazil region});// Function to send batch SMSasyncfunctionsendBatchSMS( recipients:string[], message:string):Promise<void>{try{const response =await sinch.sms.batches.create({ body: message, recipients: recipients.map(num =>`+55${num}`), deliveryReport:'summary',// Get delivery statistics parameters:{// Support for Brazilian Portuguese characters encoding:'auto'}});console.log(`Batch ID: ${response.id}`);}catch(error){console.error('Batch sending failed:', error);}}
MessageBird
MessageBird provides reliable SMS delivery in Brazil with support for alphanumeric sender IDs.
import{ MessageBird }from'messagebird';// Initialize MessageBird clientconst messagebird =newMessageBird(process.env.MESSAGEBIRD_API_KEY);// Function to send SMS with delivery trackingasyncfunctionsendTrackedSMS( recipient:string, message:string):Promise<void>{const params ={ originator:'YourBrand',// Alphanumeric sender ID recipients:[`+55${recipient}`], body: message, reportUrl:'https://your-webhook.com/delivery-reports'};try{const response =awaitnewPromise((resolve, reject)=>{ messagebird.messages.create(params,(err, response)=>{if(err)reject(err);elseresolve(response);});});console.log('Message sent:', response);}catch(error){console.error('Sending failed:', error);}}
Plivo
Plivo offers advanced SMS features with support for Unicode and concatenated messages.
import{ Client }from'plivo';// Initialize Plivo clientconst client =newClient( process.env.PLIVO_AUTH_ID, process.env.PLIVO_AUTH_TOKEN);// Function to send Unicode SMSasyncfunctionsendUnicodeSMS( to:string, message:string):Promise<void>{try{const response =await client.messages.create({ src: process.env.PLIVO_PHONE_NUMBER, dst:`+55${to}`, text: message, type:'unicode',// Support for Portuguese special characters url:'https://your-webhook.com/status'// Status callback});console.log('Message UUID:', response.messageUuid);}catch(error){console.error('Message sending failed:', error);}}
API Rate Limits and Throughput
Default rate limits vary by provider (typically 1-10 messages per second)
Implement exponential backoff for retry logic
Use batch APIs for high-volume sending
Queue messages during peak hours
Throughput Management Strategies:
Implement message queuing system
Use batch APIs when possible
Monitor delivery rates and adjust sending speed
Distribute load across multiple sender IDs
Error Handling and Reporting
Implement comprehensive logging
Monitor delivery receipts
Track carrier responses
Set up automated alerts for error thresholds
Recap and Additional Resources
Key Takeaways:
Obtain explicit consent before sending marketing messages
Respect time zone restrictions (9:00-22:00 local time)