API

Référence de l'API Migasender

22 points de terminaison · 101 paramètres · 36 exemples concrets

URL de base https://apidb.migasender.com/p/YOUR_REGISTRATION_TOKEN/… Où le trouver ?

Aucun résultat. Essayez un nom d'endpoint, un chemin ou un paramètre.

Votre jeton d'enregistrement

Chaque chemin commence par /p/<jeton d'enregistrement>/. Le jeton indique à Migasender à quelle plateforme l'appel est destiné. À un jeton erroné, l'API répond Unknown platform. ; un chemin sans /p/…/ reçoit HTTP 404.

Vous le trouvez à trois endroits :

  • L'adresse de votre tableau de bord. Une fois connecté, le jeton est tout ce qui suit /p/ dans la barre d'adresse, par ex. https://dashboard.migasender.com/p/907a0888…c1f61b.
  • L'ancien backoffice Siberian. Menu du haut Manage → Modules → Migawhatsapp (page …/migawhatsapp/backoffice_migawhatsapp), section Migration. Sur une ligne au statut MIGRATED, la colonne New endpoint affiche https://apidb.migasender.com/p/<jeton> (API) et https://dashboard.migasender.com/p/<jeton> (tableau de bord), chacune avec un bouton de copie. Les apps encore sur OFF n'affichent qu'un tiret.
  • Le panneau d'administration Migasender (administrateurs de plateforme) : https://apidb.migasender.com/panel/ → Platforms → colonne Registration Token.

Ce n'est pas la même chose que les jetons envoyés dans security_token : le platform token (Line Management, Groups), le jeton Send Message et le jeton Chat History. Le manuel utilisateur l'explique pas à pas.

Attention

JETON DE PLATEFORME : demandez-le à l'administrateur de la plateforme. Les API Gestion des lignes, QR Code, Instances / Journal des lignes et Groupes nécessitent le jeton de plateforme. Il n'est affiché ni dans le tableau de bord client ni dans le panneau des endpoints API. Les administrateurs le trouvent dans Manage → Modules → Migawhatsapp, encadré Platform Token for API (ancien backoffice), ou sur https://apidb.migasender.com/panel/ → Settings → Platform Token for API. (voir le manuel utilisateur).

Langue des réponses

Les réponses arrivent en italien par défaut. Ajoutez lang=en — en paramètre de requête ou en champ du corps — pour obtenir l'anglais, la langue dans laquelle chaque message de cette page est reproduit.

Cela concerne les champs error et message ; les données ne changent pas. L'en-tête Accept-Language est ignoré volontairement, afin que la langue d'un navigateur ne puisse jamais modifier en silence ce que reçoit votre intégration.

bash
curl -X POST 'https://apidb.migasender.com/p/YOUR_REGISTRATION_TOKEN/api_send/heartbeat?lang=en' \
  -H 'Content-Type: application/json' \
  -d '{ "app_id": 1, "security_token": "YOUR_SEND_MESSAGE_TOKEN" }'

7 endpoints

Gestion des lignes

Créer, lister, renommer, redater et supprimer les lignes WhatsApp depuis lesquelles une application envoie, et définir son plafond mensuel.

Attention

JETON DE PLATEFORME requis — demandez-le à l'administrateur de la plateforme. Il n'est pas affiché dans le tableau de bord client. Où les administrateurs le trouvent.

Le jeton est un jeton de plateforme sous un nom de champ applicatif

Piège fréquent

Ces endpoints s'authentifient avec votre jeton de plateforme — mais le champ s'appelle security_token, pas platform_token. Envoyer ici le jeton Send Message ou Chat History échoue avec Security token mismatched.

Une « ligne » est une paire de lignes de passerelle, MASTER et SLAVE. En créer une crée les deux ; en supprimer une supprime les deux ; une modification écrit dans les deux.

Ce dont chaque endpoint de Gestion des lignes a besoin

security_token string Obligatoire
Votre jeton de plateforme, malgré le nom du champ.
app_id int Obligatoire
L'application à laquelle appartient la ligne.
Erreurs que tout endpoint de Gestion des lignes peut renvoyer5
Security token missing.
security_token n'a pas été transmis.
Security token mismatched.
La valeur n'est pas le jeton de cette plateforme — un jeton d'API au niveau de l'application échouera ici.
App id missing.
app_id n'a pas été transmis.
Invalid app id.
Aucune application ne correspond à cet app_id sur cette plateforme.
This app is in read-only mode. Write operations are disabled.
Renvoyé par create, update, delete et le réglage du plafond tant que l'application est en lecture seule. Les lectures continuent de fonctionner.
POST /p/{regToken}/api_line/getall

Lister toutes les lignes

Attention

JETON DE PLATEFORME requis — demandez-le à l'administrateur de la plateforme. Il n'est pas affiché dans le tableau de bord client. Où les administrateurs le trouvent.

Renvoie toutes les lignes de l'application, indexées par identifiant de ligne.

Paramètres

Les deux paramètres communs suffisent.

POST /p/{regToken}/api_line/get

Obtenir une ligne

Attention

JETON DE PLATEFORME requis — demandez-le à l'administrateur de la plateforme. Il n'est pas affiché dans le tableau de bord client. Où les administrateurs le trouvent.

Renvoie une seule ligne, ainsi que les jetons Chat History et Send Message de l'application.

En plus des paramètres communs

line_id int Obligatoire
La ligne à lire.
Erreurs2
Line id missing.
line_id n'a pas été transmis.
Invalid line id.
Aucune ligne portant cet identifiant dans cette application.
POST /p/{regToken}/api_line/create

Créer une ligne

Attention

JETON DE PLATEFORME requis — demandez-le à l'administrateur de la plateforme. Il n'est pas affiché dans le tableau de bord client. Où les administrateurs le trouvent.

Ajoute une ligne à l'application — une ligne de passerelle MASTER et une SLAVE. Tous les champs au-delà des deux communs sont facultatifs.

En plus des paramètres communs

line_label string Facultatif
Un nom pour la ligne. Doit être unique au sein de l'application.
line_expiration_date string (date) Facultatif
Y-m-d, et la date doit être dans le futur. Laissez vide pour UNLIMITED. Ignoré sur les plateformes YEARLY, qui obtiennent toujours un an à compter d'aujourd'hui.
max_messages_per_month int Facultatif
Le plafond mensuel de l'application. Minimum 1.
Erreurs5
Maximum allowed lines reached.
Le quota de lignes de l'application est épuisé. Un quota de 0 signifie illimité.
Line name already exists.
Une autre ligne de cette application utilise déjà ce line_label.
Invalid date format for line_expiration_date. Expected format: Y-m-d.
La date n'est pas au format Y-m-d.
Invalid date for line_expiration_date. Date should be greater than the current date.
La date est aujourd'hui ou dans le passé.
Invalid max_messages_per_month value.
Ce n'est pas un nombre, ou il est inférieur à 1.
POST /p/{regToken}/api_line/update

