Accept Bitcoin in a retail store

This post is also available in: German

Accept Bitcoin in a retail store

Accept Bitcoin in a retail store


Accept Bitcoin in a retail store

Accepting Bitcoin in a retail store has never been easier. If you run a retail store such as a brick-and-mortar retail outlet, you can receive Bitcoin payments with your smartphone. Likewise, your employees can use their own smartphones to receive Bitcoin payments for the store.

Only a specific Internet address must be called up and the Bitcoin is credited to the Bitcoin Wallet of the retail store after successful payment.

Only the store owner, as owner of the Bitcoin Wallet, can dispose of the Bitcoin credit balance.

How to pay in the store

The customer stands in the store at the checkout and the cashier asks:

“How would you like to pay? Cash, by card or Bitcoin?”

If the Customer wishes to pay with Bitcoin, any Internet-capable device can be used to receive the payment. No software or apps need to be installed before. Any device with which a website can be accessed is capable of receiving Bitcoin payments. This could be the smartphone of the store owner or one of his employees. It can be a normal computer or a tablet.

Any Internet-enabled device with a screen is suitable for accepting Bitcoin in a retail store without software installation.

The cashier opens the website, which may look like this:

A web page will open where the cashier will enter the purchase amount in Euro (or any other fiat currency).

Accept Bitcoin in a retail store

Accept Bitcoin in a retail store

Afterwards click on Send. The BTCPay server determines the current Bitcoin exchange rate in the background. The determined Bitcoin amount is displayed as a QR Code.

This QR code is shown to the customer for payment.

The customer scans the QR Code with his mobile Bitcoin app and executes the payment.

After only a few milli-seconds, the store will show on the payment page that the payment has been made successfully.

Afterwards, the customer can be handed over the purchased and successful goods.

How to accept Bitcoin payments in your own store is explained in the following section.

Realization / Solution

If you, as the owner of a stationary retail store, want to offer the payment described above to your customers, you can set up and configure this yourself with just a few clicks at Coincharge.

We describe the process using the example of the solution provided free of charge by Coincharge.

You can also use another Third-Party provider or run your own BTCPay server.

Maybe you want to gain some experience first and can upgrade to your own BTCPay server later.

Go to and register there with your email address and create an account.

A detailed description how to set up an account on a BTCPay server can be found in the article: Set up the BTCpay Shop.

In the guide described here we focus on the points that are important for the acceptance of Bitcoin payments in business.

Accept Bitcoin in a retail store 1

After we have successfully registered with, we go to the Stores section and create a new store by clicking on the “Create a new store” button.

Accept Bitcoin in a retail store 2

In our example we give the store the name Retail Store. You use the name of your store at this point.

Accept Bitcoin in a retail store 3

Then we click on Create. Afterwards we will be automatically taken to the General Settings page of our BTCPay store.

The individual setting options are explained in detail in the article Administrate BTCPay Shop.

We focus on the settings that are relevant or important for our application.

Accept Bitcoin in a retail store 4

Within the General Settings there is a setting for when a Bitcoin payment should be regarded as confirmed, i.e. completed.

Accept Bitcoin in a retail store 5

The default setting is after One Confirmation.

This means that once the payment has been confirmed on the Bitcoin network, the payment is considered paid. This can take about 10 minutes. In some cases a little longer.

If the customer is standing at the checkout with you, it is not reasonable to expect the customer to wait 10 minutes or longer for the purchase to be “guaranteed” complete.

Therefore we set the value to zero and select “ls unconfirmed

This means that a payment is already considered successful when the transaction is displayed in the mempool.

Accept Bitcoin in a retail store 6

If you already accept card payments in your store, you will be familiar with this. You will receive the feedback via the terminal even after a few seconds that the payment was successful. The actual credit to your account will be made later.

With a Bitcoin payment you will receive a positive feedback as soon as the transaction is in the mempool. The final credit to your own Bitcoin Wallet will only be issued after 6 confirmations.

