Market Conditions: Azerbaijan has a mature mobile market dominated by three major operators: Azercell (market leader), Bakcell, and Azerfon. SMS remains a crucial communication channel for business messaging, particularly for authentication and notifications. While messaging apps like WhatsApp and Telegram are popular for personal communication, SMS maintains its position as the primary channel for business-to-consumer communications due to its reliability and universal reach.
Key SMS Features and Capabilities in Azerbaijan
Azerbaijan supports most standard SMS features including alphanumeric sender IDs and concatenated messages, though two-way SMS functionality is limited.
Two-way SMS Support
Two-way SMS is not supported in Azerbaijan for international senders. Local businesses may have access to two-way capabilities through direct arrangements with mobile operators.
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 GSM-7 encoding allows 160 characters per segment, while UCS-2 encoding allows 70 characters per segment. Encoding considerations: Messages using GSM-7 encoding can be concatenated up to 6 segments (918 characters), while UCS-2 encoded messages support up to 3 segments (201 characters).
MMS Support
MMS messages are not directly supported in Azerbaijan. When MMS content is sent, it is automatically converted to SMS with an embedded URL link where recipients can view the multimedia content. This ensures message delivery while maintaining the ability to share rich media content.
Recipient Phone Number Compatibility
Number Portability
Number portability is available in Azerbaijan. This means subscribers can change mobile operators while keeping their phone numbers. While this doesn't significantly impact SMS delivery, it's important to maintain updated routing tables for optimal delivery rates.
Sending SMS to Landlines
SMS cannot be sent to landline numbers in Azerbaijan. Attempts to send messages to landline numbers will result in delivery failure and typically trigger a 400 response with error code 21614. These messages will not appear in logs and accounts will not be charged for failed delivery attempts.
Compliance and Regulatory Guidelines for SMS in Azerbaijan
SMS communications in Azerbaijan are governed by the Law of the Republic of Azerbaijan "On Personal Data" and overseen by the Ministry of Digital Development and Transport. Companies must comply with data protection regulations and telecommunications guidelines when sending SMS messages.
Consent and Opt-In
Explicit Consent Requirements:
Written or electronic consent must be obtained before sending marketing messages
Consent records should be maintained for at least 2 years
Purpose of messaging must be clearly stated during opt-in
Double opt-in is recommended for marketing campaigns
Best Practices for Documentation:
Store timestamp and source of consent
Maintain detailed records of opt-in methods
Keep proof of consent acquisition channel
Document the specific services or communications the user agreed to receive
HELP/STOP and Other Commands
All marketing messages must include opt-out instructions
STOP, DAYANDIR (Stop in Azerbaijani), and ???????????? (Cancel in Russian) must be supported
HELP or K??M??K (Help in Azerbaijani) commands should provide service information
Commands should be processed in Latin, Cyrillic, and Arabic scripts
Responses to commands must be provided in the same language as the request
Do Not Call / Do Not Disturb Registries
Azerbaijan does not maintain a centralized Do Not Call registry. However, businesses should:
Maintain their own suppression lists
Honor opt-out requests within 24 hours
Keep records of opted-out numbers for at least 5 years
Regularly clean contact lists to remove unsubscribed numbers
Time Zone Sensitivity
Azerbaijan follows AZT (UTC+4) time zone. While there are no strict legal restrictions on messaging hours, recommended practices include:
Sending messages between 9:00 AM and 9:00 PM local time
Avoiding messages during religious holidays
Limiting late-night messages to critical notifications only
Considering Ramadan timing during the holy month
Phone Numbers Options and SMS Sender Types for in Azerbaijan
Alphanumeric Sender ID
Operator network capability: Fully supported across all major networks Registration requirements: Pre-registration not required, but dynamic usage is supported Sender ID preservation: Yes, sender IDs are preserved as specified Best practices: Avoid generic terms like "INFO" or "SMS" to prevent filtering
Long Codes
Domestic vs. International:
Domestic long codes not supported
International long codes fully supported
Sender ID preservation: Yes, original sender ID is maintained
Provisioning time: Typically 1-2 business days Use cases: Ideal for two-factor authentication and transactional messages
Short Codes
Support: Not currently supported in Azerbaijan Alternative recommendation: Use alphanumeric sender IDs or international long codes instead
Restricted SMS Content, Industries, and Use Cases
Prohibited Content:
Gambling and betting services
Adult content or services
Unauthorized pharmaceutical products
Political campaign messages without proper authorization
Religious content without proper permits
Regulated Industries:
Financial services must include sender identification
Healthcare messages must maintain patient confidentiality
Insurance services must include disclaimer information
Content Filtering
Known Carrier Filters:
URLs from unknown domains
Multiple exclamation marks
ALL CAPS messages
Excessive special characters
Best Practices to Avoid Filtering:
Use registered domains for links
Maintain consistent sender IDs
Avoid spam trigger words
Keep message content professional and clear
Best Practices for Sending SMS in Azerbaijan
Messaging Strategy
Keep messages under 160 characters when possible
Include clear calls-to-action
Use personalization tokens thoughtfully
Maintain consistent branding across messages
Sending Frequency and Timing
Limit marketing messages to 2-3 per week
Space out messages across different days
Respect national holidays and cultural events
Avoid sending during prayer times during Ramadan
Localization
Support Azerbaijani, Russian, and English
Use proper character encoding for local languages
Consider cultural nuances in message content
Provide customer support in local languages
Opt-Out Management
Process opt-outs within 24 hours
Confirm opt-out with one final message
Maintain separate opt-out lists per service type
Regular audit of opt-out compliance
Testing and Monitoring
Test across all major carriers (Azercell, Bakcell, Azerfon)
Monitor delivery rates by carrier
Track opt-out rates and patterns
Regular testing of opt-out functionality
SMS API integrations for Azerbaijan
Twilio
Twilio provides robust SMS capabilities for Azerbaijan through their REST API. Authentication uses your Account SID and Auth Token.
TypeScript
import * asTwiliofrom'twilio';
// Initialize the 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 AzerbaijanasyncfunctionsendSMSToAzerbaijan(to: string,
message: string,
senderId: string): Promise<void> {
try {
// Ensure proper formatting for Azerbaijan numbersconst formattedNumber = to.startsWith('+994') ? to : `+994${to}`;
const response = await client.messages.create({
body: message,
from: senderId, // Your alphanumeric sender IDto: formattedNumber,
// Optional parameters for delivery trackingstatusCallback: '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 Azerbaijan. Their API requires API Token and Service Plan ID authentication.
Use a reputable SMS provider like Twilio, Sinch, MessageBird, or Plivo, ensuring compliance with local regulations. Alphanumeric sender IDs are recommended, and two-way SMS is generally limited to local businesses.
Alphanumeric sender IDs are fully supported and recommended for best delivery rates. Avoid generic terms like "INFO" or "SMS" to prevent filtering. Short codes are not supported, and domestic long codes aren't available, but international long codes are fully supported and offer a viable alternative for specific use cases like 2FA.
The article does not explain why Azerbaijan doesn't support short codes, it only notes they are not currently supported. Use alphanumeric sender IDs or international long codes instead.
The best practice is between 9:00 AM and 9:00 PM AZT (UTC+4), avoiding religious holidays and late nights. Limit marketing messages to 2-3 per week, spread across different days, and be mindful of Ramadan.
No, sending SMS to landlines in Azerbaijan is not supported and will result in delivery failure with a 400 response and error code 21614. Messages to landlines won't appear in logs and are not charged.
Concatenated messages are supported, with GSM-7 encoding allowing up to 6 segments (918 characters) and UCS-2 allowing up to 3 segments (201 characters). Standard GSM-7 allows 160 characters per segment, while UCS-2 allows 70.
Process opt-out requests (STOP, DAYANDIR, ????????????) within 24 hours, regardless of script (Latin, Cyrillic, Arabic), confirm with a final message, and maintain opt-out lists for at least 5 years. Responses to HELP/K??M??K should provide service information in the requested language.
Explicit written or electronic consent is required before sending marketing messages. It's crucial to clearly state the messaging purpose during the opt-in process, with double opt-in recommended, and maintain consent records for at least two years. Documentation should include timestamp, consent source, acquisition method, and specific services the user agreed to.
While longer messages can be sent using concatenation, aim to keep messages under 160 characters whenever possible to avoid segmentation and ensure the clearest communication.
Prohibited content includes gambling, adult material, unauthorized pharmaceuticals, and political campaigns without authorization. Regulated industries like finance and healthcare have specific requirements for sender identification and confidentiality.
Avoid using URLs from unknown domains, excessive special characters, all caps, and multiple exclamation points. Maintain consistent sender IDs, keep content professional, and use registered domains for links.
Support Azerbaijani, Russian, and English. Use correct encoding (GSM-7 or UCS-2) and consider cultural nuances when crafting your message. Customer support should also be provided in local languages.
Rate limits vary by provider, generally 1-10 messages per second. Implement exponential backoff for retries and consider batch APIs and queue systems for large campaigns to manage throughput effectively.
The article provides examples for Twilio, Sinch, MessageBird, and Plivo. Each requires specific authentication details and offers various features like delivery reports and status callbacks. Ensure to handle Azerbaijani number formatting correctly.
Azerbaijan SMS Market Overview
Market Conditions: Azerbaijan has a mature mobile market dominated by three major operators: Azercell (market leader), Bakcell, and Azerfon. SMS remains a crucial communication channel for business messaging, particularly for authentication and notifications. While messaging apps like WhatsApp and Telegram are popular for personal communication, SMS maintains its position as the primary channel for business-to-consumer communications due to its reliability and universal reach.
Key SMS Features and Capabilities in Azerbaijan
Azerbaijan supports most standard SMS features including alphanumeric sender IDs and concatenated messages, though two-way SMS functionality is limited.
Two-way SMS Support
Two-way SMS is not supported in Azerbaijan for international senders. Local businesses may have access to two-way capabilities through direct arrangements with mobile operators.
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 GSM-7 encoding allows 160 characters per segment, while UCS-2 encoding allows 70 characters per segment.
Encoding considerations: Messages using GSM-7 encoding can be concatenated up to 6 segments (918 characters), while UCS-2 encoded messages support up to 3 segments (201 characters).
MMS Support
MMS messages are not directly supported in Azerbaijan. When MMS content is sent, it is automatically converted to SMS with an embedded URL link where recipients can view the multimedia content. This ensures message delivery while maintaining the ability to share rich media content.
Recipient Phone Number Compatibility
Number Portability
Number portability is available in Azerbaijan. This means subscribers can change mobile operators while keeping their phone numbers. While this doesn't significantly impact SMS delivery, it's important to maintain updated routing tables for optimal delivery rates.
Sending SMS to Landlines
SMS cannot be sent to landline numbers in Azerbaijan. Attempts to send messages to landline numbers will result in delivery failure and typically trigger a 400 response with error code 21614. These messages will not appear in logs and accounts will not be charged for failed delivery attempts.
Compliance and Regulatory Guidelines for SMS in Azerbaijan
SMS communications in Azerbaijan are governed by the Law of the Republic of Azerbaijan "On Personal Data" and overseen by the Ministry of Digital Development and Transport. Companies must comply with data protection regulations and telecommunications guidelines when sending SMS messages.
Consent and Opt-In
Explicit Consent Requirements:
Best Practices for Documentation:
HELP/STOP and Other Commands
Do Not Call / Do Not Disturb Registries
Azerbaijan does not maintain a centralized Do Not Call registry. However, businesses should:
Time Zone Sensitivity
Azerbaijan follows AZT (UTC+4) time zone. While there are no strict legal restrictions on messaging hours, recommended practices include:
Phone Numbers Options and SMS Sender Types for in Azerbaijan
Alphanumeric Sender ID
Operator network capability: Fully supported across all major networks
Registration requirements: Pre-registration not required, but dynamic usage is supported
Sender ID preservation: Yes, sender IDs are preserved as specified
Best practices: Avoid generic terms like "INFO" or "SMS" to prevent filtering
Long Codes
Domestic vs. International:
Provisioning time: Typically 1-2 business days
Use cases: Ideal for two-factor authentication and transactional messages
Short Codes
Support: Not currently supported in Azerbaijan
Alternative recommendation: Use alphanumeric sender IDs or international long codes instead
Restricted SMS Content, Industries, and Use Cases
Prohibited Content:
Regulated Industries:
Content Filtering
Known Carrier Filters:
Best Practices to Avoid Filtering:
Best Practices for Sending SMS in Azerbaijan
Messaging Strategy
Sending Frequency and Timing
Localization
Opt-Out Management
Testing and Monitoring
SMS API integrations for Azerbaijan
Twilio
Twilio provides robust SMS capabilities for Azerbaijan through their REST API. Authentication uses your Account SID and Auth Token.
import * as Twilio from 'twilio'; // Initialize the Twilio client 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 Azerbaijan async function sendSMSToAzerbaijan( to: string, message: string, senderId: string ): Promise<void> { try { // Ensure proper formatting for Azerbaijan numbers const formattedNumber = to.startsWith('+994') ? to : `+994${to}`; const response = await client.messages.create({ body: message, from: senderId, // Your alphanumeric sender ID 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 Azerbaijan. Their API requires API Token and Service Plan ID authentication.
import axios from 'axios'; class SinchSMSService { private readonly apiToken: string; private readonly servicePlanId: string; private readonly baseUrl: string = 'https://sms.api.sinch.com/xms/v1'; constructor(apiToken: string, servicePlanId: string) { this.apiToken = apiToken; this.servicePlanId = servicePlanId; } async sendSMS(to: string, message: string, senderId: string): Promise<void> { try { const response = await axios.post( `${this.baseUrl}/${this.servicePlanId}/batches`, { from: senderId, to: [to], body: message, // Enable delivery reports delivery_report: 'summary' }, { headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${this.apiToken}` } } ); console.log('Message sent:', response.data.id); } catch (error) { console.error('Sinch SMS error:', error); throw error; } } }MessageBird
MessageBird provides reliable SMS delivery in Azerbaijan with straightforward API integration.
import { MessageBird } from 'messagebird'; class MessageBirdService { private client: MessageBird; constructor(apiKey: string) { this.client = new MessageBird(apiKey); } async sendSMS( to: string, message: string, senderId: string ): Promise<void> { const params = { originator: senderId, recipients: [to], body: message, // Optional parameters reportUrl: 'https://your-webhook.com/delivery-reports' }; return new Promise((resolve, reject) => { this.client.messages.create(params, (err, response) => { if (err) { console.error('MessageBird error:', err); reject(err); } else { console.log('Message sent:', response.id); resolve(); } }); }); } }Plivo
Plivo offers competitive rates and good coverage in Azerbaijan through their REST API.
import * as plivo from 'plivo'; class PlivoSMSService { private client: plivo.Client; 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, dst: to, text: message, // Optional parameters url: 'https://your-webhook.com/delivery-status', method: 'POST' }); console.log('Message sent:', response.messageUuid[0]); } catch (error) { console.error('Plivo error:', error); throw error; } } }API Rate Limits and Throughput
Recommended Queue Implementation:
import * as Queue from 'bull'; const smsQueue = new Queue('sms-queue', { redis: { host: 'localhost', port: 6379 } }); // Add rate limiting smsQueue.process(10, async (job) => { const { to, message, senderId } = job.data; // Implement your SMS sending logic here });Error Handling and Reporting
Recap and Additional Resources
Key Takeaways:
Next Steps:
Additional Resources:
Industry Guidelines: