sms compliance

Sent logo
Sent TeamMay 3, 2025 / sms compliance / Article

Canada SMS Guide

Explore Canada SMS: compliance (CASL, CRTC), features, & best practices. Understand consent, STOP/HELP keywords, & time zone rules. Includes message length (GSM 3.38: 136 chars), MMS (1MB limit), plus Twilio, Sinch, MessageBird, & Plivo API integration examples. Target reliable SMS strategies.

Canada SMS Best Practices, Compliance, and Features

Canada SMS Market Overview

Locale name:Canada
ISO code:CA
RegionNorth America
Mobile country code (MCC)302
Dialing Code+1

Market Conditions: Canada has a mature mobile market with high SMS adoption rates across major carriers like Rogers, Bell, and Telus. While OTT messaging apps like WhatsApp and Facebook Messenger are popular, SMS remains a critical communication channel, especially for business messaging and notifications. The market shows a relatively even split between Android and iOS devices, with both platforms well-supported for messaging services.


Key SMS Features and Capabilities in Canada

Canada offers comprehensive SMS capabilities including two-way messaging, concatenated messages, and MMS support, with strong carrier infrastructure across all major providers.

Two-way SMS Support

Canada fully supports two-way SMS messaging across all major carriers. There are no specific restrictions beyond standard compliance requirements and proper opt-in procedures.

Concatenated Messages (Segmented SMS)

Support: Yes, concatenation is fully supported across Canadian carriers.
Message length rules:

  • GSM 3.38 encoding: 136 characters per segment
  • Unicode (UCS-2): 70 characters per segment
    Encoding considerations: Messages use GSM-7 encoding by default for standard ASCII characters, while UCS-2 is automatically applied for messages containing special characters or non-Latin alphabets.

MMS Support

MMS is fully supported across Canadian carriers. Businesses can send images, short videos, and other multimedia content, with typical size limits around 1MB per message. Best practices include optimizing media files for mobile viewing and providing fallback SMS links for unsupported devices.

Recipient Phone Number Compatibility

Number Portability

Number portability is available in Canada, allowing users to keep their phone numbers when switching carriers. This feature is fully supported and doesn't significantly impact message delivery or routing, as carriers maintain updated routing tables.

Sending SMS to Landlines

SMS to landline is possible but not guaranteed. When attempted, some carriers will convert SMS messages to text-to-speech voice calls, while others may simply fail to deliver. It's recommended to verify number types before sending and focus on mobile numbers for reliable delivery.

Compliance and Regulatory Guidelines for SMS in Canada

SMS marketing in Canada is primarily regulated by the Canadian Anti-Spam Legislation (CASL) and overseen by the Canadian Radio-television and Telecommunications Commission (CRTC). All commercial electronic messages must comply with CASL requirements, which are among the strictest anti-spam laws globally.

Express Consent Requirements:

  • Must obtain explicit, documented consent before sending commercial messages
  • Consent must be specific to SMS (cannot be bundled with other channels)
  • Must clearly state the purpose and type of messages to be sent
  • Include company identification and contact information

Best Practices for Documentation:

  • Maintain detailed records of when and how consent was obtained
  • Store opt-in dates, sources, and specific consent language used
  • Keep proof of consent for a minimum of 3 years after the last message

HELP/STOP and Other Commands

Mandatory Keywords:

  • STOP, ARRET (French) - Must immediately cease sending messages
  • HELP, AIDE (French) - Must provide assistance information
  • INFO - Must provide program information

Language Requirements:

  • Support both English and French commands
  • Include keyword information in the first message to new subscribers
  • Respond to commands in the language used by the subscriber

Do Not Call / Do Not Disturb Registries

Canada maintains a National Do Not Call List (DNCL) administered by the CRTC. While primarily for voice calls, best practices include:

  • Checking numbers against the DNCL before sending marketing messages
  • Maintaining an internal do-not-message list
  • Immediately processing opt-out requests
  • Keeping suppression lists updated across all campaigns

