<p>You can use services like <a href="https://www.bitcoinpayflow.com/">BitcoinPayFlow</a> or <a href="https://bit-pay.com/">Bit-Pay</a>.</p>

<p>I'm working on a payment module to integrate BitcoinPayFlow with OpenCart, watch the project <a href="https://github.com/strigona/BitcoinPayFlow-OpenCart">here</a> - it should be ready within a couple weeks.</p>

<p>Edit: Bit-Pay just released an OpenCart payment module. See <a href="http://www.opencart.com/index.php?route=extension/extension/info&amp;extension_id=3119&amp;filter_search=bitcoin&amp;sort=e.date_modified&amp;order=DESC">here</a>.</p>

CC BY-SA 3.0
2011-09-04T20:12:31.273Z
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
CC BY-SA 3.0
2011-09-04T21:58:33.820Z
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
CC BY-SA 3.0
2011-08-31T15:16:19.800Z
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
CC BY-SA 3.0
2011-08-30T23:31:13.630Z
2011-09-01T14:53:24.497Z
2011-09-01T14:53:24.497Z
Simon Trigona
<p>Take a look at the bitcoind <a href="https://en.bitcoin.it/wiki/API_reference_%28JSON-RPC%29" rel="nofollow">json api</a>.</p>

<p>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.</p>

<p>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.</p>

<p>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.</p>

CC BY-SA 3.0
2011-08-30T23:19:51.900Z
2011-08-30T23:27:30.510Z
2011-08-30T23:27:30.510Z
Joshua Kolden
<p>You should definitely checkout <a href="https://bitcoinnotify.com/">https://bitcoinnotify.com/</a> service. They work noticably different than the existing solutions:</p>

<ol>
<li>You provide a list of btcaddresses (of your own wallet!) to them</li>
<li>They monitor all transactions in the network</li>
<li>If they observe a transaction to one of your adresses you get a POST from their site with address, amount, timestamp, number of confirmations, ...</li>
<li>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</li>
</ol>

<p>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</p>

<p>Advantages:</p>

<ul>
<li>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.</li>
<li>You can keep your wallet at any dedicated, highly secured separate system, no need to have it on or near your website</li>
<li>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)</li>
</ul>

<p>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.</p>

CC BY-SA 3.0
2011-09-17T18:26:50.997Z
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
CC BY-SA 3.0
2011-09-08T15:40:34.673Z
2011-09-08T15:40:34.673Z
TripleSpeeder
<p>There are a number of <a href="https://en.bitcoin.it/wiki/Category%3aShopping_Cart_Interfaces" rel="nofollow">shopping cart interfaces</a> 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 <a href="http://sourceforge.net/projects/bitnet/" rel="nofollow">ASP.NET/C#</a>, <a href="http://jsonrpcphp.org/" rel="nofollow">PHP</a>, <a href="http://json-rpc.org/wiki/python-json-rpc" rel="nofollow">Python</a> and <a href="https://en.bitcoin.it/wiki/API_reference_%28JSON-RPC%29" rel="nofollow">many others</a>. 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.</p>

CC BY-SA 3.0
2011-08-31T04:53:22.407Z
2011-08-31T04:53:22.407Z
David Perry
<p>You can also have a look at <a href="https://www.blockonomics.co/views/merchants_get_started.html" rel="nofollow">blockonomics merchant service</a>. It allows you to accept bitcoin directly into your wallet and is the only service right now that handles <a href="https://medium.com/@blockonomics_co/accepting-bitcoins-made-easy-56b54a93ee9a#.3ebu9jg76" rel="nofollow">gap limit problems itself</a>.  </p>

CC BY-SA 3.0
2016-10-18T14:36:09.047Z
2016-10-18T14:36:09.047Z
dark knight
<p>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:</p>

<ul>
<li>Use a service like:

<ul>
<li><a href="https://www.bitcoinpayflow.com/" rel="nofollow noreferrer">BitcoinPayFlow</a></li>
<li><a href="https://BitPay.com/tour" rel="nofollow noreferrer">BitPay</a></li>
</ul></li>
<li>Use an existing <a href="https://en.bitcoin.it/wiki/Category:Shopping_Cart_Interfaces" rel="nofollow noreferrer">shopping cart interface</a>

<ul>
<li>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.</li>
</ul></li>
<li>Roll your own using existing libraries

<ul>
<li>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.</li>
<li>Languages:

