KYC Identity Verification for WHMCS

KYC Identity Verification for WHMCS

Developed By TPC Hosting

Compatible with WHMCS v9.1

Put identity verification inside your WHMCS

This addon wires identity checks straight into your WHMCS order flow. Clients verify in your client area. Orders activate automatically once they pass. Your team stays focused on customers — not documents.

The addon is the WHMCS integration layer — nothing more. All document scanning, liveness, and face matching happen inside Sumsub, using the verification level you configure in your own Sumsub account. The addon never touches your clients' IDs, never runs a liveness check, and never makes a verification decision. It makes Sumsub's output usable where you already work: inside WHMCS. (Sumsub is billed separately by Sumsub.)

Why WHMCS providers need this

  • Chargebacks and stolen cards — every fraudulent signup costs you the chargeback fee plus a service you already provisioned. Verifying identity up front kills this at the source.
  • Compliance pressure is real — EU AMLD, NIS2, and national AML laws increasingly require customer due diligence for digital services. NIS2 Article 28 asks domain registrars and resellers to verify registrant data. Identity verification is the first piece.
  • Manual review drains support — staff reviewing IDs, flagging orders, chasing documents, and cancelling orders nobody completed is a cost you can automate away.

Every piece is WHMCS-native

No proxy dashboards. No second login. No parallel CRM.

  • At checkout — order placed → your rules decide whether it needs KYC → the addon creates the Sumsub applicant → order status set to Pending KYC. Everything else activates in seconds, as before.
  • In the client area — a verification page + sticky banner inside your theme, hosting the Sumsub WebSDK so clients never leave your portal.
  • In real time — a signed Sumsub webhook advances the order the moment the review finishes; a secret-protected cron is the safety net, sends reminders, and cleans up.
  • Before the registrar call — for domain orders in scope, the registration or transfer command is held until the registrant has verified (v1.9).
  • In the admin panel — a KYC dashboard in your Addons menu: every status, every applicant, every held order, with manual approval and a full audit trail in your WHMCS database. Light and dark admin themes.

What the addon actually does (WHMCS side)

  • Order-flow integration — holds matching orders as Pending KYC, releases them via the native AcceptOrder API once approved, re-checks when a client switches the payment gateway on a held invoice. Renewals are never held.
  • Five rule types, combined your way — require KYC by product group, by domain TLD (e.g. .cn, .ru), by payment gateway, by order size (amount, item count, or spend over a time window), or by client country (billing address or IP). Each rule acts as a trigger (any match = KYC) or a condition (all must match), so "KYC only for crypto payments over 200 EUR from outside the EU" is one screen, not custom code. Flag individual clients to always require KYC.
  • Domain registrant verification (v1.9, NIS2 Article 28) — when the registrant is a third party (a WHMCS contact), the verification link goes to the registrant's own e-mail, not the account holder's. A fail-closed guard in front of the registrar module blocks registration and transfer until the registrant has passed; held commands are re-issued automatically afterwards. Account holders can resend, correct the registrant's name, adopt the verified name, or switch the registrant from the client area. A verified registrant's phone or country change triggers re-verification.
  • Checks after approval — age gate (under 18 rejected), name match against the WHMCS account, document country versus billing country, and a duplicate-identity check across clients using a salted document fingerprint (no document data is stored). Mismatches are held for admin review, never silently accepted or silently rejected. Changing name, company, or country on an already verified account re-opens the review.
  • Reminders and automatic cancellation — reminder e-mails at the intervals you set (default 24 h and 72 h), optional automatic cancellation of orders nobody completes, and admin alerts (e-mail and optional webhook) for every review that needs a human, every stale queue, and every license problem — throttled so you get one alert, not fifty.
  • Audit log and retention — every manual approval, flag, settings change, hold, cancellation, and registrant event is recorded with the acting admin, searchable from the admin area. Verification data is purged automatically after the retention period you configure (default 5 years), with the purge itself logged.
  • Sumsub applicant linking — creates the applicant per client (and per registrant) at checkout, stores the applicant ID, keeps both records in sync through the lifecycle, including client re-verification after rejection.
  • Secured real-time sync — signed Sumsub webhook (applicantReviewed / applicantWorkflowCompleted, HMAC SHA1/256/512) plus an incremental, lock-protected cron that only touches applicants with pending changes and does a full sweep once a day.
  • 14 e-mail templates, all yours to edit — six for clients (verification request, reminder, approved, rejected, retry, cancellation) and eight for registrants and account holders, created automatically on activation and editable under WHMCS e-mail templates.
  • Admin dashboard — every applicant and registrant with status pills, Sumsub risk tags, hold reasons in plain words, a live status check, manual approval for edge cases, and a built-in setup guide and status guide. Settings persist across deactivate/reactivate.
  • Theme-friendly — client-facing pages inherit your theme (Lagom2, Twenty-One).

