Sure there are a lot of complexities, but it's not that horrendous as someone who literally worked on recurring payments for a bank. You just simplify things by making it a pull system. A recurring payment is just authorization from the bank to withdraw up to X dollars every Y days/months/year (you want a design like this to avoid dealing with holidays and weekends on the bank side which vary for every country).