Author: Stephane Brossier 2014-02-09 02:48:06
Published on: 2014-02-09T02:48:06+00:00
A team has been working on creating a protocol to enable recurring payments in bitcoins, which can be seen as an extension of BIP-0070. They have implemented a prototype using bitcoinj and modified the 'Payment Request Generator' from Gavin to include a new check box 'set recurring'. They have also found a few issues with the code diff that they sent yesterday for bitcoinj and checked in the bug fixes in their fork. At this point, they are waiting for feedbacks and also started looking at integrating the protocol in Kill Bill to check that what is proposed supports indeed the business cases of a full recurring billing platform. The motivation behind this protocol is to make it possible for customers to pay in bitcoins for subscription-based services, which have been growing in the past few years. Bitcoin’s push model presents new advantages for the customer compared to traditional payment methods: the user has control over the subscription. The team proposed a high-level description of what they have in mind. The flow of operations involves the creation of the subscription, ongoing payments, subscription change (optional), and cancellation of the subscription. The ongoing payment process involves the wallet polling the merchant for due payments associated with that subscription. The wallet needs to get the latest invoice balance to make sure how much it should pay since the user account on the merchant side may have gotten credits or invoice adjustments since the last invoice. The wallet is responsible to check that payments match the subscription contract, and if so, the payment is made without asking for explicit approval from the customer. The team also discussed implementing a change in the ongoing subscription to address the upgrade/downgrade scenarios, and the cancellation of the subscription initiated from the customer. They mentioned that wallets can be offline for an extended period of time, payments may be missed and lead to an overdue state. Therefore, it is the responsibility of the customer to ensure the wallet is up often enough for payments to happen. The team is looking for feedbacks and additional requirements they might have missed.
Updated on: 2023-06-08T01:55:44.408172+00:00