What you get

  • Unlimited client and registrant verifications (Sumsub fees billed separately by Sumsub)
  • Free updates for the whole license year
  • Email support from the engineers who wrote the code
  • 30-day money-back guarantee · license key emailed instantly

Install in under 10 minutes

Unzip the download and copy the modules/ folder into your WHMCS root, activate in WHMCS Admin, paste your Sumsub keys and license key, configure your KYC rules, add the cron entry and the webhook URL. The built-in setup guide walks you through every step. Upgrades from any earlier version run automatically.

Requirements: WHMCS 9.x, PHP 8.x with the ionCube loader, a Sumsub account with a configured verification level.

Note: This addon requires your own Sumsub account. Sumsub handles and bills for the actual identity verification. TPC Hosting builds and supports the WHMCS integration.

 

There are no reviews yet!

Be the first to review KYC Identity Verification for WHMCS.

Version Compatibility


Compatible with WHMCS v9.1

Full Version Compatibility


  • Selected versions of WHMCS v9.1
        9.1.0
  • Selected versions of WHMCS v9.0
        9.0.0 - 9.0.6

Support for this product

The best place to start if you need help with a specific product is to contact the developer. All WHMCS Marketplace developers have both a website and support URL listed.

Developed By TPC Hosting

Changelog

v1.9 Released October 31st, 2026

Latest Version


Version 1.9 — 31 October 2026

Domain registrant verification (NIS2 Article 28).

  • Domain registrations and transfers now verify the registrant named on the domain, not only the account holder. The verification link goes straight to the registrant's own e-mail. Account holders registering under their own details are not asked twice.
  • Orders wait until every registrant they depend on has passed. A fail-closed guard in front of the registrar module blocks registration and transfer of unverified or altered registrant data, also for manually accepted and API orders, and sends the held command automatically once the registrant has verified.
  • New client-area card Domain registrants: resend the link, correct the registrant's details, adopt the verified name after a name mismatch with one click, or move a held order to a different registrant (the order contact is updated so the registrar receives the right data).
  • A verified registrant whose phone number or country changes, or whose verification has expired, verifies again before the next domain order is released. Rejected or admin-held registrants are never reset or re-mailed automatically; the account holder or an admin decides.
  • Reminders and automatic cancellation follow the person an order is waiting for: the registrant gets their own reminders, the account holder is told that an order waits for a registrant.
  • Dashboard: new Subject column showing registrants next to clients, with manual approval for both.
  • Eight new e-mail templates for registrants and account holders, created automatically. Registrant mails are sent outside the client's e-mail history.
  • New settings: Sumsub level for registrants, registrant resend interval, and a Send test registrant e-mail action.
  • Admin pages support a dark admin theme.
  • README and user guide rewritten for 1.9, setup guide and status guide updated.

Upgrade notes: existing domains and registrants are not contacted, there is no backfill. Orders placed before the upgrade register without registrant verification. Registrant verification is its own gate on in-scope TLDs (the Domains rules on the Mandatory KYC tab) and is not affected by the gateway, size or country rules. Nothing is enforced until you configure a Domains rule.

Version 1.8 — October 2026

  • Document country check (on by default): a newly verified client whose ID document comes from a different country than their billing address is held for admin review, with an alert.
  • Duplicate identity check: the same identity document used on a second client account is held for admin review. Only a salted fingerprint is stored, never document data.
  • Account change re-check: a verified client who changes name, company or country is held for review again.
  • Renewal-only orders are never held, even when no rules are configured.
  • Missing e-mail templates are created on upgrade; existing templates are never changed.

Upgrade notes: reminders are on by default (24 h and 72 h); orders already held before the upgrade count as reminded, so nobody is mailed in bulk. Automatic cancellation stays off until you set a number of days.

Version 1.7 — October 2026

  • Sumsub RETRY rejections let the client try again, showing Sumsub's explanation of what to fix.
  • Client page and banner are driven by the actual verification status; the false "name mismatch" failure message is gone.

Version 1.6 — October 2026

  • Reminders for held orders at configurable intervals.
  • Automatic cancellation of held orders that are never completed (optional, off by default).
  • Admin alerts by e-mail and optional webhook: invalid license, review needed, activation failed, stale held orders. Alerts are throttled.
  • Missing e-mail templates are created automatically.
  • Cheaper incremental cron: only applicants with pending changes are polled, with one full sweep per day.

