KernelHost API

Wat de KernelHost API (Reseller API) doet

De KernelHost Reseller-API biedt exact dezelfde bestel- en beheeracties die u anders via het klantenportaal aanklikt. Zo automatiseert u uw eigen hosting-wederverkoop, integreert u KernelHost-producten in uw eigen frontend of facturatie en behoudt u volledige controle over machtigingen, snelheidsbeperkingen en IP-toegangslijst per sleutel.

Elke aanroep wordt met HMAC-SHA256 ondertekend, tegen replay beschermd, idempotent verwerkt (verplicht bij bestellingen) en vastgelegd in een manipulatiebestendig auditlogboek. Betalingen worden eerst van uw tegoedsaldo afgeschreven, daarna van uw opgeslagen kaart. Nieuwe kaarten kunnen om veiligheidsredenen alleen in het klantenportaal worden toegevoegd (3-D Secure 2).

Basis-URL
https://www.kernelhost.com/cp/kernelhost_api/v1

Inhoudsopgave

Wat u met de API kunt doen

  • Producten en prijzen opvragen (KVM-rootservers, dedicated, webspace, Minecraft, VPN, ongelimiteerd verkeer).
  • Bestellingen plaatsen (met Idempotency-Key-bescherming tegen dubbele boekingen bij netwerk-retries).
  • Eigen services opvragen, hun status controleren en acties uitvoeren: start, stop, reboot, opzegging per einde van de factureringsperiode en het intrekken van die opzegging.
  • Service-toegangsgegevens uitsluitend van uw eigen services uitlezen (aparte machtiging, auditlogboek, optionele bevestigingsmail bij elke toegang).
  • Facturen opvragen, tegoed controleren, factuur-PDF's downloaden.
  • Per sleutel een webhook-URL opslaan. Het versturen van events (voor bestellingen, services en facturen) is in voorbereiding; tot die tijd vraagt u de status op via GET /v1/orders/{id} en GET /v1/services/{id}.

Beveiliging op het hoogste niveau

De API is ontworpen vanuit de aanname dat elke afzonderlijke aanroep directe financiële impact heeft en toegang kan geven tot gevoelige servergegevens. De beveiligingseisen liggen daarom ruim boven de gebruikelijke REST-standaard.

  • HMAC-SHA256-aanvraaghandtekening over methode, pad, tijdstempel, nonce en body-hash. Vergelijking in constante tijd.
  • Replay-bescherming: tijdstempelvenster +-300s, eenmalige nonce-cache gedurende 600s.
  • Geheime sleutels worden serverzijdig uitsluitend AES-256-GCM-versleuteld opgeslagen. Klare tekst bestaat alleen kortstondig in het geheugen voor handtekeningverificatie. De hoofdsleutel staat buiten de database.
  • Granulaire machtigingen per sleutel. Gevaarlijke machtigingen (read:credentials, write:orders) moeten expliciet worden ingeschakeld, standaard is alleen-lezen.
  • Data-isolatie op databaseniveau: elke query filtert hard op uw account-id, toegang tussen klanten is onmogelijk per ontwerp.

Voorbeeld: eigen accountgegevens opvragen

De aanvraag wordt volledig ondertekend met uw geheime sleutel. De geheime sleutel verlaat nooit het clientgeheugen, alleen de handtekening wordt verzonden.

TS=$(date +%s)
NONCE=$(openssl rand -hex 16)
BODY_SHA256=$(printf '' | openssl dgst -sha256 -hex | awk '{print $2}')
SIG_INPUT=$(printf 'GET\n/v1/me\n%s\n%s\n%s' "$TS" "$NONCE" "$BODY_SHA256")
SIG=$(printf '%s' "$SIG_INPUT" | openssl dgst -sha256 -hmac "$KH_SECRET" -hex | awk '{print $2}')

curl https://www.kernelhost.com/cp/kernelhost_api/v1/me \
  -H "KH-Key: $KH_KEY" \
  -H "KH-Timestamp: $TS" \
  -H "KH-Nonce: $NONCE" \
  -H "KH-Signature: $SIG"

Veelgestelde vragen

Wie mag de Reseller-API gebruiken?

Elke bestaande KernelHost-klant kan in het klantenportaal via het menu-item "KernelHost API" sleutels aanmaken, elk met een eigen label, eigen machtigingen en een eigen IP-toegangslijst. Alleen de accounthouder kan sleutels aanmaken, roteren of intrekken. Een aparte reseller-overeenkomst is niet nodig: alle openbaar vermelde producten zijn via de API te bestellen.

Hoe wordt een bestelling betaald?

Betaalvolgorde: eerst uw tegoed, daarna uw opgeslagen betaalmethode. Mislukt de betaling of is er geen kaart opgeslagen, dan retourneert de API HTTP 402 "Payment Required" met een precieze reden (insufficient_credit_and_no_card, card_declined, credit_apply_failed) en wordt de bestelling direct geannuleerd, zodat er geen onbetaalde bestelling achterblijft.

Kan ik service-wachtwoorden via de API uitlezen?

Ja, uitsluitend voor uw eigen services en uitsluitend met de expliciete machtiging read:credentials, die bij het aanmaken van een sleutel apart moet worden ingeschakeld. De response bevat hostnaam, IP-adressen, gebruikersnaam en wachtwoord. Bij elke toegang wordt een vermelding credentials.read in het auditlogboek aangemaakt en een bevestigingsmail naar het accountadres gestuurd, zodat heimelijk misbruik niet onopgemerkt blijft.

Wat gebeurt er als mijn geheime sleutel gecompromitteerd is?

U roteert het secret met één klik in het klantenpaneel en het oude secret is direct ongeldig. Mislukte authenticatiepogingen worden gelogd en per bron-IP afgeremd, maar blokkeren uw sleutel nooit. Zo kan niemand uw integratie blokkeren alleen omdat hij uw openbare sleutel-ID kent.

Klaar om te beginnen?

Maak uw eerste API-sleutel aan in het klantenportaal onder "KernelHost API" en volg de snelstartgids.