Lire les prix, vérifier et enregistrer des domaines, commander des serveurs dédiés, envoyer des SMS et connecter WHMCS ou WordPress — chaque intégration est documentée ici, avec les téléchargements en bas de page.
https://hostiguard.com/api/v1
HostiGuard expose une API JSON compacte et prévisible. Toutes les requêtes passent en HTTPS, les clés sont envoyées en Bearer et chaque réponse porte un indicateur success. Choisissez l'intégration dont vous avez besoin :
Compte, prix et disponibilité des domaines, enregistrement, offres et commandes de serveurs dédiés, suivi de commande, sous-clients.
Envoyez des SMS depuis votre application avec la clé d'un service SMS actif.
Les URL de rappel que chaque passerelle doit appeler pour que les factures soient marquées payées automatiquement.
Module registrar (domaines) et module de provisioning (serveurs dédiés) — revendez HostiGuard dans WHMCS.
Recherche de domaines, grilles tarifaires, offres de serveurs et provisioning WooCommerce sur votre site.
Les deux paquets sont construits à partir du code exact livré avec cette version de HostiGuard : ils correspondent toujours à l'API documentée ci-dessus.
Créez une clé dans Tableau de bord → Business → API. Envoyez-la avec chaque requête dans l’en-tête Authorization. La clé n’est affichée qu’une seule fois lors de sa création ; conservez-la en lieu sûr et ne l’utilisez jamais dans du code exécuté côté navigateur.
Authorization: Bearer hg_live_4cf37e433aaf7c69fed5c47ce11bdb870753bb9a
Chaque clé possède des portées. Une requête vers un point de terminaison dont la clé n’a pas la portée renvoie 403.
Un revendeur actif (Tableau de bord → Revendeur → API) reçoit deux clés sur cette même API. Les clés revendeur ont les scopes account, domains et servers ; les endpoints de sous-clients sont réservés aux comptes Business. Les prix renvoyés à une clé revendeur sont déjà au tarif revendeur — le prix public est fourni à côté sous "retail".
hg_live_…
Clé live — prix réels à votre tarif revendeur et commandes réelles payées depuis votre solde.
hg_test_…
Clé test — lectures identiques, mais chaque commande est simulée : la requête est validée et tarifée, rien n'est créé ni facturé. Utilisez-la pour construire et tester votre intégration en toute sécurité.
Chaque réponse d'une clé revendeur porte "mode" ("live" ou "test"). Une commande simulée répond 200 (et non 201) avec "simulated": true et indique si le même appel réussirait avec votre clé live :
{
"success": true,
"data": {
"mode": "test",
"simulated": true,
"service_type": 3,
"retail": 12.99,
"discount": 2.6,
"reseller_discount": 20,
"amount": 10.39,
"currency": "USD",
"balance": 250
}
}
Les clés sont affichées une seule fois à la création ; régénérer une clé révoque immédiatement la précédente. Gardez la clé live uniquement sur votre serveur — jamais dans du code côté navigateur.
keyObtenir vos clés revendeurChaque réponse contient un indicateur "success". Les appels réussis renvoient le résultat dans "data" ; les appels échoués renvoient un objet "error" avec un "code" lisible par machine et un "message" lisible par un humain.
{
"success": true,
"data": {
"…": "…"
}
}
{
"success": false,
"error": {
"code": "insufficient_balance",
"message": "Insufficient wallet balance.",
"required": 169.99,
"balance": 65.06
}
}
| 401 | Clé manquante, invalide ou révoquée |
| 402 | Le solde du portefeuille est inférieur au total de la commande ("required" et "balance" sont inclus) |
| 403 | Compte Business inactif, ou la clé ne dispose pas de la portée requise |
| 404 | Ressource introuvable (commande, sous-client, extension) |
| 405 | Méthode HTTP incorrecte |
| 422 | Paramètre invalide ou manquant |
Les commandes passées via l’API sont payées immédiatement avec le solde du portefeuille du compte. Si le solde est insuffisant, la commande n’est pas créée et l’API renvoie 402. Ajoutez des fonds depuis Tableau de bord → Solde. Tous les paiements sont définitifs — consultez la Politique de remboursement. Politique de remboursement
Les clés Business utilisent les scopes de la clé ; les clés revendeur (live / test) accèdent aux points account, domains et servers au tarif revendeur. Chaque point est décrit ci-dessous avec ses paramètres, un exemple cURL et la réponse.
/account
lockPortée: account
Renvoie le compte, l’entreprise, le solde du portefeuille et les portées de la clé utilisée.
Exemple
curl https://hostiguard.com/api/v1/account -H "Authorization: Bearer hg_live_…"
Réponse
{
"success": true,
"data": {
"account_id": 1024,
"name": "Alpha Web Agency",
"company": "Alpha Web Agency",
"account_type": "company",
"balance": 250,
"currency": "USD",
"min_balance": 100,
"key": {
"name": "My website",
"prefix": "hg_live_4cf37e43",
"scopes": [
"account",
"domains"
]
}
}
}
/domains/pricing
lockPortée: domains
Liste des tarifs de toutes les extensions (enregistrement, renouvellement, transfert, restauration — par an). Filtrez une extension avec tld.
Paramètres
| tld | facultatif | extension sans le point, ex. com |
Exemple
curl "https://hostiguard.com/api/v1/domains/pricing?tld=com" -H "Authorization: Bearer hg_live_…"
Réponse
{
"success": true,
"data": {
"count": 1,
"items": [
{
"tld": ".com",
"registration": 14.95,
"renewal": 14.89,
"transfer": 14.59,
"restore": 103.9,
"currency": "USD",
"per": "year",
"popular": true
}
]
}
}
/domains/check
lockPortée: domains
Disponibilité d’un nom de domaine avec son prix. "available" vaut true, false, ou null lorsque le registre n’a pas pu être contacté (réessayez plus tard).
Paramètres
| domain | obligatoire | nom de domaine complet, ex. monsite.com |
Exemple
curl "https://hostiguard.com/api/v1/domains/check?domain=mysite.com" -H "Authorization: Bearer hg_live_…"
Réponse
{
"success": true,
"data": {
"domain": "mysite.com",
"available": true,
"status": "available",
"price": {
"registration": 14.95,
"renewal": 14.89,
"currency": "USD",
"per": "year"
}
}
}
/domains
lockPortée: domains
Tous les noms de domaine du compte avec leur statut, leur date d’expiration et le sous-client auquel ils sont attribués.
Exemple
curl https://hostiguard.com/api/v1/domains -H "Authorization: Bearer hg_live_…"
Réponse
{
"success": true,
"data": {
"count": 1,
"items": [
{
"domain_id": 46,
"domain": "mysite.com",
"status": "active",
"auto_renew": true,
"registered": "2026-09-22 00:00:00",
"expires": "2027-09-21 00:00:00",
"client_id": 12
}
]
}
}
/domains/register
lockPortée: domains
Enregistre le domaine pour le nombre d’années indiqué et le paie avec le portefeuille. L’attribue éventuellement à un sous-client.
Paramètres
| domain | obligatoire | nom de domaine complet, ex. monsite.com |
| years | facultatif | durée d’enregistrement en années, 1–10 (1 par défaut) |
| privacy | facultatif | true pour activer la protection WHOIS lorsque l’extension le permet |
| nameservers | facultatif | liste des serveurs de noms à définir après l’enregistrement |
| client_id | facultatif | id du sous-client auquel attribuer le service |
Exemple
curl -X POST https://hostiguard.com/api/v1/domains/register \
-H "Authorization: Bearer hg_live_…" \
-H "Content-Type: application/json" \
-d '{"domain":"mysite.com","years":1,"privacy":true,"client_id":12}'
Réponse
{
"success": true,
"data": {
"payment_id": 114,
"order_id": 158,
"invoice_id": 181,
"invoice_number": "INV-2026-0072",
"service_id": 46,
"service_type": 3,
"status": 1,
"client_id": 12,
"amount": 14.95,
"currency": "USD",
"balance": 235.05
}
}
/servers/plans
lockPortée: servers
Offres de serveurs dédiés disponibles avec leurs caractéristiques et leurs prix par cycle de facturation.
Exemple
curl https://hostiguard.com/api/v1/servers/plans -H "Authorization: Bearer hg_live_…"
Réponse
{
"success": true,
"data": {
"count": 3,
"items": [
{
"plan_id": 2,
"name": "Performance Dedicated",
"slug": "performance-dedicated",
"description": "High-traffic applications",
"features": [
{
"text": "16-Core CPU (E5-2680)",
"type": "check"
}
],
"pricing": {
"monthly": {
"price": 169.99,
"setup_fee": 0
},
"yearly": {
"price": 1799.88,
"setup_fee": 0
}
},
"currency": "USD"
}
]
}
}
/servers
lockPortée: servers
Tous les serveurs dédiés du compte avec leur statut, leur IP, leurs dates et le sous-client attribué.
Exemple
curl https://hostiguard.com/api/v1/servers -H "Authorization: Bearer hg_live_…"
Réponse
{
"success": true,
"data": {
"count": 1,
"items": [
{
"server_id": 1,
"plan_id": 2,
"plan": "Performance Dedicated",
"hostname": "srv1.example.com",
"ip_address": "203.0.113.10",
"status": "active",
"billing_cycle": "monthly",
"date_start": "2026-09-22",
"date_expires": "2026-10-21",
"client_id": 12
}
]
}
}
/servers/order
lockPortée: servers
Commande une offre pour le cycle de facturation indiqué et la paie avec le portefeuille. Le serveur est ensuite provisionné comme une commande passée sur le site.
Paramètres
| plan_id | obligatoire | plan_id issu de /servers/plans |
| billing_cycle | obligatoire | monthly, quarterly, semiannual ou yearly (uniquement les cycles listés dans les tarifs de l’offre) |
| hostname | facultatif | hostname du serveur |
| client_id | facultatif | id du sous-client auquel attribuer le service |
Exemple
curl -X POST https://hostiguard.com/api/v1/servers/order \
-H "Authorization: Bearer hg_live_…" \
-H "Content-Type: application/json" \
-d '{"plan_id":2,"billing_cycle":"monthly","hostname":"srv1.example.com","client_id":12}'
Réponse
{
"success": true,
"data": {
"payment_id": 115,
"order_id": 159,
"invoice_id": 182,
"invoice_number": "INV-2026-0073",
"service_id": 1,
"service_type": 5,
"status": 1,
"client_id": 12,
"amount": 169.99,
"currency": "USD",
"balance": 65.06
}
}
/orders/{id}
lockPortée: account
Statut, éléments et factures d’une commande.
Exemple
curl https://hostiguard.com/api/v1/orders/158 -H "Authorization: Bearer hg_live_…"
Réponse
{
"success": true,
"data": {
"order_id": 158,
"status": "complete",
"total": 89.99,
"currency": "USD",
"created_at": "2026-09-22 04:00:19",
"items": [
{
"item_id": 211,
"service_type": "dedicated",
"service_id": 1,
"price": 89.99,
"setup_fee": 0,
"next_due": "2026-10-21",
"status": 1
}
],
"invoices": [
{
"invoice_id": 181,
"number": "INV-2026-0072",
"total": 89.99,
"status": 1,
"date_paid": "2026-09-22 04:00:19"
}
]
}
}
/clients
lockPortée: clients
Sous-clients du compte avec le nombre de services attribués à chacun.
Exemple
curl https://hostiguard.com/api/v1/clients -H "Authorization: Bearer hg_live_…"
Réponse
{
"success": true,
"data": {
"count": 1,
"items": [
{
"client_id": 12,
"account_id": 201,
"full_name": "Mohammed Al-Rashid",
"company": "Rashid Trading LLC",
"email": "mohammed@example.com",
"phone": "+971500000001",
"status": "active",
"services": 3,
"created_at": "2026-09-22 03:58:15"
}
]
}
}
/clients
lockPortée: clients
Crée un sous-client avec son propre accès HostiGuard ; le mot de passe est envoyé à l’adresse indiquée. Utilisez son client_id lors des commandes.
Paramètres
| full_name | obligatoire | nom de la personne ou de l’entreprise |
| company | facultatif | nom de l’entreprise |
| obligatoire | adresse e-mail | |
| phone | facultatif | numéro de téléphone |
| notes | facultatif | notes internes |
Exemple
curl -X POST https://hostiguard.com/api/v1/clients \
-H "Authorization: Bearer hg_live_…" \
-H "Content-Type: application/json" \
-d '{"full_name":"Ibrahim Saleh","email":"ibrahim@example.com"}'
Réponse
{
"success": true,
"data": {
"client_id": 13,
"account_id": 205,
"full_name": "Ibrahim Saleh",
"company": null,
"email": "ibrahim@example.com",
"phone": null,
"status": "active",
"services": 0,
"created_at": "2026-09-22 04:00:02"
}
}
Envoyez des SMS par programme depuis un service SMS actif. Chaque message est déduit du volume du forfait lié à la clé.
Créez une clé dans Tableau de bord → SMS → Clés API et envoyez-la dans l'en-tête Authorization. Si la clé a un secret, envoyez-le dans le corps sous api_secret.
Authorization: Bearer sk_your_sms_key
https://hostiguard.com/api/sms/send
Paramètres
| to | obligatoire | Numéro du destinataire au format international (+1234567890). |
| message | obligatoire | Texte du message. |
| api_secret | facultatif | Requis uniquement si la clé possède un secret. |
Exemple
curl -X POST https://hostiguard.com/api/sms/send \
-H "Authorization: Bearer sk_your_sms_key" \
-H "Content-Type: application/json" \
-d '{"to":"+1234567890","message":"Hello from HostiGuard!","api_secret":"your_secret"}'
Réponse
{
"success": true,
"message": "SMS sent successfully.",
"data": {
"to": "+1234567890",
"message_id": "msg_8f7b0d2c91aa41c3"
}
}
Codes d'erreur
| 401 | Clé absente / invalide, ou api_secret incorrect |
| 400 | Champ "to" ou "message" manquant |
| 402 | Plus de volume SMS dans le forfait |
| 403 | Service SMS inactif ou suspendu |
Les clés et secrets se gèrent dans Dashboard → SMS
Voici les URL sur lesquelles HostiGuard écoute. Collez la bonne dans le tableau de bord de chaque passerelle pour que les paiements soient confirmés et les factures marquées payées sans intervention. Les signatures sont vérifiées avec le secret enregistré dans Admin → Paramètres → Paiements & API.
| Passerelle | URL du webhook | Événements traités |
|---|---|---|
| Stripe | POST https://hostiguard.com/api/webhooks/stripe |
checkout.session.completed · payment_intent.payment_failed · charge.refunded |
| PayPal | POST https://hostiguard.com/api/webhooks/paypal |
CHECKOUT.ORDER.APPROVED · PAYMENT.CAPTURE.COMPLETED · PAYMENT.CAPTURE.DENIED / DECLINED |
| Paddle | POST https://hostiguard.com/api/webhooks/paddle |
transaction.completed · transaction.paid |
| Airwallex | POST https://hostiguard.com/api/webhooks/airwallex |
payment_intent.succeeded · payment_intent.requires_capture · payment_intent.captured |
| Amazon Pay | POST https://hostiguard.com/api/webhooks/amazonpay |
Checkout session / charge notifications (checkoutSessionId or chargeId) |
| Network (N-Genius) | POST / GET https://hostiguard.com/api/webhooks/network |
TRANSACTION_STATE_CHANGED (state CAPTURED / AUTHORISED) |
| XaPay (crypto) | POST https://hostiguard.com/api/webhooks/xapay |
status "paid" / event "invoice.paid" |
Un webhook reçoit HTTP 200 même quand l'événement est ignoré ; une signature invalide renvoie 400/401 et est journalisée.
Deux modules dans une archive : un module registrar de domaines et un module de provisioning de serveurs dédiés. Les deux dialoguent avec l'API v1 via votre clé Business ou Revendeur ; les commandes sont payées depuis votre portefeuille HostiGuard au tarif revendeur.
Ce qu'il fait
Installation
hostiguard-whmcs-modules-1.0.0.zip · 15 KB · 6 fichiers · v1.0.0
Vendez des domaines et serveurs dédiés HostiGuard depuis votre propre site WordPress. Fonctionne sans WooCommerce (le visiteur termine la commande chez HostiGuard) ou avec WooCommerce (vous encaissez dans votre boutique, l'extension provisionne chez HostiGuard après paiement).
Ce qu'il fait
Installation
Shortcodes
[hostiguard_domain_search] | Recherche de domaine avec prix en direct. Attributs : tlds="com,net,org", placeholder, button. |
[hostiguard_domain_pricing] | Grille tarifaire par extension. Attributs : tlds pour limiter, columns="registration,renewal,transfer". |
[hostiguard_server_plans] | Cartes des offres de serveurs dédiés. Attributs : cycle, button, link. |
Les deux paquets sont construits à partir du code exact livré avec cette version de HostiGuard : ils correspondent toujours à l'API documentée ci-dessus.
hostiguard-whmcs-modules-1.0.0.zip · 15 KB · 6 fichiers · v1.0.0
hostiguard-connector-1.0.0.zip · 20 KB · 9 fichiers · v1.0.0
Propulsez votre activité avec un hébergement conçu pour grandir.