Retour aux docs APIIntegration cookbook

Exemples prêts à brancher

Curl pour le diagnostic rapide, SDK JavaScript pour un backend Node propre. Les exemples suivent les routes réellement exposées par la plateforme publique.

JavaScript SDK

Exemple Node.js

import crypto from 'node:crypto';
import { CoussemaClient } from '@coussema/sdk-js';

const client = new CoussemaClient({
  baseUrl: process.env.COUSSEMA_BASE_URL ?? 'https://api.coussema.com',
  apiKey: process.env.COUSSEMA_API_KEY ?? '',
});

const sms = await client.sendSms(
  {
    to: '243810000000',
    message: 'Bonjour depuis Coussema.',
    senderName: 'COUSSEMA',
  },
  {
    idempotencyKey: crypto.randomUUID(),
    requestId: 'docs-example-001',
  }
);

const contacts = await client.listContacts({ limit: 20 });

console.log(sms.data.provider.messageId, contacts.data.items.length);

Envoyer un SMS

Mutation idempotente minimale avec corrélation explicite et réponse traçable.

curl -X POST https://api.coussema.com/v1/sms/send \
  -H 'Authorization: Bearer ck_live_xxx' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 7228b5c7-cb1d-43c0-8d68-2e9f68a5fba5' \
  -H 'X-Request-Id: send-001' \
  -d '{
    "to": "243810000000",
    "message": "Votre code est 482019",
    "senderName": "COUSSEMA",
    "clientReference": "order-482019"
  }'

Créer un contact

Le contact rejoint immédiatement le runtime partagé du dashboard et des campagnes.

curl -X POST https://api.coussema.com/v1/contacts \
  -H 'Authorization: Bearer ck_live_xxx' \
  -H 'Content-Type: application/json' \
  -H 'X-Request-Id: contact-create-001' \
  -d '{
    "firstName": "Amina",
    "lastName": "Mbayo",
    "phoneNumber": "243810000000",
    "tags": ["clients-vip", "kinshasa"]
  }'

Planifier une campagne

Le worker se charge ensuite du staging, des retries provider et des webhooks sortants.

curl -X POST https://api.coussema.com/v1/campaigns \
  -H 'Authorization: Bearer ck_live_xxx' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 26b7af09-c8b0-4b11-b0b5-99a3e2d82d90' \
  -d '{
    "name": "Lancement Avril",
    "content": "Notre offre est disponible jusqu a dimanche.",
    "senderName": "COUSSEMA",
    "scheduledAt": "2026-04-10T08:00:00.000Z",
    "recipients": [
      "243810000000",
      "243820000000"
    ]
  }'

Créer un webhook sortant

Le secret de signature est renvoyé une seule fois. Conservez-le immédiatement.

curl -X POST https://api.coussema.com/v1/webhooks \
  -H 'Authorization: Bearer ck_live_xxx' \
  -H 'Content-Type: application/json' \
  -d '{
    "url": "https://example.com/webhooks/coussema",
    "subscribed_events": ["message.delivered", "message.failed"]
  }'