Baza wiedzy

Sprzedawaj hosting Zinn® z poziomu WHMCS

Zainstaluj darmowy moduł aprowizacji Zinn Digital® w WHMCS: klucz API i siedem wymaganych uprawnień, gdzie musi się znaleźć katalog modułu i dlaczego jego nazwa ma znaczenie, pola produktu oraz co w rzeczywistości robi każdy przycisk WHMCS.

Moduł Zinn Digital® przekształca natywne przyciski systemu WHMCS w rzeczywiste działania na naszej platformie. Złożenie zamówienia inicjuje hosting twojego klienta. Automatyzacja zaległych faktur w WHMCS zawiesza go. Oznaczenie faktury jako opłaconej odwiesza go. Anulowanie planuje usunięcie. Z kolei twój klient otrzymuje w panelu klienta przycisk Zaloguj się do panelu hostingu, który natychmiast go loguje.

Jest bezpłatny, licencjonowany na warunkach GPL-2.0-or-later i nie ma żadnej uprzywilejowanej ścieżki dostępu do naszej platformy: każde wywołanie, które wykonuje, to udokumentowany punkt końcowy, który można wywołać samodzielnie za pomocą własnego klucza API.

Zanim zaczniesz

Wymagane są dwie rzeczy, a ta druga często umyka uwadze.

  1. Konto resellera Zinn® z aktywnym programem. Zarejestruj się na stronie
  2. zinndigital.com i włącz funkcję odsprzedaży.

  3. Plan resellera z limitem liczby witryn. Witryny zamawiane przez twoich klientów wliczają się do limitu twojego
  4. planu, dlatego potrzebujesz planu z wolnymi zasobami.

⚠️ Funkcja Test Connection nie weryfikuje, czy zamówienie zakończy się powodzeniem. Odczytuje ona twój program i niczego nie inicjuje, dlatego zgłasza w pełni sprawne, aktywne (active) konto, które nie może jeszcze niczego sprzedawać. Jeśli twoje pierwsze zamówienie zakończy się błędem „This organization has no hosting plan, so it cannot host a site yet”, oznacza to właśnie taką sytuację — kup lub rozszerz swój plan resellera i złóż zamówienie ponownie. Z samym modułem wszystko jest w porządku.

1. Wygeneruj klucz API

W panelu Zinn® otwórz sekcję Klucze API i wygeneruj klucz z dokładnie tymi jedenastoma uprawnieniami:

UprawnienieDlaczego jest wymagane
org.createUtworzenie konta Zinn® twojego klienta przy jego pierwszym zamówieniu.
org.readOdczytywanie kont twoich klientów.
sites.createInicjowanie witryny.
sites.viewOdczytywanie usługi i jej użycia zasobów.
sites.deleteZakończenie świadczenia usługi (terminacja).
reseller.viewWyświetlanie listy sprzedanych usług oraz odczyt przestrzeni dyskowej i transferu.
reseller.provisionZawieszanie, odwieszanie, logowanie klienta, ustawianie planu i zmiana pakietu.
billing.viewOdczytywanie kosztu uaktualnienia pakietu przed jego realizacją.
sites.manageCzyszczenie pamięci podręcznej i tworzenie kopii zapasowej za pomocą przycisków.
sites.panel_accessZmiana hasła administratora WordPress.
hosting.php.manageZmiana wersji PHP podczas przejścia na wyższy lub niższy pakiet.

⛔ Nie przyznawaj uprawnienia reseller.manage. Klucz wklejony do panelu rozliczeniowego powinien móc zawiesić klienta z powodu braku płatności i zalogować go. Nie powinien natomiast mieć możliwości odczytu i modyfikacji danych uwierzytelniających twoich własnych bramek płatności. Uprawnienie reseller.provision istnieje właśnie po to, aby nie trzeba było nadawać tego o szerszym zakresie. ⛔ Uprawnienie org.create nie jest opcjonalne. Bez niego moduł może odczytywać twoje konta, ale nie może utworzyć nowego, przez co funkcja Test Connection zakończy się sukcesem, a pierwsze zamówienie zwróci błąd 403. ⛔⛔ Nadaj wszystkie uprawnienia z tabeli i pamiętaj, że Test Connection nie wykryje ich braku. Funkcja ta odczytuje twój program partnerski i niczego nie inicjuje, więc wyświetli zielony komunikat nawet dla klucza pozbawionego dowolnego z nich. Zamiast tego otrzymasz błąd 403 przy konkretnej operacji objętej brakującym uprawnieniem — miesiące później, od klienta.

