Question or Problem Statement:
We have multiple Products each with multiple Rate Plans at various prices. We use Overage Pricing model where our customers are offered with a basic amount of services they could consume. Once exceeded the included amount, any overage will be charged as extra.
We are seeing a trend in our customer base that people exploit our system. They would sign up our cheapest plan with their credit card and immediately upgrade to the highest plan which includes large amount of free services, but they never pay for the upgrade.
This is because we only charge them for the upgrade upon the Subscription next renewal. When our customers upgrades, we only add the Amendments to their Subscriptions and we have scheduled Bill Run and Payment Run to generate Invoice and process Payment, which can be as late as the next day. Therefore, they took advantage of that, consuming our services and making it impossible for us to charge their credit card the next day by removing all funds or do something similar to cause a payment decline.
When your customer upgrade, we suggest that you use SOAP API Amend() call, which supports generate Invoice and process Payment in one single call. And if any of the operation failed, the whole process will be rolled back as if nothing happened. This will ensure your customer pay upfront for their use, effectively solving your issue.