{
  "slug": "stripe-checkout-sessions-accept-billing-cycle-anchor-config-b1f560f9ed6d",
  "title": "Stripe Checkout Sessions accept billing_cycle_anchor_config",
  "tools": [
    "stripe"
  ],
  "tags": [
    "agent"
  ],
  "introduced_at": "2026-06-24T00:00:00.000Z",
  "announced_at": "2026-06-24T00:00:00.000Z",
  "effective_at": null,
  "date_basis": "source-publication",
  "status": "unknown",
  "how": {
    "incantation": "When creating a Checkout Session for a recurring subscription, set `mode=subscription` and `subscription_data[billing_cycle_anchor_config][day_of_month]` to the desired billing day. The `day_of_month` field is required; `hour`, `minute`, `month`, and `second` are optional, and this configuration cannot be combined with `billing_cycle_anchor` or trial period parameters.",
    "examples": [
      "curl https://api.stripe.com/v1/checkout/sessions -u \"<SECRET_KEY>\" -H \"Stripe-Version: 2026-06-24.dahlia\" --data-urlencode \"success_url=https://example.com/success\" -d \"line_items[0][price]=<RECURRING_PRICE_ID>\" -d \"line_items[0][quantity]=1\" -d \"mode=subscription\" -d \"subscription_data[billing_cycle_anchor_config][day_of_month]=<DAY_OF_MONTH>\""
    ],
    "gotchas": [
      "mode (required): Set to `subscription` to use Stripe Billing for fixed-price subscriptions.",
      "line_items (required): Required for subscription mode; pass recurring Price items.",
      "subscription_data[billing_cycle_anchor_config][day_of_month] (required): Required day of month for the configured billing cycle anchor.",
      "subscription_data[billing_cycle_anchor_config][hour]: Optional hour for the configured billing cycle anchor.",
      "subscription_data[billing_cycle_anchor_config][minute]: Optional minute for the configured billing cycle anchor.",
      "subscription_data[billing_cycle_anchor_config][month]: Optional month for the configured billing cycle anchor.",
      "subscription_data[billing_cycle_anchor_config][second]: Optional second for the configured billing cycle anchor.",
      "subscription_data[billing_cycle_anchor_config]: Configuration is mutually exclusive with `subscription_data[billing_cycle_anchor]` and any trial period parameters.",
      "Prerequisite: Create a recurring Price and use its ID in `line_items`; the API reference shows creating a monthly USD Price before creating the Checkout Session.",
      "Prerequisite: Authenticate the API request with a Stripe secret key.",
      "Available for Checkout Sessions in subscription mode.",
      "`day_of_month` is required; `hour`, `minute`, `month`, and `second` are optional.",
      "`billing_cycle_anchor_config` is mutually exclusive with `billing_cycle_anchor` and any trial period parameters."
    ]
  },
  "why_it_matters": "When implementing subscription-mode Checkout Session creation that aligns subscribers to a fixed billing date, configure the session's billing cycle anchor.",
  "sources": [
    "https://docs.stripe.com/changelog/dahlia/2026-06-24/checkout-sessions-billing-cycle-anchor-config",
    "https://docs.stripe.com/api/checkout/sessions/create?api-version=2026-06-24.dahlia"
  ],
  "rank": 0.95029,
  "judge": {
    "publish": true,
    "judge_model": "codex-cli/gpt-6-luna+typesafe/jev-1.13.0",
    "prompt_version": "extract-v7+enrich-v2+judge-v2x3+jev-publish-v1"
  },
  "review_state": "approved",
  "provenance": {
    "run_id": "wave1b-tools-20261017",
    "verdict_id": "wave1b-tools-20261017:wave1b-tools-20261017-df15fb91eb1c40f3-0:gate",
    "evidence_hash": "a42321d4ed9e43347264666ee0eef1a085bf1dfebd5ef73565903641951934cb"
  },
  "review": {
    "draft_hash": "5fec11c952acbd1d06be3ba9b7e7b254d1d2f53f6f338df575216cacbd605251",
    "reviewer": "publication-gate",
    "reviewed_at": "2026-10-07T00:00:00.000Z",
    "decision": "wave1b-tools-20261017:gate",
    "reason": "3 of 3 judge runs approved with p_yes >= 0.9 (mean 0.95 >= 0.9; 2 needed) and Jev gave 0.74 (>= 0.6 needed)."
  }
}