The setting to “ls unconfirmed” is useful for sales with smaller amounts, which must be carried out quickly.

In 99% of cases, an “ls unconfirmed” setting is absolutely sufficient. As a jeweler or supplier of high-quality luxury articles at least 1 confirmation should be specified.

Create Bitcoin Wallet

In the Derivation Scheme area, we deposit the Bitcoin Wallet to which the Bitcoin sales are to be credited.

We have the possibility to deposit an XPub key from an existing wallet. We get an XPub key from our hardware wallet or for example via an Electrum Wallet, which we run on our home computer.

How you can set up an Electrum Wallet and use the XPub Key from it, you can read in the article “Creating XPub Key with the Electrum Wallet”

Accept Bitcoin in a retail store 7

We click on Modify and get to the area to store a Derivation Scheme.

Accept Bitcoin in a retail store 8

In our example we will use the internal BTCPay Bitcoin Wallet.

Here you find a detailed description how to create a BTCPay Wallet.

Select the option “…a new/existing seed

Since we are creating a new Bitcoin Wallet, we do not need to enter an existing seed or passphrase. These fields remain empty.

We choose the “Segwit wrapped” setting for Address type because this allows all existing Bitcoin Wallets to be used for payments in our store.

Then we check the boxes “Is hot wallet” and “Import keys to RPC”

Generate BTCPay Wallet Seed
Accept Bitcoin in a retail store 9

Then click on Generate and on the page that appears, you will see the 12 words of your seed.

Write these 12 words on a piece of paper and keep it in a safe place.

Should you no longer have access to this account, you can use the 12 words to transfer your Bitcoin balance on the BTCPay Wallet at Coincharge to a new Bitcoin Wallet on another BTCPay server.

You can redirect the Bitcoin balance to another Bitcoin address at any time. You find the description from aBTCPay Hot Wallet Send.

After the 12 words have been safely written down and it has been confirmed that the words have been safely stored, we can proceed with the creation of the application.

Create a POS App

Accept Bitcoin in a retail store 10

After the BTCPay Store has been successfully created and a Bitcoin address for the credits has been entered, we create the application.

A so-called app already exists, which is provided by the BTCPay server. We will now use this PointOfSale app for our requirements.

We give the app a unique name. In our example, we have a coffee store called Coffee2Go and if we have several branches, we call it a downtown branch.

Accept Bitcoin in a retail store 11

We will then get into the area to customize the PointOfSale app for our needs. Numerous fields are already prefilled in the template.

This is an example, if you want to store your complete assortment of goods as well. This detailed description including of depositing the offered products we have described in the articleBitcoin POS Terminal.

Accept Bitcoin in a retail store 12

The listing of all products is not necessary for us. Therefore, we can greatly simplify it and remove the templates.

We will make appropriate changes until the fields are filled in this way.

Afterwards we remove all deposited products by clicking on the red trash can.

Accept Bitcoin in a retail store 13

For the Redict invoice field we leave it as before with “Use Store Settings”.

Then we click on Save Settings.

Accept Bitcoin in a retail store 14

Next to it we find the button View App.

If we click on it, the internet address for our site will open, where the amount in Euro, which the end customer pays, should be entered.

Now you can accept Bitcoin in the store

In order to accept Bitcoin in the store, you only need to save the Internet address. In our case the Internet address is

This is also the address that employees can save as a bookmark in their browser. This address is always called when a customer wants to pay with Bitcoin and you can accept Bitcoin in the store.

Accept Bitcoin in a retail store
BTCPay payment checkout page

Once the amount is entered, you will be taken to the payment page with the QR Code. The default layout will look like the one on the left side.

The Bitcoin payment page can also be customized to reflect the look and feel of the store.

To change the design of this payment page, see the “Customize Bitcoin Payment Page” page.

Now you can accept Bitcoin in a retail store. Be it in your retail store, in your restaurant, at the craftsmen’s services or wherever and whenever your smartphone accepts Bitcoin payments.

This post is also available in: German

Leave a reply