Cancelling no longer ends paid access early

A cancellation request was downgrading accounts immediately instead of at the end of the paid period. Cancel on day 2 and you kept 29 days you had paid for.

The billing webhook treated subscription.canceled and subscription.revoked as the same event. In Polar, the first means the customer asked to cancel, which normally takes effect at the end of the period they have already paid for. The second means access has actually ended.

So an account that cancelled on day 2 of a paid month dropped to the free plan immediately, losing 29 days it had paid for.

Now a cancellation request changes nothing except the record that one is coming, and only revocation downgrades the plan. Changing your mind, through subscription.uncanceled, already restored the account and still does.

Found by comparing the weekly owner report against the payment dashboard, which disagreed. Both now say the same thing.