Modifier une ligne

Attention

JETON DE PLATEFORME requis — demandez-le à l'administrateur de la plateforme. Il n'est pas affiché dans le tableau de bord client. Où les administrateurs le trouvent.

Modifie le libellé, l'expiration ou le statut d'une ligne. La modification est écrite dans ses deux lignes de passerelle.

En plus des paramètres communs

Vous devez envoyer au moins line_expiration_date ou line_status, sinon l'appel est rejeté. line_label seul ne suffit pas.

line_id int Obligatoire
La ligne à modifier.
line_label string Facultatif
Un nouveau nom. Il doit rester unique au sein de l'application.
line_expiration_date string (date) Facultatif
Y-m-d, dans le futur.
line_status string Facultatif
L'une des valeurs CONFIGURED, NOT_CONFIGURED, EXPIRED, DISABLED.
enable_instance_status_webhook int Facultatif
Active pour la ligne le webhook de statut d'instance.
instance_status_webhook_url string Conditionnel
Obligatoire dès que le webhook est activé.
Erreurs7
No data posted for update.
Ni line_expiration_date ni line_status n'a été envoyé.
Line id missing.
line_id n'a pas été transmis.
Invalid line id.
Aucune ligne portant cet identifiant dans cette application.
Line status missing.
Le champ de statut était présent mais vide.
Invalid line status.
Ce n'est pas l'une des quatre valeurs acceptées.
Line name already exists.
Une autre ligne utilise déjà ce libellé.
Instance Status Webhook URL is required when webhook is enabled.
enable_instance_status_webhook est actif mais l'URL manque.
POST /p/{regToken}/api_line/setmaxmessagespermonth

Définir le plafond mensuel de messages

Attention

JETON DE PLATEFORME requis — demandez-le à l'administrateur de la plateforme. Il n'est pas affiché dans le tableau de bord client. Où les administrateurs le trouvent.

Définit combien de messages l'application peut envoyer par mois. C'est le même plafond qui produit « You have reached the maximum limit of messages for this month. » lors d'un envoi.

En plus des paramètres communs

max_messages_per_month int Obligatoire
Le nouveau plafond. Minimum 1.
Erreurs2
Value for max_messages_per_month is missing.
Le champ n'a pas été envoyé.
Invalid max_messages_per_month value.
Ce n'est pas un nombre, ou il est inférieur à 1.
POST /p/{regToken}/api_line/delete

Supprimer une ligne

Attention

JETON DE PLATEFORME requis — demandez-le à l'administrateur de la plateforme. Il n'est pas affiché dans le tableau de bord client. Où les administrateurs le trouvent.

Supprime la ligne, c'est-à-dire ses deux lignes de passerelle MASTER et SLAVE.

En plus des paramètres communs

line_id int Obligatoire
La ligne à supprimer.
Erreurs2
Line id missing.
line_id n'a pas été transmis.
Invalid line id.
Aucune ligne portant cet identifiant dans cette application.
Aucun retour en arrière

La suppression retire les deux lignes de passerelle. Tout ce qui envoyait sur cette ligne s'arrête, et la connexion doit être refaite à partir d'un scan QR.

POST /p/{regToken}/api_line/heartbeat

Heartbeat

Attention

JETON DE PLATEFORME requis — demandez-le à l'administrateur de la plateforme. Il n'est pas affiché dans le tableau de bord client. Où les administrateurs le trouvent.

Vérification de disponibilité qui renvoie aussi les jetons d'API de l'application. Au premier appel, les jetons Chat History et Send Message sont créés pour l'application.

Paramètres

Les deux paramètres communs suffisent.

5 endpoints

Envoi de messages

Envoi de messages WhatsApp : texte, médias, voix, groupes, lignes en rotation et modèles Meta Cloud API.

Comment un envoi est acheminé

Chaque envoi tente d'abord WA API MASTER et ne bascule sur WA API SLAVE que si la tentative sur le master échoue.

  • Chaque passerelle a droit à exactement une tentative par requête. Il n'y a pas de boucle interne de réessai ni de filtrage préalable selon le statut enregistré.
  • Une tentative échouée marque immédiatement cette passerelle PROBABLY_DISCONNECTED, met à jour last_status_checked et recalcule l'état de santé de la ligne avant d'essayer la passerelle suivante.
  • De la télémétrie est écrite pour chaque tentative — type de passerelle, statut, durées et un détail classé de réussite ou d'échec.
  • La première tentative réussie renvoie immédiatement un succès. Si les deux échouent, vous recevez une réponse d'erreur tenant compte de l'état de santé.

Quand les deux passerelles échouent

La réponse contient success: false ainsi qu'un error_code qui reflète l'état de santé global de la ligne :

error_codeQuandMessage
gateways_probably_disconnectedL'état de la ligne est PROBABLY_OFFLINE, ou un mélange de statuts non connectés“GATEWAYS ARE PROBABLY DISCONNECTED, WE ARE CHECKING THE REAL STATUS, TRY AGAIN IN ABOUT 10 MINUTES.”
gateways_disconnectedL'état de la ligne est OFFLINE, ou toutes les passerelles sont DISCONNECTED“GATEWAYS ARE DISCONNECTED. PLEASE RECONNECT BY SCANNING THE QR CODE, THEN TRY AGAIN.”

line_id et app_id reviennent avec. La réponse est renvoyée après que chaque tentative échouée a marqué sa passerelle et déclenché le recalcul de l'état de santé.

Par quelle ligne le message part

line_idroundbin_idComportement
fourni—Envoie par cette ligne précise.
—fourniLe système choisit dans le roundbin la ligne connectée utilisée le moins récemment.
fournifourniroundbin_id l'emporte — line_id est ignoré.
——Bascule sur la ligne connectée de l'application. Si aucune n'est connectée : no active/connected gateway for this app — connect a line first
Remarque

send_via=cloud_api contourne entièrement l'acheminement par ligne et par roundbin — aucune ligne WhatsApp n'intervient. Avant l'appel à Meta, seuls app_id, security_token et phone sont vérifiés.

Fallback vers Meta Cloud API

Un message peut partir par Meta Cloud API au lieu de la ligne WhatsApp, sous forme de modèle approuvé. Le texte de message n'est alors pas livré : le modèle le remplace. Cela arrive dans deux cas.

