sms compliance

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

Hungary SMS Best Practices, Compliance, and Features

Comprehensive guide to SMS messaging in Hungary covering technical capabilities, GDPR compliance, sender ID options, and API integration

Hungary SMS Best Practices, Compliance, and Features

SMS Market Overview in Hungary

Locale nameHungary
ISO codeHU
RegionEurope
Mobile country code (MCC)216
Dialing code+36

Market Conditions: Hungary's mobile market has over 100% penetration according to NMHH data. Three major operators provide nationwide coverage: Vodafone Hungary, Yettel (formerly Telenor), and Magyar Telekom. SMS remains critical for business communications – especially two-factor authentication (2FA), one-time passwords (OTP), and transactional notifications – despite the popularity of OTT apps like WhatsApp and Facebook Messenger. Android devices hold approximately 60% market share.


SMS Features and Technical Capabilities

Hungary's telecommunications infrastructure supports two-way messaging, concatenated messages, and number portability across all major carriers. However, sender ID preservation varies by operator, with only Vodafone maintaining alphanumeric sender IDs consistently.

Two-way SMS Support

All major carriers in Hungary support two-way SMS with no restrictions beyond standard compliance requirements for commercial messaging.

Common Use Cases:

  • Customer support and service inquiries
  • Appointment confirmations and reminders with reply options (CONFIRM/CANCEL)
  • Survey responses and feedback collection
  • Interactive voting and polling
  • Verification workflows requiring user response

Implementation Example:

text
Outbound: "Your appointment is scheduled for 10 AM tomorrow. Reply CONFIRM or CANCEL."
Inbound: "CONFIRM"
Outbound: "Thank you! Your appointment is confirmed."

Concatenated Messages (Segmented SMS)

Support: Yes, though availability may vary by sender ID type. Message length rules: Standard SMS length limits apply – 160 characters for GSM-7 encoding, 70 characters for UCS-2 encoding.

EncodingCharacters per segmentSegment 1Segments 2+Max segments
GSM-77-bit160153255
UCS-2 (Unicode)16-bit7067255

Encoding considerations: Both GSM-7 and UCS-2 encodings are supported. Messages using special characters automatically use UCS-2 encoding, reducing the character limit per segment.

MMS Support

Carriers automatically convert MMS messages to SMS with an embedded URL link, ensuring device compatibility while preserving rich media access. Use short URLs and include clear context in the SMS portion.

Technical Specifications:

  • Maximum MMS size: typically 300–600 KB (carrier-dependent)
  • Supported formats: JPEG, PNG, GIF, MP4 (video), MP3 (audio)
  • Vodafone: up to 600 KB
  • Yettel (Telenor): up to 300 KB
  • Magyar Telekom: up to 500 KB
  • Fallback behavior: MMS-to-SMS conversion with content link
  • Recommended approach: host media externally, send shortened URL via SMS

Recipient Phone Number Compatibility

Number Portability

Users can keep their phone numbers when switching carriers. Number portability does not impact message delivery or routing.

Sending SMS to Landlines

Sending SMS to landline numbers is not supported. Attempts fail with error code 21614. These messages do not appear in logs and incur no charges.

SMS Compliance and GDPR Requirements in Hungary

Hungary follows GDPR requirements and enforces local regulations through the National Media and Infocommunications Authority (NMHH). All SMS marketing must comply with Act XLVIII of 2008 on Commercial Advertising Activities and the Hungarian Data Protection Act.

Penalties for Non-Compliance:

  • GDPR violations: up to €20 million or 4% of annual global turnover (whichever is higher) per GDPR Article 83
  • Hungarian advertising law violations: up to HUF 50 million (~€130,000) per offense
  • NMHH can impose additional sanctions including service suspension
  • Data Protection Authority (NAIH) can levy administrative fines for data handling violations
  • Repeated violations may result in criminal prosecution under Hungarian law

Explicit Consent Requirements:

  • Obtain written or electronic consent before sending marketing messages
  • Ensure consent is freely given, specific, and informed
  • Keep detailed records of when and how you obtained consent
  • Include clear terms of service and privacy policy references
  • Use double opt-in for marketing campaigns

