Developer Platform

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.

Exemple de requête · v1 Simple, explicite, traçable
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 fournisseurprovider.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.

Explorer dans Swagger UI →

Platform

Découverte du service, santé et contrat OpenAPI.

GET Public
/

Métadonnées API, liens docs et endpoints disponibles.

GET Public
/health

Health check pour monitoring et intégrations.

GET Public
/openapi.json

Contrat OpenAPI 3.1 — JSON ou interface interactive.

Compte & usage

Quota, solde SMS et historique de consommation.

GET Bearer
/account

Profil organisation, email et quota restant.

GET Bearer
/usage

Historique d'utilisation et statistiques.

SMS

Envoi unitaire asynchrone avec idempotence.

POST Bearer
/sms/send

Accepte un SMS (202 Accepted), décrémente le quota.

Contacts

Carnet d'adresses de l'organisation.

GET Bearer
/contacts

Liste paginée des contacts.

POST Bearer
/contacts

Création d'un contact.

DELETE Bearer
/contacts?id={id}

Suppression par identifiant (query string).

Campagnes

Diffusion SMS en masse.

GET Bearer
/campaigns

Liste des campagnes et statistiques.

POST Bearer
/campaigns

Création et lancement d'une campagne.

Sender IDs

Identités d'expéditeur approuvées.

GET Bearer
/sender-ids

Liste des Sender IDs et statuts.

POST Bearer
/sender-ids

Demande d'un nouveau Sender ID.

Clés API

Gestion des clés pour l'authentification Bearer.

GET Bearer
/api-keys

Liste des clés (préfixes masqués).

POST Bearer
/api-keys

Création — le secret n'est affiché qu'une fois.

DELETE Bearer
/api-keys/{apiKeyId}

Révocation d'une clé.

Webhooks

Notifications HTTP sur les événements SMS.

GET Bearer
/webhooks

Liste des endpoints webhook configurés.

POST Bearer
/webhooks

Création + secret de signature HMAC.

DELETE Bearer
/webhooks/{webhookEndpointId}

Suppression d'un endpoint.

Authentification

Header Authorization: Bearer at_live_… ou x-api-key. Mutations : ajoutez Idempotency-Key.

Tester un endpoint →

Quickstart JavaScript

Intégrez votre premier SMS en Node.js avec le SDK officiel.

Voir le guide →

Guides de démarrage

quickstart — curl
# 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.

Guide webhooks complet →

Premiers pas

  1. 1. Créez un compte puis générez une clé API dans le dashboard.
  2. 2. Appelez GET /v1/health pour valider le contexte.
  3. 3. Envoyez un SMS via POST /v1/sms/send avec Idempotency-Key.
  4. 4. Traitez 202 Accepted comme l'acceptation plateforme.