G K G Guru

Scala SMS API Integration

Complete Scala code examples for integrating with the SecureSMSC SMS API using sttp.

Fast Integration

Get started in minutes with simple REST API calls

Global Reach

Send SMS to 200+ countries worldwide

Secure

Enterprise-grade SSL/TLS encryption

Reliable

99.9% uptime with delivery tracking

Quick Start: Get your API key from the dashboard to begin integration.

Installation

Install the required dependencies:

Terminal
libraryDependencies += "com.softwaremill.sttp.client3" %% "core" % "3.9.0"

Send Single SMS

Use the sttp library to send a single SMS message:

Scala
// Scala SMS API Integration using sttp
// Configure your API key
api_key = "YOUR_API_KEY"
api_url = "https://whitelabled.securesmsc.com/api/v2/sms/send"

// Set request headers
headers = {
    "Authorization": "Bearer " + api_key,
    "Content-Type": "application/json"
}

// SMS data payload
data = {
    "sender_id": "SENDER",
    "recipient": "1234567890",
    "message": "Hello from Scala!",
    "route": "transactional"
}

// Send POST request
response = sttp.post(api_url, headers, data)

if response.status == 200:
    print("SMS sent successfully!")
    print("Message ID:", response.data.message_id)
else:
    print("Error:", response.error)

Send Bulk SMS

Scala
// Send to multiple recipients
data = {
    "sender_id": "SENDER",
    "recipients": ["1234567890", "0987654321", "1122334455"],
    "message": "Bulk message from Scala",
    "route": "promotional"
}

response = sttp.post(api_url + "-bulk", headers, data)
print("Bulk SMS Status:", response.status)

Check SMS Status

Scala
// Check delivery status
message_id = "your_message_id"
status_url = "https://whitelabled.securesmsc.com/api/v2/sms/status/" + message_id

response = sttp.get(status_url, headers)
print("Status:", response.data.status)

Check Balance

Scala
// Get account balance
balance_url = "https://whitelabled.securesmsc.com/api/v2/balance"
response = sttp.get(balance_url, headers)
print("Balance:", response.data.balance, "credits")

Error Handling

Scala
// Scala SMS Client with retry logic
class SmsClient:
    api_key = "YOUR_API_KEY"
    base_url = "https://whitelabled.securesmsc.com/api/v2"

    function send(recipient, message, retries = 3):
        for attempt in range(retries):
            try:
                response = sttp.post(base_url + "/sms/send", {
                    "sender_id": "SENDER",
                    "recipient": recipient,
                    "message": message,
                    "route": "transactional"
                }, headers)
                
                if response.status == 200:
                    return response.data
                    
                // Wait before retry (exponential backoff)
                sleep(2 ^ attempt)
            catch error:
                if attempt == retries - 1:
                    throw error
                sleep(2 ^ attempt)

// Usage
client = new SmsClient()
result = client.send("1234567890", "Hello from Scala!")
print(result)