# Stripe 残高で支払う

サブスクリプション料金を連結アカウントの Stripe 残高から直接回収します。

取引手数料について、詳細は [Connect の料金体系ページ](https://stripe.com/connect/pricing)をご覧ください。

Connect プラットフォームとして、連結アカウントの Stripe 残高に関連付けられた決済手段を作成できます。これにより、カードなどの外部決済手段ではなく、連結アカウントの利用可能残高から直接サブスクリプションの支払いを回収できます。

> Stripe 残高決済は、連結アカウントへのサブスクリプション決済にのみ使用できます。

## Stripe 残高での支払いの実装

この決済手段は、[Accounts V2](https://docs.stripe.com/connect/accounts-v2.md) のプレビューリリースの一部としてのみ使用できます。

## 利用資格

Stripe 残高での支払いには、以下の条件が適用されます。

- この決済手段は、プラットフォームによって管理され、`フル`[サービス利用規約のタイプ](https://docs.stripe.com/connect/service-agreement-types.md)に同意している有効な連結アカウントに対してのみ設定できます。
- この決済手段は、プラットフォームが Connect 経由で決済機能を提供している連結アカウントから、サブスクリプションの支払いを引き落とす場合のみ使用でき、その他の商品やサービスには使用できません。
- 決済処理を通じて獲得した資金のみが対象です。この決済手段ではチャージ資金を使用できません。
- Stripe 残高からの決済は、[Dynamic Payment Methods](https://docs.stripe.com/payments/payment-methods/dynamic-payment-methods.md) を使用している場合は利用できません。サブスクリプション決済を作成する際に、決済手段として Stripe 残高からの決済を明示的に指定する必要があります。

これらの制限によってユースケースが限定される場合は、[マーケットプレイスのクローズドループのリスパンドウォレット](https://docs.stripe.com/treasury/connect/examples/closed-loop-respend-wallet.md)をご検討ください。これにより、マーケットプレイスの消費者は [v2 金融口座](https://docs.stripe.com/treasury/connect/account-management/financial-accounts.md) に資金を保管して、SaaS 手数料以外の幅広い目的で再利用できるようになります。

#### 支払い方法のプロパティ

- **顧客の所在地**

  以下の国の連結アカウントは、Balance Pay を使用してプラットフォームへの決済を行うことができます。

  AT, BE, BG, CY, CZ, DE, DK, EE, ES, FI, FR, GR, HR, HU, IE, IT, LT, LU, LV, MT, NL, PL, PT, RO, SE, SI, SK, NO, CA, CH, GB, US, AU, SG

- **取引通貨**

  USD, CAD, GBP, EUR, CHF, NOK, CZK, DKK, HUF, PLN, RON, SEK, AUD, SGD

- **支払いの確定**

  ビジネス主導

- **支払い方法の種別**

  ウォレット

- **継続支払い**

  Billing が必要

- **入金タイミング**

  - 国内決済: 即時
  - 国際決済: T+1

- **Connect のサポート**

  Connect が必要

- **不審請求の申し立てに関するサポート**

  いいえ

- **手動キャプチャーのサポート**

  いいえ

- **返金 / 一部返金**

  可 / 可

#### 事業所在地

以下の国の Connect プラットフォームでは、Stripe 残高での支払いを現地通貨決済で受け付けることができます。

- AT
- BE
- BG
- CA
- CH
- CY
- CZ
- DE
- DK
- EE
- ES
- FI
- FR
- GB
- GR
- HR
- HU
- IE
- IT
- LI
- LT
- LU
- LV
- MT
- NL
- NO
- PL
- PT
- RO
- SE
- SI
- SK
- US

#### 製品サポート

- Connect
- Subscriptions
- Invoicing

### 連結アカウントから必要な承認

Stripe 残高から支払いを回収する前に、連結アカウントから同意を得る必要があります。次の文言を使用して連結アカウントに通知し、Stripe 残高での支払いをオプトアウトするオプションを提供することをお勧めします。

\**Confirm (確認)**をクリックすることにより、 のウェブサイトおよび規約に従って、 のサービスの使用から生じる継続請求の未払い額を、Stripe アカウント残高から引き落とすことを  に許可します。

## 資金のタイミングと利用可能性

Stripe 残高から行われた支払いは直ちに確定されます。プラットフォームと同じ国の連結アカウントからの Stripe 残高での支払いは、当日決済 (T+0) で Stripe 残高で利用可能になります。別の国の連結アカウントからのクロスボーダー決済は、翌日決済 (T+1) で Stripe 残高で利用可能になります。

## 海外支払い

プラットフォームのデフォルト通貨以外の通貨で Stripe 残高支払いを作成できます。ただし、連結アカウントの Stripe アカウントにその通貨が含まれている場合に限ります。Stripe は、売上をプラットフォームアカウントのデフォルト通貨に自動的に換算します。

> 複数の通貨で残高からの決済を受け付けるには、各商品について、通貨ごとに[個別の価格を作成](https://docs.stripe.com/products-prices/manage-prices.md#create-price)します。たとえば、商品に USD の価格が設定されており、連結アカウントに EUR で請求する場合、その商品の EUR の価格を追加で作成します。

### 例外

オーストラリアおよびシンガポールのプラットフォームは、越境決済を受け付けることができません。そのため、オーストラリアのプラットフォームが Stripe 残高からの決済を受け付けられるのはオーストラリアの連結アカウントからのみであり、シンガポールのプラットフォームが受け付けられるのはシンガポールの連結アカウントからのみです。

### サポートされている通貨 (国別)

連結アカウントの Stripe 残高から支払いを回収する際、そのアカウントの所在国によって利用可能な通貨が決まります。次の表は、アカウントの Stripe 残高支払いでサポートされている通貨を国別に表したものです。

| 国 | デフォルトの通貨 | サポートされている通貨 |
| --- | --- | --- |
| アメリカ | USD | USD |
| カナダ | CAD | CAD、USD |
| スイス | CHF | CHF |
| イギリス | GBP | GBP、EUR |
| オーストリア | EUR | EUR |
| ベルギー | EUR | EUR |
| ブルガリア | EUR | EUR |
| キプロス | EUR | EUR |
| チェコ共和国 | CZK | CZK、EUR |
| ドイツ | EUR | EUR |
| デンマーク | DKK | DKK、EUR |
| エストニア | EUR | EUR |
| スペイン | EUR | EUR |
| フィンランド | EUR | EUR |
| フランス | EUR | EUR |
| ギリシャ | EUR | EUR |
| クロアチア | EUR | EUR |
| ハンガリー | HUF | HUF、EUR |
| アイルランド | EUR | EUR |
| イタリア | EUR | EUR |
| リトアニア | EUR | EUR |
| ルクセンブルク | EUR | EUR |
| ラトビア | EUR | EUR |
| マルタ | EUR | EUR |
| オランダ | EUR | EUR |
| ポーランド | PLN | PLN、EUR |
| ポルトガル | EUR | EUR |
| ルーマニア | RON | RON、EUR |
| スウェーデン | SEK | SEK、EUR |
| スロベニア | EUR | EUR |
| スロバキア | EUR | EUR |
| ノルウェー | NOK | NOK、EUR |
| オーストラリア | AUD | AUD |
| シンガポール | SGD | SGD |

## 返金

Stripe 残高での支払いが成功していた場合、カード決済と同じ方法で、その一部または全額を[返金](https://docs.stripe.com/refunds.md)できます。

## 取引の失敗

連結アカウントの Stripe 残高から支払いを行う場合、指定された取引通貨の利用可能残高が十分になければなりません。残高がない場合、PaymentIntent は支払い拒否コード `insufficient_funds` で失敗します。アカウントに別の通貨で資金が必要額ある場合でも、支払いは失敗します。

残高関連の支払いの失敗を管理するようにシステムを設定することをお勧めします。

### 残高支払いの失敗を回避する

連結アカウントの Stripe 残高での支払いは、利用可能な資金に依存するため、連結アカウントの残高を最大化する手順を実行することで、支払いの失敗を回避できます。

#### 連結アカウントの入金スケジュールを調整する

入金スケジュールをサブスクリプションの請求サイクルに合わせて調整します。たとえば、毎月 1 日にサブスクリプション料金を請求し、毎週月曜日に入金をスケジュール設定する場合、月曜日が多い月は入金額が多くなります。これらの月は、入金の少ない月よりも利用可能な残高が少なくなり、支払いが失敗する可能性が高くなります。

入金による決済の失敗を回避する別の方法として、サブスクリプションの決済前に手動入金に変更できます。各サブスクリプション決済の一定期間前に、連結アカウントに十分な残高がある場合は[手動入金](https://docs.stripe.com/connect/manage-payout-schedule.md)に切り替えて、自動入金によってアカウントが清算される前にサブスクリプションの決済が行われるようにします。サブスクリプションの決済後に、自動入金を再開します。

#### 連結アカウントの最低残高を設定する

アカウントの最低残高を定義することで、自動入金によって連結アカウントの利用可能残高が一定額を下回るのを防ぐことができます。

連結アカウントごとの最小残高は、[Balance Settings API](https://docs.stripe.com/payouts/minimum-balances-for-automatic-payouts.md#minimum-balances-platforms) を使用してプログラムで設定できます。または、ダッシュボードで連結アカウントごとに手動で最小残高を設定することもできます。

1. ダッシュボードでアカウントを見つけます。
2. アカウントのオーバーフローメニュー (⋯) から、[…のダッシュボードを表示](https://docs.stripe.com/connect/dashboard/managing-individual-accounts.md#view-the-dashboard-as-a-connected-account)を選択します。
3. 歯車のアイコンをクリックし、**設定**を選択します。
4. アカウント設定で**ビジネス**をクリックします。
5. **外部の入金口座とスケジュール設定**タブを選択します。
6. **支払い残高に最低金額を保持する**をオンにして、金額を入力します。

### 残高支払いの失敗に対応する

[Webhook](https://docs.stripe.com/webhooks.md) と[イベントの送信先](https://docs.stripe.com/billing/subscriptions/webhooks.md#events)を設定して、サブスクリプションの支払いに関する通知を受信します。`invoice.payment_failed` イベントをリッスンして、支払いの失敗を特定します。支払いに失敗したときは、以下のようになります。

- PaymentIntent のステータスが `requires_action` に変わります。
- 現在の請求書のサブスクリプションステータスは `incomplete` のままです。
- サブスクリプションは引き続き請求書を生成しますが、請求書は `draft` ステータスのままです。

#### 自動での再試行

継続支払いのサブスクリプション請求書で利用可能な残高が不十分なために残高決済に失敗した場合は、[再試行を有効にします](https://dashboard.stripe.com/revenue_recovery/retries)。自動再試行では、残高不足の失敗後に 2 回の決済試行がスケジュールされます。

- 最初の再試行は、決済の失敗から少なくとも 24 時間後に行われます。
- 必要に応じて、2 回目の再試行は、最初の再試行の次の日曜日に行われます。

この再試行スケジュールは、連結アカウントが Stripe 残高により多くの資金を蓄積し、スケジュールされた入金との競合を回避できるようにすることを目的としています。

追加手数料なしで任意の金額の再試行を有効にできます。

#### 手動で再試行する

利用可能な残高が不足しているために Stripe 残高からの決済が失敗した場合は、次の手順に従って手動で再試行できます。

1. 連結アカウントの入金スケジュールの期間を `manual` に設定します。
2. 次回連結アカウントに入金される支払いをリッスンしてから、[アカウントの利用可能な残高を確認](https://docs.stripe.com/api/balance/balance_retrieve.md)します。
3. 利用可能な残高がサブスクリプション料金以上の場合は、未払い請求書の決済手段を `stripe_balance` に設定して再試行します。それ以外の場合は、利用可能な残高が請求書の支払いに十分になるまで、支払いのリッスンを続けます。
4. 支払いが成功したら、連結アカウントの通常の入金スケジュールに戻します。

失敗した Stripe 残高での支払いを再試行する代わりに、別の決済手段を[請求書で直接指定](https://docs.stripe.com/billing/collection-method.md#set-collection-method-invoice)して、試すことができます。また、連結アカウントが自身の[サブスクリプションの決済手段を更新](https://docs.stripe.com/billing/subscriptions/payment-methods-setting.md#update-payment-method)できるようにするフローを実装することもできます。

## レポートと決済の追跡

連結アカウントの Stripe 残高を使用して行われる支払いでは、プラットフォームと連結アカウントの両方で支払い情報を反映した取引データが生成されます。

プラットフォームでは、決済によって正の金額の Charge と BalanceTransaction が作成されます。BalanceTransaction には、次の値が含まれます。

- `reporting_category`: `charge`
- `source`: Charge オブジェクト ID
- `type`: `payment`

連結アカウントでは、決済によって負の金額と次の値を持つ BalanceTransaction のみが作成されます。

- `description`: "Stripe balance payment - " + PaymentIntent からの説明
- `reporting_category`: `stripe_balance_payment_debit`
- `source`: null
- `type`:
  - 決済の場合: `stripe_balance_payment_debit`
  - 返金の場合: `stripe_balance_payment_debit_reversal`
