WHMCS developer · hosting · cloud · SaaS · ISP
WHMCS developer
Maatwerk WHMCS-modules en hooks voor hosters, cloud-providers en SaaS: provisioning op je eigen platform, registrar-modules voor niche-TLD's, gateway-modules, whitelabel klantportalen en boekhoudkoppelingen die gewoon kloppen.
- Sinds 2008
- Hosting-ervaring
- WHMCS API
- Internal & external
- Modules
- Provisioning · registrar · addon
- Hooks
- 200+ action-hooks
Waarom dit ertoe doet
WHMCS is de standaard. De standaard installatie is dat niet altijd.
WHMCS dekt out-of-the-box de basis voor hosting-billing: domeinen, facturatie, klantportaal, support. Maar zodra je een eigen platform draait, niche-TLD's aanbiedt, recurring met SEPA-mandaten doet of een whitelabel reseller-flow nodig hebt, begint het handwerk. Een ervaren WHMCS-developer schrijft daar precies de modules en hooks omheen die je business onderscheidend maken.
Provisioning-modules die echt provisionen
Server-modules die accounts aanmaken, suspenden, upgraden en terminaten via de API van jouw platform — niet alleen een welkomstmail.
Registrar-modules op maat
Eigen registrar-koppeling met domeinregistratie, transfers, contact-update, nameservers, DNSSEC en EPP — voor TLD's waar geen kant-en-klare module voor is.
Hooks die het verschil maken
Action-hooks op InvoiceCreated, AfterModuleCreate, DailyCronJob, AcceptOrder — exact de business-logica die jouw hosting onderscheidt.
Betaalmethodes & dunning
Eigen gateway-modules (Mollie, Adyen, MultiSafepay, Stripe), recurring met mandaten, slimme retry-schema's en branded reminder-mails.
Koppelingen die blijven werken
API-koppelingen met cloud providers, control panels, monitoring, ticketing en boekhouding — met retries, idempotency en logging in eigen dashboards.
Klantportaal dat past bij je merk
Custom Smarty-templates, eigen pagina's, single sign-on naar je control panel of app — een portaal dat aanvoelt als jouw product, niet als WHMCS.
Twijfel je waar de winst zit? Ik denk graag mee — gewoon Maarten zelf, geen sales-trechter.
Hoe het eruit ziet
Provisioning en hooks — van betaling tot live server
Twee plekken waar het verschil meetbaar is: de provisioning-flow die je klant ervaart, en de action-hooks die je nooit ziet — totdat ze het werk uit handen nemen.
Provisioning-flow · live
action-hooksVan betaling tot werkende server — zonder handwerk, met retry-logic.
- 1
InvoicePaid hook
factuur INV-10421 betaald via iDEAL
- 2
AcceptOrder
order O-2940 — pakket 'VPS-Pro-NL'
- 3
AfterModuleCreate
API-call → cloud.provision({plan:'pro'})
- 4
Server live (38s)
IP 91.x.x.42 — root-token in vault
- 5
Welcome-mail verstuurd
branded template · NL · met SSO-link
Action-hooks · vandaag
healthyCustom-logica op de juiste plek in de WHMCS-lifecycle — gelogd, idempotent en re-fireable.
- InvoicePaid→triggerProvisioning()fired
- AfterModuleCreate→syncToCloudAPI()fired
- DailyCronJob→renewExpiringDomains()fired
- AcceptOrder→notifyOpsSlack()fired
- InvoicePaymentFailed→scheduleSmartRetry()fired
- ClientEdit→syncContactToRegistrar()fired
200+
hooks beschikbaar
Idempotent
replay-veilig
Re-fire
uit dashboard
Wil je dit ook zien werken in jouw WHMCS? Ik denk graag mee — gewoon Maarten zelf, geen sales-trechter.
Herkenbaar?
Veelvoorkomende WHMCS-problemen — en wat ik eraan doe
Negen van de tien WHMCS-trajecten beginnen met een van deze klachten. Goede kans dat jij er ook minstens één herkent.
WHMCS doet 80%, de laatste 20% is altijd handwerk
Pijn: Voor standaard shared hosting werkt WHMCS prima. Maar zodra je een eigen platform, niche-TLD of afwijkende factuur-flow hebt, lopen je collega's iedere week handmatig achter orders aan.
Aanpak: Een custom module of action-hook voor exact dat stuk dat nu handwerk is. Klein, afgebakend en getest — geen complete vervanging, alleen de gaten dichten.
Orders blijven hangen op 'pending'
Pijn: Betaling is binnen, maar de hosting wordt niet automatisch aangemaakt. Iemand moet 's nachts handmatig accepteren of de provisioning afmaken.
Aanpak: Action-hooks op InvoicePaid en AfterModuleCreate met retry-logic, alerts in Slack of e-mail en een dashboard met failed provisionings die je in één klik kunt re-fire.
Een TLD waar geen registrar-module voor is
Pijn: Je wilt een nichedomein aanbieden (.nl-variant, country-TLD, nieuwe gTLD), maar de registrar levert alleen EPP of een eigen REST-API. WHMCS heeft geen kant-en-klare module.
Aanpak: Custom registrar-module die alle WHMCS-hooks (register, transfer, renew, contact-modify, nameserver-change) netjes vertaalt naar de API of EPP van die registrar.
Eigen control panel of cloud-platform
Pijn: Je draait op een eigen Kubernetes-stack, een whitelabel cloud-platform of een gespecialiseerde appliance. WHMCS kan er niet mee praten, dus provisioning is handwerk.
Aanpak: Provisioning-module die CreateAccount, SuspendAccount, UnsuspendAccount, TerminateAccount en ChangePackage doorzet naar jouw API — met error-handling en status-sync.
Failed payments lekken MRR weg
Pijn: Een deel van de SEPA- of CC-incasso's mislukt. WHMCS markeert ze als unpaid, maar niemand pakt het op. Maandelijks zakt de MRR met een paar procent.
Aanpak: Custom dunning-flow: slim retry-schema op refusalReason, branded reminder-mails op het juiste moment, self-service kaart-update en een rapport per failure-reason.
Boekhouding sluit elke maand 'bijna' aan
Pijn: Iedere maand-eind een paar uur puzzelen tot facturen, betalingen en credit-nota's in Exact, AFAS of e-Boekhouden weer kloppen met WHMCS.
Aanpak: Koppeling tussen WHMCS-invoices, transactions en credit-notes en je boekhouding — per regel gelogd, met automatische sync, zodat de aansluiting altijd klopt.
Sparren over je WHMCS-setup?
Provisioning, hooks en facturatie op één lijn.
Ik kijk mee in je WHMCS, benoem waar nu nog handwerk zit en schets samen met je een aanpak per onderdeel.
Module-code & klantportaal
Van API tot klant-ervaring — in één keten
Een custom provisioning-module is de motor. Een whitelabel klantportaal met single sign-on is het gezicht. Beide opgeleverd in dezelfde sprint.
Custom provisioning-module
PHP · WHMCS module APIfunction mycloud_CreateAccount(array $params) {
try {
$api = new MyCloudClient($params['serverpassword']);
$server = $api->provision([
'plan' => $params['configoption1'],
'region' => $params['configoption2'],
'hostname'=> $params['domain'],
'email' => $params['clientsdetails']['email'],
]);
logModuleCall('mycloud', 'CreateAccount',
$params, $server, '', ['serverpassword']);
return 'success';
} catch (Throwable $e) {
return 'Error: ' . $e->getMessage();
}
}Net zoals CreateAccount ookSuspendAccount,ChangePackage enTerminateAccount — met retry, logging en alerts.
Klantportaal · whitelabel
SSO actiefCustom Smarty-template, eigen branding, single sign-on naar het control panel.
| Dienst | Status | Bedrag |
|---|---|---|
| VPS-Pro-NL · vps-04.example.com | Active | € 19,00 / mnd |
| Domain · acme.nl | Active | € 9,50 / jaar |
| SSL · Wildcard *.acme.nl | Active | € 89,00 / jaar |
| Backup-addon · 100 GB | Active | € 4,00 / mnd |
Wat het oplevert
Voorbeelden van wat een goede WHMCS-developer toevoegt
Een WHMCS-installatie hoort iets op te leveren, niet alleen 'te draaien'. Dit zijn voorbeelden van wat ik bij eerdere hosters heb ingebouwd — als inspiratie voor wat in jouw situatie kan.
Automatische server-aanmaak op eigen cloud
Klant bestelt → WHMCS triggert provisioning-module → Terraform-job of API-call naar eigen cloud → server live, welcome-mail met credentials, klant logt in. Geen handwerk.
Custom registrar-module voor niche-TLD
EPP-koppeling met een buitenlandse registry of REST-API van een nieuwe gTLD, met transfer-flow, contact-validation, DNSSEC en renew-cron — als één extra module in WHMCS.
Smart upgrade-flow met pro-rata
Klant upgrade van Starter naar Pro → action-hook berekent pro-rata, maakt creditnota voor restant, factureert verschil en triggert resource-upgrade op je platform.
Slim dunning-schema voor failed SEPA
Hook op InvoicePaymentFailed → retry-schema op exponential backoff, branded mails per failure-reason, self-service kaart-update en suspend-flow op dag 21 — niet dag 1.
Whitelabel klantportaal per reseller
Eén WHMCS-installatie, meerdere whitelabel-portalen via custom Smarty-templates en domein-routing. Iedere reseller eigen branding, eigen prijzen, eigen mail-templates.
Sync met Exact / AFAS / e-Boekhouden
Invoices, payments, refunds en credit-nota's per regel gesynct met je boekhouding via API. Maand-end aansluiting in minuten in plaats van uren.
Welk voorbeeld past het beste op jouw hosting? Ik denk graag mee — gewoon Maarten zelf, geen sales-trechter.
Wat ik bouw
Onderdelen die ik dagelijks oplever
Elk onderdeel hieronder is een afgebakende klus die ik vaak los of in combinatie oppak. Klein genoeg voor een sprint, groot genoeg om verschil te maken.
Provisioning-modules
CreateAccount, SuspendAccount, ChangePackage en TerminateAccount tegen jouw eigen platform of cloud-API.
Registrar-modules
Eigen registrar-koppelingen voor TLD's waar geen module voor bestaat — EPP of REST.
Addon-modules
Eigen WHMCS-modules voor extra functionaliteit in admin- of klantportaal.
Action-hooks
Custom logica op InvoiceCreated, AfterModuleCreate, DailyCronJob, AcceptOrder en 200+ andere hooks.
Gateway-modules
Custom betaalmethodes — Mollie, Adyen, MultiSafepay, Stripe, Buckaroo of een eigen PSP.
Branded e-mail-flows
Eigen templates per status (welcome, suspension, dunning, renewal) — meertalig en merkconform.
Klantportaal-templates
Custom Smarty-templates, eigen pagina's, embedded dashboards en single sign-on naar je platform.
Webhook-handlers
Inkomende webhooks van PSPs, registrars en monitoring — verwerkt in custom-modules of hooks.
Boekhoudkoppelingen
Sync van invoices, payments, refunds en credit-nota's met Exact, AFAS, Twinfield of Moneybird.
Admin-tooling
Eigen admin-pagina's voor support, finance of resellers — alles binnen de WHMCS-context.
Single sign-on & SSO
AutoAuth, SAML of OAuth tussen WHMCS en je control panel, customer-app of helpdesk.
API-koppelingen
WHMCS Internal API en External API koppelen aan CRM, monitoring, marketing of provisioning-systemen.
Een specifieke module in je hoofd? Ik denk graag mee — gewoon Maarten zelf, geen sales-trechter.
Koppelingen
Systemen waar ik WHMCS mee verbind
cPanel & WHM
Standaard provisioning, plus custom hooks
DirectAdmin & Plesk
Provisioning en single sign-on
AWS / Hetzner / DigitalOcean
Custom provisioning via cloud-API of Terraform
Registrars (Realtime, OpenProvider, eigen EPP)
Domeinen, transfers, DNSSEC
Mollie · Adyen · MSP · Stripe
Recurring, mandaten en dunning
Exact · AFAS · Moneybird
Boekhoud-sync per invoice-regel
Postmark · SendGrid · Mailgun
Transactional mail-flows
Monitoring (Uptime · Datadog)
Alerts en status-pagina-integratie
HelpDesk / Zendesk / Freshdesk
Tickets bidirectioneel gesynct
Ander systeem? Vraag het even. Ik denk graag mee — gewoon Maarten zelf, geen sales-trechter.
Kansen per sector
Waar de winst zit, per type business
Hosting providers
- Custom provisioning op eigen platform
- Niche-TLD's via eigen registrar-modules
- Reseller-flows met whitelabel-portalen
- Dunning en suspension-policy op maat
Cloud & VPS providers
- Provisioning via Terraform of cloud-API
- Resource-upgrades met pro-rata facturatie
- Usage-based billing via custom hooks
- Status-sync van cloud naar WHMCS
SaaS-bedrijven
- Subscriptions met add-ons en trials
- License-provisioning per seat
- Self-service plan-changes met pro-rata
- Boekhoudkoppeling per factuur-regel
ISP's & telecom
- Provisioning naar OSS/BSS-systemen
- Recurring met SEPA en mandaten
- Klantportaal met verbruik en facturen
- Migraties van legacy billing naar WHMCS
Hoe het werkt
Een WHMCS-traject in 4 stappen
- 01
Intake & audit
Een gesprek over je huidige WHMCS-setup, modules en handwerk. Ik kom met een lijst quick wins en grotere verbeterpunten — met een scope-inschatting.
- 02
Concreet voorstel
Per onderdeel: wat ik bouw, in welke volgorde en met welke aannames. Afgebakend per sprint, zonder open einden.
- 03
Bouwen op staging
Volledige module of hook in een staging-WHMCS, met mock-data en API-sandboxes. Demo per sprint op een preview-URL, met logging.
- 04
Go-live en monitoring
Uitrol in productie, alerts op error-rates en failed provisionings, optionele retainer voor doorontwikkeling.
Klaar om de eerste stap te zetten? Ik denk graag mee — gewoon Maarten zelf, geen sales-trechter.
Waarom Maarten
Eén ervaren hosting-developer. Geen bureau, geen tussenlagen.
Ik werk sinds 2008 in hosting en SaaS — van eigen control-panels tot grote WHMCS-installaties met tienduizenden klanten. Die ervaring zit in elke beslissing: welke hook idempotent hoort te zijn, waar je een retry-schema laat lopen en wanneer je beter een addon-module bouwt dan een core-patch.
Geen accountmanager. Geen Jira-tickets die zwerven. Je werkt direct met de persoon die de PHP-module schrijft en de cron-logs debugt — met eerlijk advies, ook als dat betekent: "dit hoef je niet te bouwen".
Sinds 2008
Bekend met de scherpe randen van élke registrar en host.
Korte lijnen
Direct contact met de developer, zonder accountmanager ertussen.
Geen lock-in
Standaard WHMCS module-API, schone code, jij houdt alles in handen.
Eerlijk advies
Soms is uitbreiden niet de winst. Dat hoor je dan ook.
FAQ
Veelgestelde vragen over WHMCS
Werk je met de standaard WHMCS of bouw je eigen forks?
Werk je met de standaard WHMCS of bouw je eigen forks?
Ik werk altijd op een unmodified WHMCS-core. Custom functionaliteit zit in modules en action-hooks, nooit in core-patches. Daardoor blijven upgrades pijnloos en hou je de officiële support van WHMCS.
Kun je een provisioning-module bouwen voor mijn eigen platform?
Kun je een provisioning-module bouwen voor mijn eigen platform?
Ja — dat is een van de dingen die ik het vaakst doe. Zolang jouw platform een API heeft (REST, SOAP of zelfs een SSH-CLI met token), kan ik een server-module bouwen die CreateAccount, SuspendAccount, ChangePackage en TerminateAccount netjes doorzet, inclusief error-handling en status-sync.
Kun je ook registrar-modules bouwen voor exotische TLD's?
Kun je ook registrar-modules bouwen voor exotische TLD's?
Ja. Voor TLD's met een eigen EPP-server of REST-API maak ik een custom registrar-module met domein-registratie, transfers, contact-update, nameserver-change, DNSSEC en renew-cron. Dezelfde admin-ervaring als de officiële modules.
Hoe zit het met WHMCS-upgrades?
Hoe zit het met WHMCS-upgrades?
Omdat alles in modules en hooks zit, zijn upgrades onderhoud van uren in plaats van dagen. Ik test custom modules tegen elke major release, los deprecation-warnings op en lever een upgrade-rapport.
Kun je betaalmethodes uitbreiden?
Kun je betaalmethodes uitbreiden?
Ja. Custom gateway-modules voor Mollie, Adyen, MultiSafepay, Stripe, Buckaroo, Pay en eigen PSPs. Inclusief recurring, SEPA-mandates, 3DS2 en branded dunning-flows boven op de standaard WHMCS reminder-mails.
Kun je het klantportaal whitelabelen?
Kun je het klantportaal whitelabelen?
Ja. Custom Smarty-templates, eigen pagina's, branding per reseller en single sign-on naar je control panel of customer-app. Eén WHMCS, meerdere whitelabel-frontends.
Doe je ook migraties van een ander billing-systeem naar WHMCS?
Doe je ook migraties van een ander billing-systeem naar WHMCS?
Regelmatig. Inclusief data-migratie van klanten, services, invoices en mandaten, een parallelle test-periode op staging en een gefaseerde uitrol per klant-segment of per platform.
Kan ik later met een ander team verder?
Kan ik later met een ander team verder?
Ja. Ik werk volgens de officiële WHMCS module-conventies, met PSR-coding-standaard en documentatie. Geen vendor lock-in — elke WHMCS-developer kan ermee verder.
Hoe ga je om met failed cron-jobs?
Hoe ga je om met failed cron-jobs?
Action-hooks op DailyCronJob en PreCronJob met monitoring, alerts bij failures en een dashboard waar je per cron-run de logs kunt inzien. Plus retry-logic op idempotente acties zodat een herstart geen dubbele facturen of provisionings veroorzaakt.
Sparren over je WHMCS-setup?
Provisioning, hooks en facturatie op één lijn.
Ik kijk mee in je WHMCS, benoem waar nu nog handwerk zit en schets samen met je een aanpak per onderdeel.
