# Stripe の実装に後から資金を追加する カード支出用に Stripe に後から資金を追加する方法をご紹介します。 Connect プラットフォームまたはダイレクトユーザーとして、カード支出でマイナスの Issuing 残高を累積し、Stripe に*後から資金を追加* (Post-funding is the ability to use Stripe Credit to fund Issuing card spend after it's accrued, rather than by pre-funding)できるようになりました。カード支出の発生前に Issuing 残高に前もって資金を追加するのではなく、カードのオーソリがネットワークによってキャプチャーされた「後」に (通常、オーソリ作成の 1 日後)、Issuing 残高に資金を追加できます。Stripe は毎日、プラットフォームに債務額を通知します。プラットフォームでは、期限までに Stripe に同日の電信送金を行えます。延滞手数料や追加ペナルティーが課されないように、期限 (通常、20:00 UTC) までに Stripe に資金を追加する必要があります。 ## Connect Connect プラットフォームに後から資金を追加する場合、連結アカウントの動作は次の説明と同様です。 - [連結アカウントを設定する](https://docs.stripe.com/issuing/credit/connect-credit-setup.md) - [クレジット規約を管理する](https://docs.stripe.com/issuing/credit/manage-credit-terms.md) - [アカウントの債務を管理する](https://docs.stripe.com/issuing/credit/manage-account-obligations.md) プラットフォームと連結アカウントの関係は変わりません。主な違いは、連結アカウントの合計支出額の事前入金が必要になる代わりに、後から資金を追加できることです。 ## Before you begin - [リザーブ](https://docs.stripe.com/issuing/funding/post-fund.md#reserve)の設定 (リザーブは業務の不履行が生じた場合にのみ利用されます) - 銀行から電信送金する機能 ## カードプログラムの CreditPolicy Stripe ではカードプログラムの `CreditPolicy` を設定します。これには、債務の返済や規約に関する重要な情報が含まれます。カードプログラムの `CreditPolicy` は、[連結アカウントに対して設定した `CreditPolicy`](https://docs.stripe.com/issuing/credit/connect-credit-setup.md#activate-creditpolicy) とは異なります。カードプログラムの `CreditPolicy` は Stripe が設定して制御します。次の重要なフィールドが定義されます。 - `credit_limit_amount`: すべての連結アカウント (またはダイレクトユーザーの場合はアカウント) 全体で支出できる最大合計金額です。この設定は Stripe で決定されるため、更新をリクエストする場合は、Stripe に連絡する必要があります。これは、*エクスポージャー限度額* (The exposure limit is the maximum aggregate amount that can be spent beyond pre-funded balances)とも呼ばれます。 - `required_reserve_amount`: Stripe でリザーブとして保持する必要がある最小金額。 - `credit_period_interval` および `credit_period_interval_count`: これらはいずれも、カード支出が期限になるまでの期間を表します。カードプログラムのクレジット間隔が 1 日の場合、毎日 Stripe に返済することになります。 `GET CreditPolicy` API エンドポイントを呼び出すことで、カードプログラムの `CreditPolicy` の詳細を取得できます。 ```curl GET /v1/issuing/credit_policy ``` ### レスポンスの例 ```json { "livemode": true, "credit_limit_amount": 10000, // minor units "credit_limit_currency": "usd", "required_reserve_amount": 9000, // minor units "reserve_currency": "usd", "status": "active", "credit_period_interval": "day", "credit_period_interval_count": 1 // other fields for upcoming/last effective attributes } ``` ## カードプログラムの FundingObligation `CreditPolicy` では後から資金を追加するプログラムの全体的なパラメーターが定義されます。一方、`FundingObligation` は、すべての連結アカウント (またはダイレクトユーザーの場合はアカウント) でのカード支出による、Stripe に対するプラットフォームの現在の債務を表します。 Stripe は毎朝、`issuing_funding_obligation.updated` Webhook イベントを送信します。このイベントには、Stripe に対するプラットフォームの債務を表す `FundingObligation` が含まれています。特定の `FundingObligation` の `amount_outstanding` の値は、その日の債務額を表します。 ```json { "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_at` フィールドが含まれています。 ```json { "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` の `status` が `past_due` に変更され、`issuing_funding_obligation.updated` Webhook イベントがトリガーされます - Stripe との契約に記載されているように、支払い遅延手数料が課されます 一定の期間に支払い遅延が複数回生じると、追加のペナルティーがプラットフォームに課されることがあります (たとえば、カードプログラムのエクスポージャー限度額の減額)。 ## Stripe に対する債務額を確認する Stripe は土日や祝日も含めて毎日、カードプログラムの `FundingObligation` を送信します。アカウントを最新状態に保って延滞手数料やペナルティーが生じないようにするために、数式を使用して、`unpaid` と `past_due` のすべての `FundingObligation` の `amount_outstanding` 値に基づいて毎日総債務額を計算することをお勧めします。 | | | | | `total_amount_outstanding` = sum(unpaid FundingObligations)1 + sum(past_due FundingObligations)2 | 1_「sum(unpaid FundingObligations)」_は、`status=unpaid` のすべての `FundingObligations` の合計です。 2_「sum(past_due FundingObligations)」_は、`status=past_due` のすべての `FundingObligations` の合計です。 ### 土日と祝日の残高の期限は、翌営業日になります 平日に作成された `FundingObligation` の期限は同日ですが、土日または祝日に作成された `FundingObligation` の期限は翌営業日になります。通常の週末の場合、月曜日に 3 つの `FundingObligations` が期限となるため、Stripe に対する総債務額を正しく集計する必要があります。 ## FundingObligation を返済する 毎日 `due_at` タイムスタンプに基づいて総債務額分の資金を追加するには、次のいずれかの方法を使用します。 - **同日の電信送金**: 銀行から Stripe Issuing 残高への同日の電信送金を開始して、`FundingObligation` を返済できます。[FundingInstructions (口座情報照会) API](https://docs.stripe.com/api/issuing/funding_instructions.md) を使用して、Issuing 残高の口座と金融番号を取得し、それを電信送金の入金先として使用します。 - **残高送金**: アメリカ国内では、ダッシュボードまたは API を使用して Stripe Payments 残高から Issuing 残高に瞬時に資金を移動して `FundingObligation` を返済できます (API の利用をご希望の場合は、Stripe にご連絡ください)。 - **事前に資金を追加した Issuing 残高**: Stripe では、事前に追加された資金や前日に過剰に追加した資金を次の `FundingObligation` に充当します。 Stripe では、`FundingObligation` の債務額を全額受け取ると、そのステータスと金額を更新し、`issuing_funding_obligation.updated` Webhook イベントをトリガーします。 ```json { "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_funding_obligation.updated` Webhook イベントに反映されます。 ```json { "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_at` の期限を過ぎても残高が未払いのままの場合、`status` が `past_due` になり、`issuing_funding_obligation.updated` Webhook イベントが再度トリガーされます。 ## FundingObligation の取引を取得する `FundingObligation` に関連した取引のリストを取得するには、すべての取引を一覧表示する API リクエストで次のいずれかのパラメーターを渡します。 - ダイレクトユーザー向けの [funding_obligation_for_account](https://docs.stripe.com/api/issuing/transactions/list.md#list_issuing_transactions-funding_obligation_for_account) パラメーター - プラットフォームユーザー向けの [funding_obligation_for_platform](https://docs.stripe.com/api/issuing/transactions/list.md#list_issuing_transactions-funding_obligation_for_platform) パラメーター ### ダイレクト ```curl curl -G https://api.stripe.com/v1/issuing/transactions \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview; issuing_credit_beta=v1" \ -d funding_obligation_for_account=ifo_123 ``` #### レスポンスの例 ```json { "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](https://docs.stripe.com/api/issuing/transactions/list.md#list_issuing_transactions-funding_obligation_for_platform) を使用してプラットフォームの `FundingObligation` でクエリするか、連結アカウントの `FundingObligation` がわかる場合は [funding_obligation_for_account](https://docs.stripe.com/api/issuing/transactions/list.md#list_issuing_transactions-funding_obligation_for_account) を使用します。 ```curl curl -G https://api.stripe.com/v1/issuing/transactions \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview; issuing_credit_beta=v1" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d funding_obligation_for_platform=ifo_123 ``` #### レスポンスの例 ```json { "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 は Stripe が所有・管理するアカウントでリザーブを保持しています。これは未払いの売上に対するセキュリティを目的としており、`past_due` `FundingObligations` を返済する際にリザーブから引き出します。Stripe がリザーブから引き出した場合、延滞手数料をご請求することがあります。さらに、リザーブを使用することになった場合、Stripe はプラットフォームの `credit_limit_amount` を減額したり、リザーブ要件を引き上げる可能性があります。このような事態を避けるには、クレジット連携の `FundingObligation` の `due_at` タイムスタンプより前に、電信送金または残高送金の方法で、Stripe Issuing 残高に資金を追加してください。 ### リザーブ要件を確認する `CreditPolicy` で必要な `required_reserve_amount` を確認できます。後から資金を追加できるようにするには、この金額をリザーブに送る必要があります。 ```curl GET /v1/issuing/credit_policy ``` ### レスポンスの例 ```json { "livemode": true, "credit_limit_amount": 10000, // minor units "credit_limit_currency": "usd","required_reserve_amount": 9000, // minor units "reserve_currency": "usd", "status": "active", "credit_period_interval": "day", "credit_period_interval_count": 1 // other fields for upcoming/last effective attributes } ``` ### リザーブ残高に資金を追加する Stripe は、リザーブ残高への資金の送金をサポートしています。リザーブのアカウント詳細は `FundingInstruction` で確認できます。ここには、資金の送金を開始するための銀行口座および送金情報も含まれます。 > これは、Stripe が Issuing 残高に資金を追加するために使用するさまざまな手順とは異なります。リザーブの口座情報の `destination_balance` には `issuing_credit_reserved` が設定されます。 ```curl curl https://api.stripe.com/v1/issuing/funding_instructions \ -u "<>:" \ -d currency=usd \ -d funding_type=bank_transfer \ -d "bank_transfer[type]=us_bank_transfer" \ -d destination_balance=issuing_credit_reserved ``` #### レスポンスの例 ```json { "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 クレジットなどの方法で) 送金した資金は、リザーブ残高に入金されます。入金が完了すると、`topup.succeeded` Webhook 通知が届きます。 ```json { "id": "tu_XYZ", "object": "topup", "amount": 9000, "balance_transaction": "txn_123", "destination_balance": "issuing_credit_reserved", "created": 123456789, ... } ``` ### リザーブ残高を確認する [/v1/balance API](https://docs.stripe.com/api/balance.md) を使用すると、任意の時点におけるリザーブ残高を確認できます。 ```curl curl https://api.stripe.com/v1/balance \ -u "<>:" ``` #### レスポンスの例 ```json { "object": "balance", "available": [ ... ], "connect_reserved": [ ... ], "issuing": { ... },"issuing_credit_reserved": [ { "amount": 9000, "currency": "usd" } ], "livemode": true, "pending": [ ... ] } ``` ### Stripe によるリザーブの引き出し `past_due` の `FundingObligation` がある場合、Stripe はまずリザーブから資金を引き出して `FundingObligation` を返済します。`issuing_funding_obligation.updated` Webhook を使用して通知し、`FundingObligation` オブジェクトが更新されて、リザーブによる返済額が表示されます。リザーブで `FundingObligation` の `amount_outstanding` 全額を返済できない場合、`FundingObligation` は `past_due` のままです。詳細と影響については、[Past Due Funding Obligations](https://docs.stripe.com/issuing/funding/post-fund.md#platform-fundingobligation) をご覧ください。 リザーブから全額が支払われた `FundingObligation` を以下に示します。 ```json { "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" … } ``` また、リザーブ残高から Issuing 残高に自動送金された資金を表す `BalanceTransfer` オブジェクト (および関連する `BalanceTransactions`) も表示されます。 ```curl curl https://api.stripe.com/v1/balance_transfers/btr_1MinsBCq7itcH1tbDkk4sY8w \ -u "<>:" ``` #### レスポンスの例 ```json { "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" } } ``` ```curl curl https://api.stripe.com/v1/balance_transactions \ -u "<>:" ``` #### レスポンスの例 ```json { "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 がお客様のリザーブから資金を引き出して `FundingObligation` を返済した場合、`CreditPolicy` に記載されている `reserve_amount` 以上の金額をリザーブに補填する必要があります。Stripe はリザーブの `FundingObligation` を生成し、リザーブの必要補填金額と期日を通知します。また、`issuing_funding_obligation.created` Webhook もお送りします。リザーブを補填するには、以前使用したものと同じリザーブ残高 `FundingInstruction` を使用して資金を追加する必要があります。`FundingObligation` の `due_at` タイムスタンプまでにリザーブを補填してください。 ```json { "id" : "fo_456", "object": "issuing.funding_obligation", "amount_outstanding": 10000, "amount_paid": 0, "amount_total": 10000, "currency": "usd", "status": "pending", "due_at": "timestamp_t1", "grace_period": "timestamp_t2", "balance_type": "issuing_credit_reserved" ... } ``` ### リザーブ要件の更新をリッスンする プログラムの拡大に伴い、必要なリザーブ金額が変更されることがあります。その場合は、`CreditPolicy` の `required_reserve_amount` フィールドが更新されます。プログラムの拡大が原因でリザーブ要件が引き上げられる場合は、エクスポージャー限度額も適切に拡大します。変更通知を受け取るには、`issuing_credit_policy.updated` Webhook をリッスンします。 #### リザーブ要件の増加 (`CreditPolicy` に記載のとおり) リザーブ要件が引き上げられた場合のプロセスは、リザーブを補填する際と同様です。リザーブの `FundingObligation` が届いたら、そこに記載されている時刻までに支払う必要があります。 ```json { "id" : "fo_321", "object": "issuing.funding_obligation", "amount_outstanding": 2000, "amount_paid": 0, "amount_total": 0, "currency": "usd", "status": "pending", "due_at": "timestamp_t1", "grace_period": "timestamp_t2", "balance_type": "issuing_credit_reserved" ... } ``` #### リザーブ要件の減少 (`CreditPolicy` に記載のとおり) リザーブ要件が引き下げられた場合、Stripe は余剰資金を Issuing 残高に送金します。今後の支出に充てるか、Issuing の実装に関連付けられた銀行口座に入金するか、ご自身で決めることができます。 #### 期日を過ぎたリザーブ義務 リザーブの資金追加義務が `past_due` (`due_at` 時刻を超過) になった場合、Stripe は以降の取引のオーソリを拒否します。リザーブへの支払いでお困りの場合、貴社のアカウントエグゼクティブに連絡をして、対応を依頼してください。 ## カードプログラムの利用可能な支出額 現在、Stripe ではカードプログラムで支出に利用可能な残高を示すフィールドまたは残高を用意していません。ただし、この値は次の式で計算できます。 | | | | | 利用可能なクレジット = `credit_limit_amount` + Issuing 残高 (エクスポージャー限度額によって追加の支出が許可されたことにより、Issuing 残高がマイナスになる場合があります) | ## 後から資金を追加する場合のオーソリの拒否 後から資金を追加する場合、以下の原因でオーソリが拒否されることがあります。 - `past_due` の `FundingObligations` - リザーブを補填しなかった場合 ### past_due FundingObligation による拒否 `FundingObligation` が `past_due` で、`FundingObligation` の `grace_period_ends_at` で定義されている猶予期間を過ぎている場合、Stripe ではオーソリを拒否します。`grace_period_ends_at` を確認するには、次の例をご覧ください。 ```json { "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": null, "owed_to": "stripe","grace_period_ends_at": "timestamp_on_t2", ... } ``` 猶予期間を過ぎると、Issuing でのオーソリは拒否されるようになり、以下が含まれた issuing_authorization.created イベントが送信されます。 ```json { "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 がリザーブから資金を引き出して `FundingObligation` の返済に充てた場合、リザーブを補填して `CreditPolicy` の `required_reserve_amount` に戻すための猶予期間 (通常、24 時間) が設定されます。猶予期間が満了するまでにリザーブを補填せずに支出を続けた場合、Stripe は Issuing でのオーソリを拒否し、次の `issuing_authorization.created` イベントを送信します。 ```json { "id": "iauth_123", "object": "issuing_authorization", "approved": false, // other fields... "status": "closed", "request_history": [ { "amount": 100, // minor units "approved": false, ..., "reason": "insufficient_reserve_balance", } ] } ``` ## プラットフォームの購入限度額の通知を有効にする [設定](https://dashboard.stripe.com/settings/issuing/balance-notifications)を使用し、メール通知を有効にすることで、プラットフォーム全体での総支出額に対する制限としてプラットフォームの購入限度額を監視することができます。プラットフォームの購入限度額は、[Platform CreditPolicy (プラットフォームの CreditPolicy)](https://docs.stripe.com/api/issuing/credit_policy.md) オブジェクトの [credit_limit_amount](https://docs.stripe.com/api/issuing/credit_policy/object.md#issuing_credit_policy_object-credit_limit_amount) 属性によって示されます。デフォルトでは、このメール通知は実装が本番環境で有効になったときに有効になり、しきい値は [Platform CreditPolicy](https://docs.stripe.com/api/issuing/credit_policy.md) オブジェクトで `credit_limit_amount` 属性の 25% に設定されます。利用可能な支出額が設定されたしきい値を下回るたびにアラートが届きます。 これらの通知を本番環境またはテスト環境で更新するには、以下を使用します。 1. [メール通知設定](https://dashboard.stripe.com/settings/issuing/balance-notifications)に移動します。 1. **Issuing の購入限度額**で、次の 2 つのタイプのアラートオプションから選択します。 - **通知なし**: このオプションを選択すると、すべての受取人に対してメール通知が無効になります。 - **Issuing の購入限度額のしきい値**: 入力フィールドを使用して、この値を更新します。この値はデフォルトで 25% に設定されています。 次の表は、`credit_limit_amount` が 100 USD に設定され、Issuing の購入限度額のアラートしきい値が 25% に設定されている場合のプラットフォームの利用可能な支出額を計算します (プラットフォームの Issuing 残高が -80 USD であると想定しています。) | | | | | 規約 | 決定方法 | プラットフォームの例 | | 利用可能な支出額のアラートしきい値 | `credit_limit_amount` にアラートしきい値を乗算します。 | 100 * 0.25 = 25 USD | | 現在の利用可能な支出額 | `credit_limit_amount` に現在の Issuing 残高を加算します (クレジット支出では Issuing 残高がマイナス)。 | 100 - 80 = 20 USD | | プラットフォームにメールで通知が届きます | 現在の利用可能な支出額が利用可能な支出額のしきい値を下回っている場合。 | プラットフォームにアラートが届きます | このメールアラートの受取人は、ユーザーのプロフィールの[メール設定](https://dashboard.stripe.com/settings/user)で **Issuing の購入限度額**を選択して設定できます。