user564: 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?

user307: 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.

user570: 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.

user85: 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.

user13440: You can now use the Bitcoin payment protocol to do this.
Here is an easy to use implementation from Bitpay.
There are already a few wallets that support this (including the reference client).  More will be released soon.
See:

BIP 70
BIP 71
BIP 72
BIP 73


564: <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>
 307: <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>
 570: <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>
 85: <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>
 13440: <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>
