@shipstatic/types 2.17.0-beta.9 → 2.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1899,10 +1899,16 @@ export interface PlanChangeRequest {
1899
1899
  readonly interval: BillingInterval;
1900
1900
  }
1901
1901
  /**
1902
- * The pending plan change — a Stripe Subscription Schedule the platform
1903
- * minted, mirrored onto the account. `at` is when it applies (the current
1904
- * period's end, Unix seconds). Reversible until then: `DELETE
1905
- * /billing/change` releases it.
1902
+ * The pending plan change — a Stripe Subscription Schedule, mirrored onto the
1903
+ * account. `at` is when it applies (the current period's end, Unix seconds).
1904
+ *
1905
+ * WHO minted the schedule is deliberately not part of this shape, and both
1906
+ * kinds mirror here identically: Stripe mints one when a customer confirms a
1907
+ * cadence downgrade on its own hosted page, and the platform mints one for a
1908
+ * cheaper TIER, the single move Stripe's Customer Portal cannot express.
1909
+ *
1910
+ * Reversible until it applies, and `DELETE /billing/change` is the only way:
1911
+ * Stripe's Portal displays a pending change but offers no control to undo it.
1906
1912
  */
1907
1913
  export interface ScheduledChange {
1908
1914
  readonly plan: AccountPlanType;
@@ -1915,9 +1921,15 @@ export interface ScheduledChange {
1915
1921
  * compile, so "which door was taken" is structural rather than prose.
1916
1922
  *
1917
1923
  * `url` means GO: a Stripe page (Checkout, or the Portal's confirmation page)
1918
- * finishes the change and the browser must be redirected to it. `scheduled`
1919
- * means DONE: the downgrade is booked for period end, nothing to visit, and
1920
- * the account's `scheduled` field now carries it.
1924
+ * finishes the change and the browser must be redirected to it. A `url` does
1925
+ * NOT imply money moves on the confirmation page Stripe decides whether to
1926
+ * charge now or defer the change to period end, and says which. `scheduled`
1927
+ * means DONE: the change is booked for period end by the platform itself,
1928
+ * nothing to visit, and the account's `scheduled` field now carries it.
1929
+ *
1930
+ * A client branches on the SHAPE and holds no copy of which move takes which
1931
+ * door — which is what let the server move that boundary without a wire
1932
+ * change (2026-08-25).
1921
1933
  */
1922
1934
  export type PlanChangeResponse =
1923
1935
  /** GO: a Stripe page finishes the change. Absolute URL, single use, short-lived. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shipstatic/types",
3
- "version": "2.17.0-beta.9",
3
+ "version": "2.17.0",
4
4
  "description": "Shared types for ShipStatic platform",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/src/index.ts CHANGED
@@ -2763,10 +2763,16 @@ export interface PlanChangeRequest {
2763
2763
  }
2764
2764
 
2765
2765
  /**
2766
- * The pending plan change — a Stripe Subscription Schedule the platform
2767
- * minted, mirrored onto the account. `at` is when it applies (the current
2768
- * period's end, Unix seconds). Reversible until then: `DELETE
2769
- * /billing/change` releases it.
2766
+ * The pending plan change — a Stripe Subscription Schedule, mirrored onto the
2767
+ * account. `at` is when it applies (the current period's end, Unix seconds).
2768
+ *
2769
+ * WHO minted the schedule is deliberately not part of this shape, and both
2770
+ * kinds mirror here identically: Stripe mints one when a customer confirms a
2771
+ * cadence downgrade on its own hosted page, and the platform mints one for a
2772
+ * cheaper TIER, the single move Stripe's Customer Portal cannot express.
2773
+ *
2774
+ * Reversible until it applies, and `DELETE /billing/change` is the only way:
2775
+ * Stripe's Portal displays a pending change but offers no control to undo it.
2770
2776
  */
2771
2777
  export interface ScheduledChange {
2772
2778
  readonly plan: AccountPlanType;
@@ -2780,9 +2786,15 @@ export interface ScheduledChange {
2780
2786
  * compile, so "which door was taken" is structural rather than prose.
2781
2787
  *
2782
2788
  * `url` means GO: a Stripe page (Checkout, or the Portal's confirmation page)
2783
- * finishes the change and the browser must be redirected to it. `scheduled`
2784
- * means DONE: the downgrade is booked for period end, nothing to visit, and
2785
- * the account's `scheduled` field now carries it.
2789
+ * finishes the change and the browser must be redirected to it. A `url` does
2790
+ * NOT imply money moves on the confirmation page Stripe decides whether to
2791
+ * charge now or defer the change to period end, and says which. `scheduled`
2792
+ * means DONE: the change is booked for period end by the platform itself,
2793
+ * nothing to visit, and the account's `scheduled` field now carries it.
2794
+ *
2795
+ * A client branches on the SHAPE and holds no copy of which move takes which
2796
+ * door — which is what let the server move that boundary without a wire
2797
+ * change (2026-08-25).
2786
2798
  */
2787
2799
  export type PlanChangeResponse =
2788
2800
  /** GO: a Stripe page finishes the change. Absolute URL, single use, short-lived. */