johnny As an MSP, I absolutely use account credits - both time and money based. Each month my clients get hours added to their account. They consume those hours when they request additional support, and once they're out of prepaid hours, we bill them directly. If we end up billing them 3 months in a row, we increase their prepaid hour allocation until the billing stops or the clients financial department deals with the staff that is abusing our chat. With that said, yes, this is specific to the break/fix side of my business, but the same stands.
We handle this through the customer's account balance feature. In our previous PSA, we had both time tracking and account credit functions working together seamlessly and it was a beautiful thing for automated billing and tracking.