- a payment gateway (
PawPayments (Crypto)) that pays any WHMCS invoice with crypto, - an optional addon (
PawPayments Crypto Deposit) that adds an Add Funds page where customers credit their WHMCS balance with crypto.
Download the plugin (.zip)
Ready-to-upload
pawpayments-whmcs-<version>.zip (gateway + addon).View source on GitHub
Source, releases, and issue tracker.
| Property | Value |
|---|---|
| GitHub | pawpayments/whmcs-plugin |
| Download | Latest release .zip |
| WHMCS | 8.x |
| PHP | 7.4+ (8.1+ recommended; WHMCS 8.x supports up to 8.3) |
| Required extensions | curl, json, mbstring, openssl |
| Database | Whatever WHMCS already uses (MySQL / MariaDB) |
File layout
The release zip mirrors the WHMCS install tree:Activate the gateway
- Setup → Payments → Payment Gateways → All Payment Gateways.
- Click PawPayments (Crypto) to activate.
-
Fill the fields:
Field Value Display Name Customer‑facing label, e.g. PawPayments (Crypto). API Key Merchant API key from the Paw dashboard. API Base URL https://api.pawpayments.com(default).Invoice TTL (seconds) Lifetime of the underlying Paw invoice. Default 3600. The samepayment_urlis reused inside that window.
Activate the Add Funds addon (optional)
- Setup → Addon Modules → PawPayments Crypto Deposit → Activate.
- Configure — leave the API Key field empty to inherit the gateway’s key, or enter a separate one.
- Grant access to the desired admin roles, save.
mod_pawpayments_credits on activation; this small table provides idempotency for the top‑up webhook (primary key on order_id).
The customer top‑up page is then available at https://<your-whmcs>/index.php?m=pawpayments_topup. Link to it from a custom client‑area menu item.
Webhook URLs
The plugin sendsnotify_url on every invoice it creates, so manual webhook setup is not required. The endpoints are:
| Purpose | URL |
|---|---|
| Checkout | https://<your-whmcs>/modules/gateways/callback/pawpayments.php |
| Top‑up | https://<your-whmcs>/modules/gateways/callback/pawpayments_topup.php |
Lifecycle
Checkout.addInvoicePayment is called with the Paw order_id as transactionId, so duplicate webhook deliveries never double‑pay an invoice.
Top‑up. Each top‑up creates a one‑shot Paw invoice via POST /api/v2/invoices and is recorded in mod_pawpayments_credits keyed by order_id. On webhook success the WHMCS AddCredit API is called, visible on Clients → Client Profile → Summary → Credit Balance.
Webhooks carrying a permanent_address_id are silently acknowledged with 200 OK.
Smoke test (checkout)
OK with HTTP 200, and the WHMCS invoice transitions to Paid.
Troubleshooting
| Symptom | Cause / Fix |
|---|---|
| Gateway not in the list at Setup → Payments → Payment Gateways | Files not uploaded or wrong path. Verify modules/gateways/pawpayments.php exists and is readable by the web user. |
Failed to create payment: Invalid API key | API key wrong or merchant not activated. |
Webhook returns HTTP 500 with Failed to open required init.php | Outdated callback. Current callback uses require_once __DIR__ . '/../../../init.php'; (three .., not four). Re‑upload the latest callback/pawpayments*.php. |
| Webhook returns HTTP 401 Invalid signature | The API key in gateway settings does not match the one used to issue the invoice. Update settings and re‑issue. |
| Top‑up addon not visible | Activate it under Setup → Addon Modules and grant access to your admin role. |
Module Not Activated on top‑up | The gateway must be enabled — the addon falls back to the gateway’s API key. |
| Duplicate top‑ups | mod_pawpayments_credits prevents this. If the table is missing, re‑activate the addon. |
pawpayments).

