0seat
Guide

Créer un rôle API WHMCS en lecture seule

0seat appelle l’API officielle de WHMCS avec dix actions, toutes en lecture. Ce guide crée le rôle qui n’autorise que ces dix actions, les identifiants dédiés, puis règle et teste la connexion depuis la console. Aucun module à installer.

Les dix actions, et rien d’autre

La liste est fermée dans le code de 0seat : une action absente de cette liste n’est jamais appelée, quel que soit ce que le rôle autorise. Le rôle que vous créez doit donc contenir exactement ces actions.

  1. GetClients et GetClientsDetails : retrouver le client par son adresse e-mail.
  2. GetClientsProducts et GetClientsDomains : ses services et ses domaines, avec état et dates.
  3. GetInvoices et GetInvoice : ses factures, avec échéance, montant, devise et état.
  4. GetOrders : ses commandes et leur état de paiement.
  5. GetTickets : l’objet et l’état de ses tickets, jamais leur corps.
  6. GetProducts et GetTLDPricing : votre catalogue et vos tarifs par extension, relus toutes les douze heures.

Créer le rôle dans WHMCS

Dans l’administration de WHMCS, les identifiants d’API et leurs rôles se gèrent dans les réglages système, section « API Credentials ». Le détail des menus varie selon la version ; les étapes, elles, ne changent pas.

  1. Ouvrez l’onglet des rôles d’API et créez un rôle nommé, par exemple, « 0seat lecture seule ».
  2. Cochez les dix actions ci-dessus, et aucune autre. Décochez en particulier toute action commençant par Add, Update, Delete, Send ou Accept.
  3. Ouvrez l’onglet des identifiants et générez un nouvel identifiant d’API rattaché à un utilisateur administrateur, en lui attribuant ce seul rôle.
  4. Notez l’identifiant et le secret : le secret n’est affiché qu’une fois par WHMCS, et 0seat ne le réaffichera jamais non plus.
  5. Si votre WHMCS restreint l’API par adresse IP, ajoutez l’adresse de 0seat : demandez-la-nous par le formulaire de contact.

Régler la connexion dans la console

Sur la page de l’espace, la section « WHMCS (facultatif) » prend l’adresse de l’API, c’est-à-dire l’adresse de votre WHMCS suivie de « /includes/api.php », l’identifiant et le secret.

  1. Renseignez l’adresse de l’API, l’identifiant et le secret.
  2. Listez les produits dont l’assistant peut citer le tarif, par leurs noms exacts dans WHMCS, séparés par des virgules ; puis les extensions de domaine, et la devise de vos tarifs.
  3. Cliquez sur « Tester et enregistrer ». La console confirme la connexion avec le nombre de produits et d’extensions trouvés, et liste ceux qu’elle a reconnus.
  4. Les identifiants sont chiffrés à l’enregistrement et ne sont plus jamais affichés. Pour les remplacer, saisissez-en de nouveaux ; pour retirer WHMCS, le bouton dédié efface les secrets.

Ce que 0seat fait de ces accès

Au moment de rédiger un brouillon, 0seat retrouve le client par l’adresse e-mail du contact, ne retient aucun compte en cas de doublon, puis lit ses services, domaines, factures et commandes. Les champs mot de passe, adresse postale et téléphone sont retirés dans le code avant tout appel au modèle. Le corps des tickets n’est pas lu.

Les appels portent un agent utilisateur identifiable et sont espacés : un pare-feu applicatif ne verra pas de rafale venant d’un client HTTP générique. Sur commande d’un agent, un récapitulatif de compte construit par le code, sans texte de modèle, peut être envoyé à l’adresse du client.

Questions fréquentes

Pourquoi un rôle et pas les identifiants d’un administrateur ?

Parce que la liste d’actions fermée côté 0seat ne vous protège que si vous nous croyez sur parole. Le rôle vous donne la même garantie de votre côté, vérifiable dans WHMCS, et révocable en un clic.

Le test échoue : par où regarder ?

L’adresse doit finir par « /includes/api.php » ; l’identifiant d’API doit être rattaché à un administrateur ; le rôle doit contenir GetProducts et GetTLDPricing, que le test appelle ; et une restriction d’API par adresse IP doit inclure 0seat.

Peut-on ajouter une action plus tard, par exemple pour ouvrir un ticket ?

Pas en élargissant le rôle : 0seat n’appelle que sa liste fermée. Une action d’écriture serait un changement de produit, annoncé comme tel.

Où sont stockés l’identifiant et le secret ?

Chiffrés dans la base de contrôle de 0seat, en écriture seule : la console ne les réaffiche jamais, et ils n’apparaissent dans aucun journal.

Votre équipe garde la main. 0seat prépare le terrain.

Branchez une boîte de réception, validez la base de connaissances proposée, et recevez vos premières réponses préparées.