BitPay Checkout for WooCommerce


The most secure and fastest way to accept crypto payments.

BitPay Payment Gateway plugin for WooCommerce

Key features

  • Accept cryptocurrency payments from your customers, such as Bitcoin, Ether, Ripple, Bitcoin Cash and USD stable coins.
  • Price in your local currency.
  • Get settled via Bank transfer (EUR, USD, GBP or any of the supported fiat currencies), BTC, BCH, XRP or USD stable coins (GUSD, USDC, BUSD, PAX)
  • No chargebacks
  • View all incoming payments and have the possibility to refund orders via your BitPay merchant dashboard

Customer journey

  1. The customer is adding items to his shopping card and proceeds to checkout. Let’s say the total order amount is $100 USD as an example.
  2. The customer selects BitPay as checkout method.
  3. A BitPay invoice is generated, the customer selects one of the supported cryptocurrency to complete the payment. The invoice will display an amount to pay in the selected cryptocurrency, at an exchange rate locked for 15 minutes.
  4. The customer completes the payment using his cryptocurrency wallet within the 15 min window.
  5. Once the transaction is fully confirmed on the blockchain, BitPay notifies the merchant and the corresponding amount is credited to the BitPay merchant account minus our 1% processing fee – thus $99 USD in this example which will be paid out to the merchant’s bank account.


  • BitPay merchant dashboard – create a new POS token
  • BitPay merchant dashboard – Point of Sale token created
  • WordPress WooCommerce admin dashboard – BitPay plugin settings
  • WordPress website – BitPay checkout option
  • BitPay hosted invoice – modal option. Displayed to the user after he clicked the “Pay with BitPay” button
  • BitPay hosted invoice – wallet selected. Displayed to the user after he clicked the “Pay with BitPay” button
  • BitPay hosted invoice – cryptocurrency selected
  • BitPay hosted invoice – Customer clicked on the “pay in wallet”, this opens the compatible wallet installed on the device which automatically retrieves the payment information.
  • The customer confirmed the payment via his compatible wallet. The BitPay invoice is then marked as paid.
  • WordPress website – payment successful
  • Wordpress WooCommerce admin dashboard – order view
  • BitPay merchant dashboard – the invoice previously paid is recorded under the “Payments” section
  • BitPay merchant dashboard – detailed invoice view



NOTE: If you were using a previous version of this plugin, this version (3.0) was completely rewritten to improve the user experience and the security.

Plugin installation

  1. Get started by signing up for a BitPay merchant account
  2. Look for the BitPay plugin via the WordPress Plugin Manager. From your WordPress admin panel, go to Plugins > Add New > Search plugins and type BitPay
  3. Select BitPay for WooCommerce and click on Install Now and then on Activate Plugin

After the plugin is activated, BitPay will appear in the WooCommerce > Settings > Payments section.

Plugin configuration

