Référence API

Documentation de l'API EPOO

Tous les endpoints sont accessibles en HTTPS et attendent un corps JSON. Chaque appel décrémente votre solde de crédit — vérifiez-le depuis votre tableau de bord.

Authentification

Chaque requête doit inclure votre clé API dans l'en-tête X-API-Key. Générez une clé depuis l'espace client — elle n'est affichée en clair qu'une seule fois.

X-API-Key: epoo_live_XXXXXXXXXXXXXXXXXXXXXXXX

À la création, vous choisissez les services que la clé peut utiliser, canal par canal : Alertes SMS, OTP SMS, Automatisation SMS, Alertes Email, OTP Email, Automatisation Email. Un appel à un endpoint hors de la portée de la clé renvoie 403.

POST

/v1/sms/send — Alertes SMS

Envoie un SMS transactionnel (notification, alerte, confirmation).

curl -X POST https://epoo-api.appwrite.network/sms/send \
  -H "X-API-Key: epoo_live_XXXX" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "221771234567",
    "message": "Votre commande #4521 a été expédiée"
  }'

Réponse 200

{ "status": "sent", "messageId": "sms_abc123" }

Erreurs : 401 clé invalide, 402 crédit insuffisant, 502 échec opérateur (crédit non débité).

POST

/v1/otp/send — Envoyer un code

Génère un code à 6 chiffres, valable 5 minutes, et l'envoie par SMS.

curl -X POST https://epoo-api.appwrite.network/otp/send \
  -H "X-API-Key: epoo_live_XXXX" \
  -H "Content-Type: application/json" \
  -d '{ "to": "221771234567" }'

Réponse 200

{ "status": "sent" }
POST

/v1/otp/verify — Vérifier un code

Vérifie le code saisi par l'utilisateur. Ne décrémente pas de crédit.

curl -X POST https://epoo-api.appwrite.network/otp/verify \
  -H "X-API-Key: epoo_live_XXXX" \
  -H "Content-Type: application/json" \
  -d '{ "to": "221771234567", "code": "482913" }'

Réponse 200

{ "verified": true }
// ou { "verified": false, "reason": "expired" | "mismatch" | "not_found" | "too_many_attempts" }
POST

/v1/messages/schedule — Automatisation SMS

Planifie l'envoi d'un SMS à une date future (ISO 8601). Le crédit est vérifié au moment de l'envoi, pas à la planification.

curl -X POST https://epoo-api.appwrite.network/messages/schedule \
  -H "X-API-Key: epoo_live_XXXX" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "221771234567",
    "message": "Rappel : rendez-vous demain à 10h",
    "sendAt": "2026-08-20T09:00:00.000Z"
  }'

Réponse 200

{ "status": "scheduled", "id": "sched_abc123", "sendAt": "2026-08-20T09:00:00.000Z" }
POST

/v1/email/send — Alertes Email

Envoie un email transactionnel (notification, alerte, confirmation). Consomme 1 crédit du bundle Email — indépendant du crédit SMS.

curl -X POST https://epoo-api.appwrite.network/email/send \
  -H "X-API-Key: epoo_live_XXXX" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "client@exemple.com",
    "subject": "Votre commande a été expédiée",
    "message": "Votre commande #4521 a été expédiée."
  }'

Réponse 200

{ "status": "sent", "messageId": "0100019..." }

Erreurs : 401 clé invalide, 402 crédit insuffisant, 502 échec du fournisseur email (crédit non débité).

POST

/v1/email-otp/send — Envoyer un code par email

Génère un code à 6 chiffres, valable 5 minutes, et l'envoie par email.

curl -X POST https://epoo-api.appwrite.network/email-otp/send \
  -H "X-API-Key: epoo_live_XXXX" \
  -H "Content-Type: application/json" \
  -d '{ "to": "client@exemple.com" }'

Réponse 200

{ "status": "sent" }
POST

/v1/email-otp/verify — Vérifier un code email

Vérifie le code saisi par l'utilisateur. Ne décrémente pas de crédit.

curl -X POST https://epoo-api.appwrite.network/email-otp/verify \
  -H "X-API-Key: epoo_live_XXXX" \
  -H "Content-Type: application/json" \
  -d '{ "to": "client@exemple.com", "code": "482913" }'

Réponse 200

{ "verified": true }
// ou { "verified": false, "reason": "expired" | "mismatch" | "not_found" | "too_many_attempts" }
POST

/v1/emails/schedule — Automatisation Email

Planifie l'envoi d'un email à une date future (ISO 8601). Le crédit est vérifié au moment de l'envoi, pas à la planification.

curl -X POST https://epoo-api.appwrite.network/emails/schedule \
  -H "X-API-Key: epoo_live_XXXX" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "client@exemple.com",
    "subject": "Rappel de rendez-vous",
    "message": "Rappel : rendez-vous demain à 10h",
    "sendAt": "2026-08-20T09:00:00.000Z"
  }'

Réponse 200

{ "status": "scheduled", "id": "sched_abc123", "sendAt": "2026-08-20T09:00:00.000Z" }

Codes d'erreur communs

CodeSignification
400Champ requis manquant ou invalide
401Clé API manquante, invalide ou révoquée
402Crédit insuffisant (sur le canal SMS ou Email concerné)
403Clé API valide mais sans la portée requise pour cet endpoint
405Méthode HTTP non autorisée (seul POST est accepté)
502Erreur du fournisseur SMS ou Email — crédit non débité