Example Consent Language:

text
"I agree to receive promotional SMS messages from [Company Name].
I understand I can unsubscribe at any time by replying STOP.
Message frequency varies. Standard rates may apply."

HELP/STOP and Other Commands

  • Must support both "STOP" and "LEIRATKOZAS" (unsubscribe in Hungarian)
  • HELP/SEGITSEG commands must provide support information in Hungarian
  • All automated responses should be in both Hungarian and English
  • Commands must be case-insensitive and free of charge for users

Example Automated Responses:

text
STOP response (bilingual):
"You have been unsubscribed. No more messages will be sent. /
Leiratkozás megtörtént. Nem küldünk több üzenetet."

HELP response (bilingual):
"For support, contact us at support@company.com or +36 1 234 5678.
Reply STOP to unsubscribe. /
Segítségért: support@company.com vagy +36 1 234 5678.
Leiratkozás: válaszoljon STOP."

Do Not Call / Do Not Disturb Registries

Hungary maintains a national Do Not Call registry ("Robinson List") managed by the NMHH.

  • Check numbers against this registry before sending marketing messages
  • Maintain internal suppression lists of opted-out numbers
  • Process opt-out requests within 24 hours
  • Regularly update and clean contact databases

Accessing the Robinson List:

  • Registry access: Apply through NMHH official portal
  • Registration cost: approximately HUF 50,000–100,000 annually for commercial access
  • API or bulk file download available for registered businesses
  • Checking individual numbers: free through NMHH consumer portal
  • Update frequency: check registry at least monthly or before each campaign
  • Retention: maintain proof of registry checks for at least 2 years

Time Zone Sensitivity

Hungary observes Central European Time (CET/CEST):

  • Restrict marketing messages to 8:00 AM – 8:00 PM local time
  • Avoid sending during national holidays
  • Emergency or service-related messages can be sent 24/7 if necessary

Hungarian National Holidays to Avoid:

  • January 1: New Year's Day
  • March 15: National Day (1848 Revolution)
  • Easter Monday (variable date)
  • May 1: Labour Day
  • Whit Monday (variable date, 50 days after Easter)
  • August 20: St. Stephen's Day (Constitution Day)
  • October 23: National Day (1956 Revolution)
  • November 1: All Saints' Day
  • December 25–26: Christmas

SMS Sender ID Options and Phone Number Types

Alphanumeric Sender ID

Operator network capability: Partial support Registration requirements: Not required Sender ID preservation: Only Vodafone preserves sender IDs; Yettel (Telenor) and Magyar Telekom overwrite with local long codes

Character Limits and Formatting:

  • Maximum length: 11 characters
  • Allowed characters: A–Z, a–z, 0–9, space (no special symbols)
  • Must start with a letter (not a number)
  • Case-insensitive (displayed as sent by Vodafone, uppercase by others)
  • No hyphens, underscores, or punctuation
  • Examples: "CompanyName", "YourBrand", "ACME Corp"

Fallback Behavior (Yettel/Telekom):

  • Carriers replace with a Hungarian long code (+36 format)
  • Replacement number enables reply-to functionality
  • Some devices show original sender ID in message body

Long Codes

Domestic vs. International: Both supported Sender ID preservation: Yes for domestic, No for international Provisioning time: Immediate to 24 hours Use cases: Ideal for two-way communication, customer support, and transactional messages

Pricing and Cost Considerations:

  • Domestic long codes: typically €5–15/month rental + per-message fees
  • International long codes: variable, often €20–50/month rental
  • Per-message cost: €0.03–0.08 depending on volume and provider
  • Two-way SMS: may incur additional inbound message charges (€0.01–0.03)
  • Volume discounts available for high-throughput use cases

Short Codes

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


Restricted SMS Content, Industries, and Use Cases

Restricted Industries and Content:

  • Gambling and betting services (unless licensed)
  • Adult content or services
  • Unauthorized financial services
  • Prescription medications
  • Political messaging (requires special authorization)

