How to accept Bitcoin, for small businesses

From Bitcoin Wiki
Revision as of 23:00, 22 December 2016 by (talk | contribs)
Jump to: navigation, search

It has been suggested that this article is merged with Merchant Howto.

This guide is intended for small business owners who wish to help promote Bitcoin by accepting it as payment for goods and services. It's written with the assumption that you operate a regular business that sells goods or services for regular national currency such as dollars, and that you wish to accept Bitcoin as another legal way to pay, and that you intend to pay taxes on your Bitcoin income just like any other income.

With Bitcoin being touted as a way to conduct anonymous transactions and as way to compete with government currency, many small business owners wonder what's the right way to accept and account Bitcoin, or if it's legal or ethical, or whether and how they should pay taxes on income received through Bitcoin.

As far as we know, Bitcoin isn't yet formally recognized by governments and authorities as a "currency". But in practice, Bitcoin is likely no different than accepting payment in other forms, such as cash, or gold, or scrip, or gift cards or foreign currency. We think that it is pretty much the same as the local businesses of Great Barrington, Massachusetts choosing to accept their locally-printed "Berkshire Bucks" to support their local economy.

Starting to accept Bitcoin for transactions

Accepting Bitcoin at a small business is best started in whichever manner keeps the accounting simple for you. This will vary by the type of business you are operating.

Start with a sign


If you expect that the number of people interested in using Bitcoin is small, you might simply start by posting a sign or a note: "We Accept Bitcoin", and ask people to contact you directly in order to make a payment. Even if hardly anybody uses Bitcoin as a payment method, you're helping Bitcoin in two ways: one, by increasing awareness, and two, by making your customers more willing to accept Bitcoin as payment from others in the future, because now they know somewhere they can spend it.

Utilize a merchant solution

If you sell things on your website (goods or services), you'll want to use a Bitcoin merchant solution to accept the Bitcoins (you can usually opt to have them converted to USD or other currencies automatically with some services).

If you sell things in a brick and mortar shop, customers can pay using hardware terminals, touch screen apps or simple wallet addresses through QR Codes.

Accept Bitcoin without internetCoinkite Bitcoin Payment Buttons

Bitcoin POS Terminal Bitcoin POS Terminal

Bitcoin Mobile Checkout

Smart Phone or Tablet

You can use a wallet address with any wallet. For that it's best if you can place a QR code near your cash register to which the customers can scan with their phone and pay (use to make a QR code sign). For a more convenient solution you can use a dedicated app or webapp that generates a QR code on the fly including the amount.


Solutions for smart phones and tablets:

  • Airbitz Merchant Mode for Android and iOS
  • mobile Bitcoin Point of Sale for Thailand
  • Favicon bp.png BitcoinPay, Mobile payment terminal with EUR, USD, PLN and CZK settlements.
  • BitKassa favicon.png BitKassa accept Bitcoin on mobile phone, tablet, computer; converts to Euro/Bitcoin (any percentage)
  • BitPay Mobile Checkout
  • BitPOS Merchant POS solution for Australia
  • Blockchain Merchant for Android
  • CoinCorner blue logo.png CoinCorner - Point of Sale solution available that allows physical retailers to easily accept bitcoin and automatically convert that to fiat, removing the risk of holding bitcoins.
  • Coingate favicon.png CoinGate Bitcoin Point of Sale apps for Android, iOS and Bitcoin Point of Sale web app which can be accessed from any internet enabled device directly in a web browser.
  • Coinify Bitcoin Point Of Sale
  • Coin Of Sale logo.png Coin Of Sale - device-independent Bitcoin POS payment system
  • Coinbase Point Of Sale for Android
  • BitcoinRegister.gifCoinBox Bitcoin point of sale for Android
  • Cryptopay HTML5-based bitcoin POS
  • Paxful how-to-buy-bitcoin.png Paxful Simplest Point of Sale, No Fees and a peer to peer market to buy bitcoin instantly
  • GoUrl Bitcoin Mobile Checkout
  • Rocketr.png Rocketr Sell digital products online and accept BTC, ETH, and more. Utilize their IPN/API for seamless integration into your website or app.

