U verwerft onze hosting als reseller. Uw klanten zijn van u: uw prijzen, uw facturen, uw betaalprovider. Dit is hoe u ons platform aanstuurt vanuit wat u momenteel al gebruikt — een facturatiepaneel, uw eigen WordPress-site of een script.
Wat uw klanten daadwerkelijk zien
Voor de technische details: uw klanten hoeven ons nooit te zien. Drie interfaces, en u kiest welke u gebruikt.
| Interface | Wiens beheer het is |
|---|
| Het hostingpaneel, op uw eigen hostnaam | Stel een paneelhostnaam in onder Reselling → Uw merk en uw klanten loggen in op panel.uwbedrijf.nl met uw logo en uw kleuren. Hetzelfde paneel, uw adres. |
| Uw eigen website | De WordPress-plugin plaatst domeinzoeken en een inloglink met één klik op uw site, en verwerkt de bestelling via uw eigen WooCommerce-afrekenproces. |
| Uw facturatiepaneel | WHMCS of HostBill blijft de hoofdingang; de module provisiet erachter en de knop in het klantengedeelte logt hen direct in op hun hosting. |
⛔ Welke u ook kiest, u bent de 'merchant of record' voor uw klanten: uw prijzen, uw facturen, uw btw-nummer, uw betaalprovider. Wij factureren aan u, eenmaal per maand, tegen groothandelsprijzen.
Zodra u een paneelhostnaam hebt ingesteld, vult u deze in het veld Paneeladres van de WordPress-plugin in en nergens anders — de inloglinks die deze API aanmaakt, volgen deze automatisch.
De vier toegangsmanieren
Er zijn vier toegangsmanieren, en ze doen onderhuids 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. Een API-sleutel verkrijgen
Ga in uw dashboard naar API-sleutels en maak er een aan. Geef deze alleen wat nodig is:
| Machtiging | Waarom |
|---|
org.read | Uw klantaccounts lezen |
sites.create | Een site provisiëren |
sites.view | Een dienst lezen |
sites.delete | Beëindigen |
reseller.view | Uw diensten weergeven en gebruik uitlezen |
reseller.provision | Opschorten, vrijgeven en een klant inloggen |
⛔ Geef een integratie niet reseller.manage. Die machtiging bewerkt uw prijslijst en de inloggegevens van uw eigen betaalgateway. reseller.provision bestaat juist zodat een sleutel die u in een facturatiepaneel of een website plakt, deze niet 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. Uw eerste aanroep uitvoeren
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 en wat u ervoor in rekening brengt. Bij een nieuw account is het een lege lijst — wat het juiste antwoord is, geen foutmelding.
3. De volledige integratie, in zes aanroepen
WANNEER AANROEP
een bestelling is betaald POST /v1/orgs eenmalig per KLANT
POST /v1/sites eenmalig per DIENST
ze niet hebben betaald 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 aanroepen, 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 wanneer 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 deze al heeft. Koppel beide aan de dienst en één klant eindigt met drie niet-gerelateerde accounts en drie afzonderlijke panelen.
- Stuur een
Idempotency-Key mee bij elke POST, gebaseerd op 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 creëert de tweede poging een tweede site en wordt deze aan u gefactureerd.
Drie antwoorden die u niet mag reduceren tot twee
unsuspend kan antwoorden met 409. Dat betekent dat ons abuse-team de site vasthoudt, niet u. Toon het bericht; probeer het niet opnieuw.
- **Beëindigen plant een verwijdering in, het voert er niet direct een uit.** De datum wordt geretourneerd als
pending_deletion_at. Een klant vertellen dat hun gegevens al weg zijn wanneer dat niet zo is, is erger dan niets vertellen.
disk_used_bytes kan null zijn, en null is niet nul. Het betekent dat we niet konden meten, niet dat er niets is gebruikt. Sla het over — schrijf geen 0 in uw eigen administratie, anders toont u een klant een groene verbruiksbalk voor een site waar u geen meting van heeft.
4. Een klant inloggen
POST /v1/reseller/services/{siteId}/sso retourneert een URL voor eenmalig gebruik die uw klant direct naar hun eigen account leidt, al ingelogd.
⛔ Genereer deze wanneer ze klikken, nooit wanneer u de pagina rendert. De link is voor eenmalig gebruik en verloopt binnen enkele minuten, dus een link die in een pagina is opgenomen, wordt verbruikt bij de eerste paginaweergave en blijft achter in elke cache tussen u en de browser.
5. In plaats daarvan een module installeren
- 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 aanroep 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: domeinzoeken, 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. Live gaan
Controleer deze punten voordat u een echte bestelling aanneemt:
- De verbindingstest slaagt op de module, of uw eerste
curl retourneert een lijst.
- Uw prijslijst is ingesteld (Reselling → Uw prijzen).
- Uw betaalgateway is verbonden (Reselling → Betaalgateways) — uw klanten betalen u, via uw eigen account.
- Uw bedrijfsgegevens zijn ingevuld (Reselling → Uw bedrijf) zodat de facturen van uw klanten uw juridische entiteit en btw-nummer bevatten, niet de onze.
- U heeft één echte bestelling van begin tot eind geplaatst en gezien dat de site verscheen.
Waar u al het andere vindt
De volledige API-referentie — elk eindpunt, gegenereerd vanuit onze specificatie, met de machtiging die elk eindpunt vereist — is te vinden op <https://zinndigital.com/developers/api>.