Skip to content
Payfim - Secure. Simple. Yours.
PrestaShop · v3.0.0

PrestaShop Crypto Payment Module

Add Pay with Crypto to your PrestaShop checkout and accept Bitcoin, USDT, Ethereum and 13 more coins straight to your own wallet. Orders wait in their own "Awaiting crypto payment" state and switch to Payment accepted by themselves once the blockchain confirms.

  • Lifetime license, 0% fees
  • Pays straight to your wallet
  • 16 coins incl. USDT TRC20/ERC20
  • Illustrated PDF guide

Compatibility: PrestaShop 1.7.8 - 9.x · PHP 7.4 - 8.4

PrestaShop and Payfim: merchant dashboard with crypto revenue and a customer checkout for USDT on TRON

Everything you need to accept crypto on PrestaShop

Native payment option

Shows at checkout with your own title and description.

Own order states

"Awaiting crypto payment" and "Crypto underpaid" states created for you.

Automatic acceptance

Paid orders move to Payment accepted with the tx hash recorded.

Pay now retry

Customers can reopen the payment from the confirmation page.

Order panel

See the Payfim invoice on every order in the back office.

Tested live

Verified end to end on PrestaShop 8.2.1.

Why PrestaShop merchants add crypto

Crypto buyers tend to be people who already hold coins and would rather spend them than go through a card form. For a PrestaShop store that sells across borders, it also avoids a familiar set of card problems: cross-border declines, chargebacks weeks after delivery, and processors that decline certain product categories.

The Payfim module adds one payment option to your checkout. The customer pays on your own branded crypto checkout, hosted with the Payfim Gateway on your server, and the coins go to your wallet. Blockchain payments are final, so there is no chargeback process. Payfim charges no fee per order; you pay once for the module.

It also means no onboarding with Payfim: no business verification, no product category review, no account that can be frozen. You install the gateway, add your wallet addresses and start accepting payments the same day. Consult a qualified professional about the tax and reporting rules for crypto receipts in your country, as they differ widely.

Order states your team will recognize

PrestaShop runs on order states, and staff work from the Orders list by state. The module fits into that instead of hiding crypto orders in a generic "awaiting payment" pile. On install it creates two states of its own:

SituationOrder state
Order placed, customer on the crypto checkoutAwaiting crypto payment (created by the module)
Payment confirmed on the blockchainPayment accepted (or another paid state you choose)
Customer sent less than the totalCrypto underpaid (created by the module) - never Payment accepted
Quote expired or cancelled without paymentCanceled, only while the order is still awaiting payment

When an order moves to Payment accepted, PrestaShop does what it always does: it sends the customer email and can generate the invoice. The payment is added to the order with the blockchain transaction hash as its transaction ID, and a private order message records the coin and the amount received.

If you uninstall the module, its settings are removed but the two order states and the payment records stay, because existing orders still reference them. Reinstalling picks them up again.

What the customer experiences

  1. At the payment step the customer picks Pay with Crypto. You choose the title and short description shown there. Guest checkout works too, so shoppers do not need an account.
  2. PrestaShop creates the order in Awaiting crypto payment. The module creates the crypto invoice server-to-server from the order total and currency, and redirects to your checkout.
  3. The customer chooses a coin, scans the QR code and pays. The checkout is available in English, Spanish, French, German, Portuguese and Turkish.
  4. When the payment is confirmed, the customer lands on PrestaShop's order confirmation page with a "payment received" message.

If the customer closes the tab before paying, the order confirmation page offers a Pay now with crypto button. It re-opens the same invoice instead of creating a new one, and it only works for orders that are still unpaid, so nobody can be asked to pay twice.

Back office details

Every order paid with crypto shows a Payfim crypto payment panel on the order page with the Payfim invoice, coin and amount received. The configuration page has a Save & test connection button that confirms the gateway is reachable and lists your enabled coins, and an optional Debug logging switch that writes to Advanced Parameters → Logs.

Use PrestaShop's own Payment → Preferences to limit the option by currency, country or carrier. You do not need to set up webhooks: the webhook address is sent to your gateway with every invoice, and every notification is signed with HMAC-SHA256 and re-checked with the gateway before an order state changes. See the security overview.

