Uzbekistan SMS Guide 2025: Send SMS to Uzbekistan with API Integration
Learn how to send SMS to Uzbekistan in 2025. Complete guide covering Beeline, Ucell, Mobiuz operators, UzACI compliance, MNP, API integration (Twilio, Sinch, Plivo), sender ID, and best practices.
Learn how to send SMS to Uzbekistan with complete compliance and reliable delivery. This comprehensive guide covers everything you need to know: regulatory requirements from UzACI, mobile operators (Beeline, Ucell, Mobiuz, UZTELECOM), Mobile Number Portability (MNP), SMS API integration with Twilio, Sinch, and Plivo, and proven best practices for successful SMS campaigns in Uzbekistan's rapidly growing mobile market.
Uzbekistan SMS Market Overview: Mobile Operators & Network Coverage
Locale name:
Uzbekistan
ISO code:
UZ
Region
Asia
Mobile country code (MCC)
434
Dialing Code
+998
Market Conditions: Uzbekistan has a growing mobile market with four major operators: Beeline (VEON, 8.2 million subscribers, fastest network at 20.2 Mbps average download speed as of mid-2025), Ucell (9.5 million subscribers, 16.2 Mbps, 5G available in Tashkent since March 2024), Mobiuz (formerly Perfectum Mobile, 7.8 million subscribers, 14.2 Mbps, privatization underway), and UZTELECOM (17.9 Mbps).
Network Evolution: Average 4G download speeds increased 32% from 16 Mbps (end of 2024) to 21.1 Mbps (mid-2025). All operators have invested in 4G densification and 5G activation in major cities. 5G Coverage: Ucell offers 5G in Tashkent (Alay market, business center, Malika shopping complex), with other operators expanding coverage.
Messaging Landscape: While OTT (over-the-top) messaging apps like Telegram and WhatsApp are popular, SMS remains crucial for business communications, authentication, and reaching the full mobile subscriber base. The market shows strong Android dominance, with iOS having a smaller market share. Mobile penetration continues to increase, making SMS an effective channel for reaching customers across all demographics.
SMS Features and Capabilities in Uzbekistan: Two-Way, MMS, and Concatenation
Uzbekistan supports basic SMS functionality with some limitations on two-way messaging and sender ID preservation, while offering support for concatenated messages and URL-based MMS (Multimedia Messaging Service) alternatives.
Two-Way SMS Support
Two-way SMS is not supported in Uzbekistan according to current operator capabilities. Businesses cannot receive replies to their SMS messages through standard A2P (Application-to-Person) channels.
Business Impact: The lack of two-way SMS support means businesses cannot use SMS for interactive conversations, keyword-based campaigns, or direct reply engagement. This limitation affects customer service workflows, contest entries, and survey responses via SMS.
Alternative Approaches:
Use OTT messaging platforms like Telegram or WhatsApp Business API for two-way conversations (widely adopted in Uzbekistan)
Implement callback URLs in messages directing users to web forms or mobile apps for responses
Include phone numbers for voice-based customer service in your SMS messages
Use email or mobile app notifications for interactions requiring responses
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, 70 characters for UCS-2 (Unicode) encoding before splitting occurs.
Encoding considerations: Both GSM-7 (standard 7-bit encoding) and UCS-2 encodings are supported, with UCS-2 being essential for messages containing Uzbek characters or other non-Latin alphabets.
Encoding
Single Segment
2 Segments
3 Segments
4 Segments
GSM-7
160 chars
306 chars (153×2)
459 chars (153×3)
612 chars (153×4)
UCS-2 (Unicode)
70 chars
134 chars (67×2)
201 chars (67×3)
268 chars (67×4)
Cost Implications: Concatenated messages are billed per segment. A 200-character GSM-7 message counts as 2 segments and costs twice as much as a single 160-character message. Plan message content carefully to optimize costs. Messages exceeding 160/70 characters automatically split with overhead for reassembly headers (reducing usable space to 153/67 characters per segment).
MMS Support
MMS messages are automatically converted to SMS with an embedded URL link. This ensures compatibility while still allowing you to share rich media content with your customers through linked resources.
URL Conversion Process:
Upload media to a secure, publicly accessible HTTPS server
Provider shortens URL to conserve character count (typically 20-30 characters)
SMS sent with preview text plus URL link to full content
Recipients click link to view images, video, or audio in mobile browser
Technical Requirements:
Image formats: JPEG, PNG, GIF (recommended max 500KB)
Hosting: HTTPS required, with CDN recommended for reliability
Link expiration: Configure based on campaign duration (7-30 days typical)
URL shorteners: Use reputable services; avoid generic shorteners that may be blocked
Recipient Phone Number Compatibility
Number Portability
Mobile Number Portability (MNP) is available in Uzbekistan as of October 27, 2023. Users can switch operators while keeping their phone number, including the operator code. The porting process takes up to 8 working hours from application submission, and subscribers must wait at least 30 days between consecutive transfers. Porting costs vary by operator. Official MNP portal: mnp.uz
Impact on SMS routing: Since MNP is active, the operator code no longer guarantees the current carrier. Query the MNP database or use carrier-agnostic routing to ensure proper delivery.
MNP Lookup Integration: Most SMS providers (Twilio, Sinch, Plivo) offer HLR (Home Location Register) lookup services to identify the current carrier:
Cost: HLR lookups typically cost $0.004-$0.01 per query; cache results for 7-14 days
Response time: 1-3 seconds per lookup; use batch queries for large lists
Error handling: Implement fallback routing if lookup fails; default to carrier-agnostic routes
Frequency: Query before high-value campaigns; use cached data for transactional messages
Sending SMS to Landlines
Sending SMS to landline numbers is not possible in Uzbekistan. Attempts to send messages to landline numbers will result in a 400 response error (code 21614) through the API, with no message delivery and no charges applied.
Uzbekistan SMS Compliance: UzACI Regulations and Legal Requirements
SMS communications in Uzbekistan are regulated by the UzACI (Uzbekistan Agency for Communications and Information). Comply with local telecommunications laws and data privacy regulations when sending commercial SMS messages.
Primary Regulations: Telecommunications services are governed by the Law on Telecommunications (No. 539-II, August 20, 2015) and regulations issued by UzACI. While specific SMS marketing regulations are less detailed than in EU/US jurisdictions, general telecommunications and consumer protection laws apply.
Enforcement and Penalties: UzACI has authority to impose administrative penalties for violations, including warnings, fines, and service suspension. Penalties vary based on severity but can include fines up to 50 times the base calculation unit (approximately 3.1 million UZS / $250 USD as of 2025) for serious violations. Repeated violations may result in license suspension or criminal liability for fraud.
Consent and Opt-In
Obtain explicit consent before sending any marketing or promotional messages to recipients in Uzbekistan. Best practices for obtaining and documenting consent include:
Collect written or digital opt-in confirmation
Maintain detailed records of consent acquisition date and method
Clearly state the types of messages recipients will receive
Provide transparent information about message frequency
Consent Documentation Template:
Code
I agree to receive SMS messages from [Business Name] regarding:
☐ Promotional offers and discounts
☐ Order updates and notifications
☐ Account alerts and security codes
Message frequency: [e.g., up to 4 messages/month]
Reply STOP to unsubscribe. Standard message rates apply.
Consent date: [Date]
Method: [Web form / In-store signup / App registration]
Storage Requirements: Maintain consent records for minimum 3 years with timestamp, IP address (for digital consent), and consent method. Store in secure, auditable database compliant with data protection standards.
HELP/STOP and Other Commands
Support standard opt-out keywords including STOP, CANCEL, and UNSUBSCRIBE in all SMS campaigns
Provide HELP messages in both Uzbek and Russian languages
Respond to STOP commands immediately and confirm with a message in the recipient's preferred language
Make keywords case-insensitive to ensure accessibility
Do Not Call / Do Not Disturb Registries
While Uzbekistan does not maintain a centralized Do Not Call registry, you should:
Maintain your own suppression lists
Honor opt-out requests within 24 hours
Document opt-out requests properly
Clean contact lists regularly to remove unsubscribed numbers
Time Zone Sensitivity
Uzbekistan follows UTC+5 time zone. Best practices for message timing include:
Send messages between 9:00 AM and 8:00 PM local time
Avoid messages during religious holidays and national celebrations
Send only urgent messages (like authentication codes) outside standard hours
Uzbekistan SMS Sender ID Options: Alphanumeric, Long Codes, and Short Codes
Alphanumeric Sender ID
Operator network capability: Dynamic alphanumeric sender IDs are supported but with limitations
Registration requirements: Pre-registration is not supported, but dynamic usage is allowed
Sender ID preservation: No – sender IDs may be overwritten with generic alphanumeric IDs by local operators
Operator Sender ID Behavior: When alphanumeric sender IDs are overwritten, operators typically replace them with:
Pattern Matching Rules: Operators use automated filters checking:
All-caps messages (e.g., "FREE MONEY NOW") - high spam score
Excessive punctuation (multiple "!!!" or "???") - spam indicator
URL density (more than 1-2 URLs per message) - suspicious
Number patterns (strings of digits resembling phone/card numbers) - fraud risk
Spam Score Thresholds: While specific thresholds are not public, messages scoring above operator-defined limits are automatically blocked. Reduce spam scores by:
Using mixed case (not all caps)
Limiting punctuation (1-2 exclamation marks maximum)
Including legitimate sender identification
Maintaining consistent message templates
Avoiding misleading claims or urgency tactics
Tips to avoid blocking:
Use clear, straightforward language
Avoid URL shorteners (use branded short domains if needed)
Limit special characters and emoji usage
Include clear sender identification
Maintain consistent sending patterns
Best Practices for Sending SMS to Uzbekistan: Timing, Localization, and Optimization
Messaging Strategy
Keep messages under 160 characters when possible
Include clear calls-to-action
Personalize messages using recipient's name or relevant details
Maintain consistent branding across messages
Sending Frequency and Timing
Limit marketing messages to 2–4 per month per recipient
Space out messages to avoid overwhelming recipients
Consider Ramadan and other religious observances
Respect national holidays and weekends
Localization
Offer messages in both Uzbek and Russian
Use proper character encoding for local languages
Consider cultural sensitivities in message content
Include local date and time formats
Opt-Out Management
Process opt-outs within 24 hours
Send confirmation of successful opt-out
Maintain opt-out lists across all campaigns
Audit opt-out compliance regularly
Testing and Monitoring
Test messages across all four major carriers: Beeline (fastest, 20.2 Mbps), UZTELECOM (17.9 Mbps), Ucell (16.2 Mbps, 5G in Tashkent), and Mobiuz (14.2 Mbps)
Monitor delivery rates by carrier and network type (4G/5G)
Track engagement metrics and optimize accordingly
Regular testing of opt-out functionality
MNP consideration: Test delivery to ported numbers across carriers, as operator codes no longer guarantee the current network (MNP active since October 2023)
How to Send SMS to Uzbekistan Using APIs: Twilio, Sinch, and Plivo Integration
Twilio SMS API for Uzbekistan
Twilio provides a robust REST API for sending SMS messages to Uzbekistan. Authentication uses account SID and auth token credentials.
TypeScript
import { Twilio } from'twilio';
// Initialize client with your credentialsconst client = newTwilio(
process.env.TWILIO_ACCOUNT_SID,
process.env.TWILIO_AUTH_TOKEN
);
// Function to send SMS to UzbekistanasyncfunctionsendSmsToUzbekistan(to: string,
message: string): Promise<void> {
try {
// Ensure number is in E.164 format (+998...)const formattedNumber = to.startsWith('+') ? to : `+998${to}`;
const response = await client.messages.create({
body: message,
to: formattedNumber,
from: process.env.TWILIO_PHONE_NUMBER,
// Optional parameters for delivery trackingstatusCallback: 'https://your-webhook.com/status'
});
console.log(`Message sent successfully! SID: ${response.sid}`);
} catch (error) {
console.error('Failed to send message:', error);
}
}
Sinch SMS API for Uzbekistan
Sinch offers SMS API access with JWT-based authentication and comprehensive delivery reporting.
Consult with local legal counsel for compliance review
Set up test accounts with preferred SMS providers
Implement monitoring and reporting systems
Pricing Reference
Estimated SMS Costs to Uzbekistan (as of 2025, subject to change):
Provider
Outbound SMS (per message)
HLR Lookup
Inbound SMS
Notes
Twilio
$0.0500 - $0.0750
$0.005
Not supported
Volume discounts available
Sinch
$0.0450 - $0.0700
$0.004
Not supported
Lower rates for committed volumes
Plivo
$0.0520 - $0.0680
$0.006
Not supported
Pay-as-you-go pricing
Cost Factors: Prices vary by carrier, sender ID type, and message length. Concatenated messages multiply the base cost by segment count. Premium routing (higher reliability) may incur additional charges. Contact providers for current rates and volume discounts.
Troubleshooting FAQ
Q: Why are my messages not being delivered to certain numbers?
A: Check for: (1) Ported numbers requiring MNP routing, (2) Invalid/inactive numbers, (3) Landline numbers (not supported), (4) Content filtering by operators. Use HLR lookup to verify number status.
Q: My sender ID is being replaced. How can I fix this?
A: Uzbekistan operators commonly overwrite sender IDs. Solutions: (1) Use shorter alphanumeric IDs (<11 chars), (2) Test preservation rates across all carriers, (3) Include brand name in message body as fallback, (4) Consider using long codes for critical transactional messages.
Q: Messages are blocked without explanation. What should I check?
A: Review content for: (1) Restricted keywords (gambling, crypto, adult content), (2) Excessive caps/punctuation, (3) Suspicious URLs, (4) High spam score patterns. Test message text with different carriers before large campaigns.
Q: How do I handle MNP when sending SMS?
A: Options: (1) Use HLR lookup before sending to identify current carrier (adds $0.004-$0.006 per lookup), (2) Use carrier-agnostic routing (provider handles routing automatically), (3) Cache HLR results for 7-14 days to reduce costs.
Q: What's the best time to send marketing SMS in Uzbekistan?
A: Send between 9 AM - 8 PM local time (UTC+5). Avoid Fridays (prayer day), weekends, and Ramadan for marketing. Transactional/OTP messages can be sent 24/7.
Q: How can I reduce SMS costs?
A: Strategies: (1) Keep messages under 160 chars to avoid segmentation, (2) Use GSM-7 encoding instead of Unicode when possible, (3) Negotiate volume discounts with providers, (4) Clean lists regularly to avoid sending to invalid numbers, (5) Cache HLR lookups to minimize lookup costs.
Note: Keep documentation updated as regulations and technical requirements may change. Regular review of compliance requirements is recommended.
Frequently asked questions
Use a reputable SMS API provider like Twilio, Sinch, or Plivo. Their APIs allow integration with your systems and offer features like delivery tracking. Ensure phone numbers are in E.164 format (+998...).
Uzbekistan has a growing mobile market with major operators like Ucell, Beeline, and Mobiuz. While OTT apps are popular, SMS remains vital for business communication and authentication, especially given increasing mobile penetration.
According to current operator capabilities, standard A2P two-way SMS isn't supported. Businesses cannot receive replies to their SMS messages through these channels.
Adhere to the UTC+5 time zone, sending messages between 9:00 AM and 8:00 PM local time. Avoid sending during religious holidays and national celebrations. Only send urgent messages outside these hours.
Yes, dynamic alphanumeric sender IDs are supported but may be overwritten by local operators with generic IDs. Pre-registration is not supported, but dynamic usage is allowed.
Standard SMS length limits apply: 160 characters for GSM-7 encoding and 70 characters for UCS-2 encoding. Concatenated messages are supported for longer content, splitting messages exceeding these limits.
Providers have different rate limits. Implement strategies like exponential backoff for retries, message queuing systems (Redis, RabbitMQ), batching messages, and monitoring throughput to adjust sending rates accordingly.
Explicit consent is mandatory for marketing messages. You must support opt-out keywords (STOP, CANCEL, UNSUBSCRIBE) and honor requests promptly. Maintain thorough records of consent and opt-outs.
Gambling, adult content, unauthorized financial services, and political campaigns without authorization are restricted. Content filtering also targets certain keywords and suspicious URLs.
MMS messages are automatically converted to SMS with an embedded URL link, allowing recipients to access rich media content through the provided link.
Offer messages in both Uzbek and Russian using proper character encoding (UCS-2 for Uzbek). Consider cultural sensitivities in message content and include local date/time formats.
Test messages across major carriers (Ucell, Beeline, Mobiuz). Monitor delivery rates and track engagement metrics. Implement proper error handling, retry mechanisms, and delivery receipt monitoring.
Twilio, Sinch, and Plivo offer robust APIs with features like authentication, delivery tracking, and error handling for sending SMS in Uzbekistan. Each provider uses different authentication methods and offers varying levels of support.
Number portability is not available in Uzbekistan. This means numbers remain tied to their original carrier, simplifying message routing and delivery.
Sending SMS to landlines in Uzbekistan is not possible. Attempts to do so result in a 400 response error (code 21614) via the API, with no message delivery and no charges incurred.
Learn how to send SMS to Uzbekistan with complete compliance and reliable delivery. This comprehensive guide covers everything you need to know: regulatory requirements from UzACI, mobile operators (Beeline, Ucell, Mobiuz, UZTELECOM), Mobile Number Portability (MNP), SMS API integration with Twilio, Sinch, and Plivo, and proven best practices for successful SMS campaigns in Uzbekistan's rapidly growing mobile market.
Uzbekistan SMS Market Overview: Mobile Operators & Network Coverage
Market Conditions: Uzbekistan has a growing mobile market with four major operators: Beeline (VEON, 8.2 million subscribers, fastest network at 20.2 Mbps average download speed as of mid-2025), Ucell (9.5 million subscribers, 16.2 Mbps, 5G available in Tashkent since March 2024), Mobiuz (formerly Perfectum Mobile, 7.8 million subscribers, 14.2 Mbps, privatization underway), and UZTELECOM (17.9 Mbps).
Network Evolution: Average 4G download speeds increased 32% from 16 Mbps (end of 2024) to 21.1 Mbps (mid-2025). All operators have invested in 4G densification and 5G activation in major cities. 5G Coverage: Ucell offers 5G in Tashkent (Alay market, business center, Malika shopping complex), with other operators expanding coverage.
Messaging Landscape: While OTT (over-the-top) messaging apps like Telegram and WhatsApp are popular, SMS remains crucial for business communications, authentication, and reaching the full mobile subscriber base. The market shows strong Android dominance, with iOS having a smaller market share. Mobile penetration continues to increase, making SMS an effective channel for reaching customers across all demographics.
SMS Features and Capabilities in Uzbekistan: Two-Way, MMS, and Concatenation
Uzbekistan supports basic SMS functionality with some limitations on two-way messaging and sender ID preservation, while offering support for concatenated messages and URL-based MMS (Multimedia Messaging Service) alternatives.
Two-Way SMS Support
Two-way SMS is not supported in Uzbekistan according to current operator capabilities. Businesses cannot receive replies to their SMS messages through standard A2P (Application-to-Person) channels.
Business Impact: The lack of two-way SMS support means businesses cannot use SMS for interactive conversations, keyword-based campaigns, or direct reply engagement. This limitation affects customer service workflows, contest entries, and survey responses via SMS.
Alternative Approaches:
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, 70 characters for UCS-2 (Unicode) encoding before splitting occurs.
Encoding considerations: Both GSM-7 (standard 7-bit encoding) and UCS-2 encodings are supported, with UCS-2 being essential for messages containing Uzbek characters or other non-Latin alphabets.
Cost Implications: Concatenated messages are billed per segment. A 200-character GSM-7 message counts as 2 segments and costs twice as much as a single 160-character message. Plan message content carefully to optimize costs. Messages exceeding 160/70 characters automatically split with overhead for reassembly headers (reducing usable space to 153/67 characters per segment).
MMS Support
MMS messages are automatically converted to SMS with an embedded URL link. This ensures compatibility while still allowing you to share rich media content with your customers through linked resources.
URL Conversion Process:
Technical Requirements:
Recipient Phone Number Compatibility
Number Portability
Mobile Number Portability (MNP) is available in Uzbekistan as of October 27, 2023. Users can switch operators while keeping their phone number, including the operator code. The porting process takes up to 8 working hours from application submission, and subscribers must wait at least 30 days between consecutive transfers. Porting costs vary by operator. Official MNP portal: mnp.uz
Impact on SMS routing: Since MNP is active, the operator code no longer guarantees the current carrier. Query the MNP database or use carrier-agnostic routing to ensure proper delivery.
MNP Lookup Integration: Most SMS providers (Twilio, Sinch, Plivo) offer HLR (Home Location Register) lookup services to identify the current carrier:
// Example: Twilio HLR Lookup for MNP import { Twilio } from 'twilio'; const client = new Twilio(accountSid, authToken); async function lookupCarrier(phoneNumber: string) { try { const lookup = await client.lookups.v2 .phoneNumbers(phoneNumber) .fetch({ fields: 'line_type_intelligence' }); console.log('Current carrier:', lookup.lineTypeIntelligence?.carrier_name); console.log('Number type:', lookup.lineTypeIntelligence?.type); return lookup.lineTypeIntelligence; } catch (error) { console.error('Lookup failed:', error); } }MNP Query Best Practices:
Sending SMS to Landlines
Sending SMS to landline numbers is not possible in Uzbekistan. Attempts to send messages to landline numbers will result in a 400 response error (code 21614) through the API, with no message delivery and no charges applied.
Uzbekistan SMS Compliance: UzACI Regulations and Legal Requirements
SMS communications in Uzbekistan are regulated by the UzACI (Uzbekistan Agency for Communications and Information). Comply with local telecommunications laws and data privacy regulations when sending commercial SMS messages.
Primary Regulations: Telecommunications services are governed by the Law on Telecommunications (No. 539-II, August 20, 2015) and regulations issued by UzACI. While specific SMS marketing regulations are less detailed than in EU/US jurisdictions, general telecommunications and consumer protection laws apply.
Enforcement and Penalties: UzACI has authority to impose administrative penalties for violations, including warnings, fines, and service suspension. Penalties vary based on severity but can include fines up to 50 times the base calculation unit (approximately 3.1 million UZS / $250 USD as of 2025) for serious violations. Repeated violations may result in license suspension or criminal liability for fraud.
Consent and Opt-In
Obtain explicit consent before sending any marketing or promotional messages to recipients in Uzbekistan. Best practices for obtaining and documenting consent include:
Consent Documentation Template:
Storage Requirements: Maintain consent records for minimum 3 years with timestamp, IP address (for digital consent), and consent method. Store in secure, auditable database compliant with data protection standards.
HELP/STOP and Other Commands
Do Not Call / Do Not Disturb Registries
While Uzbekistan does not maintain a centralized Do Not Call registry, you should:
Time Zone Sensitivity
Uzbekistan follows UTC+5 time zone. Best practices for message timing include:
Uzbekistan SMS Sender ID Options: Alphanumeric, Long Codes, and Short Codes
Alphanumeric Sender ID
Operator network capability: Dynamic alphanumeric sender IDs are supported but with limitations
Registration requirements: Pre-registration is not supported, but dynamic usage is allowed
Sender ID preservation: No – sender IDs may be overwritten with generic alphanumeric IDs by local operators
Operator Sender ID Behavior: When alphanumeric sender IDs are overwritten, operators typically replace them with:
Choosing Effective Sender IDs:
Long Codes
Domestic vs. International: International long codes are supported, domestic availability varies
Sender ID preservation: No – numeric sender IDs may be overwritten
Provisioning time: Typically 1–2 business days
Use cases: Recommended for transactional messages and two-factor authentication
Short Codes
Support: Short codes are not currently supported in Uzbekistan
Provisioning time: N/A
Use cases: N/A
Restricted Content and Content Filtering Rules for Uzbekistan SMS
The following content types and industries face restrictions:
Consequences of Sending Restricted Content:
Content Filtering
Known carrier filtering rules include:
Keyword Examples to Avoid (high-risk terms that trigger filters):
Pattern Matching Rules: Operators use automated filters checking:
Spam Score Thresholds: While specific thresholds are not public, messages scoring above operator-defined limits are automatically blocked. Reduce spam scores by:
Tips to avoid blocking:
Best Practices for Sending SMS to Uzbekistan: Timing, Localization, and Optimization
Messaging Strategy
Sending Frequency and Timing
Localization
Opt-Out Management
Testing and Monitoring
How to Send SMS to Uzbekistan Using APIs: Twilio, Sinch, and Plivo Integration
Twilio SMS API for Uzbekistan
Twilio provides a robust REST API for sending SMS messages to Uzbekistan. Authentication uses account SID and auth token credentials.
import { Twilio } from 'twilio'; // Initialize client with your credentials const client = new Twilio( process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN ); // Function to send SMS to Uzbekistan async function sendSmsToUzbekistan( to: string, message: string ): Promise<void> { try { // Ensure number is in E.164 format (+998...) const formattedNumber = to.startsWith('+') ? to : `+998${to}`; const response = await client.messages.create({ body: message, to: formattedNumber, from: process.env.TWILIO_PHONE_NUMBER, // Optional parameters for delivery tracking statusCallback: 'https://your-webhook.com/status' }); console.log(`Message sent successfully! SID: ${response.sid}`); } catch (error) { console.error('Failed to send message:', error); } }Sinch SMS API for Uzbekistan
Sinch offers SMS API access with JWT-based authentication and comprehensive delivery reporting.
import axios from 'axios'; interface SinchSmsConfig { apiToken: string; servicePlanId: string; fromNumber: string; } class SinchSmsService { private readonly baseUrl: string; private readonly config: SinchSmsConfig; constructor(config: SinchSmsConfig) { this.config = config; this.baseUrl = `https://sms.api.sinch.com/xms/v1/${config.servicePlanId}/batches`; } async sendSms(to: string, message: string): Promise<void> { try { const response = await axios.post( this.baseUrl, { from: this.config.fromNumber, to: [to], body: message }, { headers: { 'Authorization': `Bearer ${this.config.apiToken}`, 'Content-Type': 'application/json' } } ); console.log('Message sent:', response.data.id); } catch (error) { console.error('Sinch SMS error:', error); } } }Plivo SMS API for Uzbekistan
Plivo provides a straightforward API for SMS integration with detailed delivery tracking.
import * as plivo from 'plivo'; class PlivoSmsService { private client: any; private sourceNumber: string; constructor(authId: string, authToken: string, sourceNumber: string) { this.client = new plivo.Client(authId, authToken); this.sourceNumber = sourceNumber; } async sendMessage(to: string, message: string): Promise<void> { try { const response = await this.client.messages.create({ src: this.sourceNumber, dst: to, text: message, // Optional parameters url: 'https://your-webhook.com/status', method: 'POST' }); console.log('Message sent:', response.messageUuid); } catch (error) { console.error('Plivo error:', error); } } }API Rate Limits and Throughput
Rate limits for Uzbekistan vary by provider:
Burst Capacity: Short-term spike allowances for urgent campaigns; exceeding burst limits results in 429 rate limit errors.
Daily Quotas: Default limits for new accounts; production accounts typically receive higher quotas after verification and payment history review.
Account-Level Restrictions: New accounts may have lower limits (10-20 msg/sec) until trust is established through consistent usage and payment.
Strategies for managing high volume:
Error Handling and Reporting
Best practices for error management:
Common Error Codes for Uzbekistan:
Webhook Implementation for Delivery Status:
import express from 'express'; const app = express(); app.use(express.urlencoded({ extended: true })); app.use(express.json()); // Twilio delivery status webhook app.post('/webhooks/twilio/status', (req, res) => { const { MessageSid, MessageStatus, ErrorCode } = req.body; console.log(`Message ${MessageSid}: ${MessageStatus}`); if (MessageStatus === 'failed' || MessageStatus === 'undelivered') { console.error(`Delivery failed. Error code: ${ErrorCode}`); // Log to database, trigger alerts, etc. } res.sendStatus(200); }); // Sinch delivery status webhook app.post('/webhooks/sinch/status', (req, res) => { const { batch_id, statuses } = req.body; statuses.forEach((status: any) => { console.log(`Batch ${batch_id} - Recipient ${status.recipient}: ${status.status}`); }); res.sendStatus(200); }); // Plivo delivery status webhook app.post('/webhooks/plivo/status', (req, res) => { const { MessageUUID, Status, ErrorCode } = req.body; if (Status === 'failed') { console.error(`Message ${MessageUUID} failed. Error: ${ErrorCode}`); } res.sendStatus(200); }); app.listen(3000);// Example error handling implementation async function sendWithRetry( sendFunction: () => Promise<void>, maxRetries: number = 3 ): Promise<void> { let attempts = 0; while (attempts < maxRetries) { try { await sendFunction(); return; } catch (error) { attempts++; if (attempts === maxRetries) { throw error; } // Exponential backoff await new Promise(resolve => setTimeout(resolve, Math.pow(2, attempts) * 1000) ); } } }Recap and Additional Resources
Key Takeaways
Compliance Priorities
Technical Considerations
Best Practices
Next Steps
Pricing Reference
Estimated SMS Costs to Uzbekistan (as of 2025, subject to change):
Cost Factors: Prices vary by carrier, sender ID type, and message length. Concatenated messages multiply the base cost by segment count. Premium routing (higher reliability) may incur additional charges. Contact providers for current rates and volume discounts.
Troubleshooting FAQ
Q: Why are my messages not being delivered to certain numbers?
A: Check for: (1) Ported numbers requiring MNP routing, (2) Invalid/inactive numbers, (3) Landline numbers (not supported), (4) Content filtering by operators. Use HLR lookup to verify number status.
Q: My sender ID is being replaced. How can I fix this?
A: Uzbekistan operators commonly overwrite sender IDs. Solutions: (1) Use shorter alphanumeric IDs (<11 chars), (2) Test preservation rates across all carriers, (3) Include brand name in message body as fallback, (4) Consider using long codes for critical transactional messages.
Q: Messages are blocked without explanation. What should I check?
A: Review content for: (1) Restricted keywords (gambling, crypto, adult content), (2) Excessive caps/punctuation, (3) Suspicious URLs, (4) High spam score patterns. Test message text with different carriers before large campaigns.
Q: How do I handle MNP when sending SMS?
A: Options: (1) Use HLR lookup before sending to identify current carrier (adds $0.004-$0.006 per lookup), (2) Use carrier-agnostic routing (provider handles routing automatically), (3) Cache HLR results for 7-14 days to reduce costs.
Q: What's the best time to send marketing SMS in Uzbekistan?
A: Send between 9 AM - 8 PM local time (UTC+5). Avoid Fridays (prayer day), weekends, and Ramadan for marketing. Transactional/OTP messages can be sent 24/7.
Q: How can I reduce SMS costs?
A: Strategies: (1) Keep messages under 160 chars to avoid segmentation, (2) Use GSM-7 encoding instead of Unicode when possible, (3) Negotiate volume discounts with providers, (4) Clean lists regularly to avoid sending to invalid numbers, (5) Cache HLR lookups to minimize lookup costs.
Additional Resources
Note: Keep documentation updated as regulations and technical requirements may change. Regular review of compliance requirements is recommended.