Whatixo.Documentation English Ouvrir Whatixo
Documentation / API Whatixo

Envoyer des messages

Un seul point d’accès pour tous les types de messages : texte, image, vidéo, audio, note vocale et document.

POSThttps://api.whatixo.com/api/whatsapp/messages/send

Paramètres

ChampTypeDescription
deviceIdrequisstringIdentifiant du numéro expéditeur (Paramètres → Intégrations & API). Il doit vous appartenir et être connecté.
torequisstringDestinataire : numéro international (243812345678) ou JID d’un groupe (1203…@g.us).
textoptionnelstringTexte du message, ou légende du média. 4 096 caractères maximum. Mise en forme WhatsApp : *gras*, _italique_, ~barré~, ```code```.
mediaUrloptionnelstringLien https:// public vers un fichier (64 Mo maximum), ou lien d’un média de votre Bibliothèque.
fileNameoptionnelstringNom affiché pour un document (ex. facture-1042.pdf). Par défaut : le nom du fichier dans l’URL.
typeoptionnelstringtext (défaut), image, video, audio, ptt ou document. Utilisez ptt pour envoyer un audio comme note vocale.
Comment le type de média est choisi

Whatixo détecte la nature du fichier grâce à l’extension de mediaUrl :

  • .mp4 .mov .avi .mkv → vidéo
  • .mp3 .ogg .wav .m4a → audio (note vocale si type vaut ptt)
  • .pdf .doc .docx .xls .xlsx .csv .txt .zip → document
  • toute autre extension → image

Assurez-vous donc que l’URL se termine par la bonne extension.

Exemples

Texte

curl -X POST https://api.whatixo.com/api/whatsapp/messages/send \
  -H "x-api-key: $WHATIXO_API_KEY" -H "Content-Type: application/json" \
  -d '{"deviceId":"8f2c1a7e-4b9d-4e21-9a6f-3c5d7e1b2a90","to":"243812345678","text":"*Commande n°1042* confirmée ✅\nLivraison prévue demain."}'

Image avec légende

Corps de la requêteJSON
{
  "deviceId": "8f2c1a7e-4b9d-4e21-9a6f-3c5d7e1b2a90",
  "to": "243812345678",
  "type": "image",
  "mediaUrl": "https://boutique-gombe.cd/images/promo-novembre.jpg",
  "text": "-30 % ce week-end seulement 🔥"
}

Document PDF

Corps de la requêteJSON
{
  "deviceId": "8f2c1a7e-4b9d-4e21-9a6f-3c5d7e1b2a90",
  "to": "243812345678",
  "type": "document",
  "mediaUrl": "https://boutique-gombe.cd/factures/1042.pdf",
  "fileName": "Facture-1042.pdf",
  "text": "Voici votre facture, merci pour votre achat !"
}

Note vocale

Corps de la requêteJSON
{
  "deviceId": "8f2c1a7e-4b9d-4e21-9a6f-3c5d7e1b2a90",
  "to": "243812345678",
  "type": "ptt",
  "mediaUrl": "https://boutique-gombe.cd/audio/bienvenue.ogg"
}

Message dans un groupe

Corps de la requêteJSON
{
  "deviceId": "8f2c1a7e-4b9d-4e21-9a6f-3c5d7e1b2a90",
  "to": "120363041234567890@g.us",
  "text": "📦 Nouvelle commande à préparer : n°1042"
}

Réponses

CodeSignification
200Message transmis à WhatsApp : {"success":true,"message":"Transmis avec succès"}
400Champ manquant (deviceId, to), numéro invalide, texte trop long ou média inaccessible.
401Clé API absente ou invalide.
402Quota mensuel de messages atteint (PLAN_LIMIT) ou abonnement suspendu (ACCOUNT_SUSPENDED).
403Le numéro n’est pas connecté (« L’appareil n’est pas connecté ») : reconnectez-le dans l’application.
404deviceId inconnu ou n’appartenant pas à votre compte.
429Plus de 200 requêtes par minute : patientez.
502WhatsApp a refusé l’envoi (numéro sans WhatsApp, numéro bloqué…).
Avant un envoi en volume

Vérifiez d’abord que les numéros ont WhatsApp avec /contacts/check, et espacez vos envois (quelques secondes entre chaque message, davantage pour des inconnus). Pour une campagne marketing, préférez les campagnes de l’application, qui gèrent automatiquement un rythme sûr.

Ancienne route

POST /whatsapp/send reste disponible avec exactement les mêmes paramètres, pour les intégrations existantes. Utilisez /whatsapp/messages/send pour les nouveaux projets.