E-commerce plugins
WHMCS gateway
Install and configure the official WHMCS payment gateway with native OAuth, DPoP-bound tokens, hosted MakePay checkout, and signed callbacks.
MakePay WHMCS Gateway
Overview
The official MakePay WHMCS gateway adds hosted crypto checkout to WHMCS invoices. WHMCS renders a payment button on the invoice, MakePay creates the hosted payment link, and the signed callback marks the invoice paid after the payment settles.
Use Connect MakePay for normal setup. Manual API-key credentials remain available as a fallback.
Before You Start
- WHMCS 8.13 LTS or WHMCS 9.x
- PHP 8.1 or newer with OpenSSL enabled
- HTTPS WHMCS System URL
- WHMCS administrator access to Payment Gateways
- A MakePay company where you can manage payment settings
Install The Gateway
Download the latest ZIP package:
https://plugins.makecrypto.io/downloads/whmcs/latest.zip
Extract the ZIP and upload the modules directory into the WHMCS root. The
package installs these files:
modules/gateways/makepay.php
modules/gateways/makepay/checkout.php
modules/gateways/makepay/oauth.php
modules/gateways/makepay/lib/*.php
modules/gateways/callback/makepay.php
In WHMCS, open System Settings > Payment Gateways, activate MakePay, then save the gateway settings.
Connect MakePay
Open the MakePay gateway settings and choose Connect MakePay. The gateway:
- Opens MakeCrypto in a browser tab.
- Asks you to sign in and choose the company that should receive payments.
- Shows the permissions needed by the WHMCS gateway.
- Returns you to WHMCS after approval.
- Saves the connection in WHMCS gateway settings.
- Configures the MakePay callback URL and webhook secret.
Configure MakePay
After connection finishes, keep Connection method set to the default connected mode. Review:
- MakePay company ID
- Settlement asset
- Payment expiration
- MakePay connection status
- Webhook signing secret
Manual fallback requires a MakePay company ID, API key ID, API key secret, and webhook secret.
Checkout Flow
When a client opens an unpaid WHMCS invoice, the MakePay gateway renders a payment button. The checkout handler validates the signed form payload, loads the invoice through WHMCS local API helpers, creates a MakePay payment link, and redirects the client to hosted MakePay checkout.
| Field | Purpose |
|---|---|
source=whmcs | Identifies the integration |
orderId=whmcs_invoice_<invoiceId> | Maps MakePay activity back to WHMCS |
invoiceId | WHMCS invoice ID |
clientId | WHMCS client ID |
moduleVersion | Installed MakePay gateway version |
whmcsVersion | WHMCS runtime version |
The buyer returns to the original WHMCS invoice after payment or cancellation.
Invoice States
MakePay sends signed callbacks to:
https://billing.example.com/modules/gateways/callback/makepay.php
| MakePay status | WHMCS behavior |
|---|---|
paid, completed, confirmed, succeeded | Calls addInvoicePayment and records the transaction ID |
failed, expired | Logs the callback and leaves the invoice unpaid |
cancelled, canceled | Logs the callback and leaves the invoice unpaid |
refunded | Logs the callback for manual review |
| Other statuses | Logged and ignored |
WHMCS transaction logs include the MakePay callback payload so support teams can trace payment UID, invoice metadata, amount, and status.
Security Notes
The gateway stores connection details in WHMCS gateway settings. Keep WHMCS administrator access limited to trusted operators, and disconnect the gateway in MakeCrypto if an administrator account or server backup is exposed.
The connection asks for these permissions:
company:readmakepay:payment-links:readmakepay:payment-links:writemakepay:customers:readmakepay:customers:writemakepay:settings:readmakepay:settings:write
Troubleshooting
If Connect MakePay cannot start, confirm the WHMCS System URL is HTTPS and matches the public billing domain. If clients see a checkout error, confirm the gateway is active, the invoice is unpaid, and the MakePay company ID is stored. If callbacks do not mark invoices paid, compare the MakePay callback URL with the WHMCS callback URL above and rotate the webhook secret from the gateway settings.