# 利用可能なクレジットと資金のフロー 資金のフローと、利用可能なクレジット金額のフィールドを使用してオーソリの拒否を防ぐ方法をご紹介します。 顧客がカードに基づく取引を行うか、お客様がクレジット調整またはデビット調整を記録するたびに、連結アカウントの利用可能なクレジットが変化します。前述の Gymbox の 50 USD の特典クレジットの例の場合、Barbell の利用可能なクレジットは、特典のクレジット調整を適用した後で 50 USD 増えています。アカウントの貸方元帳を取得して、増額を確認し、Barbell の最新の利用可能なクレジットを決定できます。このためには次のコマンドを使用します。 ```curl curl https://api.stripe.com/v1/issuing/credit_ledger \ -u "<>:" \ -H "Stripe-Version: 2026-05-27.preview; issuing_credit_beta=v1" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" ``` レスポンス例は以下の通りです。 ```json { "credit_limit": 100000, "amount_pending": 10000, "obligations": { "accruing": 5000, "unpaid": 15000 }, "credit_available": 97000, "prefunded_available": 0, "currency": "usd", "livemode": false } ``` Stripeでは、`credit_ledger` エンドポイントを呼び出す際に返される `credit_available` フィールドを使用することをお勧めします。この方法では、支出可能なクレジットの残額を顧客に常に正確に示すことができます。`credit_available` と顧客の Issuing 残高によって、連結アカウントがいつでも支出できる金額が決定します。Stripe はこれを使用して、利用可能な資金に基づいて取引のオーソリリクエストの承認または拒否を決定します。 ## 利用可能なクレジット不足によるオーソリの拒否 [CreditPolicy](https://docs.stripe.com/api/issuing/credit_policy.md) が設定された連結アカウントで行われたオーソリは、次の理由で拒否されることがあります。 - 連結アカウントが利用可能なクレジット限度額を超えて支出しようとしている。この場合、連結アカウントに未払いの FundingObligation があり、利用可能なクレジットが減っていることがあります。オーソリの拒否を防止するために、必ず連結アカウントの FundingObligation を最新の状態に維持してください。 - 利用可能なプラットフォームの Issuing アカウントがゼロになり、利用可能な連結アカウントの Issuing 残高もゼロになっている。支払い拒否を回避するために、Issuing アカウントに十分な資金をトップアップしてください。 ## 資金のフローを追跡する 連結アカウントが入金口座を利用できるようにするのは必須ではありませんが、連結アカウントがプラットフォームから提供された資金を使用する場合は、作成されたオーソリ、取引、送金の状態の追跡が必要になる場合があります。 次の開始状態を想定します。 | アカウント | Issuing 残高 | | --------------------------------- | ---------- | | Gymbox の Issuing アカウント (プラットフォーム) | 70 USD | | Barbell の Issuing 残高 (連結アカウント) | 0 USD | ### オーソリ Barbell には、Gymbox で `credit_limit_amount` が 100 USD の[CreditPolicy](https://docs.stripe.com/api/issuing/credit_policy.md) 設が設定されています。Barbell が 10 USD を使用すると、Barbell のアカウントに 10 USD のオーソリが発生します。 ```json { "id": "iauth_1JVXl82eZvKYlo2CPIiWlzrn", "object": "issuing.authorization", "amount": 1000, "currency": "usd", "approved": true, "authorization_method": "online", "balance_transactions": [ { "id": "txn_1234XYZ", "object": "balance_transaction", "amount": -1000, "type": "issuing_authorization_hold", ... } ], "card": {...}, ... } ``` 同時に、同じ金額の Gymbox の Issuing 残高が保留され、Gymbox の他の連結アカウントが取引に使用できないように資金がリザーブされます。 ```json { "id": "txn_1Mgr6fXpL7qsPGZtDwrMkq3S", "object": "balance_transaction", "amount": -1000, "available_on": 1677682692, "created": 1677682692, "currency": "usd", "description": "Platform hold for authorization (account: acct_1MgC5JRcH5icH3Nz, authorization: iauth_1Mgr6dRcH5icH3NzezZCHnJF)", "exchange_rate": null, "fee": 0, "fee_details": [], "net": -1000, "reporting_category": "issuing_authorization_hold", "source": { "id": "iph_1Mgr6eXpL7qsPGZtAMb7x0N6", "object": "issuing.platform_hold", "amount": 1000, "currency": "usd", "originating_account": "acct_1MgC5JRcH5icH3Nz", "originating_authorization": "iauth_1Mgr6dRcH5icH3NzezZCHnJF", "originating_balance_transaction": "txn_1Mgr6dRcH5icH3NzYGRkgcn7" }, "status": "available", "type": "issuing_authorization_hold" } ``` 現在の残高: | アカウント | Issuing 残高 | | --------------------------------- | ---------- | | Gymbox の Issuing アカウント (プラットフォーム) | 60 USD | | Barbell の Issuing 残高 (連結アカウント) | -10 USD | ### 送金と取引のキャプチャー Issuing オーソリがキャプチャーされ、Issuing 取引が作成される前に、売上は連結アカウントに送金されます。その後、プラットフォームからリザーブがリリースされます。 Barbell のアカウントで、オーソリが更新されクローズされ、保留されていた資金がリリースされます。 ```json { "id": "iauth_1JVXl82eZvKYlo2CPIiWlzrn", "object": "issuing.authorization", "amount": 1000, "currency": "usd", "approved": true, "authorization_method": "online", "balance_transactions": [ { "id": "txn_1234XYZ", "object": "balance_transaction", "amount": -1000, "type": "issuing_authorization_hold", ... }, { "id": "txn_4t355646t54w2", "object": "balance_transaction", "amount": 1000, "type": "issuing_authorization_release" } ], "card": {...}, "status": "closed", "transactions": [ { "id": "ipi_1032HU2eZvKYlo2CEPtcnUvl", "object": "issuing.transaction", "amount": -1000, "authorization": "iauth_1JVXl82eZvKYlo2CPIiWlzrn", "balance_transaction": "txn_1345r1KCr4trgtrg0WfNdUCbG1w", ... } ] } ``` プラットフォームのアカウント保留されていた資金もリリースされます。 ```json { "id": "txn_1Mgr6fXpL7qsPGZtDwrPz7bA", "object": "balance_transaction", "amount": 1000, "available_on": 1677682692, "created": 1677682692, "currency": "usd", "description": "Released platform hold for authorization (account: acct_1MgC5JRcH5icH3Nz, authorization: iauth_1Mgr6dRcH5icH3NzezZCHnJF)", "exchange_rate": null, "fee": 0, "fee_details": [], "net": 1000, "reporting_category": "issuing_authorization_hold", "source": { "id": "iph_1Mgr6eXpL7qsPGZtAMb7m8Z3", "object": "issuing.platform_hold", "amount": -1000, "currency": "usd", "originating_account": "acct_1MgC5JRcH5icH3Nz", "originating_authorization": "iauth_1Mgr6dRcH5icH3NzezZCHnJF", "originating_balance_transaction": "txn_1Mgr6dRcH5icH3NzYGR7bA4c" }, "status": "available", "type": "issuing_authorization_hold" } ``` Stripe は Gymbox から Barbell の Issuing アカウントに資金を送金し、[Transfer (送金)](https://docs.stripe.com/api/transfers.md) オブジェクトが作成されます。 ```json { "id": "tr_3JeQsp2eZvKYlo2C13DagtB0", "object": "transfer", "amount": 1000, "amount_reversed": 0, "balance_transaction": "txn_1032HU2eZvKYlo2CEPtcnUvl", "created": 1646912059, "currency": "usd", "description": null, "destination": "acct_1032D82eZvKYlo2C", "livemode": true, "metadata": {}, "reversals": { "object": "list", "data": [], "has_more": false, "url": "/v1/transfers/tr_3JeQsp2eZvKYlo2C13DagtB0/reversals" }, "reversed": false, "source_transaction": null, "issuing_transaction": "ipi_1032HU2eZvKYlo2CEPtcnUvl", "metadata": {}, "source_balance": { "type": "issuing", }, // New destination_balance returned field links to the BT on the connected account side "destination_balance": { "type": "issuing", "issuing": { "balance_transaction": "txn_123", }, }, // ... other fields ... } ``` 保留、リリース、送金は Stripe が関連する Issuing 取引を作成する前に発生します。現在の残高は次のようになります。 | アカウント | Issuing 残高 | | --------------------------------- | ---------- | | Gymbox の Issuing アカウント (プラットフォーム) | 60 USD | | Barbell の Issuing 残高 (連結アカウント) | 0 USD | 取引に[元のオーソリ](https://docs.stripe.com/issuing/purchases/transactions.md?issuing-capture-type=force_capture)がなく、連結アカウントに充当する十分な残高がない場合でも、プラットフォームの残高送金と取引作成のフローは発生します。 ## 返金 連結アカウントが返金を受け取ると、Stripe はその返金が、連結アカウントの残高またはプラットフォームのアカウントから資金追加された取引に関連しているかどうかを特定します。連結アカウントの残高から資金追加されたと判断すると、その売上は連結アカウントの残高に戻されます。取引がプラットフォームのアカウントから (たとえば、連結アカウントのクレジット限度額から) 資金追加されている場合、その金額分、連結アカウントの `FundingObligation` が減ります。プラットフォームは連結アカウントに代わって取引の金額を Stripe にすでに支払っているため、返金はプラットフォームのアカウントに送られます。 Barbell に 100 USD の `FundingObligation` があるとします。その金額が返金されると、次のようになります。 - Barbell の `FundingObligation` が 100 から 0 USD に減る - 100 USD が Gymbox の Issuing アカウントに送られ、プラットフォーム残高が 100 USD 増える `FundingObligation` の `amount_total` はマイナスになる場合があります。これは、クレジット期間中の取引が返金のみでそれ以外の支払が発生しなかった場合に起こるものです。`FundingObligation` のステータスは `Needs refund` になります。`FundingObligation` がマイナスになるのは、カード支出があるのに、返金総額の方が支出額を上回っている場合です。 ### 不審請求の申請 顧客が連結アカウントでのクレジット支出取引に対して不審請求の申請を行った場合、[Issuing の不審請求の申請](https://docs.stripe.com/issuing/purchases/disputes.md)で記載されているプロセスに沿って進められます。不審請求の申請で主張が認められなかった場合は、何も行われません (連結アカウントに入金されません)。不審請求の申請で主張が認められた場合は、[返金セクション](https://docs.stripe.com/issuing/credit/manage-account-obligations/available-credit.md#refunds)で説明されているのと同様に連結アカウントに入金されます。 ## オーソリの拒否 `CreditPolicy` が設定された連結アカウントで行われたオーソリは、次の理由で拒否されることがあります。 - 連結アカウントが利用可能なクレジット限度額を超えて支出しようとしている。この場合、連結アカウントに未払いの `FundingObligations` があり、利用可能なクレジットが減っていることがあります。オーソリの拒否を防止するために、必ず連結アカウントの `FundingObligations` を最新の状態に維持してください。 - 利用可能なプラットフォームの Issuing アカウントがゼロになり、利用可能な連結アカウントの Issuing 残高もゼロになっている。支払い拒否を回避するために、Issuing アカウントに十分な資金をトップアップしてください。