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.
- 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".
- 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".
- 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.
- 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.

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
Questions about the module
All questionsHow 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.