<p>You can now use the Bitcoin payment protocol to do this.</p>

<p>Here is an easy to use <a href="http://blog.bitpay.com/2014/02/20/bitpay-launches-payment-protocol-support.html" rel="nofollow">implementation from Bitpay</a>.</p>

<p>There are already <a href="https://bitpay.com/bitcoin-compatible-wallets" rel="nofollow">a few wallets</a> that support this (including the reference client).  More will be released soon.</p>

<p>See:</p>

<ul>
<li><a href="https://github.com/bitcoin/bips/blob/master/bip-0070.mediawiki" rel="nofollow">BIP 70</a></li>
<li><a href="https://github.com/bitcoin/bips/blob/master/bip-0071.mediawiki" rel="nofollow">BIP 71</a></li>
<li><a href="https://github.com/bitcoin/bips/blob/master/bip-0072.mediawiki" rel="nofollow">BIP 72</a></li>
<li><a href="https://github.com/bitcoin/bips/blob/master/bip-0073.mediawiki" rel="nofollow">BIP 73</a></li>
</ul>

CC BY-SA 3.0
2014-03-29T19:59:59.953Z
2014-03-29T19:59:59.953Z
Jonathan Cross
<p>There is no way to send messages within the Bitcoin system, and there is no URL link in the Bitcoin client yet. Generally, what you do is provide the customer a Bitcoin payment address and an amount either in the web page, by email, or by some other method.</p>

CC BY-SA 3.0
2011-10-12T14:30:00.370Z
I believe the [Spesmilo](https://en.bitcoin.it/wiki/Spesmilo) alternate client does support URIs following the [proposed standard](https://en.bitcoin.it/wiki/URI_Scheme) scheme.
David Perry
CC BY-SA 3.0
2011-10-12T12:50:19.213Z
2011-10-12T12:50:19.213Z
David Schwartz
<p>If you look at the Bitcoin Wallet app for Android, there is a URI schema used to request money from other users. Unfortunately this isn't part of the desktop version of the application.</p>

CC BY-SA 3.0
2011-10-13T13:16:59.380Z
2011-10-13T13:16:59.380Z
Iulian Arcus
<p>You can't "contact" a bitcoin user via their address and likely never will because that could be used to compromise the anonymous nature of addresses.  Likewise there is no mechanism to request payments or send bills.  User can simply choose to pay you.  </p>

<p>Thus you will need to contact the user, link unique payment addresses to a user account and track "time remaining" all <strong>"out of band"</strong>.</p>

<p>Say you have a webhosting service which costs 1 BTC per 30 days, prepaid.  While there is no concept of periodic billing you could setup your website to create a unique payment address for for each user.  By recording user information and payment address in a database you know how a method to match incoming payments to users. When you receive payments by looking up the user account by the address you can "credit' the correct user account.  The advantage of doing it this way is the user doesn't need to wait for a bill, pay at any preset time, or wait for service to expire.  The concept of periodic payments will need to adapt to bitcoin unique features and limitations. </p>

<p>To improve payment rates at every login you could advise the user on the numbers of days remaining and remind them of payment.  User could at anytime send a payment to their unique payment address from any wallet and gain x more days of service based on payment size. You could also have the webservice send the user an email at 7 days remaining, 3 days remaining, and when service is expired.</p>

<p><strong>Actually creating this infrastructure to make it turn key for other companies would be a good bitcoin service.</strong></p>

CC BY-SA 3.0
2013-05-16T01:52:39.770Z
`that could be used to compromise the anonymous nature of addresses` Not necessarily. You could use something like bitmessage. Of course, that would have all the scaling problems that bitcoin itself has.
Nick ODell
CC BY-SA 3.0
2011-10-12T15:21:35.960Z
2011-10-13T04:57:45.050Z
2011-10-13T04:57:45.050Z
DeathAndTaxes
<p>There's obviously a demand for a recurring payment system.  In my opinion, there are two ways to implement such a system.  One is a change to the bitcoin base client itself so that, with explicit authorization of the user, it will send x address x # of bitcoins each x number of days.  That kind of implementation would probably have a better chance of getting implemented than something that pulls money from the bitcoin wallet since that kind of action defies the anonymous (and fairly libertarian) nature of bitcoin.</p>

<p>While it's possible that it could be it could be implemented, in my opinion, a better way would actually be to create an API to do this.  DeathAndTaxes had a good outline of what such an API would need to do.</p>

<p>My idea of it is somewhat different, but builds on what DeathAndTaxes said.  The email reminder would be essential if it's going to be a "push" payment rather than an automatic "pull" payment.  </p>

<p>I put this in a bitcointalk thread, but this is really a better place for it.</p>

<p>Here's my idea for an API:</p>

<p>1) Customer submits initial payment for x bitcoins.  Future payments are then pegged to the exchange rate for x bitcoins to x dollars (or whatever currency the merchant uses).</p>

