Added

v2.5.0

  • assert annual price is a yearly Stripe interval before switching a merchant to annual billing

  • catch remaining fire-and-forget rejections in changeProductSubscription (crash)

  • charge path must read ANNUAL_PRICING directly, not plan.annual

  • make PaymentDesign abbreviation/acronym optional on create/update

  • send non-empty abbreviation/acronym to Voucher service on payment design create/update

  • stop unhandled-rejection pod crash from fire-and-forget partition creation

  • environment-aware annual pricing (sandbox ids in test-mode envs, live in prod)

  • expose merchant current billingCadence in the billing verify response

  • gift cards & gift certificates (closed-loop stored value)

  • use LIVE annual price ids + gate annual to production

  • wire real annual prices for the 21 industry plans