Kennisbank

Verkoop Zinn®-hosting vanuit WHMCS

Installeer de gratis Zinn Digital-provisioningmodule in WHMCS: de API-sleutel en de zeven machtigingen die deze nodig heeft, waar de moduledirectory moet worden geplaatst en waarom de naam ervan belangrijk is, de productvelden en wat elke WHMCS-knop daadwerkelijk doet.

De Zinn Digital® module zet de eigen knoppen van WHMCS om in echte acties op ons platform. Een bestelling richt de hosting van uw klant in. De automatisering voor achterstallige facturen van WHMCS schorst deze. Het als betaald markeren van de factuur heft de schorsing op. Annuleren plant de verwijdering. En uw klant krijgt een knop Inloggen op het hostingpaneel in diens klantengebied waarmee direct wordt ingelogd.

Deze is gratis, gelicenseerd onder GPL-2.0-or-later, en heeft geen bevoorrechte toegang tot ons platform: elke aanroep die deze doet is een gedocumenteerd eindpunt dat u zelf zou kunnen maken met uw eigen API-sleutel.

Voordat u begint

U heeft twee dingen nodig, en het tweede brengt mensen in de war.

  1. Een Zinn®-reselleraccount met een actieve regeling. Meld u aan op
  2. zinndigital.com en schakel reselling in.

  3. Een resellerabonnement met een site-limiet. Sites die uw klanten bestellen tellen mee voor uw
  4. abonnement, dus u heeft er een nodig met voldoende ruimte.

⚠️ Testverbinding kan niet vertellen of een bestelling zal slagen. Deze leest uw regeling uit en richt niets in, dus rapporteert deze een gezond active account dat nog niets kan verkopen. Als uw eerste bestelling mislukt met "Deze organisatie heeft geen hostingabonnement, dus kan nog geen site hosten", is dit wat er is gebeurd — koop of verleng uw resellerabonnement en plaats de bestelling opnieuw. Er is niets mis met de module.

1. Maak de API-sleutel aan

Open in uw Zinn®-dashboard API keys en maak er een aan met exact deze elf rechten:

| Recht | Waarom dit nodig is | | -------------------- | ----------------------------------------------------------- | | org.create | Open het Zinn®-account van uw klant bij diens eerste bestelling. | | org.read | Lees de accounts van uw klant. | | sites.create | Richt de site in. | | sites.view | Lees een service en het bijbehorende gebruik uit. | | sites.delete | Beëindig de service. | | reseller.view | Geef weer wat u heeft verkocht en lees schijfruimte en bandbreedte uit. | | reseller.provision | Schors, hef schorsing op, log een klant in, stel diens abonnement in en wijzig het pakket. | | billing.view | Lees uit wat een upgrade zou kosten voordat deze wordt uitgevoerd. | | sites.manage | Wis de cache en maak een back-up via de knoppen. | | sites.panel_access | Wijzig het wachtwoord van de WordPress-beheerder. | | hosting.php.manage | Schakel de PHP-versie om bij een upgrade of downgrade. |

Verleen geen reseller.manage. Een sleutel die in een facturatipaneel is geplakt moet in staat zijn om een klant te schorsen vanwege wanbetaling en deze in te loggen. Deze mag niet in staat zijn om de inloggegevens van uw eigen betalingsgateway te lezen en te overschrijven. reseller.provision bestaat zodat u de grotere niet hoeft te verlenen. ⛔ org.create is niet optioneel. Zonder dit recht kan de module uw accounts wel lezen maar er geen openen, dus slaagt Testverbinding en geeft de eerste bestelling 403 als antwoord. ⛔⛔ Verleen de hele tabel, en merk op dat Testverbinding u niet kan vertellen of u dat niet heeft gedaan. Deze leest uw resellerregeling uit en richt niets in, dus is deze groen voor een sleutel die een van deze rechten mist. Wat u in plaats daarvan krijgt, is een 403 op de ene handeling die het ontbrekende recht afdekt, maanden later, van een klant.

2. Installeer de module

  1. Download de module en pak deze uit.
  2. Upload de map zinn naar uw WHMCS-installatie zodat het modulebestand terechtkomt op
  3. modules/servers/zinn/zinn.php.

De map moet zinn heten. WHMCS leidt de functienamen van een provisioningmodule af van de mapnaam, dus het hernoemen naar zinn-whmcs of zinndigital leidt tot een module die WHMCS weergeeft, u laat selecteren, en vervolgens nooit aanroept — zonder enige foutmelding waar dan ook. Het zip-bestand wordt al uitgepakt met de juiste naam; hernoem deze simpelweg niet.

3. Voeg de server toe

