sms compliance
sms compliance
How to Send SMS to Japan: 2024 Compliance Guide & API Integration
Complete guide to sending SMS in Japan: regulatory compliance (APPI, Anti-Spam Act), carrier requirements (NTT DOCOMO, KDDI, SoftBank, Rakuten), sender ID setup, and API integration with Twilio, Sinch, MessageBird, Plivo code examples.
How to Send SMS in Japan: Complete Compliance & Integration Guide
Sending SMS to Japan requires strict compliance with local regulations and carrier-specific requirements. This comprehensive guide covers everything you need to know about Japan SMS messaging: regulatory compliance with Japan's Anti-Spam Act and APPI, technical requirements for all major carriers (NTT DOCOMO, KDDI, SoftBank, Rakuten Mobile), sender ID options, and SMS API integration with complete code examples.
Japan SMS Market Overview
| Property | Value |
|---|---|
| Country | Japan |
| ISO Code | JP |
| Region | Asia |
| Mobile Country Code (MCC) | 440 |
| Dialing Code | +81 |
Market Landscape: Japan's mobile market has four major carriers: NTT DOCOMO (~40-42% market share), KDDI/au (~27-29%), SoftBank (~20-22%), and Rakuten Mobile (~6-8%, surpassing 8 million subscribers by October 2024).
While OTT messaging apps like LINE dominate personal communications with over 95 million monthly active users in Japan (~75% penetration rate), SMS remains essential for business communications including two-factor authentication (2FA), transaction notifications, appointment reminders, and customer service alerts. The market strongly prefers iOS devices (>60% market share), though Android maintains significant presence.
SMS Pricing: Expect costs of ¥3-15 JPY (~$0.02-$0.10 USD) per SMS segment depending on provider, route quality (international gateway vs. domestic direct connection), and volume commitments. Alphanumeric sender IDs have no registration fees. Concatenated messages bill per segment (e.g., a 140-character Japanese message = 2 segments = 2× the cost).
Delivery Expectations: Expect high delivery rates (95-98% for transactional messages) due to robust infrastructure and strict regulatory compliance. Typical delivery time is 3-10 seconds for domestic routes.
Key SMS Features and Capabilities in Japan
Japan supports comprehensive SMS capabilities including two-way messaging, concatenation, and strict regulatory compliance across all major carriers.
Two-Way SMS Support
Status: Fully supported
Two-way SMS enables interactive messaging scenarios like customer service, appointment confirmations, and automated responses. No special restrictions apply beyond standard compliance requirements.
Implementation Example:
// Handle incoming SMS webhook
app.post('/sms/inbound', (req, res) => {
const { From, Body } = req.body;
// Process Japanese keywords
if (Body.includes('停止') || Body.toUpperCase() === 'STOP') {
// Add to suppression list
suppressionList.add(From);
// Send confirmation in Japanese
sendSMS(From, 'ご登録を解除いたしました。');
}
res.status(200).send();
});Concatenated Messages (Segmented SMS)
Support: Yes, across all major Japanese carriers (support may vary by sender ID type)
Message Length Rules:
- Standard: 160 characters per segment (GSM-7 encoding)
- Japanese text: 70 characters per segment (UCS-2 encoding for Kanji, Hiragana, Katakana)
- Messages exceeding limits are automatically concatenated
Carrier-Specific Limits:
- KDDI (au): Maximum 5 segments per message (140 characters with default character set, 70 with special characters)
- SoftBank: Up to 664 characters with default character set, 332 with special characters
- NTT DOCOMO/Rakuten: Up to 660 characters
Billing for Concatenated Messages: Each segment bills separately. A 140-character Japanese message (2 segments) costs 2× the per-segment rate. Always monitor message length to control costs and ensure delivery within carrier limits (especially KDDI's 5-segment maximum).
Encoding: Both GSM-7 and UCS-2 supported
MMS Support
Status: Not available through standard SMS channels
Workaround Strategy: Since URLs are strictly prohibited in Japan SMS, you cannot use traditional "SMS with link to MMS content" approaches. Instead:
- Use carrier-specific MMS APIs when available (consult carrier documentation)
- Consider alternative channels like email or LINE for rich media content
- For urgent visual content, describe the content in text and follow up via approved channels
- Use QR codes in physical/email materials that link to mobile-optimized landing pages
Recipient Phone Number Compatibility
Number Portability
Status: Fully available across all major carriers
Users can keep their phone numbers when switching providers. Always use +81 format for reliable delivery.
Phone Number Format Examples:
- International format (E.164): +81XXXXXXXXX (e.g., +818012345678)
- Remove leading zero: Domestic 090-1234-5678 becomes +819012345678
- Validation regex:
^\+81[0-9]{9,10}$
Can You Send SMS to Landlines in Japan?
Status: Not supported
Attempts to send SMS to landline numbers fail with a 400 response error (code 21614). Messages won't appear in logs, and you won't be charged for failed attempts.
Japan SMS Compliance and Regulatory Requirements
The Ministry of Internal Affairs and Communications (MIC) and the Personal Information Protection Commission (PPC) regulate SMS communications in Japan. All businesses sending SMS to Japan must comply with three key laws:
- Act on Regulation of Transmission of Specific Electronic Mail (Anti-Spam Act) - requires explicit opt-in consent for marketing messages
- Act on the Protection of Personal Information (APPI, effective with April 2024 amendments) - governs data collection, storage, and protection
- Act on Specified Commercial Transactions (ASCT) - regulates commercial messaging practices
These regulations govern how you collect, use, and protect personal information, including phone numbers used for SMS messaging.
Critical Restriction: Japanese carriers strictly prohibit or heavily filter URLs in SMS messages. Any message with a weblink may be blocked entirely.
APPI April 2024 Amendments
Effective April 1, 2024, key amendments to APPI include:
- Data Breach Notification: Report actual or suspected leakage of personal information to the Personal Information Protection Commission (PPC) and affected individuals without undue delay when the leak could harm rights or interests
- Enhanced Security Measures: Implement reasonable security measures when handling personal data, including encryption and access controls
- Third-Party Data Sharing: Stricter requirements for obtaining consent when sharing personal data with third parties
- Cross-Border Data Transfer: Enhanced requirements for transferring personal data outside Japan, including information disclosure obligations
Penalties for Non-Compliance
Anti-Spam Act Violations:
- Fines up to ¥1,000,000 (~$6,700 USD) for individuals
- Fines up to ¥30,000,000 (~$200,000 USD) for corporations
- Imprisonment up to 1 year for repeated or egregious violations
- Public disclosure of violator names by MIC
APPI Violations:
- Administrative orders from PPC (improvement orders, suspension of operations)
- Fines up to ¥100,000,000 (~$670,000 USD) for corporations
- Criminal penalties: imprisonment up to 1 year or fines up to ¥1,000,000 for unauthorized disclosure or theft of personal information
- Reputational damage and mandatory public disclosure
ASCT Violations:
- Fines and business improvement orders
- Consumer lawsuits for damages
- Enforcement actions by Consumer Affairs Agency
SMS Marketing Consent Requirements in Japan
Explicit Consent Requirements:
- Obtain written or digital consent before sending any marketing messages (opt-in system required under Anti-Spam Act and ASCT)
- Recipients must explicitly consent to receive marketing messages; you cannot send unsolicited commercial SMS
- Maintain consent records and make them easily accessible
- Clearly state the purpose of communication during opt-in
- Use double opt-in for marketing messages (strongly recommended)
Documentation Best Practices:
- Store timestamp and source of consent
- Maintain detailed records of opt-in method and context
- Keep consent records for at least 2 years (3+ years recommended for audit purposes)
- Conduct regular audits of consent database
- Record IP address, device type, and exact consent language shown to user
HELP/STOP and Other Commands
Required Features:
- Include opt-out instructions in Japanese in all messages
- Support standard keywords in both English and Japanese:
- STOP (停止)
- HELP (ヘルプ)
- CANCEL (取消)
- Provide immediate responses to HELP/STOP in Japanese
Implementation Example:
// Automated keyword detection
function handleInboundSMS(from: string, body: string) {
const normalizedBody = body.trim().toUpperCase();
// Stop keywords (English and Japanese)
if (['STOP', 'UNSUBSCRIBE', 'CANCEL'].includes(normalizedBody) ||
body.includes('停止') || body.includes('取消')) {
addToSuppressionList(from);
sendSMS(from, 'SMSの配信を停止いたしました。ご利用ありがとうございました。');
return;
}
// Help keywords
if (['HELP', 'INFO'].includes(normalizedBody) || body.includes('ヘルプ')) {
sendSMS(from, 'SMSの停止: "停止"と返信してください。お問い合わせ: support@company.co.jp');
return;
}
// Forward to customer service
routeToSupport(from, body);
}Do Not Call / Do Not Disturb Registries
Status: Japan does not maintain a centralized Do Not Call registry similar to those in other countries like the United States.
Requirements:
- Maintain internal suppression lists for opt-outs
- Honor opt-out requests within 24 hours
- Conduct regular database cleaning to remove inactive numbers
- Comply with the Act on Specified Commercial Transactions for telemarketing regulations
Best Times to Send SMS in Japan (Sending Hours & Restrictions)
Sending Hours:
- Restricted to 9:00 AM – 8:00 PM JST (Japan Standard Time, UTC+9)
- Emergency messages exempt from time restrictions
- Avoid sending on national holidays and weekends (recommended)
- Consider regional time differences for international businesses
Japanese National Holidays to Avoid (2024-2025):
- New Year's Day (January 1)
- Coming of Age Day (2nd Monday of January)
- National Foundation Day (February 11)
- Emperor's Birthday (February 23)
- Vernal Equinox Day (around March 20-21)
- Showa Day (April 29)
- Constitution Memorial Day (May 3)
- Greenery Day (May 4)
- Children's Day (May 5)
- Marine Day (3rd Monday of July)
- Mountain Day (August 11)
- Respect for the Aged Day (3rd Monday of September)
- Autumnal Equinox Day (around September 22-23)
- Sports Day (2nd Monday of October)
- Culture Day (November 3)
- Labor Thanksgiving Day (November 23)
Time Zone Conversion: JST is UTC+9 with no daylight saving time adjustments.
Japan SMS Sender ID Options: Alphanumeric, Long Codes & Short Codes
Alphanumeric Sender ID
Operator Network Capability: Supported
Registration Requirements (2024):
- No pre-registration required with carriers – Japan supports dynamic alphanumeric sender IDs
- Use sender IDs instantly without carrier registration or associated fees
- Your SMS provider must enable alphanumeric sender IDs for your account (not enabled by default)
Sender ID Preservation:
- Dynamic sender IDs preserved when sent through international gateways
- Alphanumeric sender IDs are one-way only (recipients cannot reply)
Character Limits: 3–11 characters (letters, numbers, limited special characters)
Allowed Characters:
- Letters: A-Z (uppercase and lowercase)
- Numbers: 0-9
- Limited special characters: hyphen (-), underscore (_), period (.)
- Prohibited: Spaces, special characters like @, #, $, %, &, *, etc.
Best Practices for Sender IDs:
- Use recognizable company/brand name (e.g., "RAKUTEN", "YAMATO")
- Keep it short and memorable (6-8 characters ideal)
- Use consistent sender ID across all messages
- Avoid generic names like "INFO" or "ALERT"
- Examples: "AmazonJP", "PayPayJP", "Docomo"
Long Codes
Support:
- Domestic: Not supported
- International: Fully supported
Sender ID Preservation: Yes, for international long codes
Provisioning Time: Immediate for international numbers
Pricing Comparison:
- International Long Codes: $1-5/month rental + $0.05-0.10 per SMS (enables two-way)
- Alphanumeric Sender IDs: No rental fee + $0.02-0.08 per SMS (one-way only)
- Short Codes: $500-1,000/month rental + $0.01-0.05 per SMS (high volume)
Use Cases:
- Two-way communication
- Customer service
- Transactional messages
Short Codes
Support: Available through domestic gateway only
Provisioning Time: 5–8 weeks for approval
Application Requirements:
- Business registration documents
- Use case description and message samples
- Compliance documentation (APPI, Anti-Spam Act)
- Carrier approval from NTT DOCOMO, KDDI, SoftBank
- Application fees: ¥100,000-300,000 (~$670-2,000 USD)
- Monthly rental: ¥50,000-150,000 (~$335-1,000 USD)
Use Cases:
- High-volume marketing campaigns (>100,000 messages/month)
- Two-factor authentication
- Customer loyalty programs
SMS Content Restrictions in Japan (URLs, Prohibited Content & Filtering)
Prohibited Content:
- Firearms and weapons
- Gambling and betting
- Adult content
- Money lending/loan services (limited exceptions for licensed banks)
- Lead generation for financial services
- Political messages (unless from registered political organizations)
- Religious content (proselytizing)
- Controlled substances
- Cannabis products (including CBD)
- Alcohol-related content (marketing alcohol sales)
Grey-Area Content (consult legal counsel):
- Cryptocurrency/NFTs: Generally allowed for information, restricted for direct sales/investment solicitation
- Health supplements: Allowed with proper disclaimers; avoid medical claims
- Real estate: Allowed with proper licensing; must comply with Real Estate Transaction Act
- Financial services: Allowed only from licensed entities; strict disclosure requirements
- Dating/matchmaking: Heavily restricted; requires carrier pre-approval
- Survey/market research: Allowed with clear opt-in; must disclose data usage
Additional Restrictions:
- URLs are strictly prohibited or heavily filtered – messages with weblinks may be blocked entirely
- Phone numbers in message content not allowed
- M2M messaging supported on best-effort basis only
How Japanese Carriers Filter SMS Content
Carrier Filtering Rules:
- URL Filtering: Automatic blocking of any message containing "http://", "https://", "www.", or shortened URLs
- Pattern Matching: Detection of domain-like patterns (e.g., "company.com")
- Keyword Filtering: Blocking of spam trigger words in Japanese and English
- Rate Limiting: Sudden spikes in sending volume trigger manual review
- Sender Reputation: Poor delivery rates or high opt-out rates lead to stricter filtering
- Message length restrictions vary by carrier
- KDDI limits messages to 5 segments maximum
Carrier-Specific Filtering:
- NTT DOCOMO: Most lenient; focuses on known spam patterns
- KDDI/au: Strictest; aggressive URL and pattern blocking
- SoftBank: Moderate; strong reputation-based filtering
- Rakuten Mobile: Follows industry standards; less historical data for reputation
Tips to Avoid Blocking:
- Avoid including URLs (critical in Japan)
- Avoid spam trigger words (無料 "free", 当選 "winner", クリック "click")
- Maintain consistent sending patterns
- Include clear company identification in every message
- Use sender IDs that match registered business names
- Warm up new sender IDs with low volumes initially
SMS Best Practices for Japan: Message Format, Timing & Localization
Messaging Strategy
Message Structure:
- Keep messages under 70 characters when using Japanese text
- Include clear call-to-action
- Maintain consistent sender ID
- Use polite, formal Japanese language style (keigo)
Example Message Templates:
Transactional (Order Confirmation):
[会社名]
ご注文が完了しました。
注文番号: 123456
配達予定: 3月15日
お問い合わせ: 03-1234-5678
(66 characters)
OTP/2FA:
[会社名]
認証コード: 789456
有効期限: 5分間
(26 characters)
Appointment Reminder:
[クリニック名]
ご予約のお知らせ
日時: 3月20日 14:00
場所: 渋谷院
変更は03-1234-5678まで
(52 characters)
Sending Frequency and Timing
- Limit to 1–2 messages per day per recipient
- Respect Japanese holidays and observances
- Avoid sending during early morning (before 9 AM) or late evening (after 8 PM JST)
- Space out bulk sends to prevent network congestion (max 10-30 messages/second)
Localization for Japanese Audiences
Language and Cultural Considerations:
- Default to Japanese language unless recipient specifies otherwise
- Use proper honorifics and formal business Japanese (keigo): ございます、いたします、いただく
- Avoid casual language (です/ます is minimum formality)
- Consider cultural context: apologies for inconvenience, gratitude for patronage
- Support both Japanese and English response handling
Keigo Usage Guide:
- Polite (丁寧語): です、ます – minimum for all business communications
- Respectful (尊敬語): いらっしゃる、おっしゃる – when referring to customer actions
- Humble (謙譲語): いたす、申し上げる – when referring to your company's actions
Opt-Out Management
- Process opt-outs within 24 hours (same-day recommended)
- Maintain centralized opt-out database synced across all systems
- Confirm opt-out with one final message in Japanese
- Conduct regular cleanup of contact lists (monthly recommended)
- Never re-opt-in users without explicit new consent
Testing and Monitoring
Key Metrics to Track:
- Delivery Rate by Carrier: Target >95% for transactional, >90% for marketing
- Delivery Time: Median should be <10 seconds
- Opt-Out Rate: Target <0.5% for transactional, <2% for marketing
- Bounce Rate: Should be <2% with good list hygiene
- Response Rate: For two-way messaging use cases
Testing Checklist:
- Test across all major carriers (NTT DOCOMO, KDDI, SoftBank, Rakuten Mobile)
- Test with real Japanese phone numbers (not just test credentials)
- Verify Japanese character rendering across devices
- Test HELP/STOP functionality in both English and Japanese
- Validate message length calculations for UCS-2 encoding
- Test during restricted hours to verify blocking
- Monitor delivery receipts for carrier-specific issues
SMS API Integration for Japan (Twilio, Sinch, MessageBird, Plivo)
Twilio SMS Integration for Japan
Twilio provides robust SMS capabilities for Japan through their REST API. Authenticate using account SID and auth token credentials.
Key Parameters:
to: Japanese phone numbers in E.164 format (+81XXXXXXXXXX)from: Your Twilio phone number or approved sender IDbody: Message content (supports Unicode for Japanese characters)
import * as twilio from 'twilio';
// Initialize Twilio client
const client = twilio(
process.env.TWILIO_ACCOUNT_SID,
process.env.TWILIO_AUTH_TOKEN
);
async function sendJapaneseSMS() {
try {
const message = await client.messages.create({
body: 'ご注文が完了しました。ありがとうございます。',
from: process.env.TWILIO_PHONE_NUMBER,
to: '+81XXXXXXXXXX'
});
console.log(`Message sent successfully: ${message.sid}`);
} catch (error) {
// Japan-specific error handling
if (error.code === 21614) {
console.error('Invalid phone number (possibly landline)');
} else if (error.code === 21408) {
console.error('Permission denied - check sender ID registration');
} else if (error.code === 30003) {
console.error('Message blocked by carrier content filter');
} else if (error.code === 30005) {
console.error('Unknown destination - invalid Japanese number');
}
console.error('Error sending message:', error);
}
}Common Twilio Error Codes for Japan:
- 21614: Invalid phone number or landline
- 21408: Permission denied for sender ID
- 30003: Message blocked by carrier filter (often due to URL or prohibited content)
- 30005: Unknown destination handset
- 30006: Landline or unreachable carrier
- 30007: Message filtered (content violation)
Sinch SMS Integration for Japan
Sinch offers direct carrier connections in Japan with support for both Latin and Japanese character sets.
import { SinchClient } from '@sinch/sdk-core';
// Initialize Sinch client
const sinchClient = new SinchClient({
projectId: process.env.SINCH_PROJECT_ID,
keyId: process.env.SINCH_KEY_ID,
keySecret: process.env.SINCH_KEY_SECRET
});
async function sendSMS() {
try {
const response = await sinchClient.sms.batches.send({
sendSMSRequestBody: {
to: ['+81XXXXXXXXXX'],
from: 'YourCompany',
body: 'ご確認ください。',
encoding: 'UCS2' // Required for Japanese characters
}
});
console.log('Message sent:', response.id);
} catch (error) {
console.error('Failed to send message:', error);
}
}MessageBird SMS Integration for Japan
MessageBird provides high-quality routes to Japanese carriers with Unicode message support.
import { MessageBird } from 'messagebird';
// Initialize MessageBird client
const messagebird = new MessageBird(process.env.MESSAGEBIRD_API_KEY);
// Configure message parameters
const params = {
originator: 'COMPANY',
recipients: ['+81XXXXXXXXXX'],
body: '認証コード: 123456',
type: 'unicode' // Enable Japanese character support
};
// Send message
messagebird.messages.create(params, (err, response) => {
if (err) {
console.error('Error:', err);
return;
}
console.log('Message sent:', response.id);
});Plivo SMS Integration for Japan
Plivo offers direct connectivity to Japanese carriers with support for long codes and alphanumeric sender IDs.
import plivo from 'plivo';
// Initialize Plivo client
const client = new plivo.Client(
process.env.PLIVO_AUTH_ID,
process.env.PLIVO_AUTH_TOKEN
);
async function sendPlivoSMS() {
try {
const response = await client.messages.create({
src: 'COMPANY',
dst: '+81XXXXXXXXXX',
text: 'お支払い完了しました。',
url_strip_query_params: false // Preserve URL parameters if included
});
console.log('Message sent with UUID:', response.messageUuid);
} catch (error) {
console.error('Failed to send message:', error);
}
}API Rate Limits and Throughput
Provider-Specific Rate Limits:
Twilio:
- Default: 10 messages/second per account
- High-volume: Up to 100 messages/second (requires approval)
- Burst capacity: 200 messages/second for short bursts
Sinch:
- Default: 30 messages/second
- Enterprise: Up to 300 messages/second
- No daily limits
MessageBird:
- Default: 20 messages/second
- Premium: Up to 150 messages/second
- Rate limits vary by route quality
Plivo:
- Default: 20 messages/second
- High-volume: Up to 100 messages/second
- Carrier-specific limits apply
Carrier-Level Limits:
- KDDI: 5 segments maximum per message
- All carriers: Recommend <30 messages/second to avoid filtering
- Daily volume spikes (>10× normal) trigger manual review
Throughput Management:
- Implement exponential backoff for retries (start with 1s, max 60s)
- Use queuing systems (Redis, RabbitMQ) for high volume
- Batch messages when possible
- Monitor delivery receipts for rate adjustments
Retry Logic Example:
async function sendWithRetry(to: string, body: string, maxRetries = 3) {
let delay = 1000; // Start with 1 second
for (let attempt = 1; attempt <= maxRetries; attempt++) {
try {
const message = await client.messages.create({ to, body, from: SENDER_ID });
return message;
} catch (error) {
if (attempt === maxRetries) throw error;
// Exponential backoff: 1s, 2s, 4s, 8s, etc.
await new Promise(resolve => setTimeout(resolve, delay));
delay *= 2;
}
}
}Error Handling and Reporting
Common Error Codes and Resolutions:
| Error Code | Provider | Description | Resolution |
|---|---|---|---|
| 21614 | Twilio | Invalid number/landline | Validate E.164 format; exclude landlines |
| 30003 | Twilio | Carrier filter block | Remove URLs; check prohibited content |
| 30005 | Twilio | Unknown destination | Verify number validity and carrier |
| 400 | Sinch | Bad request | Check request parameters and encoding |
| 402 | MessageBird | Payment required | Verify account balance |
| 9 | MessageBird | Missing parameters | Include all required fields |
Comprehensive Error Handling:
async function sendSMSWithErrorHandling(to: string, body: string) {
const correlationId = generateUUID();
try {
logger.info('Sending SMS', { correlationId, to, bodyLength: body.length });
const message = await client.messages.create({
to,
from: SENDER_ID,
body,
statusCallback: `${WEBHOOK_URL}/dlr/${correlationId}`
});
logger.info('SMS sent successfully', {
correlationId,
messageSid: message.sid,
status: message.status
});
return { success: true, messageSid: message.sid, correlationId };
} catch (error) {
logger.error('SMS send failed', {
correlationId,
errorCode: error.code,
errorMessage: error.message,
to
});
// Categorize errors for alerting
if ([21614, 30005, 30006].includes(error.code)) {
// Invalid number - add to exclusion list
await addToInvalidNumbers(to);
} else if ([30003, 30007].includes(error.code)) {
// Content filter - alert compliance team
await alertComplianceTeam(correlationId, body);
} else if (error.code === 20003) {
// Authentication - critical alert
await alertDevOps('Twilio auth failure', correlationId);
}
return { success: false, error: error.message, correlationId };
}
}
// Monitor delivery receipts
app.post('/dlr/:correlationId', (req, res) => {
const { correlationId } = req.params;
const { MessageStatus, ErrorCode } = req.body;
logger.info('Delivery receipt', { correlationId, MessageStatus, ErrorCode });
// Track metrics by carrier
metrics.increment(`sms.delivery.${MessageStatus}`);
if (ErrorCode) {
metrics.increment(`sms.error.${ErrorCode}`);
}
res.status(200).send();
});Frequently Asked Questions About SMS in Japan
Do I need to register my sender ID in Japan?
No. Japan supports dynamic alphanumeric sender IDs that require no pre-registration with carriers. However, your SMS provider account must be enabled for alphanumeric sender IDs (not enabled by default). You can use sender IDs instantly without registration fees or carrier approval processes.
Can I include URLs in SMS messages to Japan?
Japanese carriers strictly prohibit or heavily filter URLs in SMS messages. Messages containing weblinks will likely be blocked entirely. Avoid including any URLs in your SMS content when sending to Japan.
Workarounds: Since URLs are blocked, consider these alternatives:
- Use alternative channels (email, LINE) for links to rich media
- Reference physical materials (flyers, packaging) with QR codes
- Provide phone numbers for customer service instead of web links
- Use app deep links if recipients have your mobile app installed (success varies by carrier)
- Send SMS notification followed by email with links
What laws govern SMS marketing in Japan?
Three primary regulations govern SMS marketing in Japan: the Act on Regulation of Transmission of Specific Electronic Mail (Anti-Spam Act), which requires opt-in consent for marketing messages; the Act on the Protection of Personal Information (APPI), effective with April 2024 amendments; and the Act on Specified Commercial Transactions (ASCT). All three laws enforce strict opt-in requirements before sending commercial SMS.
What character encoding should I use for Japanese SMS?
Use UCS-2 encoding for Japanese characters (Kanji, Hiragana, Katakana), which limits messages to 70 characters per segment. GSM-7 encoding supports 160 characters per segment but only works for standard Latin characters. Most SMS APIs automatically detect and apply the correct encoding.
What are the SMS sending hour restrictions in Japan?
Send SMS messages only between 9:00 AM and 8:00 PM JST (Japan Standard Time). Emergency messages are exempt from these time restrictions. Additionally, avoid sending messages on national holidays and weekends.
Which mobile carriers operate in Japan?
Japan has four major mobile carriers: NTT DOCOMO (~40-42% market share), KDDI/au (~27-29%), SoftBank (~20-22%), and Rakuten Mobile (~6-8%, surpassed 8 million subscribers in October 2024). All carriers support number portability, allowing users to keep their phone numbers when switching providers.
How long does it take to provision SMS services in Japan?
Provisioning time varies by sender type. International long codes are available immediately, alphanumeric sender IDs require no registration and are available instantly (once your provider account is enabled), and domestic short codes require 5–8 weeks for carrier approval. Most businesses can start sending SMS to Japan within 24 hours using international routes.
What are typical SMS costs in Japan?
SMS costs in Japan range from ¥3-15 JPY (~$0.02-$0.10 USD) per segment. International gateway routes cost $0.02-0.05 per message, while premium domestic direct routes cost $0.05-0.10 per message. Concatenated messages bill per segment. Volume discounts available for >100,000 messages/month.
What are typical delivery times and success rates?
Delivery Times:
- Domestic routes: 3-10 seconds median delivery time
- International routes: 10-30 seconds median delivery time
Success Rates:
- Transactional messages: 95-98% delivery rate
- Marketing messages: 90-95% delivery rate (lower due to stricter filtering)
- Failed deliveries usually due to: invalid numbers (40%), carrier filtering (35%), network issues (25%)
How do I handle SMS delivery failures in Japan?
Common failure reasons and remediation:
- Invalid number: Validate E.164 format (+81XXXXXXXXX); exclude landlines
- Carrier filter block: Remove URLs; check for prohibited content keywords
- Opt-out: Maintain suppression list; honor within 24 hours
- Rate limiting: Implement exponential backoff; reduce send rate
- Network issues: Retry with delay; monitor carrier status pages
Summary and Additional Resources
Key Takeaways:
- Obtain explicit opt-in consent before sending any marketing SMS (required by Anti-Spam Act and ASCT)
- Never include URLs in messages – Japanese carriers strictly prohibit or filter them
- Respect sending hours: 9:00 AM – 8:00 PM JST only
- Use UCS-2 encoding for Japanese characters (70 characters per segment)
- No sender ID registration required – Japan supports dynamic alphanumeric sender IDs
- Test across all four major carriers: NTT DOCOMO, KDDI, SoftBank, and Rakuten Mobile
- Budget ¥3-15 JPY (~$0.02-$0.10 USD) per SMS segment
- Expect 95-98% delivery rates for transactional messages with proper implementation
Next Steps:
- Review MIC and APPI guidelines for SMS communications
- Implement compliant consent management systems with timestamp tracking
- Set up monitoring and reporting infrastructure for all four carriers
- Test message delivery across NTT DOCOMO, KDDI, SoftBank, and Rakuten Mobile
- Configure proper UCS-2 encoding support in your SMS API integration
- Implement comprehensive error handling for Japan-specific error codes
- Establish opt-out management workflows with 24-hour SLA
Common Pitfalls to Avoid:
- Including URLs or domain names in message content
- Sending outside 9 AM - 8 PM JST hours
- Using informal Japanese language (use keigo)
- Not testing across all four carriers
- Exceeding KDDI's 5-segment limit
- Forgetting to validate E.164 phone number format
- Not implementing HELP/STOP keyword handlers in Japanese
- Sending marketing messages without explicit opt-in consent
Official Regulatory Resources:
- Ministry of Internal Affairs and Communications (MIC)
- Personal Information Protection Commission
- Act on Protection of Personal Information (APPI) – English Translation
- Act on Specified Commercial Transactions – English Translation
- Telecommunications Business Act Guidelines
Carrier Documentation:
- KDDI Business SMS Guidelines
- NTT DOCOMO Enterprise Messaging Documentation
- SoftBank Corporate Messaging Standards
- Rakuten Mobile Developer Resources
Frequently Asked Questions
How to send SMS messages in Japan?
Use a reputable SMS API provider like Twilio, Sinch, MessageBird, or Plivo, ensuring phone numbers are in E.164 format (+81) and messages adhere to Japanese compliance regulations. Twilio provides a robust API with support for Unicode for sending Japanese characters. Sinch offers direct carrier connections, allowing for both Latin and Japanese characters. MessageBird and Plivo offer similar services with high-quality routes and support for long codes and alphanumeric sender IDs, respectively.
What is the best practice for SMS marketing in Japan?
Obtain explicit consent, respect sending hours (9 AM - 8 PM JST), use polite Japanese, keep messages under 70 characters if using Japanese text, and offer clear opt-out instructions. It's crucial to maintain detailed records of consent and to adhere to all legal and regulatory requirements regarding data privacy and marketing practices.
Why does Japan still use SMS when LINE is popular?
While LINE dominates personal communication, SMS remains vital for business uses like authentication, notifications, and customer service due to its high reliability and reach. This makes it a dependable channel for business communications, despite the popularity of other messaging apps.
When should I send SMS messages in Japan to avoid issues?
Send messages between 9:00 AM and 8:00 PM JST, avoiding national holidays and weekends, and limiting frequency to 1-2 messages per recipient daily to respect user preferences and comply with local regulations. Consider potential time differences if sending from another timezone.
Can I send SMS to landlines in Japan?
No, sending SMS to landlines in Japan is not supported and will result in a delivery failure with a 400 response error (code 21614). Your account won't be charged for these failed attempts. Ensure your contact list contains only mobile numbers to avoid this issue.
What are the character limits for SMS in Japan?
Standard SMS allows 160 characters using GSM-7 encoding. However, Japanese characters require UCS-2 encoding, limiting each segment to 70 characters. Messages exceeding these limits are automatically concatenated.
How to handle opt-outs for SMS in Japan?
Include clear opt-out keywords (STOP, HELP, CANCEL) in both English and Japanese, process requests within 24 hours, and confirm the opt-out with a final message. This ensures regulatory compliance and respects customer wishes.
What are the prohibited SMS content categories in Japan?
Prohibited content includes firearms, gambling, adult material, financial services like money lending, lead generation, political/religious messages, controlled substances, and alcohol-related content. Additionally, phone numbers embedded within the message body are not allowed.
What is required for alphanumeric sender ID registration in Japan?
While international gateways don't require pre-registration, domestic gateways mandate registration with a 5-week approval process to ensure adherence to messaging best practices and to prevent sender ID spoofing.
What are the best practices for using SMS APIs in Japan?
Use E.164 number format, support Unicode for Japanese, implement error handling and DLR monitoring, manage throughput with queuing systems and exponential backoff, and comply with carrier rate limits to maximize efficiency.
How to check if a Japanese phone number is on the Do Not Call registry?
Businesses must check numbers against the registry managed by the Japan Data Communications Association (JDCA) monthly and maintain internal suppression lists to comply with regulations.
What are the rules regarding consent for SMS marketing in Japan?
Explicit consent (written or digital) is mandatory before sending marketing messages. You must clearly state the purpose of communication during opt-in, maintain accessible consent records for at least two years, and double opt-in is strongly recommended.
What is the role of the MIC in Japanese SMS regulations?
The Ministry of Internal Affairs and Communications (MIC) regulates SMS communications in Japan, setting guidelines for content, consent, and best practices. They are a key resource for up-to-date information on compliance.
How to avoid SMS content filtering by Japanese carriers?
Use approved URL shorteners, avoid spam trigger words, maintain consistent sending patterns, include clear company identification, and adhere to carrier-specific message length and formatting restrictions to prevent messages from being blocked.