I have added a stripe susbcription in my app where user can subscribe and Subscription is working monthly like
When user buys subscription on 15-Feb then it will be until 15-March But On what time will stripe will try to duduct the subcription amount to the users? I mean Does they have specific time for users or for every app registered for?
I didn’t find any setting to change or read the deducting time anywhere in my dashboard.
Or Do I have to manually pass a specific timing to charge the users? like
subscription.create(
customer='cus_4fdAW5ftNQow1a',
items=[{'price': 'price_1HKfZY2eZvKYlo2Rb'}],
billing_cycle_anchor=intended_end_time_unix_timestamp,
)
Any help or documented link would be much Appreciated.
>Solution :
If the Subscription was created on Feb 15 at 6:45 UTC:
-The customer was first charged on Feb 15 at 6:45 UTC.
-For recurring Invoices automatically generated by Stripe, the customer will be charged on the 15th of the month at ~7:45 UTC.
This is because any Stripe-generated Invoice is set with auto_advance=true, which means the Invoice is left as draft for an hour (in case you want to change it while it’s possible to). This ‘hour’ grace period is approximate, it might vary by a couple minutes.
If you create the Subscription, or make a change to it that would lead to an immediate Invoice (e.g. billing_cycle_anchor=now or proration_behavior=always_invoice), then your Invoice is user-generated, and it is created, finalized and paid at the same time.
Related documentation:
https://stripe.com/docs/invoicing/integration/automatic-advancement-collection#toggle-auto-advance
If you want to set a specific time for your user to be charged, you can use billing_cycle_anchor, however:
-Be mindful of that hour draft period.
-Be mindful of daylight time changes – if you set timestamps in any time zone other than UTC.
Stripe handles processes according to UTC. If time shifts according to your time zone, it will not shift according to Stripe, which can cause issues.
PS: If you create Subscriptions from the Stripe Dashboard, the timing set is different depending on what specific Dashboard action you did. It’s like no-one at Stripe could agree on a single anchor time when designing the UI.