Voir en Markdown

Authentification

Chaque requête porte la clé dans l'en-tête x-api-key. La forme Authorization: Bearer fitsa_live_... est également acceptée, pour les plateformes qui ne savent poser qu'un jeton porteur.

-H "x-api-key: fitsa_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Aucun identifiant de boutique à transmettre

La boutique, son numéro WhatsApp et ses autorisations sont tous déduits de la clé.

Une requête qui contient storeId, store_id, userId ou tout champ équivalent est refusée, pas silencieusement ignorée : 400, code unsupported_field.

C'est un choix de conception, pas une restriction arbitraire :

  • une chose à gérer côté client au lieu de deux, une seule à mettre en secret ;
  • un identifiant accepté en paramètre serait une invitation à en essayer un autre ;
  • une clé compromise n'expose qu'une boutique, il n'y a aucun second paramètre à faire varier.

Portées

Chaque clé porte des portées, au format domaine:ressource:verbe :

PortéeAutorise
whatsapp:messages:writeEnvoyer des messages
whatsapp:messages:readLire les accusés de réception
whatsapp:templates:readLister les modèles
whatsapp:templates:writeCréer et supprimer des modèles

Un appel hors portée répond 403 avec le code insufficient_scope et la portée manquante dans param.

Rotation

Le bouton Remplacer du tableau de bord crée une clé neuve avec les mêmes réglages et révoque l'ancienne immédiatement. Un délai de grâce laisserait deux clés valides sans qu'on sache laquelle est compromise.