Vue d’ensemble
Chaque compte revendeur possède deux wallets :
- Wallet live : débité pour les opérations réelles (hébergement, domaines, VPS, email)
- Wallet sandbox : débité pour les simulations de test (rechargeable librement)
Scope requis : reseller:wallet
Consulter les soldes
GET /api/v1/reseller/wallet
curl "https://kennhosting.com/api/v1/reseller/wallet" \
-H "Authorization: Bearer kh_live_YOUR_TOKEN" \
-H "Accept: application/json"
Réponse :
{
"success": true,
"data": {
"live": {
"balance": 250000,
"currency": "XAF"
},
"sandbox": {
"balance": 500000,
"currency": "XAF"
}
}
}
Historique des transactions
GET /api/v1/reseller/wallet/transactions?mode=live
Paramètres :
| Paramètre | Valeur | Description |
|---|
mode | live | sandbox | Wallet à consulter (défaut : live) |
page | integer | Page (défaut : 1) |
Réponse :
{
"success": true,
"data": [
{
"id": 4,
"type": "debit",
"amount": "45000.00",
"balance_after": "205000.00",
"description": "VPS VPS START — client #1",
"reference": null,
"created_at": "2026-06-12T19:58:36.000000Z"
}
],
"meta": {
"pagination": {
"total": 1,
"per_page": 50,
"current_page": 1,
"last_page": 1,
"mode": "live"
}
}
}
Recharger le wallet live
POST /api/v1/reseller/wallet/topup
Corps :
Réponse :
{
"success": true,
"data": {
"payment_url": "https://pay.notchpay.co/...",
"reference": "kh_topup_xxxxxx",
"amount": 100000,
"currency": "XAF"
}
}
Redirigez l’utilisateur vers payment_url. Une fois le paiement confirmé, votre wallet live est crédité automatiquement.
Créditer le wallet sandbox (gratuit)
POST /api/v1/reseller/wallet/sandbox/credit
Cette route est uniquement accessible avec un token sandbox (kh_test_). Un token live retourne {"code": "sandbox_only"}.
Corps :
Réponse :
{
"success": true,
"data": {
"balance": 600000,
"credited": 100000,
"transaction_id": 1
}
}
Protection anti double-débit
Les débits sont atomiques : si deux requêtes concurrentes tentent de débiter le même wallet simultanément, une seule passe — l’autre reçoit insufficient_balance.