Licensing and Authorization Process:

  • Gambling/betting: Must hold valid license from National Tax and Customs Administration (NAV)
  • Financial services: Requires authorization from Hungarian National Bank (MNB)
  • Political messaging: Must register with National Election Office during campaign periods
  • Prescription medications: Requires pharmaceutical advertising permit from National Institute of Pharmacy and Nutrition (OGYÉI)
  • Processing time: 30–90 days depending on industry
  • Annual compliance audits may be required

Penalties for Restricted Content:

  • First offense: HUF 500,000–5 million fine
  • Repeated violations: Service suspension and criminal charges
  • NMHH can impose immediate blocking of sender IDs
  • Reputational damage and potential lawsuits from recipients

Content Filtering

Known Carrier Filters:

  • URLs from suspicious domains
  • Keywords associated with spam or scams
  • High-frequency sending patterns
  • Messages containing certain special characters

Common Filtered Keywords (avoid or use carefully):

  • "ingyen" (free), "nyerj" (win), "garancia" (guarantee) – in marketing context
  • "klikkelj itt" (click here) – especially with shortened URLs
  • Excessive use of "URGENT", "ACT NOW" type language
  • Financial terms combined with URLs: "hitel" (loan), "befektetés" (investment)
  • Multiple currency symbols or excessive punctuation (!!!, €€€)

Best Practices to Avoid Filtering:

  • Use registered URL shorteners
  • Avoid excessive punctuation
  • Keep content clear and professional
  • Maintain consistent sending patterns

Best Practices for SMS Campaigns in Hungary

Messaging Strategy

  • Keep messages under 160 characters when possible
  • Include clear calls-to-action
  • Use personalization tokens thoughtfully
  • Maintain consistent branding

Effective Messaging Examples:

text
✓ Good (clear, actionable, personalized):
"Hi [Name], your order #12345 shipped today. Track: [URL] Questions? Reply HELP."

✗ Poor (vague, no action, impersonal):
"Your package update is available. Check website for details."

✓ Good (promotional with clear opt-out):
"[BrandName]: 20% off this weekend! Use code SAVE20. Shop: [URL] Stop: reply STOP"

✗ Poor (misleading, no opt-out):
"WINNER!!! You've been selected! Click now!!!"

Sending Frequency and Timing

  • Limit to 2–4 messages per month per recipient
  • Respect Hungarian holidays and observances
  • Avoid weekends unless explicitly approved by recipient
  • Space out bulk campaigns to prevent network congestion

Localization

  • Primary language should be Hungarian
  • Consider bilingual messages for international businesses
  • Use proper character encoding for Hungarian special characters
  • Respect cultural sensitivities and local customs

Hungarian Special Characters and Encoding:

  • Hungarian alphabet includes: á, é, í, ó, ö, ő, ú, ü, ű
  • GSM-7 encoding: Does NOT support ő and ű (forces UCS-2 encoding)
  • UCS-2 (Unicode) encoding: Required for full Hungarian character set
  • Character count impact: Using ő or ű reduces segment length from 160 to 70 characters
  • Best practice: Test messages with Hungarian characters to verify encoding
  • Example words requiring UCS-2: "köszönöm" (thank you), "időpont" (appointment), "rendelés" (order)

Opt-Out Management

  • Process opt-outs in real-time
  • Maintain centralized opt-out database
  • Include clear opt-out instructions in every message
  • Confirm opt-out status via confirmation message

Testing and Monitoring

  • Test across all major Hungarian carriers
  • Monitor delivery rates by carrier
  • Track engagement metrics and opt-out rates
  • Test opt-out functionality regularly
  • Monitor for carrier filtering patterns

Recommended Monitoring Tools:

  • SMS gateway provider dashboards (Twilio Console, Sinch Portal, MessageBird Dashboard)
  • Third-party monitoring: Datadog, New Relic, Grafana for delivery metrics
  • Carrier-specific tools: Vodafone Business Portal, Telekom Business Center
  • Log aggregation: ELK Stack (Elasticsearch, Logstash, Kibana) or Splunk
  • Alert systems: PagerDuty, Opsgenie for delivery failures

