{
  "slug": "stripe-sharedpaymenttoken-adds-redirect-to-url-next-actions-93c027e2686d",
  "title": "Stripe SharedPaymentToken adds redirect_to_url next actions",
  "tools": [
    "stripe"
  ],
  "tags": [
    "agent"
  ],
  "introduced_at": "2026-07-29T00:00:00.000Z",
  "announced_at": "2026-07-29T00:00:00.000Z",
  "effective_at": null,
  "date_basis": "source-publication",
  "status": "unknown",
  "how": {
    "incantation": "When an integration handles Shared Payment Token or requested Delegated Checkout Session next actions, set `use_stripe_sdk` according to whether a Stripe client-side SDK handles them. When handling outside a client-side SDK, provide `return_url` and accept either `use_stripe_sdk` or `redirect_to_url` as `next_action.type`.",
    "examples": [
      "curl https://api.stripe.com/v1/shared_payment/issued_tokens -u \"<YOUR_SECRET_KEY>\" -H \"Stripe-Version: 2026-07-29.preview\" -d payment_method=<PAYMENT_METHOD_ID> -d \"seller_details[network_business_profile]=<PROFILE_ID>\" -d \"usage_limits[currency]=usd\" -d \"usage_limits[expires_at]=<UNIX_TIMESTAMP>\" -d \"usage_limits[max_amount]=<AMOUNT>\" -d use_stripe_sdk=true",
      "curl https://api.stripe.com/v1/shared_payment/issued_tokens -u \"<YOUR_SECRET_KEY>\" -H \"Stripe-Version: 2026-07-29.preview\" -d payment_method=<PAYMENT_METHOD_ID> -d \"seller_details[network_business_profile]=<PROFILE_ID>\" -d \"usage_limits[currency]=usd\" -d \"usage_limits[expires_at]=<UNIX_TIMESTAMP>\" -d \"usage_limits[max_amount]=<AMOUNT>\" -d use_stripe_sdk=false -d return_url=<RETURN_URL>"
    ],
    "gotchas": [
      "use_stripe_sdk: Optional boolean on SharedPaymentIssuedToken creation. Set true when Stripe.js, iOS, or Android client-side SDKs handle next actions. Release note says false requires `return_url`.",
      "return_url (required): Required by the release note when `use_stripe_sdk` is false; parameter definition not independently verified in the accessible API page.",
      "next_action.type: Release note says it can be `use_stripe_sdk` or `redirect_to_url`; handle both values.",
      "Prerequisite: Create a PaymentMethod first; the create page example uses a US bank account PaymentMethod.",
      "Prerequisite: The create request example requires `payment_method`, `seller_details`, and `usage_limits`.",
      "When `use_stripe_sdk` is `false`, a `return_url` is required.",
      "`redirect_to_url` is returned for 3DS authentication flows when `use_stripe_sdk` is `false`.",
      "`next_action.type` can now be either `use_stripe_sdk` or `redirect_to_url`; integrations that only handle `use_stripe_sdk` may need to update their logic."
    ]
  },
  "why_it_matters": "Update an integration that creates Shared Payment Tokens or confirms requested Delegated Checkout Sessions to handle 3DS next actions.",
  "before": "`next_action.type` on SharedPaymentToken returned only `use_stripe_sdk`; integrations using client-side SDKs did not set `use_stripe_sdk` when creating a Shared Payment Token or confirming a requested Delegated Checkout Session.",
  "sources": [
    "https://docs.stripe.com/changelog/dahlia/2026-07-29/spts-next-action-support",
    "https://docs.stripe.com/api/shared-payment/issued-token/create?api-version=2026-07-29.preview",
    "https://docs.stripe.com/api/delegated-checkout/requested-session/confirm?api-version=2026-07-29.preview"
  ],
  "rank": 0.9604,
  "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-1d3c76b94537bc94-0:gate",
    "evidence_hash": "0c99511b1821f9d95b40ca1a63bd6bdf4ebf092f093f9b3916cee9f3fde1eb5d"
  },
  "review": {
    "draft_hash": "0f36245299bb997e8ba5224d2d1b8012730884effeef89e08ac709875e7a4dd7",
    "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.96 >= 0.9; 2 needed) and Jev gave 0.70 (>= 0.6 needed)."
  }
}
