Référence API CUTUMA
Une référence unique pour intégrer l'envoi SMS, la gestion des contacts et des campagnes sans dépendre du dashboard.
Auth claire
Utilisez Authorization: Bearer <api-key> ou x-api-key.
Idempotence
Ajoutez Idempotency-Key sur les mutations pour rejouer sans doublons.
Request IDs
Chaque réponse porte un X-Request-Id pour corréler logs et support.
Débit contrôlé
POST /v1/sms/send — headers X-RateLimit-* signalent le solde.
POST https://cutuma.com/api/v1/sms/send
Authorization: Bearer at_live_xxx
Idempotency-Key: 3b0d0fa7-6f8d-4d8d-95e1-8a0bf8a1f0d1
Content-Type: application/json
{
"to": "+243810000000",
"message": "Votre code est 482019",
"senderName": "CUTUMA"
}
202 Accepted
{
"success": true,
"queued": true,
"status": "accepted",
"count": 1,
"remainingQuota": 999,
"provider": {
"code": "cutuma",
"messageId": "42",
"httpStatus": 202
}
}
L'envoi SMS API est asynchrone
202 Accepted signifie que CUTUMA a validé la requête, persisté le message et l'a placé dans la file d'envoi.
Identifiant fournisseur — provider.messageId référence le log interne. Suivez le statut via le dashboard ou les webhooks.
Migration client — Acceptez les succès 2xx, utilisez Idempotency-Key, puis suivez le statut via reporting.
Endpoints API v1
Base URL : https://cutuma.com/api/v1 —
tous les chemins ci-dessous sont relatifs à cette racine.
Platform
Découverte du service, santé et contrat OpenAPI.
| Méthode | Chemin | Description | Auth |
|---|---|---|---|
| GET |
/
|
Métadonnées API, liens docs et endpoints disponibles. | Public |
| GET |
/health
|
Health check pour monitoring et intégrations. | Public |
| GET |
/openapi.json
|
Contrat OpenAPI 3.1 — JSON ou interface interactive. | Public |
/
Métadonnées API, liens docs et endpoints disponibles.
/health
Health check pour monitoring et intégrations.
/openapi.json
Contrat OpenAPI 3.1 — JSON ou interface interactive.
Compte & usage
Quota, solde SMS et historique de consommation.
| Méthode | Chemin | Description | Auth |
|---|---|---|---|
| GET |
/account
|
Profil organisation, email et quota restant. | Bearer |
| GET |
/usage
|
Historique d'utilisation et statistiques. | Bearer |
/account
Profil organisation, email et quota restant.
/usage
Historique d'utilisation et statistiques.
SMS
Envoi unitaire asynchrone avec idempotence.
| Méthode | Chemin | Description | Auth |
|---|---|---|---|
| POST |
/sms/send
|
Accepte un SMS (202 Accepted), décrémente le quota. | Bearer |
/sms/send
Accepte un SMS (202 Accepted), décrémente le quota.
Contacts
Carnet d'adresses de l'organisation.
| Méthode | Chemin | Description | Auth |
|---|---|---|---|
| GET |
/contacts
|
Liste paginée des contacts. | Bearer |
| POST |
/contacts
|
Création d'un contact. | Bearer |
| DELETE |
/contacts?id={id}
|
Suppression par identifiant (query string). | Bearer |
/contacts
Liste paginée des contacts.
/contacts
Création d'un contact.
/contacts?id={id}
Suppression par identifiant (query string).
Campagnes
Diffusion SMS en masse.
| Méthode | Chemin | Description | Auth |
|---|---|---|---|
| GET |
/campaigns
|
Liste des campagnes et statistiques. | Bearer |
| POST |
/campaigns
|
Création et lancement d'une campagne. | Bearer |
/campaigns
Liste des campagnes et statistiques.
/campaigns
Création et lancement d'une campagne.
Sender IDs
Identités d'expéditeur approuvées.
| Méthode | Chemin | Description | Auth |
|---|---|---|---|
| GET |
/sender-ids
|
Liste des Sender IDs et statuts. | Bearer |
| POST |
/sender-ids
|
Demande d'un nouveau Sender ID. | Bearer |
/sender-ids
Liste des Sender IDs et statuts.
/sender-ids
Demande d'un nouveau Sender ID.
Clés API
Gestion des clés pour l'authentification Bearer.
| Méthode | Chemin | Description | Auth |
|---|---|---|---|
| GET |
/api-keys
|
Liste des clés (préfixes masqués). | Bearer |
| POST |
/api-keys
|
Création — le secret n'est affiché qu'une fois. | Bearer |
| DELETE |
/api-keys/{apiKeyId}
|
Révocation d'une clé. | Bearer |
/api-keys
Liste des clés (préfixes masqués).
/api-keys
Création — le secret n'est affiché qu'une fois.
/api-keys/{apiKeyId}
Révocation d'une clé.
Webhooks
Notifications HTTP sur les événements SMS.
| Méthode | Chemin | Description | Auth |
|---|---|---|---|
| GET |
/webhooks
|
Liste des endpoints webhook configurés. | Bearer |
| POST |
/webhooks
|
Création + secret de signature HMAC. | Bearer |
| DELETE |
/webhooks/{webhookEndpointId}
|
Suppression d'un endpoint. | Bearer |
/webhooks
Liste des endpoints webhook configurés.
/webhooks
Création + secret de signature HMAC.
/webhooks/{webhookEndpointId}
Suppression d'un endpoint.
Authentification
Header Authorization: Bearer at_live_…
ou x-api-key.
Mutations : ajoutez Idempotency-Key.
Quickstart JavaScript
Intégrez votre premier SMS en Node.js avec le SDK officiel.
Guides de démarrage
Quickstart JavaScript →
SDK Node.js, réponse 202, idempotence et webhooks.
Exemples d'intégration →
Curl et SDK pour SMS, contacts, campagnes et webhooks.
SDK JavaScript officiel →
Installation, sendSms, contrat 202 et helpers webhook.
Erreurs et retries →
Codes d'erreur, règles de replay et rôle des request IDs (OpenAPI).
# 1. Vérifier la santé de l'API
curl https://cutuma.com/api/v1/health
# 2. Consulter votre compte
curl https://cutuma.com/api/v1/account \
-H "Authorization: Bearer at_live_VOTRE_CLE"
# 3. Envoyer un SMS
curl -X POST https://cutuma.com/api/v1/sms/send \
-H "Authorization: Bearer at_live_VOTRE_CLE" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"to":"+243812000000","message":"Hello API","senderName":"CUTUMA"}'
Webhooks
Synchronisez l'état d'un message sans polling.
message.delivered
Marquer une livraison réussie dans votre système.
message.failed
Erreurs provider ou non-délivrance.
Premiers pas
- 1. Créez un compte puis générez une clé API dans le dashboard.
- 2. Appelez
GET /v1/healthpour valider le contexte. - 3. Envoyez un SMS via
POST /v1/sms/sendavecIdempotency-Key. - 4. Traitez
202 Acceptedcomme l'acceptation plateforme.