Wissensdatenbank

Verkauf von Zinn® Hosting über Ihre eigenen Systeme

Steuere das Zinn-Hosting von deinem eigenen Abrechnungspanel, deiner WordPress-Site oder deinen Skripten aus: Hol dir einen API-Schlüssel, tätige deinen ersten Aufruf und nutze die sechs Aufrufe, aus denen die gesamte Integration besteht.

Sie verkaufen unser Hosting weiter. Ihre Kunden gehören Ihnen: Ihre Preise, Ihre Rechnungen, Ihr Zahlungsanbieter. Auf diese Weise steuern Sie unsere Plattform von allem aus, was Sie bereits nutzen – einem Billing-Panel, Ihrer eigenen WordPress-Website oder einem Skript.

Was Ihre Kunden tatsächlich sehen

Vor der Mechanik: Ihre Kunden müssen uns niemals sehen. Drei Oberflächen, und Sie wählen, welche Sie nutzen.

| Oberfläche | Wessen Oberfläche es ist | |---|---| | Das Hosting-Panel auf Ihrem eigenen Hostnamen | Legen Sie einen Panel-Hostnamen unter Reselling → Ihre Marke fest und Ihre Kunden melden sich unter panel.yourcompany.com mit Ihrem Logo und Ihren Farben an. Dasselbe Panel, Ihre Adresse. | | Ihre eigene Website | Das WordPress-Plugin fügt Ihrer Website eine Domain-Suche und einen Ein-Klick-Anmelde-Link hinzu und wickelt die Bestellung über Ihren eigenen WooCommerce-Checkout ab. | | Ihr Billing-Panel | WHMCS oder HostBill bleibt das Aushängeschild; das Modul stellt dahinter bereit und die Schaltfläche im Kundenbereich meldet sie direkt in ihrem Hosting an. |

⛔ Egal, wofür Sie sich entscheiden, Sie sind der Vertragspartner (Merchant of Record) für Ihre Kunden: Ihre Preise, Ihre Rechnungen, Ihre USt-IdNr., Ihr Zahlungsanbieter. Wir stellen Ihnen einmal im Monat den Großhandelspreis in Rechnung.

Sobald Sie einen Panel-Hostnamen festgelegt haben, tragen Sie ihn im Feld Panel-Adresse des WordPress-Plugins ein und sonst nirgendwo – die Anmelde-Links, die diese API generiert, folgen ihm automatisch.

Die vier Wege zum Ziel

Es gibt vier Wege zum Ziel, und sie tun unter der Haube alle dasselbe:

| | Für | |---|---| | Das WHMCS-Modul | Einen WHMCS-Shop | | Das HostBill-Modul | Einen HostBill-Shop | | Das WordPress-Plugin | Den Verkauf über Ihre eigene WordPress- oder WooCommerce-Website | | Die API | Alles andere – Blesta, ein internes System, ein Cron-Skript |

1. Holen Sie sich einen API-Schlüssel

Gehen Sie in Ihrem Dashboard zu API-Schlüssel und erstellen Sie einen. Geben Sie ihm nur das, was er benötigt:

| Berechtigung | Warum | |---|---| | org.read | Lesen Ihrer Kundenkonten | | sites.create | Bereitstellen einer Website | | sites.view | Lesen eines Dienstes | | sites.delete | Kündigen | | reseller.view | Auflisten Ihrer Dienste und Lesen der Nutzung | | reseller.provision | Sperren, Freigeben und Anmelden eines Kunden |

Geben Sie einer Integration nicht reseller.manage. Diese Berechtigung bearbeitet Ihre Preisliste und die Zugangsdaten Ihres eigenen Payment-Gateways. reseller.provision existiert genau aus dem Grund, damit ein Schlüssel, den Sie in ein Billing-Panel oder eine Website einfügen, diese Berechtigung nicht benötigt.

Der Schlüssel wird nur einmal angezeigt. Speichern Sie ihn dort, wo Sie Ihre anderen Zugangsdaten aufbewahren – niemals in einer Datei, die von Ihrem Webserver bereitgestellt wird.

2. Führen Sie Ihren ersten Aufruf aus

curl https://api.zinndigital.com/v1/reseller/services \
  -H "Authorization: Bearer zdk_live_…"

Das gibt jeden von Ihnen bereitgestellten Dienst zurück, eine Zeile pro Website, mit dem zugehörigen Kunden, seinem Status und dem Preis, den Sie dafür berechnen. Bei einem neuen Konto ist es eine leere Liste – was die korrekte Antwort ist, kein Fehler.

3. Die gesamte Integration in sechs Aufrufen

WANN                 AUFRUF
eine Bestellung bezahlt ist     POST   /v1/orgs                                   einmal pro KUNDE
                                POST   /v1/sites                                  einmal pro DIENST
sie nicht bezahlt haben         POST   /v1/reseller/services/{siteId}/suspend
sie bezahlen                    POST   /v1/reseller/services/{siteId}/unsuspend
sie kündigen                    DELETE /v1/sites/{siteId}
"im Hosting anmelden"           POST   /v1/reseller/services/{siteId}/sso

Die Bereitstellung umfasst zwei Aufrufe, und die Schlüssel sind wichtig:

