Send SMS messages in Taiwan compliantly. This guide covers NCC regulations, PDPA requirements, time restrictions, mandatory consent rules, and technical requirements for Traditional Chinese messaging across Chunghwa Telecom, Taiwan Mobile, and Far EasTone networks.
Taiwan SMS Market Overview
Locale name:
Taiwan
ISO code:
TW
Region
Asia
Mobile country code (MCC)
466
Dialing Code
+886
Market Conditions: Taiwan has near-universal smartphone penetration. OTT messaging apps like LINE dominate personal communications, but SMS remains crucial for authentication, notifications, and marketing. Major operators include Chunghwa Telecom, Taiwan Mobile, and Far EasTone. Android devices hold approximately 65% market share, with iOS accounting for most of the remainder. For broader context on international SMS standards, see our E.164 phone format guide.
Market Share: As of 2025, Chunghwa Telecom holds approximately 35% of Taiwan's mobile market, Taiwan Mobile approximately 28%, and Far EasTone approximately 22%, with smaller operators APTG and T Star sharing the remainder.
Taiwan SMS Features and Capabilities
Taiwan supports most standard SMS features with restrictions on sender IDs and content types. Comply with strict NCC requirements for business messaging.
Two-way SMS in Taiwan
Two-way SMS is not supported in Taiwan for A2P (Application-to-Person) messaging. Taiwan's telecommunications carriers impose this restriction to prevent SMS spam, fraud (smishing), and unauthorized commercial communications. The sender ID overwriting mechanism – which replaces sender IDs with random Taiwan numbers – makes reply routing technically impossible, as replies cannot be directed back to the original sender.
Alternative Solutions for Two-Way Communication:
Implement web-based response forms with unique URLs sent in SMS
Use LINE Official Accounts for interactive messaging (LINE has 90% market penetration in Taiwan)
Deploy dedicated phone numbers for inbound calls with SMS containing call-to-action
Integrate email responses with SMS containing unique reference codes
Concatenated Messages (Segmented SMS)
Support: Yes, though availability varies by sender ID type.
Message length rules: Standard SMS length is 160 characters (GSM-7) or 70 characters (UCS-2) before splitting. For Chinese characters, the maximum is 65 characters per SMS.
Encoding considerations: Both GSM-7 and UCS-2 encoding are supported. Messages containing Chinese characters automatically use UCS-2 encoding.
Character Counting and Cost Examples:
English message "Your verification code is 123456" = 32 characters (1 SMS segment at GSM-7)
Keep messages under 65 Chinese characters or 160 GSM-7 characters to minimize costs and ensure single-segment delivery.
MMS Support
MMS messages are automatically converted to SMS with an embedded URL link. Register and allowlist your URLs with local carriers to prevent delivery failures when sending media content.
Recipient Phone Number Compatibility
Number Portability
Number portability is available in Taiwan. Carriers handle routing automatically, so number portability does not significantly impact message delivery.
Sending SMS to Landlines
You cannot send SMS to landline numbers in Taiwan. Attempts result in a 400 response error (code 21614) with no message delivery and no charge.
Number Validation: Taiwan landline numbers start with area codes (02 for Taipei, 03–09 for other regions) and are 8–9 digits total. Mobile numbers always start with 09 and are 10 digits (e.g., +886 9XX XXX XXX). Implement validation logic to filter landlines before sending:
JavaScript
functionisValidTaiwanMobile(number) {
// Remove +886 or 886 prefix, expect 10 digits starting with 09const cleaned = number.replace(/^\+?886/, '');
return/^09\d{8}$/.test(cleaned);
}
Comply with Taiwan's SMS regulations set by the National Communications Commission (NCC) and the Telecommunications Act. Follow the Personal Data Protection Act (PDPA, 個人資料保護法) when handling customer data and sending messages. These regulations are similar to other Asia-Pacific markets - compare with Singapore SMS regulations for regional context.
Regulatory Authorities:
National Communications Commission (NCC): www.ncc.gov.tw
PDPA violations: Fines up to NT$200,000 (approximately US$6,300) for marketing communications sent without proper consent or in breach of opt-out requirements (PDPA Article 48)
SMS fraud/spam: If 5 or more sender IDs are involved in fraudulent activity, fines of NT$50,000 per sender ID plus suspension of sender ID registration for 2 months
Carrier violations: Operators face fines up to NT$3 million for frequency use violations or security breaches, which may be passed to violating customers
Criminal penalties: SMS fraud causing damages exceeding NT$5 million can result in 3–10 years imprisonment under Taiwan's amended fraud statutes
Consent and Opt-In
Explicit Consent Requirements:
Obtain written or electronic consent before sending marketing messages (PDPA Article 19)
Maintain easily accessible consent records
Clearly state the messaging purpose during opt-in
Obtain separate consent for different communication types
Consent Record Retention: The PDPA does not mandate a specific retention period for general consent records, but industry regulations require retaining records associated with personal data usage for at least 5 years. If other laws prescribe a longer retention period, follow that requirement. Retain consent records for 5–7 years from the date of last communication. For U.S. businesses, consider how these requirements align with 10DLC SMS registration for domestic campaigns.
Best Practices for Consent:
Implement double opt-in verification
Store consent timestamps and methods
Maintain detailed records of opt-in sources
Regularly update consent status
HELP/STOP and Other Commands
Include opt-out instructions in all marketing messages
Support STOP commands in both Chinese and English
Common keywords: 取消訂閱, STOP, 退訂, CANCEL
Respond to HELP/STOP immediately and free of charge
Implementation Example:
JavaScript
functionhandleInboundSMS(message, fromNumber) {
const stopKeywords = ['STOP', '取消訂閱', '退訂', 'CANCEL', 'UNSUBSCRIBE'];
const helpKeywords = ['HELP', '說明', '幫助'];
if (stopKeywords.some(kw => message.toUpperCase().includes(kw))) {
// Add to suppression list within 24 hoursaddToSuppressionList(fromNumber);
sendConfirmation(fromNumber, '您已成功取消訂閱 / You have been unsubscribed');
} elseif (helpKeywords.some(kw => message.toUpperCase().includes(kw))) {
sendHelpMessage(fromNumber, '如需取消請回覆 STOP / Reply STOP to unsubscribe');
}
}
Do Not Call / Do Not Disturb Registries
Taiwan maintains a national Do Not Call (DNC) registry managed by the NCC:
Check numbers against the DNC registry monthly
Maintain internal suppression lists
Remove numbers within 24 hours of opt-out requests
Document compliance procedures
DNC Registry Access: As of 2025, Taiwan's DNC registry for mobile phones is not as centrally managed as in some countries (e.g., Singapore's DNC registry). Maintain your own suppression lists and honor opt-out requests. Coordinate with your SMS provider to implement:
Automated suppression list management
Regular synchronization with internal CRM systems
Audit trails of opt-out requests and processing times
Time Zone Sensitivity
Strict Time Restrictions:
No promotional messages between 12:30 PM – 1:30 PM (lunch break)
No promotional messages between 9:00 PM – 9:00 AM (night/early morning)
Emergency and service messages exempt from time restrictions
All times based on Taiwan Standard Time (TST, UTC+8)
Public Holiday Considerations: Avoid sending promotional SMS during major Taiwan holidays: Lunar New Year (typically late January/early February, 7-day period), Dragon Boat Festival (5th day of 5th lunar month), Mid-Autumn Festival (15th day of 8th lunar month), and Double Ten National Day (October 10). Transactional messages (OTP, order confirmations) are acceptable.
Phone Numbers Options and SMS Sender Types for Taiwan
Alphanumeric Sender ID
Operator network capability: Not supported for direct use
Registration requirements: No pre-registration available
Sender ID preservation: Sender IDs are overwritten with random Taiwan long codes at the carrier level
What happens to sender IDs: When you send an SMS with an alphanumeric sender ID (e.g., "MyBrand"), Taiwan carriers automatically replace it with a random Taiwan mobile number (format +886 9XX XXX XXX). Recipients see a numeric sender, not your brand name. This carrier-level overwriting prevents reply routing and brand recognition.
Workaround: Include your brand name in the first 67 characters of the message body. As of November 1, 2025, all commercial SMS must include the company, organization, brand, or campaign name within the message content for NCC compliance.
Long Codes
Domestic vs. International:
Domestic long codes not supported
International long codes supported but modified during delivery
Sender ID preservation: No, original sender IDs are not preserved
Provisioning time: Immediate to 24 hours
Use cases: Transactional messages, alerts, notifications
Carrier-Specific Differences:
Chunghwa Telecom: Does not support short URLs in message text or concatenated messages on some sender ID types
Taiwan Mobile & Far EasTone: Support concatenation but require brand name registration
Cost comparison: Pricing varies by carrier and volume, typically NT$2–4 per SMS segment for international routes; domestic registered routes may offer NT$1.5–2.5 per segment for high-volume senders (50,000+ messages/month)
Short Codes
Support: Not currently available in Taiwan
Provisioning time: N/A
Use cases: N/A
Restricted SMS Content, Industries, and Use Cases
Prohibited Content and Industries:
Firearms and weapons
Gambling and betting
Adult content
Money lending/loan services
Political messages
Religious content
Controlled substances
Cannabis products
Alcohol-related content
WhatsApp/LINE chat links
Prohibited Keywords Examples (avoid these in message content):
Gambling: 賭博, 下注, 彩票, casino, betting
Loans: 貸款, 借錢, 快速融資, instant loan
Adult: 色情, 成人內容, adult content
Fraud indicators: 中獎, 免費領取, 緊急通知 (when used deceptively)
Content Filtering
Carrier Filtering Rules:
URLs must be pre-registered and allowlisted
Shortened URLs are strictly prohibited
Maximum of 5 sender IDs per business
Content screening for prohibited keywords
URL Registration Process:
Contact your SMS provider (Twilio, Sinch, MessageBird, Plivo, etc.)
Note: Taiwan mobile phone numbers follow the format +886 9XX XXX XXX (country code +886 followed by 9 digits starting with 9). All mobile numbers begin with the digit 9 after the country code.
Industry Associations:
Taiwan Mobile Business Association
Taiwan Communications Industry Development Association
Market Context: LINE has over 21 million users in Taiwan (approximately 90% of the population), making it the dominant OTT platform. SMS remains essential for authentication, transactional notifications, and reaching users without app access.
Troubleshooting FAQ
Q: My messages aren't being delivered. What should I check?
A: Verify: (1) Number format is +886 9XX XXX XXX, (2) Sending during allowed hours (9AM–12:30PM, 1:30PM–9PM TST), (3) URLs are pre-registered, (4) Brand name is included in first 67 characters.
Q: Can I use bit.ly or other URL shorteners?
A: No. Shortened URLs are strictly prohibited in Taiwan. Use full-length URLs registered with your carrier.
Q: How do I register my URLs with carriers?
A: Contact your SMS provider's support team with your full URLs and business documentation. Allow 3–5 business days for approval.
Q: What happens if I send during restricted hours?
A: Messages may be blocked by carriers, and repeated violations can result in fines up to NT$50,000 per sender ID plus 2-month registration suspension.
Q: Do I need different sender IDs for transactional vs. marketing messages?
A: While not required, it's best practice to use separate sender IDs. Taiwan carriers may apply different filtering rules based on content type.
Frequently asked questions
Use a reputable SMS provider like Twilio, Sinch, MessageBird, or Plivo. Their APIs offer integration with Taiwan's specific requirements. Remember to handle long codes appropriately, as sender IDs are often modified upon delivery.
Taiwan's mobile market is highly developed, but while apps like LINE are popular for personal use, SMS remains vital for business needs like authentication and marketing. Key operators include Chunghwa Telecom, Taiwan Mobile, and Far EasTone.
Alphanumeric sender IDs are not supported for direct use, and long code sender IDs are modified by carriers. This is part of Taiwan's regulatory framework aimed at preventing spam and ensuring proper identification of message senders.
Avoid sending promotional messages between 9:00 PM and 9:00 AM, and also during the lunch break from 12:30 PM to 1:30 PM Taiwan Standard Time (GMT+8). Emergency and service messages are exempt.
No, sending SMS messages to landline numbers in Taiwan is not supported. Attempts will result in a 400 response error (code 21614) with no message delivery and no charge incurred.
Standard SMS messages are 160 characters (GSM-7) or 70 characters (UCS-2). However, for Chinese characters, the limit is 65 characters per SMS. Longer messages will be concatenated.
Obtain explicit consent for marketing messages, adhere to strict time restrictions, register URLs with carriers, and regularly check numbers against the Do Not Call (DNC) registry managed by the NCC.
Gambling, adult content, financial loans, political or religious messages, controlled substances, alcohol, and links to messaging apps like WhatsApp or LINE are all prohibited in SMS content.
All marketing SMS must include opt-out instructions (STOP, CANCEL, etc. in both English and Chinese), and businesses are required to process and remove numbers from lists within 24 hours of the request.
Shortened URLs are strictly prohibited. Use full-length URLs and pre-register them with local carriers to ensure successful delivery and avoid content filtering issues.
Use UCS-2 encoding for messages containing Chinese characters. This ensures proper display on recipients' devices, especially given the prevalence of Android devices (around 65% market share).
Explicit consent, either written or electronic, is mandatory for marketing messages. Double opt-in, storing consent details (time, source), and regularly updating consent status are best practices.
The article does not detail specific penalties, but mentions that SMS communications are regulated by the National Communications Commission (NCC) and governed by the Telecommunications Act.
The National Communications Commission (NCC) website (www.ncc.gov.tw) and the Ministry of Justice website for the Personal Data Protection Act (www.moj.gov.tw/EN/pdpa) offer further resources.
Send SMS messages in Taiwan compliantly. This guide covers NCC regulations, PDPA requirements, time restrictions, mandatory consent rules, and technical requirements for Traditional Chinese messaging across Chunghwa Telecom, Taiwan Mobile, and Far EasTone networks.
Taiwan SMS Market Overview
Market Conditions: Taiwan has near-universal smartphone penetration. OTT messaging apps like LINE dominate personal communications, but SMS remains crucial for authentication, notifications, and marketing. Major operators include Chunghwa Telecom, Taiwan Mobile, and Far EasTone. Android devices hold approximately 65% market share, with iOS accounting for most of the remainder. For broader context on international SMS standards, see our E.164 phone format guide.
Market Share: As of 2025, Chunghwa Telecom holds approximately 35% of Taiwan's mobile market, Taiwan Mobile approximately 28%, and Far EasTone approximately 22%, with smaller operators APTG and T Star sharing the remainder.
Taiwan SMS Features and Capabilities
Taiwan supports most standard SMS features with restrictions on sender IDs and content types. Comply with strict NCC requirements for business messaging.
Two-way SMS in Taiwan
Two-way SMS is not supported in Taiwan for A2P (Application-to-Person) messaging. Taiwan's telecommunications carriers impose this restriction to prevent SMS spam, fraud (smishing), and unauthorized commercial communications. The sender ID overwriting mechanism – which replaces sender IDs with random Taiwan numbers – makes reply routing technically impossible, as replies cannot be directed back to the original sender.
Alternative Solutions for Two-Way Communication:
Concatenated Messages (Segmented SMS)
Support: Yes, though availability varies by sender ID type.
Message length rules: Standard SMS length is 160 characters (GSM-7) or 70 characters (UCS-2) before splitting. For Chinese characters, the maximum is 65 characters per SMS.
Encoding considerations: Both GSM-7 and UCS-2 encoding are supported. Messages containing Chinese characters automatically use UCS-2 encoding.
Character Counting and Cost Examples:
Keep messages under 65 Chinese characters or 160 GSM-7 characters to minimize costs and ensure single-segment delivery.
MMS Support
MMS messages are automatically converted to SMS with an embedded URL link. Register and allowlist your URLs with local carriers to prevent delivery failures when sending media content.
Recipient Phone Number Compatibility
Number Portability
Number portability is available in Taiwan. Carriers handle routing automatically, so number portability does not significantly impact message delivery.
Sending SMS to Landlines
You cannot send SMS to landline numbers in Taiwan. Attempts result in a 400 response error (code 21614) with no message delivery and no charge.
Number Validation: Taiwan landline numbers start with area codes (02 for Taipei, 03–09 for other regions) and are 8–9 digits total. Mobile numbers always start with 09 and are 10 digits (e.g., +886 9XX XXX XXX). Implement validation logic to filter landlines before sending:
function isValidTaiwanMobile(number) { // Remove +886 or 886 prefix, expect 10 digits starting with 09 const cleaned = number.replace(/^\+?886/, ''); return /^09\d{8}$/.test(cleaned); }Taiwan SMS Regulations: NCC Compliance Requirements
Comply with Taiwan's SMS regulations set by the National Communications Commission (NCC) and the Telecommunications Act. Follow the Personal Data Protection Act (PDPA, 個人資料保護法) when handling customer data and sending messages. These regulations are similar to other Asia-Pacific markets - compare with Singapore SMS regulations for regional context.
Regulatory Authorities:
Penalties for Non-Compliance:
Consent and Opt-In
Explicit Consent Requirements:
Consent Record Retention: The PDPA does not mandate a specific retention period for general consent records, but industry regulations require retaining records associated with personal data usage for at least 5 years. If other laws prescribe a longer retention period, follow that requirement. Retain consent records for 5–7 years from the date of last communication. For U.S. businesses, consider how these requirements align with 10DLC SMS registration for domestic campaigns.
Best Practices for Consent:
HELP/STOP and Other Commands
Implementation Example:
function handleInboundSMS(message, fromNumber) { const stopKeywords = ['STOP', '取消訂閱', '退訂', 'CANCEL', 'UNSUBSCRIBE']; const helpKeywords = ['HELP', '說明', '幫助']; if (stopKeywords.some(kw => message.toUpperCase().includes(kw))) { // Add to suppression list within 24 hours addToSuppressionList(fromNumber); sendConfirmation(fromNumber, '您已成功取消訂閱 / You have been unsubscribed'); } else if (helpKeywords.some(kw => message.toUpperCase().includes(kw))) { sendHelpMessage(fromNumber, '如需取消請回覆 STOP / Reply STOP to unsubscribe'); } }Do Not Call / Do Not Disturb Registries
Taiwan maintains a national Do Not Call (DNC) registry managed by the NCC:
DNC Registry Access: As of 2025, Taiwan's DNC registry for mobile phones is not as centrally managed as in some countries (e.g., Singapore's DNC registry). Maintain your own suppression lists and honor opt-out requests. Coordinate with your SMS provider to implement:
Time Zone Sensitivity
Strict Time Restrictions:
Timezone-Aware Scheduling Example:
import { DateTime } from 'luxon'; function isAllowedSendTime() { const now = DateTime.now().setZone('Asia/Taipei'); const hour = now.hour; const minute = now.minute; // Block 21:00 - 09:00 (9 PM to 9 AM) if (hour >= 21 || hour < 9) { return false; } // Block 12:30 - 13:30 (lunch break) if (hour === 12 && minute >= 30) { return false; } if (hour === 13 && minute < 30) { return false; } return true; } function scheduleMessage(message, recipient) { if (!isAllowedSendTime()) { // Queue for next allowed time window const nextWindow = calculateNextAllowedTime(); scheduleForLater(message, recipient, nextWindow); } else { sendImmediately(message, recipient); } }Public Holiday Considerations: Avoid sending promotional SMS during major Taiwan holidays: Lunar New Year (typically late January/early February, 7-day period), Dragon Boat Festival (5th day of 5th lunar month), Mid-Autumn Festival (15th day of 8th lunar month), and Double Ten National Day (October 10). Transactional messages (OTP, order confirmations) are acceptable.
Phone Numbers Options and SMS Sender Types for Taiwan
Alphanumeric Sender ID
Operator network capability: Not supported for direct use
Registration requirements: No pre-registration available
Sender ID preservation: Sender IDs are overwritten with random Taiwan long codes at the carrier level
What happens to sender IDs: When you send an SMS with an alphanumeric sender ID (e.g., "MyBrand"), Taiwan carriers automatically replace it with a random Taiwan mobile number (format +886 9XX XXX XXX). Recipients see a numeric sender, not your brand name. This carrier-level overwriting prevents reply routing and brand recognition.
Workaround: Include your brand name in the first 67 characters of the message body. As of November 1, 2025, all commercial SMS must include the company, organization, brand, or campaign name within the message content for NCC compliance.
Long Codes
Domestic vs. International:
Sender ID preservation: No, original sender IDs are not preserved
Provisioning time: Immediate to 24 hours
Use cases: Transactional messages, alerts, notifications
Carrier-Specific Differences:
Short Codes
Support: Not currently available in Taiwan
Provisioning time: N/A
Use cases: N/A
Restricted SMS Content, Industries, and Use Cases
Prohibited Content and Industries:
Prohibited Keywords Examples (avoid these in message content):
Content Filtering
Carrier Filtering Rules:
URL Registration Process:
Carrier Contact Details:
Tips to Avoid Blocking:
Taiwan SMS Best Practices for Businesses
Messaging Strategy
Message Template Examples:
Sending Frequency and Timing
Timezone Conversion Best Practices (sending from abroad):
from datetime import datetime import pytz def convert_to_taiwan_time(utc_time): taiwan_tz = pytz.timezone('Asia/Taipei') taiwan_time = utc_time.astimezone(taiwan_tz) return taiwan_time def schedule_taiwan_sms(send_time_utc): taiwan_time = convert_to_taiwan_time(send_time_utc) if is_within_allowed_hours(taiwan_time): send_sms() else: delay_until_allowed_time(taiwan_time)Localization
Cultural Considerations:
Opt-Out Management
Database Schema Recommendation:
CREATE TABLE sms_suppression_list ( id SERIAL PRIMARY KEY, phone_number VARCHAR(15) NOT NULL UNIQUE, opt_out_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP, opt_out_method VARCHAR(50), -- 'SMS_REPLY', 'WEB_FORM', 'CUSTOMER_SERVICE' reason TEXT, confirmed BOOLEAN DEFAULT FALSE ); CREATE INDEX idx_phone_lookup ON sms_suppression_list(phone_number);Testing and Monitoring
Taiwan Market KPIs and Benchmarks:
SMS API Integration for Taiwan: Provider Comparison
Twilio
Twilio provides a RESTful API for sending SMS messages to Taiwan. Authenticate using your Account SID and Auth Token.
import { Twilio } from 'twilio'; // Initialize Twilio client const client = new Twilio( process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN ); // Function to send SMS to Taiwan async function sendSMSToTaiwan( to: string, message: string ): Promise<void> { try { // Ensure number is in E.164 format for Taiwan (+886) const formattedNumber = to.startsWith('+886') ? to : `+886${to.replace(/^0/, '')}`; const response = await client.messages.create({ body: message, to: formattedNumber, // Sender ID will be overwritten by carrier from: process.env.TWILIO_PHONE_NUMBER, // Optional parameters for delivery tracking statusCallback: 'https://your-webhook.com/status' }); console.log(`Message sent! SID: ${response.sid}`); } catch (error) { console.error('Error sending message:', error); handleTaiwanSpecificError(error); } } // Taiwan-specific error handling function handleTaiwanSpecificError(error: any) { const errorCode = error.code; switch (errorCode) { case 21614: console.error('Cannot send SMS to landline numbers in Taiwan'); break; case 21408: console.error('Permission denied - check carrier restrictions'); break; case 30006: console.error('Landline or unreachable carrier'); break; default: console.error(`Twilio error ${errorCode}: ${error.message}`); } }Sinch
Sinch uses Bearer token authentication and provides a REST API for SMS delivery.
import axios from 'axios'; class SinchSMSService { private readonly baseUrl: string; private readonly apiToken: string; constructor(serviceId: string, apiToken: string) { this.baseUrl = `https://sms.api.sinch.com/xms/v1/${serviceId}`; this.apiToken = apiToken; } async sendSMS(to: string, message: string): Promise<void> { try { const response = await axios.post( `${this.baseUrl}/batches`, { to: [to], body: message, // Encoding for Traditional Chinese support encoding: 'UCS2' }, { headers: { 'Authorization': `Bearer ${this.apiToken}`, 'Content-Type': 'application/json' } } ); console.log('Message sent:', response.data.id); } catch (error) { console.error('Sinch SMS error:', error); } } }MessageBird
MessageBird offers a straightforward REST API with comprehensive delivery reporting.
import { MessageBird } from 'messagebird'; class MessageBirdService { private client: any; constructor(apiKey: string) { this.client = MessageBird(apiKey); } sendSMS(to: string, message: string): Promise<void> { return new Promise((resolve, reject) => { this.client.messages.create({ originator: 'YourBrand', // Will be overwritten recipients: [to], body: message, // Taiwan-specific parameters datacoding: 'unicode', type: 'flash' // For time-sensitive messages }, (err: any, response: any) => { if (err) { reject(err); return; } resolve(response); }); }); } }Plivo
Plivo provides a REST API with authentication via Basic Auth using your Auth ID and Auth Token.
import { Client } from 'plivo'; class PlivoSMSService { private client: Client; constructor(authId: string, authToken: string) { this.client = new Client(authId, authToken); } async sendSMS(to: string, message: string): Promise<void> { try { const response = await this.client.messages.create({ src: process.env.PLIVO_NUMBER, // Source number dst: to, // Destination number text: message, // Taiwan-specific parameters url_strip_query_params: false, // Preserve full URLs method: 'POST' }); console.log('Message sent:', response.messageUuid); } catch (error) { console.error('Plivo error:', error); } } }API Provider Comparison:
Note: Pricing varies by volume commitments and contract terms. Contact providers for current Taiwan-specific rates.
API Rate Limits and Throughput
Provider-Specific Rate Limits:
Error Handling and Reporting
Common Taiwan-Specific Error Codes:
// Comprehensive error handling implementation interface SMSError { code: string; message: string; timestamp: Date; recipient: string; } class SMSErrorHandler { static handleError(error: SMSError): void { // Log error to monitoring system console.error(`SMS Error ${error.code}: ${error.message}`); // Implement retry logic for specific error codes if (['30003', '30004', '30005'].includes(error.code)) { // Queue for retry with exponential backoff this.queueForRetry(error); } else if (['21614', '30006'].includes(error.code)) { // Permanent failure - add to invalid number list this.addToInvalidList(error.recipient); } } private static queueForRetry(error: SMSError): void { // Implement retry queue logic with exponential backoff const retryDelays = [5, 15, 60, 300]; // seconds // Queue implementation here } private static addToInvalidList(recipient: string): void { // Add to database of invalid/unreachable numbers } }Recap and Additional Resources
Key Takeaways
Compliance Priorities
Technical Considerations
Content Requirements (Effective November 1, 2025)
Implementation Checklist
Pre-Launch (Weeks 1–2)
Development (Weeks 2–4)
Testing (Week 5)
Launch & Monitor (Week 6+)
Next Steps
Additional Resources
Note: Taiwan mobile phone numbers follow the format +886 9XX XXX XXX (country code +886 followed by 9 digits starting with 9). All mobile numbers begin with the digit 9 after the country code.
Industry Associations:
Market Context: LINE has over 21 million users in Taiwan (approximately 90% of the population), making it the dominant OTT platform. SMS remains essential for authentication, transactional notifications, and reaching users without app access.
Troubleshooting FAQ
Q: My messages aren't being delivered. What should I check? A: Verify: (1) Number format is +886 9XX XXX XXX, (2) Sending during allowed hours (9AM–12:30PM, 1:30PM–9PM TST), (3) URLs are pre-registered, (4) Brand name is included in first 67 characters.
Q: Can I use bit.ly or other URL shorteners? A: No. Shortened URLs are strictly prohibited in Taiwan. Use full-length URLs registered with your carrier.
Q: How do I register my URLs with carriers? A: Contact your SMS provider's support team with your full URLs and business documentation. Allow 3–5 business days for approval.
Q: What happens if I send during restricted hours? A: Messages may be blocked by carriers, and repeated violations can result in fines up to NT$50,000 per sender ID plus 2-month registration suspension.
Q: Do I need different sender IDs for transactional vs. marketing messages? A: While not required, it's best practice to use separate sender IDs. Taiwan carriers may apply different filtering rules based on content type.