---
title: Reseller (white-label)
description: Cho phép đối tác bán cloud của bạn dưới thương hiệu riêng — tạo reseller, cấu hình tên miền, DNS, giá sỉ, giá trị mặc định và slot license.
url: https://nexcmp.com/vi/docs/customers/resellers/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# Reseller (white-label) {#resellers-white-label}

> **Vị trí trong trang quản trị:** Customers › Resellers › List (`/resellers`), Domains & SSL (`/resellers/domains`), Permissions & wholesale (`/resellers/entitlements`), Defaults (`/resellers/settings`). Slot reseller: System › Admin › License & updates (`/license`).

## Chức năng {#what-it-does}

**Reseller** nhận được một bản portal khách hàng mang thương hiệu riêng trên **tên miền của họ**, với khách hàng, ví tiền, biểu giá và các kênh thanh toán riêng (tùy chọn). Họ mua dịch vụ từ bạn theo giá sỉ và bán lại theo giá của họ. Khách hàng của họ không bao giờ thấy thương hiệu của bạn, và tên miền reseller không bao giờ có thể mở console quản trị của bạn. Reseller vận hành hoạt động kinh doanh từ **partner console** tại `https://partner.<your-domain>`.

## Yêu cầu {#requirements}

| Hạng mục | Yêu cầu |
|---|---|
| License | Một **slot reseller domain** trên license của bạn cho mỗi tên miền reseller tùy chỉnh. Trang license hiển thị `used/max` slot và liên kết để mua thêm. Nếu không còn slot trống, việc thêm tên miền sẽ thất bại với lỗi "Out of license reseller domain slots". |
| DNS | Mỗi tên miền reseller phải được trỏ về máy chủ của bạn (xem bên dưới). |
| Web server và TLS | Hostname phải trỏ tới panel NexCMP qua reverse proxy của bạn với chứng chỉ hợp lệ cho tên đó. |
| E-mail | SMTP đã được cấu hình cho email mời và email thông báo. |
| Công tắc chính | **Reseller settings › General › `rs_enabled`** được bật theo mặc định. |

## Chuẩn bị hạ tầng {#prepare-the-infrastructure}

1. Xác định địa chỉ công khai của máy chủ: địa chỉ IPv4 và hostname trỏ về địa chỉ đó nếu bạn muốn dùng CNAME (ví dụ: `sites.cloud.example.com`).
2. Mở **Customers › Resellers › Defaults** (`/resellers/settings`), nhóm **Domains & SSL** và thiết lập:

   | Key | Ý nghĩa |
   |---|---|
   | `rs_server_ipv4` | IPv4 công khai mà bản ghi A của reseller phải trỏ tới |
   | `rs_cname_target` | Hostname mà bản ghi CNAME của reseller phải trỏ tới |
   | `rs_master_hosts` | Các hostname thuộc trang web chính của bạn (không thể cấp cho reseller) |
   | `rs_platform_domain` | Tên miền cha tùy chọn cho **platform sub-domain** (ví dụ: `partners.cloud.example.com` để cấp cho reseller `acme.partners.cloud.example.com`). Để trống sẽ vô hiệu hóa tùy chọn này |
   | `rs_sites_stale_minutes` | Số phút trước khi dịch vụ chứng chỉ được coi là quá hạn (mặc định 15) |
   | `rs_ssl_fail_hours` | Số giờ thử lại thất bại trước khi báo lỗi (mặc định 48) |

   ::: warning Kiểm tra các giá trị này trước khi gửi hướng dẫn
   `rs_server_ipv4`, `rs_cname_target` và `rs_master_hosts` đi kèm các giá trị mẫu. Hãy thay thế chúng bằng máy chủ và tên miền của bạn **trước khi** gửi hướng dẫn DNS cho reseller, nếu không hướng dẫn trên màn hình sẽ trỏ sai địa chỉ.
   :::

3. Nhấp **Save** (hệ thống sẽ yêu cầu nhập lý do).
4. Đảm bảo reverse proxy của bạn chuyển tiếp hostname của reseller tới panel NexCMP và cung cấp chứng chỉ cho từng hostname đó. Bộ cài đặt chỉ cấu hình nginx và Let's Encrypt cho tên miền chính (và các tên `admin.` cùng `partner.` phân giải được). Nếu bạn dùng Cloudflare, hãy bật proxy cho hostname và sử dụng chế độ Full SSL.

## Kết nối trong NexCMP {#connect-in-nexcmp}

### Tạo reseller {#create-the-reseller}

