Before you begin
Compatibility is limited to the environments actually tested. Read the compatibility matrix included in the module ZIP before choosing a WHMCS version; WHMCS 9.x remains unverified.
- An HTTPS WHMCS installation with USD invoices and a running WHMCS cron.
- PHP 8.1+ with cURL, JSON, OpenSSL and BCMath, plus transactional InnoDB tables. Use versions supported by your WHMCS release. WHMCS 9 compatibility has not yet been verified.
- A Brislet merchant login. During this preview, registration stays off until the platform owner verifies email delivery. Use your supplied invitation/account.
- A dedicated Bitcoin receiving account with an account-level public key. Testnet and mainnet must use separate accounts and credit.
- A backup of WHMCS files/database and its configuration encryption key before installing or upgrading.
Sign in and protect your account
- Open Merchant sign in. Activate your invitation, or register and verify your email when registration is enabled.
- Choose a password of at least 14 characters.
- Open Account security, confirm your password and start authenticator setup.
- Scan the private setup QR with your authenticator, enter its code, and save the one-use recovery codes somewhere safe outside the server.
MFA is required for live wallet/API-key setup and connection detachment. Platform-admin MFA follows the configured policy and is currently optional. Password confirmation still protects sensitive changes. Password recovery keeps MFA in place.


Connect a dedicated receiving wallet
- Select the correct network in the dashboard. For testing, use Testnet and test coins only.
- Open Receiving wallet. Export the public key of the exact receiving account from your wallet. Supported account-key formats include xpub/zpub for mainnet and tpub/vpub for testnet, with the corresponding supported address type.
- Select Native SegWit or Legacy Bitcoin to match that account.
- Paste one Receive address from the same account. Enter its correct receiving index and the account’s last-used discovery anchor. A fresh account commonly starts with receive index 0 and anchor −1; check your wallet rather than guessing.
- Confirm your password and choose Verify and encrypt wallet.
Brislet checks the key, network, derivation/address and history before locking the wallet. A unique invoice address is allocated on the authenticated Pay click, not when WHMCS creates an invoice. Reloads reuse the mapping.

Create a WHMCS connector API key
- Open API keys in the same network as your wallet.
- Select WHMCS connector as the purpose, confirm your password and create the key.
- Copy the key immediately. The full key is shown only once.
The connector requires merchant:read, payments:read, payments:write, webhooks:read and webhooks:write. A reporting-only key cannot connect. A testnet key begins np_test_; a live key begins np_live_.

Upload the native WHMCS module
- Download the module ZIP and verify its SHA-256 digest against the manifest.
- Extract it locally. Upload the contents of
modules/andincludes/into your WHMCS root, preserving their paths. - Do not upload development files or documentation into the WHMCS web root.
- In WHMCS admin open System Settings → Addon Modules, activate Brislet SaaS Setup and grant access only to appropriate admin roles.
- Open Addons → Brislet SaaS Setup.
WHMCS root/ ├── modules/gateways/brisletsaas.php ├── modules/gateways/brisletsaas/ ├── modules/gateways/callback/brisletsaas.php ├── modules/addons/brisletsaasops/ └── includes/hooks/brisletsaas.php
These are native WHMCS modules/hooks. No WHMCS core file needs editing. The SaaS connector is separate from the earlier standalone brislet gateway.
Connect your merchant account
- Create a dedicated unpaid $1 USD WHMCS test invoice, with no linked service, domain or order.
- In the setup addon choose Connect or retry saved profile and Testnet.
- Paste the matching connector API key and the dedicated invoice ID. Multiple IDs may be comma-separated; each new test invoice must be unpaid, USD and at most $10 without linked services.
- Choose Connect securely. The service checks the key’s account, network and required permissions, then registers the signed callback.
- Activate Brislet Payments SaaS under WHMCS Payment Gateways. Keep it hidden from normal ordering while testing.
The callback URL is derived from your WHMCS HTTPS System URL: https://your-whmcs-domain/modules/gateways/callback/brisletsaas.php. It must be publicly reachable on HTTPS port 443. Permit signed server POSTs if a firewall protects WHMCS.


Add processing credit
Open Processing credit and choose an available top-up amount. The top-up page supplies the correct collection address and exact BTC amount. Your wallet’s network fee is additional. Full quoted USD credit is added after three confirmations, once only.
- $20 credit supplies $2,000 processing capacity at 1%, before reservations.
- A $1 confirmed invoice uses $0.01 of processing credit.
- Pending quotes reserve their processing fee; confirmed payments capture it once.
- Unused credit never expires or resets monthly.
- Top-ups do not incur the 1% merchant-processing fee. Testnet credit has no cash value and cannot fund mainnet invoices.

