Envoyer un message

POST /v1/messages : envoyer un template approuvé, avec idempotence et remboursement sur échec.

Envoyer un message template

POST /v1/messages — scope messages:send

Envoie un template APPROVED à un destinataire. Retourne 202. Le frais de plateforme est débité avant l'envoi ; si Meta rejette, il est automatiquement remboursé.

Paramètres

ParamètreTypeRequisDescription
tostringOuiDestinataire au format E.164, ex. +237699123456.
template.namestringOuiNom d'un template APPROVED.
template.languagestringOuiCode langue, ex. en, fr, en_US.
template.variablesstring[]NonRemplit {{1}}…{{n}} dans l'ordre.
template.header_image_urlstringNonUniquement si le template a un en-tête IMAGE.
idempotency_keystringNonRejouer la même clé renvoie le résultat d'origine (retries sûrs).

Requête

curl -X POST https://wa-api.geskap.com/v1/messages \
  -H "Authorization: Bearer sk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+237699123456",
    "template": { "name": "order_update", "language": "en", "variables": ["Jean", "#8842"] },
    "idempotency_key": "order-8842"
  }'

Réponse (202)

{
  "id": "6f1c…",
  "status": "sent",
  "wa_message_id": "wamid…",
  "to": "2376****3456",
  "credits_charged": 1,
  "credits_remaining": 4197,
  "created_at": "2026-08-04T09:14:07Z"
}
Note — En-têtes de réponse
La réponse pose X-Credits-Remaining (solde après débit). Le destinataire est masqué dans les réponses et les logs (2376****3456).
Astuce — Idempotence
Passez une idempotency_key stable (ex. l'ID de commande). Rejouer la même clé renvoie le résultat d'origine sans réenvoyer — vos retours-arrière et reprises ne double-envoient jamais.