WHMCS to PNLCS¶
Where to find what you know from WHMCS. Most names are the same; this page lists where each one lives in PNLCS, the ones that are named differently, and what PNLCS does not have. For moving your data, see Migrate from WHMCS.
Records and statuses¶
| WHMCS | PNLCS |
|---|---|
| Client | Client: the account you bill (Concepts) |
| User (a person who signs in) | Login. One account can have several logins, one login can open several accounts (Client logins) |
| Contact | Contact. As in WHMCS, a contact is not a login |
| Product/Service (what a client owns) | Service |
| Product (what you sell) | Product, in a product group |
| Product addon | Product addon (Setup → Product Addons, guide) |
| Configurable options | Configurable options (below) |
| Order, invoice, quote, transaction, credit | Same names |
| Service statuses | Pending, Active, Suspended, Terminated, Cancelled, Fraud, Completed: the WHMCS set |
| Invoice statuses | Draft, Unpaid, Paid, Cancelled, Refunded, Collections, Payment Pending, plus Overdue and Partially Paid, which are statuses of their own in PNLCS |
| Order statuses | Pending, Active, Cancelled, Fraud. There is no screen to add your own |
| Login as Client | Login as Client on the client's page (details) |
Top menu¶
| WHMCS | PNLCS |
|---|---|
| Clients → View/Search Clients, Add New Client, Products/Services, Domains | Clients menu, same entries, plus Billing identity and SSL Certificates |
| Clients → Manage Affiliates | Billing → Affiliates (Affiliates) |
| Clients → Cancellation Requests | No list in the admin area. Requests are carried out by the daily run (Scheduled commands); the API's getcancelledpackages lists them |
| Clients → Mass Mail Tool | Mass Email, a page with no menu entry: open /admin/bulk/mass-email. Picks clients by product, server, group, status or domain extension |
| Orders → List All Orders, Pending, Active, Fraud, Cancelled | Orders menu, same entries |
| Orders → Add New Order | Add New → New Order |
| Billing → Invoices, Transactions List, Billable Items, Quotes | Billing menu: Invoices, Transactions, Billable Items, Quotes |
| Billing → Gateway Log | Utilities → System Logs, then Gateway Logs in the sidebar |
| Support → Support Tickets, Open New Ticket | Support → Support Tickets, Open Ticket (Support desk) |
| Support → Announcements, Downloads, Knowledgebase, Network Issues | Support menu, same entries (Knowledge Base) |
| Support → Predefined Replies | Setup → Predefined Replies |
| Reports | Reports |
| Addons menu | Extensions menu, shown only while an active addon adds pages (Modules) |
Utilities menu¶
| WHMCS | PNLCS |
|---|---|
| Calendar, To-Do List, WHOIS Lookup | Utilities menu, same names |
| System → Automation Status | Utilities → Automation Status |
| System → Database Status | Utilities → System Database |
| System → PHP Info | Utilities → PHP Info |
| System → Update WHMCS | Setup → Updates (Updating) |
| Logs → Activity Log | Utilities → Activity Log |
| Logs → Module Log, Email Message Log | Utilities → System Logs, then Module Logs or Email Logs in the sidebar |
| (none) | Utilities → Import WHMCS reads clients, domains and services from a WHMCS database (guide) |
Setup menu¶
| WHMCS | PNLCS |
|---|---|
| General Settings | Setup → General Settings, one page of cards (General Settings) |
| Automation Settings | The Automation, Automatic Payment and Late Fees cards on General Settings. Run times are fixed (Scheduled commands) |
| Fraud Protection | General Settings → Fraud Screening (MaxMind, FraudLabs Pro; guide) |
| Sign-In Integrations | General Settings → Social Login (Google, GitHub) |
| Staff Management → Administrator Users, Administrator Roles | Setup → Admin Accounts, Admin Roles (Staff and roles) |
| Staff Management → Manage API Credentials | Setup → API Credentials |
| Payments → Currencies, Payment Gateways, Promotions | Setup → Currencies, Payment Gateways, Promotions |
| Payments → Tax Configuration | Setup → Tax Rules (Tax rules) |
| Products/Services → Products/Services | Setup → Products/Services; product groups from the sidebar |
| Products/Services → Configurable Options | Configurable Options, with no menu entry: reached from a Proxmox product, or at /admin/config/config-options (guide) |
| Products/Services → Product Addons, Product Bundles | Setup → Product Addons, Product Bundles |
| Products/Services → Domain Pricing, Domain Registrars, Servers | Setup → Domain Pricing, Domain Registrars, Servers, Server Groups |
| Support → Support Departments | Setup → Ticket Departments, where email import is also set up (Support mail piping) |
| Support → Ticket Statuses | Setup → Ticket Statuses |
| Support → Escalation Rules | Ticket Escalation, with no menu entry (details) |
| Support → Spam Control | Setup → Ticket Spam Filter |
| Email Templates | Setup → Email Templates |
| Addon Modules | Extensions page in the settings sidebar (Modules) |
| Client Groups | Setup → Client Groups |
| Custom Client Fields | Setup → Custom Fields (Custom client fields) |
| Notifications | Setup → Notification Channels |
| Other → Banned IPs, Banned Emails | Setup → Banned IPs, Banned Emails |
| Other → Database Backups | The nightly pnlcs:db-backup (Backups) |
| (none) | Setup → Modules, one list of every server, gateway, registrar, SSL and addon module (Modules) |
| (none) | Setup → Appearance: themes, logo, colours, home page (Themes and branding) |
| (none) | Setup → Languages: languages and translations (Languages) |
Behind the scenes¶
| WHMCS | PNLCS |
|---|---|
cron.php |
One cron line running php artisan schedule:run every minute (Scheduled commands) |
Email piping (pipe.php) or POP3 import |
Mailbox import only: PNLCS reads each department's mailbox over IMAP or POP3 every 5 minutes (Support mail piping) |
configuration.php |
The .env file in the install folder (database, APP_URL) |
| Custom admin folder | None. The admin area is always at /admin; the Admin Login URL Prefix setting is saved but not used |
Client area templates (Smarty .tpl) |
Themes with a theme.json, chosen under Setup → Appearance (Themes) |
| Provisioning (server), registrar and gateway modules | Server, registrar, gateway and SSL modules: a class implementing PNLCS's interface plus a pnlcs.json manifest (Writing a module). WHMCS module files do not load in PNLCS |
Module functions CreateAccount, SuspendAccount, UnsuspendAccount, TerminateAccount, ChangePassword, ChangePackage |
Server module methods create, suspend, unsuspend, terminate, changePassword, changePackage |
Hooks¶
add_hook() works as in WHMCS, but each hook gets PNLCS objects, not WHMCS
arrays (Hooks). These names differ:
| WHMCS hook | PNLCS |
|---|---|
InvoiceRefunded |
RefundIssued |
AcceptQuote |
QuoteAccepted |
TicketUserReply, TicketAdminReply |
TicketReplied, with isStaffReply telling them apart |
AfterModuleChangePassword |
AfterModulePassword |
These WHMCS names fire next to a PNLCS name for the same moment:
| WHMCS hook | Also fires as |
|---|---|
InvoiceCreation |
InvoiceCreated |
AfterShoppingCartCheckout |
OrderPlaced |
AfterRegistrarRegistration |
DomainRegistered |
AfterRegistrarRenewal |
DomainRenewed |
AfterRegistrarTransfer |
DomainTransferStarted |
ClientAdd |
ClientCreated |
ClientLogin |
UserLogin |
TicketOpen |
TicketOpened |
TicketClose |
TicketClosed |
Any WHMCS hook not listed on the Hooks page never fires in PNLCS.
API¶
| WHMCS | PNLCS |
|---|---|
https://your-whmcs/includes/api.php with action=GetClients |
https://example.com/api/v1/getclients: the action name, in lower case, is part of the address |
identifier and secret parameters |
The same, or the X-API-Key and X-API-Secret headers |
| Every action by POST | GET for actions that read, POST for actions that change |
WhmcsDetails |
whmcsdetails, and pnlcsdetails |
EncryptPassword, DecryptPassword, CapturePayment, AddPayMethod, DomainRelease |
Answer 501: not offered |
GetClientPassword |
Answers 403 |
Details: Coming from WHMCS, and All endpoints.
Not in PNLCS¶
- MarketConnect and its resold services.
- Offline credit card processing. Card numbers never pass through PNLCS: customers enter them on the gateway's own form, and the gateway stores them (Stored cards).
- Custom order statuses, link tracking and security questions: no screen or setting for them.
- A custom admin folder (see above).
- Email piping by script (see above).