If top-ups are unavailable, the platform collection wallet is not configured or new funding is paused. Do not send to an old or guessed address.
Run a dedicated testnet payment
- Open the allowlisted invoice as its WHMCS customer and select the SaaS gateway.
- Click the Bitcoin payment button. The service creates or reuses that invoice’s receiving address.
- Check that the checkout says Testnet. Scan the QR, or copy the address and exact BTC amount.
- If your wallet reads only the address, enter the shown amount manually. Ensure the recipient receives that amount; the network fee is additional.
- Send once. The page should move from awaiting payment to confirming, show progress toward three confirmations, then return to the paid invoice.
Check the result in both systems
- WHMCS invoice shows Paid with exactly one native transaction receipt.
- Brislet payment shows Paid and the 1% fee captured once.
- Reloading the checkout or repeating a callback does not add another receipt or charge.
- A confirmed credit top-up adds credit once, with no processing fee.
Upgrades, fresh installs and key changes
Upgrade files
Back up first, then upload the new module/hook files over the existing SaaS paths. Keep the module’s configuration/payment tables and WHMCS encryption key. Deactivation does not delete historical mappings.
Replace an API key
Create a new connector-purpose key for the same merchant/network. In the WHMCS addon choose Replace API key. The module checks permissions, identity and the existing callback before replacing only the encrypted key. Check payment status access before revoking the old key. The installation ID, callback signing secret and mapped invoices remain unchanged.
Add another test invoice
Choose Add dedicated test invoices. New IDs are validated and appended. Existing IDs and paid mappings remain; repeating an addition does not duplicate them.
Fresh reinstall or callback/signing-secret change
- Resolve active/review payments and pending callbacks. Empty expired invoices with released reservations can remain; their addresses stay monitored. Save a full backup.
- In Brislet open WHMCS connection. With MFA enabled, confirm your password and detach the completed connection.
- For a genuinely fresh install, have the old module settings/tables archived safely. Keep paid accounting receipts and wallet allocation history.
- Install and connect the module again. A fresh profile can register a new signing secret. For a WHMCS callback-domain move, reconnect the preserved profile after the owner updates WHMCS’s HTTPS System URL.
Detachment preserves wallet addresses/counters, paid payments, credit, API keys and delivery history. It refuses unpaid/review payments or pending callbacks. It does not silently discard a pending integration.
Payment states and troubleshooting
| What you see | Meaning / next step |
|---|---|
| Awaiting payment | No qualifying payment yet. Check the network, address, quote amount and expiry before sending. |
| Partial | The invoice is not fully funded. The checkout shows the remaining BTC amount. Do not resend the original full amount. |
| Confirming | A payment was detected but has not reached the required confirmation depth. Wait; do not send again. |
| Expired | The quote expired. An empty unsettled quote may be refreshed through the invoice button with the same address. A payment already detected remains monitored. |
| Paid / fee captured | The service has accounted for payment. WHMCS must independently verify and record one native receipt before showing the invoice as paid. |
| Review / delayed | Possible late payment, changed invoice, provider delay or ambiguous chain observation. Preserve the invoice ID, payment ID and transaction ID; contact support. |
| Overpayment | The quoted invoice/top-up amount is accounted for under the payment rules; excess is recorded for review. It does not automatically buy more services or add unlimited credit. |
| Setup unavailable | Check key purpose/network, merchant identity, HTTPS callback access and test-invoice eligibility. Retry the same saved profile instead of deleting tables. |
Refunds are manual through support and the merchant’s wallet. The module does not hold a spending key or automatically broadcast refunds.
Set up platform email and operations
- Use the separate platform-admin account; do not promote a shared merchant demo login.
- For stronger admin protection, enable two-factor authentication and save recovery codes. It is optional under the current administrator policy.
- Open Email settings. Enter SMTP hostname, port 465 or 587, username, password and the sender address.
- Enable email delivery, request a test to your own verified admin mailbox and confirm its link while signed in as the same admin.
- Enable customer registration only after delivery works. Test real signup, email verification and password recovery with an account you control.

The admin workspace also provides merchant/payment/top-up oversight, audited credit corrections, new-quote pause controls, safe verification/callback retries, worker/provider health and audit records. Operational email alerts require verified SMTP and a verified admin mailbox eligible under the configured MFA policy. Offsite backups are owner-managed.
Before accepting real BTC
- Complete MFA, real email signup/recovery and backup recovery validation.
- Configure a dedicated or safely coordinated mainnet receiving/collection account. Never duplicate the standalone wallet’s allocator.
- Run a small controlled mainnet invoice and credit top-up with the platform operator, verifying one receipt, one invoice fee and one top-up credit.
- Validate duplicate notifications, recovery and your WHMCS/runtime compatibility.
- Coordinate the permanent service endpoint and approved hostname update when a domain is secured.
Checking a preview box or uploading the ZIP does not enable live acceptance. The platform’s mainnet gates stay enforced until launch configuration and validation are completed.
Download Brislet
Native gateway, setup addon, signed callback and reconciliation hook, with installation and recovery instructions.
Download module ZIP ↓ SHA-256 manifest- Correct network and dedicated receiving account verified.
- Connector-purpose key saved securely; no keys in browser code or tickets.
- Callback reachable and WHMCS cron running.
- Dedicated USD test invoice has no live services.
- One successful payment / one receipt / one fee deduction verified.