API Revendeur KernelHost

Ce que fait l'API Revendeur

L'API Revendeur KernelHost expose exactement les actions de commande et de gestion que vous effectueriez sinon en cliquant dans le portail client. Elle vous permet d'automatiser votre activité de revente, d'intégrer les produits KernelHost dans votre propre interface ou système de facturation, et de garder le contrôle total sur les permissions, les limitations de débit et la liste blanche d'adresses IP de chaque clé.

Chaque appel est signé en HMAC-SHA256, protégé contre la rejouabilité, traité de manière idempotente (obligatoire pour les commandes), enregistré dans un journal d'audit infalsifiable et confirmé en option par webhook. Les paiements sont débités d'abord de votre solde de crédit, puis de votre carte enregistrée. De nouvelles cartes ne peuvent être ajoutées que dans le portail client (3-D Secure 2 obligatoire).

URL de base
https://www.kernelhost.com/cp/kh_reseller_api/v1

Table des matières

Ce que vous pouvez faire

  • Parcourir les produits et les prix (serveurs racines KVM, serveurs dédiés, hébergement web, Minecraft, VPN, trafic illimité).
  • Passer des commandes (l'en-tête Idempotency-Key protège contre les doubles débits lors des nouvelles tentatives réseau).
  • Lister vos propres services, vérifier leur état, exécuter des actions (démarrer, arrêter, redémarrer, réinstaller, suspendre, résilier).
  • Lire les identifiants de vos propres services uniquement (permission distincte, traçabilité par audit, e-mail de confirmation optionnel à chaque accès).
  • Récupérer vos factures, vérifier votre solde de crédit, télécharger les PDF de factures.
  • Enregistrer un webhook par clé pour les événements de commande, de service et de facture (schéma de signature compatible Stripe).

Conception à sécurité maximale

L'API est conçue en partant du principe que chaque appel a un impact financier direct et peut exposer des identifiants de serveur sensibles. La base de sécurité dépasse donc largement les normes REST habituelles.

  • Signature de requête HMAC-SHA256 sur méthode, chemin, horodatage, nonce et empreinte du corps. Comparaison à temps constant.
  • Protection anti-rejeu : fenêtre d'horodatage de +-300s, cache de nonce à usage unique pendant 600s.
  • Les secrets sont uniquement persistés sous forme de cryptogrammes AES-256-GCM. Le clair n'existe que de manière transitoire en mémoire pour vérifier la signature. La clé maîtresse réside hors de la base de données.
  • Permissions granulaires par clé. Les permissions dangereuses (read:credentials, write:orders) doivent être activées explicitement. Le paramétrage par défaut est en lecture seule.
  • Isolation des données au niveau base de données : chaque requête filtre strictement sur votre identifiant de compte. L'accès entre locataires est impossible par conception.

Exemple : interroger les informations de votre compte

La requête est intégralement signée avec votre secret. Le secret ne quitte jamais la mémoire du client ; seule la signature est transmise.

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/kh_reseller_api/v1/me \
  -H "KH-Key: $KH_KEY" \
  -H "KH-Timestamp: $TS" \
  -H "KH-Nonce: $NONCE" \
  -H "KH-Signature: $SIG"

Questions fréquentes

Qui peut utiliser l'API Revendeur ?

Tout client KernelHost existant peut créer une clé sous "Mon compte → API Revendeur" avec son propre libellé, ses permissions et sa liste blanche d'adresses IP. Aucun accord de revente distinct n'est requis : chaque produit listé publiquement est disponible via l'API.

Comment les commandes sont-elles payées ?

Ordre de prélèvement : d'abord le solde de crédit, puis votre moyen de paiement enregistré (carte bancaire avec 3-D Secure 2). Si le paiement est refusé ou qu'aucune carte n'est enregistrée, l'API renvoie HTTP 402 "Payment Required" avec un motif précis (insufficient_credit_and_no_card, card_declined, card_expired). La commande reste 24h en statut "pending payment", puis est annulée automatiquement.

Puis-je lire les mots de passe des services via l'API ?

Oui, mais uniquement pour vos propres services et uniquement avec la permission explicite read:credentials, qui doit être activée à la création de la clé. Chaque accès produit une entrée d'audit credentials.read ; à la demande, vous pouvez aussi recevoir un e-mail de confirmation à l'adresse de votre compte afin de rendre tout usage abusif silencieux impossible.

Que se passe-t-il si mon secret est compromis ?

Vous faites tourner le secret en un seul clic dans le portail client. L'ancien secret est invalidé immédiatement, toutes les sessions actives sont révoquées. Sur des échecs d'authentification suspects (5 en 10 minutes), le système verrouille automatiquement la clé pendant 15 minutes et vous envoie un e-mail.

Prêt à démarrer ?

Créez votre première clé API dans le portail client sous "API Revendeur" et suivez le guide de démarrage rapide.