# Managed Payments を使用した Checkout 連携の構築 Managed Payments を使用して決済を受け付ける方法をご紹介します。 > #### 利用規約が必要 > > Managed Payments を利用する前に、[ダッシュボード](https://dashboard.stripe.com/settings/managed-payments)にある [Managed Payments 利用規約](https://stripe.com/legal/managed-payments)に同意する必要があります。 Managed Payments を使用して、デジタル製品のグローバル決済を受け付けます。Managed Payments では、Stripe が代理でマーチャントオブレコードとして機能します。詳しくは、[Managed Payments の仕組み](https://docs.stripe.com/payments/managed-payments/how-it-works.md)をご覧ください。 ## Before you begin - 商品が Managed Payments の[対象要件](https://docs.stripe.com/payments/managed-payments/eligibility.md)を満たしていることを確認してください。Managed Payments で決済を処理するには、顧客が購入するすべての商品が対象である必要があります。 - [ダッシュボード](https://dashboard.stripe.com/settings/managed-payments)で Managed Payments を有効にします。 - [開発環境を設定](https://docs.stripe.com/get-started/development-environment.md)します。 - Checkout Session の作成には、[プレビュー API バージョン](https://docs.stripe.com/sdks/versioning.md#public-preview-release-channel) `2025-04-30.preview` 以降を使用します。 ## 商品および価格を作成する サブスクリプションや一括払いを受け付けることができます: #### サブスクリプション Stripeでは、[商品](https://docs.stripe.com/api/products.md)を使用して、販売するさまざまな商品やサービスを表現します。例えば、ベーシックやプレミアムなど複数のサブスクリプションの段階がある場合、段階ごとに別々の商品を作成します。 [料金](https://docs.stripe.com/api/prices.md)では、顧客に請求する商品の代金とその請求頻度を指定します。1 つの商品に複数の料金を設定できます。たとえば、Basic サブスクリプションに 2 つの料金、月額 10 USD と年額 100 USD を設定できます。また料金によって、月額 10 USD や月額 15 CAD など、それぞれ異なる通貨オプションを定義することもできます。 販売する商品を作成し、各商品の料金を作成するには、ダッシュボードまたは API を使用します。 #### ダッシュボード ### 新しい商品と料金を作成する 以下の手順に従って、新しい商品を作成し料金を割り当ててください。 1. **ダッシュボード** > [商品カタログ](https://dashboard.stripe.com/test/products)に移動します。 1. **商品を作成** をクリックします。 1. **商品名**、**説明** を入力して、**商品税コード** を選択します。 - 選択する税コードは、[Managed Payments の対象](https://docs.stripe.com/payments/managed-payments/eligibility.md#eligible-tax-codes)である必要があります。対象の税コードには、`Managed Payments の対象`というラベルが表示されます。 1. 料金に、**金額** と **通貨** を入力します。 1. このサブスクリプションの顧客への請求頻度に基づき **請求期間** を設定します。 1. 右側のプレビューペインを使用して、所在地に基づく顧客の支払い税額を確認します。 1. **商品を追加**をクリックします。 1. 販売するすべての商品に、この手順を繰り返します。 ### 既存の商品に料金を追加する 既存の商品に別料金を追加するには、以下のようにします。 1. [商品カタログ](https://dashboard.stripe.com/test/products)を開きます。 1. 料金を追加する商品をクリックします。 1. **料金体系** セクションの `+` ボタンをクリックします。 1. 上記のように料金を設定します。 1. **料金を作成** をクリックします。 #### API ### 新しい商品と料金を作成する 以下の手順に従って、新しい商品を作成し料金を割り当ててください。 ```curl curl https://api.stripe.com/v1/products \ -u "<>:" \ -d "name=Basic subscription" \ -d "description=A basic subscription to our service" \ -d tax_code={{TAX_CODE}} \ -d "default_price_data[unit_amount]=1000" \ -d "default_price_data[currency]=usd" \ -d "default_price_data[recurring][interval]=month" ``` 使用する税コードは、[Managed Payments の対象](https://docs.stripe.com/payments/managed-payments/eligibility.md#product-eligibility)である必要があります。 販売するすべての商品について、この手順を繰り返します。 ### 既存の商品に料金を追加する 既存の商品に別料金を追加するには、以下のようにします。 ```curl curl https://api.stripe.com/v1/prices \ -u "<>:" \ -d product={{BASIC_PRODUCT_ID}} \ -d unit_amount=10000 \ -d currency=usd \ -d "recurring[interval]=year" ``` #### 1 回限りの支払い Stripeでは、[商品](https://docs.stripe.com/api/products.md)を使用して、販売するさまざまな商品やサービスを表現します。例えば、電子書籍を販売する場合、電子書籍ごとに別の商品を作成します。 [価格](https://docs.stripe.com/api/prices.md)は、顧客に請求する金額を表します。商品には複数の価格を設定することができます。また、10 USD と15 CAD のように、各価格に異なる通貨オプションを定義することができます。 販売する商品を作成し、各商品の料金を作成するには、ダッシュボードまたは API を使用します。 #### ダッシュボード ### 新しい商品と料金を作成する 以下の手順に従って、新しい商品を作成し料金を割り当ててください。 1. **ダッシュボード** > [商品カタログ](https://dashboard.stripe.com/test/products)に移動します。 1. **商品を作成** をクリックします。 1. **商品名**、**説明** を入力して、**商品税コード** を選択します。 - 選択する税コードは、[Managed Payments の対象](https://docs.stripe.com/payments/managed-payments/eligibility.md#product-eligibility)である必要があります。対象の税コードには、`Managed Payments の対象`というラベルが表示されます。 1. 料金に、**金額** と **通貨** を入力します。 1. 右側のプレビューペインを使用して、所在地に基づく顧客の支払い税額を確認します。 1. **商品を追加**をクリックします。 1. 販売するすべての商品に、この手順を繰り返します。 ### 既存の商品に料金を追加する 既存の商品に別料金を追加するには、以下のようにします。 1. [商品カタログ](https://dashboard.stripe.com/test/products)を開きます。 1. 料金を追加する商品をクリックします。 1. **料金体系** セクションの `+` ボタンをクリックします。 1. 上記のように料金を設定します。 1. **料金を作成** をクリックします。 #### API ### 新しい商品と料金を作成する 以下の手順に従って、新しい商品を作成し料金を割り当ててください。 ```curl curl https://api.stripe.com/v1/products \ -u "<>:" \ --data-urlencode "name=Hamlet (e-book)" \ -d "description=A Shakespearean tragedy" \ -d tax_code={{TAX_CODE}} \ -d "default_price_data[unit_amount]=1000" \ -d "default_price_data[currency]=usd" ``` 使用する税コードは、[Managed Payments の対象](https://docs.stripe.com/payments/managed-payments/eligibility.md#product-eligibility)である必要があります。 販売するすべての商品について、この手順を繰り返します。 ### 既存の商品に料金を追加する 既存の商品に別料金を追加するには、以下のようにします。 ```curl curl https://api.stripe.com/v1/prices \ -u "<>:" \ -d product={{PRODUCT_ID}} \ -d unit_amount=1000 \ -d currency=usd ``` ## 決済フローを構築する [クライアント側] [Stripe Checkout](https://docs.stripe.com/payments/checkout.md) では、Stripe がホストする決済画面で顧客から決済を受け付けることができます。顧客は決済画面にリダイレクトされ、決済が完了すると Stripe は顧客をサイトにリダイレクトします。詳細については、[決済の仕組み](https://docs.stripe.com/payments/checkout/how-checkout-works.md?payment-ui=stripe-hosted) をご覧ください。 決済フローを構築するには、決済ボタンと成功ページをサイトに追加する必要があります。 #### サブスクリプション ### 購入ボタンを追加する ウェブサイトに、サーバー上のエンドポイントを呼び出す決済ボタンを追加します。以下に例を挙げます。 ```html Subscribe to our cool new service
``` 顧客がこのボタンをクリックすると、Stripe 上のオンライン決済フページにリダイレクトされます。 ### 成功ページを追加する 次に、正常に決済した後に顧客に表示される、成功ページを作成します。この成功ページを貴社サイトでホストしてください。以下に例を挙げます。 ```html Thanks for subscribing!

