Genuka WA docs

Envoyer des messages

Un seul endpoint pour toute la surface de la Cloud API.

POST /api/v1/messages

Un envoi porte toujours trois choses : la connexion utilisée, le destinataire, et exactement un champ de contenu.

{
  "connectionId": "cnx_...",
  "to": "+237699001122",
  "text": "Bonjour 👋"
}

Le numéro est au format international. connectionId s'obtient via GET /api/v1/connections. Ajoutez replyTo avec le wamid d'un message reçu pour répondre en citation.

Les champs de contenu

Un seul champ à la fois

Envoyer deux champs de contenu dans la même requête n'envoie pas deux messages : seul le premier reconnu est retenu. Faites deux appels.

Texte et médias

ChampContenuLimites
textUne chaîne, ou { body, previewUrl }4096 caractères
imageJPEG, PNG5 Mo, légende 1024 caractères
videoMP4, 3GPP (H.264 + AAC)16 Mo
audioAAC, AMR, MP3, M4A, OGG16 Mo, pas de légende
documentPDF, DOC(X), XLS(X), PPT(X), TXT100 Mo
stickerWebP statique ou animé100 Ko / 500 Ko

Localisation, contacts, réaction

ChampContenu
location{ latitude, longitude, name, address }
locationRequest{ body } — affiche un bouton « Envoyer la position »
contactsUn tableau de fiches contact
reaction{ messageId, emoji } — une chaîne vide retire la réaction

Messages interactifs

{
  "connectionId": "cnx_...",
  "to": "+237699001122",
  "buttons": {
    "body": "Comment peut-on vous aider ?",
    "footer": "Genuka",
    "buttons": [
      { "id": "order", "title": "Ma commande" },
      { "id": "support", "title": "Un problème" }
    ]
  }
}
ChampDescriptionLimites
buttonsBoutons de réponse rapide3 maximum, titre 20 caractères
listListe de sections et de lignes10 sections, 10 lignes au total
ctaUn bouton portant une URLurl + displayText

La réponse de l'utilisateur arrive par webhook, avec l'id du bouton ou de la ligne choisie.

Templates

Hors de la fenêtre de 24 heures, seul un template approuvé sera délivré.

{
  "connectionId": "cnx_...",
  "to": "+237699001122",
  "template": {
    "name": "confirmation_commande",
    "language": "fr",
    "body": ["Awa", "CMD-1042"]
  }
}

Un envoi de template ouvre une conversation facturable par Meta sur la WABA du client — Meta facture directement le client. Les messages de service envoyés dans la fenêtre de 24 h sont gratuits.

Créez et suivez vos templates via /api/v1/templates. Un template en statut PAUSED ou REJECTED ne peut pas servir : vérifiez son statut avant de lancer une campagne.

Échappatoire

Si un type de message n'est pas encore exposé, raw transmet un fragment Cloud API verbatim :

{
  "connectionId": "cnx_...",
  "to": "+237699001122",
  "raw": { "type": "interactive", "interactive": { "type": "flow" } }
}

Aucune validation n'est appliquée sur raw — les erreurs remontent telles quelles depuis Meta.

Erreurs fréquentes

Code MetaSignificationQue faire
131047Plus de 24 h depuis le dernier message reçuEnvoyer un template
131026Destinataire injoignable ou absent de WhatsAppNe pas réessayer
131050L'utilisateur s'est désinscrit du marketingNe plus lui envoyer de marketing
131049Plafond marketing atteint pour cet utilisateurRéessayer plus tard
132001Template inexistant ou non approuvé dans cette langueVérifier nom et langue
130429Débit dépasséRalentir, réessayer avec backoff

Sur cette page