Messaging
Bulk SMS & Messaging API
Send single OTPs, transactional SMS, and mass marketing campaigns with instant delivery callbacks (DLR) and automatic multi-telco failover.
Architecture & Integration Guidelines:
- Units: Each SMS unit is 160 characters. Messages longer than 160 chars are split and billed per unit.
- DLR Webhooks: Configure your webhook URL to receive real-time delivery status updates (sms.delivery_status events).
- Sender IDs: Custom alphanumeric Sender IDs must be pre-registered and approved before use.
POST
/api/v1/sms/sendSend Single / Bulk SMS
Unified SMS endpoint for direct single-recipient OTPs, multi-recipient batches, or scheduled campaigns.
Request Headers
Header
Value
Authorization
Bearer cbi_live_xxxxxxxxxxxxxxxxxxxxxxxx
Content-Type
application/json
X-Channel
api
Request Body
{
"phones": [
"+2348012345678",
"+2348098765432"
],
"message": "Your OTP code is 492019. Valid for 5 minutes.",
"sender_id": "CBISUITE",
"campaign_name": "Login Verification OTP"
}Code Execution Playground
Request Snippet (CURL)
curl -X POST "https://backend.cbivas.com/api/v1/sms/send" \
-H "Authorization: Bearer cbi_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"phones":["+2348012345678"],"message":"Your OTP code is 492019.","sender_id":"CBISUITE"}'Success Response (200 OK)
{
"type": "direct",
"detail": "SMS queued for delivery to 2 recipient(s)",
"data": {
"id": "sms_camp_781239",
"name": "Login Verification OTP",
"sender_id": "CBISUITE",
"recipient_count": 2,
"total_cost": "9.00",
"status": "pending",
"created_at": "2026-08-26T12:00:00Z"
}
}