コンテンツにスキップ
アカウント作成/サインイン
Stripe ドキュメントのロゴ
/
AI に質問する
アカウントを作成サインイン
導入方法
決済管理
売上管理
プラットフォームとマーケットプレイス
資金管理
開発者向けリソース
API & SDKヘルプ
概要すべての商品を見る
API について
構築を開始する
アカウントを作成する
    概要
    本番環境を有効化する
    残高に資金を追加する
    アカウントのチェックリスト
    受付可能な確認書類
    アカウント構造
    チームを開始する
    Organizations
      組織を構築
      組織へのアクセスを管理
      SSO を管理
      顧客および決済手段を共有する
      対応可能な設定
    複数のアカウント
    関連付けられた外部口座
    設定
    ブランディング
    明細書表記
    カスタムメールドメイン
    カスタムドメイン
    シングルサインオン
    Stripe Verified
クイックスタート
開発の開始
LLM を活用して構築
ノーコードで Stripe を使用する
Stripe に移行
一般的なユースケース
概要スタートアップとしてシンプルな決済を受け付けるSaaS スタートアップとしてサブスクリプションを販売する使用量ベースの料金設定でサブスクリプションソリューションを構築する対面支払いを受け付ける請求書を送信して支払いを回収する
アメリカ
日本語
ホーム導入方法Create an accountOrganizations

組織内のアカウント間で顧客と決済手段を共有する公開プレビュー

複数のアカウントで、既存の顧客の顧客情報と決済手段情報を再収集することは避けましょう。

成長中の企業の多くは、事業部門ごとに財務を分離しているか、または複数地域で事業を異なる法人で運営しているため、複数の Stripe アカウントを有しています。複数の法人を持つビジネスは、組織内のアカウント間で顧客と決済手段を共有することで、以下の問題を回避できます。

  • 同じ顧客から決済手段や連絡先情報を複数回にわたって再収集している
  • アカウント間で顧客の連絡先と支払い情報に不整合が生じる
  • 重複レコードが維持され更新される

制限事項

顧客と支払い方法の共有は現在 パブリックプレビュー 段階ですが、次の制限があります:

  • 支払い方法を共有できるのは、タイプ が クレジットカード の場合のみです。これには、Apple Pay、Google Pay、リンクなどの ウォレット から発行されたカードが含まれます。
  • 他の支払い方法 (ACH や Klarna など) を 1 つのアカウントの共有顧客に関連付けることはできますが、組織内の他のアカウントと共有されることはありません。
  • 機能を有効にした後で共有を無効にすることはできません。
  • 連結アカウントが直接組織に属していない限り、連結アカウント間で顧客や支払い方法を共有することはできません。
  • 個人顧客や支払い方法を選択して共有することはできません。共有を有効にすると、すべての顧客と支払い方法が共有されます。
  • インドで発行された共有カードはオフセッションでは請求できません。

はじめに

  1. 複数のスタンドアロンアカウント間で作業可能な組織を作成します。
  2. 組織とそのアカウント用のサンドボックス環境を作成すると、本番環境への移行前にシステムをテストできます。

組織内のアカウントの共有を有効にする

組織内の特定のアカウントグループまたはすべてのアカウントに対して共有を有効にできます。

  1. ダッシュボードの組織の設定で、顧客と決済手段の共有をクリックして設定を開始します。
  2. 共有を有効にするアカウントを選択し、共有をクリックします。アカウントは、少なくとも 2 つ選択する必要があります。
  3. 共有グループに名前を付けます。アカウントが属することができるグループは 1 つのみです。
  4. 組織内のアカウント間で連絡先と決済手段の情報を共有することについて、顧客から同意を得たこと場合はチェックボックスをオンにします。
  5. 有効化をクリックします。

共有されていないアカウントの共有はいつでも有効にできますが、有効にしたアカウントの共有を元に戻すことはできません。共有を無効にする場合は、Stripe に連絡する必要があります。

