sms compliance

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

Bosnia and Herzegovina SMS Guide

A technical guide to SMS in Bosnia & Herzegovina covering compliance (GDPR, opt-in/out: STOP, PRESTANI, OTKAZI), GSM-7/Unicode encoding (160/70 chars). Includes API integration (Twilio, Sinch, MessageBird), alphanumeric sender IDs, and error codes (400 response). Number portability is unavailable.

Bosnia and Herzegovina SMS Best Practices, Compliance, and Features

Bosnia and Herzegovina SMS Market Overview

Locale name:Bosnia and Herzegovina
ISO code:BA
RegionEurope
Mobile country code (MCC)218
Dialing Code+387

Market Conditions: Bosnia and Herzegovina has a mature mobile market with high SMS adoption rates. The country's telecommunications sector is served by three major mobile operators: BH Telecom, m:tel, and HT Eronet. While OTT messaging apps like WhatsApp and Viber are popular, SMS remains a crucial channel for business communications, particularly for authentication and notifications. The mobile market shows a relatively even split between Android and iOS devices, with Android having a slight edge in market share.


Key SMS Features and Capabilities in Bosnia and Herzegovina

Bosnia and Herzegovina supports standard SMS features including alphanumeric sender IDs and concatenated messages, though two-way SMS functionality is limited.

Two-way SMS Support

Two-way SMS is not supported in Bosnia and Herzegovina for A2P messaging.
Business senders should design their messaging strategies around one-way communications.

Concatenated Messages (Segmented SMS)

Support: Yes, concatenation is supported for most sender ID types.
Message length rules: Standard SMS length of 160 characters for GSM-7 encoding, 70 characters for Unicode.
Encoding considerations: Both GSM-7 and UCS-2 (Unicode) encodings are supported, with messages automatically split and rejoined based on the encoding used.

MMS Support

MMS messages are not directly supported in Bosnia and Herzegovina. Instead, MMS content is automatically converted to SMS with an embedded URL link where recipients can view the multimedia content.
Best Practice: When sending multimedia content, ensure the URL is shortened and clearly labeled for recipient trust.

Recipient Phone Number Compatibility

Number Portability

Number portability is not available in Bosnia and Herzegovina.
This simplifies message routing as numbers remain tied to their original carriers.

Sending SMS to Landlines

Sending SMS to landline numbers is not supported in Bosnia and Herzegovina.
Attempts to send messages to landline numbers will result in a 400 response error (code 21614) through the API, with no message delivery and no charging.

Compliance and Regulatory Guidelines for SMS in Bosnia and Herzegovina

SMS communications in Bosnia and Herzegovina are regulated by the Communications Regulatory Agency (RAK/CRA). Businesses must comply with both local telecommunications laws and the General Data Protection Regulation (GDPR) as Bosnia and Herzegovina aligns with EU standards.

Explicit Consent Requirements:

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

Best Practices for Consent Collection:

  • Document timestamp and source of consent
  • Maintain detailed records of opt-in methods
  • Clearly communicate message frequency and content type
  • Provide transparent privacy policy information

HELP/STOP and Other Commands

  • STOP, PRESTANI, and OTKAZI must be supported for opt-out
  • HELP or POMOC commands should provide support information
  • Commands must be processed in both Latin and Cyrillic scripts
  • Support for both Bosnian and Croatian language variations required

Do Not Call / Do Not Disturb Registries

Bosnia and Herzegovina does not maintain a centralized Do Not Call registry. However, businesses should:

  • Maintain their own suppression lists
  • Honor opt-out requests within 24 hours
  • Keep records of opted-out numbers for at least 2 years
  • Regularly clean contact lists to remove unsubscribed numbers

Time Zone Sensitivity

Bosnia and Herzegovina observes Central European Time (CET/CEST).

  • Recommended sending hours: 8:00 AM to 8:00 PM local time
  • Avoid sending during religious holidays and national observances
  • Emergency messages may be sent outside standard hours if necessary

Phone Numbers Options and SMS Sender Types for in Bosnia and Herzegovina

Alphanumeric Sender ID

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

Long Codes

Domestic vs. International:

  • Domestic long codes not supported
  • International long codes supported but with limitations

Sender ID preservation: No, international long code sender IDs may be changed to generic alphanumeric IDs
Provisioning time: Immediate for international long codes
Use cases: Recommended for transactional messaging and two-factor authentication

Short Codes

Support: Not currently available in Bosnia and Herzegovina
Provisioning time: N/A
Use cases: N/A


Restricted SMS Content, Industries, and Use Cases