If a webhook ever fails - for example while the shop is in maintenance mode - the gateway retries delivery for 24 hours, and each attempt is listed with its HTTP status in the gateway admin.

A note for stores with several carriers: when one cart is split into several orders, the customer pays one crypto invoice for the combined total. The payment is recorded on the first order and all orders of that cart move to the paid state.

Which coins should a PrestaShop store offer?

Your gateway supports 16 coins and networks, but a shorter list is easier for shoppers. A practical start for most stores:

  • USDT on TRON (TRC20) - dollar value, low network fees, widely held. See accepting USDT TRC20.
  • Bitcoin - the coin shoppers ask for by name.
  • USDC or USDT on Ethereum - for customers who keep stablecoins on Ethereum. These need a free Etherscan API key.
  • Litecoin - fast and cheap to send.

USDT on TRON and USDT on Ethereum appear as separate choices on the checkout, each with its own address format, so shoppers cannot mix up networks. Our comparison of USDT and USDC for online stores explains the differences.

Whatever you enable, the exchange rate is locked for 30 minutes once the shopper chooses a coin, with rates from CoinGecko and Coinbase or Binance as fallbacks. If you want to steer customers toward crypto, set a negative price adjustment in the gateway - for example -5% - and the crypto amount shown is reduced accordingly.

Requirements

PrestaShop1.7.8, 8.x and 9.x (tested live on 8.2.1)
PHP7.4 - 8.4 (as supported by your PrestaShop version)
InstallationModule Manager upload, no FTP needed
CheckoutStandard PrestaShop checkout, including guest checkout
GatewayPayfim Gateway 3.0+ (included in your download)

How to install the PrestaShop crypto payment module

  1. Install the Payfim gateway. Put the gateway on your hosting (for example pay.yourstore.com), run the installer and add your wallet addresses. See installing the Payfim gateway.
  2. Upload the module. In the back office open Modules → Module Manager, click Upload a module and drop in payfim.zip without unzipping it. Click Configure when PrestaShop says the module is installed.
  3. Connect. Enter your Gateway URL and the API key from your gateway's Integrations page, adjust the title and description, and click Save & test connection. A green bar lists your coins.
  4. Check the checkout. Optionally limit currencies, countries or carriers in Payment → Preferences.
  5. Test. Add a product to the cart, choose Pay with Crypto and pay a small amount. The order should move to Payment accepted. Step-by-step help is in the PrestaShop docs.

Screenshots

Payfim configuration with a successful connection test
Payfim configuration with a successful connection test
The PrestaShop payment step with Pay with Crypto selected
The PrestaShop payment step with Pay with Crypto selected
Order detail with the payment and the Payfim crypto payment panel
Order detail with the payment and the Payfim crypto payment panel

PrestaShop crypto payments FAQ

Which PrestaShop versions are supported?

One module covers PrestaShop 1.7.8, 8.x and 9.x. We tested the full payment flow live on PrestaShop 8.2.1.

Which order state is used after payment?

Payment accepted by default. You can choose another paid state in the module settings.

What is the "Crypto underpaid" state?

An order state the module creates for payments that arrived short. The order is never set to Payment accepted automatically; you decide whether to ask for the rest or refund.

Why does Pay with Crypto not show at checkout?

Make sure the module is enabled and configured, and that it is allowed for the cart currency, country and carrier in Payment → Preferences.

An order stays in Awaiting crypto payment after paying. Why?

Your gateway could not deliver the webhook. Check the webhook log on the invoice in your gateway admin; /module/payfim/webhook must be reachable (no maintenance mode or IP block).

Can customers pay later if they leave the checkout?

Yes. The order confirmation page offers a Pay now with crypto button that re-opens the same invoice while the order is unpaid.

Do I need to handle VAT differently for crypto orders?

The order total, taxes and invoice are calculated by PrestaShop as usual; the module only collects payment. How crypto receipts are treated for tax varies by country, so ask a qualified accountant.

Related integrations