Protect your applications with fast, secure and reliable OTP delivery. Perfect for Banking, FinTech, Healthcare, Government and Enterprise Systems.
Every authentication request passes through a secure workflow to ensure users receive one-time passwords quickly and safely.
The customer enters their phone number or username to begin authentication.
A unique one-time password is generated securely by your application.
Your application sends the OTP request securely through the BlueSMS REST API.
The message is routed through reliable telecom operator connections.
The recipient receives the OTP within seconds.
The customer enters the OTP and access is granted securely.
BlueSMS OTP is trusted by businesses that require secure authentication, fast message delivery and dependable infrastructure for mission-critical applications.
OTP messages are delivered within seconds through direct telecom connectivity, reducing login delays and improving user experience.
Secure HTTPS APIs, encrypted communication and one-time verification codes help protect user accounts against fraud and unauthorized access.
Messages are delivered through reliable operator connections for improved delivery rates and lower latency.
RESTful APIs, JSON responses, SDK examples and clear documentation make integration simple.
Monitor every authentication request using delivery reports and detailed message status updates.
Our technical team assists with integration, onboarding and production deployments for your business.
Complete API documentation for sending and verifying OTPs.
| Authorization | Bearer YOUR_API_KEY |
| Content-Type | application/json |
| Accept | application/json |
// Send OTP
$payload = [
"recipient" => "256700123456",
"sender" => "BlueSMS",
"expiry" => 300
];
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL =>
"https://api.bluesmsuganda.com/v1/otp/send",
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOUR_API_KEY",
"Content-Type: application/json"
]
]);
$response = curl_exec($curl);
curl --request POST \
https://api.bluesmsuganda.com/v1/otp/send \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"recipient":"256700123456",
"sender":"BlueSMS",
"expiry":300
}'
await axios.post(
'https://api.bluesmsuganda.com/v1/otp/send',
{
recipient:'256700123456',
sender:'BlueSMS',
expiry:300
},
{
headers:{
Authorization:'Bearer YOUR_API_KEY'
}
});
import requests
requests.post(
"https://api.bluesmsuganda.com/v1/otp/send",
headers={
"Authorization":"Bearer YOUR_API_KEY"
},
json={
"recipient":"256700123456",
"sender":"BlueSMS",
"expiry":300
})
HttpRequest request =
HttpRequest.newBuilder()
.uri(URI.create(
"https://api.bluesmsuganda.com/v1/otp/send"))
.POST(HttpRequest.BodyPublishers.ofString(json))
.build();
{
"status":"SUCCESS",
"reference":"OTP202600123",
"recipient":"256700123456",
"expires_in":300,
"message":"OTP sent successfully"
}
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
recipient
|
String | Required | — | Recipient phone number in international format. |
sender
|
String | Required | — | Approved Sender ID used to send the OTP. |
expiry
|
Integer | Optional | 300 | OTP expiry time in seconds. |
reference
|
String | Optional | Auto | Custom transaction reference supplied by your application. |
channel
|
String | Optional | sms | Delivery channel. Current supported value: sms. |
callback_url
|
URL | Optional | — | Endpoint that receives asynchronous delivery updates. |
The request was processed successfully and the OTP has been delivered for processing.
{
"status":"SUCCESS",
"reference":"OTP202600123",
"expires_in":300,
"message":"OTP sent successfully"
}
One or more required request fields are missing or invalid.
{
"status":"FAILED",
"error":"Recipient is required."
}
The supplied API key is invalid or expired.
{
"status":"FAILED",
"error":"Unauthorized"
}
The requested endpoint does not exist.
{
"status":"FAILED",
"error":"Endpoint not found"
}
You have exceeded your allowed request rate.
{
"status":"FAILED",
"error":"Rate limit exceeded"
}
An unexpected error occurred while processing the request.
{
"status":"FAILED",
"error":"Internal server error"
}
Whether you're building a startup, banking platform, hospital system or enterprise application, BlueSMS scales with your authentication needs.