eCommerce

How To Accept Bitcoin on Your Website

Disclosure: Our content is reader-supported, which means we earn commissions from links on Crazy Egg. Commissions do not affect our editorial evaluations or opinions.

Bitcoin is the most disruptive technology of our age.

These powerful words, written by Dominic Frisby, author of “Bitcoin: the Future of Money?”, are more agreed upon and understood each passing year.

And the actual creator of Bitcoin, an unknown genius who goes by the moniker Satoshi Nakamoto, is regarded as the most disruptive entrepreneur of our generation in this Virgin Entrepreneur article.

Frisby continues: “This internet money system which involves neither banks nor government will do to finance what email did to the postal service and what the internet did to publishing.”

These strong sentiments are actually more true of the blockchain, the underlying technology that powers Bitcoin and nearly all other digital currency assets, such as Ethereum, Litecoin, and Monero, as well as completely novel new ideas not limited to digital currency, such as Ujo Music, an idea which may one day completely upheave the music industry.

For a breakdown of how the blockchain will change everything in our world, I highly recommend watching this wonderful TED talk by Dan Tapscott which will open your eyes to the very near future.

It’s Time To Get With The Program

Now that we’ve refreshed you on the importance of digital currency, the most popular and widely accepted one being Bitcoin, let’s teach you how to accept Bitcoin on your website! What better way to get in touch with this technology than to actually use it?

In this post, we’ll go over how to accept Bitcoin both on WordPress (using WooCommerce) and basic HTML websites.

Accepting Bitcoin on Your WordPress Site

Prerequisites

If you don’t have WordPress installed with the WooCommerce plugin, you can find the basic installation guides here and here.

SSL Certificates

Do you need an SSL certificate to be able to securely accept Bitcoin on your website? Surprisingly, the answer is no. Although we’re going to hook Bitcoin into your ecommerce website, which should typically always require SSL for credit card payments, this is not required for Bitcoin, because Bitcoin is a completely separate system. Think of it like adding a PayPal button to your website. Somebody can simply click the “Pay with PayPal” button and get taken to a secure page hosted on PayPal’s servers where the transaction is then completed. With Bitcoin, the process is similar to this. Since CoinGate, the service we’re going to focus on here, hosts their own payment pages, you would not need SSL if this was your only payment option. However, if you’re using other standard payment options as well, you will probably need SSL anyway.

Note: If you go the advanced route and connect to CoinGate through their programming APIs, you would need to an SSL certificate to do this properly, but this is beyond the scope of this guide.

Install the CoinGate WooCommerce Plugin

The CoinGate plugin’s page is here, but you can install it directly from within WordPress. Mouse over the “Plugins” menu on the left sidebar of your WordPress admin area and click “Add New” (see image below).

Plugins add new

Next, type in “Coingate” in the search field, and “Install Now” when the search result box appears below (see image below). Wait a moment, then click the same button, now turned blue and labeled “Activate.”

Install coingate

Next, let’s create our first product with which to accept Bitcoin! Mouse over the “Products” menu (visible after installing WooCommerce) on the left-hand side and click “Add New” (see image below).

Products add new

In the next screen, you’ll need to fill in the following five items to create the simplest type of product (see image below).

  • Title — Give your product a title
  • Description — Fill in the first description box
  • Regular Price — Just put in $1 for this test
  • Short Desc — Fill in the short description. Just copy the first description for now.

Finally, click the blue publish button on the top right area of the page. After the page refreshes, you’ll see a link to view your product at the top (see image below). Open that link in a new tab, and keep it open for later! (Or take note of the URL for going to it later.)

View product

Now you’ll need to go into your WooCommerce settings and actually activate Bitcoin payments, an option which will be available since you installed the CoinGate plugin earlier. Mouse over WooCommerce and click on “Settings” (see image below).

Woocommerce settings

Once you’re in Settings, click the “Checkout” tab at the top, then below that — this is the tricky part to see — click on “CoinGate.” Both are highlighted in red (see image below).

Checkout coingate

At the next screen, click the checkbox, “Enable Bitcoin payments,” and get ready to input your CoinGate App ID, Public Key, and Secret Key into the fields highlighted in red (see image below). Now it’s time to sign up for CoinGate, so you can get your first CoinGate app started, and get your API keys! (Continued after the image below.)

