ChatIn API v1

Référence de l'API · v1

Documentation API 10nastie

L'API 10nastie permet à votre site ou votre application d'envoyer des messages WhatsApp à vos clients, depuis votre propre numéro, via l'API officielle de WhatsApp. Elle sert aux confirmations de commande, suivis de livraison, rappels et codes de vérification.

URL de base https://api.[votre-domaine]/v1

Les requêtes et les réponses sont en JSON, encodées en UTF-8. Les numéros de téléphone s'écrivent au format international, avec l'indicatif pays : +2250700000000.

Démarrer en trois étapes

  1. Connectez votre numéro WhatsApp depuis votre tableau de bord, puis créez une clé API dans Paramètres > API.
  2. Choisissez un modèle de message déjà validé, par exemple confirmation_commande.
  3. Envoyez votre premier message :
curl -X POST https://api.[votre-domaine]/v1/messages \
  -H "Authorization: Bearer sk_test_VOTRE_CLE" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+2250700000000",
    "template": "confirmation_commande",
    "variables": ["Aminata", "4521", "15 000"]
  }'
Clé de test

Avec une clé de test, le message est simulé : vous recevez une réponse et des notifications comme en production, sans envoi réel ni décompte de votre forfait.

Authentification

Chaque requête doit porter votre clé API dans l'en-tête Authorization, sous la forme Bearer <clé>. Une requête sans clé, ou avec une clé révoquée, reçoit l'erreur 401 invalid_api_key.

Authorization: Bearer sk_live_VOTRE_CLE
Type de cléPréfixeEffet
Testsk_test_Messages simulés, notifications envoyées, aucun décompte
Productionsk_live_Messages réellement envoyés et décomptés de votre forfait

Vous pouvez créer plusieurs clés, par exemple une par site ou par environnement, et en révoquer une à tout moment depuis Paramètres > API. Une clé n'est affichée qu'une seule fois, à sa création.

Gardez vos clés côté serveur

Ne les placez jamais dans une application mobile, dans du code JavaScript exécuté dans le navigateur ou dans un dépôt de code public. Si une clé a fuité, révoquez-la immédiatement et créez-en une nouvelle.

Messages

Envoyer un message

POST /messages envoie un message WhatsApp à un destinataire. L'API répond immédiatement avec le statut queued ; la livraison, la lecture ou l'échec vous sont ensuite signalés par webhook.

Message à partir d'un modèle

POST/messages

C'est le cas le plus courant : tout message que vous envoyez en premier doit utiliser un modèle validé par WhatsApp.

Paramètres du corps

tochaîneobligatoire
Numéro du destinataire au format international, par exemple +2250700000000.
templatechaîneobligatoire
Nom du modèle validé.
languagechaîne
Langue du modèle, fr par défaut.
variablestableauselon le modèle
Valeurs de {{1}}, {{2}}… dans l'ordre du modèle.
header_media_urlchaîne
Image ou document d'en-tête, en https, si le modèle en prévoit un.
button_url_suffixchaîne
Fin de l'adresse du bouton lien, par exemple le numéro de commande.
referencechaîne
Votre identifiant interne, renvoyé dans les webhooks (64 caractères max.).

Réponse 202 Accepted

{
  "id": "msg_01J8Q2Z7K4",
  "status": "queued",
  "to": "+2250700000000",
  "template": "confirmation_commande",
  "category": "utilitaire",
  "units": 1,
  "reference": "commande-4521",
  "created_at": "2026-09-27T10:42:18Z"
}

units indique combien de messages de votre forfait cet envoi consomme : 1 en Afrique, 4 hors d'Afrique.

Exemple de requête

curl -X POST "https://api.[votre-domaine]/v1/messages" \n  -H "Authorization: Bearer sk_test_VOTRE_CLE" \n  -H "Content-Type: application/json" \n  -H "Idempotency-Key: commande-4521-confirmation" \n  -d '{
    "to": "+2250700000000",
    "template": "confirmation_commande",
    "variables": [
      "Aminata",
      "4521",
      "15 000"
    ],
    "button_url_suffix": "4521",
    "reference": "commande-4521"
  }'

Message libre dans la fenêtre de 24 heures

POST/messages

Quand un client vous a écrit dans les dernières 24 heures, vous pouvez lui répondre sans modèle, avec type: "text". Hors de cette fenêtre, l'API refuse l'envoi avec l'erreur window_closed : utilisez alors un modèle.

