Documentation v1.3

L'API pour les entreprises modernes.

Intégrez proSMS dans votre infrastructure en quelques minutes. Nos APIs RESTful vous permettent d'automatiser vos communications SMS de manière évolutive et sécurisée.

Prêt pour le déploiement ?

Toutes nos APIs utilisent des URL de base sécurisées. Assurez-vous d'utiliser vos clés API générées dans votre espace client.

BASE_URL https://www.prosms.ci/api/v1

Authentification

L'accès à l'API est sécurisé par un couple d'identifiants Client ID et Client Secret, à générer depuis la page Accès API de votre espace client. Vous devez inclure ces identifiants dans les en-têtes HTTP de chaque requête.

HTTP Headers
X-Client-ID: votre_client_id
X-Client-Secret: votre_client_secret
Content-Type: application/json

Ne partagez jamais votre Client Secret dans des environnements côté client (navigateurs, etc.).

Envoi de SMS

Envoyez des messages SMS à travers le monde vers plus de 190 pays.

POST /sms/send
ParamètreTypeDescription
recipients Requis array Liste des numéros au format international (ex: +225...), au moins un numéro
message Requis string Le contenu du message (max 1000 caractères — 160 car. par segment en encodage standard, 70 en Unicode)
sender_name Optionnel string Votre Sender ID approuvé (max 11 caractères). Une valeur non approuvée est rejetée (403)
cURL Request
curl -X POST https://www.prosms.ci/api/v1/sms/send \
-H "X-Client-ID: v_id" -H "X-Client-Secret: v_secret" \
-H "Content-Type: application/json" \
-d '{
  "recipients": ["+2250701020304"],
  "message": "Bonjour de l'API proSMS!",
  "sender_name": "PROSMS"
}'
Réponse 200
{
  "success": true,
  "data": {
    "campaign_id": 128,
    "recipients_count": 1,
    "sent": 1,
    "failed": 0,
    "credits_used": 1,
    "credits_remaining": 499
  },
  "results": [ ... ]
}

Chaque envoi crée une campagne consultable via l'API de statut et dans votre espace client.

SMS OTP (Vérification)

Sécurisez vos transactions et authentifications par des codes à usage unique envoyés par SMS. Chaque envoi d'OTP consomme 1 crédit SMS.

Envoyer un code

POST /otp/send
ParamètreTypeDescription
phone Requis string Numéro ivoirien (0XXXXXXXXX ou +225XXXXXXXXXX)
length Optionnel int Nombre de chiffres du code (4 à 8, défaut : 6)
validity_minutes Optionnel int Durée de validité du code (1 à 30 minutes, défaut : 5)
sender_id Optionnel string Nom d'expéditeur (max 11 caractères, défaut : ProSMS)
message_template Optionnel string Modèle du message (max 500 car.) avec les variables {code} et {validity}. Défaut : « Votre code de vérification est : {code}. Valide pendant {validity} minutes. »
Réponse 200
{
  "success": true,
  "message": "OTP envoyé avec succès",
  "data": {
    "otp_id": 42,
    "phone": "+2250701020304",
    "expires_at": "2026-07-03T10:15:00+00:00",
    "sms_sent": true
  }
}

Limite anti-abus : 3 OTP maximum par numéro et par heure (erreur 429 au-delà).

Vérifier un code

POST /otp/verify
ParamètreTypeDescription
phone Requis string Le numéro qui a reçu le code
code Requis string Le code saisi par l'utilisateur (4 à 8 chiffres)
Réponse 200 — code valide
{
  "success": true,
  "message": "Code OTP valide",
  "data": { "verified": true, "otp_id": 42, "phone": "+2250701020304" }
}
Réponse 422 — code invalide
{
  "success": false,
  "message": "Code OTP invalide",
  "data": { "verified": false, "remaining_attempts": 2 }
}

Un 404 est retourné si aucun OTP valide n'existe pour ce numéro (code expiré ou jamais envoyé). Le nombre de tentatives est limité ; au-delà, générez un nouveau code.

Statut de campagne

Consultez l'état de vos envois : chaque appel à /sms/send crée une campagne dont vous pouvez suivre les compteurs.

GET /campaigns

Retourne vos 100 dernières campagnes (id, nom, compteurs d'envoi et de livraison, taux de succès, statut).

GET /campaigns/{id}
Réponse 200
{
  "success": true,
  "data": {
    "id": 128,
    "name": "API - 03/07/2026",
    "type": "sms",
    "message": "Bonjour de l'API proSMS!",
    "sender": "PROSMS",
    "recipients_count": 1,
    "sent_count": 1,
    "delivered_count": 1,
    "failed_count": 0,
    "success_rate": 100,
    "status": "completed",
    "created_at": "2026-07-03T10:12:00+00:00",
    "completed_at": "2026-07-03T10:12:05+00:00"
  }
}

Compte & solde

Récupérez les informations de votre compte et votre solde de crédits SMS — pratique pour surveiller votre consommation et déclencher des alertes de recharge.

GET /account
Réponse 200
{
  "success": true,
  "data": {
    "name": "Jean Kouassi",
    "email": "jean@entreprise.ci",
    "company": "Mon Entreprise",
    "sms_credits": 499
  }
}

Codes d'erreurs

L'API utilise les codes de réponse HTTP standard pour indiquer le succès ou l'échec d'une requête.

CodeLabelDescription
200OKLa requête a réussi.
401UnauthorizedClient ID / Client Secret invalides, absents, ou identifiant désactivé.
402Payment RequiredCrédits SMS insuffisants (la réponse indique required et available).
403ForbiddenSender ID non approuvé pour votre compte.
404Not FoundRessource introuvable (campagne inexistante, OTP expiré ou absent).
422ValidationDonnées transmises incorrectes (le détail est dans errors).
429Too Many RequestsLimite atteinte (ex : 3 OTP par numéro et par heure).

Besoin d'aide supplémentaire ?

Notre équipe technique est disponible pour vous accompagner dans votre intégration.