Référence API
Bac à sable
Simuler des messages reçus et des changements de statut, sans WhatsApp.
Simuler un message reçu d’un client (clé sandbox uniquement). Déclenche le webhook `message.received`.#
POST/sandbox/simulate/inbound-message
- Authentification
- Clé API (Bearer pk_…), ou session de la console (Bearer ses_… avec l'en-tête X-Environment-Id)
- Portée requise
messages:send
Corps de la requête (JSON)
| Champ | Type | Description | |
|---|---|---|---|
phoneNumberId | string | requis | Identifiant d'un numéro de l'environnement sandbox. |
from | string | requis | Numéro de l'expéditeur simulé, format international avec « + ». |
text | string | requis | Texte du message simulé. |
Exemple
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"
}'const res = await fetch(`${process.env.INBOX_API}/sandbox/simulate/inbound-message`, {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INBOX_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"phoneNumberId": "4d8e654e-d744-4bf3-8211-9ceffcccfe87",
"from": "+237611111111",
"text": "Bonjour, je voudrais déplacer mon rendez-vous"
}),
});
const data = await res.json();import os
import requests
res = requests.post(
f"{os.environ['INBOX_API']}/sandbox/simulate/inbound-message",
headers={
"Authorization": f"Bearer {os.environ['INBOX_KEY']}",
},
json={
"phoneNumberId": "4d8e654e-d744-4bf3-8211-9ceffcccfe87",
"from": "+237611111111",
"text": "Bonjour, je voudrais déplacer mon rendez-vous",
},
)
print(res.json())<?php
$ch = curl_init(getenv('INBOX_API') . '/sandbox/simulate/inbound-message');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('INBOX_KEY'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'phoneNumberId' => '4d8e654e-d744-4bf3-8211-9ceffcccfe87',
'from' => '+237611111111',
'text' => 'Bonjour, je voudrais déplacer mon rendez-vous',
]),
]);
$data = json_decode(curl_exec($ch), true);{
"messageId": "3f3baf5a-f93e-42e8-8263-ce62dc4aadd6",
"from": "237611111111",
"status": "received",
"simulated": true
}Faire avancer le statut d’un message sortant (clé sandbox uniquement). Déclenche le webhook correspondant.#
POST/sandbox/simulate/message-status
- Authentification
- Clé API (Bearer pk_…), ou session de la console (Bearer ses_… avec l'en-tête X-Environment-Id)
- Portée requise
messages:send
Corps de la requête (JSON)
| Champ | Type | Description | |
|---|---|---|---|
messageId | string | requis | Identifiant d'un message sortant de l'environnement sandbox. |
status | string | requis | Nouveau statut : sent, delivered, read ou failed. Un statut ne recule jamais, comme chez Meta.Valeurs : sent, delivered, read, failed |
Exemple
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"
}'const res = await fetch(`${process.env.INBOX_API}/sandbox/simulate/message-status`, {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INBOX_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"messageId": "d5ad1e3e-6ab9-4f7f-8e4e-b17104a7bd00",
"status": "delivered"
}),
});
const data = await res.json();import os
import requests
res = requests.post(
f"{os.environ['INBOX_API']}/sandbox/simulate/message-status",
headers={
"Authorization": f"Bearer {os.environ['INBOX_KEY']}",
},
json={
"messageId": "d5ad1e3e-6ab9-4f7f-8e4e-b17104a7bd00",
"status": "delivered",
},
)
print(res.json())<?php
$ch = curl_init(getenv('INBOX_API') . '/sandbox/simulate/message-status');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('INBOX_KEY'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'messageId' => 'd5ad1e3e-6ab9-4f7f-8e4e-b17104a7bd00',
'status' => 'delivered',
]),
]);
$data = json_decode(curl_exec($ch), true);{
"messageId": "d5ad1e3e-6ab9-4f7f-8e4e-b17104a7bd00",
"status": "delivered",
"simulated": true
}