# WHMCS

> Install the Mintage Pay gateway on WHMCS and test it with test money before going live.

Source: https://mintagepay.com/docs/integrations/whmcs/ (last updated 2026-10-25)

Adds **Pay with USDC or USDT** as a payment gateway for WHMCS invoices. The client pays on the Mintage Pay payment
page and the invoice is marked **Paid** by itself when the payment is final.

**Beta.** This module passes our automated tests but has not yet been run on a real WHMCS installation. Follow "Try
it first with test money" below before you use a live key, and tell us what you see at
[hello@mintagepay.com](mailto:hello@mintagepay.com).

## What you need

- WHMCS 8 and PHP 7.4 or later with `curl`.
- A WHMCS admin with the **Configure Payment Gateways** permission, and file access to the WHMCS folder.
- Clients who pay this way must use a currency Mintage Pay supports: USD, EUR, GBP, CAD, AUD, CHF, JPY, MXN, BRL, INR,
  SGD, AED, PLN, SEK, NOK, DKK, NZD, ZAR, TRY, KRW, HKD, NGN, ARS, PHP, IDR, VND, PKR, EGP, BDT, KES, GHS, TZS, COP, CLP, PEN, UYU, PYG, BOB, DOP, GTQ, CRC, THB, MYR, TWD, LKR, NPR, KZT, UAH, ILS, SAR, QAR, CZK, HUF, RON, ISK, XAF or XOF. Clients in other currencies see a message asking them to
  choose another method. They always pay in US dollar stablecoins: a price in another currency is converted when the
  payment is started.
- The WHMCS **System URL** on public **https** (**Setup > General Settings > General**).
- A Mintage Pay account with at least one payout address set.

## Install

1. Download [mintagepay-whmcs.zip](https://app.mintagepay.com/downloads/mintagepay-whmcs.zip) and unpack
   it.
2. Copy the `modules` folder into your WHMCS folder, merging it with the `modules` folder that is already there.
   These must exist afterwards:
   - `modules/gateways/mintagepay.php`
   - `modules/gateways/callback/mintagepay.php`
   - `modules/gateways/mintagepay/`
3. In WHMCS, go to **Setup > Payments > Payment Gateways**, open the **All Payment Gateways** tab and click
   **Mintage Pay (USDC / USDT)**.
4. In the Mintage Pay dashboard, open **Developers > API keys** and create a key. Copy it: it is shown only once.
5. On the **Manage Existing Gateways** tab, paste the key into **API key** and click **Save Changes**. Leave **API
   base URL** empty.
6. Click **Open the Connect page** under the API key field. Click **Check key**: it shows your business name. Then
   click **Connect**. The page says **Connected to Mintage Pay as (your business name). Webhook registered.**

## Try it first with test money

1. Create a free account at [sandbox.mintagepay.com](https://sandbox.mintagepay.com), set a payout address and
   create a key there.
2. Paste the sandbox key in the gateway settings, save, and click **Connect** on the Connect page.
3. Create an invoice for a test client, for example 1.00 USD, with the payment method Mintage Pay.
4. Open the invoice as the client and click **Pay with USDC/USDT**. You land on a payment page with a **Test mode**
   banner.
5. Pay on the payment page with free test money. The page has a button to get some.
6. Within a minute or two the invoice is **Paid** and the **Gateway Log** shows "Successful".
7. When you are happy, paste your live key, save, and click **Connect** again on the Connect page. A new key needs
   its own connection.

## What you will see

| What happened | In WHMCS |
|---|---|
| Paid in full | Invoice Paid. The transaction id is the Mintage Pay payment id |
| Part paid | Invoice stays Unpaid. The Gateway Log says how much is still owed |
| Payment window closed with nothing paid | Invoice stays Unpaid. Opening it again starts a new payment |
| Anything that needs a person | "Manual review" in the Gateway Log and the Activity Log |

## If an invoice does not change

- **The Gateway Log shows "Rejected":** open the Connect page and click **Connect** again.
- **Nothing in the Gateway Log:** check that `modules/gateways/callback/mintagepay.php` can be reached over https
  from outside, and that no firewall blocks calls from Mintage Pay. In the Mintage Pay dashboard, **Developers >
  Webhooks** shows each delivery attempt.
- **The settings page says "Not connected" after you saved the gateway form:** click **Connect** again.

## Remove the gateway

1. On the Connect page, click **Disconnect**. This switches off the connection at Mintage Pay.
2. In **Setup > Payments > Payment Gateways > Manage Existing Gateways**, click **Deactivate** for Mintage Pay.
3. Delete the three items listed under Install, step 2.

Paid invoices keep their record.