tochaîneobligatoire
Numéro du client au format international.
typechaîneobligatoire
Toujours "text" pour un message libre.
textchaîneobligatoire
Contenu du message.

Exemple de requête

curl -X POST "https://api.[votre-domaine]/v1/messages" \n  -H "Authorization: Bearer sk_test_VOTRE_CLE" \n  -H "Content-Type: application/json" \n  -d '{
    "to": "+2250700000000",
    "type": "text",
    "text": "Votre commande sera livrée entre 14 h et 16 h."
  }'

Envoyer un code de vérification

POST/otp/send

Génère un code à 6 chiffres et l'envoie avec votre modèle d'authentification. Vous n'avez rien à stocker : conservez seulement l'otp_id renvoyé.

tochaîneobligatoire
Numéro du destinataire.
templatechaîneobligatoire
Modèle de catégorie authentification.
expires_inentier
Durée de validité en secondes, de 60 à 900.
{ "otp_id": "otp_01J8Q3A1BC", "status": "queued", "expires_at": "2026-09-27T10:52:18Z" }

Exemple de requête

curl -X POST "https://api.[votre-domaine]/v1/otp/send" \n  -H "Authorization: Bearer sk_test_VOTRE_CLE" \n  -H "Content-Type: application/json" \n  -d '{
    "to": "+2250700000000",
    "template": "code_connexion",
    "expires_in": 600
  }'

Vérifier un code

POST/otp/verify

Vérifie le code saisi par l'utilisateur. Un code est valable pour une seule vérification réussie et au maximum 5 essais.

otp_idchaîneobligatoire
Identifiant renvoyé par POST /otp/send.
codechaîneobligatoire
Code à 6 chiffres saisi par l'utilisateur.
{ "valid": true }

Exemple de requête

curl -X POST "https://api.[votre-domaine]/v1/otp/verify" \n  -H "Authorization: Bearer sk_test_VOTRE_CLE" \n  -H "Content-Type: application/json" \n  -d '{
    "otp_id": "otp_01J8Q3A1BC",
    "code": "482913"
  }'

Envoi groupé

POST/messages/batch

Accepte jusqu'à 100 messages par requête, dans un tableau messages au même format qu'un envoi simple. La réponse contient un résultat par message, dans le même ordre : un message refusé n'empêche pas l'envoi des autres.

Pour les gros volumes, préférez cet endpoint aux envois un par un : il ménage votre limite de 20 requêtes par seconde.

Exemple de requête

curl -X POST "https://api.[votre-domaine]/v1/messages/batch" \n  -H "Authorization: Bearer sk_test_VOTRE_CLE" \n  -H "Content-Type: application/json" \n  -d '{
    "messages": [
      {
        "to": "+2250700000000",
        "template": "confirmation_commande",
        "variables": [
          "Aminata",
          "4521",
          "15 000"
        ]
      },
      {
        "to": "+2250711111111",
        "template": "commande_livree",
        "variables": [
          "Koffi",
          "4522"
        ]
      }
    ]
  }'

Consulter un message

GET/messages/{id}

Renvoie le message et son dernier statut.

StatutSignification
queuedAccepté par l'API, en attente d'envoi
sentTransmis à WhatsApp
deliveredArrivé sur le téléphone du destinataire
readLu par le destinataire, si ses accusés de lecture sont activés
failedNon livré ; le champ error en donne la raison

Exemple de requête

curl -X GET "https://api.[votre-domaine]/v1/messages/msg_01J8Q2Z7K4" \n  -H "Authorization: Bearer sk_test_VOTRE_CLE"

Lister les messages

GET/messages

Liste vos messages, par pages de 50, du plus récent au plus ancien.

statuschaîne
Filtre par statut : queued, sent, delivered, read, failed.
tochaîne
Filtre par destinataire.
referencechaîne
Filtre par votre identifiant interne.
since · untildate ISO 8601
Bornes de date de création.

Exemple de requête

curl -X GET "https://api.[votre-domaine]/v1/messages?status=delivered&since=2026-09-01T00:00:00Z" \n  -H "Authorization: Bearer sk_test_VOTRE_CLE"

Ne pas envoyer deux fois

Ajoutez un en-tête Idempotency-Key unique par envoi, par exemple commande-4521-confirmation. Si votre serveur renvoie la même requête après une coupure réseau, l'API renvoie la première réponse sans renvoyer le message. Une clé reste mémorisée 24 heures.

Réutiliser la même clé avec un contenu différent renvoie 409 idempotency_conflict.

Modèles

Modèles de messages