Time Zone Sensitivity

Time Restrictions:

  • Avoid sending messages before 9:00 AM or after 9:00 PM in the recipient's local time zone
  • Consider Canada's six time zones when scheduling campaigns
  • Exception: Urgent messages (e.g., security alerts, appointment reminders) may be sent outside these hours

Phone Numbers Options and SMS Sender Types for in Canada

Alphanumeric Sender ID

Operator network capability: Not supported in Canada
Registration requirements: N/A
Sender ID preservation: N/A

Long Codes

Domestic vs. International:

  • Domestic long codes fully supported
  • International long codes not recommended for A2P messaging

Sender ID preservation: Yes, original sender ID is preserved
Provisioning time: Immediate to 24 hours
Use cases:

  • Person-to-person communication
  • Low-volume business messaging
  • Customer support
  • Two-factor authentication

Short Codes

Support: Fully supported across all Canadian carriers
Provisioning time: 12-16 weeks for approval and activation
Use cases:

  • High-volume marketing campaigns
  • Mass notifications
  • Two-factor authentication
  • Customer loyalty programs

Restricted SMS Content, Industries, and Use Cases

Prohibited Content:

  • High-risk financial services (payday loans, cryptocurrency)
  • Gambling and sweepstakes
  • Adult content and pornography
  • Controlled substances (tobacco, vaping, cannabis)
  • Deceptive marketing practices
  • Hate speech and profanity

Content Filtering

Carrier Filtering Rules:

  • Messages containing prohibited keywords are automatically blocked
  • URLs must be from approved domains
  • High-frequency messaging may trigger spam filters

Best Practices:

  • Avoid URL shorteners
  • Use approved sender IDs
  • Maintain consistent sending patterns
  • Include clear opt-out instructions

Best Practices for Sending SMS in Canada

Messaging Strategy

  • Keep messages under 160 characters when possible
  • Include clear calls-to-action
  • Personalize using subscriber data
  • Maintain consistent branding

Sending Frequency and Timing

  • Limit to 2-4 messages per month per subscriber
  • Respect time zone differences
  • Avoid sending during major holidays
  • Space out messages to prevent fatigue

Localization

  • Offer both English and French language options
  • Allow language preference selection at opt-in
  • Maintain separate language-specific campaigns
  • Consider regional cultural differences

Opt-Out Management

  • Process opt-outs within 24 hours
  • Maintain centralized opt-out database
  • Confirm opt-out with one final message
  • Regular audit of opt-out lists

Testing and Monitoring

  • Test across all major Canadian carriers
  • Monitor delivery rates by carrier
  • Track engagement metrics
  • Regular A/B testing of message content

SMS API integrations for Canada

Twilio

Twilio provides a robust SMS API with comprehensive support for Canadian messaging requirements. Integration requires an account SID and auth token for authentication.

Key Parameters:

  • from: Your Twilio phone number (must be in E.164 format)
  • to: Recipient's number (must include +1 for Canada)
  • body: Message content (supports UTF-8 encoding)
typescript
import { Twilio } from 'twilio';

// Initialize client with environment variables
const client = new Twilio(
  process.env.TWILIO_ACCOUNT_SID,
  process.env.TWILIO_AUTH_TOKEN
);

async function sendSMS(to: string, message: string) {
  try {
    // Send message with proper Canadian formatting
    const response = await client.messages.create({
      from: process.env.TWILIO_PHONE_NUMBER, // Must be in +1XXXXXXXXXX format
      to: `+1${to.replace(/\D/g, '')}`, // Sanitize and format number
      body: message,
      // Optional parameters for Canadian requirements
      statusCallback: 'https://your-callback-url.com/status',
    });
    
    console.log(`Message sent successfully: ${response.sid}`);
    return response;
  } catch (error) {
    console.error('Error sending message:', error);
    throw error;
  }
}

Sinch

Sinch offers a developer-friendly API with specific features for the Canadian market. Authentication uses a service plan ID and API token.

typescript
import { SinchClient } from '@sinch/sdk-core';

