1- Envoi d’un SMS via l’API FasterMessage #
Pour envoyer un SMS, vous devez lancer une requête HTTP POST vers le point de terminaison spécifique de l’API.
- URL du point de terminaison :
https://api.fastermessage.com/v1/sms/send - Résultat : L’API retourne une réponse indiquant l’état de la requête (confirmation de succès ou code d’erreur en cas d’échec).
Les Paramètres de la Requête d’Envoi #
Les paramètres sont les données que vous devez transmettre à l’API pour définir le message à envoyer.
| Paramètres | Type | Description Détaillée |
| from | Alphanumérique/Numérique | L’émetteur du message. Peut être un nom alphanumérique (jusqu’à 11 caractères, nécessite une validation préalable) ou un numéro de téléphone valide. |
| to | Numérique | Le destinataire du message. Doit être le numéro de téléphone précédé de l’indicatif de son pays (ex: 2292731 pour un numéro du Bénin). |
| text | Texte | Le contenu du message à envoyer. |
| sendAt | Date/Heure | Spécifie un envoi différé. Représente la date et l’heure exactes auxquelles le destinataire recevra le message. |
| accents | Booléen (true ou 1) | Permet d’autoriser la prise en charge des accents et certains caractères spéciaux. Si l’opérateur ne le supporte pas, il peut être ignoré. Utilisez true ou 1 pour l’activer. |
| messageId | Chaîne | L’identifiant unique que vous pouvez assigner à chaque message envoyé (utile pour le suivi interne). |
| dlr_url | URL HTTP | L’adresse HTTP spécifique à laquelle l’Accusé de Réception (DLR) du message sera envoyé automatiquement. (Voir la documentation DLR pour plus de détails). |
2- Gestion des Caractères du Champ text #
- SMS Standard : Contient généralement 160 caractères (sans aucun accent/caractère spécial).
- SMS Non Standard : Contient 153 caractères lorsqu’il y a des accents ou des caractères spéciaux.
- Messages Multipart (Longs) : Chaque page supplémentaire est limitée à 70 caractères sans accents ou 63 caractères avec accents.
- Recommandation : Il est conseillé de ne pas dépasser 3 pages SMS pour garantir une bonne délivrabilité et éviter un coût excessif.
Remarques Importantes sur la Sécurité et la Qualité #
- Paramètres Obligatoires vs. Optionnels :
- Les paramètres affichés avec un badge rouge sont obligatoires.
- Les paramètres affichés avec un badge vert sont optionnels.
- Sécurité HTTPS : Toutes les requêtes d’authentification (Basic ou Clé API) doivent transiter via HTTPS pour garantir la confidentialité des informations (chiffrement).
- Gestion des Caractères par les Opérateurs : Les opérateurs peuvent appliquer des règles de segmentation ou de translitérations. Certains caractères accentués peuvent être modifiés ou rejetés selon les réseaux locaux.
Exemple de code d’intégration #
Php #
Curl #
Python #
NodeJs #
Réponse après envoi #
Après l’envoi d’un SMS via l’API FASTERMESSAGE, vous obtiendrez en retour une réponse du serveur au format JSON comme ci-après.
succès
{
"status": true,
"code": "SUBMITTED",
"description": "202: The request has been submitted and is being processed",
"from": "FASTERMSG",
"to": "2292731",
"text": "Hello world!",
"smsCount": 1,
"messageId": "1698143748226271",
"uuid": "691bb97c4d36231cfea54312",
"sendAt": "2023-10-24T10:35:48.226+01:00",
"createdAt": "2023-10-24T10:35:48.286+01:00",
"message": "The request is processing",
"reference": "",
"batchId": "",
"priority": 3,
"iso": "BJ",
"country": "Benin",
"cc": 229,
"operator": "MTN",
"mcc": "616",
"mnc": "03"
}
succès
// Un exemple de réponse lorsqu'une erreur est détectée lors de la vérification des variables reçu.
{
"status": false,
"code": "AUTHENTICATION_FAILED",
"description": "401: Authentication failed"
}
// Un exemple de réponse lorsqu'une erreur est détectée lors de l'envoi du message.
{
"status": false,
"code": "INVALID_PHONE",
"description": "400: Invalid phone number",
"messageId": "1698148205253794"
}
Passons en revue les informations renvoyées par le serveur à la suite de la requête d’envoi :
- status : c’est l’état de soumission de la requête. Il est TRUE si tout s’est bien passé ou FALSE s’il y a un problème ;
- code : il s’agit du code retourné par la requête. Voir la liste des codes pour plus de détails
- description : c’est le message descriptif du code;
Succès (2xx)
| Code | Code HTTP | Message |
|---|---|---|
| DELIVERED | 200 | |
| SENT | 200 | |
| PROGRAMMED | 200 | |
| SUBMITTED | 202 |
Echecs (4xx, 5xx, 3xx, autres)
| Code | Code HTTP | Message |
|---|---|---|
| REJECTED | 400 | |
| BAD_REQUEST | 400 | |
| MISSING_PARAMETERS | 400 | |
| INVALID_SENDERID | 400 | |
| INVALID_PHONE | 400 | |
| INVALID_OPERATOR | 400 | |
| INVALID_DATE_TIMEZONE | 400 | |
| UNDEFINED_OPERATOR | 400 | |
| MISSING_PARAMETERS_TO | 400 | |
| MISSING_PARAMETERS_CONTENT | 400 | |
| MISSING_PARAMETERS_FROM | 400 | |
| FORBIDDEN | 403 | |
| UNAUTHORIZED | 401 | |
| AUTHENTICATION_FAILED | 401 | |
| INSUFFICIENT_BALANCE | 402 | |
| SUSPENDED | 423 | |
| UNDELIVERED | 424 | |
| NOT_FOUND | 404 | |
| DELETED | 410 | |
| EXPIRED | 410 | |
| FAILED | 500 | |
| ERROR | 500 | |
| INTERNAL_SERVER_ERROR | 500 | |
| INTERNAL_ERROR | 500 | |
| BAD_GATEWAY | 502 | |
| SERVICE_UNAVAILABLE | 503 | |
| GATEWAY_UNAVAILABLE | 503 | |
| UNKNOWN | 520 |