Base de connaissances

Vendez l'hébergement Zinn® depuis WHMCS

Installez le module de provisionnement gratuit Zinn Digital dans WHMCS : la clé API et les sept autorisations dont il a besoin, l'emplacement du répertoire du module et pourquoi son nom est important, les champs du produit, et ce que fait réellement chaque bouton WHMCS.

Le module Zinn Digital® transforme les boutons natifs de WHMCS en véritables actions sur notre plateforme. Une commande configure l'hébergement de votre client. L'automatisation des factures impayées de WHMCS le suspend. Le marquage de la facture comme payée le rétablit. L'annulation planifie la suppression. Et votre client dispose d'un bouton Se connecter au panneau d'hébergement dans son espace client qui le connecte directement.

Il est gratuit, sous licence GPL-2.0-or-later, et ne dispose d'aucun accès privilégié à notre plateforme : chaque appel qu'il effectue est un point de terminaison documenté que vous pourriez réaliser vous-même avec votre propre clé API.

Avant de commencer

Vous avez besoin de deux choses, et la seconde piège souvent les utilisateurs.

  1. Un compte revendeur Zinn® avec un programme actif. Inscrivez-vous sur
  2. zinndigital.com et activez la revente.

  3. Un plan revendeur avec un quota de sites. Les sites commandés par vos clients sont décomptés de votre
  4. plan, vous devez donc en posséder un disposant de la capacité nécessaire.

⚠️ L'outil Tester la connexion ne peut pas prédire si une commande réussira. Il lit votre programme et n'effectue aucune configuration, il signale donc un compte active sain mais qui ne peut pas encore vendre quoi que ce soit. Si votre première commande échoue avec le message "This organization has no hosting plan, so it cannot host a site yet", c'est ce qui s'est produit — achetez ou prolongez votre plan revendeur et passez à nouveau la commande. Le module ne présente aucun dysfonctionnement.

1. Créer la clé API

Dans votre tableau de bord Zinn®, ouvrez Clés API et créez-en une dotée exactement de ces onze permissions :

| Permission | Pourquoi elle est nécessaire | | -------------------- | ----------------------------------------------------------- | | org.create | Ouvrir le compte Zinn® de votre client lors de sa première commande. | | org.read | Lire les comptes de vos clients. | | sites.create | Configurer le site. | | sites.view | Lire un service et son utilisation. | | sites.delete | Résilier. | | reseller.view | Lister vos ventes et lire l'espace disque et la bande passante. | | reseller.provision | Suspendre, rétablir, connecter un client, définir son plan et modifier son package. | | billing.view | Connaître le coût d'une mise à niveau avant de l'effectuer. | | sites.manage | Purger le cache et effectuer une sauvegarde à l'aide des boutons. | | sites.panel_access | Modifier le mot de passe de l'administrateur WordPress. | | hosting.php.manage | Changer la version de PHP lors d'une mise à niveau ou d'une rétrogradation. |

N'accordez pas la permission reseller.manage. Une clé collée dans un panneau de facturation doit pouvoir suspendre un client pour défaut de paiement et le connecter. Elle ne doit pas pouvoir lire et réécrire vos propres identifiants de passerelle de paiement. La permission reseller.provision existe précisément pour vous éviter d'accorder la plus large. ⛔ La permission org.create n'est pas optionnelle. Sans elle, le module peut lire vos comptes mais ne peut pas en ouvrir un, de sorte que le test de connexion réussit mais que la première commande renvoie 403. ⛔⛔ Accordez l'intégralité du tableau et notez que l'outil Tester la connexion ne peut pas détecter si vous l'avez omis. Il lit votre programme de revendeur et n'effectue aucune configuration, il renvoie donc un statut positif pour une clé à laquelle il manque l'une de ces permissions. Vous obtiendrez à la place une erreur 403 sur l'opération unique couverte par la permission manquante, des mois plus tard, de la part d'un client.

2. Installer le module

  1. Téléchargez le module et décompressez-le.
  2. Téléchargez le répertoire zinn dans votre installation WHMCS de sorte que le fichier du module se trouve à l'emplacement
  3. modules/servers/zinn/zinn.php.

Le répertoire doit s'appeler zinn. WHMCS déduit les noms de fonctions d'un module de configuration de son nom de répertoire ; le renommer en zinn-whmcs ou zinndigital produit un module que WHMCS liste, vous laisse sélectionner, mais n'exécute jamais — sans émaner aucune erreur. Le fichier zip s'extrait déjà sous le bon nom ; veillez simplement à ne pas le renommer.

3. Ajouter le serveur

Dans WHMCS : Configuration → Paramètres système → Serveurs → Ajouter un nouveau serveur.

  • Nom : n'importe lequel, par ex. Zinn Digital®
  • Nom d'hôte : api.zinndigital.com
  • Type : Zinn Digital®
  • Mot de passe : votre clé API obtenue à l'étape 1

