コンテンツにスキップ
アカウントを作成
または
サインイン
Stripe ドキュメントのロゴ
/
AI に質問する
アカウントを作成
サインイン
始める
支払い
売上
プラットフォームおよびマーケットプレイス
資金管理
開発者向けリソース
概要
導入を開始
    サンプルアプリ
    アカウント登録の概要
    導入ガイド
事業で活用する
資金の管理
グローバル入金
Capital
プラットフォームに組み込む
Treasury
カードを発行する
プラットフォーム向けの Capital
ホーム資金管理Start an integration

Issuing と Treasury のサンプルアプリ

顧客のアカウント登録、カードの発行、アウトバウンド支払いを行う方法をご紹介します。

GitHub

アプリの詳細なソースコードは GitHub にあります。

お客様の実装で Issuing API と Treasury API の使用方法を確認するには、Stripe のサンプルアプリをお試しください。このアプリでは、顧客としてのアカウント登録、カードの作成、オーソリのテスト、 金融口座からのアウトバウンド支払いを実行できます。

コードを書かずに、サンプルアプリをコピーしてプラットフォームで使用することもできます。アクションによって生成される API ログに従ってください。

Stripe のサンプルアプリを試す

Issuing と Treasury のデモアプリのカード詳細ページ

Issuing と Treasury のサンプルアプリのカード詳細ページ

このアプリは、企業顧客のアカウント登録を行うプラットフォームを対象としています。自社や自社の従業員のカードのみを必要とする場合は、この方法ではなく、ダッシュボードで Issuing を使用します。

プラットフォームでアカウントを作成する

サンプルアプリを使用するには、はじめにプラットフォームの顧客としてアカウント登録するアカウントを作成します。

メールアドレスとパスワードを入力すると、アプリのバックエンドで連結アカウントが作成され、card_issuing と treasury のケイパビリティがリクエストされます。

(オプション) ホスティング登録をシミュレーションして、アカウントの詳細をすべて指定する

ホスティング登録をシミュレートする場合、エラーを防止するために、テストトークンを使用して以下のステップを実行します。このアプリのアカウントデータは事前入力されています。

  1. Skip the rest of onboarding (残りのアカウント登録をスキップする) のチェックマークを外します。

  2. テストデータ ダイアログで確定する をクリックします。

  3. 続行をクリックして、Stripe のホスティング登録フローに移動します。

  4. Let’s get started (始めましょう) 画面で、以下を入力します。

    • 携帯電話番号: 000-000-0000
    • メールアドレス: 任意の架空のメールアドレス
  5. 携帯電話番号を確認する で、テストコードを使用 をクリックします。

  6. 本人確認を行う では、この手順をスキップする をクリックします。

フォームを送信すると、アプリのダッシュボードにリダイレクトで戻されます。

これらのステップのコードと API ログを見る

サンプルアプリのコピーで最初のアカウントを登録するステップを完了したら、対応する API ログを確認します。アカウント登録時にバックエンドで下記のコードスニペットが実行されます。

  1. transfers, card_issuing, treasury のケイパビリティを持つ連結アカウントを作成します。Issuing は、Stripe がホストするダッシュボードを使用せず、プラットフォームが要件の収集と損失に対する責任を負う連結アカウント (Custom 連結アカウントとも呼ばれる) のみをサポートします。詳しくは、Issuing と連携可能な連結アカウントの作成方法をご確認ください。Stripe アプリをコピーして API ログを表示し、POST to /v1/accounts を見つけます。

    register.ts
    サンプル全体を表示
    const account = await stripe.accounts.create({ controller: { stripe_dashboard: { type: "none" }, fees: { payer: "application" }, losses: { payments: "application" }, requirement_collection: "application", }, country: "US", email: email, capabilities: { transfers: { requested: true }, treasury: { requested: true }, card_issuing: { requested: true }, }, });
  2. Stripe Treasury の金融口座を作成します。Stripe アプリをコピーして API ログを表示し、POST to /v1/treasury/financial_accounts を見つけます。

    register.ts
    サンプル全体を表示
    const financialAccount = await stripe.treasury.financialAccounts.create( { supported_currencies: ["usd"], features: { card_issuing: { requested: true }, deposit_insurance: { requested: true }, financial_addresses: { aba: { requested: true } }, inbound_transfers: { ach: { requested: true } }, intra_stripe_flows: { requested: true }, outbound_payments: { ach: { requested: true }, us_domestic_wire: { requested: true }, }, outbound_transfers: { ach: { requested: true }, us_domestic_wire: { requested: true }, }, }, }, { stripeAccount: account.id } );
  3. Connect アカウント登録リンクを作成し、そのリンクを使用して新規ユーザーをリダイレクトして、リクエストされたケイパビリティに必要なプロフィール情報を収集します。Stripe アプリをコピーして API ログを表示し、POST to /v1/account_links を見つけます。Account Links リクエストのレスポンスには、アカウント登録フローへのリダイレクトに使用される url の値が含まれています。

    onboarding-helpers.ts
    サンプル全体を表示
    const { url } = await stripe.accountLinks.create({ type: "account_onboarding", account:
    '{{CONNECTED_ACCOUNT_ID}}'
    , refresh_url: connectOnboardingRedirectUrl + "/onboard", return_url: connectOnboardingRedirectUrl + "/onboard", });
  4. アカウント登録が完了すると、アカウントのケイパビリティの status (ステータス) は inactive から active に変わります。「https://dashboard.stripe.com/

    '{{CONNECTED_ACCOUNT_ID}}'
    /test/events?type=account.updated」で連結アカウントの account.updated イベントを表示します。ステップ 1 のレスポンスで連結アカウントの ID を確認できます。

