Introduction


Cette documentation fournira des instructions sur la façon d'intégrer rapidement les services SMS dans diverses solutions en utilisant l'API HTTP.

Notre API est basée sur les standards REST. Afin d'interagir avec notre API, n'importe quel client HTTP dans n'importe quel langage de programmation peut être utilisé.

La documentation est intuitive et rédigée en pensant aux développeurs.

Pré-requis


Afin d'utiliser notre API, vous aurez besoin d'informations d'identification. Ceux-ci ne sont pas uniquement utilisés pour l'API mais aussi pour d'autres services comme votre espace client.

URL de Base


Bien que vous puissiez utiliser le protocole HTTP, nous vous recommandons fortement de soumettre toutes vos demandes à l'API SMS API via HTTPS pour que le trafic soit crypté et que la confidentialité soit assurée.
URL de base :

Format de numéro de téléphone


Nous utilisons le formatage des numéros E.164 qui est normalisé à l'échelle internationale. Les numéros de téléphone sont généralement précédés du signe + (plus), suivi de l'indicatif de pays, de l'indicatif de réseau et du numéro d'abonné.

Indicatif Numéro de téléphone
225 09000001

Nous n'envoyons des méssages qu'à des numéro de téléphone valide (numéros), écrit en format international par ex. 22509000001, 22377000010

Vérifier l'Etat de son solde


POST : https://vavasms.com/api/v1/check/balance

Paramètres

Nom Type Description
username string l'email de votre compte
password string le mot de passe de votre compte

Exemple de requête
                                    
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://vavasms.com/api/v1/check/balance",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "username=your_email&password=your_password",
  CURLOPT_HTTPHEADER => array(
    "Accept: */*",
    "Content-Type: application/x-www-form-urlencoded",
    "Host: vavasms.com"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                    
                                
                                    
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "username=your_email&password=your_password");
Request request = new Request.Builder()
  .url("https://vavasms.com/api/v1/check/balance")
  .post(body)
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .addHeader("Accept", "*/*")
  .addHeader("Host", "vavasms.com")
  .build();

Response response = client.newCall(request).execute();
                                    
                                
                                    
var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://vavasms.com/api/v1/check/balance",
  "method": "POST",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded",
    "Accept": "*/*",
    "Host": "vavasms.com"
  },
  "data": {
    "username": "your_email",
    "password": "your_password"
  }
}
$.ajax(settings).done(function (response) {
  console.log(response);
});
                                    
                                
                                    
var request = require("request");

var options = { method: 'POST',
  url: 'https://vavasms.com/api/v1/check/balance',
  headers:
   {'cache-control': 'no-cache',
     'Host': 'vavasms.com',
     'Content-Type': 'application/x-www-form-urlencoded'},
  form: { username: 'your_email', password: 'your_password' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);
  console.log(body);
});
                                    
                                
                                    
import http.client

conn = http.client.HTTPConnection("https://vavasms.com/api")

payload = "username=your_email&password=your_password"

headers = {
    'Content-Type': "application/x-www-form-urlencoded",
    'Accept': "*/*",
    'Host': "vavasms.com"
    }

conn.request("POST", "v1/check/balance", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
                                    
                                

Exemple cas de succès
                            
{
    "code": 0,
    "message": "OPERATION_SUCCES",
    "data": {
        "amount": 25540,
        "currency": "XOF"
    }
}
                            
                        

Exemple cas d'echec
                            
{
    "code": 901,
    "message": "INVALID_CREDENTIALS",
    "description": "Identifiant de connexion incorrect",
    "data": []
}
                            
                        

NB: La balance est en FCFA (XOF)


Messages sortants


Par défaut, votre nom d’utilisateur est votre SENDER_ID, mais vous pouvez demander d’autres SENDER_ID dans votre compte.

Envoyer un message

POST : https://vavasms.com/api/v1/text/single

Paramètres

Nom Type Description
username string l'email de votre compte
password string le mot de passe de votre compte
sender_id string La longueur du sender_id alphanumérique doit être comprise <br> entre 3 et 11 caractères (exemple : <code>CompanyName</code>).
phone string Le(s) numéro(s) de destination du message. Separé par des virgules si vous voulez envoyer à plusieurs numéro de téléphone
Exemple d'envoi à un contact : 22509000001
Exemple d'envoi à plusieurs contacts: 22509000001,22509000002
message string Texte du message qui sera envoyé.

Exemple de requête
                                    
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://vavasms.com/api/v1/text/single",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "username=your_email&password=your_password&sender_id=your_sender_id&phone=your_receiver_phone_number&message=your_message_here",
  CURLOPT_HTTPHEADER => array(
    "Accept: */*",
    "Content-Type: application/x-www-form-urlencoded",
    "Host: vavasms.com"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                    
                                

OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "username=your_email&password=your_password&sender_id=your_sender_id&phone=your_receiver_phone_number&message=your_message_here");
Request request = new Request.Builder()
  .url("https://vavasms.com/api/v1/text/single")
  .post(body)
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .addHeader("Accept", "*/*")
  .addHeader("Host", "vavasms.com")
  .build();
Response response = client.newCall(request).execute();
                                    

var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://vavasms.com/api/v1/text/single",
  "method": "POST",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded",
    "Accept": "*/*",
    "Host": "vavasms.com"
  },
  "data": {
    "username": "your_email",
    "password": "your_password",
    "sender_id": "your_sender_id",
    "phone": "your_receiver_phone_number",
    "message": "your_message_here"
  }
}