2. Zainstaluj moduł

  1. Pobierz moduł i rozpakuj go.
  2. Prześlij katalog zinn do swojej instalacji WHMCS, tak aby plik modułu znalazł się w ścieżce
  3. modules/servers/zinn/zinn.php.

⛔ Katalog musi nosić nazwę zinn. WHMCS generuje nazwy funkcji modułu provisioningu na podstawie nazwy jego katalogu, więc zmiana nazwy na zinn-whmcs lub zinndigital spowoduje, że moduł pojawi się na liście w WHMCS, pozwoli się wybrać, a następnie nigdy nie zostanie wywołany — bez żadnego komunikatu o błędzie. Archiwum zip rozpakowuje się od razu do właściwej nazwy; po prostu jej nie zmieniaj.

3. Dodaj serwer

W WHMCS przejdź do: Configuration → System Settings → Servers → Add New Server.

  • Name: dowolna, np. Zinn Digital®
  • Hostname: api.zinndigital.com
  • Type: Zinn Digital®
  • Password: Twój klucz API z kroku 1

⛔ Klucz należy wprowadzić w polu Password, które WHMCS przechowuje w postaci zaszyfrowanej. Nie umieszczaj go w opcjach konfiguracyjnych produktu — są one zapisywane w bazie danych w postaci zwykłego tekstu i widoczne dla każdego administratora, a te dane uwierzytelniające pozwalają na tworzenie i usuwanie hostingu twoich klientów.

Kliknij Test Connection. Opcja ta wykonuje rzeczywiste wywołanie i zgłasza odpowiedź zwróconą przez naszą platformę, zamiast wyłącznie sprawdzać, czy pola zostały wypełnione.

4. Utwórz produkt

Przejdź do Configuration → System Settings → Products/Services, a następnie w sekcji Module Settings wybierz właśnie dodany serwer. Pola konfiguracyjne:

PoleWymaganeOpis
Product linetakSprzedawana linia Zinn® — mainstream (zarządzany WordPress), footprint_free, wordpress, linux, cloud, agency, app_hosting, ai_hosting, lms_hosting, managed_database, vector_hosting, zinn_compute, fleet_linux, fleet_enterprise, mail lub reseller.
StacktakŚrodowisko bazowe: wordpress (domyślnie), woocommerce, php, static, node, one_click, headless_cms, nextcloud lub owncloud.
ApplicationnieWyłącznie dla środowisk one_click oraz headless_cms — aplikacja do zainstalowania. Wskazanie aplikacji w jakimkolwiek innym środowisku zostanie odrzucone, ponieważ to środowisko samo definiuje instalowane oprogramowanie.
PHP versionnieNp. 8.3. Pozostaw puste, aby zastosować wartość domyślną dla danej linii. Wersja niedostępna w danej linii zostanie odrzucona wraz z listą wersji obsługiwanych.
Plan codetakPlan Zinn® sprzedawany w ramach tego produktu. Lista twoich planów jest dostępna pod adresem GET /v1/reseller/prices. Zamówienie bez tego kodu zostanie odrzucone — patrz ostrzeżenie poniżej.
Billing intervalniemonthly (domyślnie) lub annual — cykl, w którym wystawiane jest twoje hurtowe rozliczenie za danego klienta. Kwota, którą obciążasz własnego klienta, jest ustawiana w produkcie WHMCS i pozostaje bez zmian.

⛔⛔ Kod planu jest wymagany, a zamówienie bez niego jest celowo odrzucane. Do 2026-09-01 pole to miało charakter wyłącznie wizualny i nic go nie odczytywało, przez co moduł zamawiał hosting, który nie posiadał żadnego planu — a wszelkie konsekwencje tego faktu przebiegały bez powiadomień. Twoje zestawienie hurtowe jest generowane na podstawie aktywnych subskrypcji twoich klientów, więc usługa nie posiadała swojej pozycji i nie naliczano żadnych opłat przez cały czas jej działania; twój klient nie dziedziczył żadnych limitów, przez co do jego witryny nie stosowano limitu dysku ani plików; z kolei funkcja Change Package nie miała czego modyfikować, więc sprzedane przejście na wyższy pakiet nie mogło zostać zrealizowane. Witryna przez cały ten czas działała i obsługiwała ruch bez zakłóceń.

