The Complete Guide to Accept Bitcoins Without Fees

NameTerrific is probably the best and most popular domain service provider that accepts Bitcoin, a peer-to-peer digital currency. We’re always proud users of cutting-edge technologies and I can confidently say that Bitcoin is by far the best payment solution ever invented.

Why Bitcoin?

We’re an Australian company and just like almost every non-U.S. startup, we had a hard time sorting out payment solutions. Our needs are complex: multi-currency support is essential (90% of our potential users have no idea how much AUD is worth), stored payment methods (while minimising PCI compliance requirements), low fixed costs (as we’re a startup) and developer-friendly APIs.

After months of paperwork, phone calls, emails and coding, we finally settled on WorldPay and Spreedly Core. They are very good (especially Spreedly Core), and at least our requirements can be all met.

However, processing Bitcoin payments is a completely different experience. There’s no paperwork (just code), no set-up cost and everyone can get started in no time. In addition, there’s virtually no chargeback risk (we don’t require any confirmations but we bet that the cost of a double-spending attack is significantly higher than a domain) and the fees are low.

There are many existing solutions out there that may fit your needs perfectly, such as Coinbase, Mt. Gox and Bitpay. But this post is going to be a fee-free method to accept Bitcoins on your website.


We love the Blockchain Receive Payments API because they’re secure and really easy-to-use. You can dynamically generate a Bitcoin address (displayed to your customer) from your app. Payment received via this unique address will be forwarded to a specified destination address, which can be the one in your Bitcoin wallet.

Blockchain even supports a callback feature which is similar to PayPal’s IPN. When the Bitcoin is received your app will be notified. Remember to generate a unique key for each callback address so that the request can’t be spoofed.

The Behaviour

Here’s the sequence of events that should happen when a customer orders on your site and opts to pay with Bitcoin:

  1. Generate order/invoice
  2. Generate a Bitcoin address via Blockchain API
  3. Show the amount to your customer and ask for payment
  4. If you use callback, wait for notification. Otherwise, give your customer a “Check Payment” button which will check the transaction history of the unique address
  5. If payment is received, deliver the order
  6. That’s it!

The whole process is extremely easy to understand and implement. It’s also entirely transparent to your customers so you can customise the payment page and avoid redirecting them to third-party payment processors.

How to cash out?

All the payments will be eventually directed to your Bitcoin wallet and you can trade them with any other Bitcoiner for local currencies. You can also use a Bitcoin exchange such as Mt. Gox. If you have a U.S. bank account, Coinbase is a good alternative too.

The benefit of DIY Bitcoin processing is that you can control how much to keep as Bitcoin savings and how much to convert to local currencies to pay your bills.

How about pricing?

Generally there are two ways to price your products. If your products are high-profit-margin or primarily service-based, it may be a good idea to fix a price in Bitcoin and change it only when the value of Bitcoin changes a lot. Other merchants, however, tend to fix fiat currency prices and calculate Bitcoin prices dynamically using the latest exchange rates.

Regardless of what you actually prefer, it’s a good idea to keep records of exchange rates applied for every single order for the accounting and taxation purposes.

How about accounting?

I’m not a certified accountant, but I’m aware that there should be specific rules applied to foreign currencies accounting in your country. Generally for any kind of foreign currency accounting, these three accounts need to be created:

  • Cash account for each different currency (the amount is in local currency)
  • Unrealised foreign currency gains and losses (for foreign currency transactions involved in receivables/payables/accrued/prepaid accounts, calculated periodically)
  • Realised foreign currency gains and losses (for foreign currency transactions performed in cash, closed to P/L)

For Bitcoin, this general rule is entirely applicable. Since we are already dealing in multiple currencies, there’s no additional work to do other than monitoring BTC/USD exchange rates regularly. However, you should probably talk to your accountant if foreign currency accounting is new to you.


Compared to our credit card payment processing system, Bitcoin is really attractive because it’s so easy to accept. The user experience is great too: on average it takes less than 20 seconds to register a domain on NameTerrific using Bitcoin provided you have pre-filled the contact info in your Profile. Our customers absolutely love it and you should definitely consider accepting Bitcoin on your site to ride a conversion boost.

Lastly, a tip: You should list your website on Bitcoin wiki / Trade so that Bitcoiners can find your business.

One thought on “The Complete Guide to Accept Bitcoins Without Fees

Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>