⛔ La clé doit être saisie dans le champ Mot de passe, que WHMCS stocke de manière chiffrée. Ne la placez pas dans une option de configuration de produit — celles-ci sont en texte clair dans la base de données et visibles par tous les administrateurs, alors que cet identifiant permet de créer et de supprimer l'hébergement de vos clients.

Cliquez sur Tester la connexion. Le système effectue un appel réel et rapporte la réponse de notre plateforme, plutôt que de se limiter à vérifier que les champs sont remplis.

4. Créer le produit

Configuration → Paramètres système → Produits/Services, puis définissez Paramètres du module sur le serveur que vous venez d'ajouter. Les champs sont les suivants :

| Champ | Requis | Description | | ---------------- | -------- | -------------------------------------------------------------------------- | | Ligne de produits | oui | La ligne Zinn® que vous vendez — mainstream (WordPress géré), footprint_free, wordpress, linux, cloud, agency, app_hosting, ai_hosting, lms_hosting, managed_database, vector_hosting, zinn_compute, fleet_linux, fleet_enterprise, mail ou reseller. | | Pile (Stack) | oui | Ce qui est généré : wordpress (par défaut), woocommerce, php, static, node, one_click, headless_cms, nextcloud ou owncloud. | | Application | non | Uniquement pour les piles one_click et headless_cms — quelle application installer. En nommer une sur toute autre pile est refusé, car cette pile détermine déjà ce qui est installé. | | Version PHP | non | par ex. 8.3. Laissez vide pour utiliser la version par défaut de la ligne. Une version non proposée par la ligne est refusée avec la liste de celles qui le sont. | | Code du plan | oui | Le plan Zinn® vendu par ce produit. GET /v1/reseller/prices liste les vôtres. Une commande sans ce code est refusée — voir l'avertissement ci-dessous. | | Intervalle de facturation | non | monthly (par défaut) ou annual — l'intervalle selon lequel votre ligne de gros pour ce client est facturée. Le montant facturé à votre propre client est défini dans le produit WHMCS et n'est pas affecté. |

⛔⛔ Le code du plan est obligatoire et toute commande dépourvue de celui-ci est refusée intentionnellement. Jusqu'au 01-09-2026, ce champ était décoratif et ignoré, de sorte que le module commandait un hébergement qui ne comportait aucun plan — et chaque conséquence de cela passait inaperçue. Votre relevé de gros étant établi à partir des abonnements actifs de vos clients, aucune ligne n'existait pour ce service et rien ne vous a été facturé pendant toute sa durée d'exécution ; votre client n'a hérité d'aucun quota, de sorte qu'aucune limite de disque ou de fichiers n'a été appliquée à son site ; et Modifier le package n'avait aucun effet, de sorte qu'une mise à niveau vendue ne pouvait être exécutée. Le site a été configuré et a fonctionné parfaitement tout au long de cette période.

Le module refuse désormais la commande à la place, car il n'existe aucun plan sûr qu'il puisse deviner : une supposition configurerait un hébergement sur un plan que vous n'avez pas choisi et dont vous n'avez peut-être pas fixé le prix, et — contrairement à un refus, que vous consultez immédiatement — cela ne se manifesterait qu'à l'arrivée d'un relevé, et encore.

Définissez Configuration automatique selon votre préférence — le module est idempotent par rapport à l'identifiant du service WHMCS, de sorte qu'une configuration relancée renvoie le même site au lieu de vous facturer un second exemplaire.

Ce que fait chaque action WHMCS

