Skip to content

Accept crypto in PrestaShop

The CoinsPay module adds a "Cryptocurrency" payment method to your checkout. Buyers pay in USDT, BTC, ETH or any of 30+ coins, the order gets the status you chose on its own, and the money goes straight to your wallets.

PrestaShop
1.6.1 to 9.2
PHP
5.6 to 8.5
Module
free, AFL 3.0

What the module gives you

  • Order statuses update themselves

    You pick a status for each invoice event: payment on its way, paid, underpaid, expired. Your own statuses work too. Every event adds a private message with the amount, coin and transaction hash to the order; the buyer does not see it.

  • Money lands in your wallets

    CoinsPay does not hold your revenue: every payment goes on to your wallets by the payout rule of your shop. Each network takes up to 5 addresses with shares, say 70% to you and 30% to a partner.

  • Prices stay in your store currency

    The invoice is made in the currency of the order, or in the default currency of the store if CoinsPay does not take it. CoinsPay converts the total at the current rate and holds the coin amount for 30 minutes while the buyer opens a wallet.

  • A key that cannot withdraw

    The module only needs a key with "Invoices only" access: it can create invoices and follow them, but it cannot move money. The saved key is never shown in the settings form, not even to admins.

Set up in five minutes

You need a CoinsPay account with a shop and access to your PrestaShop back office. No developer required.

  1. 01Install the moduleDownload coinspay.zip and upload it under Modules → Module Manager → "Upload a module". On PrestaShop 1.6 it is Modules and Services → "Add a new module".
  2. 02Paste the keyPress "Configure" next to CoinsPay. In the CoinsPay dashboard create a key under "API keys" with "Invoices only" access and paste it into "API key".
  3. 03Connect the webhookCopy the webhook address from the module settings to the "Webhook" section of the dashboard, and the whsec_ signing secret back into the module.
  4. 04Check and save"Check connection" shows the name of your CoinsPay shop. Look over the statuses on the "Order statuses" tab and save: the payment method is already at checkout.
CoinsPay module settings in the PrestaShop back office: API key, webhook address and a successful connection check

It handles the awkward cases too

Underpayments, expired invoices, cancelled orders: the module sets the status you chose and leaves a private message on the order about what happened.

  • Payment on its way

    While the network confirms a payment, the order gets a message with the amount and the transaction hash. Keep the status as it is or pick your own.

  • Underpayment

    If less arrives, the order gets a message with what was received and what is left, and your status for partial payment if you set one. The buyer can pay the rest on the same page.

  • Expired invoice

    You set the time to pay, from 15 minutes to a day. An unpaid order moves to Canceled, and PrestaShop returns the stock. A payment that arrives later still counts.

  • Cancelled in the store

    Cancel an order and its CoinsPay invoice is cancelled too, so it can no longer be paid. A payment for a cancelled order or for the wrong amount gets the "CoinsPay: check the payment" status for you to decide.

  • Paying later

    A buyer who closed the payment page finds a "Go to payment" button on the order page in their account while the invoice is open. One who came back without paying can put the items back in the cart.

  • No payment gets lost

    Webhooks are signed, and the module checks the signature. If a webhook does not arrive, the module asks CoinsPay about open invoices on its own: from store pages every few minutes, or from a cron address.

  • The buyer can pay the fee

    Turn these settings on and the CoinsPay fee and the network fee are added to the coin amount on the payment page. The order total in your store stays the same.

  • Several shops

    With multistore, each shop keeps its own settings. Shops can share one CoinsPay shop or have one each, and a shop added later copies the settings of the shop it was made from.

  • Test mode

    With a cpk_test_ key, invoices are paid with a button on the payment page and no coins move. Only the test buyer sees the payment method, so real customers never notice it.

Installation

One archive fits every PrestaShop version from 1.6.1. It is on GitHub with the source code, and it installs like any other module: upload it in the back office.

API documentation
PrestaShop
1.6.1 to 9.x, tested up to 9.2.1
Checkout
Standard and one page (9.2)
PHP
5.6 to 8.5
License
AFL 3.0

Pay only when you get paid

  • First 10 days fee-free, on payouts up to $500
  • No monthly or setup fee
  • The fee can go on the buyer’s invoice
  • Network fees at cost, no markup

as low as0.3%of each payout, the rate depends on your volume

Connect your shopHow the fee works

Questions about the module

All questions
How much does the module cost?

The module is free. You only pay the CoinsPay fee on payouts: as low as 0.3%, going down as your turnover grows, with no monthly fee. For the first 10 days after your first payment, payouts up to $500 carry no fee.

Which coins can buyers pay with?

More than 30 coins and tokens on TRON, Ethereum, BNB Smart Chain, Solana, Bitcoin and Litecoin: USDT, USDC, BTC, ETH, BNB, TRX, LTC, SOL and more. A module setting can limit the choice to stablecoins.

Why is the order placed before the payment?

As with bank wire, PrestaShop sends the order confirmation and reserves the stock right away, so the goods are not sold twice while the network confirms the payment. If the invoice expires unpaid, the order is cancelled and the stock returns.

PrestaShop 1.6 says the module could not be verified. Is that a problem?

No. PrestaShop 1.6 says so of every module that does not come from its Addons marketplace. The module is on GitHub with its source code; confirm the installation.

Do I need a cron job?

Usually not: events arrive by webhook, and the module runs its backup check from store pages. Add the cron address from the settings if your store has few visitors. In maintenance mode PrestaShop refuses webhooks, and the check catches up afterwards.

What buyer data goes to CoinsPay?

The order reference, the total and currency, the names and quantities of the items and the address to send the buyer back to after payment. Buyer names, emails, addresses and phone numbers are not sent.

Can I connect a staging copy of my site?

Yes, but give it a separate CoinsPay shop. A shop has one webhook address, so its events would reach only one of the two sites.

Start taking crypto today

Signing up takes a minute and setting up a shop about five more. Connecting is free.

PrestaShop is a registered trademark of PrestaShop SA. CoinsPay is not affiliated with PrestaShop SA, and the module is not sponsored or endorsed by it.