<ul>
<li><a href="http://sourceforge.net/projects/bitnet/" rel="nofollow noreferrer">ASP.NET/C#</a></li>
<li><a href="https://github.com/php-libs/JsonRPC" rel="nofollow noreferrer">PHP</a></li>
<li><a href="http://json-rpc.org/wiki/python-json-rpc" rel="nofollow noreferrer">Python</a></li>
<li><a href="https://en.bitcoin.it/wiki/API_reference_%28JSON-RPC%29" rel="nofollow noreferrer">Many others</a></li>
</ul></li>
</ul></li>
<li>Roll your own using the <a href="https://en.bitcoin.it/wiki/API_reference_%28JSON-RPC%29" rel="nofollow noreferrer">JSON API</a> directly

<ul>
<li>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.</li>
</ul></li>
</ul>

CC BY-SA 3.0
2011-09-20T23:05:22.267Z
2017-12-27T05:13:49.157Z
2017-12-27T05:13:49.157Z
David Perry
<p>I have an online store and would like to begin accepting bitcoins.  How can I go about doing this?</p>

CC BY-SA 4.0
2020-06-27T09:59:15.260Z
As of 2020 (and it's been for some years now), the most straightforward way is by using https://btcpayserver.org/ .
Antoine Poinsot
CC BY-SA 3.0
2011-09-09T14:43:24.987Z
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
<transactions><ecommerce>
How can I accept bitcoins on my website?
eMansipater
# How can I accept bitcoins on my website?

(Asked by: username_0 on 2011-08-30)

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

**Tags:** transactions, ecommerce

> **Comments:**
> **username_0**: 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.  
> **username_1**: As of 2020 (and it's been for some years now), the most straightforward way is by using https://btcpayserver.org/ .  

---

## 6 answers

### Answer by username_7 on 2011-09-20. Score: 35 | Accepted answer

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:
  + [BitcoinPayFlow](https://www.bitcoinpayflow.com/)
  + [BitPay](https://BitPay.com/tour)
* Use an existing [shopping cart interface](https://en.bitcoin.it/wiki/Category:Shopping_Cart_Interfaces)
  + 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:
    - [ASP.NET/C#](http://sourceforge.net/projects/bitnet/)
    - [PHP](https://github.com/php-libs/JsonRPC)
    - [Python](http://json-rpc.org/wiki/python-json-rpc)
    - [Many others](https://en.bitcoin.it/wiki/API_reference_%28JSON-RPC%29)
* Roll your own using the [JSON API](https://en.bitcoin.it/wiki/API_reference_%28JSON-RPC%29) 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.


---

### Answer by username_2 on 2011-08-30. Score: 16

You can use services like [BitcoinPayFlow](https://www.bitcoinpayflow.com/) or [Bit-Pay](https://bit-pay.com/).

I'm working on a payment module to integrate BitcoinPayFlow with OpenCart, watch the project [here](https://github.com/strigona/BitcoinPayFlow-OpenCart) - it should be ready within a couple weeks.

Edit: Bit-Pay just released an OpenCart payment module. See [here](http://www.opencart.com/index.php?route=extension/extension/info&extension_id=3119&filter_search=bitcoin&sort=e.date_modified&order=DESC).

> **Comments:**
> **username_4**: 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.  
> **username_3**: I agree with username_4.  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.  
> **username_2**: 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.  

---

### Answer by username_5 on 2011-09-08. Score: 9

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.

> **Comments:**
> **username_6**: 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.  

---

### Answer by username_3 on 2011-08-30. Score: 5

Take a look at the bitcoind [json api](https://en.bitcoin.it/wiki/API_reference_%28JSON-RPC%29).

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.


---

### Answer by username_7 on 2011-08-31. Score: 3

There are a number of [shopping cart interfaces](https://en.bitcoin.it/wiki/Category%3aShopping_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#](http://sourceforge.net/projects/bitnet/), [PHP](http://jsonrpcphp.org/), [Python](http://json-rpc.org/wiki/python-json-rpc) and [many others](https://en.bitcoin.it/wiki/API_reference_%28JSON-RPC%29). 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.


---

### Answer by username_8 on 2016-10-18. Score: 0

You can also have a look at [blockonomics merchant service](https://www.blockonomics.co/views/merchants_get_started.html). It allows you to accept bitcoin directly into your wallet and is the only service right now that handles [gap limit problems itself](https://medium.com/@blockonomics_co/accepting-bitcoins-made-easy-56b54a93ee9a#.3ebu9jg76).


---

