POST /v1/messages/reply : répondez en texte libre, gratuitement, dans la fenêtre de service de 24h.
POST /v1/messages/reply — scope messages:send
Envoie un message texte libre à un client qui vous a écrit dans les 24 heures précédentes (la « fenêtre de service » de Meta). C'est le canal de réponse conversationnelle — GRATUIT, aucun crédit n'est débité. Hors de cette fenêtre, Meta refuse le texte libre : il faut alors un template pré-approuvé envoyé via POST /v1/messages.
Paramètres
| Paramètre | Type | Requis | Description |
|---|---|---|---|
to | string | Oui | Destinataire au format E.164, ex. +237699123456 — normalement le from du message.inbound reçu. |
text | string | Oui | Le texte du message. Pas de variables ni de mise en forme template. |
from | string | Non | phone_number_id émetteur (voir GET /v1/numbers) — utilisez le number reçu dans le message.inbound pour répondre depuis le bon numéro. Omis = numéro par défaut du compte. |
Attention — Répondre au bon numéro
Si votre compte a plusieurs numéros connectés, le champ number du message.inbound est le phone_number_id qui a REÇU le message du client — passez-le en from pour que la réponse parte du même numéro.
Requête
curl -X POST https://wa-api.geskap.com/v1/messages/reply \
-H "Authorization: Bearer sk_live_…" \
-H "Content-Type: application/json" \
-d '{
"to": "+237699123456",
"text": "Bonjour Jean, votre commande #8842 part demain matin."
}'
Réponse (202)
{
"id": "9d3e…",
"status": "sent",
"wa_message_id": "wamid…",
"to": "2376****3456",
"created_at": "2026-08-20T09:14:07Z"
}
Important — Hors fenêtre : 470 / erreur Meta
Si le client n'a pas écrit depuis plus de 24h, Meta rejette le texte libre. Créez et faites approuver un template (voir la section Templates), puis envoyez-le avec POST /v1/messages.