Dynamic Reserves との連携に後から資金を供給非公開プレビュー
Dynamic Reserves を使用してカードの支出に後から資金を追加する方法をご紹介します。
注意
この API は現在ベータ版です。フィールド名または大まかな概念は、今後のリリースで変更される可能性があります。Dynamic Reserve API にアクセスするには、すべての API リクエストで次のヘッダーを渡します: Stripe-Version: <your stripe version>;issuing_
動的なリザーブにより、プラットフォームは独自のクレジット限度額をリアルタイムで調整して、Stripe とその資金の間で現金を管理して、オーソリに利用できるようにします。この機能を使用すると、次のことができます。
- 資本使用量を制御し、資金供給コストを最小化
- オーソリの可用性を決定する限度額を管理
- Stripe を使用して予期せぬボラティリティを管理する 連結アカウントでは、カードの支出と事後資金供給の後で Stripe に対してマイナスの Issuing 残高が発生する可能性があります。カードの使用が発生する前に Issuing 残高に事前資金供給する代わりに、ネットワークがオーソリをキャプチャーした後 (通常はオーソリが作成されてから 1 日後) に Issuing 残高に資金を供給できます。毎日、Stripe から借入額が通知され、期限前に同日の電信送金で Stripe に資金を供給できます。延滞料や追加のペナルティを回避するには、期限 (通常は 20:00 UTC) までに Stripe に資金を供給する必要があります。
Connect
Connect プラットフォームに後から資金を追加する場合、連結アカウントの動作は以下で説明しているものと同じです。
プラットフォームと連結アカウントの関係は変わりません。主な違いは、連結アカウントの総支出額を事前に入金する代わりに、後から資金を調達できることです。
はじめに
- リザーブを設定し、運用障害が発生した場合にのみアクセスします。
- 銀行から電信送金します。
カードプログラムの設定
Stripe は、お客様のプラットフォームまたはダイレクトカードプログラムに対して、お客様の支払い義務と条件に関する情報を含む CreditPolicy
を設定します。カードプログラムの CreditPolicy
は、連結アカウントに設定した CreditPolicy とは異なります。Stripe は、以下のフィールドを定義するカードプログラム CreditPolicy
を設定および制御します。
current_
: すべての連結アカウント (Direct ユーザーの場合はアカウント) で使用できる最大合計金額。exposure_ limit_ amount current_
は、exposure_ limit_ amount funded_
とreserve_ amount reserve_
の値の組み合わせに基づいて、次の式を使用して計算します: current_exposure_limit_amount = MIN [(funded_reserve_amount * reserve_multiplier), maximum_exposure_limit]multiplier reserve_
:multiplier_ decimal funded_
に乗算してreserve_ amount current_
を決定する金額。exposure_ limit_ amount reserve_
は、事後資金供給プログラムの開始時に決定されます。multiplier_ decimal max_
: すべての連結アカウント (Direct ユーザーの場合はアカウント) で使用できる最大合計金額。最大リスク限度額は、Stripe とexposure_ limit_ amount funded_
によって設定された固定値に等しくなります。reserve_ amount funded_
: Stripe に転記したリザーブの合計に対応します。reserve_ amount exposure_
:limit_ currency current_
とexposure_ limit_ amount max_
を表す 3 文字の通貨コード。exposure_ limit_ amount
Stripe は、funded_
を超える支出、current_
を超える場合、または funding_
の支払いが遅れた場合に手数料を請求します。Stripeでは、max_
までは current_
を超えて支出できますが、これはあなたが使用する資金ではなく、緊急資本です。
たとえば、funded_
が 1,000 USD、reserve_
が 2.0x、current_
が 2,000 USD、max_
が 3,000 USD の場合、次のようになります。
- Stripe は、1,000 USD から 2,000 USD の支出に対して、「クレジット使用」手数料を請求します。
- Stripe は、2,000 USD から 3,000 USD の支出に対して、より高い「緊急資本」手数料を請求します。
- Stripe は 3,000 USD を超える取引を拒否します。
カードプログラム CreditPolicy
の詳細を取得するには、GET CreditPolicy
API エンドポイントを呼び出します。
curl https://api.stripe.com/v1/issuing/credit_policy -u "sk_***:" -H "Stripe-Version: 2024-06-20; issuing_credit_beta=v2"
次のレスポンスの例を参照してください。
{ "livemode": true, "current_exposure_limit_amount": 11359999920 , "reserve_multiplier_decimal": "2.4", "max_exposure_limit_amount": 13133333300, "funded_reserve_amount": 4733333300, // other fields }
Stripe は T+2 営業日の 20:00 UTC 以降に、CreditPolicy
に加えた変更を適用します。credit_
属性は、このタイムスタンプを表します。
curl https://api.stripe.com/v1/issuing/credit_policy -u "sk_***:" -H "Stripe-Version: 2024-06-20; issuing_credit_beta=v2"
次のレスポンスの例を参照してください。
{ "livemode": true, "upcoming_attributes": { "current_exposure_limit_amount": 11359999920, "reserve_multiplier_decimal": "2.4", "max_exposure_limit_amount": 13233333300, "funded_reserve_amount": 4733333300, "effective_at": 1729195200 // 2024-10-17 20:00:00 +0000 UTC } }
max_
の固定部分のみが T+2 営業日の遅延の対象となります。max_
は Stripe が開始する変更ではなく、資金リザーブに基づいて動的に更新されます。
たとえば、max_
の固定部分を 1,000 USD 増やすように Stripe にリクエストした場合、この変更は T+2 営業日後に有効になります。ただし、funded_
を 1,000 USD 増やすと、max_
はリアルタイムで動的に変化します。
カードプログラムの義務
CreditPolicy
は事後資金供給プログラムの全体的なパラメーターを定義しますが、FundingObligation
は、すべての連結アカウント、または直接ユーザーの場合はアカウントでのカード使用に対する Stripe への現在の義務を表します。
Stripe は毎朝、issuing_
Webhook イベントを送信します。このイベントには、Stripe に対するプラットフォームの債務を表す FundingObligation
が含まれています。特定の FundingObligation
の amount_
の値は、その日の債務額を表します。
{ "id": "icfo_123", "amount_total": 95000000, // minor units "amount_outstanding": 95000000, // minor units "amount_paid": 0, "currency": "usd", "status": "unpaid", "due_at": "timestamp_on_t1", "paid_at": "nil", "owed_to": "stripe", "finalized_at": "timestamp_on_t2", "grace_period_ends_at": "timestamp_on_t3", …, }
支払い遅延
各 FundingObligation
には、FundingObligation
の期日を示す due_
フィールドが含まれています。
{ "id": "icfo_123", "amount_total": 95000000, // minor units "amount_outstanding": 95000000, // minor units "amount_paid": 0, "currency": "usd", "status": "unpaid", "due_at": "timestamp_on_t1", "paid_at": "nil", "owed_to": "stripe", "finalized_at": "timestamp_on_t2", "grace_period_ends_at": "timestamp_on_t3", …, }
期日までに FundingObligation
を支払わなかった場合、以下が発生します。
- Stripe は、期日を過ぎた金額を補充するためにリザーブから引き出します。
- リザーブに十分な残高がある場合、資金供給義務のステータスが
paid
に変更されたことを示すFundingObligation.
Webhook が届きます。リザーブ残高が不足してupdated FundingObligation
を完全にカバーできない場合は、資金供給義務のステータスがpast_
に変更され、翌営業日のdue grace_
タイムスタンプが 20:00 UTC であることを示すperiod_ ends_ at FundingObligation.
Webhook を受け取ります。updated - リザーブプルが発生すると、
credit_
とpolicy. current_ exposure_ limit_ amount credit_
には、新しい Issuing クレジットリザーブ残高に基づいて更新されたリスク限度額が反映されます。新しいリスク限度額 (現行および最大) を通知する Webhook を受信します。policy. max_ exposure_ limit_ amount - また、リザーブの引き出しと
past_
のdue FundingObligation
を通知するメールも届きます。 - お客様の
FundingObligation
が期日を過ぎた場合、Stripe は Stripe との契約に記載されている延滞料を請求します。 current_
がマイナスの Issuing 残高よりも大きいことを確認するのは、お客様の責任です。Stripe が開始した引き出し後に、必要に応じてリザーブのトップアップ (残高を補充) するを開始する準備をします。これを怠ると、支出がexposure_ limit max_
を超えた場合にオーソリが拒否されます。exposure_ limit
経時的にに支払いが複数回遅れると、カードプログラムのリスク限度額の引き下げなど、プラットフォームに追加のペナルティが課せられる可能性があります。さらに 1 営業日以内に未払いの FundingObligation
を是正しないと、Stripe が取引の拒否を開始する可能性があります。
Stripe に対する債務額を確認する
Stripe は、週末や祝日を含め、毎日カードプログラムに対して FundingObligation
を生成します。アカウントを最新の状態に保ち、延滞料やペナルティを回避するには、次の式を使用して、すべての unpaid
および past_
の FundingObligations
の amount_
値に基づいて、毎日支払うべき合計金額を計算します。
total_ = sum(unpaid FundingObligations)1 + sum(past_due FundingObligations)2 |
1_「sum(unpaid FundingObligations)」_は、status=unpaid
のすべての FundingObligations
の合計です。
2_「sum(past_due FundingObligations)」_は、status=past_
のすべての FundingObligations
の合計です。
資金供給義務と期日を管理する
Stripe が平日に FundingObligation
を生成すると、その期限は同日になります。Stripe が週末または祝日に FundingObligation
を生成した場合、翌営業日が期限になります。つまり、通常の週末明けの月曜日には、3 つの FundingObligations
が期限になります。適切なタイミングで支払いを行うために、Stripe に支払うべき合計金額を正確に集計してください。
義務を果たすために Stripe に資金を供給する
毎日 due_
タイムスタンプに基づいて総債務額分の資金を追加するには、次のいずれかの方法を使用します。
- 同日電信送金: 銀行から Stripe Issuing 残高への同日送金を開始して、
FundingObligation
を返済します。FundingInstructions API を使用して Issuing 残高の口座番号とルーティング番号を取得し、それを電信送金の送金先として使用します。 - 残高の送金: アメリカでは、Stripe の支払い残高から Issuing 残高に即座に資金を移動し、その資金を使用して Stripe ダッシュボードまたは API から
FundingObligation
の返済に使用できます (API にアクセスするには Stripe にお問い合わせください)。 - 既存の事前資金供給 Issuing 残高: アメリカでは、Stripe は前日からの事前資金供給または過剰資金供給の金額を次の
FundingObligation
に適用します。欧州・中東・アフリカ地域では、支払いカードのユーザーは Issues 残高に事前資金供給できません。代わりに、プラスの Issuing 残高は Issuing リザーブに振り替えられます。
Stripe が FundingObligation
の未払い額の全額を受け取ると、そのステータスと金額が更新され、issuing_
Webhook イベントがトリガーされます。
{ "id": "icfo_123", "amount_total": 95000000, // minor units "amount_outstanding": 0, "amount_paid": 95000000, // minor units "currency": "usd", "status": "paid", "due_at": "timestamp_on_t1", "paid_at": "timestamp_of_payment", "owed_to": "stripe", "grace_period_ends_at": "timestamp_on_t2" …, }
合計支払額の一部のみを支払う場合、Stripe は金額を更新しますが、ステータスは unpaid
のままになります。この情報は、issuing_
Webhook イベントに反映されます。
{ "id": "icfo_123", "amount_total": 95000000, // minor units "amount_outstanding": 3000000, // minor units "amount_paid": 92000000, // minor units "currency": "usd", "status": "unpaid", "due_at": "timestamp_on_t1", "paid_at": "timestamp_of_payment", "owed_to": "stripe", "grace_period_ends_at": "timestamp_on_t2" …, }
due_
の期限を過ぎても残高が未払いのままの場合、status
が past_
に変わり、別の issuing_
Webhook イベントがトリガーされ、リザーブの引き出しが開始されます。
資金調達義務の取引を取得
List all transactions API リクエストに次のいずれかのパラメーターを含めて、FundingObligation
に寄与する取引のリストを取得します。
- ダイレクトユーザーの場合は funding_obligation_for_account。
- Platform ユーザーの場合は funding_obligation_for_platform。
ダイレクト支払いの取引を取得するには、次のようにします。
次のレスポンスの例を参照してください。
{ "object": "list", "url": "/v1/issuing/transactions", "has_more": false, "data": [ { "id": "ipi_123", "object": "issuing.transaction", // various other fields "funding_obligation_for_platform": null, "funding_obligation_for_account": "ifo_123", // various other fields }, { "id": "ipi_123", "object": "issuing.transaction", // various other fields "funding_obligation_for_platform": null, "funding_obligation_for_account": "ifo_123", // various other fields }, {...} ] }
連結アカウントの資金調達義務を照会する
Connect プラットフォームには、連結アカウント ID を含む Stripe-Account
ヘッダーを含める必要があります。funding_obligation_for_platform を使用してプラットフォームの FundingObligation
でクエリを実行するか、連結アカウントの FundingObligation
がわかっている場合は funding_obligation_for_account を使用します。
次のレスポンスの例を参照してください。
{ "object": "list", "url": "/v1/issuing/transactions", "has_more": false, "data": [ { "id": "ipi_123", "object": "issuing.transaction", // various other fields "funding_obligation_for_platform": "ifo_123", "funding_obligation_for_account": "ifo_456", // various other fields }, { "id": "ipi_123", "object": "issuing.transaction", // various other fields "funding_obligation_for_platform": "ifo_123", "funding_obligation_for_account": "ifo_789", // various other fields }, {...} ] }
リザーブを管理する
資本効率の高い事後資金供給カード支出を使用するには、Stripe にリザーブ (プログラム契約では「担保」と呼ばれます) を計上する必要があります。Stripe は、未払いの資金に対する担保として所有および管理する口座にリザーブを保有し、遅延または未払いの FundingObligations
を返済するためにそこから引き出します。Stripe では、リザーブを current_
および max_
の計算の基準としても使用します。長期連休前など、支出の増加が見込まれる場合は資金を追加し、予想される支出額が少ない場合はリザーブを減らすことで、リザーブ残高を動的に調整できます。
資金調達義務が past_
になり、リザーブがその金額をカバーするのに十分でない場合、延滞料が発生する場合があります。さらに、past_
資金調達義務がパターン化すると、Stripe は、プラットフォームの reserve_
または max_
の固定部分を 減らす可能性があります。これを回避するには、クレジット実装の FundingObligation
の due_
タイムスタンプより前に、電信送金または残高振替で Stripe Issuing 残高に資金を供給します。
リザーブコンポーネントを特定する
CreditPolicy
で reserve_
、max_
、funded_
、current_
を識別できます。これらの要素と予想される将来の支出を使用して、適切な funded_
を決定します。
curl https://api.stripe.com/v1/issuing/credit_policy -u "sk_***:" -H "Stripe-Version: 2024-06-20; issuing_credit_beta=v2"
次のレスポンスの例を参照してください。
{ "current_exposure_limit_amount": 11359999920 , "reserve_multiplier_decimal": "2.4", "max_exposure_limit_amount": 13133333300, "funded_reserve_amount": 4733333300, // other fields }
リザーブ残高に資金を追加する
Stripe は、リザーブ残高への資金のプッシュをサポートしています。支出が増加する前に、または Stripe が past_
の FundingObligation
を支払うためにリザーブから引き出した後にこれを行って、current_
を増やす場合があります。リザーブの口座の詳細は FundingInstruction
で確認でき、送金を開始するための銀行口座とルーティング情報が含まれています。
注意
これは、Stripe が Issuing 残高に資金を追加するために使用するさまざまな手順とは異なります。リザーブの口座情報の destination_
には issuing_
が設定されます。
次のレスポンスの例を参照してください。
{ "id": "fi_XYZ", "object": "funding_instruction", "livemode": "true", "currency": "usd", "bank_transfer": { "type": 'us_bank_account', "country": "US", "financial_addresses": [{ "supported_networks": ['ach', 'domestic_wire_us'], "type": 'aba', "aba": { "account_number": "546475644", "bank_name": "Wells Fargo", "routing_number": "123456" }, }] }, "destination_balance": "issuing_credit_reserved", "funding_type": "bank_transfer", }
FundingInstructions
から取得した銀行口座に電信送金または ACH クレジットで送金された資金は、リザーブ残高に入金されます。資金がアカウントに到着すると、Stripe は topup.
Webhook 通知と、更新されたリスク限度額と資金リザーブ額を表す issuing_
Webhook イベントを送信します。Stripe は電信送金をさらに遅らせることはなく、通常は標準の電信送金タイムラインに従います。
{ "id": "tu_XYZ", "object": "topup", "amount": 9000, "balance_transaction": "txn_123", "destination_balance": "issuing_credit_reserved" "created": 123456789, ... }
リザーブ残高を確認する
Balance API を使用すると、いつでもリザーブ残高を確認できます。
次のレスポンスの例を参照してください。
{ "object": "balance", "available": [ ... ], "connect_reserved": [ ... ], "issuing": { ... }, "issuing_credit_reserved": [ { "amount": 9000, "currency": "usd" } ], "livemode": true, "pending": [ ... ] }
期日を過ぎた資金調達義務を管理
past_
の FundingObligation
がある場合、Stripe はまず FundingObligation
を返済するためにリザーブから引き出します。Stripe は issuing_
Webhook を使用して通知し、FundingObligation
オブジェクトを更新してリザーブから返済された金額を表示します。リザーブが FundingObligation
の amount_
を完全にカバーできない場合、FundingObligation
は past_
のままになります。詳細と影響については、期日を過ぎた資金調達義務を参照してください。
リザーブから全額が支払われた FundingObligation
を以下に示します。
{ "id": "icfo_123" "amount_total": 95000000, // minor units "amount_outstanding": 0, "amount_paid": 95000000, // minor units "amount_paid_from_reserve": 95000000, // minor units "currency": "usd", "status": "paid", "due_at": "timestamp_on_t1", "paid_at": "timestamp_of_payment_with_reserve", "owed_to": "stripe", "grace_period_ends_at": "timestamp_on_t2", …, }
Stripe は、リザーブ残高から Issuing 残高への資金の自動送金を表す BalanceTransfer
オブジェクトと関連する BalanceTransactions
を提供します。
次のレスポンスの例を参照してください。
{ "id": "btr_1MinsBCq7itcH1tbDkk4sY8w", "object": "balance_transfer", "amount": 10000, "currency": "usd", "destination_balance": { "issuing": { "balance_transaction": "txn_123_inbound" }, "type": "issuing" }, ... "source_balance": { "issuing_credit_reserved": { "balance_transaction": "txn_123_outbound" }, "type": "issuing_credit_reserved" } }
次のレスポンスの例を参照してください。
{ "id": "txn_123_outbound", "object": "balance_transaction", "amount": 100, "currency": "usd", ... "type": "balance_transfer_outbound", "balance_type": "issuing_credit_reserved", "reporting_category": "issuing_credit_reserved_funds" } { "id": "txn_123_inbound", "object": "balance_transaction", "amount": 100, "currency": "usd", ... "type": "balance_transfer_inbound", "balance_type": "issuing", "reporting_category": "issuing_credit_reserved_funds" }
リザーブ残高から資金を入金する
Stripe は、リザーブ残高からの資金の入金をサポートしています。これは、資本効率を高めるために、支出を減らす前に current_
を下げるために行う場合があります。source_
を issuing_
に設定した v1/payout
エンドポイントを使用できます。
注意
これは、Stripe が Issuing 残高に資金を追加するために使用するさまざまな手順とは異なります。リザーブの口座情報の destination_
には issuing_
が設定されます。
curl https://api.stripe.com/v1/payouts \ -u "sk_**:" \ -d amount=100000000 \ -d currency=usd \ -d source_type=issuing_credit_reserved
入金を作成すると、Stripe は直ちに Webhook を送信し、Issuing のクレジットリザーブ残高に作成された入金が反映されていることを示します。次のレスポンスの例を参照してください。
curl https://api.stripe.com/v1/balance -u "sk_**:" -H "Stripe-Version: 2024-06-20; issuing_credit_beta=v2" { // other fields, "issuing_credit_reserved": [ { "amount": 1233333300, "currency": "usd" } ], }
credit policy オブジェクトには最新のリスク限度額が反映され、新しいリスク限度額を通知する issuing_
Webhook を受信します。
次のレスポンスの例を参照してください。
curl https://api.stripe.com/v1/issuing/credit_policy -u "sk_***:" -H "Stripe-Version: 2024-06-20; issuing_credit_beta=v2" { "object": "issuing.credit_policy", "current_exposure_limit_amount": 11359999920 , "reserve_multiplier_decimal": "2.4", "max_exposure_limit_amount": 13133333300, "funded_reserve_amount": 4733333300, // other fields }
次のレスポンスの例を参照してください。
{ "object": { "object": "issuing.credit_policy", "credit_period_ends_on_days": null, "credit_period_interval": "day", "credit_period_interval_count": 1, "current_exposure_limit_amount": 240, "days_until_due": 0, "exposure_limit_currency": "usd", "funded_reserve_amount": 200, "last_effective_attributes": { "credit_period_ends_on_days": null, "credit_period_interval": "day", "credit_period_interval_count": 1, "current_exposure_limit_amount": 103, "days_until_due": 0, "effective_until": 1728763199, "max_exposure_limit_amount": 103, "reserve_multiplier_decimal": "1.300", "status": "active" }}}
上記の例では、火曜日から金曜日の 10:00 UTC より前に入金リクエストを送信した場合、電信送金は同営業日の終わりまでに行われます。この締め日以降に入金リクエストを送信すると、翌営業日の終わりまでに支払いが行われる可能性が高くなります。月曜日または休日の週末の後には、さらに 1 日の遅延が発生します。10:00 UTC より前に入金を開始した場合でも、電信送金は、翌営業日の翌日の終わりまでに行われます。
カードプログラムの利用可能な支出額
カードプログラムで使用できる金額を示すフィールドまたは残高を追加するには、次の式を使用します。
利用可能なクレジット = max_ + Issuing 残高 (リスク限度額で許可されている追加支出のため、Issuing 残高がマイナスになる可能性があります) |
事後資金調達のときにオーソリが拒否される
事後資金調達をすると、以下の理由によりオーソリが拒否されることがあります。
FundingObligations
がpast_
です。due max_
を超えましたexposure_ limit_ amount
期日を過ぎた資金調達義務の拒否
FundingObligation
が past_
で、FundingObligation
の grace_
で定義されている猶予期間を過ぎている場合、Stripe ではオーソリを拒否します。grace_
を確認するには、次の例をご覧ください。
{ "id": "icfo_123", "amount_total": 95000000, // minor units "amount_outstanding": 95000000, // minor units "amount_paid": 0, "currency": "usd", "status": "past_due", "due_at": "timestamp_on_t1", "paid_at": nil, "owed_to": "stripe", "grace_period_ends_at": "timestamp_on_t2", ..., }
猶予期間が過ぎると、Stripe Issuing はオーソリを拒否し、以下の issuing_
イベントを送信します。
{ "id": "iauth_123", "object": "issuing_authorization", "approved": false, ..., "status": "closed", "request_history": [ { "amount": 100, // minor units "approved": false, "reason": "past_due_funding_obligation_to_stripe", ..., } ] }
最大リスク限度額を理由に拒否される
Stripe は、max_
を満たすか超えると、すぐにオーソリの拒否を開始します。リザーブを追加して限度額を引き上げ、支払い拒否を回避できます。
max_
を超えると、Stripe Issuing はオーソリを拒否し、以下の issuing_
イベントを送信します。
{ "id": "iauth_123", "object": "issuing_authorization", "approved": false, ..., "status": "closed", "request_history": [ { "amount": 100, // minor units "approved": false, "reason": "platform_exposure_limit_exceeded", ..., } ] }
プラットフォームの事後資金調達に関するメール通知を管理する
Stripe は、事後資金調達に関する必須メール通知をいくつか送信します。残高通知設定で、以下のメール通知のしきい値を管理および設定できます。
- 未払いの
FundingObligation
を理由に Stripe が開始したリザーブ引き出しの通知。 - リザーブで賄うには不十分な場合に
FundingObligation
がpast_
になるという通知。due - マイナスの Issuing 残高が
max_
の 90% を超えたことの通知。exposure_ limit_ amount
必要に応じて、ダッシュボードでしきい値を設定して、プラットフォームのマイナスの Issuing 残高が current_
のパーセンテージしきい値を超えたときに通知を受け取ることができます。