Cette version de l'api sera abandonnée en decembre 2023. Connectez-vous sur Techsoft Bulk SMS & Whatsapp pour consulter la version REST de l'api.
L’authentification sur l’Api se fait à l’aide d’une clé API à générer dans votre compte. Cette clé doit ensuite être passé au paramètre api_key . Ce paramètre est obligatoire pour toute requête vers l’API. La clé API est secrète, vous devez donc assurer son intégrité, si cette intégrité est comprise vous devez tout de suite en générer une nouvelle et la remplacer dans votre application.
// Etape 1: Generez une clé API_KEY ici https://app.techsoft-web-agency.com/user/sms-api/info
$api_key = 'a3l0am5pd3JodWxwQnhCbE9nYkM=';
Préciser l’url de la requête, toutes les requêtes vers l’API se feront via cette url
//Etape 2: precisez l'url de la requête
$url = 'https://app.techsoft-web-agency.com/sms/api';
La requête pour envoyer un sms prends plusieurs paramètres, parmi lesquelles
/*
Inclure les deux première étape ici (authentification et lien api)
*/
// Etape 3: Le sender ID ou nom d'envoi (11 caractères, espaces compris). ATTENTION: Le sender id doit être enregistré et validé (Menu ID expediteur / Nom d'envoi) dans votre compte sinon une erreur sera généré.
$from = 'TechSoft-SMS';
//Etape 4: precisez le numéro de téléphone (Format international)
$destination = '237671313533';
// Construire le corps de la requête
$sms_body = array(
'action' => 'send-sms',
'api_key' => $api_key,
'to' => $destination,
'from' => $from,
'sms' => $sms
);
$send_data = http_build_query($sms_body);
$gateway_url = $url . "?" . $send_data;
try {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $gateway_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPGET, 1);
$output = curl_exec($ch);
if (curl_errno($ch)) {
$output = curl_error($ch);
}
curl_close($ch);
var_dump($output);
}catch (Exception $exception){
echo $exception->getMessage();
}
// Reponse en cas de success
{
"code":"ok",
"message":"Successfully Send",
"balance":8364,
"user":"David eson",
"msgId":"5f21331445f37",
"phoneNumber":"237656321133"
}
Requête pour envoyer un sms à plusieurs plusieurs utiisateurs. Dans ce cas tout reste pareil à l'exception de la liste des numéros contenu dans le paramètre to . Les numéros doivent être séparés par des virgules ,. ATTENTION: Vous nepouvez soumettre que 100 numéros maximum par requête.
/*
Inclure les deux première étape ici (authentification et lien api)
*/
// Etape 3: Le sender ID ou nom d'envoi (11 caractères, espaces compris)
$from = 'TechSoft-SMS';
//Etape 4: precisez le numéro de téléphone (Format international). Vous pouvez ajouter jusqu'à 100 numéros maximum par requête.
$destination = '237671313533,237656321133';
// Construire le corps de la requête
$sms_body = array(
'action' => 'send-sms',
'api_key' => $api_key,
'to' => $destination,
'from' => $from,
'sms' => $sms
);
$send_data = http_build_query($sms_body);
$gateway_url = $url . "?" . $send_data;
try {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $gateway_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPGET, 1);
$output = curl_exec($ch);
if (curl_errno($ch)) {
$output = curl_error($ch);
}
curl_close($ch);
var_dump($output);
}catch (Exception $exception){
echo $exception->getMessage();
}
// Reponse en cas de success
0 : {
"code":"ok",
"message":"Successfully Send",
"balance":8364,
"user":"David eson",
"msgId":"5f21331445f37",
"phoneNumber":"237656321133"
}
1 : {
"code":"ok",
"message":"Successfully Send",
"balance":8364,
"user":"David eson",
"msgId":"5f21331445f37",
"phoneNumber":"237656321133"
}
Vous pouvez envoyer un sms et préciser l'heure de sa livraison de notre côté. Le sms soumis est enregistré et envoyé à la date et l'heure précisé. Pour ce faire il suffit d'ajouter un paramètre schedule à la requête d'envoi d'un sms normal. Le format de la date et l'heure est le format Anglosaxon
/*
Inclure les deux première étape ici (authentification et lien api)
*/
// Etape 3: Le sender ID ou nom d'envoi (11 caractères, espaces compris)
$from = 'TechSoft-SMS';
//Etape 4: precisez le numéro de téléphone (Format international). Vous pouvez ajouter jusqu'à 100 numéros maximum par requête.
$destination = '237671313533,237656321133';
// Etape 5: Précisez l'heure d'envoi du sms. Format $format = 'm/d/Y h:i A';
$schedule_time = '07/21/2020 11:12 AM';
/*
voici un bout de code pour vous aider à convertir la date au format requis
$originalDate = "2009-02-15 15:16:17";
$newDate = date("m/d/Y h:i A", strtotime($originalDate)); /
$schedule_time = $newDate;
*/
// Create SMS Body for request
$sms_body = array(
'action' => 'send-sms',
'api_key' => $api_key,
'to' => $destination,
'from' => $from,
'sms' => $sms,
'schedule' => $schedule_time
);
$send_data = http_build_query($sms_body);
$gateway_url = $url . "?" . $send_data;
try {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $gateway_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPGET, 1);
$output = curl_exec($ch);
if (curl_errno($ch)) {
$output = curl_error($ch);
}
curl_close($ch);
var_dump($output);
}catch (Exception $exception){
echo $exception->getMessage();
}
// Reponse en cas de success. Cette réponse est identique pour l'envoi programmé d'un ou plusieurs sms
{
"code":"ok",
"message":"SMS Scheduled successfully.",
"balance":8364,
"user":"David eson"
}
Requête pour interroger son solde par API. Ici le paramètre action prends la valeur de check-balance pour préciser l'action à effectuer. Le résultat est le montant de votre solde SMS en XAF (FCFA) pour les clients du Cameroun et en EUR (euro) pour les autres pays
// Construire le corps de la requête
$sms_body = array(
'action' => 'check-balance',
'api_key' => $api_key
);
$send_data = http_build_query($sms_body);
$gateway_url = $url . "?" . $send_data;
try {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $gateway_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPGET, 1);
$output = curl_exec($ch);
if (curl_errno($ch)) {
$output = curl_error($ch);
}
curl_close($ch);
var_dump($output);
}catch (Exception $exception){
echo $exception->getMessage();
}
// Reponse en cas de success
// Balance est le solde en XAF si le pays est cameroun et en EUR pour les autres pays.
{
"balance":580,
"user":"John DOE",
"country":"Cameroon"
}
Pour demander l'accusée de recption d'un SMS il faudra fournir l'identifiant du message en question entre autres
// Etape 3: sms_uid est fourni en reponse lors de l'envoi des sms avec success, il est contenu dans "msgId"
$sms_uid = '5f2058f9d7b7f';
$url = 'https://app.techsoft-web-agency.com/sms/api';
// Creer le corps de la requete
$query_body = array(
'action' => 'sms-status',
'api_key' => $api_key,
'sms_uid' => $sms_uid
);
$send_data = http_build_query($query_body);
$gateway_url = $url . "?" . $send_data;
try {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $gateway_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPGET, 1);
$output = curl_exec($ch);
if (curl_errno($ch)) {
$output = curl_error($ch);
}
curl_close($ch);
var_dump($output);
}catch (Exception $exception){
echo $exception->getMessage();
}
// Reponse en cas de réussite de la requête.
// le statut peut être "success" qui signifie que le sms est envoyé
// ou "DELIVRE" qui signifie que le sms a été livrée et que le contact l'a recu
{
"status":"DELIVRE",
"msgId":"5f2058f9d7b7f"
}
Encouragez vos clients et prospects à souscrire à votre lettre d'information SMS
$url = 'http://smsplatform.test/contacts/api';
$api_key = 'a3l0am5pd3JodWxwQnhCbE9nYkM=';
// Créer le corps de la requete
$query_body = array(
'action' => 'subscribe-us',
'api_key' => $api_key,
'phone_book' => "Prospect site web", //ATTENTION: la liste doit déja exister dans votre compte sur la plateforme
'phone_number' => "237656321133", //Numéro de téléphone au format international
'first_name' => "John", // Prenom, OPTIONNEL
'last_name' => "DOE", // Nom, OPTIONNEL
'company' => "Techsoft", // Entreprise, OPTIONNEL
'email' => "welcome@techsoft-sms.com" //adresse email, OPTIONNEL
);
$send_data = http_build_query($query_body);
$gateway_url = $url . "?" . $send_data;
try {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $gateway_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPGET, 1);
$output = curl_exec($ch);
if (curl_errno($ch)) {
$output = curl_error($ch);
}
curl_close($ch);
var_dump($output);
}catch (Exception $exception){
echo $exception->getMessage();
}
// Reponse en cas de réussite de la requête
{
"code":"ok",
"message":"Subscription successfully done"
}
Comprendre les réponses e codes d'erreur de l'API
## Status Code
| code | Message | Description
| --- | --- |
| `ok` | Successfully Send | Message sent
| `100` | Bad gateway requested | Empty action or empty API key or empty sms provided
| `101` | Wrong action |
| `102` | Authentication failed |
| `103` | Invalid phone number |
| `104` | Phone coverage not active |
| `105` | Insufficient balance |
| `106` | Invalid Sender ID |
| `107` | Invalid SMS Type |
| `108` | SMS Gateway not active | Contact your account manager to solve this
| `109` | Invalid Schedule Time |
| `110` | Media url required |
| `111` | SMS contain spam word. Wait for approval |
DLR API
| key | Value | comment|
| `status` | Success | SMS is sent
| `status` | DELIVERED | SMS was delivered
| `code` | 002 | invalid msg_uid
| `code` | 003 | msg_uid provided is nul
## Authors
Pays couverts
Clients heureux
Applications liés par API
Organisations