Iraq SMS Best Practices, Compliance, and Features
Iraq SMS Market Overview
Locale name: | Iraq |
---|---|
ISO code: | IQ |
Region | Middle East & Africa |
Mobile country code (MCC) | 418 |
Dialing Code | +964 |
Market Conditions: Iraq's mobile market is dominated by three major operators: Zain, AsiaCell, and Korek. SMS remains a crucial communication channel for businesses and organizations, particularly for notifications and authentication. While OTT messaging apps like WhatsApp and Telegram are popular among consumers, SMS maintains its importance for business communications due to its reliability and universal reach. Android devices hold a significant market share in Iraq, making SMS an effective channel for reaching a broad audience.
Key SMS Features and Capabilities in Iraq
Iraq supports one-way SMS messaging with concatenation capabilities, though certain features like two-way messaging and MMS are limited or unavailable.
Two-way SMS Support
Two-way SMS is not supported in Iraq. Messages can only be sent one-way from businesses to consumers, limiting interactive messaging capabilities.
Concatenated Messages (Segmented SMS)
Support: Yes, concatenation is supported, though availability may vary by sender ID type.
Message length rules: Standard SMS length limits apply - 160 characters for GSM-7 encoding and 70 characters for UCS-2 encoding.
Encoding considerations: Both GSM-7 and UCS-2 encodings are supported. Messages using Arabic or special characters will automatically use UCS-2 encoding, reducing the character limit per segment.
MMS Support
MMS messages are not directly supported in Iraq. 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 providing access to rich media content.
Recipient Phone Number Compatibility
Number Portability
Number portability is not available in Iraq. Mobile numbers remain tied to their original network operators, which helps ensure reliable message routing.
Sending SMS to Landlines
Sending SMS to landline numbers is not possible in Iraq. Attempts to send messages to landline numbers will result in delivery failure with a 400 response error (code 21614). These messages will not appear in logs and accounts will not be charged.
Compliance and Regulatory Guidelines for SMS in Iraq
SMS communications in Iraq are regulated by the Communications and Media Commission (CMC). While specific SMS marketing regulations are still evolving, businesses must follow general telecommunications guidelines and international best practices for messaging.
Consent and Opt-In
Explicit Consent Requirements:
- Obtain clear, documented opt-in consent before sending any marketing messages
- Maintain detailed records of when and how consent was obtained
- Include your business name and purpose in the initial opt-in request
- Provide clear terms and conditions regarding message frequency and content
Best Practices for Consent Collection:
- Use double opt-in verification for marketing lists
- Store consent records with timestamp and source
- Regularly clean and update subscriber lists
- Document opt-in language and methods used
HELP/STOP and Other Commands
- All SMS campaigns must support standard opt-out keywords (STOP, CANCEL, END, UNSUBSCRIBE)
- HELP/INFO commands should provide service information and support contact details
- Support both English and Arabic keywords for opt-out functionality
- Implement immediate processing of opt-out requests
Do Not Call / Do Not Disturb Registries
Iraq does not currently maintain a centralized Do Not Call registry. However, businesses should:
- Maintain their own suppression lists of opted-out numbers
- Honor opt-out requests within 24 hours
- Regularly clean contact lists against internal opt-out databases
- Implement systems to prevent messaging to previously opted-out numbers
Time Zone Sensitivity
Iraq follows Arabia Standard Time (AST/UTC+3). Best practices include:
- Sending messages between 9:00 AM and 8:00 PM local time
- Avoiding message delivery during prayer times
- Respecting religious observances (especially during Ramadan)
- Limiting non-urgent messages to business days (Sunday-Thursday in Iraq)
Phone Numbers Options and SMS Sender Types for Iraq
Alphanumeric Sender ID
Operator network capability: Fully supported across major networks
Registration requirements: Pre-registration not required, but recommended
Sender ID preservation: Yes, sender IDs are preserved when properly formatted
Additional Considerations:
- Maximum length: 11 characters
- Must represent your business name or brand
- Avoid generic terms or misleading identifiers
- Special characters and spaces not recommended
Long Codes
Domestic vs. International:
- Domestic long codes not supported
- International long codes supported with limitations
Sender ID preservation: No, international numbers may be converted to local format
Provisioning time: N/A
Use cases: Not recommended for primary messaging; use alphanumeric sender IDs instead
Short Codes
Support: Not currently available in Iraq
Provisioning time: N/A
Use cases: N/A
Restricted SMS Content, Industries, and Use Cases
Restricted Content Types:
- Gambling and betting services
- Adult content or explicit material
- Political messaging without proper authorization
- Cryptocurrency and unauthorized financial services
- Religious content without proper permissions
Content Filtering
Known Carrier Filters:
- Messages containing certain keywords in Arabic or English
- URLs from suspicious or blacklisted domains
- High-frequency messaging patterns
- Generic or numeric sender IDs
Best Practices to Avoid Filtering:
- Use registered alphanumeric sender IDs
- Avoid URL shorteners in messages
- Maintain consistent sending patterns
- Include clear business identifier in messages
Best Practices for Sending SMS in Iraq
Messaging Strategy
- Keep messages under 160 characters when possible
- Include clear call-to-action in each message
- Use personalization (customer name, relevant details)
- Maintain consistent sender ID across campaigns
Sending Frequency and Timing
- Limit to 3-4 messages per week per recipient
- Avoid sending during religious holidays
- Space out bulk campaigns to prevent network congestion
- Monitor delivery rates for optimal timing
Localization
- Support both Arabic and English content
- Use proper character encoding for Arabic text
- Consider cultural sensitivities in message content
- Provide customer support in both languages
Opt-Out Management
- Process opt-outs within 24 hours
- Maintain centralized opt-out database
- Include opt-out instructions in messages
- Regular audit of opt-out compliance
Testing and Monitoring
- Test messages across all major carriers
- Monitor delivery rates by carrier
- Track engagement metrics when possible
- Regular testing of opt-out functionality
SMS API integrations for Iraq
Twilio
Twilio provides robust SMS capabilities for sending messages to Iraq through their REST API.
Key Integration Points:
- Authentication using Account SID and Auth Token
- Support for alphanumeric sender IDs
- Automatic handling of concatenated messages
- Delivery receipt webhooks
import { Twilio } from 'twilio';
// Initialize the client
const client = new Twilio(
process.env.TWILIO_ACCOUNT_SID, // Your Account SID
process.env.TWILIO_AUTH_TOKEN // Your Auth Token
);
async function sendSMSToIraq() {
try {
// Send message with proper Iraq formatting
const message = await client.messages.create({
body: 'Your message in English or Arabic',
from: 'YourBrand', // Alphanumeric sender ID
to: '+964xxxxxxxxx' // Iraq number format
});
// Log success
console.log(`Message sent successfully! SID: ${message.sid}`);
return message;
} catch (error) {
// Handle errors appropriately
console.error('Error sending message:', error);
throw error;
}
}
Sinch
Sinch offers direct operator connections in Iraq with support for alphanumeric sender IDs.
Key Integration Points:
- API key authentication
- Batch messaging support
- Delivery status callbacks
- Unicode support for Arabic text
import { SinchClient } from '@sinch/sdk-core';
// Initialize Sinch client
const sinchClient = new SinchClient({
projectId: 'YOUR_PROJECT_ID',
apiToken: 'YOUR_API_TOKEN'
});
async function sendBatchMessages() {
try {
const response = await sinchClient.sms.batches.send({
from: 'CompanyName', // Your sender ID
to: ['+964xxxxxxxxx'], // Array of Iraqi numbers
body: 'Your message content',
// Optional parameters for Iraq
encoding: 'AUTO', // Handles Arabic text automatically
deliveryReport: 'FULL'
});
console.log('Batch ID:', response.id);
return response;
} catch (error) {
console.error('Batch sending failed:', error);
throw error;
}
}
MessageBird
MessageBird provides reliable SMS delivery to Iraq with comprehensive delivery reporting.
Key Integration Points:
- REST API with API key authentication
- Support for multiple character encodings
- Scheduled message delivery
- Detailed delivery reports
import messagebird from 'messagebird';
// Initialize MessageBird client
const mbClient = messagebird('YOUR_API_KEY');
// Function to send SMS to Iraq
function sendMessageToIraq(
recipient: string,
message: string,
senderId: string
): Promise<any> {
return new Promise((resolve, reject) => {
mbClient.messages.create({
originator: senderId, // Your sender ID
recipients: [recipient], // Iraq number with +964
body: message,
// Optional parameters
datacoding: 'unicode', // For Arabic text
reportUrl: 'YOUR_WEBHOOK_URL'
}, (err, response) => {
if (err) {
reject(err);
return;
}
resolve(response);
});
});
}
API Rate Limits and Throughput
Rate Limits:
- Twilio: 250 messages per second
- Sinch: 100 messages per second
- MessageBird: 60 messages per second
Throughput Management Strategies:
- Implement exponential backoff for retries
- Use batch APIs for bulk sending
- Queue messages during peak times
- Monitor delivery rates by carrier
Error Handling and Reporting
Common Error Scenarios:
- Invalid sender ID format
- Network connectivity issues
- Rate limit exceeded
- Invalid recipient number
Best Practices:
// Example error handling implementation
async function sendSMSWithRetry(
recipient: string,
message: string,
maxRetries = 3
): Promise<void> {
let attempts = 0;
while (attempts < maxRetries) {
try {
await sendSMS(recipient, message);
return;
} catch (error) {
attempts++;
if (error.code === 'RATE_LIMIT_EXCEEDED') {
// Wait exponentially longer between retries
await delay(Math.pow(2, attempts) * 1000);
continue;
}
if (error.code === 'INVALID_RECIPIENT') {
// Don't retry invalid numbers
console.error(`Invalid recipient: ${recipient}`);
break;
}
if (attempts === maxRetries) {
console.error(`Failed to send after ${maxRetries} attempts`);
throw error;
}
}
}
}
Recap and Additional Resources
Key Takeaways
-
Compliance Priorities:
- Obtain explicit consent
- Honor opt-out requests
- Respect time zone restrictions
- Maintain proper sender ID format
-
Technical Considerations:
- Use alphanumeric sender IDs
- Support Arabic character encoding
- Implement proper error handling
- Monitor delivery rates
-
Best Practices:
- Test thoroughly before bulk sending
- Maintain clean subscriber lists
- Document consent and opt-outs
- Regular monitoring and reporting
Next Steps
- Review the Communications and Media Commission (CMC) regulations
- Set up test accounts with preferred SMS providers
- Implement proper error handling and monitoring
- Establish consent collection processes