Introduction Last updated: 2021-09-23
Effortlessly integrate your system with our Bulk SMS services using our user-friendly APIs. Our robust SMS gateway ensures fast and efficient message delivery to multiple recipients, allowing you to reach your audience quickly and effectively.
API PARAMS:
apikey : Valid API KEY. Get this by clicking the button above "GET API KEY & PARTNER ID" in your account.
partnerID : Valid Partner ID. Get this by clicking the button above "GET API KEY & PARTNER ID" in your account.
message : URL Encoded Text Message with valid GSM7 Characters.
shortcode : Valid Sender ID / Shortcode.
mobile : Valid Mobile Number.
GET METHOD:
API Endpoint url :
            
                https://isms.celcomafrica.com/api/services/sendsms/?
            
        
Sample GET Request (PHP)
        
    $partnerID = "useraccountpartnerId";
    $apikey = "useraccountapikey";
    $shortcode = "INFOTEXT";
    $mobile = "254712345678"; // Bulk messages can be comma separated
    $message = "This is a test message + = # special characters @ _ -";
    $finalURL = "https://isms.celcomafrica.com/api/services/sendsms/?apikey=" . urlencode($apikey) . "&partnerID=" .
    urlencode($partnerID) . "&message=" . urlencode($message) . "&shortcode=$shortcode&mobile=$mobile";
    $ch = curl_init();
    \curl_setopt($ch, CURLOPT_URL, $finalURL);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    $response = curl_exec($ch);
    curl_close($ch);
    echo "Response: $response";
    
    
    POST METHOD
API Endpoint url :
            
                https://isms.celcomafrica.com/api/services/sendsms/
            
        
Sample Code for POST request in PHP
    
    $url = 'https://isms.celcomafrica.com/api/services/sendsms/';
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type:application/json')); //setting custom header
    $curl_post_data = array(
    //Fill in the request parameters with valid values
    'partnerID' => '00',
    'apikey' => 'xxxxxxxxxxx',
    'mobile' => '0712345678',
    'message' => 'This is a test message',
    'shortcode' => 'INFOTEXT',
    'pass_type' => 'plain', //bm5 {base64 encode} or plain
    );
    $data_string = json_encode($curl_post_data);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
    $curl_response = curl_exec($curl);
    print_r($curl_response);
    
    
    Sample Response
For a successfully sent message you get:
    
    {
        "responses":[
            {
                "respose-code":200,
                "response-description":"Success",
                "mobile":254713482448,
                "messageid":8290842,
                "networkid":"1"
            }
        ]
    }
    
    
        where 8290842 is the message id. This is the message id to use when querying delivery reports.
Read API Response.
Below is a sample code written in PHP.
    
    $response ='{
        "responses":[
            {
                "respose-code":200,
                "response-description":"Success",
                "mobile":254713482448,
                "messageid":8290842,
                "networkid":"1"
            },
            {"respose-code":200,
                "response-description":"Success",
                "mobile":254713482448,
                "messageid":8290843,
                "networkid":"1"
            }
        ]
    }';
    $count = 0;
    if ($response != null) {
        $responseData = json_decode($response, TRUE);
        foreach ($responseData as $responseItem) {
            foreach ($responseItem as $smsdetails) {
            $messageID = $responseData['responses'][$count]['messageid'];
            $count++;
        }
      }
    } else {
         echo "Null Response";
    }
    
    
    Scheduling Messages.
For messages to be sent at a future time, you will need to pass an optional parameter 'timeToSend' with a valid date string that resolves to a Unix timestamp or the unix timestamp itself.
    
    {
        "apikey":"123456789",
        "partnerID":"123",
        "message":"this is a test message",
        "shortcode":"SENDERID",
        "mobile":"254712345678",
        "timeToSend":"2019-09-01 18:00"
    }
    
    
    Getting Delivery Reports.
API Endpoint url :
            
                https://isms.celcomafrica.com/api/services/getdlr/
            
        
Example below is in PHP.
    
    $url = 'https://isms.celcomafrica.com/api/services/getdlr/';
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type:application/json')); //setting custom header
    $curl_post_data = array(
    //Fill in the request parameters with valid values
    'partnerID' => '00',
    'apikey' => 'xxxxxxxxxxxxx',
    'messageID' => '123456789',
    );
    $data_string = json_encode($curl_post_data);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
    $curl_response = curl_exec($curl);
    print_r($curl_response);
    
    
    Getting Account Balance.
API Endpoint url :
            
                https://isms.celcomafrica.com/api/services/getbalance/
            
        
Example below is in PHP.
    
    $url = 'https://isms.celcomafrica.com/api/services/getbalance/';
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type:application/json')); //setting custom header
    $curl_post_data = array(
    //Fill in the request parameters with valid values
    'partnerID' => '00',
    'apikey' => 'xxxxxxxxxxxxx',
    );
    $data_string = json_encode($curl_post_data);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
    $curl_response = curl_exec($curl);
    print_r($curl_response);
    
    
    API Return codes / Description
• 200: 
            Successful Request all
• 1001: 
            Invalid sender id
• 1002: 
            Network not allowed
• 1003: 
            Invalid mobile number
• 1004: 
            Low bulk credits
• 1005: 
            Failed. System error
• 1006: 
            Invalid credentials
• 1007: 
            Failed. System error
• 1008: 
            No Delivery Report
• 1009: 
            unsupported data type
• 1010: 
            unsupported request type
• 4090: 
            Internal Error. Try again after 5 minutes
• 4091: 
            No Partner ID is Set
• 4092: 
            No API KEY Provided
• 4093: 
            Details Not Found