<p>2) The service asks for authorization for "recurring billing"</p>

<p>3) If the user accepts, a recurring payment schedule is setup.  Email reminders are sent out for payment like DeathAndTaxes said.  At the 30 day mark, service is shut off if user has not paid.  This could be an automatic thing, or more likely, the API would contact whoever is implemented it that x user hasn't paid and thus needs to have x service disabled.</p>

<p>Actually, another way to implement recurring payments that would make a lot of sense would be with a deluxe wallet client like Armory and not touch the base bitcoin client.  In a way, this type of implementation would make much more sense than the API implementation because it can be totally recurring without the user having to do anything other than ensure that the proper amount of bitcoins is in his or her wallet and that it's not an offline wallet.  The problem with this type of implementation, of course, is that it would limit recurring payments to Armory (or whatever other wallet client implemented it).  </p>

<p>Over time, I wouldn't be surprised if both types of implementations occur.  I don't see any reason why they can't both occur at the same time.</p>

CC BY-SA 3.0
2013-05-16T01:54:00.120Z
Who would host the API?
Nick ODell
CC BY-SA 3.0
2013-05-16T03:24:36.407Z
@NickODell, I'd say whoever created it would host it.  If it's going to be an offical API that everyone would be inclined to use, I'd say bitcoin.org would be the perfect place to host it.  But I doubt it would be quite THAT official, unless it gets implemented in one of the clients in which case it wouldn't really be an API.
Evan Lynch
CC BY-SA 3.0
2013-05-16T00:01:44.627Z
2013-05-16T00:01:44.627Z
Evan Lynch
<p>I'm writing a recurring billing system and I want to be able to contact a customer and request a certain amount of money. Is this possible via bitcoin?</p>

<p>If not, could a URL be provided the customer so he can simply click it and it opens the bitcoin app and initiates a payment process?</p>

CC BY-SA 3.0
2014-03-29T20:01:17.940Z
You can now use the Bitcoin payment protocol to do this, more info below.
Jonathan Cross
CC BY-SA 3.0
2011-10-12T15:56:36.440Z
There is talk of adding multi-signature transactions in the near future. Depending on how it is implemented it may become possible to allow a business the privilege of initiating the transaction by signing with their private key but not complete the transaction until the customer also signs. In future clients we may see a "needs approval" transaction queue for precisely such an occasion. I leave this as a comment instead of an answer because at present the below answers are entirely correct and there is no way to easily implement recurring billing within Bitcoin itself.
David Perry
<transactions><payment>
Is there a way to initiate a payment request in bitcoin?
Terrence Brannon
# Is there a way to initiate a payment request in bitcoin?

(Asked by: username_0 on 2011-10-12)

I'm writing a recurring billing system and I want to be able to contact a customer and request a certain amount of money. Is this possible via bitcoin?

If not, could a URL be provided the customer so he can simply click it and it opens the bitcoin app and initiates a payment process?

**Tags:** transactions, payment

> **Comments:**
> **username_2**: There is talk of adding multi-signature transactions in the near future. Depending on how it is implemented it may become possible to allow a business the privilege of initiating the transaction by signing with their private key but not complete the transaction until the customer also signs. In future clients we may see a "needs approval" transaction queue for precisely such an occasion. I leave this as a comment instead of an answer because at present the below answers are entirely correct and there is no way to easily implement recurring billing within Bitcoin itself.  
> **username_1**: You can now use the Bitcoin payment protocol to do this, more info below.  

---

## 5 answers

### Answer by username_1 on 2014-03-29. Score: 4

You can now use the Bitcoin payment protocol to do this.