Un modèle doit être validé par WhatsApp avant tout envoi ; la validation prend en général de quelques minutes à 24 heures. Vous pouvez partir de notre bibliothèque de modèles prêts à l'emploi, ou créer les vôtres par l'API ou le tableau de bord.

Catégories

La catégorie détermine le prix et les règles d'usage. WhatsApp peut reclasser un modèle s'il ne correspond pas à la catégorie choisie.

CatégorieUsageExemples
utilitaireInformation liée à une action du clientConfirmation de commande, suivi de livraison, rappel de paiement ou de rendez-vous
authentificationCode à usage uniqueCode de connexion ou de validation
marketingTout message promotionnelSoldes, nouveautés, relance de panier

Un message utilitaire qui contient une promotion est classé en marketing, et facturé comme tel.

Créer un modèle

POST/templates

Soumet un modèle à la validation. Fournissez un exemple réaliste pour chaque variable : WhatsApp s'en sert pour juger le modèle.

Règles de nommage et de rédaction

  • nom en minuscules, chiffres et tirets bas uniquement, 512 caractères au plus ;
  • le texte ne commence ni ne finit par une variable, et deux variables ne se suivent pas ;
  • 1 024 caractères au plus dans le corps, 60 dans le pied de page ;
  • 3 boutons au plus.

Les modèles d'authentification ont un texte imposé par WhatsApp : vous choisissez seulement d'ajouter la mention de sécurité, la durée de validité et le bouton « Copier le code ».

Exemple de requête

curl -X POST "https://api.[votre-domaine]/v1/templates" \n  -H "Authorization: Bearer sk_test_VOTRE_CLE" \n  -H "Content-Type: application/json" \n  -d '{
    "name": "livraison_en_cours",
    "category": "utilitaire",
    "language": "fr",
    "body": "Bonjour {{1}}, votre commande n°{{2}} est en route. Le livreur vous appellera à l'''arrivée.",
    "examples": [
      "Aminata",
      "4521"
    ],
    "footer": "Boutique Chez Awa",
    "buttons": [
      {
        "type": "url",
        "text": "Suivre ma commande",
        "url": "https://chezawa.ci/suivi/{{1}}",
        "example": "4521"
      }
    ]
  }'

Suivre la validation

GET/templates

Liste vos modèles et leur statut de validation.

StatutSignification
pendingEn cours d'examen par WhatsApp
approvedUtilisable
rejectedRefusé ; le champ rejection_reason indique pourquoi
pausedSuspendu par WhatsApp après trop de signalements ou de blocages

Vous êtes aussi prévenu par les webhooks template.approved, template.rejected et template.paused.

Exemple de requête

curl -X GET "https://api.[votre-domaine]/v1/templates" \n  -H "Authorization: Bearer sk_test_VOTRE_CLE"

Consulter un modèle

GET/templates/{name}

Renvoie un modèle, son contenu et son statut.

Exemple de requête

curl -X GET "https://api.[votre-domaine]/v1/templates/confirmation_commande" \n  -H "Authorization: Bearer sk_test_VOTRE_CLE"

Supprimer un modèle

DELETE/templates/{name}

Supprime le modèle. Un nom supprimé ne peut pas être réutilisé pendant 30 jours.

Exemple de requête

curl -X DELETE "https://api.[votre-domaine]/v1/templates/livraison_en_cours" \n  -H "Authorization: Bearer sk_test_VOTRE_CLE"

Webhooks

Webhooks

Les webhooks envoient à votre serveur, en temps réel, les changements de statut de vos messages et les réponses de vos clients. Vous déclarez une adresse https et les événements qui vous intéressent, dans Paramètres > API > Webhooks ou par l'API.

Déclarer un webhook

POST/webhooks
urlchaîneobligatoire
Adresse https de votre serveur.
eventstableauobligatoire
Événements à recevoir (voir la liste ci-dessous).
{ "id": "wh_01J8Q4", "secret": "whsec_..." }

Le secret n'est affiché qu'à la création : conservez-le pour vérifier les signatures.

Exemple de requête

curl -X POST "https://api.[votre-domaine]/v1/webhooks" \n  -H "Authorization: Bearer sk_test_VOTRE_CLE" \n  -H "Content-Type: application/json" \n  -d '{
    "url": "https://chezawa.ci/api/whatsapp/webhook",
    "events": [
      "message.delivered",
      "message.read",
      "message.failed",
      "message.received"
    ]
  }'

Événements