$.ajax(settings).done(function (response) {
  console.log(response);
});
                                    

var request = require("request");

var options = { method: 'POST',
  url: 'https://vavasms.com/api/v1/text/single',
  headers:
   { 'Host': 'vavasms.com',
     'Accept': '*/*',
     'Content-Type': 'application/x-www-form-urlencoded' },
  form:
   { username: 'your_email',
     password: 'your_password',
     sender_id: 'your_sender_id',
     phone: 'your_receiver_phone_number',
     message: 'your_message_here' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);
  console.log(body);
});

                                    

var request = require("request");

var options = { method: 'POST',
  url: 'https://vavasms.com/api/v1/text/single',
  headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
  form:
   { username: 'your_email',
     password: 'your_password',
     sender_id: 'your_sender_id',
     phone: 'your_receiver_phone_number',
     message: 'your_message_here' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
                                    

Exemple cas de succès
        
{
    "code": 0,
    "message": "OPERATION_SUCCES",
    "data": {
        "lot_id": "LOT-20190623-1217676",
        "description": "Message envoyé avec succès",
        "message_id": [
            "SM-20190623-1217879"
        ]
    }
}
        
    

Exemple cas d'echec
{
    "code": "901",
    "status": "INVALID_CREDENTIALS",
    "description": "Identifiant de connexion incorrect",
}
{
    "code": "902",
    "status": "INVALID_SENDER_ID",
    "description": "Le sender_id n’existe pas",
}
{
    "code": "903",
    "status": "INVALID_PHONE_NUMBER",
    "description": "Le format du numéro de téléphone est invalide",
}


Vérifier le statut d'un méssage envoyé

POST : https://vavasms.com/api/v1/check/status

Paramètres

Nom Type Description
username string l'email de votre compte
password string le mot de passe de votre compte
message_id string L'identifiant du méssage Ex : RMA029VA222991919
lot_id string | facultatif L'identifiant du lot Ex : RMA029VA222991919

Exemple de requête

Exemple cas de succès
        
{
    "code": 0,
    "message": "OPERATION_SUCCES",
    "data": [
        {
            "lot_id": "LOT-20190617-1445425",
            "message_id": "SM-20190617-1445914",
            "status": "sent",
            "description": "Envoyé"
        }
    ]
}
        
    

Exemple cas d'echec
{
    "code": "901",
    "status": "INVALID_CREDENTIALS",
    "description": "Identifiant de connexion incorrect",
}
{
    "code": "709",
    "message": "EXECUTION_ERROR",
    "description": "Aucun envoi existe pour ce ID",
    "data": []
}

Reception de Message


URL de notification

Le lien de notification est celui qui est appelé par la plateforme pour vous notifier de la réception d’un SMS ainsi que de son contenu. Cette URL doit être disponible pour accueillir des requêtes HTTP de type POST.
Vous devez configurer votre url de notification dans votre back office

Paramètres

Nom Type Description
message_id string l'identifiant du message
form string L'émetteur du SMS
content string le contenu du message
sms_date string la date de réception du SMS

URL de Notification

POST : https://{votre_url_notification.com}

Code OTP : Envoyer et Vérifier


Envoyer un code OTP

POST : https://vavasms.com/api/v1/otp/send

Paramètres

Nom Type Description
username string l'email de votre compte
password string le mot de passe de votre compte
sender_id string La longueur du sender_id alphanumérique doit être comprise
entre 3 et 11 caractères (exemple : CompanyName).
otp_length integer La longueur de l'OTP à generer. doit être comprise entre 4 et 9
par defaut : 4.
otp_expiry integer La durée de l'OTP à verifier en minute.
par défaut : 60
phone string Le numéro de destination du message qui reçoit le code OTP.
Exemple d'envoi à un contact : 22509000001
message string Texte du message qui sera envoyé. le message doit comporter la balise ##OTP##
Par defaut, le message est : Votre code OTP est : ##OTP##

Exemple de requête
                                    
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://vavasms.com/api/v1/otp/send",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "username=your_email&password=your_password&sender_id=your_sender_id&phone=your_receiver_phone_number",
  CURLOPT_HTTPHEADER => array(
    "Accept: */*",
    "Content-Type: application/x-www-form-urlencoded",
    "Host: vavasms.com"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                    
                                

OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "username=your_email&password=your_password&sender_id=your_sender_id&phone=your_receiver_phone_number");
Request request = new Request.Builder()
  .url("https://vavasms.com/api/v1/otp/send")
  .post(body)
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .addHeader("Accept", "*/*")
  .addHeader("Host", "vavasms.com")
  .build();
Response response = client.newCall(request).execute();
                                    

var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://vavasms.com/api/v1/otp/send",
  "method": "POST",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded",
    "Accept": "*/*",
    "Host": "vavasms.com"
  },
  "data": {
    "username": "your_email",
    "password": "your_password",
    "sender_id": "your_sender_id",
    "phone": "your_receiver_phone_number"
  }
}