Obecnie moduł odrzuca takie zamówienie, ponieważ nie ma bezpiecznego planu, którego mógłby się domyślić: takie zgadywanie zainicjowałoby hosting w planie, którego nie wybrałeś i dla którego mogłeś nie ustalić wyceny, a fakt ten — w przeciwieństwie do natychmiast widocznego odrzucenia — ujawniłby się dopiero po nadejściu zestawienia rozliczeniowego, o ile w ogóle.

Opcję Auto Setup ustaw według własnych preferencji — moduł zapewnia idempotencję w oparciu o identyfikator usługi w WHMCS, dzięki czemu ponowienie próby inicjalizacji zwraca tę samą witrynę, zamiast naliczać opłatę za kolejną.

Działanie poszczególnych akcji WHMCS

Akcja WHMCSDziałanie po naszej stronie
CreateTworzy konto Zinn® klienta (lub korzysta z już istniejącego) i inicjuje jego witrynę.
SuspendNakłada blokadę witryny z powodu braku płatności. Zawartość zostaje zachowana; nic nie jest usuwane.
UnsuspendZdejmuje twoją blokadę.
TerminatePlanuje usunięcie witryny z okresem karencji. Data wyświetla się w panelu klienta.
Usage updateRaz dziennie odświeża zużycie przestrzeni dyskowej i transferu dla każdej usługi.
Log in to hosting panelOtwiera jednorazowy odnośnik logujący bezpośrednio do panelu twojego klienta.
Change PackageZmienia pakiet usługi na wyższy lub niższy. Zmienia pakiet oraz wersję PHP, jeśli nowy produkt ją definiuje.
Change PasswordUstawia hasło administratora WordPress. Pole to nie wyświetla się w środowiskach pozbawionych takiego konta.
RenewPotwierdza, że usługa nadal istnieje. Hosting Zinn® ma charakter ciągły, więc nie występuje tu pojęcie zdalnego przedłużenia okresu ważności.
Sync Usage / Purge Cache / Take BackupPrzyciski na stronie usługi w panelu administratora. Klient otrzymuje opcje Purge Cache i Take Backup w swoim panelu klienta.
Service tabStatus, plan, dysk, transfer, ewentualne zaplanowane usunięcie oraz informacja o tym, kto nałożył zawieszenie.
ImportFunkcja ListAccounts odczytuje każdą stronę, dzięki czemu import nie może bez powiadomienia zatrzymać się na pierwszej z nich.

Zmiany pakietów: kto kogo obciąża

twój klient nigdy nie otrzymuje faktur od Zinn®, ani przy zamówieniu, ani przy zmianie pakietu. Rozliczasz go za pośrednictwem WHMCS; my obciążamy ciebie na twoim zbiorczym zestawieniu hurtowym. Dlatego operacja Change Package zmienia uprawnienia twojego klienta oraz pozycję na twoim kolejnym zestawieniu i nie obciąża żadnej karty — WHMCS pobrał już płatność od twojego klienta i samodzielnie wyliczył proporcjonalne rozliczenie.

Druga usługa klienta. W przypadku tego samego planu jest to kolejna witryna w ramach limitu witryn tego planu i żadne dodatkowe zasoby nie są przyznawane. W przypadku innego planu operacja zostaje odrzucona: zastąpienie aktywnego planu pozostawiłoby jedną z dwóch usług bez rozliczenia. Sprzedawaj obie usługi w ramach tego samego planu albo zarejestruj odbiorcę jako oddzielny profil klienta w WHMCS.

Funkcja Change Password działa wyłącznie dla środowiska WordPress. Hosting Zinn® nie posiada jednego „hasła do usługi” — klient przechodzi do panelu za pomocą przycisku logowania — a witryna bazująca na środowisku php lub static nie ma konta aplikacji, które można by zmodyfikować. WHMCS całkowicie ukrywa to pole, zamiast wyświetlać formularz, który nie zadziała.

