GabrielGateway

API · SMS sécurisés · OTP · Envois en masse

Vos codes de connexion et vos SMS, envoyés par une API simple et sûre.

GabrielGateway relie vos applications au réseau mobile. Une requête HTTPS suffit pour envoyer un code de vérification ou une campagne, et vous suivez chaque message jusqu'à sa livraison.

Ce que GabrielGateway fait pour vous

Codes de connexion (OTP)

Donnez une durée de vie à chaque code : s'il n'a pas pu partir à temps, il est abandonné au lieu d'arriver périmé. Une limite par numéro empêche d'inonder un destinataire.

Envois en masse

Quota journalier et débit par minute propres à chaque client. Votre identifiant de message rend chaque nouvel essai sans risque : un même message n'est jamais envoyé deux fois.

Suivi de livraison

Envoyé, livré ou échoué : chaque changement d'état arrive sur votre webhook, signé en HMAC-SHA256 et renvoyé pendant environ une journée tant que vous ne l'avez pas reçu.

Sécurité

Une clé API par client, dont seule l'empreinte est conservée. HTTPS partout, et chiffrement du texte et du destinataire de bout en bout possible.

Confidentialité

Le texte de vos SMS n'est jamais enregistré : seuls le destinataire et l'état de livraison sont conservés, pour votre suivi.

Espace client

Suivez votre forfait et sa date de fin, remplacez une clé perdue et demandez un renouvellement ou une recharge, sans attendre.

Comment ça marche

  1. Vous recevez votre clé

    Contactez-nous : nous ouvrons votre compte et vous remettons votre clé API.

  2. Votre serveur appelle l'API

    Une requête POST /api/v1/messages avec le numéro et le texte. L'API vérifie votre clé, votre forfait et vos limites, puis transmet le message.

  3. Le SMS part et vous êtes prévenu

    Le message est envoyé depuis un numéro mobile local par le réseau de l'opérateur. Son état vous parvient par webhook ou à la demande.

L'API en bref

Appelez toujours l'API depuis votre serveur, jamais depuis une application mobile ou une page web : la clé pourrait y être extraite.

RequêteUsage
POST /api/v1/messagesEnvoyer un SMS
GET /api/v1/messages/{id}Suivre sa livraison
GET /api/v1/messagesLister vos derniers messages
GET /api/v1/meLire votre forfait et tester votre clé

Numéros au format international (E.164), par exemple +243812345678. Texte de 1600 caractères au plus.

Envoyer un code de connexion

curl -X POST https://votre-domaine/api/v1/messages \
  -H 'Authorization: Bearer sk_live_…' \
  -H 'Content-Type: application/json' \
  -d '{
    "id": "otp-8f2c",
    "to": "+243812345678",
    "text": "Votre code est 482913",
    "ttlSeconds": 300
  }'

Réponse 202 Accepted

{"id":"otp-8f2c","status":"accepted",
 "state":"Pending","createdAt":"…"}

Forfaits prépayés

Chaque SMS accepté est décompté de votre forfait. Un message refusé par le téléphone vous est rendu.

Hebdomadaire

7 jours

Pour un lancement, un test ou une campagne ponctuelle. Rappel la veille de la fin.

Mensuel

1 mois

Pour un usage régulier comme les codes de connexion. Rappel 3 jours avant la fin.

Vous choisissez le nombre de SMS. Vous êtes prévenu par email à 75 %, 50 % et 25 % restants, puis à l'épuisement. Les SMS non utilisés à la fin de la période sont perdus. Pour un tarif, contactez le support.

Support

Une question, un message qui n'arrive pas, un forfait à renouveler : nous sommes là pour vous aider.

Pour un message précis, indiquez-nous son identifiant (id) et l'heure de l'envoi : nous le retrouverons plus vite.

Questions fréquentes

L'API répond 401

La clé est absente, mal copiée ou a été remplacée. Envoyez-la dans l'en-tête Authorization: Bearer sk_live_…. Si vous l'avez perdue, remplacez-la dans l'espace client : l'ancienne cesse aussitôt de fonctionner.

L'API répond 402

credits_exhausted : votre forfait est épuisé. package_expired : sa période est terminée. Demandez un renouvellement ou une recharge depuis l'espace client.

L'API répond 429

rate_limited : trop de requêtes par minute, attendez le délai indiqué par l'en-tête Retry-After. quota_exceeded : quota du jour atteint, il se réinitialise à minuit UTC. recipient_limit : ce numéro a reçu trop de messages dans l'heure.

L'API répond 409 duplicate_id

Cet identifiant a déjà servi : rien n'a été envoyé une deuxième fois. C'est voulu, pour réessayer sans risque après une coupure. Utilisez un nouvel id pour un nouveau message.

Mon message est Failed ou n'arrive pas

202 signifie que le message a été accepté, pas encore livré. Vérifiez le numéro, puis son état avec GET /api/v1/messages/{id}. Un code de connexion dont la durée de vie (ttlSeconds) est dépassée finit en Failed : envoyez-en un nouveau. Prévoyez aussi une autre méthode de connexion, l'email par exemple.

Comment vérifier les webhooks ?

L'en-tête X-Webhook-Signature vaut sha256= suivi du HMAC-SHA256 hexadécimal de X-Webhook-Timestamp, d'un point et du corps brut, avec votre secret. Répondez 2xx en moins de 10 secondes, et ignorez un événement déjà traité.