ÉvénementEnvoyé quand
message.sentLe message a été transmis à WhatsApp
message.deliveredLe message est arrivé sur le téléphone du destinataire
message.readLe destinataire a lu le message
message.failedLe message n'a pas pu être livré
message.receivedUn client vous a écrit ou a cliqué sur un bouton
template.approved, template.rejected, template.pausedLe statut d'un modèle a changé
limit.updatedVotre limite quotidienne de destinataires a changé
quality.updatedLa note de qualité de votre numéro a changé
quota.lowIl reste moins de 20 % de votre forfait

Format

{
  "id": "evt_01J8Q5M2XR",
  "type": "message.delivered",
  "created_at": "2026-09-27T10:42:21Z",
  "data": {
    "message_id": "msg_01J8Q2Z7K4",
    "to": "+2250700000000",
    "status": "delivered",
    "reference": "commande-4521"
  }
}

Pour message.received, data contient l'expéditeur (from), le type (text, image, document, audio, location, button), le contenu et, s'il s'agit d'une réponse, l'identifiant du message d'origine (context.message_id).

Vérifier la signature

Chaque requête porte deux en-têtes : X-Signature-Timestamp et X-Signature, qui vaut sha256= suivi du HMAC-SHA256 de timestamp.corps_brut avec votre secret. Rejetez toute requête dont la signature ne correspond pas, ou dont l'horodatage a plus de 5 minutes.

const crypto = require("crypto");

function signatureValide(corpsBrut, timestamp, signature, secret) {
  const attendu = "sha256=" + crypto
    .createHmac("sha256", secret)
    .update(timestamp + "." + corpsBrut)
    .digest("hex");
  const recent = Math.abs(Date.now() / 1000 - Number(timestamp)) < 300;
  return recent && crypto.timingSafeEqual(Buffer.from(attendu), Buffer.from(signature));
}

Répondre et gérer les relances

Répondez par un code 2xx en moins de 5 secondes, puis traitez l'événement en arrière-plan. Sans réponse 2xx, nous renvoyons l'événement jusqu'à 8 fois sur 24 heures, à intervalles croissants. Après 24 heures d'échecs, le webhook est désactivé et vous êtes prévenu par e-mail.

Un même événement peut arriver deux fois, et pas toujours dans l'ordre : utilisez son id pour ignorer les doublons, et ne faites jamais reculer un statut (un message read ne redevient pas delivered).

Limites

Limites

Trois limites s'appliquent : celle de WhatsApp sur le nombre de destinataires par jour, celle de l'API sur le nombre de requêtes, et celle de votre forfait. GET /account/usage les renvoie toutes les trois à tout moment.

Destinataires par 24 heures (règle WhatsApp)

WhatsApp limite le nombre de personnes différentes à qui vous pouvez écrire en premier sur 24 heures glissantes. Les messages envoyés à un client qui vous a écrit dans les dernières 24 heures ne comptent pas, et un même client ne compte qu'une fois, même s'il reçoit plusieurs messages.

NiveauDestinataires par 24 hComment l'atteindre
Départ250À la connexion du numéro, entreprise vérifiée ou non
22 000Envois réguliers de bonne qualité, ou vérification de l'entreprise
310 000Augmentation automatique selon le volume et la qualité
4100 000Augmentation automatique selon le volume et la qualité
5IllimitéAugmentation automatique selon le volume et la qualité

La limite est partagée entre tous les numéros de votre compte. Au-delà, l'API renvoie 429 messaging_limit_reached : réessayez après l'heure indiquée dans le champ retry_after. Le webhook limit.updated vous prévient quand votre niveau change.

Réserve pour les codes

Pour qu'un pic de confirmations ne bloque jamais les connexions, les 50 dernières places de la journée sont réservées aux codes de vérification. Vous pouvez modifier ou désactiver cette réserve dans Paramètres > API.

Requêtes par seconde

Chaque clé peut faire 20 requêtes par seconde. Au-delà, l'API renvoie 429 rate_limited avec l'en-tête Retry-After. Pour les gros volumes, utilisez POST /messages/batch plutôt que des envois un par un.

Forfait et consommation

GET/account/usage

Chaque envoi est décompté de votre forfait mensuel, puis de votre solde de recharge. Quand les deux sont épuisés, l'API renvoie 402 insufficient_quota. Le webhook quota.low vous prévient quand il reste moins de 20 % de votre forfait.

Réponse 200 OK

