コンテンツにスキップ
アカウントを作成
または
サインイン
Stripe ドキュメントのロゴ
/
AI に質問する
アカウントを作成
サインイン
始める
支払い
財務の自動化
プラットフォームおよびマーケットプレイス
資金管理
開発者向けのツール
始める
支払い
財務の自動化
始める
支払い
財務の自動化
プラットフォームおよびマーケットプレイス
資金管理
概要
導入を開始
商品
グローバル入金
Capital
カードを発行する
Treasury
    概要
    Treasury の仕組み
    利用資格要件
    始める
    API の使用を開始
    ユーザーのアカウント登録
    不正利用の管理
    マーケティングと法令遵守のガイドライン
    導入のサンプル
    Treasury を使用して金融アカウントとカードを設定する
    Treasury を使用して資金を移動する
    Issuing と Treasury のサンプルアプリケーション
    Stripe Issuing と Treasury
    Stripe Issuing と Stripe Treasury の Webhook
    Stripe Issuing のカードを使用する
    アカウント管理
    Stripe Treasury のアカウント構造
    連結アカウントの使用
    金融口座を使用する
    金融アカウントの機能
    プラットフォームの金融アカウント
    残高と取引の使用
    資金移動
    Stripe Payments からの入金とトップアップ
    SetupIntent、PaymentMethod、BankAccount を使用する
    金融アカウントに資金を移動する
      InboundTransfer オブジェクトを使用して Treasury で送金
      ReceivedCredit オブジェクトを使用して Treasury で送金
      CreditReversals オブジェクトを使用して Treasury で送金
    金融アカウントから資金を移動する
    資金移動のタイムライン
    銀行パートナー
    Fifth Third Bank の概要
    Fifth Third Bank の使用を開始
資金の管理
ホーム資金管理TreasuryMoving money into financial accounts

InboundTransfer オブジェクトを使用して Treasury で送金

所有している別の口座から Treasury の金融口座に送金する方法をご紹介します。

ページをコピー

インバウンド送金は、ACH ネットワークを使用して外部のアメリカの銀行口座から金融口座に資金を移動します。このような送金は、InboundTransfer オブジェクトで開始されます。

同日の ACH 機能を使用していない場合、インバウンド送金には通常、2 ~ 4 営業日かかります。詳細については、資金移動のタイムラインのガイドをご覧ください。

注

インバウンド送金を使用して、金融口座所有者の銀行口座から資金を移動できます。外部関係者から金融口座への資金を受け取るには、支払い残高への ACH デビットを使用し、続けて金融口座に入金します。

InboundTransfer を作成する

POST /v1/treasury/inbound_transfers を使用して InboundTransfer オブジェクトを作成します。これは、お客様が保有する外部口座から自身の金融口座への引き出しベースの送金を表します。言い換えると、InboundTransfer を作成し、外部のアメリカの銀行口座から引き落としを行い、金融口座に資金を移動します。このリクエストには、以下のパラメーターを含める必要があります。

  • amount: 金融口座に送金されるセント単位での金額。
  • currency: 3 文字の ISO 通貨コード (サポートされている値は、現在 usd のみ)。
  • financial_account: 送金を受け取る金融口座の ID。
  • origin_payment_method: インバウンド送金の送金元。まず、SetupIntent(支払い方法設定インテント) を使用して、アカウントに関連付けられたインバウンドフローの支払い方法を設定し、銀行口座を確認する必要があります。別の方法として、確認済みの ExternalAccount (外部銀行口座) として以前に設定された既存の BankAccount (銀行口座) を使用することもできます。支払い方法と銀行口座のいずれを使用する場合でも、口座から資金を引き落とすには、口座名義人の許可が必要です。

以下の JSON は、リクエストの本文に含めることができるデータを示します。

