I need some help with implementation of reccuring charge cancelation and testing. Currently I allow user to cancel it's recurring application charge, I simply send DELETE request to api to cancel that charge, but I don't see any prorating in upcoming bill.
As I've read here https://help.shopify.com/en/manual/your-account/manage-billing/your-invoice/apps#app-prorating-upgra... it says, that application on cancellation should promt user for a new recurring charge. So it means, that cancelling is implemented not by sending DELETE request, but by overwriting current recurring charge with new one, and bill user by 0$?.
Also another question. Currently I use recurring charge for monthly plan. Any suggestions how I could track if user is still being charged for monthly charge? Will I recieve any request to my backend from shopify when user is charged? Thanks.
Proration only occurs when upgrading or downgrading by create a new charge that replaces an old one. Cancelling a charge the way you are would not result in any proration, as you've mentioned.
You could do the work around you mentioned, but in my opinion, it's not the cleanest solution. If it were my app, I would:
1. allow service to the app to continue until the current cycle would have ended.
2. create a credit for the merchant based on the number of days remaining in the cycle.
In terms of your question around when a merchant is actually charged, I would recommend giving this doc a read. Essentially, Shopify charges merchants for apps when their Shopify subscription is paid. Since this doesn't necessarily align with when a recurring charge cycle begins, these cycles are separate. The diagram at the top of the page does a good job at giving a real example of this.
Hope that offers the insight you needed!