Aller au contenu
Wbiztool

API de messagerie

API d'envoi de messages à un groupe WhatsApp

Envoyez un texte, une image ou un document WhatsApp à un groupe WhatsApp dont votre numéro connecté est membre. Utilisez-la pour les annonces d'équipe, les actualités de communauté et les notifications de diffusion.

POSThttps://wbiztool.com/api/v1/send_msg/group/

Corps: JSON, champs de formulaire, ou multipart/form-data pour téléverser un fichier

Le message est mis en file d'attente et envoyé au groupe depuis votre numéro WhatsApp. La réponse vous fournit un msg_id que vous pouvez utiliser pour vérifier son statut.

Exemple rapide#

curl -X POST https://wbiztool.com/api/v1/send_msg/group/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "whatsapp_client": 678,
    "msg_type": 0,
    "group_name": "Sales Team Mumbai",
    "msg": "Reminder: *weekly review* starts at 4 PM today."
  }'

Remplacez 12345, YOUR_API_KEY et 678 par vos propres valeurs. Consultez Authentification pour savoir où les trouver.

Paramètres de la requête#

Authentification

client_idintegerobligatoire

Votre ID client API, dans Paramètres → Clés API.

api_keystringobligatoire

Votre clé API, sur cette même page.

whatsapp_clientintegerObligatoire si le propriétaire a plusieurs numéros connectés

ID du numéro WhatsApp depuis lequel envoyer, dans les paramètres WhatsApp. Il doit s'agir d'un numéro appartenant au propriétaire de l'espace de travail. Si vous l'omettez et que le propriétaire possède exactement un numéro connecté, c'est ce numéro qui est utilisé.

Groupe et message

group_namestringobligatoire

Nom du groupe WhatsApp, écrit exactement comme il apparaît dans WhatsApp. Envoyez-le sous forme de chaîne. Un nombre JSON comme 2024 renvoie une page d'erreur HTML (HTTP 500). Consultez Comment le groupe est trouvé.

msg_typeintegerfacultatif

0 texte (par défaut), 1 image, 2 fichier ou document.

msgstringObligatoire lorsque msg_type vaut 0

Texte du message. Pour les images et les fichiers, il s'agit de la légende, qui peut être vide. La mise en forme WhatsApp fonctionne : *bold*, _italic_, ~strikethrough~. message est accepté comme alias.

Images et fichiers

img_urlstringObligatoire lorsque msg_type vaut 1 et qu'aucun fichier n'est téléversé

URL publique http ou https de l'image.

file_urlstringObligatoire lorsque msg_type vaut 2 et qu'aucun fichier n'est téléversé

URL publique http ou https à partir de laquelle le fichier peut être téléchargé directement.

filefilefacultatif

Téléversez l'image ou le fichier au lieu de fournir une URL. Envoyez la requête en multipart/form-data avec le champ nommé file.

file_namestringfacultatif

Nom du fichier affiché dans le groupe, par exemple price-list.pdf. Son extension détermine la façon dont le fichier est envoyé : incluez-en donc une. Il est envoyé en minuscules, les caractères comme & : ? * $ ; sont remplacés par _, et il est tronqué à 150 caractères. Si vous l'omettez, le nom est tiré de l'URL ou du fichier téléversé.

Options d'envoi

expire_after_secondsintegerfacultatif

Marque le message comme expiré (statut 4) s'il n'a pas été envoyé dans ce nombre de secondes, par exemple 3600 pour une heure. Une tâche en arrière-plan s'en charge au moins 30 secondes après l'échéance : ne comptez donc pas dessus pour des délais inférieurs à une minute.

webhookstringfacultatif

URL qui reçoit un POST lorsque le message est envoyé ou échoue. Le contenu est le même que pour Envoyer un message.

Les images et les fichiers suivent les mêmes règles que pour l'envoi de messages : les URL sont téléchargées au moment où vous appelez l'API (jusqu'à 100 Mo). Au moment de l'envoi du message, les images de plus de 16 Mo et les vidéos de plus de 64 Mo échouent, l'audio WAV et OGG n'est pas pris en charge, et .pdf est ajouté aux fichiers (msg_type 2) sans extension prise en charge, fichiers téléversés compris. Les noms de fichiers sont envoyés en minuscules. Consultez Envoyer des images et des fichiers pour la liste complète des extensions et des erreurs.

Pour téléverser un fichier, utilisez les exemples multipart de Envoyer un message, en remplaçant l'URL par /api/v1/send_msg/group/ et phone/country_code par group_name.

Image depuis une URL
curl -X POST https://wbiztool.com/api/v1/send_msg/group/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "whatsapp_client": 678,
    "msg_type": 1,
    "group_name": "Sales Team Mumbai",
    "img_url": "https://example.com/reports/weekly-sales.png",
    "msg": "This week'\''s sales summary"
  }'

