Wissensdatenbank
Verkaufen Sie Zinn® Hosting über WHMCS
Installieren Sie das kostenlose Provisionierungsmodul von Zinn Digital in WHMCS: den API-Schlüssel und die sieben Berechtigungen, die es benötigt, wohin das Modulverzeichnis verschoben werden muss und warum sein Name wichtig ist, die Produktfelder sowie die genaue Funktion der einzelnen WHMCS-Schaltflächen.
Das Zinn Digital®-Modul wandelt die eigenen Schaltflächen von WHMCS in echte Aktionen auf unserer Plattform um. Eine Bestellung richtet das Hosting Ihres Kunden ein. Die Automatisierung überfälliger Rechnungen von WHMCS sperrt es. Das Markieren der Rechnung als bezahlt hebt die Sperrung auf. Das Stornieren plant die Löschung. Und Ihr Kunde erhält eine Schaltfläche Im Hosting-Panel anmelden in seinem Kundenbereich, mit der er sich direkt anmeldet.
Es ist kostenlos, unter der GPL-2.0-or-later lizenziert und hat keinen privilegierten Pfad in unsere Plattform: Jeder von ihm ausgeführte Aufruf ist ein dokumentierter Endpunkt, den Sie auch selbst mit Ihrem eigenen API-Schlüssel ausführen könnten.
Bevor Sie beginnen
Sie benötigen zwei Dinge, und das zweite bringt viele Anwender ins Stolpern.
- Ein Zinn®-Reseller-Konto mit einem aktiven Programm. Registrieren Sie sich auf
- Einen Reseller-Tarif mit Site-Kontingent. Von Ihren Kunden bestellte Sites werden auf Ihrem
zinndigital.com und aktivieren Sie den Reseller-Modus.
Tarif angerechnet, Sie benötigen also einen Tarif mit entsprechendem Kapazitätsspielraum.
⚠️ Test Connection kann nicht vorhersagen, ob eine Bestellung erfolgreich sein wird. Der Test liest Ihr Programm aus und richtet nichts ein, weshalb er ein fehlerfreies,
activeKonto meldet, das noch nichts verkaufen kann. Wenn Ihre erste Bestellung mit der Meldung "This organization has no hosting plan, so it cannot host a site yet" fehlschlägt, ist genau dies passiert – erwerben oder erweitern Sie Ihren Reseller-Tarif und führen Sie die Bestellung erneut aus. Am Modul liegt kein Fehler vor.
1. Den API-Schlüssel erstellen
Öffnen Sie in Ihrem Zinn®-Dashboard den Bereich API keys und erstellen Sie einen Schlüssel mit exakt diesen elf Berechtigungen:
| Berechtigung | Wofür sie benötigt wird | | -------------------- | ----------------------------------------------------------- | | org.create | Eröffnung des Zinn®-Kontos Ihres Kunden bei dessen erster Bestellung. | | org.read | Lesen Ihrer Kundenkonten. | | sites.create | Bereitstellung der Site. | | sites.view | Lesen eines Dienstes und seiner Nutzung. | | sites.delete | Kündigung. | | reseller.view | Auflistung Ihrer Verkäufe sowie Ablesen von Speicherplatz und Bandbreite. | | reseller.provision | Sperren, Freigeben, Anmelden eines Kunden, Festlegen seines Tarifs und Ändern seines Pakets. | | billing.view | Ermittlung der Kosten eines Upgrades vor dessen Durchführung. | | sites.manage | Cache leeren und Erstellen eines Backups über die Schaltflächen. | | sites.panel_access | Ändern des Passworts des WordPress-Administrators. | | hosting.php.manage | Wechsel der PHP-Version bei einem Upgrade oder Downgrade. |
⛔ Erteilen Sie nicht die Berechtigung
reseller.manage. Ein in ein Abrechnungspanel eingefügter Schlüssel soll einen Kunden wegen ausbleibender Zahlung sperren und ihn anmelden können. Er sollte jedoch nicht die Zugangsdaten Ihres eigenen Zahlungsgateways lesen und überschreiben können.reseller.provisionexistiert, damit Sie die umfangreichere Berechtigung nicht vergeben müssen. ⛔org.createist zwingend erforderlich. Ohne diese Berechtigung kann das Modul Ihre Konten zwar lesen, aber keines eröffnen; folglich ist der Verbindungstest erfolgreich, aber die erste Bestellung liefert den Fehler403. ⛔⛔ Erteilen Sie die Berechtigungen für die gesamte Tabelle und beachten Sie, dass Test Connection nicht erkennen kann, ob Ihnen welche fehlen. Der Test liest Ihr Reseller-Programm aus und richtet nichts ein, daher wird ein Schlüssel, dem eine dieser Berechtigungen fehlt, als grün angezeigt. Stattdessen erhalten Sie Monate später von einem Kunden den Fehler403bei genau dem Vorgang, den die fehlende Berechtigung abdeckt.
2. Das Modul installieren
- Laden Sie das Modul herunter und entpacken Sie es.
- Laden Sie das Verzeichnis
zinnin Ihre WHMCS-Installation hoch, sodass sich die Moduldatei unter
modules/servers/zinn/zinn.php befindet.
⛔ Das Verzeichnis muss den Namen
zinntragen. WHMCS leitet die Funktionsnamen eines Bereitstellungsmoduls von seinem Verzeichnisnamen ab. Wenn Sie es daher inzinn-whmcsoderzinndigitalumbenennen, entsteht ein Modul, das WHMCS zwar auflistet und zur Auswahl anbietet, das aber niemals aufgerufen wird – und das völlig ohne Fehlermeldung. Die ZIP-Datei wird bereits mit dem korrekten Namen entpackt; benennen Sie diesen einfach nicht um.
3. Den Server hinzufügen
Gehen Sie in WHMCS zu: Configuration → System Settings → Servers → Add New Server.
- Name: beliebig, z. B.
Zinn Digital® - Hostname:
api.zinndigital.com - Type:
Zinn Digital® - Password: Ihr API-Schlüssel aus Schritt 1
⛔ Der Schlüssel wird in das Feld Password eingetragen, welches von WHMCS verschlüsselt gespeichert wird. Tragen Sie ihn nicht in eine Produktkonfigurationsoption ein – diese sind in der Datenbank als Klartext gespeichert und für jeden Administrator sichtbar, und diese Zugangsdaten können das Hosting Ihrer Kunden erstellen und löschen.
Klicken Sie auf Test Connection. Dies führt einen echten Aufruf aus und gibt die Rückmeldung unserer Plattform aus, anstatt lediglich zu prüfen, ob die Felder ausgefüllt sind.
4. Das Produkt erstellen
Gehen Sie zu Configuration → System Settings → Products/Services und setzen Sie Module Settings auf den soeben hinzugefügten Server. Die Felder lauten wie folgt:
| Feld | Erforderlich | Beschreibung | | ---------------- | ------------ | -------------------------------------------------------------------------- | | Product line | ja | Die von Ihnen verkaufte Zinn®-Linie – mainstream (verwaltetes WordPress), footprint_free, wordpress, linux, cloud, agency, app_hosting, ai_hosting, lms_hosting, managed_database, vector_hosting, zinn_compute, fleet_linux, fleet_enterprise, mail oder reseller. | | Stack | ja | Der Erstellungs-Stack: wordpress (Standard), woocommerce, php, static, node, one_click, headless_cms, nextcloud oder owncloud. | | Application | nein | Nur für die Stacks one_click und headless_cms – bestimmt, welche Anwendung installiert werden soll. Die Angabe für einen anderen Stack wird abgelehnt, da dieser Stack bereits festlegt, was installiert wird. | | PHP version | nein | z. B. 8.3. Leer lassen für den Standard der Linie. Eine von der Linie nicht unterstützte Version wird unter Angabe der verfügbaren Versionen abgelehnt. | | Plan code | ja | Der Zinn®-Tarif, den dieses Produkt verkauft. Unter GET /v1/reseller/prices finden Sie Ihre Tarife. Eine Bestellung ohne diesen Code wird abgelehnt – siehe Warnung unten. | | Billing interval | nein | monthly (Standard) oder annual – das Abrechnungsintervall, zu dem Ihre Großhandelslinie für diesen Kunden berechnet wird. Was Sie Ihrem eigenen Kunden in Rechnung stellen, wird im WHMCS-Produkt festgelegt und bleibt davon unberührt. |
⛔⛔ Ein Tarifcode (Plan code) ist erforderlich, und eine Bestellung ohne einen solchen wird absichtlich abgelehnt. Bis zum 01.09.2026 war dieses Feld rein dekorativer Natur und wurde von nichts ausgelesen, sodass das Modul ein Hosting bestellte, dem überhaupt kein Tarif zugewiesen war – und jede Konsequenz daraus blieb unbemerkt. Ihre Großhandelsabrechnung wird anhand der aktiven Abonnements Ihrer Kunden erstellt, sodass für den Dienst kein Eintrag existierte und Ihnen für die gesamte Laufzeit nichts in Rechnung gestellt wurde; Ihr Kunde erbte keine Kontingente, sodass weder Speicher- noch Dateiquotas auf seine Site angewendet wurden; und Change Package hatte nichts zu ändern, weshalb ein von Ihnen verkauftes Upgrade nicht durchgeführt werden konnte. Die Site wurde bereitgestellt und funktionierte währenddessen einwandfrei.
Das Modul lehnt die Bestellung nun stattdessen ab, da es keinen sicheren Tarif gibt, den es raten könnte: Eine Annahme würde ein Hosting auf einem Tarif bereitstellen, den Sie weder ausgewählt noch kalkuliert haben, und – im Gegensatz zu einer Ablehnung, die Sie sofort bemerken – würde dies erst beim Eintreffen einer Rechnung, wenn überhaupt, auffallen.
Stellen Sie Auto Setup nach Ihren Wünschen ein – das Modul verhält sich bezüglich der WHMCS-Dienst-ID idempotent, sodass eine wiederholte Bereitstellung dieselbe Site zurückgibt, anstatt Ihnen eine zweite in Rechnung zu stellen.
Funktion der einzelnen WHMCS-Aktionen
| WHMCS-Aktion | Was auf unserer Seite geschieht | | --------------------------- | ---------------------------------------------------------------------------------------- | | Create | Erstellt das Zinn®-Konto des Kunden (oder verwendet ein bereits vorhandenes) und stellt dessen Site bereit. | | Suspend | Versetzt die Site aufgrund ausbleibender Zahlung in den Status „angehalten“. Inhalte bleiben erhalten; es wird nichts gelöscht. | | Unsuspend | Hebt Ihre Sperrung auf. | | Terminate | Plant die Löschung der Site unter Berücksichtigung einer Übergangsfrist. Das Datum wird im Kundenbereich angezeigt. | | Usage update | Aktualisiert einmal täglich den Speicherplatz und die Bandbreite für jeden Dienst. | | Log in to hosting panel | Öffnet einen einmalig verwendbaren Anmeldelink direkt zum Panel Ihres Kunden. | | Change Package | Führt ein Upgrade oder Downgrade des Dienstes durch. Verschiebt das Paket sowie die PHP-Version, falls das neue Produkt eine angibt. | | Change Password | Legt das Passwort des WordPress-Administrators fest. Das Eingabefeld wird bei Stacks ohne ein solches Konto ausgeblendet. | | Renew | Bestätigt, dass der Dienst weiterhin existiert. Zinn®-Hosting läuft fortlaufend, daher gibt es keine zu verlängernde, entfernte Laufzeit. | | Sync Usage / Purge Cache / Take Backup | Schaltflächen auf der Admin-Dienstseite. Ihr Kunde findet „Cache leeren“ (Purge Cache) und „Backup erstellen“ (Take Backup) in seinem Kundenbereich. | | Service tab | Status, Tarif, Speicherplatz, Bandbreite, anstehende Löschungen sowie die Angabe, wer eine Sperrung veranlasst hat. | | Import | ListAccounts liest jede Seite aus, sodass ein Import nicht stillschweigend bei der ersten Seite abbrechen kann. |
Upgrades: Wer wem etwas in Rechnung stellt
Ihr Kunde erhält von Zinn® niemals eine Rechnung, weder bei einer Bestellung noch bei einem Upgrade. Sie stellen dem Kunden den Betrag über WHMCS in Rechnung; wir stellen Ihnen den Betrag über Ihre Großhandelsabrechnung in Rechnung. Ein Change Package verschiebt folglich die Berechtigungen Ihres Kunden sowie den Positionsposten auf Ihrer nächsten Abrechnung, ohne dabei Kreditkartendaten zu berühren – WHMCS hat das Geld Ihres Kunden bereits eingezogen und eine anteilige Berechnung (Proration) durchgeführt.
Ein zweiter Dienst für einen Kunden. Im Rahmen desselben Tarifs handelt es sich um eine weitere Site innerhalb des Tarif-eigenen Site-Kontingents, und es werden keine weiteren Ressourcen gewährt. Bei einem anderen Tarif wird der Vorgang abgelehnt: Das Ersetzen des aktiven Tarifs würde dazu führen, dass einer der beiden Dienste unbezahlt bleibt. Entweder verkaufen Sie beide Dienste im selben Tarif oder Sie legen den Kunden als eigenständigen Kundeneintrag in WHMCS an.
Change Password ist ausschließlich für WordPress vorhanden. Das Zinn®-Hosting kennt kein einzelnes „Dienst-Passwort“ – Ihr Kunde greift über die Anmeldeschaltfläche auf sein Panel zu – und eine php- oder static-Site verfügt über kein Anwendungskonto, dessen Passwort geändert werden könnte. WHMCS blendet das Feld in diesem Fall komplett aus, anstatt eines anzuzeigen, das nicht funktionieren kann.
Drei Antworten, die nicht vereinfacht werden dürfen
- Unsuspend kann mit einer Ablehnung antworten. Dies bedeutet, dass die Site von unserem Abuse-Team und nicht
- Terminate plant eine Löschung, sie wird jedoch nicht sofort ausgeführt. Das Datum wird als
- Speicherplatz und Bandbreite können unbekannt sein, wobei „unbekannt“ nicht gleich Null ist. Wenn wir keinen
von Ihnen gesperrt wurde und kein Abrechnungspanel diese Sperrung aufheben darf. Die Fehlermeldung weist explizit darauf hin; zeigen Sie diese Ihrem Administrator, anstatt den Vorgang zu wiederholen.
pending_deletion_at zurückgegeben und im Kundenbereich angezeigt. Einem Kunden mitzuteilen, dass seine Daten bereits gelöscht wurden, obwohl dies nicht der Fall ist, ist schlimmer, als ihm gar nichts zu sagen.
Messwert erfassen konnten, belässt das Modul den Wert unverändert, anstatt 0 zu schreiben – andernfalls würde WHMCS Ihrem Kunden einen beruhigend leeren Auslastungsbalken für eine Site anzeigen, für die uns keine Messwerte vorliegen.
Fehlerbehebung
Test Connection ist erfolgreich, aber die erste Bestellung schlägt mit einem Berechtigungsfehler fehl. Dem API-Schlüssel fehlt die Berechtigung org.create. Das Modul muss das Konto des Kunden eröffnen, bevor es dessen Site erstellen kann.
Eine Bestellung schlägt mit dem Hinweis fehl, dass die Organisation keinen Hosting-Tarif besitzt. Ihr Reseller-Tarif hat kein verbleibendes Site-Kontingent mehr, oder Sie besitzen noch keinen Tarif. Siehe den Abschnitt Bevor Sie beginnen weiter oben.
Eine Bestellung schlägt fehl und verweist auf einen Stack. Das Feld Stack für das Produkt ist entweder leer oder benennt etwas, das wir nicht bereitstellen. Stellen Sie es auf wordpress, es sei denn, Sie verkaufen ein anderes Produkt.
Stornierungen schlagen fehl. Stellen Sie sicher, dass Sie Modulversion 1.0.0 oder neuer verwenden. Ältere Versionen haben keine Löschungsbestätigung gesendet, wodurch jede Kündigung abgelehnt wurde und der Dienst weiterlief und berechnet wurde.
Eine Ablehnung, die ein Feld benennt.
Unsere Validierungsfehler nennen das Feld sowie den Grund in Klammern nach der Nachricht, z. B. (php_version: 7.2 is not offered on this product line). Das ist der relevante Teil – der Satz davor ist bewusst allgemein gehalten.
Überprüfen Sie Ihren Download
Jedes Archiv wird über TLS von unserem eigenen Hostname ausgeliefert und niemals zu einem Drittanbieter-Host umgeleitet. Seine SHA-256-Prüfsumme ist neben dem Download-Link auf der Download-Seite angegeben. Vergleichen Sie diese nach dem Download:
- macOS oder Linux:
shasum -a 256 zinn-whmcs-1.0.0.zip - Windows:
certutil -hashfile zinn-whmcs-1.0.0.zip SHA256
Sie nutzen kein WHMCS?
Es gibt ein HostBill-Modul sowie einen einseitigen PHP-Client für alle anderen Zwecke – beide sind kostenlos und auf derselben Download-Seite verfügbar. Jeder Endpunkt, den die Module verwenden, ist in der API-Referenz dokumentiert.
Immer noch nicht weiter?
Der Support ist in jedem Tarif enthalten und antwortet in Ihrer eigenen Sprache.
Support kontaktieren → Alle Artikel →