| Action WHMCS | Ce qui se déroule de notre côté | | --------------------------- | ---------------------------------------------------------------------------------------- | | Créer | Crée le compte Zinn® du client (ou réutilise celui qu'il possède déjà) et configure son site. | | Suspendre | Place le site en retenue pour défaut de paiement. Le contenu est conservé ; rien n'est supprimé. | | Rétablir | Lève votre retenue. | | Résilier | Planifie la suppression du site avec une période de grâce. La date s'affiche dans l'espace client. | | Mise à jour de l'utilisation | Actualise l'espace disque et la bande passante de chaque service, une fois par jour. | | Se connecter au panneau d'hébergement | Ouvre un lien de connexion à usage unique menant directement au panneau de votre client. | | Modifier le package | Met à niveau ou rétrograde le service. Déplace le package ainsi que la version PHP si le nouveau produit en spécifie une. | | Modifier le mot de passe | Définit le mot de passe de l'administrateur WordPress. La case n'apparaît pas sur les piles qui ne disposent pas d'un tel compte. | | Renouveler | Confirme que le service existe toujours. L'hébergement Zinn® étant continu, il n'y a pas de terme distant à étendre. | | Synchroniser l'utilisation / Purger le cache / Effectuer une sauvegarde | Boutons de la page de service administrateur. Votre client dispose de Purger le cache et Effectuer une sauvegarde dans son espace client. | | Onglet Service | Statut, plan, disque, bande passante, suppression planifiée éventuelle et identité de l'auteur de la suspension. | | Importer | ListAccounts lit chaque page, garantissant qu'une importation ne peut pas s'arrêter silencieusement à la première. |

Mises à niveau : qui facture qui

Votre client n'est jamais facturé par Zinn®, ni lors d'une commande ni lors d'une mise à niveau. Vous lui facturez les prestations via WHMCS ; nous vous facturons, sur votre relevé de gros. Ainsi, une modification de package déplace les droits de votre client et la ligne correspondante sur votre prochain relevé, sans affecter aucune carte bancaire — WHMCS a déjà encaissé le règlement de votre client et calculé son prorata.

Second service d'un client. Sur le même plan, il s'agit d'un autre site couvert par le quota de ce plan, et aucun avantage supplémentaire n'est accordé. Sur un plan différent, l'opération est refusée : remplacer le plan actif laisserait l'un des deux services non facturé. Vendez soit les deux sur le même plan, soit configurez le client en tant qu'enregistrement distinct dans WHMCS.

Modifier le mot de passe s'applique uniquement à WordPress. L'hébergement Zinn® ne comporte pas de « mot de passe de service » unique — votre client accède à son panneau via le bouton de connexion — et un site php ou static ne possède pas de compte d'application à modifier. WHMCS masque entièrement la case plutôt que d'en afficher une inopérante.

Trois réponses qu'il ne faut pas uniformiser en deux

  • Le rétablissement peut renvoyer un refus. Cela signifie que le site a été suspendu par notre équipe
  • chargée des abus, et non par vous, et qu'aucun panneau de facturation ne peut le lever. Le message l'indique explicitement ; montrez-le à votre administrateur au lieu de recommencer.

  • La résiliation planifie une suppression, elle ne l'exécute pas immédiatement. La date renvoyée est
  • pending_deletion_at et l'espace client l'affiche. Dire à un client que ses données ont déjà disparu alors que ce n'est pas le cas est pire que de ne rien lui dire.

  • L'espace disque et la bande passante peuvent être inconnus, et un état inconnu n'est pas égal à zéro. En l'impossibilité d'effectuer
  • un relevé, le module conserve la valeur existante au lieu d'écrire 0 — autrement, WHMCS afficherait à votre client une barre d'utilisation vide et rassurante pour un site dont nous ne disposons d'aucune mesure.

Dépannage

Le test de connexion réussit mais la première commande échoue avec une erreur de permission. Il manque la permission org.create à la clé API. Le module doit ouvrir le compte du client avant de pouvoir créer son site.

Une commande échoue en indiquant que l'organisation ne dispose d'aucun plan d'hébergement. Votre plan revendeur n'a plus de quota de sites disponible, ou vous n'en possédez pas encore. Reportez-vous à la section Avant de commencer ci-dessus.

Une commande échoue en mentionnant une pile (Stack). Le champ Stack du produit est vide ou désigne une option que nous ne prenons pas en charge. Définissez-le sur wordpress à moins que vous ne vendiez autre chose.

Les annulations échouent. Assurez-vous d'utiliser la version 1.0.0 du module ou une version ultérieure. Les versions antérieures n'envoyaient aucune confirmation de suppression et chaque résiliation était refusée, laissant le service actif et facturé.

Un refus qui mentionne un champ. Nos erreurs de validation nomment le champ et le motif entre parenthèses après le message, par ex. (php_version: 7.2 is not offered on this product line). C'est la partie exploitable — la phrase qui précède est délibérément générique.

Vérifier votre téléchargement

Chaque archive est transmise via TLS depuis notre propre nom d'hôte et n'est jamais redirigée vers un tiers. Son empreinte SHA-256 est indiquée à côté du lien de téléchargement sur la page des téléchargements. Comparez-la après le téléchargement :

  • macOS ou Linux : shasum -a 256 zinn-whmcs-1.0.0.zip
  • Windows : certutil -hashfile zinn-whmcs-1.0.0.zip SHA256

Vous n'utilisez pas WHMCS ?

Un module HostBill et un client PHP monopage sont disponibles pour toute autre configuration, tous deux gratuits et hébergés sur la même page des téléchargements. Chaque point de terminaison utilisé par les modules est répertorié dans la documentation de l'API.

Toujours bloqué ?

Le support est inclus dans chaque forfait et les réponses sont rédigées dans votre propre langue.

Contacter le support Tous les articles