EN
Hosting billing

Crypto payments for WHMCS

Accept crypto on WHMCS invoices. The client presses Pay Now, pays on the SnapEX Pay page in USDT on TRON, Ethereum, BSC and other networks, or in other coins converted to USDT, and the invoice is marked paid in WHMCS automatically.

Download the module

Free. Version 1.0.0.

What it does

  • No wallets or nodes to run: funds arrive in your SnapEX Pay merchant balance.
  • Three independent ways an invoice gets marked paid: the signed webhook, the client returning from the payment page and a check on every WHMCS cron run. A lost webhook never leaves a paid invoice unpaid, and a payment is never added twice.
  • Multi-currency WHMCS: with Convert To For Processing set to USD, invoices are still recorded in the client's currency.
  • Partial and extra payments are never applied blindly: they go to the Gateway Log for you to review.
  • Test mode: test invoices confirm by themselves without real money; only logged-in admins see the button while it is on.

Install

  1. Upload the contents of the archive to the WHMCS root folder, keeping the paths: modules/gateways/snapexpay.php, modules/gateways/snapexpay/, modules/gateways/callback/snapexpay.php, includes/hooks/snapexpay.php.
  2. In WHMCS admin open System Settings → Payment Gateways → All Payment Gateways and activate SnapEX Pay (Crypto).
  3. In the SnapEX Pay merchant cabinet create an API key with the invoices.read and invoices.write scopes and paste it into API key.
  4. Webhook (recommended): in the cabinet set the webhook URL to https://<your WHMCS>/modules/gateways/callback/snapexpay.php (the exact address is shown under the field in WHMCS) and paste the whsec_… secret into Webhook secret.
  5. If your WHMCS currency is not USD, set Convert To For Processing to USD. Invoices are still recorded in the client's currency.
  6. Turn on Test mode, open an unpaid invoice as admin, pay it on the SnapEX Pay page with a test method and check it turns Paid. Then turn test mode off.

Settings

API keyFrom the SnapEX Pay cabinet.
Webhook secretwhsec_… from the cabinet webhook settings. Without it the module still works through the return page and cron.
Network fee paid byMerchant: the client pays exactly the invoice amount. Client: the fee is added on top.
Payment window, minutesHow long the payment page stays valid (1–1440, default 60). Pressing Pay Now again later opens a fresh one.
Test modeTest invoices, admins only. Test payments are ignored once test mode is off.

Questions

What happens if the webhook does not arrive?

The invoice is still marked paid: the module also checks the payment when the client returns from the payment page and on every WHMCS cron run. A payment is never added twice.

My WHMCS currency is not USD. Will it work?

Yes. Set Convert To For Processing to USD in the gateway settings; invoices are still recorded in the client's currency.

What if the client sends less than the invoice amount?

If the client does not top up in time, nothing is added automatically. The Gateway Log gets an entry "Partial payment — review and apply manually" with the received amount.

What if the client pays after the invoice was closed?

The Gateway Log gets an entry, and the money is in your SnapEX Pay balance.

Can I test without real money?

Yes. Turn on Test mode: test invoices confirm by themselves, and only logged-in admins see the button while it is on.

Where do I see what the module did?

In WHMCS, Billing → Gateway Log. The transaction ID of a payment is the SnapEX Pay invoice ID (inv_…).

Ready to accept crypto?

Create a merchant account, get an API key and connect the module. 1% per payment, no monthly fee.