CasQuandQuel modèle
Seuil journalierLa ligne a déjà envoyé aujourd'hui le nombre de messages de son seuil journalier.Celui de l'appel (fallback_template_*), sinon celui de la ligne. Celui de la ligne est utilisé si Fallback Enabled est activé.
La ligne ne peut pas envoyerLa ligne n'existe pas, n'est pas connectée, est marquée DISCONNECTED ou refuse l'envoi (par exemple un numéro banni ou déconnecté). Aussi un roundbin dont toutes les lignes sont en panne.Seulement celui de l'appel. Sans lui, vous recevez l'erreur habituelle.
  • Le seuil est compté par ligne, pas par contact, et le compteur repart à zéro à 00:00 UTC. Seuls comptent les messages qui passent par le contrôle du seuil : le fallback doit être actif pour ce message (Fallback Enabled sur la ligne, ou un fallback_template_* dans l'appel) et, en mode standard, un contact qui a écrit dans les 7 derniers jours est ignoré et ne compte pas. Avec un seuil de 1, le premier message compté de la journée part par la ligne et le suivant par Meta. Les côtés master et slave d'une ligne ont des compteurs séparés.
  • Si l'envoi du modèle échoue lui aussi, l'URL Failure Webhook de la ligne reçoit {"event":"waba_send_failed", "app_id", "line_id", "phone", "template_name", "error", "fallback_reason", "reference", "timestamp"}. fallback_reason vaut null pour un envoi direct send_via=cloud_api, et reference est la valeur que vous avez passée dans l'appel.
  • Un numéro sans compte WhatsApp ne reçoit rien : ni envoi par la ligne ni modèle, car Meta Cloud API ne peut pas l'atteindre non plus. L'appel renvoie l'erreur The phone number does not exist on WhatsApp. et l'URL Failure Webhook de la ligne reçoit le même événement avec fallback_reason: "number_not_on_whatsapp" et template_name: null. L'envoi apparaît sur la page Logs comme échoué, ne compte pas dans la limite mensuelle, et api_send/status avec son reference répond state: not_sent, status: failed. Si la vérification ne peut pas être faite, le message part comme d'habitude. Un numéro dont le compte existe encore, mais dont le téléphone est éteint ou perdu, n'est pas détecté.
  • Le mode de seuil standard (par défaut) exclut les contacts qui ont écrit à l'application dans les 7 derniers jours, aujourd'hui exclu : ils reçoivent toujours le message normal et ne sont pas comptés. strict compte chaque message.
  • Si la ligne ne répond pas à temps, rien n'est renvoyé par Meta. Le message est peut-être déjà parti, et un second envoi le livrerait deux fois. Envoyez une reference et interrogez api_send/status avant de réessayer : la réponse indique si le message est parti.
  • La réponse indique le chemin suivi. via vaut migasender pour la ligne et cloud_api_fallback pour un fallback, qui porte aussi fallback_reason (threshold, line_not_found, line_disconnected, send_refused, all_lines_down) et le message_id de Meta.
  • Les statuts de livraison d'un fallback arrivent au webhook de livraison de la ligne, comme pour tout autre envoi, avec channel: "waba".

Ce dont chaque endpoint d'Envoi de messages a besoin

app_id int Obligatoire
L'identifiant de votre application, affiché en haut à gauche du tableau de bord du module.
security_token string Obligatoire
Le jeton de l'API Send Message, généré dans Paramètres → Paramètres API sous le libellé Send Message API Token. L'API doit également y être activée.
Erreurs que tout endpoint d'Envoi de messages peut renvoyer2
Security token mismatched.
Une seule réponse couvre quatre cas : security_token absent, security_token incorrect, app_id absent ou app_id introuvable. Vérifiez les deux dans Paramètres → Paramètres API.
Send Message API is disabled.
L'API Send Message est désactivée pour cette application. Activez-la dans les paramètres API.
POST /p/{regToken}/api_send/message

Envoyer un message

Envoie un message WhatsApp — texte, média, note vocale, message de groupe ou modèle Meta. Les paramètres sont des champs du corps POST, en JSON ou form-data.

Authentification

app_id int Obligatoire
L'identifiant de votre application, affiché en haut à gauche du tableau de bord du module.
security_token string Obligatoire
Le jeton de l'API Send Message, généré dans Paramètres → Paramètres API sous le libellé Send Message API Token. L'API Send Message doit également y être activée.

Destinataire et contenu

phone string Conditionnel
10 à 14 chiffres avec un + initial et l'indicatif du pays. Facultatif si vous envoyez email pour un utilisateur enregistré dont le profil comporte un téléphone valide ; obligatoire sinon. Inutilisé pour les envois de groupe. Si le numéro existe déjà en base, vous recevez aussi sib_user_id.
email string Conditionnel
Une adresse valide présente en base, avec un numéro de téléphone rattaché à ce compte. Facultatif si vous envoyez phone à la place. Si vous envoyez les deux, l'API vérifie que la paire existe avant d'envoyer quoi que ce soit.
message string Conditionnel
Le texte à envoyer. Facultatif lorsque file_url est présent, car un fichier peut être envoyé seul.
name string Facultatif
Prénom — uniquement si vous voulez aussi enregistrer l'utilisateur.
surname string Facultatif
Nom — uniquement si vous voulez aussi enregistrer l'utilisateur.
file_url url Facultatif
Toute URL de fichier accessible publiquement et prise en charge par WhatsApp. 25 Mo maximum. Les fichiers audio ne fonctionnent que si la passerelle MASTER est active.
is_link_preview_enabled int Facultatif
1 affiche l'aperçu du lien (par défaut), 0 le masque.

Synthèse vocale

tts_enabled int Facultatif
1 convertit le texte du message en audio et l'envoie sous forme de note vocale au lieu du texte ; 0 est la valeur par défaut. Passerelle MASTER uniquement, et la synthèse vocale doit être activée pour l'application.
tts_voice string Facultatif
OpenAI : alloy (par défaut), echo, fable, onyx, nova, shimmer. ElevenLabs : le voice_id affiché sous le lecteur de la voix choisie. Le fournisseur se sélectionne dans Paramètres → Configuration OpenAI → Service TTS.
tts_speed float Facultatif
OpenAI : 0.25–4.0, valeur par défaut 1.0. ElevenLabs : 0.1–1.2. En dessous de 1.0 la parole ralentit, au-dessus elle accélère.

Acheminement

line_id int Facultatif
La ligne depuis laquelle envoyer. Elle doit être valide ; à défaut d'envoi, 1 s'applique. Elle se trouve dans Paramètres de passerelle → Gestion des lignes WhatsApp, colonne Line ID.
roundbin_id int Facultatif
Un groupe roundbin. Le système y choisit la prochaine ligne connectée disponible (rotation par utilisation la plus ancienne) et prime sur line_id. Si toutes les lignes du groupe sont déconnectées et que le roundbin dispose d'un modèle de repli, ce modèle est envoyé via Meta Cloud API.

Envoi à un groupe

is_sent_to_group int Facultatif
1 indique à l'API qu'il s'agit d'un message de groupe. 0 ou l'absence du champ signifie un envoi normal.
group_id string Conditionnel
Obligatoire lorsque is_sent_to_group=1 ; phone cesse alors d'être requis. Format : 1203630000000000@g.us. Récupérez les identifiants via l'endpoint Lister les groupes ci-dessous.

Envoi direct via Meta Cloud API

send_via string Facultatif
Mettez cloud_api pour contourner entièrement la ligne WhatsApp et envoyer un modèle Meta. Valeur par défaut migasender.
template_name string Conditionnel
Obligatoire lorsque send_via=cloud_api. Le nom exact du modèle tel qu'il apparaît dans Meta Business Manager, et il doit être APPROVED.
template_language string Facultatif
Code BCP-47 correspondant à la langue du modèle approuvé. Valeur par défaut en_US.
template_variables array | string Facultatif
Valeurs ordonnées pour les emplacements {{1}}, {{2}} … du corps du modèle. Accepte un tableau natif ou une chaîne JSON. Le nombre doit correspondre exactement au modèle.
template_buttons array | string Facultatif
Charges utiles des boutons de type URL — chaque élément est le suffixe d'URL dynamique ou le code de réduction.

Modèle de repli par appel

Utilisés seulement quand le message part en fallback : au seuil journalier de la ligne, ou quand la ligne ne peut pas envoyer. Pour cette seule requête, ils remplacent le modèle de fallback configuré sur la ligne. Voir Fallback vers Meta Cloud API plus haut.

fallback_template_name string Facultatif
Nom d'un modèle APPROVED sur le WABA de l'application. L'envoyer active le fallback pour ce message, même s'il est désactivé sur la ligne. Si fallback_template_id est aussi envoyé, le nom l'emporte.
reference string Facultatif
Votre propre identifiant pour cet envoi, jusqu'à 255 caractères. Il revient comme reference dans le failure webhook et, si l'envoi expire, vous pouvez demander avec lui à api_send/status si le message est réellement parti. Cela vaut pour les envois par la ligne et par la Cloud API, fallbacks compris.
not_sent_after int Facultatif
Secondes sans confirmation, après un envoi expiré, avant que api_send/status réponde not_sent pour sa reference. De 60 à 86400 ; 180 par défaut (3 minutes).
fallback_template_id int Facultatif
L'ID local du modèle (template_id). Utile quand plusieurs modèles partagent le même nom dans des langues différentes. Ignoré si fallback_template_name est aussi envoyé.
fallback_template_language string Facultatif
Normalement déduit automatiquement de l'enregistrement du modèle. N'envoyez ce champ que pour le forcer.
fallback_template_variables array | string Facultatif
Valeurs du modèle de repli. Le nombre est vérifié par rapport au modèle avant tout envoi.
fallback_template_buttons array | string Facultatif
Charges utiles des boutons URL du modèle de repli.
Erreurs40
Gateway settings do not exist.
Aucune passerelle active pour cette combinaison app_id + line_id.
GATEWAYS ARE PROBABLY DISCONNECTED… TRY AGAIN IN ABOUT 10 MINUTES.
Réponse tenant compte de l'état de santé, error_code: gateways_probably_disconnected.
GATEWAYS ARE DISCONNECTED. PLEASE RECONNECT BY SCANNING THE QR CODE…
Réponse tenant compte de l'état de santé, error_code: gateways_disconnected.
No eligible gateway available for retry.
Aucune passerelle fonctionnelle n'a été trouvée pendant l'envoi.
message or media is required
Ni message ni file_url n'a été fourni.
phone is required
Ni phone ni email n'a été fourni.
Phone number is missing or invalid. Include country code, e.g. +39123456789.
phone mal formé — il doit commencer par + et comporter l'indicatif du pays.
The phone number does not exist on WhatsApp.
Le numéro n'a pas de compte WhatsApp. Rien n'a été envoyé, et l'URL Failure Webhook de la ligne a reçu fallback_reason: "number_not_on_whatsapp".
The email address is invalid.
email mal formée.
No such account exists with this email and phone pair.
Vous avez envoyé les deux, et cette paire n'est pas en base — lorsque les deux sont envoyés, l'API vérifie d'abord l'utilisateur. Envoyer également name et surname crée le compte à la place, et renvoie sib_user_id.
The phone number associated with this account is not correct. …The current one is: API_SENT_PHONE_NUMBER
Envoi par e-mail seul ; le compte existe mais le téléphone enregistré est invalide.
No phone number is associated with this account.
Envoi par e-mail seul ; le compte existe mais aucun téléphone n'y est rattaché.
No such account exists with this email.
Envoi par e-mail seul ; aucun compte avec cette adresse.
We are sorry but this account is already linked to one of our customers.
Envoi par e-mail seul avec name/surname ; l'adresse appartient déjà à un autre client.
The file does not exist.
file_url a été fourni mais rien n'est servi à cette URL.
The file size is too large. The maximum file size allowed is 25 MB.
Le fichier dépasse la limite de 25 Mo.
The file type is not supported.
Le fichier ne fait pas partie des types pris en charge — voir la note sous ce tableau.
The tts_voice value is not valid.
La voix ne fait pas partie des options acceptées.
The tts_speed value must be between 0.25 and 4.0.
Hors plage pour OpenAI.
The tts_speed value must be between 0.1 and 1.2 for ElevenLabs.
Hors plage pour ElevenLabs.
Text to Speech is not enabled for this application.
tts_enabled=1 mais la synthèse vocale est désactivée ou non configurée pour l'application.
Service is temporarily unavailable, please try later.
tts_enabled=1 et aucune passerelle n'est CONNECTED.
no active/connected gateway for this app — connect a line first
Le line_id ne correspond à aucune passerelle utilisable. C'est aussi ce que vous obtenez lorsque aucune ligne n'est connectée.
Roundbin not found.
Aucun roundbin portant ce roundbin_id dans cette application.
You cannot send a message because your line status is EXPIRED|DISABLED|NOT_CONFIGURED.
La ligne choisie n'est pas au statut CONFIGURED.
All lines in this roundbin are disconnected and no fallback template is set.
Toutes les lignes du roundbin sont hors service et aucun modèle de repli n'est défini. Reconnectez une ligne ou configurez un modèle.
You have reached the maximum limit of messages for this month.
Le plafond mensuel — 10 000 par défaut — compte chaque message sortant réussi. C'est une limite de plateforme, pas le seuil quotidien.
The is_link_preview_enabled value is not valid.
Une valeur autre que 0 ou 1.
The phone number does not exist on WhatsApp.
Le destinataire n'a pas de compte WhatsApp.
Group id missing.
is_sent_to_group=1 mais group_id est absent ou vide.
Group not found.
group_id n'est pas un groupe valide. Ne se produit que sur WA API MASTER — la passerelle slave ne prend en charge ni les groupes ni cette vérification.
template_name is required for cloud_api send.
sans nom de modèle.
Template requires {N} variables, {M} provided.
Le nombre de template_variables ne correspond pas à la définition du modèle.
Fallback template not found or not approved.
fallback_template_id ne correspond à aucun modèle APPROVED de cette application. Resynchronisez les modèles depuis Meta.
Fallback template '{name}' requires {N} variables, {M} provided.
Nombre de variables incohérent sur le modèle de repli de cet appel.
{line error} Fallback template send failed: {reason}
La ligne n'a pas pu envoyer, et le modèle de fallback a lui aussi été refusé. Rien n'a été livré. La première partie dit pourquoi la ligne a échoué, la seconde pourquoi Meta a refusé.
{line error} Fallback template not delivered: {reason}
La ligne n'a pas pu envoyer. Meta a accepté le modèle de fallback, puis l'a signalé comme non livré.
(#190) Access token has expired
Le jeton d'accès Meta WABA a expiré. Reconnectez-vous depuis la page de configuration WABA.
(#132000) Variable parameter count mismatch
Meta a rejeté l'appel au modèle — le nombre de variables ne correspond pas à la définition côté Meta.
(#131005) …
Une erreur de limite ou de permission de Meta Cloud API. Vérifiez le statut du compte WABA dans Meta Business Manager.
Types de fichiers pris en charge

Images image/jpeg, image/jpg, image/png · Vidéo video/mp4, video/ogg, application/octet-stream · Audio audio/mpeg, audio/ogg · Documents application/pdf, application/msword, types OpenXML de Word/Excel/PowerPoint, application/vnd.ms-excel, application/vnd.ms-powerpoint, text/plain, text/html, text/css, application/ics.

Le repli n'est pas la même chose qu'un envoi direct via Cloud API

send_via=cloud_api passe toujours par Meta, quoi que dise le compteur journalier. Les paramètres fallback_template_* n'agissent que sur un envoi par la ligne (migasender) : le modèle part quand le seuil journalier de la ligne est atteint, ou quand la ligne ne peut pas envoyer. Un fallback par appel remplace celui configuré sur la ligne pour cette seule requête.

La langue du modèle doit correspondre exactement

Les codes de langue doivent correspondre au modèle approuvé chez Meta — it, en_US, en, pt_BR. En cas d'écart, Meta renvoie une erreur de modèle introuvable.

Un repli sur seuil que Meta rejette aussi

Vous recevez HTTP 200 avec le champ d'erreur renseigné et le message réel de Meta propagé, par exemple { "error": "(#190) Access token has expired", "data": null }. Le seuil quotidien de la ligne a été atteint et l'envoi vers Meta a échoué : rien n'a donc été délivré.

POST /p/{regToken}/api_send/checkphone

Vérifier un numéro de téléphone

Indique si un numéro existe sur WhatsApp. Trois paramètres seulement. La même vérification a lieu dans l'endpoint d'envoi.

app_id int Obligatoire
L'identifiant de votre application.
security_token string Obligatoire
Le jeton de l'API Send Message.
phone string Obligatoire
10 à 14 chiffres avec un + initial et l'indicatif du pays.
Erreurs2
The service is currently unavailable due to an issue with the WA API Master. Please try again later.
Le serveur MASTER est hors service — cet endpoint n'a pas de repli sur le slave.
The phone number is not correct. Please add a phone between 10-14 digits with + international country code at the beginning.
phone mal formé.
POST /p/{regToken}/api_send/status

Consulter le statut d'un message envoyé

Indique ce qu'est devenu un message après l'envoi : via le message_id renvoyé par l'envoi, ou via votre propre reference quand l'envoi a expiré sans renvoyer d'id.

app_id int Obligatoire
L'identifiant de votre application.
security_token string Obligatoire
Le jeton de l'API Send Message.
message_id string Conditionnel
Le message_id renvoyé par l'envoi (un id de ligne ou un wamid Cloud API). Envoyez celui-ci ou reference.
reference string Conditionnel
La reference que vous avez passée à l'envoi : un envoi par la ligne, un envoi direct send_via=cloud_api, ou un envoi que le fallback a basculé vers la Cloud API. Utilisez-la quand l'envoi a expiré sans renvoyer de message_id : la réponse indique si le message est réellement parti.
Erreurs3
message_id is required.
Ni message_id ni reference n'ont été envoyés.
message_id not found.
Aucun message avec cet id dans cette application.
reference not found.
Aucun envoi ne portait cette reference : l'envoi n'a jamais atteint une ligne (refusé ou invalide), ou la référence est erronée. Un envoi refusé parce que le numéro n'a pas WhatsApp a bien un enregistrement : il répond not_sent.
POST /p/{regToken}/api_send/groups

Lister les groupes d'une ligne

Renvoie tous les groupes WhatsApp auxquels appartient la ligne, avec les valeurs group_id nécessaires à un envoi de groupe.

app_id int Obligatoire
L'identifiant de votre application.
security_token string Obligatoire
Le jeton de l'API Send Message.
line_id int Facultatif
Vaut 1 si le champ n'est pas envoyé.
POST /p/{regToken}/api_send/heartbeat

Heartbeat

Confirme que l'API Send Message est joignable et que votre jeton et votre identifiant d'application sont acceptés. Accepte les mêmes paramètres que l'endpoint d'envoi, mais n'envoie rien.

Paramètres

Les deux paramètres communs suffisent.

Forme de la réponse

Le document officiel ne publie pas de corps d'exemple pour les endpoints heartbeat ; aucun n'est donc reproduit ici. Considérez qu'une réponse avec error: null signifie joignable, et consultez le tableau des erreurs ci-dessus pour les cas d'échec.

2 endpoints

Historique des conversations

Lecture des conversations enregistrées, avec des filtres par téléphone, e-mail, date, ligne, origine, destination et sens.

Ce qui est renvoyé

Les messages contenant un média apparaissent dans la même clé message que le texte. Lorsqu'un message contient les deux, le texte précède l'URL du média.

Chaque enregistrement comporte un champ in_out — IN pour entrant, OUT pour sortant.

Important

filter_start_time est comparé à l'horloge de votre serveur : le fuseau horaire de l'application ou du serveur doit donc être correctement réglé pour que le filtre signifie ce que vous attendez.

Ce dont chaque endpoint d'Historique des conversations a besoin

app_id int Obligatoire
L'identifiant de votre application.
security_token string Obligatoire
Le jeton de l'API Chat History, généré dans Paramètres → Paramètres API sous le libellé Chat History API Token. L'API doit également y être activée.
Erreurs que les deux endpoints d'Historique des conversations peuvent renvoyer2
Security token mismatched.
Une seule réponse couvre quatre cas : security_token absent, security_token incorrect, app_id absent ou app_id introuvable. Vérifiez les deux dans Paramètres → Paramètres API.
Chat History API is disabled.
L'API Chat History est désactivée pour cette application. Activez-la dans les paramètres API.
GET /p/{regToken}/api_chathistory/history

Lire l'historique des conversations

Renvoie les messages enregistrés de l'application. Tous les filtres sont facultatifs et se combinent.

Remarque

Une documentation plus ancienne présente cet endpoint comme un POST. C'est un GET, et les filtres sont des paramètres de la chaîne de requête.

Authentification

app_id int Obligatoire
L'identifiant de votre application.
security_token string Obligatoire
Le jeton de l'API Chat History, généré dans Paramètres → Paramètres API sous le libellé Chat History API Token. L'API Chat History doit également y être activée.

Filtres

filter_history_id int Facultatif
L'identifiant de conversation ou de journal à partir duquel commencer — avec 10, vous obtenez l'historique à partir de 10.
filter_start_date string (date) Facultatif
yyyy-mm-dd. Comparé au created_at de l'enregistrement ; renvoie l'historique à partir de cette date.
filter_start_time string (time) Facultatif
HH:mm:ss. Valable uniquement avec filter_start_date. Utilise le fuseau horaire du serveur.
filter_phone_number string (phone) Facultatif
10 à 14 chiffres avec un + initial et l'indicatif du pays.
filter_email string (email) Facultatif
Filtre sur l'e-mail d'un client, si le client existe et en a un renseigné.
filter_origin string Facultatif
L'une des valeurs WA API MASTER, WA API SLAVE, MIGACHAT, API, WEBHOOK. Les messages envoyés depuis une ligne via api_send/message ne sont renvoyés qu'en filtrant sur API.
filter_destination string Facultatif
L'une des valeurs WA API MASTER, WA API SLAVE, MIGACHAT, WEBHOOK, WA_USER.
filter_line_id int Facultatif
Accepté mais non appliqué. La requête aboutit et la valeur est ignorée : le résultat n'est donc pas restreint à cette ligne. Filtrez par ligne de votre côté pour le moment.
filter_in_out string Facultatif
Accepté mais non appliqué. IN / OUT sont ignorés ; chaque enregistrement porte son propre champ in_out, filtrez donc dessus après lecture.
Erreurs1
This app has not yet configured the gateway settings so you cannot get the history.
Aucune passerelle n'est configurée pour l'application.
Les filtres ne sont pas validés — une valeur incorrecte est ignorée, pas rejetée

Une date mal formée, une origine hors liste, un sens qui n'est ni IN ni OUT : rien de tout cela n'est refusé. Le filtre n'est simplement pas appliqué, et vous recevez le résultat non filtré avec error: null. Validez les valeurs des filtres avant de les envoyer et comparez le nombre de lignes à ce que vous attendiez, plutôt que de conclure d'une erreur vide que le filtre a été compris.

GET /p/{regToken}/api_chathistory/heartbeat

Heartbeat

Confirme que l'API Chat History est joignable et que votre jeton est accepté.

Remarque

Une documentation plus ancienne indique ce chemin comme api_chat/heartbeat. Le chemin actuel est api_chathistory/heartbeat, et il accepte GET comme POST.

Paramètres

Les deux paramètres communs suffisent.

Forme de la réponse

Le document officiel ne publie pas de corps d'exemple pour les endpoints heartbeat ; aucun n'est donc reproduit ici. Considérez qu'une réponse avec error: null signifie joignable.

5 endpoints · v2.0.0

Code QR

Rattacher un numéro WhatsApp à une ligne : récupérer le code QR, suivre le scan, puis vérifier l'état de la ligne.

Attention

JETON DE PLATEFORME requis — demandez-le à l'administrateur de la plateforme. Il n'est pas affiché dans le tableau de bord client. Où les administrateurs le trouvent.

Ce qui a changé en v2.0.0

  • /get réutilise désormais par défaut le même instance_id en attente, si bien que des appels répétés n'accumulent plus de sessions en double.
  • Envoyez action=RESET ou reset=1 pour forcer délibérément une nouvelle instance et un nouveau code QR.
  • Les demandes de code QR sont limitées en fréquence au niveau de la ligne, de l'application et de la plateforme, configurable dans le back-office.
  • Les compteurs QR d'une ligne se réinitialisent automatiquement dès qu'un scan réussit.
  • Les erreurs de limite indiquent précisément quand l'attente prend fin.

Limites de fréquence par défaut

NiveauIntervalle min.FenêtreRequêtes max.Attente
Ligne30s600s51800s
Application—600s201800s
Global—600s1001800s

Les neuf valeurs sont modifiables dans le back-office, sous QR Code API Rate Limits.

Paramètres nécessaires à chaque endpoint QR

platform_token string Obligatoire
Jeton valable pour toute la plateforme, depuis le back-office, section Platform Token for API. Peut aussi être envoyé dans l'en-tête X-Platform-Token.
app_id int Obligatoire
L'identifiant de votre application, affiché en haut à gauche du tableau de bord du module.
line_id int Obligatoire
La ligne sur laquelle vous voulez agir.
whatsapp_gateway_type string Obligatoire
Quelle passerelle de la ligne : WA API MASTER ou WA API SLAVE.
action / reset string / int Facultatif
Envoyez action=RESET ou reset=1 pour forcer une nouvelle instance et un nouveau code QR. Sans cela, /get réutilise l'instance_id en attente au lieu d'ouvrir une session en double.
Erreurs que tout endpoint QR peut renvoyer15
Platform token missing.
Ni platform_token ni en-tête X-Platform-Token.
Platform settings not found.
La plateforme n'a aucun paramètre enregistré.
Platform token not found.
Les paramètres existent, mais aucun jeton de plateforme n'y est enregistré.
Platform token mismatched.
Le jeton envoyé n'est pas celui de la plateforme.
App id missing.
app_id n'a pas été envoyé.
Invalid app id.
Aucune application ne correspond à cet app_id.
Line id missing.
line_id n'a pas été envoyé.
WhatsApp gateway type is missing.
Chaque requête doit préciser la passerelle : WA API MASTER ou WA API SLAVE.
WhatsApp gateway type is invalid.
La valeur envoyée ne correspond à aucune des deux valeurs acceptées.
Line settings do not exist.
La combinaison de paramètres envoyée ne correspond à aucune ligne.
Line status is EXPIRED | DISABLED.
Une ligne dans l'un ou l'autre de ces états ne peut pas être modifiée.
Line QR rate limit reached (max X requests per Y seconds). Please wait until YYYY-MM-DD HH:MM:SS before trying again.
Limite par ligne. Le message indique l'heure exacte à laquelle l'attente prend fin.
App QR rate limit reached (max X requests per Y seconds). Please wait until YYYY-MM-DD HH:MM:SS before trying again.
Limite par application.
Platform QR rate limit reached (max X requests per Y seconds). Please wait until YYYY-MM-DD HH:MM:SS before trying again.
Limite pour toute la plateforme.
Please wait 25s before requesting a new QR code for this line. Next allowed at YYYY-MM-DD HH:MM:SS.
L'intervalle minimal entre deux demandes de code QR sur la même ligne.
POST /p/{regToken}/api_qr/get

Obtenir un code QR

Attention

JETON DE PLATEFORME requis — demandez-le à l'administrateur de la plateforme. Il n'est pas affiché dans le tableau de bord client. Où les administrateurs le trouvent.

Renvoie un PNG en base64 à afficher pour le scan, ainsi que l'instance_id dont vous aurez besoin pour suivre le scan.

En plus des paramètres communs

phone string Obligatoire
10 à 14 chiffres avec un + initial et l'indicatif du pays. Doit être unique par ligne et doit être le numéro qui scannera le code QR.
Erreurs4
Phone is missing.
phone n'a pas été envoyé, ou est vide.
The phone number is not correct. Please add a phone between 10-14 digits with + international country code at the beginning.
phone mal formé.
This phone number is already used.
Une autre ligne utilise déjà ce numéro.
This gateway for the line is already working. You cannot get the QR code for it.
La passerelle est déjà connectée — il n'y a rien à scanner.
Le code QR expire au bout de 30 secondes

Insérez la chaîne base64 directement dans une balise <img>. S'il n'est pas scanné dans les 30 secondes, il expire et peut cesser de fonctionner. Conservez l'instance_id — tous les appels suivants en ont besoin.

Puis lancez l'interrogation

Dès que le code QR est affiché, appelez check-scan-status toutes les 2000 ms avec l'instance_id (et le team_id sur une passerelle slave) jusqu'à ce qu'il signale un succès.

POST /p/{regToken}/api_qr/check-scan-status

Vérifier l'état du scan

Attention

JETON DE PLATEFORME requis — demandez-le à l'administrateur de la plateforme. Il n'est pas affiché dans le tableau de bord client. Où les administrateurs le trouvent.

Interrogez cet endpoint après avoir affiché le code QR pour savoir s'il a déjà été scanné.

En plus des paramètres communs

instance_id string Obligatoire
L'identifiant d'instance renvoyé par /get.
team_id int Conditionnel
Obligatoire uniquement sur WA API SLAVE, où /get l'a renvoyé. Inutilisé sur MASTER.
Erreurs2
Instance ID is missing.
instance_id n'a pas été envoyé.
Team id is missing.
Un appel sur passerelle slave sans team_id.
Cadence d'interrogation

Appelez toutes les 2000 ms tant que le code QR est affiché. Arrêtez dès que status vaut success et message vaut Success.

POST /p/{regToken}/api_qr/get-current-status

Obtenir l'état actuel

Attention

JETON DE PLATEFORME requis — demandez-le à l'administrateur de la plateforme. Il n'est pas affiché dans le tableau de bord client. Où les administrateurs le trouvent.

Indique si une instance enregistrée fonctionne à l'instant présent. Enregistrez l'instance_id en local après /get et utilisez-le ici chaque fois que vous avez besoin de l'état réel.

En plus des paramètres communs

instance_id string Obligatoire
L'identifiant d'instance renvoyé par /get, conservé dans votre propre base.
Erreurs2
Instance ID is missing.
instance_id n'a pas été envoyé.
Instance ID mismatched.
Cette instance n'appartient pas aux paramètres de passerelle trouvés.
POST /p/{regToken}/api_qr/rescan

Rescanner

Attention

JETON DE PLATEFORME requis — demandez-le à l'administrateur de la plateforme. Il n'est pas affiché dans le tableau de bord client. Où les administrateurs le trouvent.

Renvoie un nouveau code QR pour une instance qui a cessé de fonctionner, afin de reconnecter le numéro.

En plus des paramètres communs

instance_id string Obligatoire
L'identifiant de l'instance à reconnecter. N'a de sens que lorsque cette instance est NOT_WORKING.
Erreurs5
Instance ID is missing.
instance_id n'a pas été envoyé.
Instance ID mismatched.
Cette instance n'appartient pas aux paramètres de passerelle trouvés.
Line status is NOT_CONFIGURED.
La ligne n'a jamais été configurée : il n'y a donc aucun état à rétablir.
This instance is not configured.
La ligne est CONFIGURED mais pas pour cette instance — une ligne peut en contenir au moins deux.
This instance is already working.
Il n'y a rien à rescanner.
Le rescan est lui aussi limité en fréquence

Les mêmes limites de ligne, d'application et globales s'appliquent. Interrogez ensuite check-scan-status toutes les 2000 ms, exactement comme après /get.

POST /p/{regToken}/api_qr/get-instance-info

Obtenir les informations de l'instance

Attention

JETON DE PLATEFORME requis — demandez-le à l'administrateur de la plateforme. Il n'est pas affiché dans le tableau de bord client. Où les administrateurs le trouvent.

Renvoie le jeton d'accès de la passerelle, le téléphone rattaché, ainsi que l'état de la ligne et celui de l'instance. Fonctionne avec les seuls paramètres communs — changez whatsapp_gateway_type pour examiner l'autre passerelle.

Paramètres

Aucun paramètre supplémentaire — les quatre paramètres communs suffisent.

Erreurs1
Instance not found.
Aucune instance ni ligne de ce type dans le système.

2 endpoints · v1.0.0

Groupes

Créer des groupes WhatsApp depuis un système externe et lire ce qui s'y est dit.

Attention

JETON DE PLATEFORME requis — demandez-le à l'administrateur de la plateforme. Il n'est pas affiché dans le tableau de bord client. Où les administrateurs le trouvent.

Avant le premier appel

Cette famille s'authentifie au moyen d'un seul jeton de plateforme, envoyé soit dans l'en-tête X-Platform-Token, soit dans le champ platform_token du corps. La création de groupes passe par une ligne d'agent IA dédiée, qui doit être configurée au préalable.

Dans le back-office, sous AI Agent Settings, renseignez les six champs :

  • AI Agent Name
  • AI Agent Instance ID
  • AI Agent Access Token
  • AI Agent Phone — E.164, par exemple +391234567890
  • AI Agent Gateway API URL
  • AI Agent Gateway API Key

Le même écran contient le Platform Token for API à copier, les Group Creation Logs des groupes créés et en échec, ainsi que la visionneuse Group Chat History avec filtres, liens vers les médias et un badge ADMIN sur les messages de l'agent.

Tous les endpoints répondent avec la même enveloppe : { "error": null | string, "data": object | null }.

Paramètre nécessaire à chaque endpoint Groupes

platform_token string Obligatoire
Jeton valable pour toute la plateforme, depuis le back-office. Peut être envoyé dans l'en-tête X-Platform-Token plutôt que dans un champ du corps.
POST /p/{regToken}/api_group/create

Créer un groupe

Attention

JETON DE PLATEFORME requis — demandez-le à l'administrateur de la plateforme. Il n'est pas affiché dans le tableau de bord client. Où les administrateurs le trouvent.

Crée un groupe WhatsApp avec l'agent IA comme créateur et administrateur. Le corps est du JSON brut.

En plus du jeton de plateforme

members array Obligatoire
Au moins 2 numéros de téléphone au format E.164 avec un + initial. L'agent IA s'ajoute par-dessus : le plus petit groupe possible compte donc 3 personnes.
group_name string Facultatif
Le titre du groupe. S'il est omis, la passerelle génère un nom par défaut.
description string Facultatif
La description du groupe.
metadata object Facultatif
Tout ce que vous souhaitez conserver avec le groupe — match_id, source, etc.
Erreurs6
Platform token missing.
Aucun jeton, ni dans l'en-tête ni dans le corps.
Platform token mismatched.
Le jeton envoyé n'est pas celui de la plateforme.
At least 2 member phone numbers are required.
Moins de deux numéros valides — et ils doivent exister sur WhatsApp.
Invalid member phone number. Use +countrycode format.
L'un des numéros n'est pas au format E.164.
Invalid date for line_expiration_date. Date should be greater than the current date.
line_expiration_date est dans le passé.
AI agent instance ID is missing in settings.
Les paramètres AI Agent Settings du back-office sont incomplets.
D'où viennent les identifiants de la passerelle

Le Gateway API URL et l'API Key utilisés pour la création sont lus dans AI Agent Settings — vous ne les envoyez jamais dans l'appel.

POST /p/{regToken}/api_group/history

Obtenir l'historique des conversations du groupe

Attention

JETON DE PLATEFORME requis — demandez-le à l'administrateur de la plateforme. Il n'est pas affiché dans le tableau de bord client. Où les administrateurs le trouvent.

Renvoie les messages du groupe paginés, en reprenant les filtres appliqués à côté des résultats.

Remarque

Une documentation plus ancienne présente cet endpoint comme un GET avec des paramètres de requête. C'est un POST, et les filtres se placent dans le corps JSON.

Filtres — tous facultatifs, mais envoyez-en au moins un

group_id string Facultatif
Filtrer par identifiant de groupe. Préférable au nom.
group_name string Facultatif
Filtrer par nom de groupe, qui est ramené à un identifiant de groupe.
member_phone string Facultatif
Filtrer par expéditeur, au format +123….
from_date string (date) Facultatif
YYYY-MM-DD.
to_date string (date) Facultatif
YYYY-MM-DD.
search string Facultatif
Recherche en texte libre dans les messages.
page int Facultatif
Par défaut 1.
limit int Facultatif
Par défaut 50, maximum 200.

1 endpoint

Configuration automatique de Migachat

Mettre en place l'assistant IA sur une ligne en un seul appel — instance, identifiants, prompt et tous les jetons dont vous aurez besoin ensuite.

Ce que fait un seul POST

Conçu pour les systèmes externes — interfaces de facturation, CRM — afin de mettre en place MigaChat dans une application précise et sur une ligne WhatsApp précise sans que personne n'ouvre le back-office. Une seule requête :

  • ajoute et active la fonction MigaChat dans l'application,
  • enregistre les identifiants OpenAI (clé d'API, identifiant d'organisation, modèle),
  • insère le prompt système du chatbot,
  • relie la ligne WhatsApp à l'instance MigaChat,
  • et renvoie les jetons Bridge, Chat History et Send Message.
POST /p/{regToken}/api_migachat-setup/setup

Mettre en place MigaChat sur une ligne

Crée et configure une instance MigaChat et la relie à une ligne WhatsApp.

Remarque

Cet endpoint est également accessible sans le préfixe /p/<token>/, à l'adresse /api_migachat-setup/setup. Les deux chemins sont actifs ; sur celui avec préfixe, le registration token peut provenir du chemin plutôt que du corps.

Obligatoires

app_id int Obligatoire
L'identifiant de votre application.
security_token string Obligatoire
Le security token de votre plateforme.
line_id int Obligatoire
La ligne WhatsApp à laquelle relier MigaChat.
openai_api_key string Obligatoire
Votre clé secrète OpenAI. Elle est vérifiée auprès d'OpenAI avant que quoi que ce soit ne soit enregistré.
organization_id string Obligatoire
L'identifiant de votre organisation OpenAI.
gpt_model string Obligatoire
Le modèle à utiliser, par exemple gpt-4o-mini.
prompt string Obligatoire
Le prompt système — les instructions permanentes du chatbot.

Facultatifs

chat_type string Facultatif
chatgpt (par défaut) ou assistant.
enable_stt int Facultatif
1 active la reconnaissance vocale. Par défaut 0.
enable_tts int Facultatif
1 active la synthèse vocale. Par défaut 0.
overwrite int Facultatif
1 remplace une instance MigaChat déjà présente sur cette ligne. Par défaut 0, ce qui provoque un échec.
Erreurs5
MigaChat not installed
Le module MigaChat n'est pas installé sur ce serveur.
Invalid Line ID
Ce line_id n'appartient pas à cet app_id.
Already configured
La ligne possède déjà une instance MigaChat. Envoyez overwrite=1 pour la remplacer.
Invalid OpenAI Key
La clé n'a pas pu être validée auprès d'OpenAI.
missing required fields: app_id, line_id, openai_api_key, …
La réponse énumère tous les champs obligatoires absents ou vides.