共有の仕組み

共有グループ内の 1 つのアカウントが顧客を作成すると、Stripe は、グループ内の他のすべてのアカウントにその顧客を自動的に作成します。共有グループ内の各アカウントは、共有顧客の独自のインスタンスを保持しますが、インスタンスの顧客 ID は共通のものが使用されます。

共有グループ内のすべてのアカウントは、ダッシュボードまたは API を使用して顧客を更新できます。Customer オブジェクトの次のフィールドを更新すると、共有グループ内のすべてのアカウントインスタンス間で同期されます。

  • 名前
  • 電子メール
  • 住所
  • 電話
  • description
  • tax_id
  • preferred_locales

アカウント内の他のフィールドを更新すると、更新を行ったアカウントの Customer インスタンスに保存されますが、共有グループ内の他のアカウントには同期されません。同じ顧客が、異なるアカウントインスタンス間で同じ非共有フィールドに異なる値を持つことは可能です。これにより、顧客データ (専有データ、機密データ、または 1 つのアカウントにのみ関連するデータ) の完全性が保護されます。

決済手段

Customer インスタンスとは異なり、Stripe は元のアカウントにのみ決済手段を作成します。ただし、共有グループ内のすべてのアカウントは、この 1 つの決済手段インスタンスに対して請求、更新、削除を行うことができます。共有決済手段の更新 (削除を含む) は、共有グループ内のアカウントに関連付けられているすべての顧客に影響します。ただし、次のアクティビティは元のアカウントにのみ適用されます。

  • Stripe は、元のアカウントに対してのみ payment_method.<action> イベントを生成します。
  • Stripe は、自動カード更新機能 (CAU) 手数料を元のアカウントにのみ請求します。

イベントの動作

アカウントが顧客の共有フィールドを更新すると、Stripe は共有グループ内のアカウントごとに個別の customer.updated イベントを生成します。アカウントが顧客の非共有フィールドを更新すると、Stripe はそのアカウントにのみ customer.updated イベントを送信します。

アカウントが顧客に決済手段を関連付けると、Stripe は元のアカウントに対してのみ単一の payment_method.attached イベントを生成します。

共有グループのすべてのアカウントで組織用の Webhook を使用してイベントをリッスンし、共有決済手段のアクティビティを把握しておくことをお勧めします。

実装のユースケース例Server-side

以下のセクションでは、組織の共有グループ内のアカウントが共有データを取得して使用する方法を示すコードサンプルを掲載しています。これらの例は、次の設定の組織を反映しています。

決済フロー中に Customer を作成する

顧客が共有グループ (Rocket Rides) のアカウントの 1 つに支払いを行います。CheckoutSession は customer_creation と payment_method_save を有効にします。

server.js
const stripe = require('stripe')('{{SECRET_KEY_ROCKET_RIDES}}'); const session = await stripe.checkout.sessions.create({ customer_creation: 'always', line_items: [ { price_data: { currency: 'usd', product_data: { name: 'ride_service', }, unit_amount: 2000, }, quantity: 1, }, ], mode: 'payment', ui_mode: 'embedded', return_url: 'https://checkout.rocket-rides.com/checkout/return?session_id={CHECKOUT_SESSION_ID}', saved_payment_method_options: { payment_method_save: 'enabled', }, });

支払いが完了すると、Stripe は新しい顧客と決済手段を共有グループ内の他のアカウントと共有します。Stripe は以下のイベントをトリガーします。

  • customer.created (アカウントの顧客インスタンス)
  • payment_method.attached イベント (元のアカウントのみ)

別のアカウントから共有された顧客データを更新する

Rocket Deliveries は、Rocket Rides で最初に保存された共有顧客を更新します。

server.js
const stripe = require('stripe')('{{SECRET_KEY_ROCKET_DELIVERIES}}'); const customer = await stripe.customers.update(
'{{CUSTOMER_ID}}'
, { email: 'jenny@example.com', metadata: { door: "front" }, } );

