# Messages de service WhatsApp

Un **message de service** est tout ce que vous envoyez en dehors d'un template pré-approuvé : le contenu libre qu'une entreprise envoie dans une conversation ouverte. `POST /v1/whatsapp/messages` transporte exactement l'un des neuf types de contenu de message de service, ou un template. Cette page couvre ce que les neuf types ont en commun ; la page de chaque type détaille sa structure réseau et ses propres limites.

## Les types de contenu

| Type                                                                    | Champ           | Ce qu'il transporte                                                                                     | À utiliser quand                                                                          |
| ----------------------------------------------------------------------- | --------------- | ------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| [Texte brut](/docs/guides/whatsapp/message-types/plain-text)            | `text`          | Un corps de 4 096 caractères maximum, avec un aperçu de lien facultatif                                 | vous envoyez un message sans pièce jointe                                                 |
| [Images](/docs/guides/whatsapp/message-types/images)                    | `image`         | Une URL d'image publique et une légende facultative                                                     | vous envoyez une photo ou un visuel                                                       |
| [Vidéo](/docs/guides/whatsapp/message-types/video)                      | `video`         | Une URL de vidéo publique et une légende facultative                                                    | vous envoyez un clip vidéo                                                                |
| [Audio](/docs/guides/whatsapp/message-types/audio)                      | `audio`         | Une URL audio publique, éventuellement rendue sous forme de note vocale                                 | vous envoyez un message vocal ou un clip audio                                            |
| [Stickers](/docs/guides/whatsapp/message-types/stickers)                | `sticker`       | Une URL d'image WebP publique                                                                           | vous envoyez un sticker                                                                   |
| [Documents](/docs/guides/whatsapp/message-types/documents)              | `document`      | Une URL de fichier publique, une légende facultative et un nom de fichier facultatif                    | vous envoyez un PDF, un tableur ou un autre fichier                                       |
| [Localisation](/docs/guides/whatsapp/message-types/location)            | `location`      | Une latitude et une longitude, avec un nom et une adresse facultatifs                                   | vous envoyez un repère, par exemple un point de retrait                                   |
| [Fiches contact](/docs/guides/whatsapp/message-types/contact-cards)     | `contact_cards` | Une à cinq fiches contact, chacune avec un nom et des numéros, e-mails, sites web ou adresses éventuels | vous partagez les coordonnées de quelqu'un, par exemple le numéro d'un collègue           |
| [Messages interactifs](/docs/guides/whatsapp/message-types/interactive) | `interactive`   | Du texte plus un bouton, un menu, un lien, une carte ou une demande de localisation ou de contact       | vous voulez que le destinataire appuie sur un élément au lieu de saisir une réponse libre |

Une requête transporte exactement l'un des champs `template` ou l'un de ces neuf champs. Une requête qui n'en contient aucun, ou qui en contient plus d'un, est refusée avec une `422`.

## La fenêtre de service client

Un message de service, c'est-à-dire l'un des neuf types ci-dessus, n'est livré qu'à l'intérieur d'une fenêtre de service client de 24 heures ouverte. Le contact ouvre cette fenêtre en envoyant un message ou en appelant votre numéro professionnel, et chaque nouveau message de sa part la réinitialise à 24 heures.

Un message de service envoyé dans une fenêtre fermée est refusé immédiatement : la requête renvoie une `422` [`E15044`](/docs/api/errors/E15044) `WhatsAppServiceWindowClosed`, et rien n'est créé ni facturé. Envoyez plutôt un template approuvé ; il atteint le contact indépendamment de la fenêtre, et sa réponse la rouvre. Une fenêtre qui se ferme entre l'acceptation et l'envoi échoue quand même, mais de façon asynchrone : le message atteint `failed` avec `service_window_expired` sur `last_error`.

La vérification à l'acceptation fonctionne au mieux, sans garantie : **la porte s'ouvre par défaut**, donc un cache manquant ou une erreur de lecture laisse passer l'envoi au lieu de le bloquer. Un `202` ne prouve donc pas que la fenêtre était ouverte au moment de l'envoi ; le signal définitif est le statut du message lui-même, pas la réponse d'acceptation.