In WHMCS: Configuration → System Settings → Servers → Add New Server.

  • Name: willekeurig, bijv. Zinn Digital®
  • Hostname: api.zinndigital.com
  • Type: Zinn Digital®
  • Password: uw API-sleutel uit stap 1

⛔ De sleutel hoort in het veld Password, dat WHMCS versleuteld opslaat. Plaats deze niet in een productconfiguratieoptie — die zijn in platte tekst opgeslagen in de database en zichtbaar voor elke beheerder, en deze inloggegevens kunnen de hosting van uw klanten aanmaken en vernietigen.

Druk op Test Connection. Hiermee wordt een echte aanroep gedaan en gerapporteerd wat ons platform zei, in plaats van te controleren of de velden zijn ingevuld.

4. Maak het product aan

Configuration → System Settings → Products/Services, stel vervolgens Module Settings in op de zojuist toegevoegde server. De velden zijn:

| Veld | Verplicht | Wat het is | | ---------------- | --------- | -------------------------------------------------------------------------- | | Product line | ja | De Zinn®-lijn die u verkoopt — mainstream (beheerde WordPress), footprint_free, wordpress, linux, cloud, agency, app_hosting, ai_hosting, lms_hosting, managed_database, vector_hosting, zinn_compute, fleet_linux, fleet_enterprise, mail of reseller. | | Stack | ja | Wat er wordt opgebouwd: wordpress (standaard), woocommerce, php, static, node, one_click, headless_cms, nextcloud of owncloud. | | Application | nee | Alleen voor de stacks one_click en headless_cms — welke applicatie moet worden geïnstalleerd. Het opgeven van een applicatie bij een andere stack wordt geweigerd, omdat die stack al beslist wat er wordt geïnstalleerd. | | PHP version | nee | bijv. 8.3. Laat leeg voor de standaardwaarde van de lijn. Een versie die de lijn niet aanbiedt wordt geweigerd met een lijst van versies die dat wel doen. | | Plan code | ja | Het Zinn®-abonnement dat dit product verkoopt. GET /v1/reseller/prices toont de uwe. Een bestelling zonder dit veld wordt geweigerd — zie de waarschuwing hieronder. | | Billing interval | nee | monthly (standaard) of annual — het interval waarop uw wholesalelijn voor deze klant wordt gefactureerd. Wat u uw eigen klant in rekening brengt, wordt ingesteld in het WHMCS-product en blijft onaangetast. |

⛔⛔ Plan code is verplicht, en een bestelling zonder code wordt opzettelijk geweigerd. Tot 2026-09-01 was dit veld decoratief en las niemand het uit, waardoor de module hosting bestelde die helemaal geen abonnement had — en elke consequentie daarvan bleef onopgemerkt. Uw wholesaleoverzicht wordt samengesteld op basis van de actieve abonnementen van uw klanten, dus er was geen regel voor de service en er werd u niets in rekening gebracht zolang deze actief was; uw klant erfde geen limieten, dus er werd geen schijf- of bestandskwotum toegepast op diens site; en Change Package had niets om te wijzigen, waardoor een door u verkochte upgrade niet kon worden uitgevoerd. De site werd ingericht en werkte de hele tijd vlekkeloos.

De module weigert de bestelling nu in plaats daarvan, omdat er geen veilig abonnement is om te raden: een gok zou hosting inrichten op een abonnement dat u niet heeft gekozen en mogelijk niet heeft geprijsd, en — in tegenstelling tot een weigering, die u onmiddellijk leest — zou dit pas naar voren komen wanneer er een overzicht arriveerde, als dat al gebeurde.

Stel Auto Setup in naar uw voorkeur — de module is idempotent op het WHMCS-service-id, dus een opnieuw geprobeerde provisioning retourneert dezelfde site in plaats van u kosten in rekening te brengen voor een tweede.

Wat elke WHMCS-actie doet

| WHMCS-actie | Wat er aan onze kant gebeurt | | --------------------------- | ---------------------------------------------------------------------------------------- | | Create | Maakt het Zinn®-account van de klant aan (of hergebruikt het account dat deze al heeft) en richt de site in. | | Suspend | Plaats de site in de wacht vanwege wanbetaling. Inhoud blijft behouden; er wordt niets verwijderd. | | Unsuspend | Heft uw schorsing op. | | Terminate | Plan de verwijdering van de site in, met een aanzientermijn. De datum wordt weergegeven in het klantengebied. | | Usage update | Vernieuwt schijfruimte en bandbreedte voor elke service, eenmaal per dag. | | Log in to hosting panel | Opent een eenmalige inloglink rechtstreeks naar het paneel van uw klant. | | Change Package | Voert een upgrade of downgrade van de service uit. Verplaatst het pakket en de PHP-versie als het nieuwe product er een vermeldt. | | Change Password | Stelt het wachtwoord in van de WordPress-beheerder. Het vak verschijnt niet bij stacks die zo'n account niet hebben. | | Renew | Bevestigt dat de service nog steeds bestaat. Zinn®-hosting is doorlopend, dus er is geen termijn op afstand om te verlengen. | | Sync Usage / Purge Cache / Take Backup | Knoppen op de administratieve servicepagina. Uw klant krijgt Purge Cache en Take Backup in het klantengebied. | | Service tab | Status, abonnement, schijfruimte, bandbreedte, eventuele geplande verwijdering en wie een schorsing heeft ingesteld. | | Import | ListAccounts leest elke pagina uit, zodat een import niet stilletjes kan stoppen bij de eerste pagina. |

