Skip to content

Accept crypto in WooCommerce

The CoinsPay plugin adds a "Cryptocurrency" payment method to your checkout. Buyers pay in USDT, BTC, ETH or any of 30+ coins, the order is marked paid on its own, and the money goes straight to your wallets.

WooCommerce
3.0 to 11.2
WordPress and PHP
4.7+, PHP 7.0–8.5
Plugin
free, GPL

What the plugin gives you

  • Orders mark themselves paid

    Once the network confirms the payment, the order moves to Processing, or straight to Completed for virtual goods. The buyer is sent back to the order page in your store.

  • 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

    Products keep their prices in dollars, euros or any currency you use. 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 plugin only needs a key with "Invoices only" access: it can create invoices and follow them, but it cannot move money. Even if the key leaks from your site, your revenue stays in your wallets.

Set up in five minutes

You need a CoinsPay account with a shop and access to your WordPress admin. No developer required.

  1. 01Install the pluginDownload the archive and upload it in WordPress under Plugins → Add New Plugin → Upload Plugin. Then activate it.
  2. 02Paste the keyIn the CoinsPay dashboard open your shop and create a key under "API" with "Invoices only" access. Paste it into the plugin settings: WooCommerce → Settings → Payments → CoinsPay.
  3. 03Connect the webhookCopy the webhook address from the plugin settings to the "Webhook" section of the dashboard, and the whsec_ signing secret back into the plugin.
  4. 04Check and enable"Check connection" shows the name of your CoinsPay shop. Send a test event from the dashboard, enable the payment method and save.
CoinsPay plugin settings in WooCommerce: API key, webhook address and a successful connection check

It handles the awkward cases too

Underpayments, expired invoices, cancelled orders: the plugin knows what to do with the order and leaves a note on it.

  • Payment on its way

    While the network confirms a payment, the order is On hold, so nothing ships before the money arrives.

  • Underpayment

    If less arrives, the order goes on hold with a note of what was received and what is left. The buyer can pay the rest on the same page.

  • Expired invoice

    An unpaid order is cancelled and its stock returned; you can turn this off. If the buyer pays later anyway, the order is reopened and marked paid.

  • 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 puts the order on hold for you to decide.

  • No payment gets lost

    Webhooks are signed, and the plugin checks the signature. If a webhook does not arrive, the plugin asks CoinsPay about open invoices on its own every few minutes.

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

  • Any checkout

    The classic checkout page and the Cart and Checkout blocks. High-Performance Order Storage is supported.

  • Test mode

    With a cpk_test_ key, invoices are paid with a button on the payment page and no coins move. Such a payment completes only orders placed by a shop manager.

  • English and Russian

    Settings, order notes and checkout labels come in English and Russian.

Installation

The plugin archive and the source code are on GitHub. It installs like any other plugin: upload the archive in your WordPress admin.

API documentation
WordPress
4.7 or newer
WooCommerce
3.0 or newer, tested up to 11.2
PHP
7.0 to 8.5
License
GPLv2 or later

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 plugin

All questions
How much does the plugin cost?

The plugin 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 plugin setting can limit the choice to stablecoins.

What currency can my prices be in?

USD, EUR, GBP, AED, CNY, JPY, RUB, TRY and the other currencies CoinsPay accepts. The plugin loads the list, and if your store currency is not on it, the payment method is hidden at checkout.

What if the buyer pays less?

The order goes on hold with a note of what was received and what is left. The buyer can pay the rest on the same payment page.

What buyer data goes to CoinsPay?

The order number, the total and currency, the names and quantities of the items and the address of the order page in your store. 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.