How to implement bitcoin payments on my webshop

Nowadays it’s quite simple to implement Bitcoin payments on any webshop or website, and in this guide we’ll go through how to do it.

A few years ago, Bitcoin was basically just an idea. It was very difficult to use and even more difficult to accept on a website. Today, it’s extremely simple and can be done the same way as any other payment provider.

Most importantly: as a company, you do not have to hold Bitcoins unless you actually need to. 

How to accept Bitcoins

There are two ways to accept payments:

  1. APIs from big Bitcoin companies. There are many big Bitcoin companies which provide an easy-to-use API; this makes accepting payments as easy as any other payment method. These will be covered later in this article.
  2. Bitcoin-qt. Bitcoin is decentralized, so you don’t have to use a third-party company to accept payments. By running your own “Bitcoin server”, you can accept the money without anyone’s help.

In 99 per cent of the cases we see, it makes sense to use the first method. The benefits are:

  • You use professional APIs that have been tested by millions of calls before
  • The solution will scale, because it’s already used in production on some of the biggest websites in the world
  • You can decide if you want to accept Bitcoin or local currency
  • Third party tools can make the auditing easy
  • You can focus on your business, not a technical implementation of accepting money

However, in some situations, the second method may be of interest:

  • Products that use the blockchain for more than receiving money
  • Situations where the shop wants to keep purely Bitcoins
  • When it’s important no one have access to the content of the transfers

We’ve done implementations in both, and can help with both.

Which Bitcoin API to use in order to accept payments

It’s important to note that there are many different companies that offer to accept Bitcoin payments. The landscape changes frequently and drastically, and if you need a review of the current landscape, please contact us.

There are three companies we would like to mention in this article: BitPay, Coinbase and Coinify.

BitPay. BitPay is an American company, which has built an API to accept payments. You simply go to their website, sign up and start developing. In addition to their API, they have various plugins that make the integration easy in many webshop systems.
In Bitpay you can receive both Bitcoins and most local currencies.

Coinbase. Coinbase started out as a website where users could store their Bitcoins in an online wallet. Since then it has become probably the most known Bitcoin brand in the world. They’re very active in the wallet space, and also very active for merchants. Just like BitPay, they have an API and multiple plugins that make it easy to accept payments.

Coinify. Coinify is a Nordic company founded in Denmark. Coinify is a big provider in Europe, and has a great API which can be used to accept Bitcoins. Just like BitPay and Coinbase, there are also multiple integrations out of the box with Coinify.

Which to pick and recommend? Contact us, so we can hear more about your actual situation.

What is the flow when accepting Bitcoin payments?

Assuming a Bitcoin merchant with an API is used, the technical process is as described below. It’s important to understand that this process is not what the user sees, but what happens behind the scenes.

The following parties are involved in this explanation:

  • User: the visitor wanting to buy something
  • Shop: the webshop itself and the technology behind it
  • Company: the legal entity behind the shop
  • Bitcoin merchant: the third party Bitcoin service that handles Bitcoin payments
  • Bitcoin exchange: a Bitcoin exchange where Bitcoins are bought and sold

In this case, the flow is as following:

  1. A user wants to buy something on a shop using Bitcoin.
  2. The user puts multiple products into his basket and goes to checkout.
  3. The shop calculates the price in local currency, e.g. USD.
  4. Because the user chooses to pay in Bitcoin, the shop will call the Bitcoin merchant.
  5. The Bitcoin merchant provides two options. The price is calculated depending on the USD value the user is buying, making sure the shop receives the amount they expect:
    1. Return the price in Bitcoin plus an address where the user can transfer Bitcoins to
    2. Return a payment window, where the user can pay with Bitcoin.
  6. The Bitcoin merchant will need local currency, in order to give the shop money. They sell the Bitcoins on a Bitcoin exchange, which results in local currency.
  7. The shop can now show the payment is done.

What the user sees in this flow is basically the normal payment flow they would expect with other payment methods.

My thoughts on video