金融口座に資金を追加する

  1. 概要 ページで、Generate test data (テストデータを生成) をクリックしてから、ドロワーの Simulate received credit (受領したクレジットをシミュレーションする) をクリックします。

  2. 取引は、500 USD の受領したクレジット (ACH 入金) として表示され、取引の領収書に表示されます。

  3. 金融口座ページに移動して、口座番号を表示します。

これらのステップのコードと API ログを見る

これらのステップの詳細を確認するには、以下のコードサンプルと API ログを使用します。

ReceivedCredit テストヘルパー

テスト環境では、ReceivedCredit テストヘルパーを使用して Treasury 金融口座に資金を追加できます。このテストヘルパーは、外部の銀行口座から金融口座への送金の受け取りをシミュレーションします。アプリをコピーして API ログを表示し、POST to /v1/test_helpers/treasury/received_credits を探します。

create_receivedcredit.ts
サンプル全体を表示
const receivedCredit = await stripe.testHelpers.treasury.receivedCredits.create( { amount: 50000, currency: "usd", financial_account:
'{{FINANCIAL_ACCOUNT_ID}}'
, network: "ach", }, { stripeAccount:
'{{CONNECTED_ACCOUNT_ID}}'
} );

アウトバウンド ACH 支払いを行う

任意の金融番号と口座番号を入力できますが、アプリでは、Stripe のアウトバウンド支払い用のテスト番号を使用してテスト支払いが処理されます。

  1. 金融口座 ページで、資金を送る をクリックします。
  2. ACH を選択してから、受取人の情報と送金額を入力します。
  3. 取引結果として POSTED を選択し、完了した支払いをシミュレーションします。
  4. 取引は、アウトバウンド支払いとして表示されます。

これらのステップのコードと API ログを見る

これらのステップの詳細を確認するには、以下のコードサンプルと API ログを使用します。

送金インターフェイス

サンプルアプリの送金機能は、Stripe Treasury の OutboundPayment 機能を使用しています。OutboundPayments は、サードパーティーの外部口座への送金に使用できます。Stripe アプリをコピーして API ログを表示し、POST to /v1/treasury/outbound_payments を見つけます。レスポンスには、支払いのステータスが processing であることが表示されます。

send_money.ts
サンプル全体を表示
const outboundPayment = await stripe.treasury.outboundPayments.create( { financial_account:
'{{FINANCIAL_ACCOUNT_ID}}'
, amount: 100, currency: "usd", statement_descriptor: req.descriptor, destination_payment_method_data: { type: "us_bank_account", us_bank_account: { account_holder_type: "company", routing_number: "110000000", account_number: "000000000009", }, }, }, { stripeAccount:
'{{CONNECTED_ACCOUNT_ID}}'
, } );

テストヘルパーを使用して取引結果を設定する

ウェブアプリで取引結果を選択すると、アウトバウンド支払いのステータスは、テストヘルパーのエンドポイントを介して更新されます。Stripe アプリをコピーして API ログを表示し、POST to /v1/test_helpers/treasury/outbound_payments/{{OUTBOUND_PAYMENT_ID}}/post を見つけます。レスポンスには、支払いのステータスが posted であることが表示されます。

send_money.ts
サンプル全体を表示
const outboundPayment = await stripe.testHelpers.treasury.outboundPayments.post(
'{{OUTBOUND_PAYMENT_ID}}'
, );