Version 1.5 — October 2026

  • Audit log: manual approvals with a note, flags, settings changes and purges are recorded with the acting admin and searchable in the admin area.
  • Retention: verification records are deleted a configurable number of years (default 5) after the client account is closed or deleted, and the purge is logged.

Version 1.4 — October 2026

  • New hold rules: payment gateway, order size (order total, item count, or client spend over a time window) and client country (billing address, optionally the visitor's IP via Cloudflare).
  • Each rule type works as a trigger (any match requires KYC) or a condition (all must match), so rules can be combined freely.
  • Renewal-only orders always go through.
  • Switching the invoice of an unpaid order to a payment gateway covered by a rule holds the order.
  • Every held order records in plain words why it was held; the reason is shown on the dashboard.

Version 1.3 — October 2026

  • All Sumsub calls go through one hardened API client.
  • A rejection is applied once per Sumsub attempt; the repeated failure e-mail every 30 minutes is gone.
  • The WHMCS activity log no longer receives webhook bodies, verification links, names or dates of birth.
  • The cron decision logic is covered by automated tests.

 

Previous Versions


v1.2 Released July 1st, 2026

View/hide detailed changelog

1.2 — 23 June 2026 (current)

The release that made the addon configurable from inside itself, and hardened it for production use on someone else's WHMCS.

Added

  • Settings tab — all credentials moved into the addon's own mod_sumsub_settings table, so they survive deactivate/reactivate. Secrets are never echoed back.
  • Mandatory KYC tab — require verification by product group, by individual domain TLD, or with a master toggle for all domain orders.
  • Customers tab — flag individual clients as KYC-required regardless of what they order, from the tab or from a button on the client profile.
  • Setup Guide tab — end-to-end walkthrough with a live readiness checklist and copy-ready webhook and cron URLs for your install.
  • Status Guide tab — reference for every status and fail reason the dashboard can show.
  • Latin-name matching as a mandatory check, plus an admin nav restyle.

Changed

  • Addon folder renamed sumsub → tpckycsumsub; module label is now "TPC KYC - Sumsub". Existing settings migrate automatically on first load after the upgrade.
  • A failed name match now holds the record for manual review instead of auto-failing the customer.
  • Applicants resolve by their stable externalUserId, so a verified result still displays after an applicant is reset or recreated at Sumsub.
  • Dashboard: newest-first ordering, plus a full client-side table with per-page sizing, sort on any column, and search across all columns.
  • Webhook secret split out of the App Secret Key into its own WEBHOOK_SECRET setting.

Fixed

  • Webhook signature verification now reads Sumsub's X-Payload-Digest headers — previously every delivery was rejected with HTTP 403.
  • Cron matches the KYC name against tblclients order-insensitively.
  • The user-verification email now receives the verification_url merge field.
  • Duplicate KYC rows prevented via a unique index on userId.
  • Cron output is timestamped; the cron secret can be passed via CLI argument as well as a GET parameter.
  • 30-second cURL timeouts throughout, to stop requests hanging indefinitely.

Security

  • HMAC signature verification on the webhook — blocks spoofed status updates.
  • CSRF protection on the client-area KYC form and on manual-approve, which moved from a GET link to a protected POST form.
  • IDOR and XSS fixes in the status-check endpoint via strict userId validation and output escaping.
  • API payloads built with json_encode to prevent JSON injection; applicant IDs URL-encoded.
  • License enforcement hardened — every entry point now fails closed.

1.1 — 5 March 2026

Added

  • Age gate — applicants under 18 are rejected automatically, with under_18 recorded as the fail reason.
  • Name matching against the WHMCS client record, with ASCII normalisation and a name_mismatch fail reason.
  • Sumsub RED review answers now fail the record and store the reject label as the fail reason.
  • Fail reasons surfaced in the admin dashboard.

Fixed

  • Full name stored correctly on the KYC record.
  • placeOfBirth removed from the Sumsub applicant payload.
  • Missing failed status language key added; the init status now displays as "Initialized".

1.0 — 1 March 2026

First release. Sumsub applicant creation at checkout, orders held as Pending KYC, client-area verification page hosting the Sumsub WebSDK, status-sync cron with automatic order activation via AcceptOrder, admin dashboard, and license validation.

 

See also

FREE ResellerClub Tools v2

Working comfortably with ResellerClub's products and services through your WHMCS system requires additional tools.

Free
SEO Manager

The module developed to add meta description and meta keywords and change the page title

Free
WHOIS for Clients

WHOIS for Clients

Free
Dropbox Backup for WHMCS

This module will integrate WHMCS with Dropbox to upload a copy of WHMCS database onto the cloud. You will never have to worry about losing data any more.

Free
Software Licensing Addon

Build, License & Distribute Your Own Apps using WHMCS

Commercial