Skip to content

Cryptonly lets your WHMCS store accept Bitcoin, stablecoins and other cryptocurrencies through Cryptonly’s secure hosted checkout. Customers pay on the Cryptonly payment page; WHMCS invoices are marked paid automatically.


RequirementDetails
WHMCS8.0 or higher (tested up to 9.0.5)
PHP7.4 or higher (tested up to 8.2)
Cryptonly accountcryptonly.net merchant account
CredentialsAPI key and webhook signing key from the account’s Accounts → Settings → Security page
Public HTTPS System URLRequired so Cryptonly can deliver webhooks

  1. Sign up at cryptonly.net (or sandbox-merchant.cryptonly.net for testing).
  2. Open Accounts, select the account, then Settings → Security. Create an API key. The key selects that account.
  3. On the same page, under Webhook signing key, click Rotate key and copy the secret when it is shown. It appears only once, and the previous key stops working immediately.

https://cdn.cryptonly.net/plugins/whmcs/cryptonly-whmcs-stable.zip

  1. Download the Cryptonly WHMCS gateway zip (WHMCS Marketplace or release package).

  2. Extract the archive on your computer.

  3. Upload the modules/ folder into your WHMCS root so it merges with the existing modules/ directory (FTP, SFTP, or your hosting file manager).

    After upload, these paths should exist:

    modules/gateways/cryptonly.php
    modules/gateways/cryptonly/
    modules/gateways/callback/cryptonly.php
  4. In WHMCS admin, activate Cryptonly:

    • Setup → Payments → Payment Gateways, or
    • System Settings → Apps & Integrations (search “Cryptonly”).

WHMCS gateway settings

Open Setup → Payments → Payment Gateways → Cryptonly → Manage Existing Gateway and fill in the fields:

WHMCS fieldWhat to enter
Display NameName shown to customers (e.g. Pay with Crypto)
API KeyCryptonly API key. The key selects the account. See required scopes
Webhook Signing KeyRequired — payments are confirmed only via webhooks
Sandbox ModeEnable to use the Cryptonly sandbox API for testing
Order ID PrefixOptional; default WHMCS → WHMCS-123, WHMCS-123-2 on retry
Debug LogOptional; writes entries to Utilities → Logs → Gateway Log

Create the key on the account’s Accounts → Settings → Security page and enable only these scopes:

ScopeUsed for
currencies.listConfirm the API key when saving the gateway (GET /currencies)
invoices.listReuse a payable invoice or choose the next orderId, and load the invoice when create returns a duplicate (GET /invoice)
invoices.createCreate the invoice at checkout (POST /invoice)

Click Save Changes. The module validates the API key with Cryptonly GET /currencies.


  1. Enable Sandbox Mode and enter credentials from sandbox-merchant.cryptonly.net.
  2. Confirm Setup → General Settings → System URL is a public HTTPS address.
  3. Create a test WHMCS invoice and select Cryptonly as the payment method.
  4. Complete payment on the Cryptonly hosted page (testnet only in sandbox), or use Simulate payment on the invoice in Cryptonly Accounts → History to settle it without sending testnet funds — see Testing your integration.
  5. Verify the WHMCS invoice is marked Paid and entries appear under Utilities → Logs → Gateway Log.
  6. Optional: in Cryptonly admin, use Settings → Integration → Test webhooks against your callback URL — see Testing your integration.

See the Sandbox environment guide for supported test networks and safety notes.


The module listens for invoice.statusChanged webhooks and applies payments only on settled amounts. Other statuses are logged to Utilities → Logs → Gateway Log without changing the WHMCS invoice:

Cryptonly invoice statusWHMCS behavior
createdInvoice stays Unpaid (customer may still pay on the hosted page)
processing, suspendedInvoice stays Unpaid; status logged only
paid, overpaidPayment applied; invoice marked Paid when balance is cleared
partially_paidPartial payment applied to the WHMCS invoice
expired, failed, cancelledLogged only; no automatic payment

The WHMCS invoice stays Unpaid from checkout until Cryptonly reports a settled payment (paid, overpaid, or partially_paid). There is no separate webhook when the customer only selects a currency on the hosted page.


Before accepting real payments:

  • Disable Sandbox Mode
  • Enter production API Key and Webhook Signing Key
  • Confirm System URL is public HTTPS
  • Place a small real test payment and confirm the invoice is marked Paid


For help with your Cryptonly merchant account, credentials, or payment questions, visit Cryptonly or write to [email protected].