What's new, 21 October 2026: A customer who sends several messages before the bot's first reply no longer gets the opening sequence of a Chat Flow twice
WASync · Developers

Scopes

Quatre scopes, résolus en direct à chaque requête. Quels endpoints exigent quel scope, et pourquoi marquer comme lu revient à envoyer.

Les scopes sont définis par identifiant : par API key ou par autorisation OAuth2. Il y en a quatre.

ScopeAutorise
whatsapp.readGET /connections, GET /connections/{id}, GET /account, GET /messages
whatsapp.sendPOST /messages, POST /messages/read
whatsapp.eventsGET /webhook, PUT /webhook, POST /webhook/rotate, et la réception des livraisons en général
whatsapp.managePOST /connections, POST /connections/{id}/pairing-code, POST /connections/{id}/restart, POST /connections/{id}/logout, DELETE /connections/{id}

Marquer comme lu est un envoi, pas une lecture

POST /messages/read exige whatsapp.send. Cela ressemble à une opération de lecture, mais cela transmet un accusé de lecture de votre numéro vers l'appareil du client : c'est un flux sortant. L'avantage : tout client qui peut déjà envoyer peut aussi marquer comme lu, sans nouveau scope et sans nouveau consentement.

La résolution se fait en direct

Les scopes et la liste des connexions accessibles sont résolus à chaque requête. Rien n'est mis en cache dans le jeton et rien n'a besoin d'être actualisé. Deux conséquences :

  • Révoquer une clé, ou restreindre ses scopes, prend effet dès l'appel suivant.
  • Une connexion que vous venez de créer est visible dès l'appel suivant. Il n'y a aucun délai de propagation et rien à réémettre.

Scope insuffisant

Un identifiant qui n'a pas le scope exigé par un endpoint reçoit 403 insufficient_scope. Appuyez-vous sur le code, pas sur le statut : 403 est aussi ce que renvoie le refus d'une liste d'adresses IP autorisées (ip_not_allowed), et les deux cas demandent des corrections opposées : l'un exige de modifier les scopes de la clé, l'autre d'ajouter une adresse. Voir Erreurs et idempotence.

Demandez le minimum

Le scope que vous n'accordez pas est celui dont on ne peut pas abuser si la clé fuite. Une tâche de reporting en lecture seule n'a besoin que de whatsapp.read ; un service d'envoi de notifications a besoin de whatsapp.send ; seul un flux de provisionnement a besoin de whatsapp.manage, qui peut supprimer des connexions.

Cette page vous a-t-elle été utile ?

On this page