SMS API Integration: Twilio, Sinch, MessageBird & Plivo

Twilio

Twilio provides a robust SMS API with comprehensive support for Hungarian numbers. Authentication uses account SID and auth token credentials.

typescript
import { Twilio } from 'twilio';

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

async function sendSMSToHungary(to: string, message: string) {
  try {
    // Ensure number is in E.164 format for Hungary (+36...)
    const formattedNumber = to.startsWith('+36') ? to : `+36${to}`;

    const response = await client.messages.create({
      body: message,
      to: formattedNumber,
      from: process.env.TWILIO_PHONE_NUMBER, // Your Twilio number
      // Optional parameters for delivery tracking
      statusCallback: 'https://your-webhook.com/status'
    });

    console.log(`Message sent successfully! SID: ${response.sid}`);
    return response;
  } catch (error) {
    console.error('Error sending message:', error);

    // Handle specific error codes
    if (error.code === 21211) {
      console.error('Invalid phone number format');
    } else if (error.code === 21408) {
      console.error('Permission to send not available for this region');
    } else if (error.code === 21610) {
      console.error('Message rejected - likely unsubscribed or blocked');
    }

    throw error;
  }
}

Sinch

Sinch offers direct carrier connections in Hungary with support for both transactional and marketing messages.

typescript
import axios from 'axios';

class SinchSMSClient {
  private readonly apiToken: string;
  private readonly serviceId: string;
  private readonly baseUrl: string = 'https://sms.api.sinch.com/xms/v1';

  constructor(apiToken: string, serviceId: string) {
    this.apiToken = apiToken;
    this.serviceId = serviceId;
  }

