WHMCS
WHMCS payment module for USDT/USDC blockchain monitoring. Automate invoice payments with stablecoin detection and webhook callbacks via PayzCore.
WHMCS Integration
The PayzCore WHMCS module adds USDT/USDC blockchain monitoring as a payment gateway in your WHMCS installation.
- Source: github.com/payzcore/whmcs
- Requirements: WHMCS 7.x+, PHP 7.4+, PayzCore account
How It Works
- Client views an unpaid invoice and clicks "Pay with USDT/USDC".
- WHMCS module calls the PayzCore API.
- Payment page shows the wallet address, QR code, and exact amount.
- Client sends stablecoins from their wallet.
- PayzCore sends a webhook to
callback.php. - Module verifies the HMAC signature and applies the payment to the invoice.
- Invoice is marked as "Paid".
Installation
- Download the module from GitHub releases
- Upload the files to your WHMCS installation:
modules/gateways/
├── payzcore.php ← Main gateway file
└── payzcore/
├── callback.php ← Webhook receiver
└── lib/
└── PayzCore.php ← API clientAlso copy the callback file:
modules/gateways/callback/
└── payzcore.php ← Webhook callback entry point- Set correct file permissions (644 for files, 755 for directories)
Configuration
- In WHMCS admin: Setup > Payments > Payment Gateways
- Select PayzCore from the dropdown and click Activate
- Configure the settings:
| Setting | Value | Notes |
|---|---|---|
| API Key | pk_live_... | From your PayzCore project |
| Webhook Secret | whsec_... | From your PayzCore project |
| Display Name | "Pay with USDT" | Shown to clients |
-
Click Test Connection. The module calls
GET /api/v1/configto auto-detect available chains and tokens from your connected wallet. The chain and token dropdowns are populated automatically — no manual selection is needed. -
Set your webhook URL in the PayzCore dashboard to:
https://yourdomain.com/modules/gateways/callback/payzcore.phpInvoice Status Mapping
| PayzCore Event | WHMCS Action | Notes |
|---|---|---|
payment.completed | Invoice marked as Paid | Payment applied in full |
payment.overpaid | Invoice marked as Paid | Overpayment amount logged in transaction notes |
payment.partial | Partial payment applied | Invoice remains unpaid for remaining balance |
payment.expired | No action | Invoice stays unpaid, client can retry |
Overpayment Handling
When a client overpays, the invoice is marked as Paid and the overpayment amount is logged in the WHMCS transaction notes. Refunds or credits must be handled manually by the admin.
Partial Payment Handling
If a client sends less than the invoice amount, the received amount is applied as a partial payment. The invoice remains open for the remaining balance. The client can create a new payment for the remainder.
Client Experience
- Client views an unpaid invoice in the WHMCS client area
- Selects "Pay with USDT" (or your configured display name)
- Sees the wallet address, QR code, exact amount, and expiration timer
- Sends the exact stablecoin amount from their wallet
- Once confirmed, the invoice status updates automatically
Troubleshooting
Gateway not showing in admin
- Ensure all files are in the correct directories (see Installation)
- Check PHP error logs for syntax errors
- Verify file permissions (readable by web server)
Callback not working
- Verify the callback URL is accessible from the internet:
https://yourdomain.com/modules/gateways/callback/payzcore.php - Check that your server allows POST requests from external IPs
- Look for errors in the WHMCS Activity Log: Utilities > Logs > Activity Log
Invoice not updating after payment
- Confirm the Webhook Secret matches between PayzCore and WHMCS settings
- Check the WHMCS Gateway Log: Utilities > Logs > Gateway Log
- Verify the PayzCore webhook delivery status in your PayzCore dashboard