Chaque message de service requiert aussi `from`, un numéro appartenant à votre espace de travail. Les numéros gérés par Bird ne le supportent pas, donc un message de service nécessite d'abord un numéro à vous connecté ; voir [Configuration du numéro de téléphone](/docs/guides/whatsapp/phone-number-setup).

Voir [la fenêtre de service client](/docs/knowledge-base/whatsapp/customer-service-window) pour le cycle de vie complet : comment la fenêtre s'ouvre, ce qui la réinitialise et comment elle est suivie.

## Envoi de médias par URL

`image`, `video`, `audio`, `sticker` et `document` prennent tous un `url` pointant vers un fichier que WhatsApp récupère au moment de l'envoi, et non un fichier que vous téléchargez vers Bird. Bird vérifie la forme de l'URL à l'acceptation, avant toute mise en file d'attente :

- Non vide et analysable, avec un hôte et sans espace brut
- Le schéma est `https`

Une URL `http` est rejetée avec une `422` à l'acceptation, même si WhatsApp la récupérerait sans problème. C'est la politique de Bird, pas une limite imposée par WhatsApp.

Bird ne vérifie ni la taille du fichier, ni son type MIME, ni l'accessibilité de l'URL. WhatsApp récupère l'URL au moment de l'envoi du message, donc une URL signée doit rester valide au-delà de cet instant, pas seulement au moment où vous envoyez la requête ; une URL privée ou expirée échoue lorsque WhatsApp tente de la récupérer. WhatsApp met aussi en cache une URL récupérée pendant environ 10 minutes, donc renvoyer la même URL dans cet intervalle réutilise le premier téléchargement au lieu de récupérer à nouveau.

## Quand le média échoue

Un envoi de média suit le même chemin asynchrone que tout message WhatsApp : Bird renvoie `202` et accepte le message, puis WhatsApp récupère l'URL au moment de l'envoi. Si cette récupération échoue, le message atteint `failed` avec `media_rejected` sur `last_error`, qui correspond à `131053` de Meta en dessous.

`media_rejected` est un code générique couvrant aussi bien un fichier trop volumineux, un `404`, une erreur DNS qu'un type MIME incorrect ; Bird ne le détaille pas davantage, donc n'attendez pas un code distinct par cause.

Un envoi de média échoué de façon asynchrone est quand même facturé. La facturation intervient quand Bird traite l'envoi accepté, avant même que WhatsApp ne récupère l'URL, et il n'existe aucun mécanisme de remboursement une fois le montant débité. Prévoyez en conséquence : un message qui échoue plus tard dans `media_rejected` a déjà coûté autant qu'un message livré.

## Lire ce qu'un contact a envoyé

Un message entrant transporte l'un des mêmes neuf types, donc le champ que vous lisez correspond au type utilisé par le contact. Les fiches contact se lisent sur le même champ `contact_cards`, que le contact en ait partagé une ou que vous en ayez envoyé une. [Recevoir des messages WhatsApp](/docs/guides/whatsapp/receiving-whatsapp) couvre la lecture des messages entrants via le API, la récupération des médias envoyés par un contact et le webhook `whatsapp.received`.

## Étapes suivantes

- [Envoyer des messages WhatsApp](/docs/guides/whatsapp/sending-whatsapp) : l'enveloppe de requête, le modèle `202` et les réessais sûrs
- [Messages interactifs](/docs/guides/whatsapp/message-types/interactive) : les six types sur lesquels un destinataire peut appuyer
- [Recevoir des messages WhatsApp](/docs/guides/whatsapp/receiving-whatsapp) : messages entrants, médias et webhook `whatsapp.received`
- [Templates WhatsApp](/docs/guides/whatsapp/templates) : les messages que vous pouvez encore envoyer une fois la fenêtre fermée

## Related resources

- [Connecting WhatsApp to Bird: from buying a number to a live channel](/learn/whatsapp/connecting-whatsapp-to-bird) (video)
- [What is the 24-hour customer service window on WhatsApp?](/explained/whatsapp/what-is-the-24-hour-customer-service-window) (answer)
- [WhatsApp message builder](/tools/whatsapp-message-builder) (tool)
- [WhatsApp](/products/whatsapp) (product)

[Get an implementation brief](/learn/workspace?topic=whatsapp)
