Lorsqu'un message se termine, examinez son événement terminal et son code d'erreur avant de décider s'il faut réessayer ou investiguer la livraison.
Que signifie whatsapp.rejected ?
Bird a arrêté le message avant l'expédition et ne l'a pas facturé.
Les vérifications du destinataire et la facturation peuvent produire un résultat de rejet. Utilisez le code associé pour choisir l'action suivante :
| Code | Cause | Action suivante |
|---|---|---|
undeliverable | Aucune adresse de destinataire utilisable | Corrigez le destinataire |
recipient_suppressed | Le destinataire est supprimé | Respectez le désabonnement et examinez les enregistrements de consentement |
price_not_found | Bird ne peut pas tarifer l'envoi | Contactez le support avec l'identifiant du message |
insufficient_balance | Le portefeuille ne peut pas financer l'envoi ou l'organisation ne peut pas être facturée | Résolvez la facturation avant de renvoyer |
Un envoi non tarifé est refusé plutôt que traité comme gratuit. Répéter la requête inchangée ne fournit pas le prix manquant.
L'horodatage du rejet utilise l'heure d'acceptation initiale. Utilisez-le de manière cohérente dans vos rapports afin que le délai de file d'attente ne déplace pas le rejet dans une période de rapport ultérieure.
Que signifie whatsapp.failed ?
Le message a échoué pendant l'envoi ou la livraison, et sa cause est enregistrée dans les détails de l'erreur.
Meta peut signaler un échec via un callback de livraison. Il peut aussi refuser la requête d'envoi de Bird avant d'accepter le message pour livraison.
Bird enregistre internal_error lorsque le numéro d'envoi n'a pas d'identifiant utilisable ou que le traitement épuise ses tentatives. meta_error_code est le code d'erreur enregistré par Meta. Ce code Bird n'en contient pas.
Un épuisement des tentatives peut inclure des erreurs de transport ou des échecs en amont. Ne déduisez pas de internal_error seul que Meta n'a jamais reçu de requête.
Vérifiez la description et la connexion du numéro d'envoi. Transmettez l'identifiant du message au support lorsque la cause reste incertaine.
Un échec peut survenir après facturation. Examinez le cost du message au lieu de supposer que chaque envoi infructueux était gratuit.
Pourquoi undeliverable apparaît-il sur les deux événements ?
Lors d'un rejet, Bird n'a pas pu adresser le destinataire. Lors d'un échec, c'est le résultat normalisé de Bird pour un refus Meta.
Le code d'erreur est plus large qu'un constat d'impossibilité de réception par le téléphone. Bird utilise aussi undeliverable lorsqu'un code Meta n'a pas de correspondance plus spécifique.
Consultez meta_error_code pour le code enregistré par Meta et description pour l'explication associée. Un échec signalé sans détails d'erreur reçoit quand même undeliverable.
D'autres codes d'échec normalisés identifient des problèmes plus spécifiques :
| Code | Que faut-il investiguer |
|---|---|
service_window_expired | Si du contenu libre a été envoyé en dehors de la fenêtre de service |
rate_limited | Les limites d'envoi ou de destinataire de Meta |
media_rejected | Le média refusé par Meta |
internal_error | L'échec de traitement ou d'envoi enregistré par Bird |
Conservez les codes inconnus dans vos journaux. Le jeu de codes peut évoluer, et une valeur inconnue ne doit pas invalider un événement par ailleurs exploitable.
Comment mon gestionnaire d'événements doit-il interpréter le résultat ?
Branchez sur le type d'événement et son code d'erreur ensemble.
Un message rejeté ne progresse pas vers un événement sent. Un message échoué nécessite ses détails d'erreur pour distinguer un échec interne de la réponse de Meta.
Séparez le statut de livraison de l'engagement. Un événement whatsapp.read enregistre une lecture sans remplacer le statut de livraison du message.
Bird émet son propre whatsapp.sent après la réussite de l'envoi. Il ne crée pas d'autre événement à partir du callback de statut d'envoi distinct de Meta.
La revue de template utilise un ensemble de statuts différent. Examinez la langue du template lorsque l'approbation est le problème, plutôt que ces résultats de message.
Que dois-je faire avant un nouvel envoi ?
Corrigez la cause enregistrée avant d'envoyer un autre message.
Pour service_window_expired, utilisez un template approuvé ou attendez que le message du client rouvre la fenêtre de service.
En cas de suppression, respectez le choix du destinataire. Retirer un désabonnement reviendrait à ignorer la préférence du destinataire et créerait un risque de conformité.
En cas de problème de facturation ou de connexion de l'expéditeur, résolvez d'abord cette condition de compte. Conservez l'identifiant du message original afin que le support puisse examiner la tentative infructueuse.
Si le numéro ou le Business Account est restreint ou banni, suivez les étapes de restriction et d'appel du compte avant de réessayer.
En cas d'échec de transport incertain, investiguez avant de créer un autre message. Un nouvel envoi peut dupliquer une requête dont le résultat n'a pas été observé.
En bref
Un rejet n'est pas facturé.
Bird arrête le message avant l'expédition lorsque les vérifications du destinataire ou la facturation empêchent l'envoi.
Un échec peut provenir de Bird ou de Meta.
Examinez l'erreur enregistrée avant de décider où investiguer.
internal_errorne contient pas de code d'erreur Meta.Interprétez l'événement et le code ensemble.
undeliverableapparaît sur les deux événements. Sa signification dépend de l'endroit où le message s'est arrêté.Choisissez la correction à partir de la cause.
Corrigez le problème de destinataire, de compte, de contenu ou de timing avant de tenter un nouvel envoi. Conservez les codes inconnus pour investigation.