# 1. das Konto des Kunden — bezogen auf IHRE Kunden-ID
curl -X POST https://api.zinndigital.com/v1/orgs \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: account-4211" \
  -d '{"type":"customer","name":"Acme Ltd"}'

# 2. die Website des Kunden — bezogen auf IHRE Dienst-ID
curl -X POST https://api.zinndigital.com/v1/sites \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: service-9915" \
  -d '{"org_id":"<from step 1>","product_line":"mainstream","primary_domain":"acme.com"}'

Zwei Regeln, die Geld kosten, wenn Sie sie falsch machen

  1. Beziehen Sie das Konto auf Ihren KUNDEN und die Website auf Ihren DIENST. Die zweite Bestellung eines Kunden muss in dem Konto landen, das er bereits hat. Beziehen Sie beide auf den Dienst, endet ein Kunde mit drei unzusammenhängenden Konten und drei separaten Panels.
  2. Senden Sie einen Idempotency-Key bei jedem POST, der aus Ihrer eigenen ID für das Objekt erstellt wurde. Jedes Abrechnungssystem führt erneute Versuche durch – ein Gateway-Callback trifft zweimal ein, ein Administrator führt eine fehlgeschlagene Bereitstellung erneut aus, ein Kunde klickt doppelt. Ohne den Schlüssel erstellt der zweite Versuch eine zweite Website und diese wird Ihnen in Rechnung gestellt.

Drei Antworten, die Sie nicht zu zwei zusammenfassen dürfen

  • unsuspend kann mit 409 antworten. Das bedeutet, dass unser Abuse-Team die Website sperrt, nicht Sie. Zeigen Sie die Nachricht an; versuchen Sie es nicht erneut.
  • **Das Kündigen terminiert eine Löschung, führt sie aber nicht sofort aus.** Das Datum wird als pending_deletion_at zurückgegeben. Einem Kunden zu sagen, dass seine Daten bereits gelöscht sind, wenn dies nicht der Fall ist, ist schlimmer als ihm gar nichts zu sagen.
  • disk_used_bytes kann null sein, und null ist nicht gleich Null. Es bedeutet, dass wir nicht messen konnten, nicht dass nichts verbraucht wurde. Überspringen Sie es – schreiben Sie kein 0 in Ihre eigenen Datensätze, sonst zeigen Sie einem Kunden einen grünen Nutzungsbalken für eine Website an, von der Sie keinen Messwert haben.

4. Melden Sie einen Kunden an

POST /v1/reseller/services/{siteId}/sso gibt eine einmalig verwendbare URL zurück, die Ihren Kunden direkt in sein eigenes Konto weiterleitet, bereits angemeldet.

Erstellen Sie sie, wenn der Kunde klickt, niemals beim Rendern der Seite. Der Link ist einmalig verwendbar und läuft innerhalb von Minuten ab. Ein in eine Seite geschriebener Link wird daher beim ersten Seitenaufruf verbraucht und in jedem Cache zwischen Ihnen und dem Browser hinterlegt.

5. Installieren Sie stattdessen ein Modul

  • WHMCS – kopieren Sie das Modul nach modules/servers/zinn/, fügen Sie einen Server hinzu, dessen Passwort Ihr API-Schlüssel ist, und legen Sie die Produktlinie für das Produkt fest. Drücken Sie Verbindung testen: Es führt einen echten Aufruf aus und teilt Ihnen mit, was die Plattform geantwortet hat.
  • HostBill – kopieren Sie es nach includes/modules/Hosting/zinn/ und verbinden Sie es auf dieselbe Weise.
  • WordPress – das Zinn® Reseller Toolkit: Domain-Suche, ein Anmelde-Link in das Hosting Ihrer Kunden und WooCommerce-Bereitstellung, wenn eine Bestellung bezahlt ist. Open Source unter <https://github.com/Zinn-Digital/zinn-reseller-toolkit> oder laden Sie es über Plugins in Ihrem Dashboard herunter.

6. Gehen Sie live

Überprüfen Sie diese Punkte, bevor Sie eine echte Bestellung entgegennehmen:

  • Der Verbindungstest des Moduls ist erfolgreich oder Ihr erster curl-Aufruf gibt eine Liste zurück.
  • Ihre Preisliste ist eingerichtet (Reselling → Ihre Preise).
  • Ihr Payment-Gateway ist verbunden (Reselling → Payment-Gateways) – Ihre Kunden bezahlen Sie über Ihr eigenes Konto.
  • Ihre Unternehmensdaten sind eingetragen (Reselling → Ihr Unternehmen), damit die Rechnungen Ihrer Kunden Ihre juristische Person und USt-IdNr. enthalten, nicht unsere.
  • Sie haben eine echte Bestellung von Anfang bis Ende durchgespielt und beobachtet, wie die Website erscheint.

Wo alles Andere zu finden ist

Die vollständige API-Referenz – jeder Endpunkt, generiert aus unserer Spezifikation, mit den jeweils erforderlichen Berechtigungen – finden Sie unter <https://zinndigital.com/developers/api>.

Immer noch nicht weiter?

Der Support ist in jedem Tarif enthalten und antwortet in Ihrer eigenen Sprache.

Support kontaktieren Alle Artikel
Verkauf von Zinn® Hosting über Ihre eigenen Systeme