$.ajax(settings).done(function (response) {
  console.log(response);
});
                                    

var request = require("request");

var options = { method: 'POST',
  url: 'https://vavasms.com/api/v1/otp/send',
  headers:
   { 'Host': 'vavasms.com',
     'Accept': '*/*',
     'Content-Type': 'application/x-www-form-urlencoded' },
  form:
   { username: 'your_email',
     password: 'your_password',
     sender_id: 'your_sender_id',
     phone: 'your_receiver_phone_number' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);
  console.log(body);
});

                                    

var request = require("request");

var options = { method: 'POST',
  url: 'https://vavasms.com/api/v1/otp/send',
  headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
  form:
   { username: 'your_email',
     password: 'your_password',
     sender_id: 'your_sender_id',
     phone: 'your_receiver_phone_number' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
                                    
                                

Exemple cas de succès
        
{
    "code": 0,
    "message": "OPERATION_SUCCES",
    "data": {
        "message_id": "OTP-20190621-2234509",
        "description": "OTP envoyé avec succès"
    }
}
        
    

Exemple cas d'echec
{
    "code": "901",
    "status": "INVALID_CREDENTIALS",
    "description": "Identifiant de connexion incorrect",
}
{
    "code": "902",
    "status": "INVALID_SENDER_ID",
    "description": "Le sender_id n’existe pas",
}
{
    "code": "903",
    "status": "INVALID_PHONE_NUMBER",
    "description": "Le format du numéro de téléphone est invalide",
}


Verifier et valider un code OTP

POST : https://vavasms.com/api/v1/otp/verify

Paramètres

Nom Type Description
username string l'email de votre compte
password string le mot de passe de votre compte
otp integer Le code OTP à verifier.
phone string Le numéro de téléphone qui a reçu le code OTP.
Exemple d'envoi à un contact : 22509000001

Exemple de requête
                                    
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://vavasms.com/api/v1/otp/verify",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "username=your_email&password=your_password&sender_id=your_sender_id&phone=your_receiver_phone_number&otp=otp_received",
  CURLOPT_HTTPHEADER => array(
    "Accept: */*",
    "Content-Type: application/x-www-form-urlencoded",
    "Host: vavasms.com"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                    
                                

OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "username=your_email&password=your_password&sender_id=your_sender_id&phone=your_receiver_phone_number&otp=otp_received");
Request request = new Request.Builder()
  .url("https://vavasms.com/api/v1/otp/verify")
  .post(body)
  .addHeader("Content-Type", "application/x-www-form-urlencoded")
  .addHeader("Accept", "*/*")
  .addHeader("Host", "vavasms.com")
  .build();
Response response = client.newCall(request).execute();
                                    

var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://vavasms.com/api/v1/otp/verify",
  "method": "POST",
  "headers": {
    "Content-Type": "application/x-www-form-urlencoded",
    "Accept": "*/*",
    "Host": "vavasms.com"
  },
  "data": {
    "username": "your_email",
    "password": "your_password",
    "sender_id": "your_sender_id",
    "phone": "your_receiver_phone_number",
    "otp": "otp_received",
  }
}

$.ajax(settings).done(function (response) {
  console.log(response);
});
                                    

var request = require("request");

var options = { method: 'POST',
  url: 'https://vavasms.com/api/v1/otp/verify',
  headers:
   { 'Host': 'vavasms.com',
     'Accept': '*/*',
     'Content-Type': 'application/x-www-form-urlencoded' },
  form:
   { username: 'your_email',
     password: 'your_password',
     sender_id: 'your_sender_id',
     otp: 'otp_received',
     phone: 'your_receiver_phone_number' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);
  console.log(body);
});

                                    

var request = require("request");

var options = { method: 'POST',
  url: 'https://vavasms.com/api/v1/otp/verify',
  headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
  form:
   { username: 'your_email',
     password: 'your_password',
     sender_id: 'your_sender_id',
     otp: 'otp_received',
     phone: 'your_receiver_phone_number' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
                                    
                                

Exemple cas de succès
        
{
    "code": 0,
    "message": "OPERATION_SUCCES",
    "data": {
        "message_id": "OTP-20190621-2250698",
        "status": "success"
    }
}
        
    

Exemple cas d'echec

{
    "code": "901",
    "status": "INVALID_CREDENTIALS",
    "description": "Identifiant de connexion incorrect",
}
{
    "code": "902",
    "status": "INVALID_SENDER_ID",
    "description": "Le sender_id n’existe pas",
}
        
{
    "code": 913,
    "message": "INVALID_OTP",
    "description": "vavasms.INVALID_OTP",
    "data": []
}