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.
proration_behavior=always_invoice), then your Invoice is user-generated, and it is created, finalized and paid at the same time.
If you want to set a specific time for your user to be charged, you can use
-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.
Answered, September 25th, 2023