---
title: Revendeurs (marque blanche)
description: Permettez à vos partenaires de vendre votre cloud sous leur marque et domaine — revendeur, domaines, DNS, prix de gros, valeurs par défaut et licences.
url: https://nexcmp.com/fr/docs/customers/resellers/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# Revendeurs (marque blanche) {#resellers-white-label}

> **Où trouver dans l'admin :** Customers › Resellers › List (`/resellers`), Domains & SSL (`/resellers/domains`), Permissions & wholesale (`/resellers/entitlements`), Defaults (`/resellers/settings`). Emplacements de revendeur : System › Admin › License & updates (`/license`).

## Description {#what-it-does}

Un **revendeur** dispose d'une copie personnalisée du portail client sur **son propre domaine**, avec ses propres clients, son propre portefeuille, ses prix et (en option) ses propres canaux de paiement. Il achète chez vous au tarif de gros et vend à ses propres prix. Ses clients ne voient jamais votre marque, et le domaine du revendeur ne peut en aucun cas ouvrir votre console d'administration. Le revendeur gère son activité depuis la **console partenaire** à l'adresse `https://partner.<your-domain>`.

## Prérequis {#requirements}

| Élément | Prérequis |
|---|---|
| Licence | Un **emplacement de domaine revendeur** sur votre licence pour chaque domaine de revendeur personnalisé. La page de licence indique `used/max` emplacements et propose un lien pour en acheter d'autres. Sans emplacement disponible, l'ajout d'un domaine échoue avec l'erreur "Out of license reseller domain slots". |
| DNS | Chaque domaine de revendeur doit pointer vers votre serveur (voir ci-dessous). |
| Serveur Web et TLS | Le nom d'hôte doit atteindre le panneau NexCMP via votre proxy inverse avec un certificat valide pour ce nom. |
| E-mail | SMTP configuré pour les e-mails d'invitation et de notification. |
| Interrupteur principal | **Reseller settings › General › `rs_enabled`** est activé par défaut. |

## Préparer l'infrastructure {#prepare-the-infrastructure}

1. Définissez l'adresse publique du serveur : son adresse IPv4 et, si vous préférez des CNAME, un nom d'hôte qui y pointe (par exemple `sites.cloud.example.com`).
2. Ouvrez **Customers › Resellers › Defaults** (`/resellers/settings`), groupe **Domains & SSL**, et configurez :

   | Clé | Description |
   |---|---|
   | `rs_server_ipv4` | L'IPv4 publique vers laquelle les enregistrements A des revendeurs doivent pointer. |
   | `rs_cname_target` | Le nom d'hôte vers lequel les enregistrements CNAME des revendeurs doivent pointer. |
   | `rs_master_hosts` | Noms d'hôte appartenant à votre propre site principal (ils ne peuvent pas être attribués à des revendeurs). |
   | `rs_platform_domain` | Domaine parent optionnel pour les **sous-domaines de plateforme** (par exemple `partners.cloud.example.com` pour donner aux revendeurs `acme.partners.cloud.example.com`). Laisser vide désactive l'option. |
   | `rs_sites_stale_minutes` | Minutes avant qu'un service de certificats ne soit considéré comme obsolète (par défaut 15). |
   | `rs_ssl_fail_hours` | Heures de tentatives infructueuses avant qu'une erreur ne soit levée (par défaut 48). |

   ::: warning Vérifiez ces valeurs avant d'envoyer les instructions
   `rs_server_ipv4`, `rs_cname_target` et `rs_master_hosts` contiennent des valeurs d'exemple. Remplacez-les par votre propre serveur et domaine **avant** de transmettre les instructions DNS à un revendeur, sous peine de pointer vers un mauvais emplacement à l'écran.
   :::

3. Cliquez sur **Save** (un motif est requis).
4. Assurez-vous que votre proxy inverse transfère les noms d'hôte des revendeurs vers le panneau NexCMP et sert un certificat pour chacun d'eux. L'installateur configure nginx et Let's Encrypt uniquement pour le domaine principal (ainsi que les noms `admin.` et `partner.` qui se résolvent). Si vous utilisez Cloudflare, activez le mode proxy sur le nom d'hôte et utilisez le mode Full SSL.