Prohibited Content:

  • Gambling and betting services
  • Adult content or explicit material
  • Political campaign messages without proper authorization
  • Religious content without proper permissions
  • Cryptocurrency and high-risk financial products

Content Filtering

Carrier Filtering Rules:

  • URLs must be from approved domains
  • Messages containing certain keywords may be blocked
  • High-frequency messaging patterns are filtered

Best Practices to Avoid Filtering:

  • Avoid excessive punctuation and special characters
  • Use approved URL shortening services
  • Maintain consistent sending patterns
  • Include clear sender identification in messages

Best Practices for Sending SMS in Bosnia and Herzegovina

Messaging Strategy

  • Keep messages under 160 characters when possible
  • Include clear call-to-actions
  • Use personalization tokens thoughtfully
  • Maintain consistent branding across messages

Sending Frequency and Timing

  • Limit marketing messages to 2-4 per month per recipient
  • Respect religious observances (particularly Ramadan)
  • Avoid sending during major national holidays
  • Space out bulk campaigns to prevent network congestion

Localization

  • Support both Latin and Cyrillic scripts
  • Offer content in both Bosnian and Croatian
  • Consider regional dialectal differences
  • Use local date and time formats

Opt-Out Management

  • Process opt-outs in real-time
  • Maintain separate opt-out lists for different services
  • Confirm opt-out requests with a final message
  • Regular audit of opt-out compliance

Testing and Monitoring

  • Test across all three major carriers
  • Monitor delivery rates by carrier
  • Track opt-out rates and patterns
  • Regular testing of STOP command functionality

SMS API integrations for Bosnia and Herzegovina

Twilio

Twilio provides a robust SMS API for sending messages to Bosnia and Herzegovina. Integration requires your Account SID and Auth Token from the Twilio Console.

typescript
import * as Twilio from 'twilio';

// Initialize Twilio client with your credentials
const client = new Twilio(
  'YOUR_ACCOUNT_SID',
  'YOUR_AUTH_TOKEN'
);