Point-of-Sale hardware terminal

With custom hardware you can integrate with existing registers and point-of-sales solutions (examples: Coinkite.gif Coinkite, XBTerminal, BitStraat).


When a customer makes a payment, you might simply issue a credit to their account. Ideally, you want to enter it in a way that suggests you received a payment. You could consider entering it as a "discount", but you may want to consider whether this inappropriately disguises the nature of the transaction. If on the other hand, you're giving "discounts" for Bitcoins, but then you are selling the Bitcoins for currency and then counting that as income, then chances are good that your calculation of income is making up for it. Ask your accountant.

Businesses that offer gift cards

If your business sells gift cards or gift certificates, you may find that the easiest way to accept Bitcoin is to accept it only for the purchase of gift cards, and then require the gift cards to be used for actual purchases of goods or services. This way, the accounting practices you already have in place for processing gift cards can be put to use. The accounting for Bitcoins would then be minimized to tracking sales of a single SKU.

This method is also ideal for retail food establishments and convenience stores, where the payment of Bitcoins through a mobile phone for a small daily food purchase might be cumbersome or disruptive, especially in front of a line of other customers. Bitcoins in this case would be best used to reload prepaid cards that can then be swiped at point-of-sale.

If you don't accept gift cards, but you already accept credit cards through a swipe terminal, consider the possibility that you could add a retail gift card system through the swipe terminal you already own. Many point-of-sale terminals, including ones from VeriFone®, are designed around the ability to support multiple applications on the same terminal. Gift cards are also highly profitable because of "breakage", or in other words, the fact that a significant percentage of them never get redeemed.

You could consider adding a private label gift card program from a provider who specializes in this, not just as a jumpstart to accepting Bitcoins, but as an extra boost to income. A private label gift card service provider necessarily have to handle your funds - they can simply provide a solution that keeps track of the balance on the cards on your behalf, including features that allow users to check their balances by phone or by web. Such a solution, of course, is also what makes the cards swipeable through the card reader.

Businesses that mail invoices

Does your business send out invoices to customers? Adding one line may make a huge impact for the Bitcoin economy. Perhaps you list it as a payment option just after Visa, MasterCard, and American Express, even if that means your customer must call or e-mail to make a payment.

If you have access to the programming expertise such that you can generate Bitcoin addresses programmatically, consider generating a brand new Bitcoin address for each invoice, and print it on the invoice. When a Bitcoin payment arrives, you'll automatically know where it should arrive.

Customers might wonder how much BTC they should pay in order to satisfy an invoice in full. Your invoice might suggest an amount. For example, if your invoice is for $100 and BTC's are currently worth $1.24 each, your invoice might suggest that it can be paid in full "with a payment of 80.65 BTC if paid by (date)".

You might be able to anticipate the possibility that even though a Bitcoin address can be printed on an invoice or payment stub, that they are very cumbersome for most people to type, especially being a mix of uppercase and lowercase letters. However, you should probably still do it anyway. The customer is probably going to want some paper trail for his payment. Giving him a pre-printed payment stub with a pre-printed address will satisfy that, because the customer can independently and publicly prove through Block Explorer that the payment took place.

Does your business have a website? On your invoice, consider allowing them to go to a special URL to get the address to make a Bitcoin payment just by typing in their invoice number. For example, with a form they can enter their invoice number, or just for paying invoice #60365. This way, they can see the Bitcoin address, copy and paste it directly into their Bitcoin client.

Use a brand new address for each invoice whenever possible, and use it only once. This benefits the customer as it removes any ambiguity as to which customer is making which payment and for which invoice.

Known payment systems supporting invoicing, and recurring invoice setup, Coinify

Payment companion having peer to peer encrypted invoicing using your own bitcoin address Blockonomics

Avoiding fraud

