Jordan SMS Best Practices, Compliance, and Features
Jordan SMS Market Overview
Locale name: | Jordan |
---|---|
ISO code: | JO |
Region | Middle East & Africa |
Mobile country code (MCC) | 416 |
Dialing Code | +962 |
Market Conditions: Jordan has a vibrant mobile communications market dominated by three major operators: Zain, Orange, and Umniah. SMS remains a crucial communication channel for businesses, particularly for authentication, notifications, and marketing purposes. While OTT messaging apps like WhatsApp are popular for personal communication, SMS maintains its position as the most reliable channel for business communications due to its universal reach and high open rates.
Key SMS Features and Capabilities in Jordan
Jordan supports most standard SMS features including concatenated messages and alphanumeric sender IDs, though two-way SMS functionality is limited and MMS messages are converted to SMS with URL links.
Two-way SMS Support
Two-way SMS is not supported in Jordan through major SMS providers. This means businesses cannot receive replies to their messages through standard SMS APIs.
Concatenated Messages (Segmented SMS)
Support: Yes, concatenation is supported for most sender ID types, though support may vary based on the specific sender ID type used.
Message length rules: Messages are limited to 160 characters before splitting occurs when using GSM-7 encoding.
Encoding considerations: Messages using GSM-7 encoding can contain up to 160 characters in a single segment, while UCS-2 encoding (used for Arabic and special characters) allows up to 70 characters per segment.
MMS Support
MMS messages are not directly supported in Jordan. Instead, MMS content is automatically converted to SMS with an embedded URL link where recipients can view the multimedia content. This ensures compatibility while still allowing businesses to share rich media content with their audiences.
Recipient Phone Number Compatibility
Number Portability
Number portability is available in Jordan, allowing users to keep their phone numbers when switching between mobile operators. This feature does not significantly impact SMS delivery or routing as messages are properly routed to the current carrier.
Sending SMS to Landlines
Sending SMS to landline numbers is not supported in Jordan. Attempts to send messages to landline numbers will result in a failed delivery and typically trigger a 400 response error (error code 21614) from SMS APIs. These messages will not appear in logs and accounts will not be charged for the attempt.
Compliance and Regulatory Guidelines for SMS in Jordan
The Telecommunications Regulatory Commission (TRC) of Jordan oversees SMS communications and has established specific guidelines for business messaging. Companies must comply with both TRC regulations and individual mobile operator requirements to ensure successful message delivery and regulatory compliance.
Consent and Opt-In
Explicit consent is mandatory before sending any marketing or promotional messages to users in Jordan. Best practices for obtaining and documenting consent include:
- Collecting written or electronic opt-in confirmation
- Maintaining detailed records of when and how consent was obtained
- Clearly stating the types of messages users will receive
- Providing transparent information about message frequency
- Documenting the specific phone number that gave consent
HELP/STOP and Other Commands
- All marketing messages must include clear opt-out instructions
- STOP commands must be supported in both English and Arabic
- Common keywords that must be honored include:
- STOP / توقف
- CANCEL / الغاء
- UNSUBSCRIBE / الغاء_الاشتراك
- Opt-out requests must be processed within 24 hours
Do Not Call / Do Not Disturb Registries
While Jordan does not maintain a centralized Do Not Call registry, businesses must:
- Maintain their own suppression lists
- Honor opt-out requests immediately
- Keep records of opted-out numbers for at least 12 months
- Implement systems to prevent messaging to opted-out numbers
Time Zone Sensitivity
Jordan follows strict time-based restrictions for promotional messages:
- Promotional messages: Prohibited after 9:00 PM Amman time (GMT+3)
- Transactional messages: Can be sent 24/7 if urgent
- Best practice: Send messages between 9:00 AM and 8:00 PM local time
Phone Numbers Options and SMS Sender Types for Jordan
Alphanumeric Sender ID
Operator network capability: Fully supported
Registration requirements: Pre-registration required with all major networks
- Registration process takes approximately 12 days
- Must provide company documentation and message templates
- Promotional messages must include "adv" prefix
Sender ID preservation: Yes, registered IDs are preserved across networks
Long Codes
Domestic vs. International:
- Domestic long codes: Not supported
- International long codes: Supported but converted to alphanumeric sender IDs
Sender ID preservation: No, international long codes are typically overwritten Provisioning time: N/A Use cases: Not recommended for Jordan; use registered alphanumeric IDs instead
Short Codes
Support: Not currently supported in Jordan Provisioning time: N/A Use cases: N/A
Restricted SMS Content, Industries, and Use Cases
The following content types and industries face restrictions:
- Gambling and betting services
- Political content
- Religious messaging
- Adult content
- Cryptocurrency promotions
- Unregistered financial services
Content Filtering
Carrier filtering rules:
- Messages containing blocked keywords are automatically filtered
- URLs must be from approved domains
- Message content must match pre-registered templates
- Spam patterns trigger automatic blocking
Tips to avoid blocking:
- Use pre-approved message templates
- Avoid URL shorteners
- Include clear sender identification
- Maintain consistent sending patterns
- Use registered alphanumeric sender IDs
Best Practices for Sending SMS in Jordan
Messaging Strategy
- Keep messages under 160 characters when possible
- Include clear calls-to-action
- Personalize messages with recipient names when appropriate
- Use a consistent sender ID across campaigns
Sending Frequency and Timing
- Limit promotional messages to 3-4 per month per recipient
- Avoid sending during religious holidays
- Respect weekend timing (Friday-Saturday in Jordan)
- Space out bulk campaigns to prevent network congestion
Localization
- Support both Arabic and English content
- Use proper Arabic character encoding (UCS-2)
- Consider cultural sensitivities in message content
- Provide customer support in both languages
Opt-Out Management
- Process opt-outs within 24 hours
- Maintain a centralized opt-out database
- Include opt-out instructions in every marketing message
- Regularly clean contact lists against opt-out database
Testing and Monitoring
- Test messages across all major carriers (Zain, Orange, Umniah)
- Monitor delivery rates by carrier
- Track opt-out rates and patterns
- Regular audit of consent records
- Monitor and analyze engagement metrics
SMS API integrations for Jordan
Twilio
Twilio provides a robust REST API for sending SMS messages to Jordan. Authentication uses your Account SID and Auth Token.
Key parameters:
from
: Must be a registered alphanumeric sender IDto
: Jordan numbers in E.164 format (+962XXXXXXXXX)body
: Message content (supports Unicode for Arabic)
import * as Twilio from 'twilio';
// Initialize Twilio client
const client = new Twilio(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN);
async function sendSMSToJordan(to: string, message: string) {
try {
// Ensure sender ID starts with "adv" for promotional messages
const senderID = 'advYourBrand';
const response = await client.messages.create({
from: senderID,
to: to, // Must be in format: +962XXXXXXXXX
body: message,
// Optional parameters for delivery tracking
statusCallback: 'https://your-callback-url.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 REST API with OAuth2 authentication for sending SMS to Jordan.
Key parameters:
from
: Registered sender IDto
: Array of recipient numbersbody
: Message content
import axios from 'axios';
class SinchSMSClient {
private readonly apiToken: string;
private readonly servicePlanId: string;
private readonly baseUrl: string = 'https://sms.api.sinch.com/xms/v1';
constructor(servicePlanId: string, apiToken: string) {
this.servicePlanId = servicePlanId;
this.apiToken = apiToken;
}
async sendSMS(to: string, message: string) {
try {
const response = await axios.post(
`${this.baseUrl}/${this.servicePlanId}/batches`,
{
from: 'advYourBrand',
to: [to],
body: message
},
{
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${this.apiToken}`
}
}
);
return response.data;
} catch (error) {
console.error('Sinch SMS Error:', error);
throw error;
}
}
}
MessageBird (Bird)
MessageBird provides a REST API for sending SMS messages with API key authentication.
import messagebird from 'messagebird';
class MessageBirdClient {
private client: any;
constructor(apiKey: string) {
this.client = messagebird(apiKey);
}
sendSMS(to: string, message: string): Promise<any> {
return new Promise((resolve, reject) => {
this.client.messages.create({
originator: 'advYourBrand',
recipients: [to],
body: message,
type: 'unicode' // For Arabic support
}, (err: any, response: any) => {
if (err) {
reject(err);
} else {
resolve(response);
}
});
});
}
}
API Rate Limits and Throughput
Jordan carriers implement various rate limits:
- Maximum 100 messages per second per sender ID
- Daily volume limits vary by carrier
- Batch sending recommended for large campaigns
Strategies for managing high volume:
- Implement queuing system with retry logic
- Use batch APIs when available
- Monitor throughput and adjust sending rates
- Distribute traffic across multiple sender IDs
Error Handling and Reporting
Common error scenarios and solutions:
- Invalid sender ID: Ensure proper registration
- Network congestion: Implement exponential backoff
- Invalid number format: Validate against E.164 format
- Content filtering: Check against restricted content
Logging best practices:
interface SMSLog {
messageId: string;
recipient: string;
senderId: string;
timestamp: Date;
status: string;
errorCode?: string;
retryCount?: number;
}
// Example logging implementation
function logSMSEvent(log: SMSLog): void {
// Add correlation ID for tracking
const correlationId = generateUniqueId();
console.log(JSON.stringify({
...log,
correlationId,
environment: process.env.NODE_ENV,
service: 'sms-service'
}));
}
Recap and Additional Resources
Key Takeaways
-
Compliance Priorities
- Register sender IDs before sending
- Include "adv" prefix for promotional messages
- Respect time restrictions (no promotions after 9 PM)
- Maintain opt-out lists
-
Technical Considerations
- Use Unicode encoding for Arabic text
- Implement proper error handling
- Monitor delivery rates
- Test across all carriers
Next Steps
- Register your sender ID with Jordan carriers
- Review and implement opt-out handling
- Set up monitoring and logging systems
- Test message delivery across all carriers
Additional Resources
- Jordan Telecommunications Regulatory Commission
- Jordan Mobile Operator Guidelines
- SMS Best Practices Guide
Contact Information:
- TRC Technical Support: +962 6 5862020
- Compliance Office: compliance@trc.gov.jo