Guides

Tester avec le bac à sable

Un environnement séparé, gratuit et illimité, avec un simulateur pour tester vos webhooks sans numéro WhatsApp.

Mis à jour le 12 novembre 2026Voir en Markdown

Chaque application a un environnement sandbox, strictement séparé de la production : ses propres clés (pk_test_…), entreprises, numéros, webhooks et données.

SandboxProduction
Cléspk_test_…pk_live_…
Limites de quota et de nombre d'entreprisesAucuneCelles de votre plan
Facturation Bref Point InboxAucuneSelon votre plan
SimulateurOuiRefusé (403 sandbox_only)

Simuler un message reçu#

Idéal pour tester votre réception de bout en bout : le message est enregistré, la fenêtre de 24 heures s'ouvre pour cet expéditeur, et votre webhook message.received se déclenche exactement comme en production (les données portent "simulated": true).

bash
curl -X POST "$INBOX_API/sandbox/simulate/inbound-message" \
  -H "Authorization: Bearer $INBOX_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "phoneNumberId": "4d8e654e-d744-4bf3-8211-9ceffcccfe87",
    "from": "+237611111111",
    "text": "Bonjour, je voudrais déplacer mon rendez-vous"
  }'
Réponse · 201 Created
{
  "messageId": "3f3baf5a-f93e-42e8-8263-ce62dc4aadd6",
  "from": "237611111111",
  "status": "received",
  "simulated": true
}

Faire avancer le statut d'un message#

Après un envoi (POST /messages), faites évoluer le message comme le ferait Meta :

bash
curl -X POST "$INBOX_API/sandbox/simulate/message-status" \
  -H "Authorization: Bearer $INBOX_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "messageId": "d5ad1e3e-6ab9-4f7f-8e4e-b17104a7bd00",
    "status": "delivered"
  }'
Réponse · 200 OK
{
  "messageId": "d5ad1e3e-6ab9-4f7f-8e4e-b17104a7bd00",
  "status": "delivered",
  "simulated": true
}

Les mêmes règles qu'en production s'appliquent : un statut ne recule jamais, et un failed ne remplace pas un message déjà read. Une transition sans effet répond simplement avec l'état actuel.

Un scénario complet#

  1. Connectez un numéro dans le sandbox et déclarez un webhook sur * (Démarrage rapide).
  2. POST /sandbox/simulate/inbound-message : votre serveur reçoit message.received.
  3. Répondez avec POST /messages (message libre, la fenêtre est ouverte).
  4. POST /sandbox/simulate/message-status avec delivered, puis read : vous recevez les événements correspondants.
  5. Provoquez une panne chez vous (réponse 500) et observez les reprises dans GET /webhook-deliveries.
  6. Quand tout est bon, créez une clé de production et reprenez les mêmes appels.