Multi-currency billing and failed payments
Plans priced in several currencies, a currency locked per workspace, and dunning when a payment fails.
Added
4- BillingPlan versions can be priced in several currencies, with the plans a workspace sees filtered to its own.
- BillingA workspace locks to one billing currency when it first subscribes, so pricing cannot change underneath an existing subscription.
- BillingHandling for Stripe invoice.payment_failed — the local subscription status is updated, the event is processed idempotently, and a notification is queued when the customer needs to act.
- BillingOverage billing with a configurable unit size, so metered usage can be charged in blocks rather than per unit.
Fixed
2- BillingQuota resets now run correctly at the start of a billing period.
- BillingCancelling a subscription in Stripe is reflected locally instead of leaving a stale record.