class SinchSMSService {
  private client: SinchClient;

  constructor() {
    this.client = new SinchClient({
      servicePlanId: process.env.SINCH_SERVICE_PLAN_ID,
      apiToken: process.env.SINCH_API_TOKEN,
      region: 'ca-central-1'
    });
  }

  async sendBatchSMS(recipients: string[], message: string) {
    try {
      const response = await this.client.sms.batches.send({
        from: process.env.SINCH_NUMBER,
        to: recipients.map(num => `+1${num.replace(/\D/g, '')}`),
        body: message,
        // Canadian compliance parameters
        deliveryReport: 'summary',
        parameters: {
          campaign_id: 'CANADA_CAMPAIGN'
        }
      });

      return response;
    } catch (error) {
      console.error('Sinch SMS Error:', error);
      throw error;
    }
  }
}

MessageBird

MessageBird provides comprehensive SMS capabilities for Canadian markets with straightforward integration.

typescript
import { MessageBirdClient } from 'messagebird';

class MessageBirdService {
  private client: MessageBirdClient;

  constructor() {
    this.client = new MessageBirdClient(
      process.env.MESSAGEBIRD_API_KEY
    );
  }

  async sendMessage(to: string, message: string) {
    const params = {
      originator: process.env.MESSAGEBIRD_NUMBER,
      recipients: [`+1${to.replace(/\D/g, '')}`],
      body: message,
      // Canadian market specifics
      datacoding: 'auto',
      reportUrl: 'https://your-domain.com/delivery-reports'
    };

    return new Promise((resolve, reject) => {
      this.client.messages.create(params, (err, response) => {
        if (err) reject(err);
        else resolve(response);
      });
    });
  }
}

Plivo

Plivo offers reliable SMS capabilities with specific features for Canadian compliance requirements.

typescript
import { Client } from 'plivo';

class PlivoSMSService {
  private client: Client;

  constructor() {
    this.client = new Client(
      process.env.PLIVO_AUTH_ID,
      process.env.PLIVO_AUTH_TOKEN
    );
  }

  async sendSMS(to: string, message: string) {
    try {
      const response = await this.client.messages.create({
        src: process.env.PLIVO_NUMBER, // Your Plivo number
        dst: `+1${to.replace(/\D/g, '')}`,
        text: message,
        // Canadian specific parameters
        powerpack_uuid: process.env.PLIVO_POWERPACK_ID,
        log: true
      });

      return response;
    } catch (error) {
      console.error('Plivo Error:', error);
      throw error;
    }
  }
}

API Rate Limits and Throughput

Rate Limits by Provider:

  • Twilio: 100 messages per second
  • Sinch: 30 messages per second
  • MessageBird: 60 messages per second
  • Plivo: 50 messages per second

Throughput Management Strategies:

  • Implement exponential backoff for retry logic
  • Use queue systems (Redis, RabbitMQ) for high-volume sending
  • Batch messages when possible (up to 100 recipients per request)
  • Monitor throughput metrics and adjust sending patterns

Error Handling and Reporting

Best Practices:

  • Implement comprehensive error logging
  • Set up automated alerts for error thresholds
  • Store delivery receipts for compliance
  • Regular monitoring of delivery rates
typescript
// Example error handling implementation
interface SMSError {
  code: string;
  message: string;
  timestamp: Date;
  recipient: string;
}

class SMSErrorHandler {
  async logError(error: SMSError): Promise<void> {
    // Log to monitoring system
    await logger.error('SMS_DELIVERY_ERROR', {
      ...error,
      market: 'CANADA'
    });

    // Alert if error threshold exceeded
    if (await this.errorThresholdExceeded()) {
      await this.triggerAlert();
    }
  }
}

Recap and Additional Resources

Key Takeaways:

  • Always maintain CASL compliance
  • Implement proper opt-in/opt-out handling
  • Support both English and French communications
  • Monitor delivery rates and error patterns

