Complete integration specifications, code snippets, and endpoints for SMS & Voice gateway services.
Dispatch single or bulk SMS messages to one or multiple recipients in real time using your approved Sender ID.
Content-Type: application/json Authorization: Bearer YOUR_API_KEY Accept: application/json
| Field | Type | Status | Description |
|---|---|---|---|
| recipient | Array<string> | Required | Array of recipient phone numbers in international format without plus sign (e.g. ["233241234567", "233501234567"]). |
| sender | string | Required | Your approved Sender ID registered to your account (max 11 characters alphanumeric). |
| message | string | Required | SMS text content. 1 unit = 160 characters for standard GSM encoding. |
{
"recipient": ["233241234567", "233501234567"],
"sender": "VeloQuip",
"message": "Your verification code is 481920. Valid for 10 minutes."
}
{
"status": "success",
"code": "2000",
"message": "messages sent successfully",
"data": {
"campaign_id": "A59CCB70-662D-45EF",
"total_sent": 2,
"credit_used": 2,
"credit_left": 1483
}
}
{
"status": "error",
"code": "4001",
"message": "Insufficient SMS balance"
}
Retrieve your real-time wallet unit balances, cash balance, and aggregate platform dispatch statistics. The sms_balance field returns your total usable SMS credits (combining active expiry credits and non-expiring credits).
{
"status": "success",
"code": "2000",
"data": {
"sms_balance": 1483,
"cash_balance": 50.00,
"total_sent": 517,
"expiry_balance": 1000,
"non_expiry_balance": 483
}
}
Register a new Sender ID directly via API. The request is submitted to the telecommunications network gateway and National Communications Authority (NCA) compliance verification. If pre-approved or already verified upstream, it is activated immediately.
Note: You can also use POST https://veloquipsms.top/api/sender_ids.php interchangeably.
Content-Type: application/json Authorization: Bearer YOUR_API_KEY Accept: application/json
| Field | Type | Status | Description |
|---|---|---|---|
| sender_name | string | Required | Desired Sender ID. Between 3 and 11 characters (letters, numbers, spaces, dots, hyphens). Must contain letters per NCA regulations (cannot be purely numeric). |
| purpose | string | Required | Intended business use case or message description (e.g., "Sending OTPs, transaction alerts, and order confirmations to our mobile app customers"). |
{
"sender_name": "MyBrand",
"purpose": "Dispatching two-factor authentication codes and delivery status updates."
}
{
"status": "success",
"code": "2000",
"message": "Sender ID 'MyBrand' submitted to the SMS Gateway API! Awaiting network verification.",
"data": {
"id": 42,
"sender_name": "MyBrand",
"status": "pending",
"is_approved": false,
"purpose": "Dispatching two-factor authentication codes and delivery status updates."
}
}
{
"status": "error",
"code": "4022",
"message": "Sender ID cannot consist purely of numbers. It must include letters according to NCA regulations."
}
Retrieve a verified list of all registered and approved Sender IDs belonging to your account. Perfect for dynamically populating sender dropdowns in plugins, webhooks, or third-party CRM systems.
You can authenticate using either the Authorization Bearer header (recommended) or via a query parameter:
| Parameter | Type | Status | Description |
|---|---|---|---|
| key | string | Optional | Your API key if not supplied via Authorization header. |
| status | string | Optional | Filter by status. Defaults to approved. Pass all to view all requests. |
{
"status": "success",
"code": "2000",
"message": "Sender IDs retrieved successfully.",
"count": 2,
"approved_senders": [
"VeloquipSMS",
"Joo Phones"
],
"data": [
{
"id": 27,
"sender_name": "VeloquipSMS",
"status": "approved",
"created_at": "2026-05-11 04:01:45"
},
{
"id": 1,
"sender_name": "Joo Phones",
"status": "approved",
"created_at": "2026-05-08 13:14:52"
}
]
}
Check the telecommunication network registration and approval state of a single Sender ID name.
{
"sender_name": "VeloquipSMS"
}
{
"status": "success",
"code": "2000",
"data": {
"id": 27,
"sender_name": "VeloquipSMS",
"status": "Approved",
"is_approved": true
}
}
Broadcast pre-recorded audio voice phone calls to customer mobile numbers. Upload a new audio recording (MP3/WAV) or reuse an existing voice_id.
| Field | Type | Status | Description |
|---|---|---|---|
| campaign | string | Required | Title for your bulk voice campaign. |
| recipient | array / string | Required | Array of recipient phone numbers (e.g. ["0241234567", "0201234567"]). |
| file | file | Conditional | Audio file (.mp3, .wav, .m4a). Do NOT pass if reusing an existing voice_id. |
| voice_id | string | Conditional | Voice ID from a prior campaign. Do NOT pass if uploading a new file. |
| is_schedule | boolean | Optional | Set true to schedule for future broadcast. Defaults to false. |
<?php
$url = "https://veloquipsms.top/api/send_voice.php?key=YOUR_API_KEY";
$audioFile = curl_file_create('audio/alert.mp3', 'audio/mpeg', 'alert.mp3');
$payload = [
'campaign' => 'Promotional Alert',
'recipient' => ['0241234567', '0201234567'],
'file' => $audioFile
];
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $url,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Accept: application/json"]
]);
$response = curl_exec($ch);
curl_close($ch);
print_r(json_decode($response, true));
?>
Create a free account or log in to generate secure API keys, manage sender IDs, and test live dispatches.