I have an online store and would like to begin accepting bitcoins. How can I go about doing this?

  • 3
    There are many particular services/solutions mentioned here. Does anyone want to synthesize a bunch of them into a guide for how to implement? That would be ideal since I would prefer not to "choose" one service over others. So the ideal answer should start "It will depend on your level of technological expertise and your existing software stack:" then break it down starting with 'slap on an address' and ending up at code-your-own. – eMansipater Sep 9 '11 at 14:43
  • 2
    Done. Hopefully my answer is to your liking. – David Perry Sep 20 '11 at 23:05
  • I run a small business and would like to start accepting bitcoin but im not a computer tek can you, put it in lay person talk – user12873 Jan 29 '14 at 23:19
  • This info is available via a simple google search and even on Bitcoin.org, Bitcoin's official website. – John T Feb 3 '14 at 2:27
up vote 33 down vote accepted

There are a number of ways one can go about accepting Bitcoin on a web interface. Keep in mind as you review these options that Bitcoin is still a young technology and many of these options aren't what you'd call "friendly" just yet. That said you do have quite a few options depending on your level of expertise and technical requirements:

  • Use a service like:
  • Use an existing shopping cart interface
    • There are existing plugins for Ubercart, Magento and many other popular e-commerce platforms. If you are looking to modify an existing site that happens to run on one of these platforms, this may be your best bet. If you've yet to start a site and don't want to write code yourself this may still be your best bet since you can choose your platform prior to implementation.
  • Roll your own using existing libraries
    • This is your best bet if you're using a platform that isn't currently supported or if you have difficult integration requirements that cannot be satisfied by existing e-commerce platforms like Magento or Ubercart.
    • Languages:
  • Roll your own using the JSON API directly
    • This is only necessary if you are not using one of the half-dozen or so languages that already have pre-written libraries for interfacing with bitcoind. The list of languages may be short, but all of the major industry standards have been covered, so it's unlikely you will have to go this far.
  • 4
    In before cries of plagiarism: All data herein comes from other answers, including my own original answer. Per the asker's request I have compiled the finer points of each answer into one large answer which is appropriate to a larger array of scenarios than any of the individual answers alone. – David Perry Sep 20 '11 at 23:07
  • Unfortunately the bounty ran out before your answer was posted, but I'll definitely accept this one. Good work! – eMansipater Sep 21 '11 at 14:32
  • 1
    Yeah, I wasn't really in it for the bounty anyway. I guess that 100 rep loss is what I get for spending a weekend at Disneyland instead of on StackExchange ;) – David Perry Sep 21 '11 at 15:47
  • Bit-pay is different from the other services because they allow the merchants to be paid in USD so they don't have to worry about price fluctuation and dollar conversion. The website accepts bitcoins, but the owners never have to manage them. Bit-pay also offers several shopping cart plugins such as WHMCS, OpenCart, Zen Cart, Magento, etc. – nmat Oct 28 '11 at 23:29
up vote 16 down vote
+100

You can use services like BitcoinPayFlow or Bit-Pay.

I'm working on a payment module to integrate BitcoinPayFlow with OpenCart, watch the project here - it should be ready within a couple weeks.

Edit: Bit-Pay just released an OpenCart payment module. See here.

  • 3
    I would advise against a solution that depends on another site staying afloat. If yours is more then a casual website it will be worth the effort to have a bitcoin solution that runs on your own server. – lathomas64 Aug 31 '11 at 15:16
  • 1
    I agree with lathomas64. I think it's a bad idea to recommend third party solutions as the accepted answer. We've seen a very high failure rate with third party solutions, and bitcoind gives you the functionality you need. – Joshua Kolden Sep 4 '11 at 20:12
  • I both agree and disagree. Both solutions (JSON RPC and third party payment processors) have their place. The reason I suggested BitcoinPayFlow and Bit-Pay is because they are easy to setup as they don't require much technical knowledge. BitcoinPayFlow is nice because it forwards all payments as soon as they've been confirmed so they don't often have much of a balance. – Simon Trigona Sep 4 '11 at 21:58

You should definitely checkout https://bitcoinnotify.com/ service. They work noticably different than the existing solutions:

  1. You provide a list of btcaddresses (of your own wallet!) to them
  2. They monitor all transactions in the network
  3. If they observe a transaction to one of your adresses you get a POST from their site with address, amount, timestamp, number of confirmations, ...
  4. You can specify how many confirmations are needed before you get the notification. Also multiple notifications are possible, e.g. at 1 and at 6 confirmations

To implement this you need to keep track on your side which order is linked to which btc-address. When a payment is confirmed you can use the address again for the next order

Advantages:

  • No external wallet involved - All payments go DIRECTLY to your own wallet, so there is no way they can run with your money or get hacked or robbed etc.
  • You can keep your wallet at any dedicated, highly secured separate system, no need to have it on or near your website
  • If you want to take the risk of not waiting for confirmations you get the notification within seconds after the transaction has been issued from the customer (at least that's my personal experience)

I hope that soon similar services appear, so you could subscribe at multiple sites for notification. So there is no single point of failure anymore.

  • 2
    Upvoted for the potential of having a wallet offsite. – eMansipater Sep 8 '11 at 15:46
  • You should note the risks also, e.g. that bitcoinnotify colludes with one of your customers (or becomes one of your customers) and fraudulently notifies you to ship something that hasn't actually been paid for. Hopefully that would be quickly reported if it happened, and folks that use them could switch. But there is also always the risk of "he said - she said", unfortunately. – nealmcb Sep 17 '11 at 18:26
  • 1
    The ideal combination would be something like an open-source version of bitcoinnotify that you could run yourself, preferably with a private key known only by the service used to sign notifications to the website to validate their authenticity. – blueadept Sep 20 '11 at 20:23

Take a look at the bitcoind json api.

You will have to run the bitcoind services on a computer accessible by your website. The computer you run the service on should be very secure since it holds your wallet. Development is underway to allow you to have the wallet file located elsewhere.

For added security you can keep a copy of your server wallet file on your computer and regularly transfer funds to a more secure account.

There are also people who provide this service. However this is not as secure, and you should carefully review the options before trusting one of these services. Nevertheless these can be an easy alternative if you can accept the risks involved.

  • Also note, you will need a VPS or similar. It will not work on webhost. – Codler Aug 30 '11 at 23:27
  • 1
    I think you mean shared host, and yes you should not run a bitcoind on on any server that you do not have complete control of security on. – Joshua Kolden Aug 30 '11 at 23:35
  • 2
    You can always run bitcoind on a separate machine from your web server and since the JSON API supports SSL the added security risk is negligible. Of course that also doubles the possible points of failure, but if you have no other choice it will at least solve the problem. – David Perry Sep 1 '11 at 18:35

There are a number of shopping cart interfaces currently available, though a fair number of them relied on the now-defunct MyBitcoin API. It is also fairly easy to integrate your own code with the JSON API as there are libraries available in most common languages, such as ASP.NET/C#, PHP, Python and many others. VPS or dedicated hosting is recommended since the bitcoin client can then reside on the server itself, but as bitcoin's JSON API supports SSL as of version 0.3.14 it is reasonably secure for the bitcoin client to reside on another system and allow your web application to connect to it remotely.

You can also have a look at blockonomics merchant service. It allows you to accept bitcoin directly into your wallet and is the only service right now that handles gap limit problems itself.

protected by Community Feb 7 '14 at 0:14

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.