## Connecter dans NexCMP {#connect-in-nexcmp}

### Créer le revendeur {#create-the-reseller}

1. Ouvrez **Customers › Resellers › List** et cliquez sur **New reseller**. L'assistant comporte 8 étapes et effectue le provisionnement complet à la fin ; chaque étape peut être relancée en toute sécurité.

   | Étape | Renseigner |
   |---|---|
   | **Revendeur** | Nom légal ou commercial, **slug** (4 à 31 caractères a–z, 0–9 ou `-`, commençant par une lettre ; il sert également de préfixe de facture), nom du contact, e-mail et téléphone, langue par défaut, coordonnées de facturation du revendeur (en tant qu'acheteur de recharges de portefeuille). |
   | **Compte de console** | Nom d'utilisateur, e-mail du compte, nom complet ; **Send a one-time invite link by e-mail** (valable 72 heures, recommandé) ou afficher un mot de passe temporaire unique. |
   | **Marque** | Nom de marque, nom court, slogans, couleurs principales, e-mail et téléphone du support, nom du vendeur figurant sur les factures clients, logos (fonds clair et sombre), icône carrée et favicon : PNG, JPEG, WEBP ou ICO jusqu'à 256 Ko, **pas de SVG**. |
   | **Domaines** | Le ou les domaines client avec **aussi www**, lequel est prioritaire, un **domaine de test** (sslip.io) et l'option **dry-run**, ou un sous-domaine de la plateforme. L'assistant indique **DNS OK / DNS not ready** et les enregistrements à créer. |
   | **Tarifs et portefeuille** | Remise de gros (%), plancher de vente (% du tarif public), majoration par défaut (%), limite de crédit, solde initial, alerte de solde bas, limites sur les clients, les VM et les domaines, fonctionnalités du site (inscription client, protection DDoS, tickets de support, forfait personnalisé, redimensionnement, Auto Scaling). |
   | **Canaux de paiement** | Qui perçoit les paiements des clients (voir ci-dessous) et optionnellement son propre PayPal et son propre virement bancaire vietnamien. |
   | **Email** | Nom de l'expéditeur et Reply-To. L'adresse From reste celle de la plateforme tant que DKIM n'est pas configuré pour le domaine du revendeur. |
   | **Révision** | Vérifiez le tout et cliquez sur **Provision everything**, ou **Save draft (provision later)**. |

2. Le provisionnement se poursuit en arrière-plan (toutes les 30 secondes). Ouvrez le revendeur pour suivre la progression et utilisez **Continue provisioning** ou **Retry** si une étape a échoué.

![Assistant de création d'un revendeur à la première étape avec des exemples de valeurs](https://nexcmp.com/fr/docs/images/customers/resellers-01-wizard.webp)

### Pointer les DNS (le revendeur s'en charge) {#point-dns-the-reseller-does-this}

Le revendeur (ou vous-même) crée les enregistrements affichés sous l'onglet **Domains & SSL** :

| Enregistrement | Name | Valeur |
|---|---|---|
| TXT (propriété, première fois seulement) | `_site-verify.<domain>` | `sv=<token>` affiché à l'écran |
| A (domaine apex tel que `shop.example.net`) | le domaine | votre `rs_server_ipv4` |
| CNAME (sous-domaine tel que `cloud.example.net`) | le domaine | votre `rs_cname_target` (ou un enregistrement A vers `rs_server_ipv4`) |
| CNAME (optionnel) | `www.<domain>` | votre `rs_cname_target` |

Également :

- Supprimez tout enregistrement **AAAA** (IPv6) sauf si votre serveur répond sur cette adresse IPv6.
- Désactivez le proxy CDN (**off**, nuage gris) pendant la vérification du domaine.
- Si le domaine possède des enregistrements **CAA**, autorisez `letsencrypt.org`.

Le jeton de l'enregistrement TXT est unique pour chaque domaine ; copiez-le depuis l'écran. Le système revérifie les DNS toutes les 5 minutes pendant les premières 48 heures, puis toutes les heures, et libère un nom dont l'enregistrement TXT est toujours absent après 72 heures.

### États des domaines {#domain-states}

Sur **Customers › Resellers › Domains & SSL** (tous les revendeurs) et dans l'onglet **Domains & SSL** d'un revendeur :

| État | Description |
|---|---|
| `pending_verify` | En attente de l'enregistrement TXT. |
| `pending_dns` / `verifying` | En attente du pointage A ou CNAME vers vous. |
| `issuing` | Certificat en cours d'émission. |
| `active` | Diffusion du site du revendeur. |
| `cert_expiring` | Certificat proche de l'expiration ; renouvellement attendu. |
| `dns_lost` | Les DNS ne pointent plus vers vous ; le domaine est supprimé au bout de 30 jours. |
| `error` | Consultez le code d'erreur ; **Retry** après correction. |
| `removing` / `removed` | En cours de suppression ; l'emplacement de licence est récupéré. |

Actions sur les lignes : **Check now**, **Retry**, **Make primary**, **Test mode** (pour un domaine de test), **Remove**.


## Permissions et gros {#permissions-wholesale}

**Customers › Resellers › Permissions & wholesale** (`/resellers/entitlements`) est une matrice : une ligne par revendeur, avec la **remise** et la **marge** en gros, et un interrupteur par service (par exemple DDoS Shield et VPN). Un interrupteur est modifiable lorsque la fonction globale de la plateforme est activée ; sinon, la cellule est en lecture seule et renvoie vers le paramètre. Le sous-onglet **Top-up codes** définit le nombre de codes que chaque revendeur peut émettre par mois (voir [Promotions](https://nexcmp.com/fr/docs/billing/promotions/)).

Règles de tarification :

- Prix de gros = prix public x (1 - remise), et peut être remplacé par plan et par cycle de facturation dans l'onglet **Wholesale pricing** du revendeur.
- Le revendeur définit les prix au détail et ne peut pas descendre sous le **plancher** (pourcentage du prix public).
- Le **portefeuille** du revendeur paie le prix de gros lorsque ses clients achètent. Le portefeuille dispose d'une limite de crédit, d'un délai de grâce et d'un plafond de découvert (voir Defaults).

## Defaults {#defaults}

**Customers › Resellers › Defaults** (`/resellers/settings`) contient les clés `rs_*` s'appliquant à chaque revendeur. Chaque modification demande une raison et est auditée.

| Groupe | Clé | Valeur par défaut | Description |
|---|---|---|---|
| Général | `rs_enabled` | 1 | Programme de revendeurs activé. |
| | `rs_platform_collect_enabled` | 0 | Permet à la plateforme de collecter les paiements des clients pour le compte des revendeurs. **Activer uniquement après un examen juridique.** |
| | `rs_totp_required` | 1 | Les comptes de la console revendeur doivent utiliser l'authentification multifacteur. |
| | `rs_agreement_version` | 1 | Version de l'accord de revendeur qu'ils doivent accepter. |
| Tarification par défaut | `rs_default_discount_bp` | 2000 (20 %) | Remise en gros pour les nouveaux revendeurs (points de base, de 0 à 9000). |
| | `rs_default_markup_bp` | 2500 (25 %) | Marge par défaut (de 0 à 50000). |
| | `rs_default_floor_bp` | 9000 (90 %) | Plancher de détail (de 0 à 20000). |
| | `rs_default_max_domains` | 3 | Domaines autorisés par revendeur. |
| Portefeuille et versements | `rs_grace_hours` | 72 | Délai de grâce avant que les services des clients ne soient affectés par un portefeuille de revendeur vide. |
| | `rs_overdraft_cap_cents` | 5000 | Découvert autorisé sur le portefeuille. |
| | `rs_retention_days` | 14 | Jours avant la destruction des VM d'un revendeur fermé. |
| | `rs_payout_hold_days` | 30 | Jours pendant lesquels une commission est retenue avant de pouvoir être retirée. |
| | `rs_payout_min_cents` | 5000 | Retrait minimum. |
| | `rs_topup_min_cents` | 2000 | Recharge de portefeuille minimale par un revendeur. |
| Paiements et e-mails | `rs_webhook_base` | vide | URL de base publique pour les webhooks de la passerelle revendeur (vide = utiliser l'URL du site). |
| | `rs_mail_from` | vide | Adresse d'expéditeur pour les e-mails des revendeurs. |
| | `rs_invoice_show_processor` | 1 | Afficher le processeur de paiement sur les factures. |
| | `rs_gw_stripe_enabled`, `rs_gw_usdt_enabled` | 1 | Indique si les revendeurs peuvent configurer leur propre Stripe ou USDT. |

## Qui collecte les paiements des clients {#who-collects-customer-payments}

| Mode | Description |
|---|---|
| **Le revendeur collecte (canaux propres)** — par défaut | Le revendeur connecte son propre compte Stripe, PayPal, USDT ou bancaire. Ses webhooks sont `https://<reseller-domain>/v1/billing/<gateway>/webhook/r/<id>`. Les cartes enregistrées et l'[auto top-up](https://nexcmp.com/fr/docs/billing/auto-top-up/) ne sont pas disponibles pour ces sites. |
| **La plateforme collecte** | Vos canaux sont affichés sur le site du revendeur. Verrouillé jusqu'à `rs_platform_collect_enabled = 1`. |
| **Mixte** | Une combinaison choisie par canal. |

## Ce que voit le revendeur {#what-the-reseller-sees}

La console partenaire sur `https://partner.<your-domain>` propose Overview, Reports, Customers, VMs, Tickets, Orders, Payments, Prices, Brand, Landing & legal, Domains & SSL, Email, Wallet et Payment channels. Les comptes de la console ont le rôle *reseller* (complet) ou *staff* (lecture seule). Pour la consulter vous-même, ouvrez le revendeur et cliquez sur **Sign in to partner console** : vous y entrez pour 60 minutes, chaque écriture est enregistrée avec votre nom dans le journal administrateur et le journal revendeur, et les opérations financières nécessitent une seconde confirmation.

## Vérification {#verify}

1. Après le provisionnement, la ligne du revendeur affiche *active* et une colonne **Provisioning** verte.
2. Ouvrez le domaine du revendeur dans un navigateur : sa propre page de connexion apparaît avec sa marque. `https://<reseller-domain>/admin` répond par 404.
3. Inscrivez un client test sur ce domaine : le client apparaît sous **Customers › List** avec le revendeur dans la colonne **Site**.
4. La page de licence indique un emplacement utilisé de plus.

## Limites et notes {#limits-notes}

- Un emplacement de licence par domaine personnalisé ou test ; les sous-domaines de la plateforme n'utilisent pas d'emplacement.
- La suspension d'un revendeur conserve les données ; **Close reseller** restitue tous les emplacements de domaine, et la destruction de VM n'est autorisée qu'après la période de rétention.
- Les clients des revendeurs apparaissent dans votre liste de clients et peuvent être usurpés comme les autres (le lien s'ouvre sur le domaine du revendeur).
- Les revendeurs ne peuvent pas voir ni modifier vos canaux de paiement, quotas par défaut ou autres revendeurs.

## Dépannage {#troubleshooting}

| Symptôme | Cause | Solution |
|---|---|---|
| "Nombre de domaines revendeurs sous licence épuisé" | All slots used | Libérez un emplacement (supprimez un domaine) ou achetez-en d'autres sur la page de licence. |
| Domain stuck in `pending_verify` | TXT record missing | Créez l'enregistrement TXT tel qu'affiché ; utilisez **Check now**. |
| Domain stuck in `pending_dns` | A/CNAME ne pointant pas vers vous, enregistrement AAAA ou proxy CDN activé | Corrigez le DNS, désactivez le proxy, puis **Check now**. |
| `error` state | Consultez le code sur la ligne (par exemple CAA bloquant Let's Encrypt, limite de taux) | Corrigez et cliquez sur **Retry**. |
| Le navigateur indique que l'hôte est inconnu ou "421" | Le nom d'hôte ne figure pas sur la licence ou n'est pas routé vers le panneau | Ajoutez le domaine via le revendeur (consomme un emplacement) et corrigez le proxy inverse. |
| Les instructions indiquent une IP ou un hôte erroné | `rs_server_ipv4` / `rs_cname_target` contiennent toujours les valeurs d'exemple | Set them in Defaults. |
| Le revendeur ne peut pas activer la collecte de la plateforme | Locked | Définissez `rs_platform_collect_enabled` après examen juridique. |