{
  "plan": "api_pro",
  "period_end": "2026-10-31",
  "transactional": { "included": 3500, "used": 2140 },
  "authentication": { "included": 500, "used": 212 },
  "topup_balance_fcfa": 4000,
  "messaging_limit": { "tier": 250, "used_last_24h": 183, "reserved_for_codes": 50 },
  "quality": "high"
}

Exemple de requête

curl -X GET "https://api.[votre-domaine]/v1/account/usage" \n  -H "Authorization: Bearer sk_test_VOTRE_CLE"

Erreurs

En cas d'erreur, l'API renvoie un code HTTP et un objet error avec un code stable, que votre programme peut tester, et un message en français, destiné à vos développeurs.

{
  "error": {
    "code": "template_not_approved",
    "message": "Le modèle livraison_en_cours est en cours d'examen par WhatsApp.",
    "request_id": "req_01J8Q6T0PZ"
  }
}

Communiquez le request_id au support : il nous permet de retrouver votre requête.

HTTPCodeCauseQue faire
400invalid_requestParamètre manquant ou mal forméCorriger la requête d'après le message
401invalid_api_keyClé absente, erronée ou révoquéeVérifier l'en-tête Authorization
402insufficient_quotaForfait et solde épuisésRecharger ou changer de forfait
403number_not_connectedNuméro WhatsApp déconnecté ou suspenduLe reconnecter depuis le tableau de bord
404template_not_foundModèle inconnu dans cette langueVérifier le nom et language
409idempotency_conflictMême Idempotency-Key avec un contenu différentUtiliser une clé unique par envoi
422template_not_approvedModèle en attente, refusé ou suspenduAttendre la validation ou le corriger
422variables_mismatchNombre de variables différent du modèleEnvoyer une valeur par variable
422invalid_phone_numberNuméro mal écritFormat international : +225…
422window_closedMessage libre hors fenêtre de 24 hUtiliser un modèle
429messaging_limit_reachedLimite WhatsApp de destinataires atteinteRéessayer après retry_after
429rate_limitedPlus de 20 requêtes par secondeRalentir, respecter Retry-After
500internal_errorErreur de notre côtéRéessayer avec la même Idempotency-Key
502whatsapp_unavailableWhatsApp ne répond pasRéessayer après quelques secondes

Échecs après acceptation

Un message accepté (202) peut encore échouer à la livraison. Vous le saurez par le webhook message.failed, dont le champ error.code peut valoir :

CodeCause
recipient_not_on_whatsappLe numéro n'a pas de compte WhatsApp
recipient_blockedLe destinataire a bloqué votre numéro
marketing_not_deliveredWhatsApp a limité les messages marketing reçus par ce destinataire
message_expiredLe téléphone est resté injoignable trop longtemps

Ces messages ne sont pas décomptés de votre forfait.

Quand réessayer

Réessayez uniquement les erreurs 429, 500 et 502, avec un délai qui double à chaque essai (1 s, 2 s, 4 s…) et la même Idempotency-Key. Les erreurs 4xx restantes ne se corrigent pas en réessayant.

Forfaits et décompte

Chaque forfait API inclut un nombre de messages par mois, payé en FCFA par Orange Money, MTN ou Wave. Seuls les messages livrés sont décomptés ; les messages que vos clients vous envoient sont gratuits.

API Essentiel

10 000 FCFA / mois

  • 1 200 messages transactionnels
  • 200 codes de vérification
  • Support WhatsApp

API Volume

Sur devis

  • Messages selon besoin
  • Codes selon besoin
  • Interlocuteur dédié

Tous les forfaits incluent la documentation, les webhooks, l'extension WooCommerce et 1 000 réponses libres par mois dans la fenêtre de 24 heures.

Au-delà du forfait

Les envois supplémentaires sont déduits de votre solde de recharge :

Type de messagePrix
Message transactionnel (utilitaire)12 FCFA
Code de vérification20 FCFA
Réponse libre au-delà de 1 000 par mois12 FCFA
Message marketing (non inclus dans les forfaits API)50 FCFA

Pays des destinataires

Un prix unique s'applique à toute l'Afrique de l'Ouest et du Centre. Un message envoyé hors d'Afrique compte pour 4 messages ; le champ units de chaque réponse indique ce décompte.

Report et validité

Les messages non utilisés passent sur le mois suivant si vous renouvelez votre forfait, puis expirent. Les recharges restent valables 3 mois.

Entreprises non vérifiées

Sans documents d'entreprise, vos envois sont limités à 250 destinataires par jour (voir Limites). C'est suffisant pour l'API Essentiel. Pour l'API Pro, nous vous accompagnons pour faire vérifier votre entreprise et lever cette limite.