{ // The source PaymentMethod or BankAccount. Funds are pulled from this account. "origin_payment_method": "{{PAYMENT_METHOD_ID}}" | "{{BANK_ACCOUNT_ID}}", // The destination FinancialAccount. Funds arrive in this account. "financial_account": "{{FINANCIAL_ACCOUNT_ID}}", // The amount to debit. 10.00 USD in this case. "amount": 1000, "currency": "usd", // An optional, internal description for the InboundTransfer. "description": "Funds for vendor payment payment_234281", // An optional descriptor for the InboundTransfer to send // to the network with the debit request. Max 10 characters "statement_descriptor": "payment_1", // Stripe does not support updating InboundTransfers after creation. // You can only set metadata at creation time. "metadata": null | {{Hash}} }

以下のリクエストは、アカウントに関連付けられた支払い方法を使用して 200 USD を指定された ID の金融口座に送金します。Stripe-Account ヘッダー値は、金融アカウントと支払い方法の両方を所有する Stripe アカウントを識別します。

Command Line
cURL
curl https://api.stripe.com/v1/treasury/inbound_transfers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -H "Stripe-Account:
{{CONNECTED_ACCOUNT_ID}}
"
\ -d origin_payment_method=
{{PAYMENT_METHOD_ID}}
\ -d financial_account=
{{FINANCIAL_ACCOUNT_ID}}
\ -d amount=20000 \ -d currency=usd \ -d description="Funds for repair" \ -d statement_descriptor="Invoice 12"

成功すると、レスポンスで InboundTransfer オブジェクトが提供されます。このオブジェクトには、hosted_regulatory_receipt_url が含まれ、お客様のプラットフォームのアカウント所有者が取引詳細にアクセスできるようにします。

{ "id": "{{INBOUND_TRANSFER_ID}}", "object": "inbound_transfer", "amount": 20000, "created": 1648071297, "currency": "usd", "description": "Funds for repair", "financial_account": "{{FINANCIAL_ACCOUNT_ID}}", "hosted_regulatory_receipt_url": "https://payments.stripe.com/regulatory-receipt/{{IBT_URL}}", "linked_flows": null, "livemode": false, "metadata": {}, "origin_payment_method": "{{PAYMENT_METHOD_ID}}", ... "statement_descriptor": "Invoice 12", "status": "processing", ... }

警告

まれに、 Stripeがさまざまなリスク要因により InboundTransfer リクエストをキャンセルすることがあります。これらのシナリオでは、 API リクエストがレスポンスコード 402 でエラーになります。エラーメッセージには、エラーにつながったリスク要因の詳細が表示されています。

同日の ACH

プライベートプレビュー

同日の ACH は現在、制限付きのプレビュー版として提供されているため、Stripe の審査と承認が必要です。アクセスをリクエストするには、treasury-support@stripe.comにメールを送信してください。

アクセスできない場合、同日の ACH の機能またはパラメーターを含む API コールがエラーを返します。

同日の ACH を使用すると、締め切り時間 までに InboundTransfer コールが正常に完了した場合、同一営業日内に元の金融口座に売上を入金できます。同日の ACH を使用するには、origin_payment_method_options.us_bank_account.ach.submission パラメーターを same_day に設定します。

当日 ACH の提供による不正利用リスク

ACH インバウンド送金を同日に決済する場合、標準の ACH インバウンド送金に比べ、プラットフォームが大きな財務リスクにさらされる可能性があります。たとえば、連結アカウントが送金を開始しても、送金元口座の残高不足が原因で差戻しが発生したりすることがあります。同日決済では、資金が差戻される前に金融口座から資金が引き出されるため、時間的余裕が多くあります。連結アカウントが資金を引き出し、その後、差戻しによって金融口座の残高がマイナスになった場合は、お客様のプラットフォームがその責任を負います。

Stripe の不正利用防止システムがインバウンド送金を高リスクのアクティビティと見なした場合、作成リクエストはエラーで失敗します。

{ "error": { "type": "invalid_request_error", "message_code": "inbound_transfer_not_same_day_eligible", "message": "This transaction is not eligible for same-day availability at this time. Please try again with `standard` ACH submission." } }

inbound_transfer_not_same_day_eligible メッセージコードのエラーが発生した場合は、origin_payment_method_options.us_bank_account.ach.submission パラメーターを standard に設定してリクエストを再試行します。

InboundTransfer を取得する

GET /v1/treasury/inbound_transfers/{{INBOUND_TRANSFER_ID}} を使用し、関連付けられた ID の InboundTransfer オブジェクトを取得します。

以下の JSON は、リクエストの本文に含めることができるデータを示します。 レスポンスの一部のパラメーターには、expand[] パラメーターに値として追加した場合にのみ返される追加情報があります。次のレスポンス例で、拡張できるフィールドには、「Expandable」コメントが付いています。オブジェクトレスポンスの拡張の詳細については、レスポンスを拡張するをご覧ください。

{ "id": "{{INBOUND_TRANSFER_ID}}", "object": "inbound_transfer", "livemode": false, "created": "{{Timestamp}}", "financial_account": "{{FINANCIAL_ACCOUNT_ID}}", // Expandable "amount": 1000, "currency": "usd", // The only current valid PaymentMethod type for InboundTransfers is us_bank_account "origin_payment_method": "{{PAYMENT_METHOD_ID}}",

次のリクエストは、id 値が {{INBOUND_TRANSFER_ID}} の InboundTransfer を取得します。本文の expand[] 配列に transaction を含めると、該当する情報が展開されて返されます。

Command Line
cURL
curl -G https://api.stripe.com/v1/treasury/inbound_transfers/{{INBOUND_TRANSFER_ID}} \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -H "Stripe-Account:
{{CONNECTED_ACCOUNT_ID}}
"
\ -d "expand[]"=financial_account

成功すると、拡張された情報を持つ InboundTransfer オブジェクトがレスポンスで返されます。

{ "id": "{{INBOUND_TRANSFER_ID}}", "object": "inbound_transfer", "amount": 20000, "created": 1648071297, "currency": "usd", "description": "Inbound transfer", "failure_details": null, "financial_account": "{{FINANCIAL_ACCOUNT_ID}}", "hosted_regulatory_receipt_url": "https://payments.stripe.com/regulatory-receipt/{{INBOUND_TRANSFER_ID}}",

InboundTransfer を一覧表示する

GET /v1/treasury/inbound_transfers を使用し、関連付けられた ID の金融口座のすべての InboundTransfers を取得します。標準のリストパラメーターまたは status でリストをフィルタリングできます。

{ // Standard list parameters "limit", "starting_after", "ending_before", // Filter by status "status": "processing" | "succeeded" | "failed", // Filter by FinancialAccount (Required) "financial_account": "{{FINANCIAL_ACCOUNT_ID}}", // Required }

以下のリクエストは、ID {{CONNECTED_ACCOUNT_ID}} の連結アカウントに関連付けらた、ID {{FINANCIAL_ACCOUNT_ID}} の金融口座について、ステータスが succeeded のインバウンド送金をすべて取得します。

Command Line
cURL
curl -G https://api.stripe.com/v1/treasury/inbound_transfers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -H "Stripe-Account:
{{CONNECTED_ACCOUNT_ID}}
"
\ -d financial_account=
{{FINANCIAL_ACCOUNT_ID}}
\ -d status=succeeded

InboundTransfers を手動で確認する

銀行パートナーへの送金を遅らせるか、売上を長期間保留することで、送金のリスクを軽減できます。この保留により、不審なアクティビティを確認するための時間が増える可能性があります。inbound_transfers.ach.platform_review の機能へのアクセスをリクエストすると、ステータスが requires_confirmation のインバウンド送金を、この機能が有効になっている金融口座ですべて受け取れるようになります。

以下は、新しい金融口座でこの機能を設定する例です。他の機能を追加することもできます。

Command Line
cURL
curl https://api.stripe.com/v1/treasury/financial_accounts \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -H "Stripe-Account:
{{CONNECTED_ACCOUNT_ID}}
"
\ -d "supported_currencies[]"=usd \ -d "inbound_transfers[ach][requested]"=true \ -d "inbound_transfers[ach][platform_review][requested]"=true

以下は、既存の金融口座でこの機能を設定する例です。

Command Line
cURL
curl https://api.stripe.com/v1/treasury/financial_accounts/fa_xxx/features \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -H "Stripe-Account:
{{CONNECTED_ACCOUNT_ID}}
"
\ -d "supported_currencies[]"=usd \ -d "inbound_transfers[ach][requested]"=true \ -d "inbound_transfers[ach][platform_review][requested]"=true

通常、インバウンド送金は作成時に自動的に銀行に送金されます。ただし、ステータスが requires_confirmation のインバウンド送金では、銀行パートナーに送金を送信する前に /v1/treasury/inbound_transfers/{id}/confirm エンドポイントでユーザーの明示的な確認を取る必要があります。送金を確定またはキャンセルする前に、インバウンド送金の詳細とリスクシグナルを確認できます。ステータスが requires_confirmation のインバウンド送金は、5 営業日以内に確定またはキャンセルしてください。5 営業日を過ぎると、送金は自動的にキャンセルされます。たとえば、金曜日に作成された requires_confirmation のインバウンド送金は、翌週の金曜日までに確定させる必要があります (アメリカで祝日がない場合)。

confirm エンドポイントで funds_availability_delay パラメーターを使用して、目的の金融口座に資金をリリースするまでの遅延時間 (秒単位) を指定します。これにより、追加の遅延を利用して、送金を手動で確認できます。また、このフィールドを使用して、ACH の差戻し期間を過ぎても資金を保持し、元の銀行が遅延後に資金を取り消すことができないようにすることもできます。funds_availability_delay を 432,000 に設定して、差戻し期間後に資金がリリースされるようにすると、さらにセキュリティが高まります。

以下は、可用性の遅延なしで confirm エンドポイントを呼び出す例です。

Command Line
cURL
curl -X POST https://api.stripe.com/v1/treasury/inbound_transfers/ibt_xxx/confirm \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -H "Stripe-Account:
{{CONNECTED_ACCOUNT_ID}}
"

以下は、可用性の遅延を指定して confirm エンドポイントを呼び出す例です。

Command Line
cURL
curl https://api.stripe.com/v1/treasury/inbound_transfers/ibt_xxx/confirm \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -H "Stripe-Account:
{{CONNECTED_ACCOUNT_ID}}
"
\ -d funds_availability_delay=432000

InboundTransfer の状態

以下の表は、各ステータスと可能な移行状態について説明したものです。

ステータス説明状態の移行
processingInboundTransfer の作成に成功しました。Stripe はネットワークでの売上の送金を指示します。failed、canceled、succeeded、requires_confirmation
requires_confirmationInboundTransfer は保留状態で作成されます。Stripe がネットワーク上で資金の移動を開始していないときは、ユーザーは /v1/treasury/inbound_transfers/:ID/confirm エンドポイントを使用してこのインバウンド送金をトリガーする意図を明示する必要があります。processing、canceled
failed (最終状態)InboundTransfer の確定に失敗しました。取引は作成されず、payment_method は引き落としされていません。該当なし
canceled (最終状態)InboundTransfer はネットワークへの送信前にキャンセルされました。Stripe は取引を無効化し、売上を外部の銀行口座から移動しません。該当なし
succeeded (最終状態)InboundTransfer が成功し、資金がアカウントに入金されました。取引が作成されました。外部の口座が資金を引き出した場合、InboundTransfer は成功した後で返金されることがあります。これは、関連付けられた ReceivedDebit によって表されます。該当なし

InboundTransfer をテストする

実装をエンドツーエンドでテストするには、test SetupIntents requests を使用して PaymentMethod を作成し、その PaymentMethod を InboundTransfer 作成リクエストに渡します。PaymentMethods が有効であれば InboundTransfers は成功し、無効な PaymentMethods が無効であれば (サポートされていないタイプ、未確認の銀行口座を含む、インバウンドフロー用に設定されていない、など) 本番環境と同じエラーをスローします。

InboundTransfer の状態をテストする

Stripe では、テスト用の PaymentMethod トークンのセットも用意しています。これを使用すると、次のような特定の状態の移行をトリガーできます。

PAYMENT_METHOD の値結果
pm_usBankAccountprocessing から succeeded に移行する InboundTransfer。
pm_usBankAccount_processingprocessing 状態のままの InboundTransfer。
pm_usBankAccount_internalFailureprocessing から failed に移行する InboundTransfer。

さまざまなエッジケースをより迅速にテストするために、PaymentMethod のトークンは以下の特定の失敗タイプをシミュレーションします。

PAYMENT_METHOD の値結果
pm_usBankAccount_noAccountfailure_details.code= "no_account" で失敗に移行する InboundTransfer。
pm_usBankAccount_accountClosedfailure_details.code= "account_closed" で failed に移行する InboundTransfer。
pm_usBankAccount_invalidAccountNumberfailure_details.code= "invalid_account_number" で失敗に移行する InboundTransfer。
pm_usBankAccount_insufficientFundsfailure_details.code= "insufficient_funds" で失敗に移行する InboundTransfer。
pm_usBankAccount_debitNotAuthorizedfailure_details.code= "debit_not_authorized" で失敗に移行する InboundTransfer。
pm_usBankAccount_disputeprocessing から succeeded に移行し、後で不審請求の申請が行われる InboundTransfer。inbound_transfer.returned が true になり、関連付けられた ReceivedDebit が作成されます

いずれの場合も、InboundTransfer のレスポンスは processing 状態で始まります。関連する状態の移行ごとに Webhooks を受信し、InboundTransfer を作成後に取得すると、想定された状態が返されます。

InboundTransfer テストヘルパーエンドポイント

Stripe では、さまざまな状態の InboundTransfers をテストできるエンドポイントも提供しています。InboundTransfer を作成し、以下の手順に従います。

  • テスト用の succeed エンドポイント を使用し、関連付けられた ID の送金を直接 succeeded 状態に移行します。

    POST /v1/test_helpers/treasury/inbound_transfers/{{INBOUND_TRANSFER_ID}}/succeed

  • テスト用の fail エンドポイント を使用し、関連付けられた ID の送金を直接 failed の状態に移行します。

    POST /v1/test_helpers/treasury/inbound_transfers/{{INBOUND_TRANSFER_ID}}/fail

これらのエンドポイントは、返品などのエラーシナリオをテストするために特に便利です。こういったエンドポイントがなければ、InboundTransfer が資金を引き出していた外部の口座からのアクションが必要になります。

本文にオプションの failure_details.code パラメーターを含め、送金が失敗した理由を示します。この情報が提供されない場合には、送金はデフォルトの could_not_process 失敗コードで失敗します。

{ "failure_details": { "code": "account_closed" | "account_frozen" | "bank_account_restricted" | "bank_ownership_changed" | "could_not_process" | // Generic fallback code "invalid_account_number" | "incorrect_account_holder_name" | "invalid_currency" | "no_account" } }

Treasury は、成功した後で返金される InboundTransfer をシミュレーションするための return エンドポイントも提供しています。

テスト用の return エンドポイント を使用し、関連付けられた ID の InboundTransfer で返金のシミュレーションを開始します。

POST /v1/test_helpers/treasury/inbound_transfers/{{INBOUND_TRANSFER_ID}}/return

すべてのテスト用エンドポイントは、該当するそれぞれの状態の移行に対して Webhooks をトリガーします。移行後に InboundTransfer を取得すると、想定される状態が返されます。

InboundTransfer Webhook

Stripe は、Webhook エンドポイントに以下の InboundTransfer イベントを送信します。

  • InboundTransfer 作成時の treasury.inbound_transfer.created。
  • InboundTransfer のステータスが変化した際の treasury.inbound_transfer.{{new_status}}。ステータス値のオプションには以下が含まれます。
    • treasury.inbound_transfer.succeeded
    • treasury.inbound_transfer.failed
このページはお役に立ちましたか。
はいいいえ
お困りのことがございましたら 、サポートにお問い合わせください。
早期アクセスプログラムにご参加ください。
変更ログをご覧ください。
ご不明な点がございましたら、お問い合わせください。
LLM ですか?llms.txt を読んでください。
Powered by Markdoc