sms compliance

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

How to Send SMS to Greenland: Complete Guide for Businesses (2025)

Learn how to send SMS to Greenland (GL +299) with our comprehensive guide covering compliance, GDPR requirements, pricing, API integration, and best practices for A2P messaging.

Greenland (Denmark) SMS Best Practices, Compliance, and Features

Greenland SMS Market Overview

Locale name:Greenland (Denmark)
ISO code:GL
RegionEurope
Mobile country code (MCC)290
Dialing Code+299

Market Conditions: Greenland, as part of the Kingdom of Denmark, has a well-developed mobile telecommunications infrastructure despite its remote location and sparse population of approximately 56,000 residents. The market is dominated by TELE-POST, the primary telecommunications provider operating as a state-owned enterprise.

Infrastructure Characteristics:

  • Mobile penetration rate: ~100% (most residents have mobile access)
  • Network coverage: Concentrated in populated coastal areas; limited coverage in interior regions
  • Primary network technology: 4G/LTE in major towns; 3G in smaller settlements
  • Geographic challenges: Mountainous terrain and vast distances create connectivity gaps
  • SMS reliability: High in covered areas; suitable for critical communications

While SMS remains a crucial communication channel, particularly for business and authentication purposes, OTT messaging apps like WhatsApp and Facebook Messenger are gaining popularity, especially in urban areas with reliable internet connectivity.


SMS Features and Capabilities in Greenland

Greenland supports standard SMS features with some limitations, primarily following Danish telecommunications standards while adapting to local conditions and infrastructure requirements.

Two-way SMS Support

Two-way SMS is not supported in Greenland for A2P (Application-to-Person) messaging. This limitation stems from network operator restrictions and the small market size which limits infrastructure investment in advanced messaging features.

Impact on Use Cases:

  • Customer surveys: Cannot collect SMS responses; use web links to survey forms instead
  • Automated support: Cannot process reply keywords beyond STOP/HELP; direct users to alternative channels
  • Verification codes: One-way delivery only; users cannot reply to confirm receipt
  • Appointment reminders: No SMS-based confirmation; use voice calls or email for two-way interaction

Recommended Workarounds:

  • Include clickable links to web-based response forms
  • Use email or voice calls for interactions requiring responses
  • Implement app-based messaging for ongoing customer conversations
  • Combine SMS alerts with web portal or mobile app for full functionality

Concatenated Messages (Segmented SMS)

Support: Yes, concatenated messages are supported, though availability may vary based on sender ID type. Message length rules: Standard SMS length of 160 characters for GSM-7 encoding, or 70 characters for Unicode (UCS-2) encoding. Encoding considerations: Both GSM-7 and UCS-2 encodings are supported, with messages automatically using the appropriate encoding based on content.

Character Limits and Segmentation:

EncodingSingle SMSPer Segment (Multi-part)Overhead
GSM-7 (Latin)160 chars153 chars7 chars (UDH)
UCS-2 (Unicode)70 chars67 chars3 chars (UDH)

Billing: Each segment is billed as a separate SMS. A 200-character GSM-7 message = 2 SMS credits (153 + 47 chars).

Practical Examples:

  • 160 chars (GSM-7): "Your verification code is 123456. This code expires in 10 minutes. Do not share this code with anyone. If you did not request this code, please ignore this message." = 1 SMS
  • 161 chars (GSM-7): Same message + "Thanks" = 2 SMS (153 + 13 chars)
  • Emoji or special characters: Forces Unicode encoding, reducing capacity to 67 chars per segment

MMS Support

MMS messages are automatically converted to SMS with an embedded URL link. This conversion ensures compatibility across all mobile networks while still allowing rich media content to be shared through linked web pages.

Technical Implementation:

  • Media files uploaded to provider's hosting infrastructure
  • SMS sent with shortened URL to access content
  • Typical URL format: https://mms.provider.com/v/abc123 (varies by provider)
  • URL expiration: 30-90 days (provider-dependent; check specific SLA)
  • File size limits: 300KB-5MB per message
  • Supported formats: JPEG, PNG, GIF, MP4, MP3, PDF

Example Conversion:

  • Input: MMS with image.jpg (150KB) + "Check our new product!"
  • Output SMS: "Check our new product! View media: https://mms.example.com/v/x7f9k2"
  • Recipient clicks link to view image in mobile browser

Recipient Phone Number Compatibility

Number Portability

Number portability is not available in Greenland. This means mobile numbers remain tied to their original network operator.

Operator Identification: With TELE-POST as the dominant provider, most +299 mobile numbers belong to the TELE-POST network. Number ranges are assigned by the Greenland Telecommunications Administration.

Impact on SMS Delivery:

  • Simplified routing: All traffic routes through TELE-POST infrastructure
  • No lookup databases required for operator identification
  • Consistent delivery times and behavior across all numbers
  • Single point of contact for delivery issues or technical support