  async sendSMS(to: string, message: string) {
    try {
      const response = await axios.post(
        `${this.baseUrl}/${this.serviceId}/batches`,
        {
          from: 'YourCompany', // Alphanumeric sender ID
          to: [to],
          body: message,
          delivery_report: 'summary'
        },
        {
          headers: {
            'Authorization': `Bearer ${this.apiToken}`,
            'Content-Type': 'application/json'
          }
        }
      );

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

MessageBird

MessageBird provides reliable SMS delivery in Hungary with support for Unicode characters.

typescript
import { MessageBird } from 'messagebird';

class MessageBirdClient {
  private client: MessageBird;

  constructor(apiKey: string) {
    this.client = new MessageBird(apiKey);
  }

  sendSMS(to: string, message: string): Promise<any> {
    return new Promise((resolve, reject) => {
      this.client.messages.create({
        originator: 'YourBrand',
        recipients: [to],
        body: message,
        type: 'sms',
        encoding: 'unicode' // Supports Hungarian special characters
      }, (err, response) => {
        if (err) {
          reject(err);
        } else {
          resolve(response);
        }
      });
    });
  }
}

Plivo

Plivo offers high-throughput SMS capabilities for the Hungarian market.

typescript
import plivo from 'plivo';

class PlivoSMSClient {
  private client: plivo.Client;

  constructor(authId: string, authToken: string) {
    this.client = new plivo.Client(authId, authToken);
  }

  async sendSMS(to: string, message: string) {
    try {
      const response = await this.client.messages.create({
        src: 'YourNumber', // Your Plivo number
        dst: to,
        text: message,
        // Optional parameters
        url: 'https://your-webhook.com/status',
        method: 'POST'
      });

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

API Provider Comparison for Hungary

ProviderAlphanumeric ID SupportTwo-way SMSDelivery RateAvg. LatencyPricing (per SMS)Hungary-Specific Features
TwilioPartial (Vodafone only)Yes98–99%2–5 seconds€0.045–0.075Strong delivery reporting, E.164 validation
SinchPartial (Vodafone only)Yes97–99%3–6 seconds€0.040–0.070Direct carrier connections, batch API
MessageBirdPartial (Vodafone only)Yes97–98%3–7 seconds€0.042–0.068Unicode optimization, conversation API
PlivoPartial (Vodafone only)Yes96–98%4–8 seconds€0.038–0.065High throughput, powerpack features

Selection Criteria:

  • High-volume transactional: Sinch or Plivo (best throughput)
  • Two-way conversations: Twilio or MessageBird (robust webhook systems)
  • Hungarian character support: MessageBird or Twilio (best Unicode handling)
  • Budget-conscious: Plivo (typically lowest cost)
  • Reliability priority: Twilio or Sinch (highest delivery rates)

API Rate Limits and Throughput

  • 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 (max 500 per batch)
  • Monitor delivery rates and adjust sending speed accordingly

Example: Queue Implementation with Redis:

typescript
import Redis from 'ioredis';
import { Twilio } from 'twilio';

const redis = new Redis();
const twilioClient = new Twilio(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN);

async function queueSMS(to: string, message: string) {
  await redis.lpush('sms_queue', JSON.stringify({ to, message, timestamp: Date.now() }));
}

async function processSMSQueue() {
  while (true) {
    const item = await redis.rpop('sms_queue');
    if (!item) {
      await new Promise(resolve => setTimeout(resolve, 100));
      continue;
    }

    const { to, message } = JSON.parse(item);
    try {
      await twilioClient.messages.create({ to, from: process.env.TWILIO_PHONE_NUMBER, body: message });
    } catch (error) {
      console.error('Failed to send SMS:', error);
      // Re-queue with exponential backoff
      await redis.lpush('sms_retry_queue', item);
    }

    // Rate limit: 100 msgs/sec = 10ms delay
    await new Promise(resolve => setTimeout(resolve, 10));
  }
}

Error Handling and Reporting

  • Implement comprehensive logging with Winston or similar
  • Track delivery receipts via webhooks
  • Monitor common error codes (invalid numbers, network issues)
  • Set up alerts for unusual error rates
  • Store message metadata for troubleshooting

Common SMS Error Codes for Hungary

Error CodeProviderDescriptionResolutionBillable
21211TwilioInvalid 'To' phone numberValidate E.164 format (+36...)No
21408TwilioPermission to send not enabled for regionEnable Hungary in account geo-permissionsNo
21610TwilioUnsubscribed recipientRemove from list, honor opt-outNo
21614TwilioLandline or unreachable carrierVerify mobile number, check number typeNo
30003TwilioUnreachable destinationNumber inactive or out of serviceYes
30005TwilioUnknown destinationInvalid number or blockedNo
30007TwilioMessage filtered (spam)Review content, avoid spam triggersYes
400SinchInvalid request parametersCheck API payload formatNo
401SinchAuthentication failedVerify API tokenNo
403SinchForbidden (quota exceeded)Upgrade plan or wait for resetNo
9MessageBirdMissing or invalid parametersReview required fieldsNo
21MessageBirdNumber not allowedCheck country permissionsNo
49MessageBirdInsufficient balanceAdd credits to accountNo
105PlivoDestination out of serviceNumber inactive or portedYes
107PlivoGateway errorRetry with exponential backoffNo

Best Practices for Error Handling:

  • Implement retry logic with exponential backoff (wait 1s, 2s, 4s, 8s…)
  • Log all errors with full context (timestamp, recipient, message ID, error details)
  • Set up monitoring alerts for error rate > 5% or specific critical errors
  • Maintain a dead-letter queue for persistently failing messages
  • Regularly review error logs to identify patterns or carrier-specific issues

Recap and Additional Resources

Key Takeaways:

  • Always format numbers in E.164 format (+36…)
  • Implement proper error handling and monitoring
  • Follow Hungarian time zone restrictions
  • Maintain proper opt-out handling
  • Use Unicode encoding for special characters

Next Steps:

  1. Review NMHH regulations at www.nmhh.hu
  2. Consult local legal counsel for compliance
  3. Set up test accounts with your preferred SMS providers
  4. Implement proper consent management
  5. Establish monitoring and reporting systems

Common Issues and Solutions:

IssueSymptomCauseSolution
Alphanumeric ID replacedSender shows as +36 numberYettel/Telekom overwrite policyUse domestic long code or accept replacement
Character encoding errorsGarbled Hungarian charactersWrong encoding (GSM-7 vs UCS-2)Force UCS-2 encoding for ő, ű characters
High delivery failuresMessages not reaching recipientsNumbers on Robinson ListCheck DNC registry before sending
Spam filteringLow delivery rates, no errorContent triggers carrier filtersAvoid spam keywords, use registered URLs
Rate limit errors429 HTTP errorsExceeding provider limitsImplement queue system with rate throttling
Landline rejection21614 error codeAttempting SMS to landlineValidate mobile numbers before sending

Additional Resources:

  • Hungarian Data Protection Authority: www.naih.hu
  • EU GDPR Guidelines: gdpr.eu
  • Telecommunications Act: net.jogtar.hu
  • NMHH Guidelines for Commercial Communications: www.nmhh.hu (English version available on request)
  • Hungarian Consumer Protection Authority: www.nfh.hu
  • Act XLVIII of 2008 on Commercial Advertising: net.jogtar.hu

Frequently Asked Questions

How to send SMS messages in Hungary?

Use an SMS API provider like Twilio, Sinch, MessageBird, or Plivo. Ensure phone numbers are in E.164 format (+36...) and comply with Hungarian regulations. Remember to manage opt-outs and monitor delivery rates.

What is the Robinson list in Hungary?

The Robinson List is Hungary's national Do Not Call registry, managed by the NMHH. Businesses must check against this list before sending marketing messages to ensure compliance and avoid penalties.

Why does Hungary convert MMS to SMS?

MMS messages are automatically converted to SMS with a URL link to maintain broad compatibility across all devices, some of which may not fully support MMS.

When should I send marketing SMS in Hungary?

Send messages between 8:00 AM and 8:00 PM local time, avoiding national holidays and weekends unless the recipient explicitly approves. Respect local customs and time zone sensitivities.

Can I use alphanumeric sender IDs in Hungary?

Alphanumeric sender IDs are partially supported. Only Vodafone preserves them; Telenor and Telekom overwrite with a local long code.

What are the SMS compliance rules in Hungary?

Hungary follows GDPR and local regulations overseen by the NMHH. Obtain explicit consent before sending marketing SMS, support STOP/LEIRATKOZAS commands, and respect the Robinson List (Do Not Call registry).

How to handle SMS opt-outs in Hungary?

Process opt-out requests (STOP/LEIRATKOZAS) within 24 hours, free of charge. Maintain a centralized opt-out database and confirm the opt-out status to the user via SMS.

What are the character limits for SMS in Hungary?

Standard limits are 160 characters for GSM-7 encoding and 70 for UCS-2, which is used for special characters. Longer messages are concatenated (segmented).

What SMS API integrations are available for Hungary?

Popular SMS API providers supporting Hungary include Twilio, Sinch, MessageBird, and Plivo. Each offers different features, pricing, and throughput capabilities.

How long does it take to provision a long code in Hungary?

Long code provisioning in Hungary can take anywhere from immediate up to 24 hours, depending on the provider and specific requirements.

What are the restricted SMS content types in Hungary?

Restricted content includes gambling, adult content, unauthorized financial services, prescription medications, and political messaging without proper authorization.

How to avoid SMS filtering in Hungary?

Use registered URL shorteners, avoid excessive punctuation, keep content clear and professional, maintain consistent sending patterns, and ensure compliance with regulations.

What is the best messaging strategy for SMS in Hungary?

Keep messages under 160 characters, include clear calls-to-action, personalize thoughtfully, maintain consistent branding, and localize content using Hungarian.

What are the throughput limits for SMS APIs in Hungary?

API throughput varies by provider (e.g., Twilio 100/second, Sinch 30/second). Use queue systems and exponential backoff strategies to manage high-volume sending.

How to format phone numbers for sending SMS to Hungary?

Always use the E.164 format, which begins with +36 followed by the Hungarian phone number. This international format ensures proper message delivery.