What you need before you start
- A working WHMCS installation and an admin account.
- Access to your server files: FTP/SFTP or your hosting File Manager.
- PHP with cURL and OpenSSL, and outbound HTTPS from your server (to load the live coin list).
- Your WHMCS System URL set to your real public https address. Payment confirmations are sent there.
- A wallet address for each coin you want to accept. Step 1 explains which ones.
Prepare your payout wallets
Crypto is forwarded to your own wallet addresses, one for each coin or network you want to accept. Prepare them before you start:
- Bitcoin (BTC): your Bitcoin address (usually starts with
bc1). - Solana (SOL and Solana tokens such as USDC and USDT on Solana): your Solana address.
- Monero (XMR) and Zcash (ZEC): your Monero and Zcash addresses.
- Ethereum and EVM networks (ETH, ERC20, BEP20, Polygon, Arbitrum, Base, Optimism, Avalanche-C): one
0xaddress covers all of them. - Any other coin you want, for example Litecoin, Dogecoin, Bitcoin Cash, Tron (TRC20 USDT) or TON.
Use self-custodial wallets that only you control (Trust Wallet, Exodus, Phantom for Solana, Cake Wallet for Monero, a hardware wallet and so on). Never use exchange deposit addresses, and always paste the address for the right network: a Bitcoin address in the Bitcoin field, a Solana address in the Solana field.
Download the module
Download the latest version from our GitHub repository: WHMCS-Crypto-Payment-Gateway-main.zip. It is free and open source; the code is on GitHub.
Upload the files to WHMCS
WHMCS modules are installed by copying files to your server. You can use an FTP/SFTP program (such as FileZilla) or your hosting control panel’s File Manager (cPanel, Plesk, DirectAdmin and so on).
- Unzip the file you downloaded. You get a folder called
WHMCS-Crypto-Payment-Gateway-main. - Open your WHMCS root folder on the server: the folder that contains
configuration.php,init.phpandviewinvoice.php(oftenpublic_htmlorpublic_html/billing). - Upload the
modulesfolder from insideWHMCS-Crypto-Payment-Gateway-maininto the WHMCS root folder. When asked, choose to merge or overwrite, so the new files are added next to your existing modules.
WHMCS-Crypto-Payment-Gateway-main/ ├─ LICENSE (not needed) ├─ README.md (not needed) └─ modules/ ← upload this folder
<whmcs root>/modules/gateways/
├─ paygatecrypto.php
├─ paygatecryptomulti.php
├─ paygatecrypto/ (lib.php, keys, logo)
├─ paygatecryptomulti/ (logo)
└─ callback/
├─ paygatecrypto.php
└─ paygatecryptomulti.phpUpload the modules folder into the WHMCS root, not into modules/gateways. If the files end up one level too deep (for example modules/gateways/modules/gateways/), WHMCS will not find the module and payments cannot be confirmed.
Keep the paygatecrypto folder even if you only use Multicoin: both gateways share its lib.php and the PayGate.to key in keys/, which the module uses to check that every payment confirmation is genuine.
Activate the gateways in WHMCS
The module adds two gateways. Use one or both:
| Gateway | How the client pays |
|---|---|
| Crypto Payment Gateway (Individual Coins) | The client picks a coin on the invoice and pays with a QR code on your own WHMCS. |
| Crypto Payment Gateway (Multicoin / Multi Mode) | One button: the client picks any coin on the secure hosted checkout page. |
- Log in to your WHMCS admin area.
- WHMCS 8: click the wrench icon Configuration › System Settings › Payment Gateways, then open All Payment Gateways (or Apps & Integrations and search for the name). WHMCS 7: Setup › Payments › Payment Gateways.
- Click the gateway you want to activate:
- Crypto Payment Gateway (Individual Coins)
- Crypto Payment Gateway (Multicoin / Multi Mode)
- The settings appear under Manage Existing Gateways.
Set up individual coins
The Individual Coins gateway loads the full coin list live from PayGate.to and shows one wallet field per coin. Fill in a wallet for every coin you want to accept and leave the others blank: a blank field means that coin is not offered.
IllustrationThe coin fields are generated from the live coin list, so the exact list on your screen follows what PayGate.to supports.
Click Save Changes.
Optional: set up Multicoin
Open Crypto Payment Gateway (Multicoin / Multi Mode) and fill in one wallet per network:
| Field | Accepts |
|---|---|
| EVM Wallet Address | ETH and tokens on ERC20, BEP20, Polygon, Optimism, Arbitrum, Base, Avax-C |
| Bitcoin Wallet Address (BTC) | Bitcoin |
| Solana Wallet Address (SOL) | SOL and Solana tokens |
| Monero Wallet Address (XMR) | Monero |
| Zcash Wallet Address (ZEC) | Zcash |
| Bitcoin Cash (BCH), Litecoin (LTC), Dogecoin (DOGE), TRC20 (Tron/USDT), TON (Toncoin/USDT) | One field each |
You can also set Underpaid Tolerance, Customer pays blockchain fees, your Custom Logo URL and the Background, Theme and Button colours of the hosted page. The Custom Domain (default checkout.paygate.sbs) can be your own domain with the custom domain guide. Click Save Changes.
Test with an invoice
Open a small test invoice and choose your crypto payment method:
- Individual Coins: the invoice shows “Select the coin you want to pay with:” and a Pay link for each coin. After choosing a coin, the client sees a QR code, the exact amount and a unique address right on the invoice. A “Pay with a different coin” link lets them switch before paying.
- Multicoin: the client clicks Pay with cryptocurrency and picks a coin on the hosted checkout page.
Each coin has its own minimum. If the invoice is below it, the client is asked to choose another coin. See the minimum per coin.
The invoice is marked paid and you are paid out
When the payment is confirmed on the blockchain, the crypto is forwarded instantly to your wallet and the invoice is marked Paid. The transaction ID on the invoice starts with pgc_ (individual coins) or pgcmulti_ (Multicoin). Successful and underpaid payments are also listed under Billing › Gateway Log.
The module keeps its payment data for each invoice in the invoice Notes. Do not edit or clear the notes of an invoice that is waiting for a crypto payment.
All settings explained
| Setting | What it does | Default |
|---|---|---|
| Description | Text shown on the invoice. | Pay with your preferred cryptocurrency. |
| Customer pays blockchain fees | Adds the estimated network fee to the amount to send. | Off |
| Underpaid Tolerance | Accepts payments slightly below the total (0% to 10%). | 1% |
| API Domain | Your dedicated API endpoint. | Empty (uses api.paygate.to) |
| Coin wallet fields (Individual) | One field per coin; blank = not offered. | Empty |
| Custom Domain (Multicoin) | Domain of the hosted checkout page. | checkout.paygate.sbs |
| Network wallets (Multicoin) | EVM, BTC, BCH, LTC, DOGE, SOL, TRC20, XMR, ZEC, TON. | Empty |
| Custom Logo URL, colours (Multicoin) | Branding for the hosted page. | Empty |
Troubleshooting and FAQ
Is Monero, Zcash and Solana really supported with instant payouts?
Yes. PayGate.to is the only crypto payment gateway with instant payouts for Solana (SOL), Monero (XMR), Zcash (ZEC) and Bitcoin (BTC), in WHMCS and every other module.
The settings show a "Coin list" error instead of the coins.
Your server could not reach PayGate.to. Save and reload the page; if it keeps happening, ask your host to allow outbound HTTPS to api.paygate.to.
Clients see "No cryptocurrencies are currently available".
No coin has a wallet yet. Fill in the wallet field of at least one coin in the Individual Coins gateway and save.
The client paid but the invoice is still Unpaid.
Check that your System URL is your public https address and that /modules/gateways/callback/ is reachable from the internet (no password, IP allow-list or maintenance mode). Check Billing › Gateway Log for an “Underpaid” entry. More in the WHMCS troubleshooting guide.
The client sent too little.
Payments below your Underpaid Tolerance are logged as Underpaid in the Gateway Log and the invoice stays unpaid. The funds received are already in your wallet; settle the difference with the client.
How do I update the module?
Download the latest zip and upload the modules folder again, overwriting the old files. Your settings are kept and invoices already waiting for payment settle normally. Payment details are now stored in WHMCS’s database instead of the invoice notes, so clients no longer see them.
I used the older module with one gateway per coin.
The new module replaces the old per-coin gateways with one Individual Coins gateway. Deactivate the old per-coin gateways so clients do not see duplicates.
What are the fees?
1.5% flat rate plus blockchain fees. Turn on Customer pays blockchain fees to let the client cover the network fee.
Do I need an account, API key or KYC?
No registration and no KYC for you or your clients. Your wallet addresses are all you need.
Other platforms and next steps
The same crypto gateway is available for every major platform:
Stuck? Our team replies fast.Send us your platform, a screenshot and the order number if you have one.
Chat with support