After you have installed the BitPay plugin, the configuration steps are:

  1. Create an API token from your BitPay merchant dashboard:
    • Login to your BitPay merchant account and go to the API token settings
    • click on the Add new token button: indicate a token label (for instance: WooCommerce), uncheck “Require Authentication” and click on the Add Token button
    • Copy the token value
  2. Log in to your WordPress admin panel, select WooCommerce > Payments and click on the Set up button next to the BitPay Payment methods
    • Paste the token value into the appropriate field: Development Token for token copied from the sandbox environment ( and Production Token for token copied from the live environment (
    • select the endpoint – Test or Production
    • Click “Save changes” at the bottom of the page

Order fulfilment

This plugin also includes an IPN (Instant Payment Notification) endpoint that will update your WooCommerce order status. An order note will automatically be added with a link to the BitPay invoice (will open in a new window):

  • When the customer decides to pay with BitPay, he is presented with a BitPay invoice while the WooCommerce order will be set to “Pending”
  • The customer initiates a transaction from his wallet to pay the BitPay invoice, the status of the WooCommerce order will change to Processing or Completed depending how the merchant configured the status in the plugin settings.
  • If a BitPay invoice expires before the customer completed the payment, the merchant has the possibility to automatically mark the WooCommerce order as Cancelled via the plugin settings.

Preguntas frecuentes

How do I pay a BitPay invoice?

Select the wallet you want to use to complete the payment, BitPay will indicate the available currencies and provide compatible instruction for each wallet. You can either scan the QR code, click on the “pay in wallet” button or copy/paste the payment URL / cryptocurrency address depending on the wallet you are using to complete the payment.

Does BitPay have a test environment?

Yes, you can create an account on BitPay’s sandbox environment to process payments on testnet. You will also need to setup a wallet on testnet to make test transactions. More information about the test environment can be found here.

The BitPay plugin does not work

If BitPay invoices are not created, please check the following:

  • The minimum invoice amount is $1 USD. Please make sure you are trying to create a BitPay invoice for $1 USD or more (or your currency equivalent).
  • Check your current approved processing limits in your BitPay merchant account

I need support from BitPay

When contacting BitPay support, please describe your issue and attach screenshots and the BitPay logs.

BitPay logs can be retrieved in your WordPress / WooCommerce environment:

  • Enable logging in your BitPay plugin: Plugins > Settings > Debug Log > Enable logging
  • Download the logs from Plugins > Logs

You can contact our support team via the following form


29 de abril de 2021
When you try to pay with Bitcoin or Doge the dropdown list shows Binance as an option. However when you select Binance, Bitpay gives an error message saying it can’t process it. This is VERY DISAPPOINTING as Binance is the largest crypto exchange. i.e. YOU MISS OUT ON SALES AS IT DOESN’T WORK. NEEDS FIXING ASAP or don’t bother…
26 de marzo de 2021
We evaluated multiple plugins over the previous week and to be honest. This was the one that I most wanted to work as based on the screenshots on this page, this looks to be the nicest and most consistent implementation, both in our checkout page and in the external site where payment is authorised. All plugins seem to work with their own dashboard and each gateway seems to have different levels of user verification. Coinbase verifies the person and rejected me as a user. Bitpay verifies the business for transaction tiers which seems better given we are a business. I applied for this and have yet to hear back. The Bitpay dashboard is actually very nice and easy to set up and verify each section. Bitpay was the only plugin that allowed a test environment. Perfect! except it did not work. We set up the test environment according to the Bitpay website but when trying to check out nothing happened. When we went back to the cart the values of products have become zero. That’s all. We never saw the external authorisation site to see how the buyflow works and confirm that orders are updated correctly in our back end. Annoyingly the test environment requires you to establish a whole different account on the Bitpay test website rather than generate a test token within your production account as you might expect with something like Stripe. The screenshots for checkout and plugin admin did not really reflect our experience either. The Bitpay payment button did not appear and also next to the Bitpay choice in payment methods there were multiple altcoin logos that overlapped our column and screwed up formatting of our checkout page. In the admin panel there is no way to choose which logos are presented, change their size, remove them altogether or have a Bitpay logo instead. After evaluating 5 different crypto plugins we eventually decided that none of them are fit for purpose, or offer the user a consistent and intuitive experience without wrecking the appearance of our checkout. Bitpay was the one that we were the most optimistic about but Bitpay seems to have a Trustpilot reputation issue that does not reflect well.
25 de septiembre de 2020
Just works, and the service is great and very reliable. Many compatibility updates, good work team!
Leer todas las 6 reseñas

Colaboradores y desarrolladores

Este software es de código abierto. Las siguientes personas han contribuido a este plugin.


“BitPay Checkout for WooCommerce” ha sido traducido a 2 idiomas locales. Gracias a los traductores por sus contribuciones.

Traduce “BitPay Checkout for WooCommerce” a tu idioma.

¿Interesado en el desarrollo?

Revisa el código, echa un vistazo al repositorio SVN o suscríbete al registro de desarrollo por RSS.

Registro de cambios


  • Tested compatibility with WordPress 6.5.2


  • Improved webhook validation to improve timing issues


  • Added compatibility with Checkout Blocks
  • Fixed Checkout Flow (BitPay Modal)
  • Tested compatibility with WordPress 6.4.2
  • Fixed issue with exception for missing DB data for plugin in admin panel
  • Improved logging IPN requests
  • Improved webhook handling to prevent an issue where Order IPN’s could update a refunded Order’s status to a processable Order status


  • Fix typo “completed” for BitPay available statuses
  • Checking if there is a cart before triggering empty_cart() method


  • Deploy to WooCommerce when released


  • Removed dead code that caused notice
  • Downgrade & adapt php-scoper for PHP 8.0


  • Add admin option to allow users to select their BitPay button
  • log create invoice issues


  • Generate vendors to avoid potential conflicts between plugins (inconsistent version of same vendor)


  • Fix support for PHP 8.0


  • Improve code quality
  • Use BitPay SDK


  • Corrected the cancel invoice flow


  • Logo update
  • Moved to new VCS


  • Added Declined state


  • Added response code for IPN notifications


  • Updated Confirmed/Completed options with WooCommerce functionality to complete an order in the system (if set)


  • PHP notice cleanup


  • Route fixes


  • Added option for custom redirect page


  • Added option for custom redirect page


  • Formatting Fix


  • Updated order status mapping for Confirmed and Completed (please review your settings in the configuration)


  • Added default mapping for confirmed/completed orders if one isnt set in the plugin configuration


  • UX updates


  • Limit the time a user has to complete a purchase


  • IPN Updates


  • Bug fixes and code cleanup


  • Updated config to allow merchants to map order states. You will need to save your BitPay Checkout settings


  • Fixed issue where BitPay may stay persistent as a payment method


  • Fixed issue where VIEW CART returned an null url after using the AJAX add-to-cart


  • Added an ERROR redirection if there is an issue creating a new invoice. Merchants will need to setup an ERROR page and add the page slug to the configuration


  • Fixed WooCommerce notices


  • Removed unused code


  • Allow merchants to disable the BitPay logo in the mini cart


  • Added support for future release of BitPay Chrome extension


  • Fixed issue where cart might not be restored after canceling the payment invoice


  • Fixed button issue clickability on pages with configurable options


  • Let the user decide to hide or show the logo on checkout


  • Added option to show BitPay on product pages for faster checkout


  • Add option for merchant to set their order as Complete when the invoice has been confirmed


  • Updated IPN messaging


  • Allow users to optionally map IPN status updates for Expired invoices


  • Loads different bitpay.js files based on dev or production setting


  • Performance updates


  • Removed old code that was unneded


  • Fixed issue with IPN setting orders to “on-hold”


  • Fixed issue with IPN updates


  • Fixed issue with IPN deleting orders
  • Added more descriptive label for Order Status mapping


  • Fixed issue with IPN deleting orders

  • Changed branding to default icon, updated IPN changes

  • bug cleanup

  • bug cleanup

  • bug cleanup

  • fixed undefined errors in logs

  • Added redirect to cart if order becomes invalid when a user hasn’t completed a purchase

  • Added redirect to cart if order becomes invalid when a user hasn’t completed a purchase

  • Changed speed setting so users can defined in BitPay dashboard

  • Added API token validation

  • Fixed issue where BitPay logo was causing other logos to be hidden. Add / modify the “bitpay_logo” CSS class in your theme if needed.

  • Added optional BitPay logo on checkout page with a css class “bitpay_logo”. Adjust the “max-height” in your css to resize as needed

  • Code cleanup

  • Code cleanup

  • Admin updates

  • Added information and links to Tier settings

  • Added transaction and error logging

  • Code cleanup

  • Allow overrides in IPN messages for order statuses

  • IPN Updates

  • Bug squashing

  • Updated to check for server requirements. To verify, deactivate then reactivate the plugin (your settings will be saved)

  • Added option to have no image on checkout page

  • Hotfix to support WooCommerce 3.6.x update

  • Added option to override the “checkout” slug and add your own if needed

  • Token verification update

  • Security update for issues where API could be called repeatedly

  • Changed loading of bitpay.min.js library

  • Fixed issue where some users are experience errors on the modal invoice

  • Fixed error log warnings
  • Fixed issue where the BitPay checkout message would appear with other payment methods

  • IPN Updates

  • Added IPN security updates to verify order verification originates from IPN