Please document how renewal events relate to the date a customer has paid up to:
At the renewal moment, subscription_updated arrives with status “active” and renews_at already one period later, about an hour before the charge. If the charge fails, the “past_due” update keeps that later renews_at. Which field gives the date the customer has actually paid up to?
While past_due, each new renewal date raises another renewal invoice and moves renews_at on again. When dunning retries run, which open invoices are retried, and is there one subscription_payment_recovered per invoice?
subscription_plan_changed carries the renews_at from before the change, and subscription_updated one second later carries the new one. Is that intended, and is subscription_updated the one to rely on?