Skip to content

v2.2.0 — Checkout reservation and purchasability

Choose a tag to compare

@MichaelSowah MichaelSowah released this 04 Aug 17:55
· 3 commits to main since this release
9ac6e9b

Host-integration seams for self-serve provider checkout, building on 2.1's administrative seams. SubscriptionService::reserveCheckoutFor() creates idempotent, non-entitling, origination-bound reservations before provider I/O, with guarded replacement and exact-origination release. A new non_renewing status projects stop-renewal cancellations while preserving entitlements exactly until the paid period's end, with a never-resurrect guard for terminally canceled rows. The projector gains an additive outcome-returning entry point with deterministic rejection codes (including origination_mismatch), and the strict Payvia bridge writes durable accepted/rejected acknowledgements to payvia ^2.5's checkout-origination ledger after receipt commit. Plans gain per-gateway provider_identifiers (migration 008) — the sole checkout-purchasability authority, read through the typed PlanPurchasability::forGateway() projection; the legacy scalar provider_price_id remains correlation-compatibility only, and existing plans require explicit operator configuration to become purchasable. On PATCH, provider_identifiers is a full-map replacement. All additive; existing 2.0/2.1 callers unchanged.