API SMS gratuite : envoyez 1 000 SMS par mois depuis votre code
Votre téléphone Android devient une passerelle SMS : 1 000 SMS offerts chaque mois, envoyés depuis PHP, Python ou Node.js par une simple requête HTTP.
En bref : ChapChapSend propose une API SMS gratuite jusqu’à 1 000 SMS par mois. Le principe : vous installez une application sur un téléphone Android, et ce téléphone envoie depuis sa carte SIM les SMS que votre code commande par une simple requête HTTP. Pas de pack à acheter, pas de nom d’expéditeur à faire valider, pas de serveur à héberger.
Un code de vérification à l’inscription. Une confirmation de commande. Une alerte quand votre serveur tombe à 3 h du matin. Tôt ou tard, votre application doit envoyer un SMS.
Et à ce moment-là, la facture commence : un prix par message, un pack à acheter d’avance, un nom d’expéditeur à faire valider. Pour un projet qui démarre, une application interne ou un projet personnel, l’envoi de SMS coûte souvent plus cher que tout l’hébergement.
Pourtant, vous avez déjà dans la poche de quoi envoyer des SMS : un téléphone et sa carte SIM. Ce guide vous montre comment en faire votre passerelle SMS, et comment envoyer vos premiers messages en PHP, Python ou Node.js en moins d’un quart d’heure.
Comment fonctionne une API SMS gratuite avec votre téléphone
Une API SMS classique passe par un opérateur, avec qui le fournisseur a signé un contrat, et vous refacture chaque message. La passerelle personnelle de ChapChapSend passe par votre propre carte SIM.
Le trajet d’un SMS :
- Votre code appelle l’API ChapChapSend :
POST /api/integrations/sms/send-template, avec un texte que ChapChapSend a validé. - Le serveur vérifie vos crédits et met le message en file d’attente.
- L’application ChapChapSend SMS Gateway, installée sur votre téléphone Android, récupère les messages en attente.
- Le téléphone envoie le SMS depuis sa SIM, puis indique au serveur si le message est parti, remis ou en échec.
- Votre code consulte le statut du message quand il le souhaite.
Le serveur fait foi. Si votre téléphone s’éteint ou perd le réseau, rien n’est perdu : les messages attendent et repartent dès qu’il revient.
Ce qui est gratuit, exactement
Pas de petites lignes. Voici le modèle, tel qu’il est appliqué :
- 1 000 crédits offerts chaque mois. Vous les réclamez d’un clic dans le portail, une fois par mois. Ils ne se cumulent pas : ceux d’un mois passé ne comptent plus.
- Un crédit = un SMS, débité à l’envoi.
- Un SMS en échec vous est rendu. Si la SIM n’a pas pu émettre le message, ou si l’opérateur ne l’a pas remis, le crédit revient sur votre compte.
- Au-delà de 1 000 SMS, la recharge coûte 1 FCFA par SMS, de 1 000 à 25 000 FCFA. Ces crédits-là n’expirent pas. Les crédits offerts sont toujours consommés en premier.
Un point à garder en tête : le SMS part de votre SIM, donc votre opérateur le décompte selon votre forfait, comme n’importe quel SMS tapé à la main. Avec un forfait qui inclut des SMS, l’envoi ne vous coûte rien de plus.
Tutoriel : mettre en place votre passerelle SMS en 6 étapes
Comptez une quinzaine de minutes, téléphone compris, plus la validation de votre texte : sous 24 h, en général une trentaine de minutes.
1. Choisir la passerelle personnelle
Créez votre compte sur portail.chapchapsend.com, puis ouvrez SMS ▸ Paramètres. Dans Type de passerelle, choisissez Passerelle Personnelle, et indiquez le numéro de la SIM qui enverra les messages.
2. Installer l’application passerelle sur Android
Téléchargez ChapChapSend SMS Gateway sur le téléphone qui servira de passerelle (Android 7 ou plus récent). Connectez-vous avec l’adresse e-mail de votre compte : un code vous est envoyé, pas de mot de passe à retenir.
L’application vous demande deux autorisations, et les deux comptent :
- l’envoi de SMS, sans quoi rien ne part ;
- l’exemption d’optimisation de batterie, sans quoi Android endort l’application au bout de quelques minutes et vos SMS cessent de partir sans prévenir.
L’application ne demande ni la lecture de vos SMS, ni l’accès à vos contacts. Elle envoie, et c’est tout.
3. Réclamer vos 1 000 SMS gratuits du mois
Dans SMS ▸ Facturation, cliquez sur Réclamer mes 1 000 crédits. À refaire chaque mois.
4. Créer votre clé d’API SMS
Ouvrez Développeurs ▸ Clés d’API, activez l’accès développeur, puis créez une clé avec la permission sms:send. La clé commence par ccs_live_… : chaque SMS envoyé par l’API consomme un crédit, comme un SMS envoyé depuis le portail.
La clé n’est affichée qu’une seule fois. Nous n’en gardons qu’une empreinte : copiez-la tout de suite dans une variable d’environnement, CHAPCHAPSEND_API_KEY. Si vous la perdez, révoquez-la et créez-en une autre.
5. Faire valider le texte de votre SMS
ChapChapSend répond des SMS qui partent par son canal : comme WhatsApp avec ses modèles approuvés par Meta, un SMS part d’un template validé. Dans le portail, ouvrez SMS ▸ Templates et créez le texte, avec ses variables entre doubles accolades :
Votre code de vérification est {{code}}.
Donnez un exemple pour chaque variable (4821 pour code) : c’est le message tel qu’il sera reçu que nous relisons. La validation intervient sous 24 h, en général en une trentaine de minutes, et un e-mail vous l’annonce. Copiez alors l’identifiant du template, affiché sur sa carte.
6. Envoyer votre premier SMS
Une seule requête, un seul en-tête d’authentification : X-Api-Key. Le numéro s’écrit au format international E.164, par exemple +221771234567.
curl -X POST https://api.chapchapsend.com/api/integrations/sms/send-template \
-H "X-Api-Key: $CHAPCHAPSEND_API_KEY" \
-H "Content-Type: application/json" \
-d '{"to": "+221771234567", "template_id": "0199a4b8-3d2c-7e41-9a6f-8b1c0d2e5f37", "variables": {"code": "4821"}}'
La réponse contient l’identifiant du message, à conserver pour suivre son statut :
{
"message_id": "0199a4c2-5e1f-7b3a-9c8d-2f6e1a4b7c90",
"to": "+221771234567",
"template_id": "0199a4b8-3d2c-7e41-9a6f-8b1c0d2e5f37",
"template_name": "Code de vérification",
"status": "sent"
}
Envoyer un SMS en PHP, Python ou Node.js
Le même appel, dans les trois langages les plus utilisés pour les sites et les backends. Le template utilisé ici, « Votre commande {{numero}} est prête. », a été validé au préalable.
Envoyer un SMS en PHP
Avec l’extension cURL, présente sur la quasi-totalité des hébergements PHP :
<?php
$ch = curl_init("https://api.chapchapsend.com/api/integrations/sms/send-template");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"X-Api-Key: " . getenv("CHAPCHAPSEND_API_KEY"),
"Content-Type: application/json",
],
CURLOPT_POSTFIELDS => json_encode([
"to" => "+221771234567",
"template_id" => "0199a4b8-3d2c-7e41-9a6f-8b1c0d2e5f37",
"variables" => ["numero" => "#1042"],
]),
]);
$body = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($status >= 300) {
throw new RuntimeException($body["detail"]);
}
echo $body["message_id"];
Envoyer un SMS en Python
Avec requests :
import os
import requests
response = requests.post(
"https://api.chapchapsend.com/api/integrations/sms/send-template",
headers={"X-Api-Key": os.environ["CHAPCHAPSEND_API_KEY"]},
json={
"to": "+221771234567",
"template_id": "0199a4b8-3d2c-7e41-9a6f-8b1c0d2e5f37",
"variables": {"numero": "#1042"},
},
timeout=15,
)
response.raise_for_status()
print(response.json()["message_id"])
Envoyer un SMS en Node.js
Avec Node.js 18 ou plus récent, sans aucune dépendance :
const response = await fetch(
"https://api.chapchapsend.com/api/integrations/sms/send-template",
{
method: "POST",
headers: {
"X-Api-Key": process.env.CHAPCHAPSEND_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
to: "+221771234567",
template_id: "0199a4b8-3d2c-7e41-9a6f-8b1c0d2e5f37",
variables: { numero: "#1042" },
}),
},
);
if (!response.ok) throw new Error((await response.json()).detail);
const { message_id } = await response.json();
Vous préférez ne rien écrire ? La page Développeurs propose des fichiers de service prêts à déposer dans votre projet, en Python, Node.js et TypeScript, avec l’envoi en masse et la gestion des erreurs déjà prêts.
Envoyer un code OTP par SMS
La vérification par SMS est l’usage le plus courant d’une API SMS. Votre application génère le code, le garde avec une date d’expiration, l’envoie, puis le compare à ce que l’utilisateur saisit. ChapChapSend se charge uniquement de l’envoi, à partir d’un template validé comme « Votre code MonApp : {{code}}. Valable 10 minutes. ».
import secrets
OTP_TEMPLATE_ID = os.environ["CHAPCHAPSEND_OTP_TEMPLATE_ID"]
code = f"{secrets.randbelow(1_000_000):06d}"
requests.post(
"https://api.chapchapsend.com/api/integrations/sms/send-template",
headers={"X-Api-Key": os.environ["CHAPCHAPSEND_API_KEY"]},
json={"to": numero, "template_id": OTP_TEMPLATE_ID, "variables": {"code": code}},
timeout=15,
).raise_for_status()
Utilisez secrets plutôt que random : un code de vérification doit être imprévisible. Et réservez le téléphone passerelle à vos codes : une campagne envoyée depuis la même SIM les ferait attendre leur tour.
Suivre la remise d’un SMS
L’envoi vous répond immédiatement. Pour savoir si le SMS est bien arrivé, consultez son statut :
curl https://api.chapchapsend.com/api/integrations/sms/messages/0199a4c2-5e1f-7b3a-9c8d-2f6e1a4b7c90 \
-H "X-Api-Key: $CHAPCHAPSEND_API_KEY"
Le champ status passe à delivered quand l’opérateur confirme la remise, ou à failed si le message n’a pas pu partir : dans ce cas, votre crédit vous est rendu. Si l’opérateur ne renvoie aucun accusé de remise, le message reste à sent.
Tous vos envois par l’API se retrouvent aussi dans le portail, sous Développeurs ▸ Historique.
Les erreurs de l’API SMS et comment les corriger
Chaque refus arrive avec un message en français qui dit quoi faire, dans le champ detail :
| Code | Ce qui se passe | Quoi faire |
|---|---|---|
400 | Numéro mal formé | Écrire le numéro en E.164 : +221771234567 |
401 | Clé absente ou invalide | Vérifier l’en-tête X-Api-Key |
402 | Plus de crédits | Réclamer les crédits du mois ou recharger |
403 | Clé sans la permission sms:send | Créer une clé avec cette permission |
404 | Template inconnu | Copier l’identifiant depuis SMS ▸ Templates |
409 | Template pas encore validé | Attendre l’e-mail de validation, ou corriger un texte refusé |
409 | Téléphone passerelle absent, hors ligne ou en pause | Ouvrir l’application, vérifier le réseau et renvoyer |
410 | Envoi d’un texte libre (/sms/send), retiré | Passer par /sms/send-template et un template validé |
422 | Variable du template manquante | Passer chaque variable dans variables |
Le 409 du téléphone mérite une précision : un téléphone qui ne s’est pas manifesté depuis deux minutes est considéré comme hors ligne, et l’envoi est refusé tout de suite plutôt que mis en attente sans fin. Votre code sait immédiatement que le message n’est pas parti.
Les limites d’une passerelle SMS gratuite
La passerelle personnelle est gratuite parce qu’elle utilise votre SIM. Elle en a donc aussi les contraintes.
Environ 200 SMS par heure, pas davantage. L’application espace volontairement ses envois : quelques secondes entre deux messages, une pause toutes les vingt, un plafond par heure. Un opérateur ne juge pas un SMS, il juge un rythme : une SIM grand public qui envoie des centaines de messages à la minute se fait bloquer. Cette cadence protège votre ligne, et elle n’est pas réglable.
Le destinataire voit votre numéro, pas le nom de votre entreprise. C’est parfait pour un code de vérification ou un rappel, moins pour une campagne de marque.
Le téléphone doit rester allumé, avec du réseau. Un ancien téléphone branché sur secteur, dans un coin du bureau, fait très bien l’affaire.
Android uniquement. iOS n’autorise pas une application à envoyer des SMS en arrière-plan.
Passerelle personnelle, passerelle Pro ou passerelle auto-hébergée ?
Il existe aussi des applications qui transforment un téléphone Android en petit serveur SMS, à exposer vous-même sur le réseau. Voici comment les trois approches se comparent :
| Passerelle personnelle ChapChapSend | Passerelle Pro ChapChapSend | Application auto-hébergée | |
|---|---|---|---|
| Prix | 1 000 SMS offerts par mois, puis 1 FCFA | Packs prépayés, dès 1 500 FCFA | Selon l’application |
| Expéditeur affiché | Votre numéro | Le nom de votre entreprise | Votre numéro |
| Serveur à héberger | Aucun | Aucun | Le téléphone, ou votre serveur |
| File d’attente et reprise | Oui, côté serveur | Oui | À construire |
| Débit | Environ 200 SMS par heure | Envoi en masse | Limité par la SIM |
| Idéal pour | Codes, notifications, alertes | Campagnes, gros volumes | Bricolage, domotique |
La passerelle personnelle et la passerelle Pro passent par la même API : le jour où votre volume l’exige, vous changez de passerelle dans les paramètres, et votre code ne bouge pas d’une ligne. Tout le détail de l’offre Pro est sur la page SMS et sur la page Tarifs.
Ce que vous pouvez construire dès aujourd’hui
- La vérification par SMS à l’inscription ou à la connexion de vos utilisateurs.
- Les notifications de commande : reçue, expédiée, livrée.
- Les rappels de rendez-vous la veille, pour un cabinet, un salon, une auto-école.
- Les alertes de supervision : votre serveur ne répond plus, un paiement a échoué, un stock passe sous le seuil. Un SMS arrive même quand vous n’avez pas internet.
Vous hésitez encore entre SMS et WhatsApp pour vos notifications ? Nous avons comparé les deux canaux dans SMS ou WhatsApp : lequel choisir pour votre commerce ?
Mille SMS par mois, c’est plus de trente par jour. Pour la plupart des projets qui démarrent, c’est assez pour ne jamais payer l’envoi.
Questions fréquentes
Existe-t-il une API SMS vraiment gratuite ?
Oui. Avec la passerelle personnelle ChapChapSend, les SMS partent de la carte SIM de votre propre téléphone Android. ChapChapSend offre 1 000 crédits par mois, à réclamer depuis le portail : un crédit correspond à un SMS. Seul votre opérateur décompte le SMS, selon votre forfait, comme un SMS envoyé à la main.
Comment envoyer un SMS gratuit depuis un site web ou une application ?
Installez l'application ChapChapSend SMS Gateway sur un téléphone Android, choisissez la passerelle personnelle dans le portail, créez une clé d'API et faites valider le texte de votre SMS depuis SMS ▸ Templates (en général en une trentaine de minutes). Envoyez ensuite une requête POST sur https://api.chapchapsend.com/api/integrations/sms/send-template avec l'en-tête X-Api-Key et un corps JSON contenant le numéro (to), l'identifiant du template (template_id) et ses variables.
Combien de SMS gratuits peut-on envoyer par mois ?
1 000 SMS par mois, soit plus de 30 par jour. Les crédits offerts se réclament une fois par mois et ne se cumulent pas d'un mois sur l'autre. Au-delà, la recharge coûte 1 FCFA par SMS, de 1 000 à 25 000 FCFA, et ces crédits rechargés n'expirent pas.
Peut-on envoyer des codes OTP par SMS gratuitement ?
Oui. Votre application génère le code, l'envoie par l'API ChapChapSend et le vérifie elle-même. Le SMS part en quelques secondes quand la file est vide ; évitez de faire partir une campagne depuis le même téléphone, car les codes attendraient leur tour.
Faut-il un nom d'expéditeur pour utiliser l'API SMS gratuite ?
Non. Avec la passerelle personnelle, le destinataire voit le numéro de la SIM qui envoie, et aucune validation de nom d'expéditeur n'est nécessaire. Pour afficher le nom de votre entreprise, il faut passer par la passerelle Pro, derrière la même API.
La passerelle SMS fonctionne-t-elle avec Orange, Free et Expresso ?
Oui. Le SMS part de votre propre carte SIM : il fonctionne avec l'opérateur de cette SIM, Orange, Free ou Expresso au Sénégal, et vers tous les numéros que cette SIM peut joindre.
Que se passe-t-il si le téléphone passerelle est éteint ?
L'API refuse l'envoi avec une erreur 409 dès que le téléphone ne s'est pas manifesté depuis deux minutes : votre code sait tout de suite que le message n'est pas parti. Un message déjà en file et non envoyé est remboursé, puis repart quand le téléphone revient.
Peut-on utiliser un iPhone comme passerelle SMS ?
Non. iOS n'autorise pas une application à envoyer des SMS en arrière-plan. La passerelle fonctionne sur Android 7 ou plus récent ; un ancien téléphone branché sur secteur suffit.
Combien de SMS la passerelle peut-elle envoyer par heure ?
Environ 200 SMS par heure. L'application espace ses envois de quelques secondes et fait une pause toutes les vingt, pour que l'opérateur ne bloque pas la ligne. Pour des envois en masse, la passerelle Pro prend le relais.