Enable bitcoin payment coingate

Keeping the current tab or window open with your WooCommerce settings, open a new window and navigate to Coingate.com

Click the big Register Now button at the top to get started. Once you fill in the initial information, you’ll go through the wizard. In the wizard follow the instructions, proceeding through the first two screens, then finally click the button on the right for “accept bitcoin payments.” Finally, in the last screen, you’ll have your App ID #, public and secret keys! (see image below.) Copy these and paste them into the WooCommerce window you left open, and click “Save.”

please note

Once you’ve done this, and click “Finish” shown in the image above, you’ll arrive at your CoinGate dashboard. It’s important now to configure your App settings, so mouse over your account name on the upper right and click “API apps” (see image below).

api apps

In the API App setting screen, make sure to set the CoinGate invoice time to something a little higher than 20 minutes. I chose 24 hours for this test. This is how long your customer will have to send you Bitcoin before the order expires. (A novice Bitcoin user may take a few minutes to complete the order, then it takes a few more minutes for the Bitcoin network to validate the transactions through the Blockchain, so I think 20 minutes is a little tight.) The area is highlighted (see image below).

Invoice time 24hrs

I would suggest putting in your website URL in the “Integration URL” field and set a 2% “Underpaid Cover %” in the fields on this page as well. Then just click “Save” at the bottom.

Now, remember the URL you saved earlier, or left open in a window? I’m talking about the URL to your newly published test product you created in WooCommerce. If you lost it, just click “Products → All Products” in the left side menu in WordPress, then click on the title of your product. Then, at the top, click the link to visit your live product page. Once there, test everything out by going through your shopping cart process! (see image below).

checkout steps

After you choose to “Place Order” on the last screen of your checkout process, you’ll arrive at the CoinGate invoice page. This is where your customer (which you are now impersonating) will send you Bitcoin! Exciting times 🙂

So, how will you simulate your customer and send the $1 of Bitcoin to the Bitcoin receiving address for your CoinGate app? Well, the simplest way is with the most widely used online Wallet, CoinBase. If you haven’t heard of CoinBase, they’ve basically made it as easy to use Bitcoin as possible, making their website look and feel similar to PayPal. If you don’t have a coinbase account, please create one at Coinbase.com. Complete all their verification steps so that you can buy some Bitcoin with your credit card.

Although it’s quite straight-forward to set up your Coinbase account, here’s some Coinbase help pages in case you want to read up quickly:

Note: Coinbase is an online wallet. Never store large amounts of Bitcoin in an online wallet. Although the big Bitcoin sites like Coinbase use industry standard best practice security measures, including storing wallet information in cold storage (offline in safety deposit boxes), so that it’s extremely difficult for hackers to ever steal your Bitcoin, it’s always a remote possibility. And if you lose your Bitcoin, it’s lost forever. Bitcoin is like cash. There are no refunds. No insurance. No nothing. Losing your Bitcoin is like an unknown person stealing cash out of your wallet while you’re asleep. When you wake up, you have no idea where the money is, and no authority in the world will reimburse you for it.

Once you’ve set up your Coinbase account and bought some Bitcoin, click on “Accounts” and “Send” as highlighted (see image below).

Accounts send

Next, input the Bitcoin receiving address shown on the CoinGate invoice page (the last step of your WooCommerce checkout process) into the popup window and click “Continue,” then confirm it, and finally review the final confirmation screen (see the three images below).

Coingate wallet confirm

confirm send

sent bitcoin

Now, go back to the CoinGate invoice page, hopefully still open in another window or tab. If not, you’ll have to go into your WordPress admin, click on “WooCommerce → Orders” in the left side navigation, click on your new order title, and in the order screen click the link to go back to the invoice page (see image below).

You’ll also notice circled in red below, the action buttons, which allow you to mark the order as “processing” or “completed.” Unfortunately, this part appears not to be automated, so you’ll have to manually click these buttons to keep your orders organized properly. Hopefully, if you start making hundreds of sales, you’ll have a budget to hire a programmer to help improve little things like this 🙂 .

Woocommerce-order

By now, the CoinGate invoice page should have updated saying “Confirming”! The Bitcoin network already has begun to validate the transaction. Finally, after a few minutes, it will say “Paid and Confirmed” (see the two images below).

