# PrestaShop

> Install Mintage Pay on PrestaShop 8, test it with test money and go live.

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

Adds **Pay with USDC or USDT** to the PrestaShop checkout. The order is created as **Awaiting Mintage Pay payment**,
the customer pays on the Mintage Pay payment page, and the order moves to **Payment accepted** by itself when the
payment is final.

Tested on 5 October 2026 with PrestaShop 8.2 and a shop priced in euros, against the sandbox: connect, checkout,
payment, order accepted without the customer returning to the shop, and removal. PrestaShop 9 is supported by the
module but has not been run yet, so test it with a sandbox key first.

## What you need

- PrestaShop 8.0 or later. PHP with `curl`.
- A back office account that can manage modules and payment settings.
- A currency Mintage Pay supports, enabled in the shop (**International > Localization > Currencies**): 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. Carts in other currencies
  do not see the method. Your customers always pay in US dollar stablecoins: a price in another currency is converted
  when they check out, and the payment page shows both amounts.
- Your shop on **https**, reachable from the internet. Maintenance mode is fine.
- A Mintage Pay account with at least one payout address set.

## Install

1. Download [mintagepay-prestashop.zip](https://app.mintagepay.com/downloads/mintagepay-prestashop.zip).
2. In the back office, go to **Modules > Module Manager**, click **Upload a module** and choose the zip.
3. In the Mintage Pay dashboard, open **Developers > API keys** and create a key. Copy it: it is shown only once.
4. In **Module Manager**, find **Mintage Pay** and click **Configure**. Paste the key, leave **API base URL** empty
   and save. The page says **Connected to Mintage Pay as (your business name). Webhook registered.**
5. Go to **Payment > Preferences** and check that Mintage Pay is ticked for the currencies, countries and customer
   groups that should see it. PrestaShop ticks all of them when the module is installed.

If the page says **NOT ready**, the method stays hidden at checkout. Check the key and save again, or click
**Reconnect webhook**.

## 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 module and save. The status line says **Mode: SANDBOX**.
3. In the shop, add a cheap product to the cart and check out with **Pay with USDC or USDT**. You land on a payment
   page with a **Test mode** banner. In the back office the order is **Awaiting Mintage Pay payment**.
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 **Payment accepted**. It has one payment and a private message with the amount
   and a link to the transaction.
6. When you are happy, paste your live key and save.

## Order statuses

| What happened | Order status |
|---|---|
| Customer sent to pay | Awaiting Mintage Pay payment. The stock is reserved |
| Paid in full | Payment accepted. PrestaShop sends its usual email |
| Paid, but the amount does not match the order | Mintage Pay payment on hold, with a message. Check before you ship |
| Part paid | Mintage Pay payment on hold, with a message saying how much is still owed |
| Payment window closed with part paid | Mintage Pay payment on hold. Refund the customer or collect the rest |
| Payment window closed with nothing paid | Canceled. The stock goes back |
| Paid after the order was cancelled | Mintage Pay payment on hold. Check stock, then ship or refund |
| Refund recorded in Mintage Pay | A private message on the order |

Messages are private and appear under **Messages** on the order page.

## If something is wrong

- **The method does not show at checkout:** the cart currency is not supported, the module says NOT ready, or the
  module is not ticked for the customer's country, group or currency in **Payment > Preferences**.
- **An order stays "Awaiting" after it was paid:** open **Advanced Parameters > Logs** and look for "[Mintage
  Pay]". Click **Reconnect webhook** on the module page, and do the same after the shop moves to a new address. A
  firewall that blocks calls to the shop also causes this.
- **More detail:** switch on **Debug log** in the module settings. Your key and webhook secret are never written to
  the log.

## Update to a new version

In **Modules > Module Manager**, click **Upload a module** and choose the new zip. PrestaShop updates the module in
place: your key, your connection and your orders are kept, and the Module Manager shows the new version. An order that
was waiting for payment when you updated is still marked paid when the payment arrives.

## Remove the module

**Module Manager > Mintage Pay > Uninstall.** This switches off your shop's connection at Mintage Pay and deletes
the key. The three Mintage Pay order statuses and your past orders are kept.