Sending SMS to Landlines

Sending SMS to landline numbers is not possible in Greenland. Attempts to send messages to landline numbers will result in a failed delivery and a 400 response with error code 21614 through most SMS APIs.

Number Validation Best Practices:

  • Mobile prefixes: Greenland mobile numbers typically start with +299 [2-5]X (verify with current TELE-POST allocation tables)
  • Pre-send validation: Implement HLR (Home Location Register) lookup to verify number type before sending
  • API validation: Most providers offer number validation endpoints (e.g., Twilio Lookup API, Sinch Number Verification)
  • Error handling: Catch 21614 errors and mark numbers as invalid in your database to prevent repeated attempts
  • Database hygiene: Regularly clean contact lists to remove landline numbers

SMS Compliance Requirements in Greenland: GDPR and Danish Regulations

As part of the Kingdom of Denmark, Greenland follows both Danish telecommunications regulations and EU data protection standards, including GDPR. The primary regulatory authority is the Danish Business Authority (Erhvervsstyrelsen), while TELE-POST oversees local telecommunications infrastructure.

Regulatory Framework:

  • GDPR (Regulation EU 2016/679): Governs personal data processing and consent requirements
  • ePrivacy Directive (2002/58/EC): Regulates electronic communications and marketing consent
  • Danish Marketing Practices Act: Sets standards for commercial communication
  • Enforcement authority: Danish Data Protection Agency (Datatilsynet)

Penalties for Non-Compliance:

  • GDPR violations: Up to €20 million or 4% of annual global turnover (whichever is higher)
  • Marketing law violations: Fines up to DKK 500,000 (~€67,000) for businesses
  • Additional sanctions: Injunctions, operational restrictions, and reputational damage
  • Individual liability: Corporate officers may face personal sanctions

Explicit Consent Requirements:

  • Written or electronic consent must be obtained before sending marketing messages
  • Consent records must be maintained and easily accessible
  • Purpose of communication must be clearly stated during opt-in
  • Double opt-in is recommended for marketing campaigns

Best Practices for Documentation:

  • Store timestamp and source of consent
  • Maintain detailed records of opt-in methods
  • Keep consent logs for minimum of 2 years (GDPR recommendation: duration of processing + 6 years for potential claims)
  • Enable easy access to consent history for audit purposes

Compliant Opt-In Flow Example:

  1. User enters phone number on web form
  2. System displays: "I agree to receive promotional SMS from [Company] about [specific purpose]. You can opt out anytime by replying STOP."
  3. User checks consent checkbox and submits
  4. Confirmation SMS sent: "Thanks for subscribing! Reply STOP to unsubscribe anytime."
  5. System logs: timestamp, IP address, consent text version, user ID

Template Consent Language:

"By checking this box, I consent to receive SMS messages from [Company Name] about [products/services/offers]. Message frequency: [up to X per month]. Reply STOP to opt out. Standard message and data rates may apply. See our [Privacy Policy link]."

HELP/STOP and Other Commands

Required opt-out keywords must be supported in both Danish and Greenlandic to comply with local language requirements.

Mandatory Keywords:

  • Danish: STOP, STOPP, AFMELD, HELP, HJÆLP, INFO
  • Greenlandic: NAAMMAGINEQ (stop), IKIU (help)
  • All opt-out keywords must be processed immediately (within 5 minutes)
  • Confirmation messages should be sent in the same language as the opt-out request