Trzy odpowiedzi, których nie wolno sprowadzać do dwóch stanów

  • Funkcja Unsuspend może zakończyć się odrzuceniem. Oznacza to, że witryna została zawieszona przez nasz zespół
  • ds. nadużyć (abuse), a nie przez ciebie, i żaden panel rozliczeniowy nie ma uprawnień, aby ją odblokować. Informuje o tym komunikat; przekaż go swojemu administratorowi zamiast ponawiać próby.

  • Terminate planuje usunięcie, a nie wykonuje je natychmiast. Data jest zwracana jako parametr
  • pending_deletion_at i jest widoczna w panelu klienta. Poinformowanie klienta, że jego dane zostały już usunięte, gdy tak nie jest, jest gorsze niż nieudzielenie żadnej informacji.

  • Wielkości użycia dysku i transferu mogą mieć status nieznany, a status nieznany to nie zero. Kiedy odczyt
  • był niemożliwy, moduł pozostawia dotychczasową wartość zamiast wpisywać 0 — w przeciwnym razie WHMCS pokazałby Twojemu klientowi mylący, pusty pasek użycia zasobów dla witryny, z której nie udało się pobrać danych.

Rozwiązywanie problemów

Funkcja Test Connection działa, a pierwsze zamówienie kończy się błędem uprawnień. W kluczu API brakuje uprawnienia org.create. Moduł musi utworzyć konto klienta, zanim będzie mógł utworzyć jego witrynę.

Zamówienie kończy się błędem informującym, że organizacja nie posiada planu hostingowego. Twój plan resellera wyczerpał limit witryn lub nie został jeszcze wykupiony. Zobacz sekcję Zanim zaczniesz powyżej.

Zamówienie kończy się błędem ze wzmianką o środowisku (stack). Pole Stack w produkcie jest puste lub wskazuje środowisko, którego nie budujemy. Ustaw wartość wordpress, chyba że sprzedajesz inne rozwiązanie.

Anulowania kończą się niepowodzeniem. Upewnij się, że korzystasz z modułu w wersji 1.0.0 lub nowszej. Wcześniejsze kompilacje nie przesyłały potwierdzenia usunięcia, przez co każda terminacja była odrzucana, pozostawiając usługę aktywną i generującą koszty.

Odrzucenie wskazujące konkretne pole. Nasze komunikaty o błędach walidacji zawierają nazwę pola i przyczynę w nawiasie za główną treścią błędu, np. (php_version: 7.2 is not offered on this product line). To właśnie ta część zawiera sedno problemu — zdanie poprzedzające nawias jest celowo ogólne.

Weryfikacja pobranego pliku

Każde archiwum jest przesyłane przez protokół TLS z naszej własnej domeny i nigdy nie jest przekierowywane na zewnętrzny serwer. Suma kontrolna SHA-256 jest podana obok odnośnika do pobrania na stronie pobierania. Porównaj ją po pobraniu:

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

Nie korzystasz z WHMCS?

Dla pozostałych systemów dostępny jest moduł HostBill oraz jednoplikowy klient PHP — oba bezpłatne i dostępne na tej samej stronie pobierania. Wszystkie punkty końcowe wykorzystywane przez moduły znajdują się w dokumentacji API.

Najnowsze z bloga

Co pisaliśmy o hostingu, SEO i prowadzeniu witryn na dużą skalę.

SEO i budowanie linków z warstwy hostingu: Spojrzenie operatora w 2026 roku

Jak hosting wpływa na indeksowanie i link equity w 2026 roku: utrzymywanie zindeksowanych stron, weryfikacja domen z historią przed rozpoczęciem prac, link building bez zostawiania śladów (footprint) oraz szczera ocena tego, co infrastruktura może, a czego nie może zrobić dla SEO.

Przeczytaj wpis →

Jak sprawić, by WordPress był szybki i bezpieczny: lista kontrolna wydajności i wtyczek

Praktyczna lista kontrolna dla szybkiego i bezpiecznego WordPress: buforowanie na poziomie serwera, pamięć podręczna obiektów dla poszczególnych witryn, garść wtyczek wartych uruchomienia, utrzymywanie aktualnego stosu technologicznego oraz strony WooCommerce, których nigdy nie należy buforować.

Przeczytaj wpis →

Jak wybrać zarządzany hosting stron internetowych w 2026 roku: Przewodnik dla kupujących

Co naprawdę odróżnia dobry hosting zarządzany od taniej maszyny z panelem sterowania — migracje, kopie zapasowe, izolacja, prawdziwe buforowanie i uczciwe skalowanie — oraz jak to ocenić przed podjęciem decyzji.

Przeczytaj wpis →

Przeczytaj blog →

Nadal potrzebujesz pomocy?

Pomoc jest wliczona w każdy plan, dział wsparcia jest czynny przez 24 godzin na dobę i możesz pisać do nas w dowolnym z naszych 58 języków – odpowiadamy w twoim.

Skontaktuj się z pomocą techniczną → Wszystkie artykuły →