Upgrades: wie factureert wie

Uw klant wordt nooit gefactureerd door Zinn®, niet bij een bestelling en niet bij een upgrade. U factureert hen via WHMCS; wij factureren u op uw wholesaleoverzicht. Een Change Package verplaatst dus de rechten van uw klant en de regel op uw volgende overzicht, en raakt geen betaalpas aan — WHMCS heeft het geld van uw klant al geïnd en de eigen pro-rataberekening uitgevoerd.

De tweede service van een klant. Op hetzelfde abonnement is dit een andere site onder de site-limiet van dat abonnement, en wordt er niets extra's toegekend. Op een ander abonnement wordt dit geweigerd: het vervangen van het actieve abonnement zou een van de twee services ongefactureerd laten. Verkoop beide op dezelfde manier onder hetzelfde abonnement, of stel de klant in als afzonderlijk klantrecord in WHMCS.

Change Password bestaat alleen voor WordPress. Zinn®-hosting heeft geen enkel "service-wachtwoord" — uw klant bereikt diens paneel met de inlogknop — en een php- of static-site heeft geen applicatieaccount om te wijzigen. WHMCS verbergt het vak volledig in plaats van er een te tonen dat niet kan werken.

Drie antwoorden die u niet mag samenvoegen tot twee

  • Unsuspend kan reageren met een weigering. Dit betekent dat de site is geschorst door ons
  • misbruikteam, niet door u, en geen enkel facturatipaneel mag dit opheffen. Het bericht vermeldt dit; toon dit aan uw beheerder in plaats van het opnieuw te proberen.

  • Terminate plant een verwijdering in, maar voert deze niet direct uit. De datum komt terug als
  • pending_deletion_at en het klantengebied toont dit. Een klant vertellen dat diens gegevens al verdwenen zijn terwijl dat niet zo is, is erger dan helemaal niets vertellen.

  • Schijfruimte en bandbreedte kunnen onbekend zijn, en onbekend is niet gelijk aan nul. Wanneer we geen
  • meting konden uitvoeren laat de module de waarde met rust in plaats van 0 te schrijven — anders zou WHMCS uw klant een geruststellende lege gebruiksbalk tonen voor een site waarvan wij geen meting hebben.

Probleemoplossing

Testverbinding slaagt en de eerste bestelling mislukt met een foutsituatie rondom rechten. De API-sleutel mist org.create. De module moet het account van de klant openen voordat deze de site kan aanmaken.

Een bestelling mislukt met de melding dat de organisatie geen hostingabonnement heeft. Uw resellerabonnement heeft geen resterende site-limiet meer, of u heeft er nog geen. Zie Voordat u begint hierboven.

Een bestelling mislukt met een vermelding over een stack. Het veld Stack op het product is leeg of benoemt iets dat wij niet bouwen. Stel dit in op wordpress tenzij u iets anders verkoopt.

Annuleringen mislukken. Zorg ervoor dat u moduleversie 1.0.0 of later gebruikt. Eerdere builds verstuurden geen verwijderingsbevestiging en elke beëindiging werd geweigerd, waardoor de service actief bleef en kosten bleef factureren.

Een weigering die een veld vermeldt. Onze validatiefouten vermelden het veld en de reden tussen haakjes achter het bericht, bijv. (php_version: 7.2 is niet aangeboden op deze productlijn). Dat is het bruikbare deel — de zin ervoor is bewust generiek.

Uw download verifiëren

Elk archief wordt via TLS aangeboden vanaf onze eigen hostnaam en wordt nooit doorgestuurd naar een host van een derde partij. De SHA-256-checksum staat afgedrukt naast de downloadlink op de downloadpagina. Vergelijk deze na het downloaden:

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

Geen WHMCS?

Er is een HostBill-module en een PHP-client in één bestand voor al het overige, beide gratis en beide te vinden op dezelfde downloadpagina. Elk eindpunt dat de modules gebruiken bevindt zich in de API-referentie.

Kom je er niet uit?

Ondersteuning is inbegrepen in elk abonnement en antwoorden in je eigen taal.

Contact opnemen met support Alle artikelen