Thanks for subscribing!

We appreciate your business! If you have any questions, please email us at orders@example.com.

``` オーソリされた支払いを完了すると、顧客はこのページにリダイレクトされます。 ### キャンセルページを追加する (オプション) また、顧客が決済プロセスを終了したかどうかを確認するための、キャンセルページを作成することもできます。以下に例を挙げます。 ```html Checkout canceled

Not ready to subscribe yet? No problem, we'll be here when you are!

``` 決済ページで「戻る」ボタンをクリックすると、顧客はこのページにリダイレクトされます。 #### 1 回限りの支払い ### 購入ボタンを追加する ウェブサイトに、サーバー上のエンドポイントを呼び出す決済ボタンを追加します。以下に例を挙げます。 ```html Buy Hamlet
``` 顧客がこのボタンをクリックすると、Stripe 上のオンライン決済フページにリダイレクトされます。 ### 成功ページを追加する 次に、正常に決済した後に顧客に表示される、成功ページを作成します。この成功ページを貴社サイトでホストしてください。以下に例を挙げます。 ```html Thanks for purchasing!

Thanks for purchasing!

We appreciate your business! If you have any questions, please email us at orders@example.com.

``` オーソリされた支払いを完了すると、顧客はこのページにリダイレクトされます。 ### キャンセルページを追加する (オプション) また、顧客が決済プロセスを終了したかどうかを確認するための、キャンセルページを作成することもできます。以下に例を挙げます。 ```html Checkout canceled

