Codes d'erreur WhatsApp Cloud API
Voici tous les codes d'erreur WhatsApp Cloud API que nous documentons, dans un seul tableau, avec leur signification et l'utilité d'une nouvelle tentative. La plupart sont déterministes : la même requête échoue de la même façon et une boucle de nouvelles tentatives transforme une mauvaise requête en limite de débit.
Request
| Code | What it means | Retry |
|---|---|---|
| 100 | A parameter is unsupported, misspelled or malformed. | No |
| 131008 | A required parameter was not included at all. | No |
| 131009 | A parameter is present with a value the endpoint rejects. | No |
| 131021 | Sender and recipient are the same number. | No |
| 131051 | The message type is not supported, often a Coexistence limit. | No |
| 131052 | Meta could not download media a customer sent. | No |
| 131053 | Meta could not upload media you sent. Size, format or reach. | No |
Template
| Code | What it means | Retry |
|---|---|---|
| 132000 | The number of parameters does not match the template. | No |
| 132001 | No template exists with that name and language pair. | No |
| 132007 | The template breaks messaging policy. Rewrite and resubmit. | No |
| 132012 | Parameter format does not match what the template defines. | No |
| 132015 | The template is paused after a quality decline. Temporary. | Wait |
| 132016 | The template is permanently disabled. It will not come back. | No |
Window and recipient
Registration and PIN
| Code | What it means | Retry |
|---|---|---|
| 131045 | The number was never registered for Cloud API messaging. | No |
| 133010 | The number is not registered. Registration must be completed. | No |
| 133006 | The number must be verified before it can be registered. | No |
| 133005 | The two-step verification PIN was wrong. Stop guessing. | No |
| 133008 | Too many PIN attempts. Registration is locked for a period. | Wait |
Access and account
| Code | What it means | Retry |
|---|---|---|
| 190 | The access token expired or was invalidated. | No |
| 368 | The account is restricted after a policy violation. | No |
| 131031 | The account is restricted, or its data does not match Meta's. | No |
| 131042 | A payment problem on the business account blocks sending. | No |
| 131049 | Meta blocked the message to protect ecosystem health. | No |
Rate limits
Transient
Coexistence sync
Comment lire la colonne des nouvelles tentatives
Elle comporte trois valeurs, et se tromper entre elles est l'erreur la plus coûteuse de toute cette référence.
Non signifie que l'échec est déterministe. C'est la requête, le template ou l'état du destinataire qui a échoué : renvoyer exactement la même requête produit la même erreur tout en consommant du débit dont vous aurez besoin plus tard. Oui signifie que l'échec vient de Meta et qu'un délai progressif le résout réellement. Attendre signifie que la condition est réelle mais temporaire : une limite ou un verrou qui se lève seul. Réessayer avant sa levée ne sert à rien et peut la prolonger.
Pourquoi la plupart de ces erreurs ne peuvent pas être résolues par une nouvelle tentative
Parce que la plateforme renvoie des codes précis plutôt que des codes génériques. Un paramètre mal formé, un template inexistant, une fenêtre de messagerie fermée et un destinataire désabonné sont identifiables au moment de la réponse ; Meta les nomme donc au lieu d'échouer de façon vague.
- Un problème de requête ne devient pas correct à la deuxième tentative.
- Un problème de template se trouve dans le template, que la requête ne peut pas modifier.
- Un problème de fenêtre ou de désabonnement concerne l'état du destinataire, pas le vôtre.
- Une restriction de compte est une décision, et réessayer ne constitue pas un recours.
Que journaliser lorsqu'une de ces erreurs survient
Suffisamment d'informations pour la diagnostiquer sans la reproduire : c'est ce qui fait la différence entre une correction en cinq minutes et une journée de suppositions.
- La réponse complète, y compris le trace id, demandé par le support Meta.
- Le corps de la requête telle qu'elle a été envoyée, pas telle que vous la vouliez. L'écart entre les deux est généralement le bug.
- Le phone number id, afin de distinguer un problème sur un numéro d'un problème touchant tout le compte.
- L'horodatage, afin de comparer l'échec avec l'état de la connexion à ce moment-là.
Les codes qui n'existent que sur Coexistence
Il y en a deux, et ils prêtent à confusion parce qu'ils ressemblent à des échecs d'envoi ordinaires. 2593107 et 2593108 concernent tous deux la synchronisation de l'historique des discussions, l'étape qui copie les conversations récentes depuis l'application WhatsApp Business lorsqu'un numéro est connecté pour la première fois.
Ce ne sont pas des erreurs de messagerie et elles ne signifient pas que la connexion a échoué. Une synchronisation qui dépasse sa limite ou s'exécute hors de sa fenêtre laisse le numéro connecté et capable d'envoyer normalement, avec moins d'historique copié que prévu. Les interpréter comme une connexion défaillante pousse à déconnecter puis à recommencer, ce qui fait perdre davantage d'historique au lieu de le récupérer.
Questions fréquemment posées
Quelles erreurs dois-je réessayer ?
131016 et 131000, avec un délai progressif. 130429, 132015 et 133008 disparaissent d'eux-mêmes si vous attendez. Toutes les autres sont déterministes.
Un code d'erreur signifie-t-il que mon numéro est déconnecté ?
Généralement non. La plupart concernent la requête, le template ou le destinataire. Les problèmes de connexion apparaissent dans les webhooks de compte et de qualité, pas comme des erreurs d'envoi.
Qu'est-ce qu'un trace id ?
Un identifiant présent dans la réponse qui permet au support Meta de retrouver la requête précise. Journalisez-le à chaque échec : sans lui, un ticket ne peut pas être traité.
Ces codes sont-ils identiques chez tous les fournisseurs ?
Oui. Ils viennent de la Cloud API de Meta et sont donc identiques, quel que soit le fournisseur qui a connecté le numéro. Un fournisseur peut seulement modifier la clarté avec laquelle ils vous parviennent.
Prêt à commencer ?
Configurez WhatsApp Coexistence en quelques minutes, pas en quelques mois. L’application continue de fonctionner sur le téléphone.
Commencer l'essai gratuitAucun frais pendant 7 jours. Annulez à tout moment.