1. Mở **Customers › Resellers › List** và nhấp **New reseller**. Trình hướng dẫn có 8 bước và sẽ cấp phát mọi thứ ở bước cuối; bạn có thể thử lại từng bước một cách an toàn.

   | Bước | Thông tin cần điền |
   |---|---|
   | **Reseller** | Tên pháp lý hoặc tên thương mại, **slug** (4–31 ký tự a–z, 0–9 hoặc `-`, bắt đầu bằng chữ cái; đây cũng là tiền tố hóa đơn), tên liên hệ, email và số điện thoại, ngôn ngữ mặc định, thông tin thanh toán của reseller (với tư cách là bên nạp tiền vào ví). |
   | **Console account** | Tên người dùng, email tài khoản, họ và tên; **Send a one-time invite link by e-mail** (hiệu lực 72 giờ, khuyến nghị) hoặc hiển thị mật khẩu tạm thời một lần. |
   | **Brand** | Tên thương hiệu, tên viết tắt, tagline, màu sắc chủ đạo, email và số điện thoại hỗ trợ, tên người bán in trên hóa đơn khách hàng, logo (nền sáng và tối), square mark và favicon: PNG, JPEG, WEBP hoặc ICO tối đa 256 KB, **không dùng SVG**. |
   | **Domains** | (Các) tên miền khách hàng kèm **also www**, tên miền chính, **test domain** (sslip.io) và tùy chọn **dry-run**, hoặc tên miền con của nền tảng. Trình hướng dẫn hiển thị **DNS OK / DNS not ready** và các bản ghi cần tạo. |
   | **Pricing & wallet** | Chiết khấu sỉ (%), giá sàn bán lẻ (% giá niêm yết), markup mặc định (%), hạn mức tín dụng, số dư ban đầu, cảnh báo số dư thấp, giới hạn khách hàng, VM và tên miền, các tính năng trang web (đăng ký khách hàng, chống DDoS, ticket hỗ trợ, gói tùy chỉnh, resize, Auto Scaling). |
   | **Payment channels** | Bên thu các khoản thanh toán của khách hàng (xem bên dưới) cùng tùy chọn PayPal riêng và chuyển khoản ngân hàng Việt Nam riêng. |
   | **Email** | Tên người gửi và Reply-To. Địa chỉ From vẫn là địa chỉ của nền tảng cho đến khi DKIM được thiết lập cho tên miền đại lý. |
   | **Review** | Kiểm tra lại mọi thứ và nhấp vào **Provision everything**, hoặc **Save draft (provision later)**. |

2. Quá trình khởi tạo tiếp tục chạy nền (mỗi 30 giây). Mở đại lý để theo dõi tiến độ và sử dụng **Continue provisioning** hoặc **Retry** nếu có bước thất bại.