Stripe は、共有グループ内の各アカウントに対して customer.updated イベントをトリガーします。

  • アカウントの顧客インスタンスは、email の更新を取得します。
  • metadata_door は共有フィールドではないため、Rocket Delivery のアカウントのみが更新されます。

顧客の共有決済手段を取得する

共有グループ内のすべてのアカウントは、顧客の保存済みのカードタイプの決済手段を一覧表示し、それらを使用または更新できます。

顧客が共有グループ内の複数のアカウントにまたがって決済手段を保存している場合、Stripe はパフォーマンスを優先するために取得アカウントを制限します。決済手段は、リクエストしたアカウントと、決済手段が最後に関連付けられた 4 つのアカウントからのみ取得されます。

server.js
const stripe = require('stripe')('{{SECRET_KEY_ROCKET_REPAIRS}}'); const paymentMethods = await stripe.customers.listPaymentMethods(
'{{CUSTOMER_ID}}'
);

顧客の共有決済手段を更新する

共有決済手段の更新 (削除を含む) は、共有グループ内のすべてのアカウントに同期され、payment_method.updated または payment_method.detached イベントがトリガーされます。

server.js
const stripe = require('stripe')('{{SECRET_KEY_ROCKET_REPAIRS}}'); const paymentMethod = await stripe.paymentMethods.update(
'{{PAYMENT_METHOD_ID}}'
, { "billing_details": { "address": { "city": "South San Francisco", "country": "us", "line1": "354 Oyster Point Boulevard", "line2": null, "postal_code": "94080", "state": "CA" }, }, } );

継続支払いを検討する

決済手段を変更すると、その決済手段が使用されている既存のサブスクリプションに影響する可能性があるため、注意してください。

共有決済手段を使用して支払いを受け付けるServer-side

共有グループ内の別のアカウント (Rocket Repairs など) によって作成された支払いを、特定のアカウント (Rocket Rides など) に保存されている決済手段に請求できます。

server.js
const stripe = require('stripe')('{{SECRET_KEY_ROCKET_REPAIRS}}'); const session = await stripe.checkout.sessions.create({ customer:
'{{CUSTOMER_ID}}'
, line_items: [ { price_data: { currency: 'usd', product_data: { name: 'tow_service', }, unit_amount: 5000, }, quantity: 1, }, ], mode: 'payment', ui_mode: 'embedded', return_url: 'https://checkout.rocket-repairs.com/checkout/return?session_id={CHECKOUT_SESSION_ID}', saved_payment_method_options: { payment_method_save: 'enabled', }, });

支払いは、対応するアカウントと組織の取引ページに表示されます。共有グループに属していても、各アカウントは互いの支払いを確認することはできません。

共有決済手段を使用してサブスクリプションを作成するServer-side

また、共有グループ内の別のアカウントによって最初に保存された顧客のサブスクリプションを作成することもできます。

server.js
const stripe = require('stripe')('{{SECRET_KEY_ROCKET_REPAIRS}}'); const session = await stripe.checkout.sessions.create({ customer:
'{{CUSTOMER_ID}}'
, line_items: [ { price_data: { currency: 'usd', product_data: { name: 'basic-roadside-service', }, unit_amount: 2500, }, quantity: 1, }, ], mode: 'subscription', ui_mode: 'embedded', return_url: 'https://checkout.rocket-repairs.com/checkout/return?session_id={CHECKOUT_SESSION_ID}', saved_payment_method_options: { payment_method_save: 'enabled', }, });
このページはお役に立ちましたか。
はいいいえ
  • お困りのことがございましたら 、サポートにお問い合わせください。
  • 変更ログをご覧ください。
  • ご不明な点がございましたら、お問い合わせください。
  • LLM ですか?llms.txt を読んでください。
  • Powered by Markdoc