API SMS pour développeurs
API SMS : envoyez des SMS depuis votre application
Une API REST simple pour envoyer vos notifications, codes de vérification et alertes vers les abonnés Orange, MTN et Moov en Côte d'Ivoire. Authentification par clé Bearer, réponses JSON, exemples prêts à copier.
- Protocole
- REST · JSON · HTTPS
- Authentification
- Clé Bearer
- Endpoint d'envoi
POST /sms/send
curl -X POST https://smsgold.tornixtech.com/api/v2/sms/send \
-H "Authorization: Bearer $SMSGOLD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "+2250700000000",
"message": "Bonjour Awa, votre commande n°1042 est prête. Retrait dès aujourd'\''hui.",
"sender_name": "MABOUTIQUE"
}'<?php
$ch = curl_init('https://smsgold.tornixtech.com/api/v2/sms/send');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('SMSGOLD_API_KEY'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'to' => '+2250700000000',
'message' => "Bonjour Awa, votre commande n°1042 est prête. Retrait dès aujourd'hui.",
'sender_name' => 'MABOUTIQUE',
]),
]);
$body = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($status === 200 && $body['success']) {
echo "SMS envoyé : {$body['message_id']}";
} else {
echo "Erreur $status : {$body['error']}";
}import os
import requests
response = requests.post(
"https://smsgold.tornixtech.com/api/v2/sms/send",
headers={"Authorization": f"Bearer {os.environ['SMSGOLD_API_KEY']}"},
json={
"to": "+2250700000000",
"message": "Bonjour Awa, votre commande n°1042 est prête. Retrait dès aujourd'hui.",
"sender_name": "MABOUTIQUE",
},
timeout=30,
)
data = response.json()
if response.ok and data["success"]:
print("SMS envoyé :", data["message_id"], "- crédits restants :", data["credits_remaining"])
else:
print("Erreur", response.status_code, data.get("error"))// Node.js 18+ (fetch natif)
const response = await fetch("https://smsgold.tornixtech.com/api/v2/sms/send", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.SMSGOLD_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
to: "+2250700000000",
message: "Bonjour Awa, votre commande n°1042 est prête. Retrait dès aujourd'hui.",
sender_name: "MABOUTIQUE",
}),
});
const data = await response.json();
if (response.ok && data.success) {
console.log("SMS envoyé :", data.message_id);
} else {
console.error("Erreur", response.status, data.error);
}Démarrage
De l'inscription au premier SMS envoyé
- 1
Créez et activez votre compte
Inscription gratuite, puis mise en service de l'envoi depuis votre espace.
- 2
Faites valider votre nom d'expéditeur
Le nom affiché à vos destinataires (11 caractères max.), vérifié sous 2 à 3 jours ouvrés.
- 3
Générez une clé API
Dans Paramètres → Clés API. Jusqu'à 5 clés actives, révocables à tout moment.
- 4
Envoyez votre premier SMS
Une requête POST avec le numéro, le message et votre nom d'expéditeur. C'est tout.
Référence
Endpoints de l'API SMS
URL de base : https://smsgold.tornixtech.com/api/v2. Toutes les requêtes incluent l'en-tête Authorization: Bearer VOTRE_CLE.
POST/sms/send
Envoyer un SMS
Envoie un SMS à un destinataire. Un crédit est consommé par envoi.
GET/account/credits
Consulter le solde
Retourne le nombre de crédits SMS disponibles sur votre compte.
Corps de la requête POST /sms/send
| Champ | Type | Description |
|---|---|---|
to | string, requis | Numéro du destinataire au format international, par exemple +2250700000000. |
message | string, requis | Texte du SMS. Un SMS standard contient jusqu'à 160 caractères. |
sender_name | string, requis | Nom d'expéditeur approuvé pour votre compte (11 caractères maximum). |
{
"success": true,
"message_id": "tel%3A%2B2250700000000-abc123",
"status": "sent",
"credits_remaining": 498,
"error": null
}{
"success": false,
"error": "Crédits insuffisants",
"available": 0
}Consulter le solde
curl https://smsgold.tornixtech.com/api/v2/account/credits \
-H "Authorization: Bearer $SMSGOLD_API_KEY"<?php
$ch = curl_init('https://smsgold.tornixtech.com/api/v2/account/credits');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('SMSGOLD_API_KEY')],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);
echo "Crédits disponibles : {$body['credits']}";import os
import requests
r = requests.get(
"https://smsgold.tornixtech.com/api/v2/account/credits",
headers={"Authorization": f"Bearer {os.environ['SMSGOLD_API_KEY']}"},
timeout=15,
)
print(r.json()) # {"success": true, "company": "...", "credits": 499}const res = await fetch("https://smsgold.tornixtech.com/api/v2/account/credits", {
headers: { Authorization: `Bearer ${process.env.SMSGOLD_API_KEY}` },
});
const { credits } = await res.json();
console.log("Crédits disponibles :", credits);Gestion des erreurs
Des erreurs explicites, des crédits protégés
Chaque erreur renvoie un code HTTP standard et un message lisible au format { "success": false, "error": "…" }.
- Aucun crédit débité si le solde est insuffisant ou la requête invalide.
- Crédit remboursé automatiquement si l'opérateur rejette l'envoi de façon certaine.
- En cas de coupure réseau pendant l'envoi, vérifiez votre solde avec
GET /account/creditsavant de réessayer.
| Code | Signification |
|---|---|
| 401 | Unauthorized Clé API absente, invalide ou révoquée. |
| 402 | Payment Required Crédits insuffisants pour l'envoi (aucun débit). |
| 403 | Forbidden Compte désactivé, ou aucun nom d'expéditeur approuvé. |
| 422 | Unprocessable Entity Champ manquant (to, message, sender_name) ou nom d'expéditeur non approuvé pour ce compte. |
| 502 | Bad Gateway L'opérateur n'a pas confirmé l'envoi. Si le rejet est certain, le crédit est remboursé automatiquement. |
Cas d'usage
Ce que vos applications peuvent envoyer
Codes OTP et 2FA
Vérification de numéro à l'inscription, connexion sécurisée, validation de paiement.
Suivi de commande
Confirmation, expédition, livraison : un SMS à chaque étape depuis votre boutique en ligne.
Rappels automatiques
Rendez-vous, échéances, réservations : le rappel part tout seul depuis votre planning.
Alertes métier
Transaction, seuil de stock, incident : prévenez la bonne personne immédiatement.
CRM, ERP et SaaS
Ajoutez l'envoi de SMS à votre logiciel ou proposez-le à vos propres clients.
Tous langages
PHP, Laravel, Python, Django, Node.js, Java, .NET, Go : si votre code fait du HTTP, il envoie des SMS.
Codes de vérification
Envoyer des codes OTP par SMS, en toute sécurité
Votre application génère et vérifie le code ; SMS Gold l'achemine immédiatement vers le téléphone de l'utilisateur. Vous gardez la maîtrise complète de la logique de sécurité.
SMS transactionnels et OTPBonnes pratiques recommandées
- Code aléatoire de 6 chiffres, généré côté serveur (jamais dans le navigateur).
- Durée de validité courte : 5 à 10 minutes.
- Nombre d'essais limité (par exemple 5), puis nouveau code obligatoire.
- Délai minimal entre deux demandes pour un même numéro.
- Stockez une empreinte (hash) du code, pas le code en clair, et ne l'écrivez pas dans vos logs.
- Message clair : « Votre code MONAPPLI est 482913. Il expire dans 10 min. Ne le communiquez à personne. »
Sécurité et limites
Conçue pour la production
HTTPS uniquement
Toutes les requêtes et réponses sont chiffrées en transit.
Clés révocables
Une clé par environnement ou par application, jusqu'à 5 clés actives. Révocation immédiate depuis votre espace.
Expéditeurs contrôlés
Seuls vos noms d'expéditeur approuvés sont acceptés : personne ne peut envoyer en votre nom.
Un destinataire par requête
Pour un envoi à une liste, bouclez sur vos destinataires ou utilisez les campagnes de l'interface web.
Format international
Numéros au format E.164 : +225 suivi des 10 chiffres.
Secrets hors du code
Stockez votre clé dans une variable d'environnement, jamais dans une application mobile ou un dépôt public.
Questions sur l'API SMS
Comment utiliser l'API SMS ?
Générez une clé API depuis Paramètres → Clés API (jusqu'à 5 clés actives), puis envoyez une requête POST à https://smsgold.tornixtech.com/api/v2/sms/send avec le numéro, le message et votre nom d'expéditeur. La documentation complète, avec des exemples en PHP, Python, Node.js et cURL, est publique.
Puis-je envoyer des codes OTP (codes de vérification) ?
Oui. Votre application génère le code, l'envoie par SMS via l'API SMS Gold, puis le vérifie de son côté. Le SMS part immédiatement après votre requête, avec votre nom d'expéditeur.
Que se passe-t-il si un SMS n'est pas envoyé ?
Si l'opérateur rejette l'envoi de façon certaine (numéro invalide, service injoignable), le crédit est remboursé automatiquement sur votre compte. En cas de coupure réseau pendant l'envoi, le crédit n'est pas remboursé car le SMS a pu être transmis.
Qu'est-ce qu'un nom d'expéditeur (Sender ID) ?
C'est le nom qui s'affiche à la place d'un numéro quand vos clients reçoivent votre SMS, par exemple « MABOUTIQUE ». Il comporte jusqu'à 11 caractères alphanumériques et doit correspondre à votre activité. Chaque demande est vérifiée par notre équipe sous 2 à 3 jours ouvrés. Le premier nom d'expéditeur est inclus dans la mise en service.
Mes données et celles de mes contacts sont-elles protégées ?
Toutes les communications sont chiffrées (HTTPS), les clés API sont révocables à tout moment et vous pouvez activer la double authentification sur votre compte. Aucune donnée n'est vendue à des tiers. Le traitement est conforme à la loi ivoirienne n° 2013-450 relative à la protection des données personnelles.
Intégrez le SMS à votre application dès aujourd'hui
Créez votre compte gratuitement, générez votre clé API et testez l'envoi depuis votre code.