I had to build a custom billing system for Cachoid too ( https://www.cachoid.com/ ). You definitely need the upfront time to build it from the ground up but it's worth it in the long run. I'm doing monthly recurring with Stripe and one-time also with Stripe and Paypal. And Bitcoin through Stripe.
I found that charging per server/FQDN (one FQDN === one service === one billing item) rather than per user provides more flexibility. But I'm not comfortable with single-homed APIs like Spreedly. What if it gets acquired tomorrow? It isn't something you can replace overnight.
I'd rather have a multi-homed setup with direct relationship with multiple gateways