Here is an easy to use [implementation from Bitpay](http://blog.bitpay.com/2014/02/20/bitpay-launches-payment-protocol-support.html).

There are already [a few wallets](https://bitpay.com/bitcoin-compatible-wallets) that support this (including the reference client). More will be released soon.

See:

* [BIP 70](https://github.com/bitcoin/bips/blob/master/bip-0070.mediawiki)
* [BIP 71](https://github.com/bitcoin/bips/blob/master/bip-0071.mediawiki)
* [BIP 72](https://github.com/bitcoin/bips/blob/master/bip-0072.mediawiki)
* [BIP 73](https://github.com/bitcoin/bips/blob/master/bip-0073.mediawiki)


---

### Answer by username_3 on 2011-10-12. Score: 3

There is no way to send messages within the Bitcoin system, and there is no URL link in the Bitcoin client yet. Generally, what you do is provide the customer a Bitcoin payment address and an amount either in the web page, by email, or by some other method.

> **Comments:**
> **username_2**: I believe the [Spesmilo](https://en.bitcoin.it/wiki/Spesmilo) alternate client does support URIs following the [proposed standard](https://en.bitcoin.it/wiki/URI_Scheme) scheme.  

---

### Answer by username_4 on 2011-10-13. Score: 1

If you look at the Bitcoin Wallet app for Android, there is a URI schema used to request money from other users. Unfortunately this isn't part of the desktop version of the application.


---

### Answer by username_5 on 2011-10-12. Score: 1

You can't "contact" a bitcoin user via their address and likely never will because that could be used to compromise the anonymous nature of addresses. Likewise there is no mechanism to request payments or send bills. User can simply choose to pay you.

Thus you will need to contact the user, link unique payment addresses to a user account and track "time remaining" all **"out of band"**.

Say you have a webhosting service which costs 1 BTC per 30 days, prepaid. While there is no concept of periodic billing you could setup your website to create a unique payment address for for each user. By recording user information and payment address in a database you know how a method to match incoming payments to users. When you receive payments by looking up the user account by the address you can "credit' the correct user account. The advantage of doing it this way is the user doesn't need to wait for a bill, pay at any preset time, or wait for service to expire. The concept of periodic payments will need to adapt to bitcoin unique features and limitations.

To improve payment rates at every login you could advise the user on the numbers of days remaining and remind them of payment. User could at anytime send a payment to their unique payment address from any wallet and gain x more days of service based on payment size. You could also have the webservice send the user an email at 7 days remaining, 3 days remaining, and when service is expired.

**Actually creating this infrastructure to make it turn key for other companies would be a good bitcoin service.**

> **Comments:**
> **username_6**: `that could be used to compromise the anonymous nature of addresses` Not necessarily. You could use something like bitmessage. Of course, that would have all the scaling problems that bitcoin itself has.  

---

### Answer by username_7 on 2013-05-16. Score: 0

There's obviously a demand for a recurring payment system. In my opinion, there are two ways to implement such a system. One is a change to the bitcoin base client itself so that, with explicit authorization of the user, it will send x address x # of bitcoins each x number of days. That kind of implementation would probably have a better chance of getting implemented than something that pulls money from the bitcoin wallet since that kind of action defies the anonymous (and fairly libertarian) nature of bitcoin.

While it's possible that it could be it could be implemented, in my opinion, a better way would actually be to create an API to do this. username_5 had a good outline of what such an API would need to do.

My idea of it is somewhat different, but builds on what username_5 said. The email reminder would be essential if it's going to be a "push" payment rather than an automatic "pull" payment.

I put this in a bitcointalk thread, but this is really a better place for it.

Here's my idea for an API:

1) Customer submits initial payment for x bitcoins. Future payments are then pegged to the exchange rate for x bitcoins to x dollars (or whatever currency the merchant uses).

2) The service asks for authorization for "recurring billing"

3) If the user accepts, a recurring payment schedule is setup. Email reminders are sent out for payment like username_5 said. At the 30 day mark, service is shut off if user has not paid. This could be an automatic thing, or more likely, the API would contact whoever is implemented it that x user hasn't paid and thus needs to have x service disabled.

Actually, another way to implement recurring payments that would make a lot of sense would be with a deluxe wallet client like Armory and not touch the base bitcoin client. In a way, this type of implementation would make much more sense than the API implementation because it can be totally recurring without the user having to do anything other than ensure that the proper amount of bitcoins is in his or her wallet and that it's not an offline wallet. The problem with this type of implementation, of course, is that it would limit recurring payments to Armory (or whatever other wallet client implemented it).

Over time, I wouldn't be surprised if both types of implementations occur. I don't see any reason why they can't both occur at the same time.

> **Comments:**
> **username_6**: Who would host the API?  
> **username_7**: @username_6, I'd say whoever created it would host it.  If it's going to be an offical API that everyone would be inclined to use, I'd say bitcoin.org would be the perfect place to host it.  But I doubt it would be quite THAT official, unless it gets implemented in one of the clients in which case it wouldn't really be an API.  

---

