I’ve done some customization with the customer portal (as described below) but I’ve gotten as far as I can go and I’m tired of going down rabbit holes for months and creating dead end API calls and workflows trying to figure this out. I need help!
My platform has two different kinds of users that need access to two different sets of plans. The way subscriptions should work:
UserType1 can move between four plans: free, monthly, quarterly, annual and when they move from one plan to the other, they should not get billed until after their current billing period ends. So, for example, a user signs up on the monthly plan, and then halfway through, wants to upgrade to an annual plan. The system should not bill them until their monthly plan cycle is completed. In the same fashion, if they start on an annual plan and downgrade to a monthly plan, they should not be billed until the annual plan is completed and the user should retain premium access until the end of their yearly plan.
UserType2 can choose between 3 plans: free, annual standard and annual premium - when they move from annual standard to annual premium, their subscription gets prorated so that they can have immediate access to premium features, but if they downgrade from premium to standard (or free), they still have access to the premium features they paid for until the end of their current billing cycle.
What I’ve Done/Need Help With
I have been able to create a custom portal configuration that allows different types of users access to different plans. I also have an update subscription webhook connected that updates my app with Stripe’s updates.
What I need is to loop in the upgrade/downgrade options described above for each UserType. I think this has something to do with the billing cycle anchor and/or setting the proration date, but I’m not sure how these work together with the custom portal configuration.
If you have experience doing this type of thing, I’d love to see some examples of your work and let me know what your charge would be.
If this experience goes well, I will have another project down the line to implement API function to connect my bubble app to EvidentID using their API documentation.