![Trình hướng dẫn đại lý mới ở bước đầu tiên với các giá trị mẫu](https://nexcmp.com/vi/docs/images/customers/resellers-01-wizard.webp)

### Trỏ DNS (đại lý thực hiện) {#point-dns-the-reseller-does-this}

Đại lý (hoặc bạn) tạo các bản ghi hiển thị trên tab **Domains & SSL**:

| Bản ghi | Name | Giá trị |
|---|---|---|
| TXT (quyền sở hữu, chỉ lần đầu) | `_site-verify.<domain>` | `sv=<token>` hiển thị trên màn hình |
| A (apex domain như `shop.example.net`) | tên miền | `rs_server_ipv4` của bạn |
| CNAME (tên miền con như `cloud.example.net`) | tên miền | `rs_cname_target` của bạn (hoặc bản ghi A trỏ đến `rs_server_ipv4`) |
| CNAME (tùy chọn) | `www.<domain>` | `rs_cname_target` của bạn |

Ngoài ra:

- Xóa mọi bản ghi **AAAA** (IPv6) trừ khi máy chủ của bạn phản hồi trên địa chỉ IPv6 đó.
- Chuyển proxy CDN sang **off** (đám mây xám) trong khi tên miền đang được xác minh.
- Nếu tên miền có các bản ghi **CAA**, hãy cho phép `letsencrypt.org`.

Mã token trong bản ghi TXT là khác nhau đối với mỗi tên miền; hãy sao chép mã này từ màn hình. Hệ thống sẽ kiểm tra lại DNS mỗi 5 phút trong 48 giờ đầu tiên, sau đó kiểm tra hàng giờ và hủy bỏ tên miền nếu bản ghi TXT vẫn chưa có sau 72 giờ.

### Trạng thái tên miền {#domain-states}

Trên **Customers › Resellers › Domains & SSL** (tất cả đại lý) và trong tab **Domains & SSL** của đại lý:

| Trạng thái | Ý nghĩa |
|---|---|
| `pending_verify` | Đang chờ bản ghi TXT. |
| `pending_dns` / `verifying` | Đang chờ bản ghi A hoặc CNAME trỏ về bạn. |
| `issuing` | Chứng chỉ đang được cấp phát. |
| `active` | Đang phục vụ trang web của đại lý. |
| `cert_expiring` | Chứng chỉ sắp hết hạn; dự kiến sẽ gia hạn. |
| `dns_lost` | DNS đã ngừng trỏ về bạn; tên miền sẽ bị xóa sau 30 ngày. |
| `error` | Xem mã lỗi; chọn **Retry** sau khi đã khắc phục. |
| `removing` / `removed` | Đang được thu hồi; slot giấy phép được hoàn trả. |

Các thao tác trên hàng: **Check now**, **Retry**, **Make primary**, **Test mode** (cho tên miền thử nghiệm), **Remove**.


## Quyền hạn & giá bán buôn {#permissions-wholesale}

**Customers › Resellers › Permissions & wholesale** (`/resellers/entitlements`) là một ma trận: mỗi reseller một hàng, gồm mức **discount** và **markup** bán buôn cùng một công tắc cho từng dịch vụ (ví dụ DDoS Shield và VPN). Công tắc có thể chỉnh sửa khi tính năng toàn nền tảng đang bật; nếu không, ô sẽ ở chế độ chỉ đọc và liên kết tới phần cài đặt. Tab phụ **Top-up codes** quy định số mã nạp tiền mỗi reseller được phép phát hành hàng tháng (xem [Khuyến mãi](https://nexcmp.com/vi/docs/billing/promotions/)).

Quy tắc định giá:

- Giá bán buôn = giá niêm yết x (1 - discount), và có thể ghi đè theo từng gói dịch vụ cũng như chu kỳ thanh toán trong tab **Wholesale pricing** của reseller.
- Reseller tự đặt giá bán lẻ và không được thấp hơn mức sàn **floor** (tỷ lệ phần trăm so với giá niêm yết).
- **Wallet** của reseller sẽ thanh toán theo giá bán buôn khi khách hàng của họ mua dịch vụ. Ví này có hạn mức tín dụng, thời gian ân hạn và mức trần thấu chi (xem Defaults).

## Defaults {#defaults}

**Customers › Resellers › Defaults** (`/resellers/settings`) là các khóa `rs_*` áp dụng cho mọi reseller. Mỗi thay đổi đều yêu cầu nhập lý do và được ghi nhận kiểm toán.

| Nhóm | Key | Mặc định | Ý nghĩa |
|---|---|---|---|
| General | `rs_enabled` | 1 | Bật chương trình reseller. |
| | `rs_platform_collect_enabled` | 0 | Cho phép nền tảng thu tiền thanh toán từ khách hàng thay cho reseller. **Chỉ bật sau khi đã xem xét về mặt pháp lý.** |
| | `rs_totp_required` | 1 | Tài khoản console của reseller bắt buộc phải sử dụng xác thực hai yếu tố. |
| | `rs_agreement_version` | 1 | Phiên bản thỏa thuận reseller mà họ bắt buộc phải chấp nhận. |
| Định giá mặc định | `rs_default_discount_bp` | 2000 (20 %) | Chiết khấu bán buôn cho reseller mới (điểm cơ bản, từ 0 đến 9000). |
| | `rs_default_markup_bp` | 2500 (25 %) | Mức markup mặc định (0 đến 50000). |
| | `rs_default_floor_bp` | 9000 (90 %) | Mức sàn bán lẻ (0 đến 20000). |
| | `rs_default_max_domains` | 3 | Số tên miền được phép cho mỗi reseller. |
| Ví và chi trả | `rs_grace_hours` | 72 | Thời gian ân hạn trước khi dịch vụ của khách hàng bị ảnh hưởng do ví reseller hết tiền. |
| | `rs_overdraft_cap_cents` | 5000 | Mức thấu chi được phép trên ví. |
| | `rs_retention_days` | 14 | Số ngày trước khi các VM của một reseller đã đóng bị hủy. |
| | `rs_payout_hold_days` | 30 | Số ngày hoa hồng bị giữ trước khi có thể rút. |
| | `rs_payout_min_cents` | 5000 | Số tiền rút tối thiểu. |
| | `rs_topup_min_cents` | 2000 | Mức nạp ví tối thiểu của reseller. |
| Thanh toán và thư | `rs_webhook_base` | để trống | URL gốc công khai cho webhook cổng thanh toán của reseller (để trống = dùng URL của trang). |
| | `rs_mail_from` | để trống | Địa chỉ người gửi (From) cho email của reseller. |
| | `rs_invoice_show_processor` | 1 | Hiển thị đơn vị xử lý thanh toán trên hóa đơn. |
| | `rs_gw_stripe_enabled`, `rs_gw_usdt_enabled` | 1 | Cho phép reseller tự cấu hình Stripe hoặc USDT của riêng họ hay không. |

## Bên thu tiền thanh toán của khách hàng {#who-collects-customer-payments}

| Chế độ | Ý nghĩa |
|---|---|
| **Reseller tự thu (kênh riêng)** — mặc định | Reseller kết nối tài khoản Stripe, PayPal, USDT hoặc tài khoản ngân hàng của riêng họ. Webhook của họ là `https://<reseller-domain>/v1/billing/<gateway>/webhook/r/<id>`. Tính năng lưu thẻ và [tự động nạp tiền](https://nexcmp.com/vi/docs/billing/auto-top-up/) không khả dụng cho các trang này. |
| **Nền tảng thu tiền** | Các kênh thanh toán của bạn sẽ hiển thị trên trang reseller. Bị khóa cho đến khi `rs_platform_collect_enabled = 1`. |
| **Kết hợp** | Kết hợp tùy chọn theo từng kênh. |

## Giao diện hiển thị cho reseller {#what-the-reseller-sees}

Partner console tại `https://partner.<your-domain>` bao gồm Overview, Reports, Customers, VMs, Tickets, Orders, Payments, Prices, Brand, Landing & legal, Domains & SSL, Email, Wallet và Payment channels. Tài khoản console có vai trò *reseller* (toàn quyền) hoặc *staff* (chỉ đọc). Để tự kiểm tra, hãy mở reseller và nhấp **Sign in to partner console**: bạn sẽ đăng nhập trong 60 phút, mọi thao tác ghi đều được ghi nhận kèm tên bạn ở cả admin log lẫn reseller log, còn các thao tác liên quan đến tiền bạc cần xác nhận lần hai.

## Kiểm tra {#verify}

1. Sau khi cấp phát xong, hàng của reseller trong danh sách sẽ hiển thị *active* và cột **Provisioning** màu xanh lá.
2. Mở domain của reseller trên trình duyệt: trang đăng nhập riêng của reseller sẽ xuất hiện cùng thương hiệu của họ. `https://<reseller-domain>/admin` sẽ trả về mã 404.
3. Đăng ký một khách hàng thử nghiệm trên domain đó: khách hàng sẽ xuất hiện trong **Customers › List** với reseller tương ứng ở cột **Site**.
4. Trang license sẽ hiển thị thêm một slot đã sử dụng.

## Hạn mức & lưu ý {#limits-notes}

- Mỗi custom domain hoặc test domain tính một license slot; sub-domain của nền tảng không tính slot.
- Tạm ngừng reseller vẫn giữ lại dữ liệu; **Close reseller** sẽ thu hồi toàn bộ domain slot, và việc hủy VM chỉ được phép sau thời gian lưu giữ.
- Khách hàng của reseller xuất hiện trong danh sách khách hàng của bạn và có thể được mạo danh đăng nhập như mọi khách khác (liên kết sẽ mở trên domain của reseller).
- Reseller không thể xem hoặc chỉnh sửa payment channels, hạn mức mặc định hay các reseller khác của bạn.

## Xử lý sự cố {#troubleshooting}

| Hiện tượng | Nguyên nhân | Cách khắc phục |
|---|---|---|
| "Đã hết slot reseller domain theo license" | Đã dùng hết slot | Giải phóng một slot (xóa bớt domain) hoặc mua thêm trên trang license. |
| Domain bị kẹt ở `pending_verify` | Thiếu bản ghi TXT | Tạo bản ghi TXT chính xác như hướng dẫn; sau đó dùng **Check now**. |
| Domain bị kẹt ở `pending_dns` | Bản ghi A/CNAME chưa trỏ về bạn, có bản ghi AAAA, hoặc CDN proxy đang bật | Sửa lại DNS, tắt proxy, sau đó nhấn **Check now**. |
| Trạng thái `error` | Xem mã lỗi trên hàng (ví dụ: CAA chặn Let's Encrypt, vượt giới hạn rate limit) | Khắc phục lỗi rồi nhấp **Retry**. |
| Trình duyệt báo không tìm thấy host hoặc mã "421" | Host name chưa có trong license hoặc chưa được định tuyến đến panel | Thêm domain qua reseller (sẽ tốn một slot) và chỉnh lại reverse proxy. |
| Hướng dẫn hiển thị sai IP hoặc host | `rs_server_ipv4` / `rs_cname_target` vẫn đang mang giá trị mẫu | Cấu hình lại các giá trị này trong Defaults. |
| Reseller không thể bật thu hộ qua nền tảng | Bị khóa | Bật `rs_platform_collect_enabled` sau khi hoàn tất rà soát pháp lý. |


