Need to understand how subscription swap works. The documentation says the change occurs at the end of the billing period. So:
- User subscribes to 10/month on Jan 1 and immediately gets charged 10
- He switches to premium 20/month on Jan 15
- Question: so there will be no immediate charge of the pro-rated premium amount for the current billing cycle, there will be only a 20/month charge on Feb 1?
Yes, at this time that is how the plan would be swapped with the Subscriptions API.
What prevents the user from downgrading the plan a day before cycle ends to get charged the lower 10 amount, and then upgrading the plan a day after the billing cycle starts to use the 20 premium for free again?
There isn’t anything stopping them from doing that if that’s how your application allows them to upgrade or downgrade. You can add checks for things like this or choose to charge the card on file for an out of cycle billing.
So Square doesn’t handle any proration at all? We have to manage all that?
Not with swapping plans. This is something that your application would have to manage.