You should also consider the possible risk that fraudsters could send counterfeit invoices to your customers, and entice them to make a payment to a Bitcoin address they control, instead of you. While that isn't likely in general - it depends on how well a fraudster could find out who your customers are in the first place - it would certainly be an unpleasant situation if it ever happened. One way you could control that is, whenever possible, never let people try to type Bitcoin addresses off payment stubs - instead, force people to get the full Bitcoin address from your website via secure SSL. But, still print most of the address on the payment stub (perhaps with four or five characters starred out), so that the customer's need for a paper trail can be satisfied, so they can prove they paid if there is ever a dispute. Merchants can also use the IP address geolocation to understand the close proximity of users. There is automated solution such as FraudLabs Pro that automates the screening of Bitcoin transactions to determine risk level.

Setting Prices

When a business accepts bitcoins for payment, there generally is the need to convert them to the currencies used for paying suppliers, employees and shareholders. Some merchants set prices based on the current market rate at the time the price quote is presented to the customer (merchant services like Favicon-32x32 .png BitcoinPay, BitPay, Coinbase, Coingate favicon.png CoinGate, Coinify, Spicepay-bitcoin-payment-gateway-96x96.png SpicePay or Rocketr.png Rocketr (only for digital products) do this automatically).

Bitcoin Prices lists the exchange rate for many currencies on multiple exchanges.

When prices are determined using an automated process, the current market rate can be based on either a current price or on a weighted average basis. Bitcoin Charts provides a data feed that provides weighted prices. Bitcoin Average also offers a weighted average price index, featuring average price across all exchanges reachable in the world and in over 150 currencies. 24h sliding average price index is also available and all data is reachable through the API.

When bitcoin funds for purchases are received, some merchants instantly exchange those proceeds into the preferred currency used (again done automatically by Favicon-32x32 .png BitcoinPay, BitPay, Coinbase, Coingate favicon.png CoinGate, Coinify, Spicepay-bitcoin-payment-gateway-96x96.png SpicePay or Rocketr.png Rocketr (only for digital products)). Hedging for each transaction can nearly entirely eliminate exchange rate risk that the business is exposed to when accepting bitcoins for payment.


A sales contract might be used to ensure that specific terms are met to lessen the chances of a misunderstanding. For instance, the party sending payment is responsible for paying any transaction fee that might be necessary. A contract might specify that a transaction fee must be paid and what amount, so as to prevent the situation where the transaction is considered a low priority transaction and thus isn't confirmed quickly.

Other items that might be addressed in a contract:

  • Requirement and handling of escrow through an escrow service.
  • Jurisdiction for disputes.
  • Refund policy (particularly with the exchange rate being volatile)

Paying taxes on Bitcoin income

Tax compliance is a topic of concern for small businesses. We aren't accountants or lawyers, and can't give legal or accounting advice.

But in many respects, Bitcoin transactions work very much like cash. Just like Bitcoin, cash is anonymous and doesn't leave a paper trail, yet is widely used in commerce every day.

Ask yourself how you would handle a cash transaction. Do you accept cash transactions? Do you normally pay taxes on cash transactions? The answer for Bitcoin should probably be the same.

As for how to decide what a Bitcoin transaction is worth... the IRS, as far as we know, has never issued a guide mentioning how to value Bitcoin transactions. But they probably have rules and guidelines on how to value transactions made in foreign currency or "cash equivalents". We imagine the accounting would be similar.

With Bitcoins, there's likely to be some difference between the value of BTC when you received them as payment, versus when you go to exchange them for another currency like USD, should you decide to do so. This scenario, likewise, would be no different if you accepted foreign currency or gold as payment. Under some scenarios, it might make sense to book the dollar value of BTC income as it is received, and then to book any difference incurred when it is exchanged for fiat currency. Under others, it might make sense to book the whole thing at the time of exchange.

Perhaps you might talk to your accountant. You don't need to get into a discussion with your accountant about block chains and private keys or the philosophy behind a decentralized currency. By comparing the fundamentals of Bitcoins to accounting concepts already well understood by the public, you can probably get all the answers you need. What would you ask your accountant if you decided that you wanted to accept Berkshire Bucks or 1-ounce gold coins as payment?

Merchant Services

