Peru offers standard SMS capabilities with support for concatenated messages and number portability, though two-way SMS functionality is limited.
Two-way SMS Support
Two-way SMS is not supported in Peru through standard API integrations. Businesses requiring interactive messaging capabilities should consider alternative communication channels or specialized local partnerships.
Concatenated Messages (Segmented SMS)
Support: Yes, concatenation is supported for most sender ID types, though support may vary by carrier. Message length rules: Standard SMS messages are limited to 160 characters (GSM-7) or 70 characters (UCS-2) before splitting occurs. Encoding considerations: Both GSM-7 and UCS-2 encoding are supported, with UCS-2 required for messages containing special characters or non-Latin alphabets.
MMS Support
MMS messages are automatically converted to SMS with an embedded URL link. This conversion ensures message delivery while maintaining rich media accessibility through web links. For optimal user experience, ensure media files are hosted on reliable, mobile-friendly platforms.
Recipient Phone Number Compatibility
Number Portability
Number portability is available in Peru, allowing users to keep their phone numbers when switching carriers. This feature does not significantly impact message delivery or routing, as the system automatically handles carrier identification.
Sending SMS to Landlines
Sending SMS to landline numbers is not supported in Peru. Attempts to send messages to landline numbers will result in a 400 response error (code 21614) through the API, with no message delivery and no charges incurred.
Compliance and Regulatory Guidelines for SMS in Peru
Peru's SMS communications are governed by the Personal Data Protection Law (PDPL) and overseen by the National Authority for Data Protection. The telecommunications regulator OSIPTEL provides additional oversight for mobile communications.
Consent and Opt-In
Explicit Consent Requirements:
Obtain prior, informed, express, and unequivocal consent before sending marketing messages
Document consent collection method and timestamp
Maintain clear privacy policies that outline data usage
Provide transparent opt-in mechanisms during user registration
Best Practices for Consent Collection:
Use double opt-in verification for marketing lists
Keep detailed records of consent acquisition
Include clear terms and conditions during signup
Regularly update consent records
HELP/STOP and Other Commands
All SMS campaigns must support standard opt-out keywords:
"STOP" or "PARA" (Spanish)
"AYUDA" or "HELP" for assistance
Support both English and Spanish commands
Respond to opt-out requests within 24 hours
Provide clear instructions in the local language (Spanish)
Do Not Call / Do Not Disturb Registries
While Peru does not maintain a centralized Do Not Call registry, businesses should:
Maintain internal suppression lists
Honor opt-out requests immediately
Document all opt-out requests
Regularly clean contact databases
Implement automated opt-out processing
Time Zone Sensitivity
Peru operates in PET (UTC-5) timezone. Recommended messaging hours:
Business Days: 8:00 AM to 8:00 PM PET
Weekends: 9:00 AM to 6:00 PM PET
Avoid messaging during national holidays
Emergency messages exempt from time restrictions
Phone Numbers Options and SMS Sender Types for Peru
Alphanumeric Sender ID
Operator network capability: Supported Registration requirements: Pre-registration not required Sender ID preservation: No - IDs are overwritten with short or long codes Usage notes: While alphanumeric sender IDs can be submitted, they will be converted to numeric formats by carriers
Long Codes
Domestic vs. International:
Domestic long codes not supported
International long codes supported but with limitations
Sender ID preservation: No - original sender IDs are not preserved
Provisioning time: Immediate to 24 hours
Use cases: Transactional messages, alerts, notifications
Short Codes
Support: Available through local carriers
Provisioning time: 8-12 weeks
Use cases:
High-volume marketing campaigns
Two-factor authentication
Customer service messaging
Promotional broadcasts
Restricted SMS Content, Industries, and Use Cases
Restricted Industries:
Gambling and betting services
Adult content or services
Unauthorized financial services
Unregistered pharmaceutical products
Regulated Industries:
Financial services require additional disclaimers
Healthcare messages must comply with HIPAA-equivalent standards
Political messaging requires clear sender identification
Content Filtering
Carrier Filtering Rules:
Messages containing certain keywords may be blocked
URLs should be from approved domains
Excessive punctuation may trigger spam filters
Best Practices to Avoid Blocking:
Avoid URL shorteners
Limit special characters
Use clear, professional language
Maintain consistent sending patterns
Include clear business identification
Best Practices for Sending SMS in Peru
Messaging Strategy
Keep messages under 160 characters when possible
Include clear call-to-actions
Personalize messages using recipient's name
Maintain consistent sender identification
Sending Frequency and Timing
Limit to 4-5 messages per month per recipient
Respect local holidays and cultural events
Maintain consistent sending patterns
Allow minimum 24-hour gaps between marketing messages
Localization
Primary language: Spanish
Consider regional dialects for different areas
Offer bilingual options when appropriate
Use local date and time formats
Opt-Out Management
Process opt-outs within 24 hours
Maintain centralized opt-out database
Confirm opt-out with one final message
Regular database cleaning
Testing and Monitoring
Test across all major carriers (Claro, Movistar, Entel)
Monitor delivery rates by carrier
Track engagement metrics
Regular A/B testing of message content
SMS API integrations for Peru
Twilio
Twilio provides a robust SMS API with comprehensive support for Peru. Authentication uses Account SID and Auth Token credentials.
import*as Twilio from'twilio';// Initialize Twilio client with credentialsconst client =newTwilio(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN);// Function to send SMS to PeruasyncfunctionsendSMSToPeru( to:string, message:string, from:string):Promise<void>{try{// Ensure Peru number format: +51XXXXXXXXXconst formattedNumber = to.startsWith('+51')? to :`+51${to}`;const response =await client.messages.create({ body: message, from: from,// Your Twilio number to: formattedNumber,// Optional parameters for delivery tracking statusCallback:'https://your-webhook.com/status'});console.log(`Message sent successfully! SID: ${response.sid}`);}catch(error){console.error('Error sending message:', error);throw error;}}
Sinch
Sinch offers direct carrier connections in Peru with support for high-volume messaging.