Shared topics
Licensing
How Impulse license keys work, where to install them, what happens when they expire, and how to migrate to a new server. Same pattern across every module.
1. One key per module per WHMCS install
Section titled “1. One key per module per WHMCS install”Each licensed Impulse module has its own license key, with its own prefix. You paste every key into ImpulseCore, under Modules & Licensing → Licenses; each module’s own admin area shows its license status and points you there.
| Module | Key prefix | Where to enter it |
|---|---|---|
| ImpulseObjects | IOBJ- |
ImpulseCore → Modules & Licensing → Licenses |
| ImpulseDB Postgres | IPGRES- |
ImpulseCore → Modules & Licensing → Licenses |
| ImpulseAuth | IAUTH- |
ImpulseCore → Modules & Licensing → Licenses |
| ImpulsePlesk | IPLSK- |
ImpulseCore → Modules & Licensing → Licenses |
| ImpulseCpanel | ICPNL- |
ImpulseCore → Modules & Licensing → Licenses |
| ImpulseVPS | IVPS- |
ImpulseCore → Modules & Licensing → Licenses |
| ImpulseValkey | IVKEY- |
ImpulseCore → Modules & Licensing → Licenses |
| ImpulseSecrets | ISEC- |
ImpulseCore → Modules & Licensing → Licenses |
| ImpulseSearch | ISRCH- |
ImpulseCore → Modules & Licensing → Licenses |
| ImpulseNotify | INTFY- |
ImpulseCore → Modules & Licensing → Licenses |
Developer (…DEV-) keys are not sold; production installs use the licensed prefix. Core checks that a key’s prefix matches the module before it saves it. A license covers one WHMCS install: each check sends the licensing server the key, the domain from your WHMCS System URL (not the request’s hostname), the server’s IP address and the path of your WHMCS modules directory. In the license portal, each license’s page shows the domains and IP addresses it accepts.
ImpulseCore itself is not customer-licensed — it’s free, downloadable from the license portal with any active module license, and required for any consuming module to function.
2. How verification works
Section titled “2. How verification works”The shared XML licensing client lives in ImpulseCore. When you paste a key and click Save:
- Core reads the domain from the WHMCS
SystemURLintblconfiguration(canonical, not$_SERVER). - Queries the licensing endpoint — a request with the key, the domain, the IP, the install path, the module version and a one-time token.
- Parses the XML response; an Active answer must carry a valid signature.
- Caches the result in
mod_impulsecore_licenses: status, tier and the features that tier unlocks. A key that fails its first check isn’t saved. - Re-checks it at most once every 24 hours — the daily
license_refreshcron task keeps the cache fresh, and Re-check now forces a check.
If a working license can’t be verified later, it enters a grace period:
- Licensing server unreachable (network error, unreadable or unsigned response): 7 days of grace.
- Licensing server says Invalid (key revoked or expired, or the domain or IP doesn’t match): 48 hours of grace.
Licensed features keep working during grace. Core emails your WHMCS admins when grace starts, when it’s half over, and when it ends. As soon as a check succeeds again, grace is cleared.
Because every module shares this client, the verification behaviour is uniform: same caching, same grace windows, same domain detection, same XML parsing.
3. Expiry behaviour
Section titled “3. Expiry behaviour”| State (Licenses tab) | What happens |
|---|---|
| Active | All licensed features work normally. |
| In grace | Licensed features keep working; the Licenses tab shows which grace (unreachable, 7 days; or invalid, 48 hours) and when it ends. Fix the cause or paste a replacement key. |
| Expired | Grace has run out. The module drops to its free tier: licensed features switch off. |
| Invalid | The last check failed and the license isn’t in grace. Licensed features are off. |
| No key | No key pasted yet. The module runs at its free tier. |
4. Migrating a license to a new server
Section titled “4. Migrating a license to a new server”Keys are tied to your WHMCS install’s domain and IP address. To move to a new server or domain:
- Sign in to the license portal and open the license (Manage).
- If the domain changes, enter the new one under Change domain — the host part of your new WHMCS System URL — and click Update domain. If the server’s IP address changes, contact support to update the IPs the license accepts; the portal shows them but doesn’t change them.
- On the new WHMCS, open ImpulseCore → Modules & Licensing → Licenses and paste the key (or click Re-check now if it’s already there).
Reissue (under Reissue license on the same page) generates a new key and the old one stops working — paste the new key into ImpulseCore afterwards.
5. Common gotchas
Section titled “5. Common gotchas”- Invalid right after install. WHMCS’s
SystemURLis unset or pointing athttp://localhost. Set the production URL under System Settings → General Settings, then re-check. - A brand-new key won’t save. Its first check failed, so Core kept nothing: a banner at the top of the Licenses tab says the key was not accepted and what validation returned — usually a mistyped key, a key for a different module, or a domain, IP or install path the license doesn’t accept.
- Multiple WHMCS instances on the same server. Each WHMCS install has its own
SystemURL, so each needs its own license. Sharing keys across installs gives you mismatched-domain errors. - Reverse proxy changes the visible scheme. Doesn’t matter — verification reads the domain from
tblconfiguration.SystemURL, not from the request. As long as that column hasn’t changed, the license keeps working.