Ces endpoints (`/api/v1/reseller/accounts`) sont l’ancienne interface WHM. Préférez `/api/v1/reseller/whm/accounts` et les scopes dédiés (`reseller:hosting`).
Toutes les routes sont sous **`/api/v1`** et nécessitent un utilisateur disposant d’un **service revendeur actif** (plan catégorie `reseller`).
## Lister les sous-comptes
```http
GET /api/v1/reseller/accounts
Authorization: Bearer kh_live_xxxx
```
### Réponse
Tableau d’objets au format renvoyé par WHM (normalisé côté application) :
```json
{
"success": true,
"data": [
{
"username": "clientsite",
"domain": "clientsite.com",
"plan": "default",
"disk_used_mb": 1240,
"disk_limit_mb": 10240,
"suspended": false,
"email": "admin@clientsite.com"
}
]
}
```
**Permission :** `reseller:read`
---
## Détail d’un sous-compte
```http
GET /api/v1/reseller/accounts/{username}
```
Recherche le compte dans la liste WHM du revendeur ; **`404`** si le compte n’existe pas sous ce propriétaire.
**Permission :** `reseller:read`
---
## Créer un sous-compte
```http
POST /api/v1/reseller/accounts
Content-Type: application/json
```
```json
{
"domain": "clientsite.com",
"username": "clientsite",
"password": "Str0ngP@ssw0rd!",
"email": "admin@clientsite.com",
"plan": "nom_package_whm"
}
```
| Champ | Requis | Description |
|-------|--------|-------------|
| `domain` | Oui | Domaine principal |
| `plan` | Oui | Nom du package WHM |
| `email` | Oui | Email du compte |
| `username` | Non | Généré à partir du domaine si omis |
| `password` | Non | Généré si omis (retourné **une seule fois** dans la réponse) |
**Permission :** `reseller:write`
---
## Suspendre / réactiver / supprimer
```http
POST /api/v1/reseller/accounts/{username}/suspend
POST /api/v1/reseller/accounts/{username}/unsuspend
DELETE /api/v1/reseller/accounts/{username}
```
**Permission :** `reseller:write`
Le corps de `suspend` peut inclure `reason` (texte, optionnel).
---
## Erreurs fréquentes
| Code JSON | HTTP | Signification |
|------------|------|----------------|
| `no_reseller_service` | 422 | Aucun service revendeur actif |
| `whm_unavailable` | 503 | WHM non configuré |
| `whm_error` | 422 / 503 | Erreur renvoyée par WHM |
| `not_found` | 404 | Compte absent de la liste du revendeur |
## Permissions
| Action | Scope |
|--------|--------|
| Liste, détail | `reseller:read` |
| Création, suspend, unsuspend, suppression | `reseller:write` |
Il n’existe pas d’endpoint `PATCH` pour modifier librement un compte WHM : seules les opérations ci-dessus sont exposées.