Portugal SMS Best Practices, Compliance, and Features
Portugal SMS Market Overview
Locale name: | Portugal |
---|---|
ISO code: | PT |
Region | Europe |
Mobile country code (MCC) | 268 |
Dialing Code | +351 |
Market Conditions: Portugal has a mature mobile market with high SMS adoption rates. The country's main mobile operators include MEO (formerly Portugal Telecom), Vodafone, and NOS. While OTT messaging apps like WhatsApp and Facebook Messenger are popular, SMS remains a crucial channel for business communications, particularly for authentication, notifications, and marketing. The mobile market shows a relatively even split between Android and iOS devices, with Android having a slight edge in market share.
Key SMS Features and Capabilities in Portugal
Portugal offers comprehensive SMS capabilities including two-way messaging, concatenated messages, and number portability, making it a robust market for business messaging.
Two-way SMS Support
Portugal fully supports two-way SMS communications with no significant restrictions. This enables interactive messaging scenarios like customer support, appointment confirmations, and automated response systems.
Concatenated Messages (Segmented SMS)
Support: Yes, concatenation is supported across all major carriers, though support may vary by sender ID type.
Message length rules: Standard SMS messages are limited to 160 characters for GSM-7 encoding and 70 characters for UCS-2 encoding before splitting occurs.
Encoding considerations: Messages use GSM-7 encoding for standard Latin characters and UCS-2 for special characters or non-Latin alphabets. UCS-2 messages have shorter length limits per segment.
MMS Support
MMS messages are automatically converted to SMS with an embedded URL link to the multimedia content. This ensures compatibility across all devices while still allowing businesses to share rich media content with their customers.
Recipient Phone Number Compatibility
Number Portability
Number portability is fully available in Portugal, allowing users to keep their phone numbers when switching carriers. This feature is well-established and doesn't significantly impact message delivery or routing.
Sending SMS to Landlines
Sending SMS to landline numbers is not supported in Portugal. Attempts to send messages to landline numbers will result in a failed delivery and typically generate a 400 response error (code 21614) through SMS APIs. These messages won't appear in logs and won't incur charges.
Compliance and Regulatory Guidelines for SMS in Portugal
Portugal follows the EU's GDPR requirements and is regulated by ANACOM (Autoridade Nacional de Comunicações). SMS marketing and communications must comply with both national telecommunications laws and EU data protection regulations.
Consent and Opt-In
Explicit Consent Requirements:
- Written or electronic consent must be obtained before sending marketing messages
- Pre-checked boxes are not considered valid consent
- Consent records must be maintained and easily accessible
- Purpose of messaging must be clearly stated during opt-in
Best Practices for Consent:
- Implement double opt-in verification
- Store consent timestamps and methods
- Maintain detailed records of consent sources
- Regular consent validation and cleanup
HELP/STOP and Other Commands
- Required Keywords: STOP, CANCELAR, PARAR must be supported
- Language Requirements: Support both Portuguese and English commands
- Response Time: Process opt-out requests within 24 hours
- Confirmation: Send confirmation message after opt-out in Portuguese
Do Not Call / Do Not Disturb Registries
Portugal does not maintain a centralized Do Not Call registry, but businesses must:
- Maintain their own suppression lists
- Honor opt-out requests immediately
- Keep records of blocked numbers
- Implement proactive filtering systems
Time Zone Sensitivity
Messaging Hours:
- Permitted: 9:00 AM to 8:00 PM (local time)
- Avoid: Sundays and national holidays
- Exception: Urgent service notifications
- Time zone: WET (UTC+0) / WEST (UTC+1)
Phone Numbers Options and SMS Sender Types for Portugal
Alphanumeric Sender ID
Operator network capability: Fully supported
Registration requirements: No pre-registration required, dynamic usage allowed
Sender ID preservation: Yes, sender IDs are preserved across all major networks
Length limit: Up to 11 characters
Long Codes
Domestic vs. International: Both supported
Sender ID preservation: Yes, original sender ID is maintained
Provisioning time: 1-2 business days
Use cases:
- Two-way communication
- Customer support
- Transactional messages
- Authentication services
Short Codes
Support: Not currently supported in Portugal
Alternative: Use long codes or alphanumeric sender IDs
Migration: Businesses using short codes should transition to alternative sender types
Restricted SMS Content, Industries, and Use Cases
Prohibited Content:
- Gambling without proper licensing
- Adult content
- Illegal substances
- Unauthorized financial services
- Deceptive marketing practices
Regulated Industries:
- Financial services require disclaimers
- Healthcare messages must maintain privacy
- Insurance offers need clear terms
- Credit services require specific disclosures
Content Filtering
Carrier Filtering Rules:
- Links must be from approved domains
- No excessive capitalization
- Avoid spam trigger words
- Maximum URL count per message
Best Practices:
- Use approved URL shorteners
- Avoid excessive punctuation
- Include clear business identifier
- Maintain consistent sending patterns
Best Practices for Sending SMS in Portugal
Messaging Strategy
- Keep messages under 160 characters when possible
- Include clear call-to-action
- Personalize using recipient's name
- Maintain consistent brand voice
Sending Frequency and Timing
- Maximum 4-5 messages per month per user
- Respect quiet hours (20:00-09:00)
- Avoid holiday periods unless essential
- Space campaigns appropriately
Localization
- Primary language: Portuguese
- Consider bilingual messages for tourists
- Use proper Portuguese formatting for:
- Dates (DD/MM/YYYY)
- Times (24-hour format)
- Currency (€)
Opt-Out Management
- Process opt-outs within 24 hours
- Maintain single-click unsubscribe
- Confirm opt-out status
- Regular database cleaning
Testing and Monitoring
- Test across MEO, Vodafone, and NOS
- Monitor delivery rates by carrier
- Track engagement metrics
- Regular A/B testing of message content
SMS API integrations for Portugal
Twilio
Twilio provides a robust REST API for sending SMS messages to Portugal. Authentication uses account SID and auth token credentials.
import { Twilio } from 'twilio';
// Initialize client with credentials
const client = new Twilio(
process.env.TWILIO_ACCOUNT_SID, // Your Account SID
process.env.TWILIO_AUTH_TOKEN // Your Auth Token
);
// Function to send SMS to Portugal
async function sendSMSToPortugal(
to: string,
message: string,
senderId: string
): Promise<void> {
try {
// Ensure number is in E.164 format for Portugal
const formattedNumber = to.startsWith('+351') ? to : `+351${to}`;
const response = await client.messages.create({
body: message,
from: senderId, // Alphanumeric sender ID or Twilio number
to: formattedNumber,
// Optional parameters for delivery tracking
statusCallback: 'https://your-webhook.com/status'
});
console.log(`Message sent! SID: ${response.sid}`);
} catch (error) {
console.error('Error sending message:', error);
}
}
Sinch
Sinch offers a REST API with JWT authentication for sending SMS messages to Portugal.
import axios from 'axios';
class SinchSMSClient {
private readonly baseUrl: string;
private readonly apiToken: string;
private readonly servicePlanId: string;
constructor(servicePlanId: string, apiToken: string) {
this.baseUrl = 'https://eu.sms.api.sinch.com/xms/v1';
this.apiToken = apiToken;
this.servicePlanId = servicePlanId;
}
async sendSMS(to: string, message: string): Promise<void> {
try {
const response = await axios.post(
`${this.baseUrl}/${this.servicePlanId}/batches`,
{
from: 'YourBrand', // Alphanumeric sender ID
to: [to], // Array of recipient numbers
body: message,
// Optional delivery report URL
delivery_report_url: 'https://your-webhook.com/delivery'
},
{
headers: {
'Authorization': `Bearer ${this.apiToken}`,
'Content-Type': 'application/json'
}
}
);
console.log('Message sent:', response.data.id);
} catch (error) {
console.error('Failed to send message:', error);
}
}
}
MessageBird
MessageBird provides a simple REST API for sending SMS messages to Portugal.
import messagebird from 'messagebird';
class MessageBirdClient {
private client: any;
constructor(apiKey: string) {
this.client = messagebird(apiKey);
}
sendSMS(to: string, message: string): Promise<void> {
return new Promise((resolve, reject) => {
this.client.messages.create({
originator: 'YourBrand', // Sender ID
recipients: [to], // Recipient number
body: message,
// Optional parameters
reference: 'your-reference',
reportUrl: 'https://your-webhook.com/status'
}, (err: any, response: any) => {
if (err) {
reject(err);
} else {
resolve(response);
}
});
});
}
}
Plivo
Plivo offers a REST API with basic authentication for sending SMS to Portugal.
import plivo from 'plivo';
class PlivoSMSClient {
private client: any;
constructor(authId: string, authToken: string) {
this.client = new plivo.Client(authId, authToken);
}
async sendSMS(to: string, message: string, senderId: string): Promise<void> {
try {
const response = await this.client.messages.create({
src: senderId, // Your sender ID
dst: to, // Destination number
text: message,
// Optional parameters
url: 'https://your-webhook.com/status',
method: 'POST'
});
console.log('Message sent:', response.messageUuid);
} catch (error) {
console.error('Error sending message:', error);
}
}
}
API Rate Limits and Throughput
- Default rate limits: 1-30 messages per second (varies by provider)
- Batch sending: Up to 500 recipients per request
- Daily sending limits may apply
Strategies for Large-Scale Sending:
- Implement queuing system (Redis/RabbitMQ)
- Use batch APIs when possible
- Implement exponential backoff for retries
- Monitor throughput metrics
Error Handling and Reporting
- Implement comprehensive logging
- Monitor delivery receipts
- Track common error codes
- Set up alerting for failure thresholds
Recap and Additional Resources
Key Takeaways
-
Compliance First:
- Obtain explicit consent
- Respect time windows (9:00-20:00)
- Maintain opt-out mechanisms
-
Technical Best Practices:
- Use E.164 number formatting
- Implement proper error handling
- Monitor delivery rates
-
Localization:
- Use Portuguese language
- Consider cultural context
- Format dates/times appropriately
Next Steps
- Review ANACOM regulations
- Implement consent management system
- Set up monitoring and reporting
- Test across all major carriers
Additional Resources
Industry Resources:
- Mobile Marketing Association Guidelines
- Portuguese Direct Marketing Association
- European Communications Standards Institute