Implementation Requirements:

  • Case-insensitive matching (accept "stop", "STOP", "Stop")
  • Partial match tolerance (accept "STOP ALL", "STOP SMS")
  • Immediate database update to suppress future messages
  • Confirmation message: "You have been unsubscribed from [Company] SMS. You will not receive further messages."
  • Process opt-outs even if two-way SMS is not supported (monitor provider's opt-out webhook events)

Do Not Call / Do Not Disturb Registries

While Greenland doesn't maintain a separate Do Not Call registry, businesses must:

  • Maintain their own suppression lists
  • Honor opt-out requests within 24 hours (best practice: immediate)
  • Regularly clean contact databases
  • Implement proper opt-out tracking systems
  • Respect the Danish Robinsonlisten for contacts with Danish residency

Time Zone Sensitivity

Greenland observes multiple time zones depending on location:

  • West Greenland (capital Nuuk): UTC-2 (standard), UTC-1 (daylight saving, March-October)
  • East Greenland (Ittoqqortoormiit): UTC-1 (standard), UTC±0 (DST)
  • Thule Air Base: UTC-4 (standard), UTC-3 (DST)
  • Danmarkshavn: UTC±0 (no DST)

Sending Windows Best Practices:

  • Send messages between 9:00 AM and 8:00 PM local time
  • Avoid messages on Sundays and public holidays
  • Consider seasonal variations in daylight hours (24-hour daylight in summer; 24-hour darkness in winter affects user activity patterns)
  • Limit urgent messages outside business hours (exception: account security alerts, emergency notifications)

Greenland Public Holidays (no SMS marketing):

  • January 1: New Year's Day
  • January 6: Epiphany
  • Maundy Thursday, Good Friday, Easter Monday (variable dates)
  • 4th Friday after Easter: Great Prayer Day
  • Ascension Day (39 days after Easter)
  • Whit Monday (50 days after Easter)
  • June 21: National Day (Ullortuneq) - Greenland's most important holiday
  • December 24-26: Christmas
  • December 31: New Year's Eve

Greenland SMS Sender ID Options: Alphanumeric vs Long Codes

Alphanumeric Sender ID

Operator network capability: Fully supported Registration requirements: No pre-registration required, dynamic usage supported Sender ID preservation: Yes, sender IDs are preserved as specified

Character Limits and Rules:

  • Maximum length: 11 characters
  • Allowed characters: A-Z, a-z, 0-9, space (no special characters or emojis)
  • Must contain at least one letter (cannot be all numbers)
  • Cannot start with a number
  • Case-sensitive display (sent as specified)

Best Practices for Choosing Sender IDs:

  • Use recognizable brand name: "AcmeBank" not "MSG2023"
  • Keep it short: 6-9 characters ideal for mobile display
  • Avoid generic terms: "ALERT" or "INFO" appear spam-like
  • Consistency: Use same sender ID across all campaigns for brand recognition
  • Test display: Verify appearance on various devices before launch

Long Codes

Domestic vs. International:

  • Domestic long codes not supported
  • International long codes fully supported

Sender ID preservation: Yes, original sender ID is preserved Provisioning time: Immediate to 24 hours Use cases: Ideal for transactional messages and two-factor authentication

International Long Code Details:

  • Format: Full E.164 format (e.g., +14155551234 for US number)
  • Advantages: Enables replies if provider supports webhooks; professional appearance; globally consistent
  • Limitations: Higher per-message cost than alphanumeric sender IDs; country-specific regulations may apply to source number

Short Codes

Support: Not supported in Greenland Provisioning time: N/A Use cases: N/A


Restricted SMS Content and Industries in Greenland

Prohibited Content:

  • Gambling and lottery services (violates Danish Gambling Act - Lov om spil)
  • Adult content (pornography, explicit sexual content)
  • Cryptocurrency promotions (restrictions under Danish Financial Supervisory Authority regulations)
  • Unauthorized financial services (requires proper licensing from Finanstilsynet)
  • Phishing, fraud, or deceptive content
  • Content promoting violence or illegal activities

Regulated Industries: Financial services require additional disclaimers:

  • Must include license number and regulatory body
  • Example: "Licensed by Finanstilsynet. Terms apply: [URL]"
  • Required risk warnings for investment products
  • Clear identification of sender entity

Healthcare messages must comply with privacy regulations:

  • GDPR Article 9 special category data protection
  • Patient consent required for health information transmission
  • Encryption recommended for sensitive health data
  • Compliance with Danish Health Data Authority (Sundhedsdatastyrelsen) standards

Insurance products need clear terms and conditions:

  • Material disclosure requirements
  • Link to full policy terms
  • Clear claim procedures
  • Regulator contact information

Pharmaceutical and Medical Device Promotions:

  • Prescription drugs: Advertising prohibited to consumers (only healthcare professionals)
  • OTC medications: Must include warnings and contraindications
  • Medical devices: CE marking reference and proper classification disclosure

Content Filtering

Known Carrier Filtering Rules:

  • URLs must be pre-approved (spam prevention measure)
  • Short URLs and redirects are blocked (security risk)
  • Keywords related to restricted industries trigger filters (gambling, crypto, adult content)
  • Excessive capitalization flagged as spam: "FREE MONEY NOW!!!"
  • High-frequency sending from new sender IDs may trigger throttling

URL Approval Process:

  1. Submit domain to SMS provider for whitelisting (2-5 business days)
  2. Verify domain ownership (DNS TXT record or email confirmation)
  3. Provide business documentation (company registration, website terms)
  4. Use approved domains consistently in messages
  5. Avoid URL shorteners; use branded short domains if needed (e.g., brand.link/offer)

Common Spam Trigger Words to Avoid:

  • Financial: "free money", "cash bonus", "guaranteed income", "risk-free"
  • Urgency: "act now", "limited time", "expires today", "urgent response required"
  • Prizes: "winner", "you've won", "claim prize", "congratulations"
  • Generic spam: "click here", "open now", "special promotion"

Tips to Avoid Blocking:

  • Use approved URL formats (full domains, not shortened)
  • Avoid spam trigger words
  • Include clear sender identification in every message
  • Maintain consistent sending patterns (avoid sudden volume spikes)
  • Warm up new sender IDs gradually (start with low volume, increase over 2-4 weeks)
  • Implement proper opt-in processes to minimize spam complaints
  • Monitor delivery rates and investigate sudden drops

Best Practices for SMS Marketing in Greenland

Messaging Strategy

  • Keep messages under 160 characters when possible
  • Include clear call-to-actions
  • Personalize using recipient's name or relevant details
  • Maintain consistent branding across messages

Message Templates:

  • Transactional: "Hi [Name], your order #[ID] has shipped. Track: [URL]. Questions? Reply or call [number]."
  • Authentication: "Your [Brand] verification code: [CODE]. Valid for 10 minutes. Never share this code."
  • Appointment: "[Name], reminder: [Service] appt tomorrow at [Time]. Address: [Location]. Reply or call to reschedule."

Sending Frequency and Timing

  • Limit to 2-3 messages per week per recipient for marketing
  • Respect local holidays and cultural events
  • Avoid sending during off-hours (before 9 AM or after 8 PM)
  • Space out bulk campaigns to prevent network congestion

Throttling Guidance:

  • Start with 10-50 messages per second for new campaigns
  • Monitor delivery rates and adjust accordingly
  • Peak capacity: 100-500 msg/sec (provider-dependent)
  • Implement exponential backoff for rate limit errors (HTTP 429)
  • Use message queues (Redis, RabbitMQ) for volume management

Localization for Greenland

Greenland is bilingual, with both Greenlandic (Kalaallisut) and Danish as official languages.

Language Preferences:

  • Greenlandic (Kalaallisut): Primary language for ~80% of population
  • Danish: Widely understood, especially in business contexts
  • Best practice: Offer language choice during opt-in; default to Danish for broader comprehension

Character Set Requirements:

  • Greenlandic uses Latin alphabet with special characters: å, æ, ø (same as Danish)
  • Standard GSM-7 encoding supports these characters without forcing Unicode
  • Extended GSM characters (|, ^, €, {, }, [, ], ~, \) use 2 characters each

Cultural Considerations:

  • Respect indigenous culture: Avoid assumptions based on Danish norms alone
  • June 21 (National Day) is extremely important; avoid marketing that day
  • Long winter darkness affects engagement (lower activity November-February)
  • Fishing and hunting seasons impact community availability
  • Use formal tone initially; Greenlandic culture values respect and directness

Opt-Out Management

  • Process opt-outs in real-time (within 5 minutes)
  • Send confirmation of opt-out: "You're unsubscribed. No more messages from [Brand]."
  • Maintain unified opt-out lists across campaigns
  • Regular audit of opt-out compliance (monthly recommended)
  • Sync opt-outs across all channels (email, SMS, push notifications)

Testing and Monitoring

  • Test across all major device types (iOS, Android, feature phones if relevant)
  • Monitor delivery rates by carrier (though TELE-POST is dominant)
  • Track engagement metrics (delivery rate, click-through rate)
  • Regular testing of opt-out functionality (weekly for active campaigns)

Key Performance Indicators (KPIs):

MetricAcceptable RangeGood PerformanceAction Threshold
Delivery Rate95-98%>98%<95% investigate
Click-Through Rate (CTR)5-10%>10%<3% revise content
Opt-Out Rate<0.5% per campaign<0.2%>1% review practices
Spam Report Rate<0.1%<0.05%>0.3% immediate action
Response Time (2FA)<30 sec<10 sec>60 sec check routes

Testing Checklist:

  • Character encoding displays correctly (test GSM-7 and Unicode)
  • Links are clickable and track properly
  • Sender ID appears as expected
  • Concatenated messages reassemble correctly
  • Opt-out keywords trigger unsubscribe
  • Delivery receipts return successfully
  • Time zone scheduling works accurately
  • Rate limiting doesn't drop messages

SMS API Integration Options for Greenland

Twilio SMS API

Twilio provides a robust REST API for sending SMS to Greenland. Authentication uses account SID and auth token credentials.

typescript
import { Twilio } from 'twilio';

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

async function sendSMS() {
  try {
    // Send message with proper Greenland formatting
    const message = await client.messages.create({
      body: 'Your message here', // Keep under 160 chars for single SMS
      from: 'YourCompany', // Alphanumeric sender ID
      to: '+299XXXXXXX', // Greenland number format
      statusCallback: 'https://your-domain.com/sms/status' // Delivery receipts
    });

    console.log(`Message sent successfully: ${message.sid}`);
    return message;
  } catch (error) {
    // Handle common error codes
    if (error.code === 21614) {
      console.error('Invalid number (likely landline)');
    } else if (error.code === 21211) {
      console.error('Invalid "To" number format');
    } else if (error.code === 429 || error.code === 20429) {
      console.error('Rate limit exceeded - implement exponential backoff');
      // Wait and retry with exponential backoff
    } else {
      console.error('Error sending message:', error.message);
    }
    throw error;
  }
}

// Webhook handler for delivery receipts
app.post('/sms/status', (req, res) => {
  const { MessageSid, MessageStatus, ErrorCode } = req.body;

  console.log(`Message ${MessageSid} status: ${MessageStatus}`);

  if (MessageStatus === 'failed' || MessageStatus === 'undelivered') {
    console.error(`Delivery failed: Error code ${ErrorCode}`);
    // Update database, retry logic, or alert
  }

  res.status(200).send('OK');
});

Twilio-Specific Features:

  • Lookup API for number validation
  • Detailed error codes: See Error Code Reference
  • Delivery receipts via StatusCallback webhook
  • Message scheduling capability
  • A2P 10DLC registration (for US sender numbers)

Sinch SMS API

Sinch offers a REST API with OAuth2 authentication for secure SMS delivery.

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

// Initialize Sinch client
const sinchClient = new SinchClient({
  projectId: process.env.SINCH_PROJECT_ID,
  apiToken: process.env.SINCH_API_TOKEN
});

async function sendSMS() {
  try {
    const response = await sinchClient.sms.batches.send({
      from: 'YourBrand', // Alphanumeric sender ID
      to: ['+299XXXXXXX'], // Array of recipients
      body: 'Your message content',
      deliveryReport: 'summary', // or 'full' for per-message reports
      callbackUrl: 'https://your-domain.com/delivery-reports'
    });

    console.log('Batch ID:', response.id);
    return response;
  } catch (error) {
    if (error.response?.status === 429) {
      console.error('Rate limit exceeded');
      // Implement exponential backoff
    } else if (error.response?.status === 400) {
      console.error('Invalid request:', error.response.data);
    } else {
      console.error('Sinch API error:', error.message);
    }
    throw error;
  }
}

// Delivery report webhook handler
app.post('/delivery-reports', (req, res) => {
  const { batch_id, statuses } = req.body;

  statuses.forEach(status => {
    console.log(`Recipient: ${status.recipient}, Status: ${status.status}`);
    if (status.status === 'Failed') {
      console.error(`Failure code: ${status.code}`);
    }
  });

  res.status(200).send('OK');
});

MessageBird

MessageBird provides a straightforward API for SMS integration with comprehensive delivery reporting.

typescript
import { MessageBird } from 'messagebird';

// Initialize MessageBird client
const messagebird = new MessageBird(process.env.MESSAGEBIRD_API_KEY);

async function sendSMS() {
  const params = {
    originator: 'CompanyName', // Your sender ID
    recipients: ['+299XXXXXXX'],
    body: 'Your message here',
    reportUrl: 'https://your-callback-url.com/delivery-reports'
  };

  return new Promise((resolve, reject) => {
    messagebird.messages.create(params, (err, response) => {
      if (err) {
        console.error('MessageBird Error:', err);
        // Handle specific error codes
        if (err.errors && err.errors[0]) {
          const error = err.errors[0];
          if (error.code === 21) {
            console.error('Invalid recipient number');
          } else if (error.code === 25) {
            console.error('Insufficient balance');
          }
        }
        reject(err);
      } else {
        console.log('Message sent:', response.id);
        resolve(response);
      }
    });
  });
}

Plivo

Plivo offers a feature-rich API with detailed delivery insights.

typescript
import { Client } from 'plivo';

// Initialize Plivo client
const client = new Client(
  process.env.PLIVO_AUTH_ID,
  process.env.PLIVO_AUTH_TOKEN
);

async function sendSMS() {
  try {
    const response = await client.messages.create({
      src: 'YourBrand', // Sender ID
      dst: '+299XXXXXXX', // Destination number
      text: 'Your message content',
      url: 'https://your-callback-url.com/status', // Delivery receipt URL
      method: 'POST'
    });

    console.log('Message UUID:', response.messageUuid);
    return response;
  } catch (error) {
    console.error('Plivo API error:', error);
    // Plivo-specific error handling
    if (error.response?.status === 429) {
      console.error('Rate limit hit - implement retry with backoff');
    }
    throw error;
  }
}

SMS Provider Comparison for Greenland

ProviderRate LimitDelivery ReceiptsNumber ValidationApproximate Cost (USD per SMS)
Twilio1 msg/sec (default)Yes (webhook)Lookup API ($0.005)$0.08-0.12
Sinch10 msg/sec (default)Yes (webhook)HLR Lookup ($0.01)$0.07-0.10
MessageBird5 msg/sec (default)Yes (webhook)Number Lookup ($0.005)$0.07-0.11
Plivo10 msg/sec (default)Yes (webhook)Lookup API ($0.004)$0.06-0.09

Note: Pricing varies by volume commitment and specific routing. Contact providers for enterprise pricing.

API Rate Limits and Throughput

  • Default rate limits vary by provider (typically 1-10 messages per second)
  • Implement exponential backoff for retry logic: start with 1s delay, double on each retry, max 60s
  • Use batch APIs for bulk sending (Sinch and MessageBird support up to 1000 recipients per request)
  • Consider queue systems like Redis or RabbitMQ for high volume

Rate Limiting Implementation Example:

typescript
async function sendWithRetry(sendFunction, maxRetries = 3) {
  let delay = 1000; // Start with 1 second

  for (let attempt = 0; attempt < maxRetries; attempt++) {
    try {
      return await sendFunction();
    } catch (error) {
      if (error.response?.status === 429 && attempt < maxRetries - 1) {
        console.log(`Rate limited. Waiting ${delay}ms before retry ${attempt + 1}`);
        await new Promise(resolve => setTimeout(resolve, delay));
        delay *= 2; // Exponential backoff
      } else {
        throw error;
      }
    }
  }
}

Error Handling and Reporting

Implement comprehensive error logging:

  • Log all API requests with timestamps and message IDs
  • Monitor delivery receipts and track failure rates
  • Set up automated alerts for failure thresholds (>5% failure rate)
  • Store message metadata for troubleshooting (sender, recipient, timestamp, status)

Common Error Codes:

  • 21614 (Twilio): Invalid phone number (landline or invalid format)
  • 21211 (Twilio): Invalid "To" phone number
  • 21408 (Twilio): Permission denied (not allowed in region)
  • 30007 (Twilio): Message filtered (spam detected)
  • 30008 (Twilio): Unknown error from carrier
  • 429: Rate limit exceeded (all providers)

Error Monitoring Example:

typescript
class SMSMonitor {
  private metrics = {
    sent: 0,
    delivered: 0,
    failed: 0,
    errors: new Map<string, number>()
  };

  recordSent() {
    this.metrics.sent++;
  }

  recordDelivered() {
    this.metrics.delivered++;
  }

  recordError(code: string) {
    this.metrics.failed++;
    const count = this.metrics.errors.get(code) || 0;
    this.metrics.errors.set(code, count + 1);

    // Alert if failure rate exceeds threshold
    const failureRate = this.metrics.failed / this.metrics.sent;
    if (failureRate > 0.05) {
      this.sendAlert(`High failure rate: ${(failureRate * 100).toFixed(2)}%`);
    }
  }

  sendAlert(message: string) {
    // Implement alerting (email, Slack, PagerDuty, etc.)
    console.error(`ALERT: ${message}`);
  }
}

Troubleshooting Common SMS Issues in Greenland

Delivery Failures

Problem: Messages not delivered (delivery receipt shows "failed" or "undelivered")

Common Causes and Solutions:

  1. Invalid number format

    • Solution: Validate E.164 format (+299XXXXXXX), use provider lookup APIs
    • Check: Ensure no spaces, dashes, or invalid characters
  2. Landline number

    • Solution: Implement HLR lookup before sending; filter landlines from database
    • Error code: 21614 (Twilio), similar codes for other providers
  3. Network/carrier issues

    • Solution: Monitor carrier status pages; implement retry logic with exponential backoff
    • Temporary issues usually resolve within 15-30 minutes
  4. Spam filtering

    • Solution: Review content for spam trigger words; ensure URL whitelist approval
    • Test: Send to multiple recipients; if all fail, likely content issue
  5. Insufficient provider balance

    • Solution: Monitor account balance; set up low-balance alerts
    • Check: Provider dashboard or API balance endpoint

Message Delays

Problem: Messages delivered but with significant delay (>1 minute)

Common Causes and Solutions:

  1. Network congestion

    • Solution: Spread bulk sends over time; avoid peak hours
    • Best practice: Limit to 100-500 msg/min during business hours
  2. Rate limiting

    • Solution: Implement proper throttling; use batch APIs
    • Check logs for HTTP 429 errors
  3. Routing issues

    • Solution: Contact provider support; may need route optimization
    • Enterprise accounts can request dedicated routes

Character Encoding Issues

Problem: Special characters appear as "?" or broken symbols

Common Causes and Solutions:

  1. Unicode not specified

    • Solution: Explicitly set encoding to UTF-8 or UCS-2
    • Most APIs auto-detect, but manual setting is more reliable
  2. Extended GSM characters

    • Issue: Characters like |, ^, {, }, [, ], ~, \ count as 2 characters
    • Solution: Account for extended characters in length calculations
  3. Emoji usage

    • Forces Unicode encoding (67 chars per segment vs 153)
    • Solution: Avoid emojis unless necessary; test thoroughly

Opt-Out Not Working

Problem: Users report replying STOP but still receiving messages

Common Causes and Solutions:

  1. Two-way SMS not configured

    • Greenland doesn't support two-way A2P messaging
    • Solution: Monitor provider opt-out webhooks; some providers handle STOP centrally
  2. Webhook not receiving events

    • Solution: Verify webhook URL is accessible; check firewall rules
    • Test: Use provider's webhook testing tools
  3. Database not updated

    • Solution: Ensure opt-out handler updates database immediately
    • Add redundancy: log to queue before database update

Sender ID Not Displaying

Problem: Sender ID shows as number instead of brand name

Common Causes and Solutions:

  1. Alphanumeric not supported on route

    • Some international routes don't preserve sender IDs
    • Solution: Contact provider; may need different routing
  2. Invalid sender ID format

    • Must be 3-11 characters, contain at least one letter
    • Solution: Validate format before sending
  3. Carrier replacement

    • Some carriers replace unfamiliar sender IDs
    • Solution: Use provider-verified sender IDs; register brand

Frequently Asked Questions About SMS in Greenland

Q: Can I send SMS to Greenland from any country? A: Yes, international SMS to Greenland is supported by most global providers. Ensure your provider has Greenland (GL, +299) in their coverage list.

Q: Do I need a local Greenland phone number to send SMS? A: No, you can use alphanumeric sender IDs (e.g., "YourBrand") or international long codes. Local numbers are not required.

Q: What's the average delivery time for SMS in Greenland? A: Typical delivery time is 5-30 seconds. Delays beyond 1 minute may indicate network issues or routing problems.

Q: Can recipients reply to my SMS messages? A: Two-way SMS is not supported for A2P messaging in Greenland. Use web links, email, or voice calls for interactions.

Q: How do I handle STOP requests if two-way SMS isn't supported? A: Most SMS providers handle STOP keywords centrally and provide webhook notifications. Monitor these webhooks to update your suppression list.

Q: What languages should I use for SMS content? A: Greenlandic (Kalaallisut) is preferred by ~80% of the population, but Danish is widely understood. Offer language choice during opt-in.

Q: Are there restrictions on sending promotional SMS? A: Yes, GDPR and Danish marketing laws require explicit consent. Avoid restricted content (gambling, adult, crypto) and respect sending hours (9 AM - 8 PM).

Q: How much does it cost to send SMS to Greenland? A: Costs range from $0.06-0.12 per SMS depending on provider and volume. Concatenated messages are billed per segment.

Q: Can I send MMS to Greenland? A: MMS is converted to SMS with a URL link to view media. Check with your provider about URL hosting duration and file size limits.

Q: What's the maximum SMS length I can send? A: Single SMS: 160 characters (GSM-7) or 70 (Unicode). Longer messages are split into segments of 153/67 characters each.

Q: Do I need to register my sender ID? A: No pre-registration is required for alphanumeric sender IDs in Greenland. However, maintaining consistency helps with deliverability.

Q: What time zones should I consider? A: Greenland has 4 time zones (UTC-4 to UTC±0). Most population is in West Greenland (UTC-2/UTC-1). Schedule messages for 9 AM - 8 PM local time.

Q: How do I validate Greenland phone numbers? A: Use E.164 format (+299XXXXXXX). Greenland mobile numbers are typically +299 [2-5]X followed by additional digits. Use HLR lookup APIs to verify.

Q: What should I do if delivery rates suddenly drop? A: Check for: content filtering (spam triggers), rate limiting, sender ID changes, network issues, or account problems. Review recent messages for spam indicators.

Q: Can I schedule SMS for future delivery? A: Most providers support scheduled sending. Use this for time zone optimization and respecting sending hours.


Summary: Key Takeaways for SMS in Greenland

Compliance Priorities

  1. GDPR and Consent Requirements

    • Obtain explicit GDPR-compliant consent before sending marketing messages
    • Support opt-out mechanisms (STOP/STOPP/AFMELD in Danish, NAAMMAGINEQ in Greenlandic)
    • Follow time zone restrictions (9 AM - 8 PM local time)
    • Maintain proper documentation (2+ years)
    • Penalties up to €20M or 4% global revenue for GDPR violations
  2. Technical Considerations

    • Use alphanumeric sender IDs (3-11 characters, no pre-registration required)
    • Two-way SMS not supported; use webhooks for opt-outs
    • Number portability unavailable; simplified routing through TELE-POST
    • Concatenated messages supported (153 chars/segment for GSM-7)
    • Implement HLR lookup to avoid landline delivery failures
  3. Best Practices

    • Localize content (Greenlandic preferred, Danish widely understood)
    • Respect sending hours and public holidays (especially June 21 National Day)
    • Maintain clean contact lists with real-time opt-out processing
    • Monitor KPIs: >95% delivery rate, <0.5% opt-out rate, <0.1% spam reports
    • Test thoroughly across devices and character encodings
  4. Cost Considerations

    • Per-SMS cost: $0.06-0.12 (provider-dependent, volume discounts available)
    • Concatenated messages billed per segment
    • Number validation: $0.004-0.01 per lookup
    • Factor in webhook infrastructure and monitoring costs

Next Steps

  1. Review the Danish Business Authority's telecommunications guidelines
  2. Consult with legal counsel on GDPR compliance (Article 6 lawful basis, Article 9 special categories)
  3. Set up test accounts with preferred SMS providers (Twilio, Sinch, MessageBird, Plivo)
  4. Implement consent management system with double opt-in
  5. Configure delivery receipt webhooks for real-time monitoring
  6. Establish baseline KPIs and monitoring dashboards
  7. Create runbook for common issues (delivery failures, rate limits, spam filtering)

Decision Tree: Choosing Sender ID Type

Do you need recipients to reply via SMS? ├─ Yes → Not supported in Greenland for A2P │ Use: Web forms, email, or voice calls for responses │ └─ No → Proceed to sender ID selection │ ├─ Need strong brand recognition? │ └─ Yes → Alphanumeric Sender ID (e.g., "YourBrand") │ ✓ No registration required │ ✓ Recognizable to recipients │ ✓ 3-11 characters │ └─ Need to appear as phone number? └─ Yes → International Long Code (e.g., +14155551234) ✓ Professional appearance ✓ Provisioning: immediate to 24 hours ✓ May support replies outside Greenland

Additional Resources

Official Resources:

Industry Guidelines:

SMS Provider Documentation:

Compliance Tools:

Performance Benchmarks:

  • Expected delivery rate: 95-98%
  • Average delivery time: 5-30 seconds
  • Acceptable opt-out rate: <0.5% per campaign
  • Spam report threshold: <0.1%
  • Two-factor authentication latency: <10 seconds (target)

Frequently Asked Questions

How to send SMS to Greenland Denmark?

Use a reputable SMS API provider like Twilio, Sinch, MessageBird, or Plivo. Ensure your message content complies with Greenland's regulations, including obtaining consent and respecting opt-out requests. Remember to format numbers with the +299 country code.

What is the MCC for Greenland Denmark?

The Mobile Country Code (MCC) for Greenland, which falls under Denmark's telecommunications regulations, is 290. This code is essential for routing SMS messages correctly to Greenlandic mobile networks.

Why does Greenland not support short codes?

Short codes are not supported in Greenland for SMS messaging. Businesses should utilize alphanumeric sender IDs or international long codes for sending SMS to Greenlandic numbers.

When should I send SMS messages in Greenland?

Adhere to Greenland's local time zone (UTC-2 or UTC-3) and send messages between 9:00 AM and 8:00 PM. Avoid sending on Sundays and public holidays, and consider seasonal daylight variations. Limit messages to 2-3 per week per recipient.

Can I send SMS to landlines in Greenland?

No, sending SMS messages to landline numbers in Greenland is not supported. Attempts to do so will result in failed delivery and a 400 response error code 21614 from most SMS APIs.

What are SMS compliance requirements in Greenland?

Greenland follows Danish and EU regulations, including GDPR. Explicit consent is required for marketing messages, and businesses must honor opt-out requests (STOP, STOPP, AFMELD) in Danish and Greenlandic. Maintain thorough consent records.

What is the maximum SMS length in Greenland?

Standard SMS length limits apply: 160 characters for GSM-7 encoding and 70 characters for Unicode (UCS-2). Concatenated messages are supported, but availability depends on the sender ID type.

How to handle opt-outs for SMS in Greenland?

Process opt-out requests immediately and send a confirmation message in the same language as the request. Maintain comprehensive opt-out lists and ensure compliance with data protection regulations. Support STOP, STOPP, and AFMELD in both Danish and Greenlandic.

What SMS sender IDs are supported in Greenland?

Alphanumeric sender IDs and international long codes are supported in Greenland. Domestic long codes and short codes are not available. Sender ID preservation is generally maintained across Greenlandic networks.

How to avoid SMS filtering in Greenland?

Avoid using short URLs or redirects, as these are often blocked. Obtain pre-approval for URLs and refrain from using spam trigger words or keywords related to prohibited content such as gambling or adult material.

Why are MMS messages converted to SMS in Greenland?

MMS messages are automatically converted to SMS with an embedded URL link to ensure compatibility across all mobile networks in Greenland while still allowing for the sharing of rich media content.

What are the prohibited content categories for SMS in Greenland?

Gambling, adult content, cryptocurrency promotions, and unauthorized financial services are prohibited in SMS messages. Regulated industries like finance and healthcare require adherence to specific guidelines.

What is two-way SMS support like in Greenland?

Two-way SMS is not supported in Greenland for Application-to-Person (A2P) messaging. This limits businesses' ability to utilize interactive SMS campaigns or automated response systems.

Is number portability available in Greenland for SMS?

No, number portability is not available in Greenland. Mobile numbers remain tied to the original network operator, so this should be considered when managing contact lists.