# Stripe 2026-09-30.endive requires an object for billing_cycle_anchor on subscription updates

- **Provider:** Stripe
- **Endpoint:** `POST /v1/subscriptions/{id}/**`
- **Effective:** 2026-09-30
- **Severity:** medium
- **Change:** required-field
- **Status:** unverified (secondary reports only; SHAPI does not open fix PRs for it)

## What changed

From API version 2026-09-30.endive, billing_cycle_anchor on Subscription update and resume (and subscription_details.billing_cycle_anchor on Invoice create_preview) takes an object with a type instead of the strings now and unchanged, so requests sending the old string form fail.

## What to do

When moving to 2026-09-30.endive, send billing_cycle_anchor: {type: 'now'} instead of 'now' and {type: 'unchanged'} instead of 'unchanged' when updating or resuming a subscription. For a preview invoice of a new subscription anchored to a timestamp, send {type: 'timestamp', timestamp: <unix seconds>}.

## Sources

- Provider notice (2026-09-30): https://docs.stripe.com/changelog/endive/2026-09-30/polymorphic-billing-cycle-anchor
- https://docs.stripe.com/api/subscriptions/update?api-version=2026-09-30.endive

## Machine-readable

- Advisory: https://github.com/SriVarshini09/shapi-advisories/blob/main/advisories/stripe-endive-billing-cycle-anchor-object.json
- OSV: https://shapi.dev/osv/stripe-endive-billing-cycle-anchor-object.json
