# Payment Method Configurations API

Configurations API を使用して、連結アカウントの所有者が提供する支払い方法をより詳細に管理できるようにする方法をご紹介します。

Payment Method Configurations API を使用すると、連結アカウントの所有者は、それぞれの設定ページから支払い方法をオプトイン/オプトアウトできます。連結アカウントで有効になっている支払い方法を確認して、支払い方法を推薦し、関連する決済タイプを表示するように設定できます。

API を使用して自社用の支払い方法の設定 UI を構築するか、支払い方法の設定の埋め込みコンポーネントを使用できます。

> **埋め込み支払い方法設定コンポーネント**を使用すると、接続アカウントは Stripe ダッシュボードにアクセスすることなく、Checkout で提供する支払い方法を設定できます。[埋め込み支払い方法設定コンポーネント](https://docs.stripe.com/connect/supported-embedded-components/payment-method-settings.md)の詳細を確認し、利用可能になった際に通知を受け取ってください。

## プラットフォームレベルのデフォルト状態を設定する

Stripe ダッシュボードの[**連結アカウントの支払い方法を管理する**](https://dashboard.stripe.com/test/settings/payment_methods/connected_accounts)ページで、個々の支払い方法に対するプラットフォームレベルのデフォルトを設定し、デフォルトで有効にする支払い方法を編集します。

[ダッシュボード](https://dashboard.stripe.com/login) で右上隅にある歯車のアイコンをクリックし、**製品の設定**ページを開きます。**支払い**セクション内の**支払い方法**リンクをクリックします。
![ダッシュボードでの設定オプション](https://b.stripecdn.com/docs-statics-srv/assets/settings-api-dashboard.01bd465492acb49ada30fdda9e9f5d08.png)
![支払いの設定の支払い方法](https://b.stripecdn.com/docs-statics-srv/assets/settings-api-payment-methods.7824d81ee28dd2775b73d556da33d82a.png)

プラットフォームは、プラットフォームと連結アカウントの支払い方法を設定できます。**お客様のアカウント**の設定は、直接の支払いトラフィックに適用されます。たとえば、自社で構築済みの決済ページからプラットフォームの月額手数料をユーザーに請求する場合、**お客様のアカウント**の設定でそれらの決済を管理します。

**連結アカウント**の設定では、プラットフォーム上の連結アカウントが受け付けることができる支払い方法を管理できます。

プラットフォーム上のすべての連結アカウントに対してデフォルト状態を設定するには、**連結アカウント**の下にある**設定の編集**リンクをクリックします。
![自身のアカウントと連結アカウントの支払い方法の設定](https://b.stripecdn.com/docs-statics-srv/assets/settings-api-connected-accounts.ba46dc06c0684b481667e91cf4e3fcfd.png)

支払い方法ごとに、ドロップダウンを使用して希望の設定を選択します。

- **On by default**: 支払い方法はデフォルトで有効です。連結アカウントが有効と無効を切り替えることができます。
- **Off by default**: 支払い方法はデフォルトで無効です。連結アカウントが有効と無効を切り替えることができます。
- **ブロック**: すべての連結アカウントの支払い方法を無効にします。連結アカウントは有効にできませんが、プラットフォームは個々の連結アカウントに対してこれを上書きできます。

> デフォルトでは、Stripe はカード、Apple Pay、Google Pay など、一般的に使用される複数の決済手段を有効にします。
![支払い方法ごとに設定を構築する](https://b.stripecdn.com/docs-statics-srv/assets/settings-api-wallets.956b27fd0756e064d433aaa5999130fe.png)

## 連結アカウントに対する可用性および表示設定を決定する

連結アカウント ID を指定して Payment Method Configurations API を使用することで、特定の連結アカウントに関する決済手段の現在の状況を読み取ります。連結アカウントに複数の設定がある場合は、[Connect 設定](https://dashboard.stripe.com/settings/connect/onboarding-options/oauth)のアプリケーションの `client_id` で結果を絞り込むことができます。

> #### 複数の支払い方法の設定
> 
> 連結アカウントに対して支払い方法の設定を追加で作成した場合は、`is_default` プロパティで元の設定を確認できます。決済フローに[設定 ID を渡さない](https://docs.stripe.com/connect/multiple-payment-method-configurations.md#use-payment-method-configuration)場合、Stripe は支払いにデフォルトの設定を適用します。支払い方法の設定の `is_default` およびその他のプロパティの詳細については、[API リファレンス](https://docs.stripe.com/api/payment_method_configurations/object.md#payment_method_configuration_object-is_default)をご参照ください。

```curl
curl -G https://api.stripe.com/v1/payment_method_configurations \
  -u "<<YOUR_SECRET_KEY>>:" \
  -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \
  -d "application={{CLIENTAPPLICATION_ID}}"
```

```json
{
  "object": "list",
  "data": [
    {
      "id": ""{{PAYMENT_METHOD_CONFIGURATION_ID}}"",
      "object": "payment_method_configuration",
      "name": "Default",
      "active": true,
      "is_default": true,
      "livemode": false,
      "application": ""{{CLIENT_APPLICATION_ID}}"",
      "acss_debit": {
        "available": false,
        "display_preference": {
          "overridable": true,
          "preference": "off",
          "value": "off"
        }
      },
      "affirm": {
        "available": false,
        "display_preference": {
          "overridable": true,
          "preference": "off",
          "value": "off"
        }
      },
      "afterpay_clearpay": {
        "available": false,
        "display_preference": {
          "overridable": true,
          "preference": "off",
          "value": "off"
        }
      },
      ... additional payment methods
    }
  ],
  "has_more": false,
  "url": "/v1/payment_method_configurations"
}
```

成功すると、返されるリストには各決済手が表示され、可用性と表示設定を示す 2 つのパラメーターが含まれます。

- `available` は、[ケイパビリティ](https://docs.stripe.com/api/capabilities/object.md) の値 (`active`、`inactive`、`pending` または `unrequested`) と `display_preference` の値の組み合わせです。

  購入時にこの支払い方法を買い手に表示するかどうかを確認するには available フィールドを使用できます。available が `true` の場合、その支払い方法のケイパビリティは有効であり、`display_preference` は on です。available が `false` の場合は、その支払い方法に有効なケイパビリティがないか、`display_preference` が off であり、買い手の購入時にこの支払い方法は表示されません。実装を簡素化して、その他の機能を利用するには、購入時にこのパラメーターを自動的に読み取り、適切な支払い方法を買い手に表示する動的な支払い方法を使用します。

- `display_preference` には、`overridable`、`preference`、`value` の 3 つのコンポーネントがあります。

  - `overridable` は読み取り専用であり、上記で設定したデフォルトを連結アカウントの設定で上書きできるかどうかを示します。
  - `preference` は書き込み可能であり、連結アカウントの設定を保存します。
  - `value` は読み取り専用で、有効な `display_preference` 値を反映します。

> 連結アカウントの国に関連する支払い方法のみが API レスポンスで表示され、設定可能です。[各国のサポート状況をご確認ください](https://docs.stripe.com/payments/payment-methods/integration-options.md)。

## 連結アカウントが設定を編集するときに、display_preference を更新する

連結アカウントの所有者が支払い方法を有効または無効にするときに、お客様は `display_preference` の `preference` 属性を更新できます。これにより、その支払い方法に対する連結アカウントの所有者の設定が保管されて、支払い方法を買い手に表示するかどうかの判断に使用されます。

```curl
curl https://api.stripe.com/v1/payment_method_configurations/{{PAYMENTMETHODCONFIGURATION_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "affirm[display_preference][preference]=on"
```

```json
{
  "id": ""{{PAYMENT_METHOD_CONFIGURATION_ID}}"",
  "object": "payment_method_configuration",
  "name": "Default",
  "active": true,
  "is_default": true,
  "livemode": false,
  "application": ""{{CLIENT_APPLICATION_ID}}"",
  "acss_debit": {
    "available": false,
    "display_preference": {
      "overridable": true,
      "preference": "off",
      "value": "off"
    }
  },
  "affirm": {
    "available": true,
    "display_preference": {
      "overridable": true,
      "preference": "on",
      "value": "on"
    }
  },
  "afterpay_clearpay": {
    "available": false,
    "display_preference": {
      "overridable": true,
      "preference": "off",
      "value": "off"
    }
  },
  ... additional payment methods
}
```

## 決済時に利用可能な支払い方法を表示する

支払い方法は[ダッシュボード](https://dashboard.stripe.com/settings/payment_methods)で管理できます。Stripe は取引額、通貨、決済フローなどの要素に基づいて、適切な支払い方法が返されるように処理します。そうすることによって、決済フローでは `available` が `true` になっている支払い方法のみを買い手に表示できます。

決済ページをレンダリングする前に、連結アカウントの利用可能な支払い方法を事前に取得する場合は、Payment Method Configurations API を呼び出して、支払い方法のリストを取得します。`available` が `true` に設定されている手段を使用します。

## カードタイプの支払い方法に対応する

Apple Pay や Link などの一部の決済手段は、PaymentIntent に単独の決済手段タイプとして含まれていないため、`card` が指定されるときにのみ確定されます。Payment Method Configurations API を使用すると、連結アカウントの所有者がこれらの特定の決済手段をオプトインまたはオプトアウトし、UI に表示されないように設定できます。

## 連結アカウントの所有者に支払い方法をマーケティングする

ターゲットを絞ったマーケティングメッセージを使用して、連結アカウントの所有者に、利用資格はあるがまだオプトインしていない決済手段をオプトインするよう促します。

GET メソッドを呼び出して支払い方法の構成のステータスを取得し、支払い方法を宣伝するタイミングを決定します。`display_preference` 値を読み取ることで、連結アカウントの所有者が以前に構成を操作したかどうかを判断できます。`display_preference` の `preference` が `none` の場合、連結アカウントの所有者はデフォルトの構成を変更していません。`preference` 値が `on` または `off` の場合、連結アカウントの所有者は構成を操作しているとわかるため、お客様がマーケティングメッセージを抑制するかどうかの判断材料になります。

## See also

- [Connect の導入ガイド](https://docs.stripe.com/connect/charges.md)
- [複数の決済手段の設定](https://docs.stripe.com/connect/multiple-payment-method-configurations.md)
- [支払い方法ケイパビリティを追加する](https://docs.stripe.com/connect/payment-methods.md)