Next Steps:

  1. Review CRTC guidelines at www.crtc.gc.ca
  2. Consult legal counsel for CASL compliance
  3. Set up monitoring and reporting systems
  4. Test messaging across all major Canadian carriers

Additional Resources:

Frequently Asked Questions

What are the SMS compliance regulations in Canada?

SMS marketing in Canada is primarily governed by the Canadian Anti-Spam Legislation (CASL), overseen by the CRTC. CASL requires express consent for commercial messages, which must be specific to SMS and clearly state the purpose and type of messages. Companies must also adhere to specific rules for HELP/STOP commands and maintain records of consent.

How to send SMS messages in Canada legally?

To send legal SMS messages in Canada, obtain express consent, identify yourself clearly, provide opt-out options (STOP, ARRET, HELP, AIDE, INFO), respect quiet hours (9 AM - 9 PM recipient's local time), and comply with content restrictions. Adhering to CASL and CRTC guidelines is crucial.

What are Canada's SMS character limits?

Canadian SMS character limits depend on encoding: 136 characters for GSM 3.38 and 70 for Unicode (UCS-2). Messages default to GSM-7 for standard ASCII characters and switch to UCS-2 for special characters or non-Latin alphabets. These limits apply per segment of concatenated messages.

How to get consent for SMS marketing in Canada?

Under CASL, express consent must be obtained before sending commercial SMS messages. This means explicit, documented agreement, specifically for SMS communication, outlining the purpose and type of messages. This cannot be bundled with consent for other channels.

Can I send marketing SMS to landlines in Canada?

SMS to landlines in Canada is not consistently supported. Some carriers convert messages to voice calls; others don't deliver them. Prioritize mobile numbers for reliable SMS delivery.

What is the best time to send SMS messages in Canada?

The best time to send SMS in Canada is between 9 AM and 9 PM in the recipient's local time zone. Be mindful of Canada's six time zones when scheduling campaigns. Urgent messages, like security alerts or appointment reminders, may be sent outside these hours.

What SMS sender IDs are supported in Canada?

Canada supports domestic long codes and short codes as sender IDs. Long codes are suitable for person-to-person and low-volume business messaging, while short codes are designed for high-volume marketing campaigns and mass notifications. Alphanumeric sender IDs are not supported.

How does number portability affect SMS in Canada?

Number portability is fully supported and doesn't significantly impact SMS delivery in Canada. Carriers maintain updated routing tables, ensuring messages reach the correct recipient even if they've switched providers.

What SMS APIs are available for sending messages in Canada?

Several SMS APIs cater to the Canadian market, including Twilio, Sinch, MessageBird, and Plivo. These APIs offer features compliant with Canadian regulations and provide tools for managing high-volume messaging and ensuring deliverability.

What are the rate limits for SMS APIs in Canada?

SMS API rate limits vary by provider. Twilio allows 100/second, Sinch 30/second, MessageBird 60/second, and Plivo 50/second. Effective throughput management requires strategies like exponential backoff and queue systems for high-volume sending.

How do I handle errors when sending SMS in Canada?

Implement comprehensive error logging, automated alerts for error thresholds, and store delivery receipts for compliance. Regularly monitor delivery rates and carrier-specific issues to ensure optimal performance.

Why does Canada have strict SMS marketing laws?

Canada's strict SMS marketing laws, primarily CASL, aim to protect consumers from unwanted and unsolicited messages. These regulations ensure businesses obtain proper consent, provide clear opt-out methods, and follow guidelines for responsible messaging practices.

What content is restricted in Canadian SMS messages?

Restricted SMS content in Canada includes high-risk financial services, gambling, adult content, controlled substances, deceptive marketing, hate speech, and profanity. Carrier filtering may block messages containing prohibited keywords or URLs.

What are some best practices for SMS marketing in Canada?

Key best practices include obtaining explicit consent, respecting quiet hours, using clear calls-to-action in messages under 160 characters, supporting English and French, and providing easy opt-out methods. Regular monitoring, testing, and compliance with CASL are crucial.