Extension WooCommerce

L'extension WordPress envoie automatiquement vos messages WhatsApp à chaque étape d'une commande WooCommerce, sans écrire de code.

Installation

  1. Téléchargez l'extension depuis votre tableau de bord, dans Paramètres > API > WooCommerce.
  2. Dans WordPress, ouvrez Extensions > Ajouter > Téléverser une extension, choisissez le fichier, puis activez-la.
  3. Ouvrez WooCommerce > WhatsApp et collez votre clé API de production.
  4. Choisissez l'indicatif par défaut (+225 pour la Côte d'Ivoire) : il est ajouté aux numéros saisis sans indicatif par vos clients.
  5. Associez un modèle à chaque étape de commande que vous voulez signaler.

Étapes et variables

Étape WooCommerceModèle conseilléVariables disponibles
Commande reçue (En attente, En cours)confirmation_commandePrénom, numéro de commande, montant
Commande expédiée (statut personnalisé)livraison_en_coursPrénom, numéro de commande, transporteur
Commande terminéecommande_livreePrénom, numéro de commande
Commande annulée ou rembourséecommande_annuleePrénom, numéro de commande, montant

L'extension utilise le numéro de téléphone de facturation de la commande et envoie chaque message une seule fois par étape, même si le statut est modifié plusieurs fois.

Consentement

L'extension ajoute à la page de paiement une case « Recevoir le suivi de ma commande sur WhatsApp », cochée par défaut pour les messages transactionnels. Si le client la décoche, aucun message ne lui est envoyé. Aucun message marketing n'est envoyé par l'extension.

Journal

WooCommerce > WhatsApp > Journal affiche, pour chaque commande, les messages envoyés et leur statut (envoyé, livré, lu, échec). La même information apparaît dans les notes de la commande.

Bonnes pratiques et règles d'utilisation

La qualité de votre numéro dépend de la façon dont vos clients reçoivent vos messages : trop de blocages ou de signalements font baisser votre limite, puis suspendent vos modèles.

Ce que vous devez faire

  • N'écrire qu'à des clients qui ont accepté de recevoir vos messages WhatsApp, et garder la trace de cet accord.
  • Choisir la bonne catégorie de modèle, et envoyer les promotions séparément des messages transactionnels.
  • Ajouter un bouton « Ne plus recevoir » à vos modèles marketing, et retirer immédiatement de vos listes les clients qui l'utilisent.
  • Enregistrer les numéros au format international dès la saisie, par exemple +2250700000000.
  • Conserver l'id de chaque message et suivre les webhooks, plutôt qu'interroger l'API en boucle.
  • Tester avec une clé sk_test_ avant de passer en production.

Ce qui est interdit

L'utilisation de l'API doit respecter les règles de WhatsApp Business et nos conditions d'utilisation. Sont notamment interdits :

  • les messages envoyés à des numéros achetés, collectés sans accord ou générés au hasard ;
  • les offres trompeuses, promesses de gains, placements financiers non autorisés, jeux d'argent et prêts non agréés ;
  • la vente de produits interdits par la loi ou par les règles de WhatsApp ;
  • l'envoi de codes de vérification pour le compte d'un autre service que le vôtre.

En cas de non-respect, nous pouvons suspendre votre clé API sans préavis. Nous surveillons automatiquement les volumes inhabituels, les baisses de qualité et les modèles suspects, mais nous ne lisons pas vos conversations.

Données personnelles

Les numéros et messages de vos clients sont des données personnelles. Nous les conservons [durée de conservation] puis les supprimons, et vous restez responsable de l'information de vos clients sur l'usage de leur numéro, conformément à la loi ivoirienne sur la protection des données personnelles.

Support et versions

Notre équipe technique répond en français sur WhatsApp au [numéro WhatsApp] et par e-mail à [adresse e-mail], du lundi au samedi de [horaires]. Joignez toujours le request_id de la requête concernée.

L'état du service et les incidents en cours sont publiés sur [page d'état du service].

Versions

La version actuelle est v1, indiquée dans l'adresse de chaque requête. Nous pouvons ajouter des champs aux réponses et de nouveaux événements sans changer de version : votre code doit ignorer les champs qu'il ne connaît pas. Tout changement incompatible fera l'objet d'une nouvelle version, annoncée au moins 90 jours à l'avance.

DateVersionChangement
[date de lancement]v1Première version publique