# OpenCart

> Install Mintage Pay on OpenCart 4 or OpenCart 3, test it with test money and go live.

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

Adds **Pay with USDC or USDT** to the OpenCart checkout. The customer pays on the Mintage Pay payment page and the
order moves to **Processing** by itself when the payment is final.

Tested on 5 October 2026 with OpenCart 4.0.2.3 and OpenCart 3.0.4.0 against the sandbox: install, connect, checkout,
payment, order updated without the customer returning to the store, and removal.

## What you need

- OpenCart 4.0.x or 3.0.x. The version is shown at the bottom of the admin page.
- An admin account that can change **Extensions**.
- The customer's currency must be one 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. The method is hidden for other currencies. Your customers always pay
  in US dollar stablecoins: a price in another currency is converted when they check out.
- Your store on **https**, reachable from the internet. Maintenance mode blocks payment updates.
- A Mintage Pay account with at least one payout address set.

## Download

| Your version | File |
|---|---|
| OpenCart 4.0.x | [mintagepay.ocmod.zip for OpenCart 4](https://app.mintagepay.com/downloads/opencart4/mintagepay.ocmod.zip) |
| OpenCart 3.0.x | [mintagepay.ocmod.zip for OpenCart 3](https://app.mintagepay.com/downloads/opencart3/mintagepay.ocmod.zip) |

**Do not rename the file.** It must be called `mintagepay.ocmod.zip` when you upload it: OpenCart names the
extension after the file. If your browser saved it as `mintagepay.ocmod (1).zip`, rename it back first.

## Install on OpenCart 4

1. Go to **Extensions > Installer**, click **Upload** and choose the file. Then click the green **Install** button on
   the Mintage Pay row.
2. Go to **Extensions > Extensions** and choose the type **Payments**. Find **Mintage Pay (USDC / USDT)**, click
   **Install**, then **Edit**.
3. In the Mintage Pay dashboard, open **Developers > API keys** and create a key. Copy it: it is shown only once.
4. Paste the key. Choose the order statuses (the usual choice: waiting for payment = Pending, paid = Processing, on
   hold = Pending, cancelled = Canceled). Set **Status** to on.
5. Click **Save**. The page says **Saved. Connected to Mintage Pay as (your business name). Webhook registered.**

## Install on OpenCart 3

1. Go to **Extensions > Installer**, upload the file and wait for the progress bar to finish.
2. Go to **Extensions > Extensions** and choose the type **Payments**. On **Mintage Pay (USDC / USDT)**, click
   **Install**, then **Edit**.
3. Paste the key, choose the statuses and set **Status** to Enabled, as for OpenCart 4. Save.

Leave **API base URL** empty. The key decides where the extension connects.

## If saving shows an error

| Message | What to do |
|---|---|
| "did not accept the API key" | The key is wrong or was revoked, or it is a live key in a sandbox setup |
| "webhook could not be registered" | The store must be on public https |
| "could not be reached" | The server cannot make outgoing https calls. Ask your host |

## 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 extension settings and save.
3. In the storefront, add a cheap product to the cart and go to checkout. Choose **Pay with USDC or USDT** and confirm
   the order. You land on a payment page with a **Test mode** banner. In the admin the order is **Pending**.
4. Pay on the payment page with free test money. The page has a button to get some.
5. Within a minute or two the order is **Processing**, with a history entry giving the amount and a link to the
   transaction.
6. When you are happy, paste your live key and save.

## If an order stays Pending after it was paid

- Look in **System > Maintenance > Error Logs**. A line with "invalid_signature" means the stored secret does not
  match: tick **Register the webhook again on save** in the extension settings and save.
- No line at all means the update did not arrive. Check https, the firewall and maintenance mode.

## Update to a new version

Download the new file for your version (same name, `mintagepay.ocmod.zip`). Your settings, your connection and the
link between your orders and their payments are kept. An order that was waiting for payment when you updated is still
marked paid when the payment arrives.

**OpenCart 3:** in **Extensions > Installer**, upload the new file. It replaces the old one.

**OpenCart 4** does not accept a file for an extension that is already installed. Use one of these:

- **Replace the files.** Unpack the zip and copy its contents over the folder `extension/mintagepay/` on your server
  (SFTP or your host's file manager). Nothing else changes.
- **Without server access:**
  1. **Extensions > Extensions > Payments**: click **Uninstall** on Mintage Pay. This switches off the connection and
     removes the settings.
  2. **Extensions > Installer**: click **Uninstall**, then **Delete**, on the Mintage Pay row.
  3. Upload the new file and click **Install**.
  4. **Extensions > Extensions > Payments**: click **Install** on Mintage Pay, then **Edit**, paste your API key
     again and save.

  Do this at a quiet moment: between steps 1 and 4 your store is not connected.

The settings page shows the version at the bottom of the note about currencies.

## Remove the extension

1. In **Extensions > Extensions > Payments**, click **Uninstall** on Mintage Pay. This switches off your store's
   connection at Mintage Pay and removes the settings.
2. OpenCart 4 only: in **Extensions > Installer**, click **Uninstall** and then **Delete** on the Mintage Pay row.

Your past orders keep their link to their payments.
