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.
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.
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 :
https://vavasms.com/api
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
POST : https://vavasms.com/api/v1/check/balance
Nom | Type | Description |
---|---|---|
username | string | l'email de votre compte |
password | string | le mot de passe de votre compte |
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://vavasms.com/api/v1/check/balance",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "username=your_email&password=your_password",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/x-www-form-urlencoded"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
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")
.method("POST", body)
.addHeader("Content-Type", "application/x-www-form-urlencoded")
.build();
Response response = client.newCall(request).execute();
var settings = {
"url": "https://vavasms.com/api/v1/check/balance",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Type": "application/x-www-form-urlencoded"
},
"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
import mimetypes
conn = http.client.HTTPSConnection("vavasms.com")
payload = 'username=your_email&password=your_password'
headers = {
'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/api/v1/check/balance", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
var client = new RestClient("https://vavasms.com/api/v1/check/balance");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("username", "your_email");
request.AddParameter("password", "your_password");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
{
"code": 0,
"message": "OPERATION_SUCCES",
"data": {
"amount": 25540,
"currency": "XOF"
}
}
{
"code": 901,
"message": "INVALID_CREDENTIALS",
"description": "Identifiant de connexion incorrect",
"data": []
}
NB: La balance est en FCFA (XOF)
Par défaut, votre nom d’utilisateur est votre SENDER_ID, mais vous pouvez demander d’autres SENDER_ID dans votre compte.
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é. |
La longueur maximale d'un message est de 160 caractères pour la norme GSM7 ou de 70 caractères pour les messages codés Unicode. Si vous envoyez un texte qui dépasse le nombre maximum de caractères pris en charge, le message envoyé sera segmenté et facturé en conséquence. Un SMS long qui consiste en deux SMS compte pour deux SMS.
$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);
});
import http.client
conn = http.client.HTTPConnection("vavasms.com")
payload = "username=your_email&password=your_password&sender_id=your_sender_id&phone=your_receiver_phone_number&message=your_message_here"
headers = {
'Content-Type': "application/x-www-form-urlencoded",
'Accept': "*/*",
'Host': "vavasms.com"
}
conn.request("POST", "api,v1,text,single", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
{
"code": 0,
"message": "OPERATION_SUCCES",
"data": {
"lot_id": "LOT-20190623-1217676",
"description": "Message envoyé avec succès",
"message_id": [
"SM-20190623-1217879"
]
}
}
{
"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",
}
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 |
{
"code": 0,
"message": "OPERATION_SUCCES",
"data": [
{
"lot_id": "LOT-20190617-1445425",
"message_id": "SM-20190617-1445914",
"status": "sent",
"description": "Envoyé"
}
]
}
{
"code": "901",
"status": "INVALID_CREDENTIALS",
"description": "Identifiant de connexion incorrect",
}
{
"code": "709",
"message": "EXECUTION_ERROR",
"description": "Aucun envoi existe pour ce ID",
"data": []
}
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
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 |
NB : Veuillez prêter attention à la valeur de «message_id» pour éviter les traitements en double
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## |
$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);
});
{
"code": 0,
"message": "OPERATION_SUCCES",
"data": {
"message_id": "OTP-20190621-2234509",
"description": "OTP envoyé avec succès"
}
}
{
"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",
}
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 |
$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);
});
{
"code": 0,
"message": "OPERATION_SUCCES",
"data": {
"message_id": "OTP-20190621-2250698",
"status": "success"
}
}
{
"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": []
}