See also Why Your Business Should Use a Full Node to Accept Bitcoin

  • APIs to process bitcoin payments. No sign up or account needed.
  • Bitcoin Transaction Coordinator Full Merchant Solution for organizations using the NetSuite Global ERP and eCommerce Platform
  • Favicon bp.png BitcoinPay Payment gateway for virtual currencies with direct settlement to PLN, CZK, EUR and USD. POS + API.
  • Bitfavicon.png Bitcoinpaygate Bitcoin payment processing for the web & in store payments
  • BitKassa favicon.png BitKassa Merchant solution for accepting Bitcoin, getting Euro or Euro/Bitcoin percentage. The Netherlands.
  • BitPagos Bitcoin and Credit Card payment processor
  • BitPay Bitcoin payment processor with mobile checkout solution
  • BitPOS Bitcoin payment processor for online and brick and mortar stores
  • BitStraat SiteCite: "As of 10-11-2015 BitStraat is discontinued as a company."
  • Bitx-avatar.png BitX API Merchant API for registered businesses & developers in Indonesia, Malaysia, Kenya, Nigeria and South Africa.
  • Free APIs to process bitcoin payments. No sign up or account needed. Update: Starting 01/2016 API2 requires an API key - account required!
  • Blockonomics Accept payment directly into your wallet. Peer to peer bitcoin invoices and integrated wallet watcher
  • Coinbase Offers payment buttons, checkout pages, shopping cart integration, and daily cash out to USD.
  • BitcoinRegister.gif CoinBox Bitcoin Point of Sales application for Android, with integration into various exchanges. Similar to Square.
  • Cashila Online bank account and payment processor. Accepts bitcoin payments, SEPA transfers and pay bills with bitcoin
  • CoinCorner blue logo.png CoinCorner - Integrate CoinCorner Checkout in to your eCommerce business using a simple plugin or the API for Bitcoin Payments. Point of Sale solution also available that allows physical retailers to easily accept bitcoin and automatically convert that to fiat, removing the risk of holding bitcoins.
  • Coingate favicon.png CoinGate Accept Bitcoin payments and receive payouts in Euros, U.S. Dollars or bitcoins. E-commerce plugins, API, Point of Sale app for Android / iOS / web, payment buttons.
  • Coinify Payment Service Provider (PSP) specializing in the technical aspects of accepting cryptocurrencies - such as bitcoin. Supports Bitcoin Web Payments, Mobile Checkout, In-store Bitcoin Payments and Bitcoin Invoicing with recurring billing in bitcoin.
  • CoinPip Online and POS bitcoin payment processor for Asia.
  • Coinsnap favicon.jpg Coinsnap European Bitcoin Payment Provider
  • Cryptopay European payment gateway with daily payouts in GBP, EUR and USD. Exchange and wallet integrated.
  • Cubits Platform with multisignature wallets and merchant system Cubits Pay.
  • Gocoin-logo.png GoCoin International payment gateway and processing platform for Merchants
  • Bitcoin Payment processor with ready to use php scripts - Pay-Per-Download, Pay-Per-Product, Pay-Per-Membership, Pay-Per-Registration.
  • Lavapay Bitcoin payment gateway
  • OKPAY Bitcoin payment processing for merchants
  • Payfast-400.png PayFast Merchant solution for South Africa. Integrated in 60+ shopping carts. Supports credit cards, EFT bank transfers and Bitcoin. When buyers pay with Bitcoin, merchants receive the South African rand equivalent, using BitX API
  • Paxful how-to-buy-bitcoin.png Paxful Accept Bitcoin with no internet then sell bitcoin for profit on our peer to peer exchange.
  • Rocketr.png Rocketr Sell digital products online and accept BTC, ETH, and more. Utilize their IPN/API for seamless integration into your website or app.
  • SpectroCoin.pngSpectroCoin Payment gateway with daily payouts in GBP, EUR, USD, CZK, PLN and other currencies. Debit card, exchange and wallet offered. Plugins for e-commerce and API offered for integration.
  • Spicepay-bitcoin-payment-gateway-96x96.pngSpicePay Accept Bitcoin for payments at this bitcoin processor that targets Europe, Russia and Latin America.
  • XBTerminal Brick-and-mortar hardware POS terminals with payment processing integrations.

See Also