confirming

Paid and confirmed

This part, indeed, happens automatically.

NOTE: Coinbase is slow. Since they handle millions of transactions, there may be delays. You may want to download a Bitcoin software wallet directly to your computer for the fastest possible transaction speed. Also, for large amounts of money, a software wallet you keep locked away and encrypted, with multiple backup copies, is the only truly secure way to keep your coin safe. Check out Bitcoinsecurity101 to learn more!

A good bitcoin wallet is Electrum. It’s available for Mac, Windows, and Linux, and it uses SPV (Simplified Payment Verification), a system that allows you to confirm transactions without download the entire Bitcoin Blockchain, which is huge: tens of gigabytes! And as far as security goes, SPV is safe.

Other WooCommerce Bitcoin Plugins

If you’d like to try out some alternatives to CoinGate, check out the solutions below. However, I have found that CoinGate is the most directly connected to the Bitcoin network without trying to tie you into their own ecosystem. The next best choice would probably be Stripe’s adapter, especially if you already use Stripe, however that is a US only service.

Alternative WooCommerce Plugins

  • SpectroCoin
  • GoURL
  • BitPay
  • Coinbase
  • Stripe

Accepting Bitcoin Payments on a Plain HTML Site

Currently, the easiest way to accept bitcoin on an HTML site, without doing custom programming with PHP, is to use a CoinGate payment button. This is similar to creating a PayPal button, if you’ve had the pleasure of doing that before. First, navigate to Coingate.com/account/buttons and click on “+ New Payment Button” (see image below).

New payment button

In the next screen, you’ll need to fill out the fields.

  • Title: give your button any title you wish
  • Name ID: provide any ID name you wish
  • URL: put your website address here
  • Type: For now choose the fixed price option to complete this tutorial 🙂
  • Currency: choose USD for now
  • Receive: choose Bitcoin, of course!
  • Price: Let’s set this to “1”, so we can test this at $1.00.

Now click “show advanced options,” scroll down, and set the following:

  • Invoice Time: I recommend setting this to 2 hours or 1 day.
  • Cover %: put in 2%
  • Underpaid %: put in 2% as well

Now click “Update” at the bottom, and you’ll be taken back to the buttons page. You’ll see your button listed, and in the small drop down to the right of its title, click “details.” You’ll see the buttons screen (see image below).

Test bitcoin button

You’ll need to copy the HTML code for your preferred button, and paste it into your HTML web page.

Once you publish your web page, you can then click on your newly created payment button and you’ll be taken to your custom payment page hosted by CoinGate (see image below).

Testing bitcoin button

Once you click on “Checkout,” you’ll reach the CoinGate invoice page — just like in the WooCommerce instructions above! At this point, the customer will send you Bitcoin and you’ll be able to see a successful transaction in your CoinGate orders page here.

Each order will show whether it was made by a button (like in this section) or using the API (like with the WooCommerce plugin above). The highlights show this in the image below.

Merchant orders

And that’s it! You’ve now mastered the basics of accepting Bitcoin on either a WordPress or a plain HTML website. If you want a more advanced way to create a custom CoinGate integration, check out their PHP library here.

In Conclusion

Overall I believe CoinGate to be the best choice because of a combination of ease-of-use, most directly connected to the Bitcoin network, low transaction fees, ability to use it worldwide, and a good API. And lastly, CoinGate allows you to get paid in a huge selection of altcoins as well, such as Ethereum, Litecoin, and Monero! Overall, CoinGate is the best solution.

I also highly recommend watching the videos at the beginning of this guide and getting to know all about the Blockchain in general. This is possibly the single most important innovation in modern history since the Internet. The gravity of this is hard to convey. Welcome to the crypto age.


I’m Carlos Augusto, a pioneer developer who spent 15 years sculpting Web 2.0 with companies like MySpace, Napster, and DIRECTV. So how can I help you? Well today I’m a digital marketing, SEO, copywriting, and cryptocurrency expert. After a free 30 minute consultation I guarantee we will discover immediately actionable ways to improve your business or your money back. Serious inquiries only please.

Make your website better. Instantly.

Over 300,000 websites use Crazy Egg to improve what's working, fix what isn't and test new ideas.

Free 30-day Trial