Not ready to purchase yet? No problem, we'll be here when you are!

``` 決済ページで「戻る」ボタンをクリックすると、顧客はこのページにリダイレクトされます。 ## サーバーを設定する [サーバー側] Stripe は [Checkout セッション](https://docs.stripe.com/api/checkout/sessions.md)を使用して、顧客が決済フォームにリダイレクトされた際に表示される内容を表示します。Checkout セッションは、請求する[項目](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items)や受け付ける通貨などのオプションを使用して設定できます。 ### Checkout セッションを作成する #### サブスクリプション [作成した価格](https://docs.stripe.com/payments/managed-payments/set-up.md#create-product)の 1 つを項目として使用して、Checkout Session を作成します。`mode` を `サブスクリプション` に設定し、`success_url` を成功ページの URL に設定します。Managed Payments を有効にするには、`managed_payments[enabled]` を `true` に設定し、[プレビュー API バージョン](https://docs.stripe.com/sdks/versioning.md#public-preview-release-channel)を使用してください。 ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview" \ -d "line_items[0][price]={{PRICE_ID}}" \ -d "line_items[0][quantity]=1" \ -d "managed_payments[enabled]=true" \ -d mode=subscription \ --data-urlencode "success_url=https://localhost:4242/success" ``` #### 1 回限りの支払い [作成した価格](https://docs.stripe.com/payments/managed-payments/set-up.md#create-product)の 1 つを項目として使用して、Checkout Session を作成します。`mode` を `payment` に設定し、`success_url` を成功ページとキャンセルページの URL に設定します。Managed Payments を有効にするには、`managed_payments[enabled]` を `true` に設定し、[プレビュー API バージョン](https://docs.stripe.com/sdks/versioning.md#public-preview-release-channel)を使用します。 ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview" \ -d "line_items[0][price]={{PRICE_ID}}" \ -d "line_items[0][quantity]=1" \ -d "managed_payments[enabled]=true" \ -d mode=payment \ --data-urlencode "success_url=https://localhost:4242/success" ``` ### エンドポイントを作成する [Checkout セッション](https://docs.stripe.com/api/checkout/sessions/create.md)を作成するエンドポイントをサーバーに追加します。エンドポイントパスは、[決済ボタン](https://docs.stripe.com/payments/managed-payments/set-up.md#add-a-checkout-button)の `action` 属性と一致する必要があります。 Checkout セッションを作成したら、レスポンスで返された [URL](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-url) に顧客をリダイレクトします。 #### Item 1 #### Ruby ```ruby # This example sets up an endpoint using the Sinatra framework. require 'json' require 'sinatra' require 'stripe' # Don't put any keys in code. See https://docs.stripe.com/keys-best-practices. # Find your keys at https://dashboard.stripe.com/apikeys. client = Stripe::StripeClient.new( '<>', stripe_version: '2026-03-25.preview', ) post '/create-checkout-session' dosession = client.v1.checkout.sessions.create({ line_items: [{ price: '{{PRICE_ID}}', quantity: 1 }], mode: 'subscription', managed_payments: {enabled: true}, success_url: 'http://localhost:4242/success' }) redirect session.url, 303 end ``` #### Item 2 #### Ruby ```ruby # This example sets up an endpoint using the Sinatra framework. require 'json' require 'sinatra' require 'stripe' # Don't put any keys in code. See https://docs.stripe.com/keys-best-practices. # Find your keys at https://dashboard.stripe.com/apikeys. client = Stripe::StripeClient.new( '<>', stripe_version: '2026-03-25.preview', ) post '/create-checkout-session' dosession = client.v1.checkout.sessions.create({ line_items: [{ price: '{{PRICE_ID}}', quantity: 1 }], mode: 'payment', managed_payments: {enabled: true}, success_url: 'http://localhost:4242/success' }) redirect session.url, 303 end ``` ### エンドポイントをテストする ウェブサーバー (`localhost:4242` など) を起動し、次のコマンドを実行して、エンドポイントがアクセス可能であることを確認します。 ```bash curl -X POST -is "http://localhost:4242/create-checkout-session" -d "" ``` 端末に次のようなレスポンスが表示されます。 ```bash HTTP/1.1 303 See Other Location: https://checkout.stripe.com/c/pay/cs_test_... ... ``` ## 支払い後のイベントを処理する 顧客が Checkout セッションの支払いを完了すると、Stripe は [checkout.session.completed](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.completed) イベントを送信します。[ダッシュボードの Webhook ツール](https://dashboard.stripe.com/webhooks)を使用するか、[Webhook ガイド](https://docs.stripe.com/webhooks/quickstart.md)に従ってこれらのイベントを受信して処理します。 顧客が成功ページにリダイレクトされるのを待たずに、これらのイベントをリッスンします。成功ページを、決済後にアクションを起動するためだけに、使用することは避けてください。 非同期型のイベントをリッスンするようシステムを設定すると、1 回の実装で[異なるタイプの決済手段](https://stripe.com/payments/payment-methods-guide)を正しく処理できるようになります。詳細については、[Checkout の注文のフルフィルメントを履行する](https://docs.stripe.com/checkout/fulfillment.md)をご覧ください。 Checkout で支払いを回収する際には、以下のイベントを処理します。 | イベント | 説明 | | -------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ | | [checkout.session.completed](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.completed) | 顧客が Checkout セッションを正常に完了すると送信されます。 | | [checkout.session.async_payment_succeeded](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.async_payment_succeeded) | ACH Direct Debt など、遅延型の決済手段による支払いが成功した場合に送信されます。 | | [checkout.session.async_payment_failed](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.async_payment_failed) | ACH Direct Debt など、遅延型の決済手段による支払いが失敗した場合に送信されます。 | ## テスト 実装が顧客に対して正しく機能するかをテストします。 ### 決済 1. サーバーを起動し、[Checkout の構築](https://docs.stripe.com/payments/managed-payments/set-up.md#build-your-checkout)から決済画面 ([http://localhost:4242/checkout.html](http://localhost:4242/checkout.html など) に移動します。 1. 決済ボタンをクリックすると、Managed Payments の決済ページにリダイレクトされます。 1. 決済ページで、異なる請求先住所を入力して、Managed Payments でさまざまな場所の顧客の税金がどのように計算されるかを確認します。 1. 決済を処理するには、メールアドレス、電話番号、テストカード番号 `4242 4242 4242 4242`、任意のセキュリティコード、有効期限を入力します。 詳細については、[テスト](https://docs.stripe.com/testing.md)をご覧ください。 ### 支払いの詳細 #### Item 1 1. テスト決済を確認したら、**ダッシュボード** > [Transactions](https://dashboard.stripe.com/test/payments) に移動します。 1. テスト決済をクリックすると、決済の詳細が表示されます。このページには、次の情報が表示されます。 - 購入された商品 - 作成された[サブスクリプション](https://docs.stripe.com/api/subscriptions.md) - 作成された[請求書](https://docs.stripe.com/api/invoices.md) - Managed Payments を通じて計算および源泉徴収された税額 - 顧客の明細書に表示される明細書表記 > #### 顧客のオーソリ > > 顧客が Managed Payments を通じてサブスクリプションを購入した場合、その決済手段は Managed Payments による請求に対してのみオーソリされます。Managed Payments 以外の取引でこの決済手段に請求するには、顧客から適切な同意を得てください。 #### Item 2 1. テスト決済を確認したら、**ダッシュボード** > [Transactions](https://dashboard.stripe.com/test/payments) に移動します。 1. テスト決済をクリックすると、決済の詳細が表示されます。このページには、次の情報が表示されます。 - 購入された商品 - 作成された[サブスクリプション](https://docs.stripe.com/api/subscriptions.md) (購入した場合) - 作成された[請求書](https://docs.stripe.com/api/invoices.md) - Managed Payments を通じて計算および源泉徴収された税額 - 顧客の明細書に表示される明細書表記 #### 領収書をプレビューする 1. **Receipt history** で、**View receipt** をクリックします。 1. **Send receipt** をクリックすると、顧客に送信される領収書メールをプレビューできます。 > サンドボックスモードでは、購入後に領収書メールは自動送信されませんが、上記の手順に従って手動で送信できます。 ### Link [Link](https://docs.stripe.com/payments/link.md)は決済時にマーチャントオブレコードとして機能し、[Link website](https://link.com)でサブスクリプション管理と取引サポートを提供します。 決済時の Link の動作をテストするには、初回の Checkout Session で Link アカウントを作成します。Link アカウントを作成したら、同じメールアドレスを使用して別のセッションを試行します。認証するには、テストパスコード `000000` を使用します。 テスト購入は Link アプリには表示されません。本番環境の Checkout Session 中に Link アカウントを作成することで、Link アプリで注文管理ツールをテストできます。 ## Optional: 料金の税金処理を設定する 料金の [tax_behavior](https://docs.stripe.com/tax/products-prices-tax-codes-tax-behavior.md#tax-behavior) は、設定した料金に税金を追加するか (`tax_behavior: exclusive`)、料金にすでに税を含めるか (`tax_behavior: inclusive`) を指定します。 Managed Payments では、[価格に指定された税務処理](https://docs.stripe.com/tax/products-prices-tax-codes-tax-behavior.md#set-tax-behavior-on-price)が使用されます。価格への税務処理を指定しない場合、デフォルトでは、Managed Payments は設定された価格に課税します。 デフォルトを変更するには、**ダッシュボード**\>[税金設定](https://dashboard.stripe.com/settings/tax) に移動して、**価格に税金を含める**設定を更新します。 ## See also - [Managed Payments の仕組み](https://docs.stripe.com/payments/managed-payments/how-it-works.md) - [Checkout のシステムを更新](https://docs.stripe.com/payments/managed-payments/update-checkout.md)