Upgrade to Pro — share decks privately, control downloads, hide ads and more …

JP Stripe Connect 2025

Avatar for Mitsumasa Saito Mitsumasa Saito
November 30, 2025
81

JP Stripe Connect 2025

Avatar for Mitsumasa Saito

Mitsumasa Saito

November 30, 2025

Transcript

  1. Confidential Agenda / Table of contents 2 01 API バージョンアップ

    02 subscription.billing_mode: flexible 03 Checkout Session with element 04 Connect embedded component 05 QA 06 [PR] Unified Commerce
  2. Confidential 4 Stripe API Versioning 主な挙動や制約 • 半年おきのメジャーバージョンアップ • 月次のマイナーバージョンアップ

    • 同一メジャーバージョンでは、従来 通り後方互換性が担保される • バージョンアップの実態は....
  3. Confidential 5 任意のAPIバージョンでのリクエスト • 最近のSDKでは、ライブラリベースでAPI バージョンが定義 • 単発リクエストで、APIバージョンを 上書きすることも可能 •

    リクエストのデータ構造を作る必要がある ため多少厄介 import stripe stripe.api_key = "{{TEST_SECRET_KEY}}" client = StripeClient("sk_test_...") response = client.raw_request( "post", "/v1/beta_endpoint", param=123, stripe_version="2022-11-15; feature_beta=v3" ) # (Optional) response is a StripeResponse. You can use `client.deserialize` to get a StripeObject. deserialized_resp = client.deserialize(response, api_mode='V1')
  4. Confidential 6 Webhooks API version .NET, Java, GO の SDK

    を使っ ている場合には、Webhooks の バージョンにも気をつける import stripe stripe.api_key = "{{TEST_SECRET_KEY}}" webhook_endpoint = stripe.WebhookEndpoint.create( url="https://example.com/wh", api_version="2025-11-17.clover", enabled_events=["charge.succeeded", "charge.failed"], )
  5. Confidential 9 subscription.billing_mode: flexible 主な挙動や制約 • 異なる請求サイクルプランを一括管理 • current_period_start/end •

    比例配分計算の挙動が更新 • 異なる請求サイクルに変更時の billing_cycle_anchor 挙動 and more… POST /v1/subscriptions { billing_mode: {type: “flexible”}, items: [{...}] } POST /v1/subscription_schedules { billing_mode: {type: “flexible”}, phases: [{...}] } POST /v1/quotes { billing_mode: {type: “flexible”}, lines: [{...}] }
  6. Confidential 10 異なる請求サイクルプランを一括管理 • classic mode では実行時にエラー • subscription 単位で保持していた契約期

    間のレコードは subscription_item に移 動 options = { customer: "cus_xxxxx", items: [ { price: "price_xxxx",//1ヶ月更新プラン quantity: 1 }, { price: "price_yyyy",//1年更新プラン quantity: 1 }, ], collection_method: "charge_automatically", billing_mode: { type: "flexible" } }
  7. Confidential 12 billing_mode: classic 4/1 1,000円プラン 申し込み(開始) 4/11 2,000円プランに アップグレード

    4/21 1,000円プランに ダウングレード 比例配分なし 比例配分あり
  8. Confidential 13 billing_mode: flexible 4/1 1,000円プラン 申し込み(開始) 4/11 2,000円プランに アップグレード

    4/21 1,000円プランに ダウングレード 比例配分なし 比例配分あり
  9. Confidential Elements with Checkout Sessions API Checkout Elements Integration type

    Hosted Checkout Embedded Checkout with Checkout Sessions API PaymentIntents API UIのカスタマイズ 🟠Low 🟡Medium 🟢High 🟢High 実装完了までのスピード 🟢Fast 🟢Fast 🟡Medium 🟠Slow 実装難易度 🟢Easiest 🟢Easiest 🟡Medium 🟠Hardest 画面イメージ 16
  10. Confidential プロモーションコードの適用 // Checkout Session の作成 session = stripe.checkout.Session.create( line_items=[

    { 'price': '{{PRICE_ID}}', 'quantity': 1, }, ], mode='payment', ui_mode='custom', allow_promotion_code=True, return_url='https://example.com' ) 19
  11. Confidential Connect の決済における資金の流れ 25 End Customer cus_xx Platform Account Connected

    Account acct_xx $100 charge pi_xx creates ch_xx $100 transfer tr_xx Connected Account 銀行口座 決済金額 : $100 送金金額: ($100) Application fee(手数料): $5 Stripe 手数料*: ($3.20) ______ プラットフォームアカウント に残る残高 : $1.80 Transferred amount: $100 Application fee: ($5) _____ Final balance: $95 $5 application fee fee_xx プラットフォーム 銀行口座 *2.9% + .30 で手数料を計算する