Aller au contenu
FR EN
Créer un compte
Retour à l'accueil

SMS & OTP

Envoyez des SMS de notification, des campagnes et des codes OTP depuis votre application avec une API REST. Chaque SMS est payé avec vos crédits, sans abonnement.

API REST stable
Envoi programmé
Prépayé, sans abonnement
Callisto
12:04

Promo

Bonjour Aïcha, profitez de -20% sur votre prochaine commande avec le code WELCOME20.

il y a 1 min

Code de vérification

482·193

expire dans 5 min

Un canal, plusieurs usages

Un SMS arrive sur tous les téléphones, même sans Internet. Voici à quoi il sert le plus souvent.

Notifications

Confirmations de commande, rappels de rendez-vous, mises à jour de livraison.

Marketing

Une campagne part en une requête vers toute une liste de numéros, tout de suite ou à l'heure choisie.

OTP & 2FA

Codes à usage unique pour inscription, connexion et opérations sensibles.

Alertes

Alertes urgentes pour vos équipes d'astreinte.

OTP en trois étapes

Génération, livraison et vérification gérées côté API — vous appelez deux endpoints, nous gérons le reste.

1

Demande de code

Votre backend appelle POST /otp/send avec un numéro de téléphone.

2

Livraison SMS

Callisto génère un code, de 6 chiffres par défaut, et l'envoie par SMS ou par WhatsApp à l'utilisateur.

3

Vérification

L'utilisateur saisit le code. Vous appelez POST /otp/verify et recevez un statut.

Intégration en quelques lignes

Notre API REST est utilisable depuis n'importe quel langage. Voici trois exemples.

cURL Envoyer un SMS
# Envoyer un SMS
curl -X POST \
  https://api.callistosignal.com/v1/sms/send \
  -u 'ak_xxx:sk_xxx' \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+22507XXXXXXXX",
    "message": "Votre commande #4821 est expédiée."
  }'
PHP Demander un OTP
// Envoyer un code OTP, valable 5 minutes
$ch = curl_init('https://api.callistosignal.com/v1/otp/send');
curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_USERPWD => 'ak_xxx:sk_xxx',
  CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
  CURLOPT_POSTFIELDS => json_encode([
    'to' => '+22507XXXXXXXX',
    'message' => 'Votre code de vérification est {code}',
    'expired_in' => 300,
  ]),
  CURLOPT_RETURNTRANSFER => true,
]);
$otp = json_decode(curl_exec($ch), true);
Node.js Vérifier un OTP
// Vérifier le code saisi, avec l'id renvoyé à l'envoi
const res = await fetch(
  'https://api.callistosignal.com/v1/otp/verify',
  {
    method: 'POST',
    headers: {
      'Authorization': 'Basic ' + btoa('ak_xxx:sk_xxx'),
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      otp_id: otp.id,
      code:  '482193',
    }),
  }
);
const { verified } = await res.json();

Tout votre trafic SMS, en un coup d'œil

L'historique des envois et le statut de chaque message, sans interroger l'API.

app.callistosignal.com/sms/dashboard
Exemple

Envoyés aujourd'hui

12 480

OTP vérifiés

3 142

aujourd'hui

Top pays

CI

SN · BJ · ML

Envois sur 24h

UTC+0

Messages récents

10 derniers
Destinataire Message Statut Envoyé
+225 07 12 34 56 78 Votre commande #4821 est expédiée. Envoyé 12:04
+221 77 88 99 00 Code de vérification : 482193 Envoyé 12:03
+229 96 12 34 56 Promo -20% avec WELCOME20. Envoyé 12:02
+223 65 43 21 09 Alerte : seuil de monitoring atteint. En cours 12:01
+225 05 67 89 01 Rappel : rendez-vous demain à 10h. Envoyé 11:58

Tarification simple et transparente

Pas d'abonnement : chaque SMS est débité de vos crédits au moment de l'envoi.

SMS Local

Dans votre pays

Vers un numéro du pays de votre compte.

15 FCFA / SMS

SMS International

Vers l'étranger

Vers les autres pays desservis.

30 FCFA / SMS

Gros volumes ? Contactez-nous : un tarif propre à votre compte est possible.

Questions fréquentes

Quels pays sont couverts ?

Les SMS partent vers les pays que Callisto dessert. Un numéro du pays de votre compte est au tarif local, les autres au tarif international. L'API refuse un numéro d'un pays non desservi, sans rien débiter.

Combien de temps un code OTP reste-t-il valide ?

Vous fixez la durée à chaque demande, d'une minute à 24 heures. L'utilisateur a trois essais pour saisir le bon code.

Puis-je personnaliser l'expéditeur (Sender ID) ?

Oui : un nom de 2 à 11 lettres ou chiffres, demandé depuis le tableau de bord. Notre équipe le valide, puis vous prévient par e-mail.

Comment suivre un message ?

Chaque message a un identifiant. Vous suivez son statut avec GET /v1/sms/{id} ou dans le tableau de bord.

Y a-t-il des limites de débit ?

30 requêtes d'envoi et 60 requêtes de lecture par minute. Pour une campagne, un seul appel à /v1/sms/send accepte toute une liste de numéros.

Prêt à envoyer votre premier SMS ?

Créez un compte, rechargez vos crédits par mobile money et envoyez votre premier SMS.