Comment le groupe est trouvé#

Wbiztool ne vérifie pas le nom du groupe lorsque vous appelez l'API. Au moment de l'envoi du message, Wbiztool recherche group_name dans vos discussions WhatsApp et ouvre le premier résultat. Par conséquent :

  • Votre numéro WhatsApp connecté doit être membre du groupe.
  • Utilisez le nom complet du groupe, exactement tel que WhatsApp l'affiche, y compris les emoji et la ponctuation. Les espaces en début et en fin sont ignorés.
  • Choisissez un nom unique. Un nom court ou partiel peut correspondre à une autre discussion qui apparaît en premier dans la recherche.
  • Si aucun résultat ne correspond, si seuls les administrateurs peuvent envoyer des messages dans le groupe et que votre numéro n'est pas administrateur, ou si seuls les administrateurs de la communauté peuvent publier, le message échoue avec l'erreur Group not found.
  • Si votre numéro a quitté le groupe, le message échoue avec l'erreur Group member blocked.

Les problèmes de groupe n'apparaissent pas dans la réponse de l'API. Utilisez un webhook ou Statut du message pour savoir si le message a été envoyé.

Utiliser le client officiel#

Le client Python appelle cet endpoint pour vous.

Python
from wbiztool_client import WbizToolClient

client = WbizToolClient(api_key="YOUR_API_KEY", client_id=12345)

result = client.send_message_to_group(
    group_name="Sales Team Mumbai",
    msg="Reminder: weekly review starts at 4 PM today.",
    whatsapp_client=678,
)
print(result)

Les erreurs lèvent requests.HTTPError. Lisez la raison avec e.response.json()["message"].

Réponse#

Une requête réussie renvoie le code HTTP 200 :

{
  "status": 1,
  "message": "Created",
  "msg_id": 9817263
}
ChampTypeDescription
statusinteger1 si le message a été mis en file d'attente, 0 si la requête a échoué.
messagestringCreated en cas de succès, sinon l'erreur.
msg_idintegerID du message en file d'attente. Enregistrez-le pour vérifier son statut plus tard. Présent uniquement en cas de succès.

"status": 1 signifie que le message a été mis en file d'attente, pas qu'il a déjà atteint le groupe. Utilisez un webhook ou Statut du message pour confirmer qu'il a été envoyé.

Erreurs#

Les erreurs renvoient le code HTTP 400 avec status à 0 :

{ "status": 0, "message": "Group Name cant be null" }
MessageComment corriger
Auth Error - Please send correct API key and Client idEnvoyez une api_key non vide.
Invalid client id.Envoyez client_id sous forme de nombre.
Auth Error: invalid api keyVérifiez que la clé existe, n'a pas été supprimée et appartient à ce client_id.
Group Name cant be nullAjoutez group_name.
Msg cant be nullLes messages texte (msg_type 0) nécessitent msg.
Image Url Can't be nullPour msg_type 1, envoyez img_url ou téléversez un file.
File Url Can't be nullPour msg_type 2, envoyez file_url ou téléversez un file.
Invalid file url, Can't download / Invalid file urlL'URL n'est pas publique, le délai a expiré ou le fichier dépasse 100 Mo.
Invalid whatsapp client NoneCet ID whatsapp_client n'appartient pas au propriétaire de l'espace de travail. Consultez l'avertissement ci-dessus.
Invalid whatsapp client id.Envoyez whatsapp_client. Il est obligatoire, sauf si le propriétaire possède exactement un numéro connecté.
Not enough creditsVotre forfait n'a plus de messages disponibles.
Demo Account can not access apisUtilisez un compte standard.
Account DisabledVotre compte est désactivé. Contactez le support.
Invalid JSON format: …Le corps JSON n'est pas valide, souvent à cause d'une virgule finale ou d'un saut de ligne non échappé dans msg. Utilisez \n pour les retours à la ligne.

Conseils#

  • Testez d'abord le nom : envoyez un court texte au groupe et vérifiez Statut du message avant d'automatiser quoi que ce soit.
  • Groupes renommés : si quelqu'un renomme le groupe dans WhatsApp, mettez aussi à jour group_name dans votre intégration.
  • Types de message : seules les valeurs 0, 1 et 2 sont valides pour msg_type. Toute valeur qui n'est pas un nombre entier renvoie une page d'erreur HTML (HTTP 500) au lieu de JSON.
  • Plusieurs groupes à la fois : Envoyer à plusieurs numéros accepte des noms de groupe mélangés à des numéros de téléphone dans une même requête.