I'm a developer and using the Coinbase Ruby API to attempt to build a Coinbase application. I'm still coming to grips with how it all works. My question is, is it possible to set up recurring payments with Bitcoin? If so, how does that work?

I would prefer not to lean on a solution where I'm waiting for the customer to submit a payment every month, but for regular one-time payments, it was mentioned to me on this forum that the only way to accept them is to give the customer an address and hope they submit a payment.

6 Answers 6


No, you cannot do that. In Bitcoin, everything relies on the payer to perform the transaction, not the receiver. You as the receiver cannot do anything to make the payer give you money unlike with fiat payment processors.

However if all of your customers are using a centralized service like Coinbase, you can create software which uses Coinbase's API and essentially gives you permission to move that person's coins. This allows you to make the transactions to pay you but it also requires the user to trust you to not steal their money. There should be a permissioning system that makes this setup more trustworthy and less dangerous for the users.

  • In the case where the service "gives you permission to move that person's coins" what information do you need to collect from teh person up front?
    – Dave
    Sep 29, 2017 at 18:47

I never tried it (so do your own due dilligence!) but you could setup a multi-signature wallet where the person paying you puts x payments into that wallet. You then have the right to draw-down on that amount, but if they want to stop paying they can withdraw the balance of any funds left. It still requires trust as either of you could cheat and withdraw the entire amount, but it's less risky for the payer than opening control to their entire wallet, and it gives you the opportunity to instigate the payments without having the other party remember to do so. Having a clear agreement in writing on the payment schedule would be wise.


What is needed is a wallet with a schedule payment function. That I know of, there isn't any presently. But, you can submit it as a feature request to various wallet software developers or discuss it on [bitcoin-dev] which is active with many involved in developing for Bitcoin. Having such a function in wallets would add to the usability of Bitcoin. A proposed function could have an API to accept incoming scheduled payment requests one time from a bitcoin: URI and do all of the configurations once accepted: pay to address, amount, frequency, duration, label, balloon/reduced payment first/last.

However, you may have more success in trying to get web wallets to implement such a feature. The problem is, if the wallet is offline when the payment is due it cannot be completed until the wallet is back online. If a user wallet is offline for months then all of the payments would be sent when the user next puts their Bitcoin wallet back online.

It would still be worth discussing on [bitcoin-dev].


You'll need a payment processor that can offer this service for you. Groundhog.network is currently accepting early adopters and they've built out a platform specifically for handling subscription payments in crypto.


Currently, there’s three main issues with recurring crypto payments.

  • Volatility. Accepting 1ETH/BTC is not suitable for any merchant. Trying to program stability into smart contracts also comes at the cost of decentralisation.

  • User Experience. Pooling money upfront into a smart contract is bad user experience and also requires you to have more money than you have on hand.

  • Scheduling. You can’t have a smart contract call itself at a later point in time.

8x Protocol aims to solve these issues through:

  • Use of stable coin such as MakerDAO to solve volatility. 1 DAI = $1 USD.

  • Usage of ERC20 approve function to allow funds to be taken directly from your wallet. Think: direct debit but for crypto.

  • Network of decentralised nodes who are incentives to trigger the payment at the time that it’s due.

We’re still developing our codebase at: github.com/8xprotocol, although you can find out more about how we’re solving the recurring/subscription crypto payments problem via the Ethereum blockchain at: 8xprotocol.com


Lightning Collect will offer the ability for business to collect regular payments from customers in Bitcoin - www.lightningcollect.com.

The amount collected can be a fixed amount or fixed to a local currency. The payments can also be linked to a specific customer or made anonymously.

Disclosure - I founded Lightning Collect :)

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