カード保有者とカードを作成して、テスト購入を行う

  1. カード保有者ページで、Create a new cardholder (カード保有者を新規作成する) をクリックします。
  2. カード保有者の情報を入力し、カードを発行 をクリックして、バーチャルカードを作成します。
  3. カード ページにリダイレクトされます。カード行の詳細 をクリックして、新しいバーチャルカードを表示します。
  4. Generate test data (テストデータを生成) をクリックしてから、Simulate test purchase (テスト購入をシミュレーションする) をクリックします。

これらのステップのコードと API ログを見る

これらのステップの詳細を確認するには、以下のコードサンプルと API ログを使用します。

カード保有者を作成する

Stripe Issuing の Create Cardholder (カード保有者の作成) API を使用して Cardholder を作成します。

cardholders.ts
サンプル全体を表示
const cardholder = await stripe.issuing.cardholders.create( { type: "individual", name: firstName + " " + lastName, email: email, individual: { first_name: firstName, last_name: lastName, card_issuing: { user_terms_acceptance: { date: Date.now(), ip: ip, }, }, }, billing: { address: { city: city, line1: address1, state: state, postal_code: postalCode, country: country, }, }, }, { stripeAccount:
'{{CONNECTED_ACCOUNT_ID}}'
, } );

カードを作成する

Cardholder を作成した後、Create Card (カードの作成) API を使用して Cardholder にカードを発行します。カードの financial_account は、ステップ 2 で作成した金融口座の ID に設定します。

index.ts
サンプル全体を表示
const card = await stripe.issuing.cards.create( { cardholder: cardholderId, financial_account:
'{{FINANCIAL_ACCOUNT_ID}}'
, currency: 'usd', type: 'virtual', status: 'active', }, { stripeAccount:
'{{CONNECTED_ACCOUNT_ID}}'
}, );

テスト購入を作成する

ダッシュボードでオーソリを作成した後に、API ログ POST to /v1/test_helpers/issuing/authorizations を探します。ダッシュボードでオーソリをキャプチャーした後は、API ログ POST to /v1/test_helpers/issuing/authorizations/{{AUTHORIZATION_ID}} を探します。

オプションカードでの支出を一時的に停止する

  1. カード ページで、カードの詳細 をクリックします。
  2. カードを無効にするをクリックします。このボタンの下にある status (ステータス) が inactive に変わります。
  3. Generate test data (テストデータを生成) をクリックして、リンクをたどり、ダッシュボードでカードを表示します。
  4. ダッシュボードで、Create a test purchase (テスト購入を作成) をクリックします。次のページでオーソリが拒否されます。
  5. ウェブアプリに戻り、拒否されたオーソリの詳細を表示します。
  6. Activate Card (カードを有効化する) をクリックして、カードのステータスを inactive から active に戻します。

サンプルアプリをコピーして、ステップ 3 ~ 6 を実行する

サンプルアプリをコピーして、お客様の Stripe API キーで使用する場合は、ダッシュボードでテスト購入を作成できます。

これらのステップのコードと API ログを見る

これらのステップの詳細を確認するには、以下のコードサンプルと API ログを使用します。

カードのステータスを inactive に切り替える

無効化 をクリックすると、カードの status は inactive に切り替わります。アプリをコピーして、API ログを表示し、POST to /v1/issuing/cards/{{CARD_ID}} を探します。

switch-card-status.ts
サンプル全体を表示
const card = await stripe.issuing.cards.update(
'{{CARD_ID}}'
, { status: 'inactive', } );

カードが有効でないことが原因で拒否されるオーソリをテストする

ダッシュボードでオーソリを作成した後に、API ログ (POST to /v1/issuing/cards/{{CARD_ID}}/test/authorizations) を見つけます。オーソリの承認は false です。

次に、「https://dashboard.stripe.com/

'{{CONNECTED_ACCOUNT_ID}}'
/test/events?type=issuing_authorization.created」で連結アカウントの issuing_authorization.created イベントを表示します。オーソリの request_history には、'approved: false, 'reason': 'card_inactive' が表示されます。

オプションアカウントの支払い残高から金融口座への入金

  1. テストデータ ページで、Create PaymentLink (PaymentLink を作成する) をクリックしてから、Go to PaymentLink (PaymentLink に移動する) をクリックします。

  2. 任意のメールアドレス、名前、郵便番号を入力し、カード番号として 4000 0000 0000 0077 を使用します。

    • このテストカードでは、資金がアカウントの利用可能な残高に即座に追加されます。
  3. 支払いを完了してから、ウェブアプリのテストデータ ページに戻り、ページを更新します。

  4. Create Payout (入金を作成する) に連結アカウントの利用可能残高 9.41 USD が表示されます。

  5. 金融口座を外部口座として追加をクリックして、連結アカウントのデフォルトの入金用外部口座に Treasury で作成された金融口座を指定します。詳細については、Stripe Payments からの入金およびトップアップをご覧ください。

  6. 入金を作成をクリックしてから、概要ページに移動して、取引の詳細を表示します。

