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.

Bekijk de waarde ↓
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-hooks

Van betaling tot werkende server — zonder handwerk, met retry-logic.

  1. 1

    InvoicePaid hook

    factuur INV-10421 betaald via iDEAL

  2. 2

    AcceptOrder

    order O-2940 — pakket 'VPS-Pro-NL'

  3. 3

    AfterModuleCreate

    API-call → cloud.provision({plan:'pro'})

  4. 4

    Server live (38s)

    IP 91.x.x.42 — root-token in vault

  5. 5

    Welcome-mail verstuurd

    branded template · NL · met SSO-link

Action-hooks · vandaag

healthy

Custom-logica op de juiste plek in de WHMCS-lifecycle — gelogd, idempotent en re-fireable.

  • InvoicePaidtriggerProvisioning()fired
  • AfterModuleCreatesyncToCloudAPI()fired
  • DailyCronJobrenewExpiringDomains()fired
  • AcceptOrdernotifyOpsSlack()fired
  • InvoicePaymentFailedscheduleSmartRetry()fired
  • ClientEditsyncContactToRegistrar()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.

Bekijk klantcases

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 API
function 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 actief

Custom Smarty-template, eigen branding, single sign-on naar het control panel.

DienstStatusBedrag
VPS-Pro-NL · vps-04.example.comActive€ 19,00 / mnd
Domain · acme.nlActive€ 9,50 / jaar
SSL · Wildcard *.acme.nlActive€ 89,00 / jaar
Backup-addon · 100 GBActive€ 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.

Provisioning

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.

Registrar

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.

Hooks

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.

Recurring

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.

Resellers

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.

Boekhouding

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

  1. 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.

  2. 02

    Concreet voorstel

    Per onderdeel: wat ik bouw, in welke volgorde en met welke aannames. Afgebakend per sprint, zonder open einden.

  3. 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.

  4. 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".

Meer over Maarten

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?

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?

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?

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?

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?

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?

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?

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?

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?

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.

Bekijk klantcases
Maarten Soetens

Even sparren over jouw project?

Korte lijntjes, eerlijk advies, geen sales-praat. Ik denk vrijblijvend met je mee — gewoon Maarten zelf.

Geen automatisch antwoord — ik mail of bel je persoonlijk terug.