Alex Morask
5ac8293a55
fix(billing): return null subscription when resource_missing ( #7068 )
2026-02-25 08:25:18 -06:00
cyprain-okeke
84521a67c8
[PM-30908]Correct Premium subscription status handling ( #6877 )
...
* Implement the correct changes
* failing test has been removed
* Add unit testing and logs
* Resolve the pr comment on missed requirements
* fix the lint error
* resolve the build lint
* Fix the failing test
* Fix the failing test
* Add the IncompleteExpired status
* resolve the lint error
* Fix the build lint error
* Implement the IncompleteExpired flow
2026-02-13 18:56:26 +01:00
Alex Morask
e2c0861050
[PM-31359] Show new price to premium users who have yet to be migrated ( #6963 )
...
* test: add tests for legacy pricing pivot in GetBitwardenSubscriptionQuery
* feat(billing): preview next charge at new price for users on legacy Premium pricing
* chore: apply dotnet format
2026-02-10 11:23:16 -06:00
Alex Morask
cfa8d4a165
[PM-29604] [PM-29605] [PM-29606] Support premium subscription page redesign ( #6821 )
...
* feat(get-subscription): Add EnumMemberJsonConverter
* feat(get-subscription): Add BitwardenDiscount model
* feat(get-subscription): Add Cart model
* feat(get-subscription): Add Storage model
* feat(get-subscription): Add BitwardenSubscription model
* feat(get-subscription): Add DiscountExtensions
* feat(get-subscription): Add error code to StripeConstants
* feat(get-subscription): Add GetBitwardenSubscriptionQuery
* feat(get-subscription): Expose GET /account/billing/vnext/subscription
* feat(reinstate-subscription): Add ReinstateSubscriptionCommand
* feat(reinstate-subscription): Expose POST /account/billing/vnext/subscription/reinstate
* feat(pay-with-paypal-immediately): Add SubscriberId union
* feat(pay-with-paypal-immediately): Add BraintreeService with PayInvoice method
* feat(pay-with-paypal-immediately): Pay PayPal invoice immediately when starting premium subscription
* feat(pay-with-paypal-immediately): Pay invoice with Braintree on invoice.created for subscription cycles only
* fix(update-storage): Always invoice for premium storage update
* fix(update-storage): Move endpoint to subscription path
* docs: Note FF removal POIs
* (format): Run dotnet format
2026-01-12 10:45:41 -06:00