Tự động hóa hosting với WHMCS: từ đơn hàng đến khoá tài khoản
Hướng dẫn tự động hóa hosting với WHMCS: tạo tài khoản khi khách thanh toán, tạm khoá khi quá hạn, đăng nhập một chạm, cấu hình module, cron và lỗi hay gặp.

Ý chính
- WHMCS tự động hoá cả vòng đời dịch vụ: tạo tài khoản khi thanh toán, tạm khoá khi quá hạn, mở khoá khi trả tiền, xoá sau thời hạn bạn đặt.
- Cron của WHMCS phải chạy ít nhất 5 phút một lần, nếu không mọi tự động hoá đều dừng.
- API token cho WHMCS nên chỉ có quyền cấp phát và chỉ nhận kết nối từ IP của server billing.
- Hãy đặt thời gian giữ dữ liệu sau khi xoá, để một lệnh xoá nhầm từ billing vẫn khôi phục được.
Tự động hóa hosting với WHMCS nghĩa là để hệ thống billing làm thay bạn mọi việc lặp lại: khách đặt hàng và thanh toán, WHMCS gọi control panel tạo tài khoản và website, gửi email chào mừng; hoá đơn quá hạn thì tài khoản bị tạm khoá, trả tiền thì mở lại; quá lâu không gia hạn thì tài khoản bị xoá. Để làm được, bạn cần ba thứ: một bản WHMCS có cron chạy đều, một control panel có module WHMCS, và một cổng thanh toán. Cấu hình đúng một lần, bạn không còn phải tạo tài khoản bằng tay lúc nửa đêm.
Bài viết đi qua kiến trúc tổng thể, chi phí, cài WHMCS, kết nối với control panel (ví dụ cụ thể với ZoPanel), cấu hình tạm khoá và xoá an toàn, cách kiểm thử cả vòng đời, và những lỗi khiến tự động hoá gây hại nhiều hơn có ích.
WHMCS tự động hóa được những gì?
WHMCS là phần mềm quản lý khách hàng, hoá đơn và dịch vụ phổ biến nhất trong ngành hosting. Với một server module (module kết nối control panel), mỗi sự kiện trong WHMCS kích một hành động trên server:
| Sự kiện trong WHMCS | Việc xảy ra trên control panel |
|---|---|
| Đơn hàng được thanh toán | Tạo tài khoản hosting và website đầu tiên |
| Hoá đơn quá hạn N ngày | Tạm khoá tài khoản, website hiện trang thông báo |
| Khách thanh toán hoá đơn quá hạn | Mở khoá tài khoản |
| Quá hạn M ngày | Xoá tài khoản |
| Khách nâng hoặc hạ gói | Đổi gói, áp giới hạn mới |
| Khách đặt lại mật khẩu | Đổi mật khẩu panel |
| Khách bấm nút trong khu vực khách hàng | Đăng nhập một chạm vào control panel |
| Cron hằng ngày | Cập nhật dung lượng đĩa và băng thông đã dùng |
Ngoài ra WHMCS lo phần không liên quan tới server: báo giá, hoá đơn định kỳ, nhắc gia hạn, ticket hỗ trợ, đăng ký tên miền qua module nhà đăng ký.
Chi phí WHMCS năm 2026
Tại thời điểm viết bài (tháng 10/2026), trang giá của WHMCS có hai loại:
- Tự cài (self-hosted): Plus tới 250 khách đang hoạt động (34,95 USD/tháng), Professional tới 500 khách (54,95 USD/tháng), Business từ 1.000 khách (84,95 USD/tháng cho mức 1.000).
- WHMCS Cloud do WHMCS vận hành: Starter tới 25 khách, Growth tới 100 khách, Expansion tới 300 khách, tính thêm phí theo khách vượt mức.
Giá tính theo số khách đang hoạt động, nên tăng dần theo quy mô. WHMCS thuộc tập đoàn WebPros, cùng chủ sở hữu với cPanel và Plesk. Giá thay đổi thường xuyên; hãy kiểm tra trực tiếp trên trang WHMCS. Nếu ngân sách hạn chế, các lựa chọn khác là Blesta, HostBill (trả phí) hoặc Paymenter (mã nguồn mở).
Kiến trúc nên dùng
Khách hàng ──> WHMCS (server billing riêng) ──HTTPS + API token──> Control panel trên server hosting
│
└── cổng thanh toán, email, cron 5 phút
Ba nguyên tắc:
- Đặt WHMCS trên server riêng, không chung với server hosting của khách. Một website khách bị hack không được chạm tới dữ liệu thanh toán và token quản trị của bạn.
- Mỗi server hosting một kết nối riêng trong WHMCS, gom vào nhóm server để WHMCS tự chọn server khi tạo tài khoản.
- Token có quyền tối thiểu. WHMCS chỉ cần tạo, khoá, đổi gói, xoá tài khoản; nó không cần truy cập file, terminal hay cài đặt server.
Bước 1: Cài WHMCS và cron
WHMCS là ứng dụng PHP được mã hoá bằng ionCube, nên server cần ionCube Loader đúng với phiên bản PHP, cùng MySQL hoặc MariaDB. Hãy xem trang yêu cầu hệ thống của phiên bản WHMCS bạn cài, vì phiên bản PHP được hỗ trợ thay đổi theo từng bản.
Việc dễ quên nhất là cron. Theo tài liệu Automation Settings của WHMCS, cron phải chạy ít nhất 5 phút một lần, nếu không việc tạo hoá đơn, tạm khoá, gửi email nhắc đều dừng. Ví dụ crontab của user chạy WHMCS:
*/5 * * * * php -q /var/www/whmcs/crons/cron.php
Thay đường dẫn bằng thư mục crons thực tế của bạn (WHMCS cho phép dời thư mục này ra ngoài thư mục web). Sau khi cài, làm theo hướng dẫn bảo mật sau cài đặt của WHMCS và bật xác thực hai lớp cho mọi tài khoản quản trị.
Bước 2: Chuẩn bị control panel
Phần này lấy ZoPanel làm ví dụ; các panel khác có bước tương tự. Tích hợp WHMCS của ZoPanel cần license Pro, vì API token thuộc gói Pro.
- Đặt tên miền và SSL cho panel trong Cài đặt → Chung → Tên miền & SSL cho panel, ví dụ
panel.congty.vn. WHMCS gọi API qua HTTPS nên panel cần chứng chỉ hợp lệ. - Tạo gói hosting trong Gói hosting: dung lượng, số website, database, hộp thư, CPU, RAM. Tên gói nên trùng tên sản phẩm bạn bán cho dễ đối chiếu.
- Tạo API token: Tài khoản của tôi → API token → Tạo token, đặt Quyền là Chỉ cấp phát hosting (WHMCS, CMS), điền IP server WHMCS vào Chỉ cho phép từ IP, xác nhận bằng mật khẩu và mã 2FA, rồi sao chép token
zpat_…. Token chỉ hiện một lần.
Token loại này chỉ gọi được API cấp phát: gói, tài khoản, đăng nhập một chạm và thống kê. Nó không đụng được file, terminal hay cài đặt server, nên kể cả khi server billing bị lộ, thiệt hại cũng bị khoanh lại.
Bước 3: Cài module và thêm server trong WHMCS
- Chép thư mục
modules/servers/zopaneltừ góizopanel-whmcs-module.zipvàomodules/servers/zopanelcủa WHMCS. Module hỗ trợ WHMCS 8.x và 9.x trên PHP 8.1 trở lên. - Vào System Settings → Servers → Add New Server:
| Trường | Giá trị |
|---|---|
| Module | ZoPanel |
| Hostname | panel.congty.vn |
| Port | 8888, tích Secure |
| Access Hash | token zpat_… |
| Username | để trống |
- Bấm Test Connection.
- Tạo sản phẩm trong System Settings → Products/Services. Ở tab Module Settings, chọn gói ZoPanel (danh sách tải từ server), phiên bản PHP cho website đầu tiên, bật Create website.
- Chọn Automatically setup the product as soon as the first payment is received.
Hướng dẫn đầy đủ, kể cả Blesta, HostBill và Paymenter, ở tài liệu WHMCS và module billing.
Bước 4: Tạm khoá và xoá, cấu hình sao cho an toàn
Vào System Settings → Automation Settings của WHMCS, phần Automatic Module Functions:
- Enable Suspension và Suspend Days: số ngày sau hạn thì tạm khoá. Nhiều nhà cung cấp chọn 3 đến 7 ngày.
- Enable Unsuspension: tự mở khoá khi khách thanh toán. Nên bật.
- Enable Termination và Termination Days: số ngày sau hạn thì xoá. Hãy để đủ dài (ví dụ 30 ngày), và chỉ bật sau khi đã thử cả vòng đời.
Lưu ý WHMCS tính số ngày từ Next Due Date của dịch vụ, không phải ngày đến hạn của hoá đơn.
Lớp bảo vệ thứ hai nằm ở control panel. Trong ZoPanel, khi một tài khoản bị xoá (kể cả qua WHMCS), dữ liệu không mất ngay mà được giữ trong khoảng thời gian đặt ở Cài đặt → Chung → Giữ dữ liệu tài khoản đã xoá (ngày), mặc định 7 ngày, tối đa 90. Khách trả tiền muộn một ngày sau khi bị xoá vẫn có thể được khôi phục.
Vì sao "thử lại an toàn" quan trọng?
Mạng chập chờn, WHMCS gửi lệnh tạo tài khoản, panel tạo xong nhưng câu trả lời không về kịp. WHMCS coi là lỗi và gửi lại. Với API thông thường, lần hai sẽ báo "username đã tồn tại", hoặc tệ hơn, tạo ra tài khoản thứ hai.
Module ZoPanel gửi header Idempotency-Key với mỗi lệnh tạo tài khoản, dựng từ ID dịch vụ và username. Nếu WHMCS lặp lại trong vòng 24 giờ, panel trả lại đúng câu trả lời lần đầu thay vì làm lại. Khi đánh giá bất kỳ panel nào, hãy hỏi câu này; chi tiết kỹ thuật có trong tài liệu API cấp phát.
Bước 5: Kiểm thử trọn vòng đời trước khi bán
Tạo một khách thử trong WHMCS và đi qua từng bước, kiểm tra kết quả trên panel sau mỗi bước:
- Đặt hàng, đánh dấu hoá đơn đã thanh toán. Tài khoản và website có xuất hiện không? Email chào mừng có đúng username, mật khẩu, địa chỉ panel không?
- Bấm Login to ZoPanel trong khu vực khách hàng. Đăng nhập một chạm có hoạt động không?
- Trỏ tên miền thử về server. SSL có được cấp tự động không?
- Đổi Next Due Date về quá khứ, chạy cron. Tài khoản có bị tạm khoá, website có hiện trang tạm khoá không?
- Thanh toán hoá đơn. Tài khoản có mở lại không?
- Nâng gói. Giới hạn mới có được áp dụng không?
- Xoá dịch vụ. Dữ liệu có còn trong thời gian giữ không?
- Kiểm tra System Logs → Module Log: mọi lệnh gọi API đều được ghi lại, mật khẩu và token đã được che.
Đại lý dùng WHMCS riêng
Nếu bạn bán reseller hosting, đại lý cũng muốn tự động hóa. Trong ZoPanel, đại lý tạo token cấp phát từ chính tài khoản của mình và kết nối WHMCS (hoặc Blesta, HostBill, Paymenter) của họ. Token đó chỉ thấy gói và khách của đại lý, và không vượt được giới hạn gói đại lý bạn đã bán. Xem tài liệu Đại lý và bài reseller hosting là gì.
Lỗi hay gặp khi tự động hóa hosting với WHMCS
- Cron không chạy. Không có lỗi nào hiện ra, chỉ là hoá đơn không được tạo và tài khoản quá hạn không bị khoá. Kiểm tra trang trạng thái tự động hoá trong WHMCS mỗi tuần.
- Xoá quá sớm. Termination Days quá ngắn biến một khách quên gia hạn thành một khách mất toàn bộ dữ liệu.
- Token toàn quyền. Dùng token quản trị đầy đủ cho billing là trao chìa khoá cả server cho một ứng dụng web khác.
- Không giới hạn IP cho token. Token bị lộ dùng được từ bất kỳ đâu.
- Không thử lại sau timeout. Hãy cố ý làm chậm kết nối khi thử nghiệm và xem panel có tạo trùng tài khoản không.
- Username không hợp lệ. Mỗi panel có quy tắc username riêng. ZoPanel chấp nhận 3 đến 16 ký tự chữ thường và số, bắt đầu bằng chữ; module tự chuyển tên WHMCS đề xuất, ví dụ
shop-demo.vnthànhshopdemovn, rồi lưu lại vào dịch vụ.
Kết luận
Tự động hóa hosting với WHMCS tiết kiệm thời gian mỗi ngày, nhưng giá trị thật nằm ở chỗ nó chạy đúng cả khi bạn ngủ: tạo tài khoản khi khách trả tiền, khoá khi quá hạn, không xoá nhầm ai. Hãy dành một buổi để thử trọn vòng đời trên server thử nghiệm trước khi mở bán.
ZoPanel có sẵn module cho WHMCS, Blesta, HostBill và Paymenter trong gói Pro, tính giá theo server, không giới hạn website. Xem bảng giá hoặc bắt đầu với gói Free để thử panel trước khi kết nối billing.
Câu hỏi thường gặp
WHMCS có miễn phí không?
Không. WHMCS bán license theo tháng, tính theo số khách đang hoạt động, có bản tự cài và bản Cloud. Nếu cần lựa chọn miễn phí, Paymenter là phần mềm billing mã nguồn mở có module cho nhiều control panel, trong đó có ZoPanel.
Có cần server riêng để chạy WHMCS không?
Nên có. WHMCS giữ dữ liệu khách hàng, hoá đơn và token quản trị các server hosting. Đặt nó chung server với website của khách nghĩa là một website bị hack có thể đe doạ toàn bộ hệ thống billing.
WHMCS tạm khoá tài khoản sau bao nhiêu ngày quá hạn?
Bạn tự đặt trong Automation Settings, mục Suspend Days. Nhiều nhà cung cấp chọn 3 đến 7 ngày để tạm khoá và khoảng 30 ngày để xoá, kèm thời gian giữ dữ liệu trên control panel phòng trường hợp khách thanh toán muộn.
Gói Free của ZoPanel có kết nối WHMCS được không?
Không. Tích hợp WHMCS dùng API token, và API token thuộc gói Pro. Gói Free vẫn đủ để bạn cài panel, thử website, email và DNS trước khi nâng cấp để kết nối billing.
Ngoài WHMCS còn hệ thống billing nào cho hosting?
Blesta, HostBill và Paymenter là ba lựa chọn phổ biến. ZoPanel có module cho cả bốn, cùng dựa trên một API cấp phát có tài liệu, nên bạn cũng có thể tự kết nối hệ thống bán hàng riêng.
Đọc tiếp

So sánh WHMCS, Blesta, Paymenter và HostBill năm 2026
Chọn phần mềm billing hosting: so sánh WHMCS, Blesta, Paymenter và HostBill về giá 2026, cổng thanh toán, module cấp phát, hỗ trợ và yêu cầu PHP.

1 VPS chứa bao nhiêu website, bao nhiêu tài khoản hosting? Số đo thực tế
1 VPS chứa bao nhiêu website và tài khoản hosting, theo số đo trên VPS 4 GB, 3 GB, cùng cách ổ đĩa, mail, ứng dụng và overselling thay đổi con số.

Control panel tốt nhất cho đại lý hosting năm 2026
So sánh control panel cho đại lý hosting: cPanel/WHM, DirectAdmin, Plesk, ISPConfig, HestiaCP, ZoPanel theo tính năng và chi phí ở 50, 200 tài khoản.