これらのステップのコードと API ログを見る

これらのステップの詳細を確認するには、以下のコードサンプルと API ログを使用します。

支払いを受け取る

決済用のリンクを使用してテスト支払いを受け取り、金融口座に関連付けられた連結アカウントに支払い残高を送金することができます。

  1. 支払いの完了後に連結アカウントに支払われる金額を決定する Price を作成します。

    create_paymentlinks.ts
    サンプル全体を表示
    const prices = await stripe.prices.list( { limit: 1, active: true, type: "one_time", }, { stripeAccount:
    '{{CONNECTED_ACCOUNT_ID}}'
    , }, ); const price = prices.data.length < 1 ? await stripe.prices.create( { unit_amount: 1000, currency: "usd", product_data: { name: "Some Product", }, }, { stripeAccount:
    '{{CONNECTED_ACCOUNT_ID}}'
    , }, ) : prices.data[0];
  2. 価格を取得した後、サンプルアプリは PaymentLink を作成し、ユーザーをリダイレクトして支払いを完了できるようにします。前のステップの価格 id を使用して price パラメーターの値を設定します。デフォルト値を使用する場合は、このパラメーターを除外できます。

    create_paymentlinks.ts
    サンプル全体を表示
    const paymentLink = await stripe.paymentLinks.create( { line_items: [ { price: price.id, quantity: 1, adjustable_quantity: { enabled: true }, }, ], }, { stripeAccount:
    '{{CONNECTED_ACCOUNT_ID}}'
    , }, );

連結アカウントの支払い残高からの入金

Payouts では、連結アカウントの支払い残高から、その連結アカウントの Treasury の金融口座に売上を送金できます。入金を実行するには、以下のステップを実行します。

  1. 連結アカウント用に外部口座が設定されているかどうかを確認します。そのためには、accounts.retrieve API を使用して、Account オブジェクト を取得し、external_account プロパティが設定されているかどうかを確認します。

    create_paymentlinks.ts
    サンプル全体を表示
    const responseAccount = await stripe.accounts.retrieve(
    '{{CONNECTED_ACCOUNT_ID}}'
    ); const hasExternalAccount = responseAccount.external_accounts?.data[0] != undefined;
  2. 既存の外部口座がない場合、ユーザーは Treasury の金融口座を連結アカウントの外部口座として設定できます。

    test-data.tsx
    サンプル全体を表示
    const financialAccounts = await stripe.treasury.financialAccounts.list( { expand: ["data.financial_addresses.aba.account_number"] }, { stripeAccount:
    '{{CONNECTED_ACCOUNT_ID}}'
    , }, ); const financialAccount = financialAccounts.data[0]; const aba = financialAccount.financial_addresses[0]?.aba; // ... const token = await stripe.tokens.create( { bank_account: { account_number: aba.account_number, country: "US", currency: "usd", routing_number: aba.routing_number, }, }, undefined, ); await stripe.accounts.createExternalAccount(
    '{{CONNECTED_ACCOUNT_ID}}'
    , { external_account: token.id, });
  3. 連結アカウントの外部口座への入金を開始します。この例では、外部口座は Treasury の金融口座です。API ログ POST to /v1/payouts を探します。

    create_payout.ts
    サンプル全体を表示
    const balance = await stripe.balance.retrieve( { stripeAccount:
    '{{CONNECTED_ACCOUNT_ID}}'
    , } ); const payout = await stripe.payouts.create( { amount: balance.available[0].amount, currency: 'usd', }, { stripeAccount:
    '{{CONNECTED_ACCOUNT_ID}}'
    , } );

https://dashboard.stripe.com/{{CONNECT_ACCOUNT_ID}}/test/events?type=treasury.received_credit.created で連結アカウントの treasury.received_credit.created イベントを表示します。ステップ 1 のレスポンスで連結アカウントの ID を確認できます。

このページはお役に立ちましたか。
はいいいえ
  • お困りのことがございましたら 、サポートにお問い合わせください。
  • 早期アクセスプログラムにご参加ください。
  • 変更ログをご覧ください。
  • ご不明な点がございましたら、お問い合わせください。
  • LLM ですか?llms.txt を読んでください。
  • Powered by Markdoc