Bosnia and Herzegovina SMS Best Practices, Compliance, and Features
Bosnia and Herzegovina SMS Market Overview
Locale name: | Bosnia and Herzegovina |
---|---|
ISO code: | BA |
Region | Europe |
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.
Consent and Opt-In
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.
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.
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.
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:
// 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
-
Compliance Priorities:
- Obtain explicit consent
- Support opt-out mechanisms
- Maintain proper documentation
-
Technical Considerations:
- Use alphanumeric sender IDs
- Implement proper error handling
- Monitor delivery rates
-
Best Practices:
- Localize content appropriately
- Respect sending hours
- Maintain clean contact lists
Next Steps
- Review the Communications Regulatory Agency (RAK) guidelines
- Implement proper consent collection mechanisms
- Set up monitoring and reporting systems
- Test thoroughly across all carriers
Additional Resources
- Communications Regulatory Agency (RAK)
- Bosnia and Herzegovina Telecommunications Law
- GDPR Compliance Guidelines
Industry Guidelines:
For technical support:
- Twilio Support: support.twilio.com
- Sinch Documentation: developers.sinch.com
- MessageBird Guides: developers.messagebird.com