ajax-loader
rocket

SMS API HTTP et SMPP : Envoyez des SMS vers le cameroun et 250 autres pays

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.

Authentification

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=';
						

Url de la requête

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';
						

Envoyer un sms par API

La requête pour envoyer un sms prends plusieurs paramètres, parmi lesquelles

  • action qui décrit l’action à effectuer, dans ce cas, il prend la valeur send-sms . Il peut prendre d’autres paramètres suivant l’objectif de la requête, comme nous le verront plus bas.
  • api_key pour authentication
  • to pour le numéro à qui envoyer le sms
  • from pour le sender ID ou le nom d’expéditeur avec lequel vous souhaitez que le SMS soit livrée. C’est une chaine alphanumérique de 11 caractères maximum, espaces compris. Si cette longueur est dépassée, il sera coupé et seuls les 11 premiers caractères seront affichés.
  • sms Contient le texte du sms à envoyer.

/*
	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"
} 
						

Envoyer des bulk sms (sms groupé) par API

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"
} 
						

Envoyer un sms à envoi programmé par API

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"
}						

Interroger son solde par API

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"
}
						

DLR (Delivery Report) ou accusée de reception par API

Pour demander l'accusée de recption d'un SMS il faudra fournir l'identifiant du message en question entre autres

  • action qui décrit l’action à effectuer, dans ce cas, il prend la valeur sms-status .
  • api_key pour authentication
  • sms_uid est un paramètre fourni lors de l'envoi d'un sms par API. Lorsque l'envoi du sms est réussi, un identifiant unique lui est attribué et retourné dans la reponse comme valeur de msgId . C'est cette valeur qu'il faut fournir ici


// 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"
} 
						

Ajouter des contacts dans votre base de contact via API

Encouragez vos clients et prospects à souscrire à votre lettre d'information SMS

  • action qui décrit l’action à effectuer, dans ce cas, il prend la valeur subscribe-us .
  • api_key pour authentication
  • phone_book designe le nom de la liste où enregistrer les contacts. La liste doit déjà être crée dans votre compte.
  • phone_number Le numéro de téléphone à enregistrer au format international
  • first_name prénom du contcat à enregistrer, paramètre optionnel
  • last_name Nom du contcat à enregistrer, paramètre optionnel
  • company Entreprise du contcat à enregistrer, paramètre optionnel
  • email adresse email du contcat à enregistrer, paramètre optionnel

$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"
} 
						

Code d'erreur des API

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
						

Hey! des sms test sont offerts

Testez gratuitement

Tester

260+

Pays couverts

2k

Clients heureux

860

Applications liés par API

20

Organisations

Nos clients nous adorent

Ce qu'ils disent de nous

sms client profile icon

Mr TANGU

Directeur Institut de formation
Lors de ma première utilisation je trouvais la plateforme complexe, mais là c'est la meilleure plateforme que j'ai jamais utilisée, elle est complète et fait pratiquement tout le travail à ma place. J’adore lancer mes campagnes avec Techsoft.
sms client profile icon

Mr BOUOBDA

Cablo distributeur
Les sms arrivent presque instantanément, vraiment je n’ai pas de doute lorsque je transmets les avis de paiements à mes clients. Et la plateforme, elle est complète et me permet de lancer différents types de campagne à plusieurs milliers de contacts.
sms client profile icon

Mr NGOS

Directeur chaine de restaurant
Un service client disponible et accessible, voilà ce qui me plait chez Techsoft SMS. Dès le premier contact la façon dont j’ai été pris en charge m’a conquis. Une expérience client vraiment inoubliable comme ils aiment à le dire.
sms client profile icon

Mr ISAAC

Ing Informaticien
Je suis développeur, j’ai apprécié les API documenté et facile à intégrer ainsi que la disponibilité du support technique.