// Function to send SMS to Bosnia and Herzegovina
async function sendSMSToBosnia(
  to: string,
  message: string,
  senderId: string
) {
  try {
    // Ensure phone number is in E.164 format for Bosnia
    const formattedNumber = to.startsWith('+387') 
      ? to 
      : `+387${to}`;

    const response = await client.messages.create({
      body: message,
      from: senderId, // Alphanumeric sender ID
      to: formattedNumber,
    });

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

Sinch

Sinch offers SMS capabilities with support for Bosnia and Herzegovina through their REST API.

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

// Initialize Sinch client
const sinchClient = new SinchClient({
  projectId: 'YOUR_PROJECT_ID',
  keyId: 'YOUR_KEY_ID',
  keySecret: 'YOUR_KEY_SECRET'
});

// Function to send SMS using Sinch
async function sendSMSWithSinch(
  to: string,
  message: string
) {
  try {
    const response = await sinchClient.sms.batches.send({
      sendSMSRequestBody: {
        to: [to], // Must include country code +387
        from: 'YourCompany', // Alphanumeric sender ID
        body: message,
        // Optional parameters for delivery report
        delivery_report: 'summary'
      }
    });

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

MessageBird

MessageBird provides SMS API access with specific support for Bosnia and Herzegovina requirements.

typescript
import * as messagebird from 'messagebird';

// Initialize MessageBird client
const messageBirdClient = messagebird('YOUR_ACCESS_KEY');

// Function to send SMS via MessageBird
function sendSMSWithMessageBird(
  to: string,
  message: string,
  originator: string
) {
  return new Promise((resolve, reject) => {
    messageBirdClient.messages.create({
      originator: originator, // Alphanumeric sender ID
      recipients: [to], // Include country code +387
      body: message,
      // Optional parameters
      datacoding: 'auto', // Automatic character encoding
    }, (err, response) => {
      if (err) {
        console.error('MessageBird Error:', err);
        reject(err);
      } else {
        console.log('Message sent successfully:', response);
        resolve(response);
      }
    });
  });
}

API Rate Limits and Throughput

  • Default rate limit: 100 messages per second
  • Batch processing recommended for volumes over 1000/hour
  • Implement exponential backoff for retry logic

Best Practices for High Volume:

  • Queue messages using Redis or similar system
  • Implement automatic rate limiting
  • Monitor throughput and adjust sending patterns
  • Use batch APIs when available

Error Handling and Reporting

Common Error Scenarios:

typescript
// Generic error handler for SMS APIs
function handleSMSError(error: any) {
  switch (error.code) {
    case 'invalid_number':
      console.error('Invalid phone number format');
      // Clean up number from database
      break;
    case 'network_error':
      console.error('Carrier network error');
      // Implement retry logic
      break;
    case 'rate_limit_exceeded':
      console.error('Rate limit hit');
      // Add to queue for later retry
      break;
    default:
      console.error('Unknown error:', error);
      // Log to monitoring system
  }
}

Recap and Additional Resources

Key Takeaways

  1. Compliance Priorities:

    • Obtain explicit consent
    • Support opt-out mechanisms
    • Maintain proper documentation
  2. Technical Considerations:

    • Use alphanumeric sender IDs
    • Implement proper error handling
    • Monitor delivery rates
  3. Best Practices:

    • Localize content appropriately
    • Respect sending hours
    • Maintain clean contact lists

Next Steps

  1. Review the Communications Regulatory Agency (RAK) guidelines
  2. Implement proper consent collection mechanisms
  3. Set up monitoring and reporting systems
  4. Test thoroughly across all carriers

Additional Resources

Industry Guidelines:

For technical support:

Frequently Asked Questions

How to send SMS messages in Bosnia and Herzegovina?

Use an SMS API like Twilio, Sinch, or MessageBird, ensuring the recipient's number includes the +387 country code and using an alphanumeric sender ID. Bosnia and Herzegovina supports alphanumeric sender IDs and concatenated messages, but two-way SMS and short codes are not available.

What is the process for sending bulk SMS in Bosnia?

For high-volume messaging, use batch processing and queueing systems like Redis. Implement rate limiting and exponential backoff for retries. Adhere to Bosnia and Herzegovina's regulations, including obtaining explicit consent and honoring opt-out requests.

Why does Bosnia and Herzegovina not support two-way SMS?

Two-way SMS for A2P (application-to-person) messaging is not supported due to technical limitations within the country's telecommunications infrastructure. Businesses should design messaging strategies around one-way communication.

What SMS compliance rules exist in Bosnia and Herzegovina?

Comply with the Communications Regulatory Agency (RAK) and GDPR rules. Obtain explicit consent for marketing messages, support opt-out commands (STOP, PRESTANI, OTKAZI), maintain records, and respect local time zone and cultural sensitivities. Avoid prohibited content like gambling and adult material.

What is the best way to handle SMS opt-outs in Bosnia?

Process opt-out requests (STOP, PRESTANI, OTKAZI) in real-time, regardless of script (Latin or Cyrillic) or language variant (Bosnian or Croatian). Maintain opt-out lists, confirm the opt-out with a final message, and keep records for at least two years. Regularly audit compliance.

How to send SMS to Bosnia and Herzegovina with Twilio?

Initialize the Twilio client with your credentials, format the recipient's number in E.164 format (+387), use an alphanumeric sender ID, and utilize the client's messages.create method. Ensure proper error handling for scenarios like invalid numbers and network issues.

How to use Sinch for SMS messaging in Bosnia?

Initialize the Sinch client with your project ID, key ID, and key secret. Use the sms.batches.send method, providing recipient numbers with the +387 country code and an alphanumeric sender ID. Implement error handling and consider delivery report options.

How can I integrate MessageBird API for SMS in Bosnia?

Initialize the MessageBird client with your access key. Use the messages.create method with an alphanumeric originator, recipient numbers including the +387 country code, and message body. Consider optional parameters like datacoding for character encoding.

What are the character limits for SMS in Bosnia and Herzegovina?

Standard SMS length is 160 characters for GSM-7 encoding and 70 characters for Unicode (UCS-2). Concatenated messages are supported, allowing longer messages to be automatically split and rejoined.

When should I send marketing SMS messages in Bosnia?

Adhere to recommended sending hours (8:00 AM to 8:00 PM local time). Avoid sending during religious holidays, national observances, or outside these hours unless it's an emergency. Limit marketing messages to 2-4 per month per recipient.

What are the restricted content categories for SMS in Bosnia?

Avoid sending gambling/betting promotions, adult content, unauthorized political campaigns, religious content without permissions, and high-risk financial products. Bosnian carriers have content filtering systems in place.

Can I send SMS messages to landlines in Bosnia and Herzegovina?

No, sending SMS to landline numbers is not supported. Attempts to do so will result in a 400 response error (code 21614) via the API, without message delivery or charges.

What are some best practices for SMS marketing in Bosnia?

Localize content in both Latin and Cyrillic scripts, considering Bosnian and Croatian language variations. Use clear calls-to-action, personalization tokens, and consistent branding. Maintain clean contact lists and manage opt-outs efficiently.

What is the MCC for Bosnia and Herzegovina?

The Mobile Country Code (MCC) for Bosnia and Herzegovina is 218. This code is used for network identification in mobile communications.