San Marino SMS Best Practices, Compliance, and Features
San Marino SMS Market Overview
Locale name: | San Marino |
---|---|
ISO code: | SM |
Region | Europe |
Mobile country code (MCC) | 292 |
Dialing Code | +378 |
Market Conditions: San Marino, while a small European market, maintains modern telecommunications infrastructure with high mobile penetration rates. The market primarily relies on Italian mobile operators for service coverage, with TIM (Telecom Italia Mobile) being a dominant carrier. SMS remains a reliable communication channel for business messaging, though like other European markets, OTT messaging apps have significant usage among consumers. The market shows a balanced mix of Android and iOS devices, following general European mobile device trends.
Key SMS Features and Capabilities in San Marino
San Marino supports basic SMS functionality with some limitations on advanced features, operating within the European telecommunications framework.
Two-way SMS Support
Two-way SMS is not supported in San Marino according to current provider specifications. This means businesses cannot receive replies to their SMS messages through standard A2P channels.
Concatenated Messages (Segmented SMS)
Support: Concatenated messages are not supported in San Marino.
Message length rules: Standard SMS character limits apply - 160 characters for GSM-7 encoding and 70 characters for Unicode.
Encoding considerations: Both GSM-7 and UCS-2 encodings are supported, though messages cannot be concatenated.
MMS Support
MMS messages are automatically converted to SMS with an embedded URL link. This means any multimedia content must be hosted separately and linked within the SMS message body. This approach ensures compatibility while still enabling rich content delivery through linked resources.
Recipient Phone Number Compatibility
Number Portability
Number portability is not available in San Marino. This means mobile numbers remain tied to their original carriers, which can simplify message routing but limits consumer flexibility.
Sending SMS to Landlines
Sending SMS to landline numbers is not possible in San Marino. Attempts to send messages to landline numbers will result in a failed delivery and typically generate a 400 response error (error code 21614) from messaging APIs. These messages will not appear in logs and accounts will not be charged for failed attempts.
Compliance and Regulatory Guidelines for SMS in San Marino
San Marino follows data protection law (Law No. 171 of 21 December 2018) which aligns closely with GDPR principles. The Authority for Personal Data Protection (Autorità Garante per la Protezione dei Dati Personali) oversees compliance with these regulations. All SMS communications must adhere to these data protection standards, particularly regarding personal data processing and storage.
Consent and Opt-In
Explicit Consent Requirements:
- Written or electronic consent must be obtained before sending marketing messages
- Consent must be freely given, specific, and informed
- Keep detailed records of when and how consent was obtained
- Provide clear information about how the phone number will be used
- Include the business name and purpose in consent requests
HELP/STOP and Other Commands
- All marketing messages must include clear opt-out instructions
- STOP commands must be honored immediately
- HELP responses should be in Italian (primary language) and English
- Common keywords to support: STOP, ANNULLA, AIUTO, INFO
- Maintain logs of all opt-out requests and their processing dates
Do Not Call / Do Not Disturb Registries
San Marino does not maintain a centralized Do Not Call registry. However, businesses should:
- Maintain their own suppression lists
- Honor opt-out requests within 24 hours
- Regularly clean contact lists to remove unsubscribed numbers
- Document all opt-out processing procedures
Time Zone Sensitivity
San Marino follows Central European Time (CET/CEST):
- Restrict messaging to 8:00 AM - 8:00 PM local time
- Avoid sending during public holidays
- Emergency messages may be sent outside these hours if necessary
- Consider Italian holidays as well due to close ties
Phone Numbers Options and SMS Sender Types for in San Marino
Alphanumeric Sender ID
Operator network capability: Supported with dynamic usage allowed
Registration requirements: No pre-registration required
Sender ID preservation: Sender IDs are generally preserved as sent
Long Codes
Domestic vs. International:
- Domestic long codes are supported but not available through major providers
- International long codes are commonly used as an alternative
Sender ID preservation: Original sender IDs are typically preserved
Provisioning time: 1-3 business days for international long codes
Use cases: Ideal for transactional messages and two-factor authentication
Short Codes
Support: Short codes are not currently supported in San Marino
Provisioning time: Not applicable
Use cases: Not available for marketing or authentication purposes
Restricted SMS Content, Industries, and Use Cases
Restricted Industries and Content:
- Gambling and betting services
- Adult content or services
- Cryptocurrency promotions
- Political messaging without proper authorization
- Religious content without proper consent
Content Filtering
Known Carrier Filters:
- URLs from unknown domains may be blocked
- Messages containing certain keywords related to restricted industries
- Multiple exclamation marks or all-caps messages
Best Practices to Avoid Filtering:
- Use registered URL shorteners
- Avoid excessive punctuation
- Maintain consistent sender IDs
- Include clear business identification
- Keep message content professional and straightforward
Best Practices for Sending SMS in San Marino
Messaging Strategy
- Keep messages under 160 characters when possible
- Include clear call-to-actions
- Use personalization tokens thoughtfully
- Maintain consistent branding across messages
Sending Frequency and Timing
- Limit to 2-3 messages per week per recipient
- Respect local business hours
- Consider San Marino's public holidays
- Space out bulk sends to avoid network congestion
Localization
- Primary language should be Italian
- Consider including English for international recipients
- Use proper character encoding for special characters
- Respect local cultural norms and customs
Opt-Out Management
- Process opt-outs within 24 hours
- Maintain clear opt-out records
- Include opt-out instructions in every marketing message
- Regular audit of opt-out compliance
Testing and Monitoring
- Test messages across major carriers
- Monitor delivery rates closely
- Track engagement metrics
- Regular testing of opt-out functionality
- Document and analyze delivery failures
SMS API integrations for San Marino
Twilio
Twilio provides a straightforward REST API for sending SMS messages to San Marino. Authentication is handled through your account SID and auth token.
import * as Twilio from 'twilio';
// Initialize Twilio client with your 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 San Marino
async function sendSMSToSanMarino(
to: string,
message: string,
senderId: string
) {
try {
// Ensure proper formatting for San Marino numbers
const formattedNumber = to.startsWith('+378') ? to : `+378${to}`;
const response = await client.messages.create({
body: message,
from: senderId, // Your alphanumeric sender ID or phone number
to: formattedNumber,
// Optional parameters for delivery tracking
statusCallback: 'https://your-webhook.com/status'
});
console.log(`Message sent successfully! SID: ${response.sid}`);
return response;
} catch (error) {
console.error('Error sending message:', error);
throw error;
}
}
Sinch
Sinch offers a robust API for SMS delivery to San Marino, with support for delivery reports and batch sending.
import axios from 'axios';
class SinchSMSClient {
private readonly apiToken: string;
private readonly serviceId: string;
private readonly baseUrl = 'https://sms.api.sinch.com/xms/v1';
constructor(apiToken: string, serviceId: string) {
this.apiToken = apiToken;
this.serviceId = serviceId;
}
async sendSMS(to: string, message: string, senderId: string) {
try {
const response = await axios.post(
`${this.baseUrl}/${this.serviceId}/batches`,
{
from: senderId,
to: [to],
body: message
},
{
headers: {
'Authorization': `Bearer ${this.apiToken}`,
'Content-Type': 'application/json'
}
}
);
return response.data;
} catch (error) {
console.error('Sinch SMS Error:', error);
throw error;
}
}
}
MessageBird
MessageBird provides a modern API interface for sending SMS to San Marino with comprehensive delivery tracking.
import { MessageBird } from 'messagebird';
class MessageBirdClient {
private client: MessageBird;
constructor(apiKey: string) {
this.client = new MessageBird(apiKey);
}
sendSMS(to: string, message: string, senderId: string): Promise<any> {
return new Promise((resolve, reject) => {
this.client.messages.create({
originator: senderId,
recipients: [to],
body: message,
// Optional parameters
reportUrl: 'https://your-webhook.com/delivery-reports'
}, (err, response) => {
if (err) {
reject(err);
} else {
resolve(response);
}
});
});
}
}
Plivo
Plivo offers reliable SMS delivery to San Marino with detailed delivery insights.
import * as plivo from 'plivo';
class PlivoSMSClient {
private client: plivo.Client;
constructor(authId: string, authToken: string) {
this.client = new plivo.Client(authId, authToken);
}
async sendSMS(to: string, message: string, senderId: string) {
try {
const response = await this.client.messages.create({
src: senderId,
dst: to,
text: message,
// Optional parameters
url: 'https://your-webhook.com/status',
method: 'POST'
});
return response;
} catch (error) {
console.error('Plivo SMS Error:', error);
throw error;
}
}
}
API Rate Limits and Throughput
- Default rate limits vary by provider (typically 1-10 messages per second)
- Implement exponential backoff for retry logic
- Consider using queue systems like Redis or RabbitMQ for high-volume sending
- Batch messages when possible to optimize API calls
Error Handling and Reporting
- Implement comprehensive error logging
- Monitor delivery receipts via webhooks
- Track common error codes:
- 21614: Invalid number format
- 21408: Rate limit exceeded
- 21611: Message content rejected
- Store delivery status updates for analytics
Recap and Additional Resources
Key Takeaways:
- Always format numbers with +378 country code
- Implement proper opt-out handling
- Monitor delivery rates and errors
- Follow time window restrictions (8 AM - 8 PM local time)
- Maintain proper consent records
Next Steps:
- Review San Marino's Data Protection Law (Law No. 171)
- Implement proper consent collection mechanisms
- Set up delivery monitoring systems
- Test message delivery across different carriers
Additional Resources:
- San Marino Data Protection Authority
- Telecommunications Regulatory Authority
- SMS Compliance Guidelines
Technical Documentation: