Vue d’ensemble
Les clients revendeurs sont les utilisateurs finaux de votre plateforme. En mode live, KennHosting crée un compte utilisateur (is_reseller_client=true) — ce compte ne peut pas se connecter directement sur kennhosting.com. En mode sandbox, aucun compte réel n’est créé (user_id=null).
Scope requis : reseller:clients
Créer un client
POST /api/v1/reseller/clients
Corps de la requête :
| Champ | Type | Requis | Description |
|---|
name | string | Oui | Nom complet du client |
email | string | Oui | Email unique |
password | string | Non | Mot de passe (auto-généré si absent) |
external_ref | string | Non | Référence dans votre système |
curl -X POST "https://kennhosting.com/api/v1/reseller/clients" \
-H "Authorization: Bearer kh_live_YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Jean Dupont",
"email": "jean@exemple.cm",
"external_ref": "client-001"
}'
Réponse (201) :
{
"success": true,
"data": {
"id": 1,
"name": "Jean Dupont",
"email": "jean@exemple.cm",
"external_ref": "client-001",
"sandbox": false,
"user_id": 42
}
}
En mode sandbox (kh_test_), "sandbox": true et "user_id": null. Aucun compte KennHosting n’est créé.
Erreurs possibles :
// Email déjà utilisé pour un de vos clients
{"code": "duplicate_email", "message": "Un client avec cet email existe déjà."}
// Email déjà utilisé sur KennHosting (live uniquement)
{"code": "email_taken", "message": "Cet email est déjà utilisé sur KennHosting."}
Lister les clients
GET /api/v1/reseller/clients
Retourne uniquement les clients correspondant au mode du token (live ou sandbox).
Paramètres optionnels :
| Paramètre | Description |
|---|
page | Numéro de page (défaut : 1) |
per_page | Éléments par page (défaut : 50) |
Réponse :
{
"success": true,
"data": [
{
"id": 1,
"reseller_profile_id": 1,
"user_id": 42,
"name": "Jean Dupont",
"email": "jean@exemple.cm",
"external_ref": "client-001",
"sandbox": false,
"created_at": "2026-01-15T10:00:00.000000Z",
"user": {
"id": 42,
"name": "Jean Dupont",
"email": "jean@exemple.cm"
}
}
],
"meta": {
"pagination": {
"total": 1,
"per_page": 50,
"current_page": 1,
"last_page": 1
}
}
}
Détail d’un client
GET /api/v1/reseller/clients/{id}
Inclut la liste des services actifs du client.
{
"success": true,
"data": {
"id": 1,
"name": "Jean Dupont",
"email": "jean@exemple.cm",
"user": { "id": 42, "name": "Jean Dupont", "email": "jean@exemple.cm", "created_at": "..." },
"services": [
{ "id": 5, "uuid": "...", "domain": "jean.cm", "status": "active" }
]
}
}
Modifier un client
PUT /api/v1/reseller/clients/{id}
| Champ | Type | Description |
|---|
name | string | Nouveau nom (synchronisé avec le compte KH en live) |
external_ref | string | Nouvelle référence externe |
{
"name": "Jean D. Modifié",
"external_ref": "client-001-v2"
}
Supprimer un client
DELETE /api/v1/reseller/clients/{id}
La suppression est bloquée si le client possède des services actifs ou des commandes en cours (has_services). Supprimez d’abord tous ses services.
Réponse (200) :
{
"success": true,
"data": { "deleted": true }
}