Is there a reason you can't have your users load their account with a certain amount and then have their usage charge against that pre-loaded amount? That's what they do at Twilio. As for fraud, there are a ton of 3rd party systems out there that can do fraud detection for you. Sift Science being one of them (https://siftscience.com/).