Kennisbank
Zinn®-hosting verkopen vanaf je eigen systemen
Beheer Zinn-hosting vanuit uw eigen facturatypaneel, WordPress-site of scripts: vraag een API-sleutel aan, doe uw eerste aanroep en ontdek de zes aanroepen waar de hele integratie uit bestaat.
U verkoopt onze hosting door. Uw klanten zijn van u: uw prijzen, uw facturen, uw betaalprovider. Dit is hoe u ons platform aanstuurt vanuit wat u nu al gebruikt — een facturatiepaneel, uw eigen WordPress-site of een script.
Wat uw klanten daadwerkelijk zien
Voordat we naar de techniek kijken: uw klanten krijgen ons nooit te zien. Drie interfaces, en u kiest welke u gebruikt.
| Interface | Van wie het is | |---|---| | Het hostingpaneel, op uw eigen hostnaam | Stel een panelhostnaam in onder Reselling → Uw merk en uw klanten loggen in op panel.uwbedrijf.com met uw logo en uw kleuren. Hetzelfde paneel, uw adres. | | Uw eigen website | De WordPress-plugin plaatst een domeinzoekfunctie en een inloglink met één klik op uw site, en verwerkt de bestelling via uw eigen WooCommerce-afrekening. | | Uw facturatiepaneel | WHMCS of HostBill blijft de voordeur; de module provisioont op de achtergrond en de knop in de klantomgeving logt hen rechtstreeks in op hun hosting. |
⛔ Welke optie u ook kiest, u bent de 'merchant of record' voor uw klanten: uw prijzen, uw facturen, uw btw-nummer, uw betaalprovider. Wij factureren u, eenmaal per maand, tegen groothandelsprijzen.
Zodra u een panelhostnaam heeft ingesteld, vult u deze in het veld Paneladres van de WordPress-plugin in en nergens anders — de inloglinks die deze API genereert, volgen deze automatisch.
De vier manieren om aan de slag te gaan
Er zijn vier manieren om aan de slag te gaan, en ze doen onderliggend allemaal hetzelfde:
| | Voor | |---|---| | De WHMCS-module | Een WHMCS-winkel | | De HostBill-module | Een HostBill-winkel | | De WordPress-plugin | Verkopen vanaf uw eigen WordPress- of WooCommerce-site | | De API | Al het andere — Blesta, een intern systeem, een cron-script |
1. Haal een API-sleutel op
Ga in uw dashboard naar API-sleutels en maak er een aan. Geef deze alleen de rechten die nodig zijn:
| Machtiging | Waarom | |---|---| | org.read | Uw klantaccounts lezen | | sites.create | Een site provisioneren | | sites.view | Een dienst lezen | | sites.delete | Beëindigen | | reseller.view | Uw diensten vermelden en het verbruik lezen | | reseller.provision | Een klant opschorten, vrijgeven en inloggen |
⛔ Geef een integratie nooit reseller.manage. Die machtiging bewerkt uw prijslijst en de inloggegevens van uw eigen betaalgateway. reseller.provision bestaat juist om te voorkomen dat een sleutel die u in een facturatiepaneel of website plakt, deze machtiging nodig heeft.
De sleutel wordt eenmalig getoond. Sla deze op waar u uw andere inloggegevens bewaart — nooit in een bestand dat door uw webserver wordt geserveerd.
2. Voer uw eerste call uit
curl https://api.zinndigital.com/v1/reseller/services \
-H "Authorization: Bearer zdk_live_…"
Dat retourneert elke dienst die u hebt geprovisioneerd, één rij per site, met de klant waartoe deze behoort, de status ervan en wat u ervoor in rekening brengt. Bij een nieuw account is dit een lege lijst — wat het juiste antwoord is, geen foutmelding.
3. De volledige integratie, in zes calls
WANNEER CALL
bestelling betaald is POST /v1/orgs één keer per KLANT
POST /v1/sites één keer per DIENST
ze niet betaald hebben POST /v1/reseller/services/{siteId}/suspend
ze betalen POST /v1/reseller/services/{siteId}/unsuspend
ze annuleren DELETE /v1/sites/{siteId}
"inloggen op hosting" POST /v1/reseller/services/{siteId}/sso
Provisioning bestaat uit twee calls, en de sleutels zijn van belang:
# 1. het account van de klant — gekoppeld aan UW klant-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. hun site — gekoppeld aan UW 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"}'
Twee regels die geld kosten als u ze verkeerd toepast
- Koppel het account aan uw KLANT en de site aan uw DIENST. Een tweede bestelling van een klant moet in het account terechtkomen dat ze al hebben. Koppel u beide aan de dienst, dan eindigt één klant met drie ongerelateerde accounts en drie afzonderlijke panelen.
- Stuur een
Idempotency-Keymee bij elkePOST, opgebouwd vanuit uw eigen id voor het item. Elk facturatiesysteem probeert het opnieuw — een callback van een gateway komt twee keer binnen, een beheerder voert een mislukte provisioning opnieuw uit, een klant dubbelklikt. Zonder de sleutel maakt de tweede poging een tweede site aan en wordt deze aan u gefactureerd.
Drie antwoorden die u niet mag samenvoegen tot twee
unsuspendkan409als antwoord geven. Dat betekent dat ons misbruikteam de site blokkeert, niet u. Toon het bericht; probeer het niet opnieuw.- **Beëindigen plant een verwijdering in, het voert deze niet direct uit.** De datum komt terug als
pending_deletion_at. Een klant vertellen dat hun gegevens al verdwenen zijn terwijl dat niet zo is, is erger dan niets vertellen. disk_used_byteskannullzijn, en null is geen nul. Het betekent dat we het niet konden meten, niet dat er niets is gebruikt. Sla het over — schrijf geen0in uw eigen administratie, anders toont u een klant een groene verbruiksbalk voor een site waarvan u geen meting heeft.
4. Een klant inloggen
POST /v1/reseller/services/{siteId}/sso retourneert een URL voor eenmalig gebruik waarmee u uw klant rechtstreeks naar hun eigen account brengt, al ingelogd.
⛔ Genereer deze wanneer ze klikken, nooit wanneer u de pagina laadt. De link is voor eenmalig gebruik en verloopt binnen enkele minuten. Een link die in een pagina is geschreven, wordt dus bij de eerste paginaweergave verbruikt en blijft achter in elke cache tussen u en de browser.
5. Installeer in plaats daarvan een module
- WHMCS — kopieer de module naar
modules/servers/zinn/, voeg een server toe waarvan het Wachtwoord uw API-sleutel is, en stel de productlijn in op het product. Druk op Verbinding testen: deze voert een echte call uit en vertelt u wat het platform heeft geantwoord. - HostBill — kopieer naar
includes/modules/Hosting/zinn/en verbind deze op dezelfde manier. - WordPress — de Zinn® Reseller Toolkit: domeinzoekfunctie, een inloglink naar de hosting van uw klanten en WooCommerce-provisioning wanneer een bestelling is betaald. Open source op <https://github.com/Zinn-Digital/zinn-reseller-toolkit>, of download deze via Plugins in uw dashboard.
6. Ga live
Controleer deze punten voordat u een echte bestelling aanneemt:
- De verbindingstest op de module slaagt, of uw eerste
curlretourneert een lijst. - Uw prijslijst is ingesteld (Reselling → Uw prijzen).
- Uw betaalgateway is gekoppeld (Reselling → Betaalgateways) — uw klanten betalen u, via uw eigen account.
- Uw bedrijfsgegevens zijn ingevoerd (Reselling → Uw bedrijf), zodat op de facturen van uw klanten uw rechtspersoon en btw-nummer staan, niet de onze.
- U heeft van begin tot eind één echte bestelling geplaatst en gezien dat de site verschijnt.
Waar u al het andere vindt
De volledige API-referentie — elk eindpunt, gegenereerd op basis van onze specificatie, met de machtiging die elk eindpunt vereist — is te vinden op <https://zinndigital.com/developers/api>.
Kom je er niet uit?
Ondersteuning is inbegrepen in elk abonnement en antwoorden in je eigen taal.
Contact opnemen met support → Alle artikelen →