# オーソリを増額する
キャプチャーする前に、確定した PaymentIntent で既存のオーソリを増額します。
# Stripe がオンラインで提供するページ
> This is a Stripe がオンラインで提供するページ for when platform is web and ui is stripe-hosted. View the full page at https://docs.stripe.com/payments/incremental-authorization?platform=web&ui=stripe-hosted.
増分オーソリを利用すると、確定された PaymentIntent のオーソリ額をキャプチャー前に増やすことができます。増分オーソリの各内訳は、キャプチャー前にクレジットカード明細書に保留項目として記載されます (たとえば、元のオーソリ額 10 USD から 15 USD に増額した場合は、10 USD と保留項目の 5 USD が個別に記載されます)。キャプチャー後、保留中のオーソリは削除され、キャプチャーされた合計金額が最終的に 1 つの項目として表示されます。
## サポート状況
増分オーソリを利用する際は、次の制限事項にご注意ください。
- Visa、Mastercard、American Express、Discover でのみ利用できます。
- カードブランドによっては加盟店カテゴリーの制限があります (以下を参照)。
- [CheckoutSession](https://docs.stripe.com/api/checkout/sessions/.md) で [mode](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-mode) は `payment` に設定され、[capture_method](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-payment_intent_data-capture_method) は `manual` に設定されます。
増分オーソリと Terminal を利用した対面決済について、詳細は[増分オーソリ](https://docs.stripe.com/terminal/features/incremental-authorizations.md)をご覧ください。
> #### IC+ の特長
>
> 当社では *IC+* (A pricing plan where businesses pay the variable network cost for each transaction plus the Stripe fee rather than a flat rate for all transactions. This pricing model provides more visibility into payments costs) でユーザーに対して増分オーソリを提供しています。標準の Stripe 料金でこの機能を利用したい場合は、[Stripe サポート](https://support.stripe.com)のフォームからお問い合わせください。
### カードネットワークと加盟店カテゴリー別のサポート状況
増分オーソリは、下記の基準を満たす支払いで使用できます。ユーザーカテゴリーは、[ダッシュボード](https://dashboard.stripe.com/settings/update/company/update)で確認できます。
以下の条件を満たさない支払いで増分オーソリを実行しようとすると、エラーが発生します。
| カードブランド | 加盟店の所在国 | 決済タイプ | 加盟店カテゴリー |
| ---------------- | ------- | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Visa** | グローバル | すべてのカード支払いタイプ | すべてのユーザーカテゴリー |
| **Mastercard** | グローバル* | すべてのカード支払いタイプ | すべてのユーザーカテゴリー |
| **アメリカン・エキスプレス** | グローバル | すべてのカード払いの種類** | すべてのユーザーカテゴリー |
| **ディスカバー** | グローバル | すべてのカード支払いタイプ | レンタカー、ホテル、地方 / 郊外の通勤・通学用交通機関 / 旅客輸送 (フェリーを含む)、旅客鉄道、貸切バス / バスツアー、汽船 / クルーズ客船、ボートレンタル / リース、食料品店とスーパーマーケット、電気車両充電、飲食店 / レストラン、酒場 (アルコール飲料)、ホテル / モーテル / リゾート、トレーラーパーク / キャンプ場、機器 / 工具 / かまど / 家電のレンタルおよびリース、レンタカー代理店、トラック / ユーティリティートレーラーのレンタル、トレーラーハウス / RV 車のレンタル、駐車場 / 駐車メーター / ガレージ、遊園地 / サーカス / 占い、その他レクリエーションサービス (上記に該当しないもの) |
| **ディスカバー** | グローバル | 非対面カード支払い | タクシーとリムジン |
MX ユーザーと、JP ユーザーの JPY 取引を除く
\** 一部のAmerican Express 発行会社は増分認証 (インクリメンタル・オーソリゼーション) に対応していません。これらのカードでこの機能をリクエストすると、返される [ステータス](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-incremental_authorization_supported) は `unavailable` になります。
### 対応が限定されるネットワーク (ベータ)
次のカードネットワークは、増分オーソリへの対応が限定されます。
| カードブランド | 加盟店の所在国 | 決済タイプ | 加盟店カテゴリー |
| ------------ | --------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **ダイナースクラブ** | アメリカ、カナダ、イギリス (Discover 経由) | 対面カード支払い | レンタカー、ホテル、地方 / 郊外の通勤・通学用交通機関 / 旅客輸送 (フェリーを含む)、旅客鉄道、貸切バス / バスツアー、汽船 / クルーズ客船、ボートレンタル / リース、食料品店とスーパーマーケット、電気車両充電、飲食店 / レストラン、酒場 (アルコール飲料)、ホテル / モーテル / リゾート、トレーラーパーク / キャンプ場、機器 / 工具 / かまど / 家電のレンタルおよびリース、レンタカー代理店、トラック / ユーティリティートレーラーのレンタル、トレーラーハウス / RV 車のレンタル、駐車場 / 駐車メーター / ガレージ、遊園地 / サーカス / 占い、その他レクリエーションサービス (上記に該当しないもの) |
| **ダイナースクラブ** | グローバル (Discover 経由) | 非対面カード支払い | レンタカー、ホテル、地方 / 郊外の通勤・通学用交通機関 / 旅客輸送 (フェリーを含む)、旅客鉄道、タクシー / リムジン、貸切バス / バスツアー、汽船 / クルーズ客船、ボートレンタル / リース、食料品店とスーパーマーケット、電気車両充電、飲食店 / レストラン、酒場 (アルコール飲料)、ホテル / モーテル / リゾート、トレーラーパーク / キャンプ場、機器 / 工具 / かまど / 家電のレンタルおよびリース、レンタカー代理店、トラック / ユーティリティートレーラーのレンタル、トレーラーハウス / RV 車のレンタル、駐車場 / 駐車メーター / ガレージ、遊園地 / サーカス / 占い、その他レクリエーションサービス (上記に該当しないもの) |
| **銀聯** | グローバル (Discover 経由) | 非対面カード支払い | レンタカー、ホテル、地方 / 郊外の通勤・通学用交通機関 / 旅客輸送 (フェリーを含む)、旅客鉄道、タクシー / リムジン、貸切バス / バスツアー、汽船 / クルーズ客船、ボートレンタル / リース、食料品店とスーパーマーケット、電気車両充電、飲食店 / レストラン、酒場 (アルコール飲料)、ホテル / モーテル / リゾート、トレーラーパーク / キャンプ場、機器 / 工具 / かまど / 家電のレンタルおよびリース、レンタカー代理店、トラック / ユーティリティートレーラーのレンタル、トレーラーハウス / RV 車のレンタル、駐車場 / 駐車メーター / ガレージ、遊園地 / サーカス / 占い、その他レクリエーションサービス (上記に該当しないもの) |
| **JCB** | グローバル (Discover 経由) | 非対面カード支払い | レンタカー、ホテル、地方 / 郊外の通勤・通学用交通機関 / 旅客輸送 (フェリーを含む)、旅客鉄道、タクシー / リムジン、貸切バス / バスツアー、汽船 / クルーズ客船、ボートレンタル / リース、食料品店とスーパーマーケット、電気車両充電、飲食店 / レストラン、酒場 (アルコール飲料)、ホテル / モーテル / リゾート、トレーラーパーク / キャンプ場、機器 / 工具 / かまど / 家電のレンタルおよびリース、レンタカー代理店、トラック / ユーティリティートレーラーのレンタル、トレーラーハウス / RV 車のレンタル、駐車場 / 駐車メーター / ガレージ、遊園地 / サーカス / 占い、その他レクリエーションサービス (上記に該当しないもの) |
### 増分オーソリと強力な顧客認証 (SCA)
貴社とカード保有者が [SCA 要件のある国](https://support.stripe.com/questions/countries-in-the-european-economic-area-\(eea\)-impacted-by-strong-customer-authentication-\(sca\)-regulation) に所在している場合、増分オーソリを使用する際に留意すべき重要な考慮事項があります。
初回オーソリ時に増分オーソリ機能をリクエストすると、Stripe はその決済方法を将来オフセッションで使用できるように自動的に設定します。そのため、初回オーソリには 3D セキュア (3DS) が必要ですが、この支払いに対するその後の増分オーソリは加盟店が開始したものと見なされ、追加の SCA が免除される可能性があります。支払い情報は増分オーソリによって将来オフセッションで使用するために保存されることを顧客に明確に示してください。
一部の 3DS 取引では、[不正なチャージバック (盗難または偽造されたカード) に対する責任は、貴社からカード発行会社に移ります](https://docs.stripe.com/payments/3d-secure/authentication-flow.md#disputed-payments)。加盟店により開始される取引を送信する場合は、ライアビリティシフトのメリットはありません。
> #### 法令遵守
>
> 顧客の支払い情報を保存する際には、適用されるすべての法律、規制、ネットワークルールを遵守する責任を貴社が負うものとします。たとえば、顧客が貴社のウェブサイトやアプリをあまり利用していないときに請求する場合など、将来使用するために決済手段を保存するケースがあります。ウェブサイトやアプリに、決済手段の情報をどのように保存するのか明記した規約を追加し、顧客がオプトインできるようにします。
>
> 顧客がオフラインのときに請求する場合は、規約に次の内容が含まれていることを確認してください。
>
> - 特定の取引について、貴社が顧客の代理として単独の支払いまたは一連の支払いを開始することを許可する、顧客からの同意
- 想定される支払いのタイミングと頻度 (たとえば、スケジュール指定の分割払い、サブスクリプションの支払い、または不定期のトップアップに対する支払いなど)
- 支払い金額の決定方法
- サブスクリプションサービス用の決済手段の場合は、キャンセルポリシー
>
> これらの条件に対して顧客から得た書面による同意の記録を必ず保管してください。
## ベストプラクティス
増分オーソリを利用する場合は、オーソリの見積もり額の内訳について最終顧客に事前通知します。見積もり額はその後の増分オーソリで引き上げられることがあります。そのベストプラクティスを下記にいくつかご紹介します。
- 見積もり額に対するオーソリであることと、決済時 (購入前) に後続のオーソリリクエストが発生する可能性があることを開示します。
- 予想取引総額の妥当な概算に基づいて、見積もり額を決定します。
新しい [CheckoutSession](https://docs.stripe.com/api/checkout_sessions.md) を作成する際、[custom_text](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-custom_text) フィールドを使用して決済ページに追加のテキストを表示することで、法令遵守要件を満たせます。
> #### 法令遵守
>
> 増分オーソリを行うにあたり、お客様は適用されるすべての法律、規制、ネットワーク規則を遵守する責任を負うものとします。この機能を使用するカードネットワークの規則に照らし、取引の内容が適用される規則に準拠していることを確認してください。規則はネットワークごとに異なります。たとえば、ほとんどのカードネットワークでは、初回のオーソリの対象となる見積もり額の計算方法が制限されており、オーソリ時に取引額が判明している場合 (継続サブスクリプションの支払いなど)、その取引で増分オーソリを利用することは禁じられています。
>
> このページに記載されている情報のうち、これらの要件の遵守に関する情報は一般的なガイダンスであり、法律、税務、会計、その他の専門的なアドバイスではありません。自らの義務について不明な点がある場合は、専門家に相談することをお勧めします。
## CheckoutSession を作成する
サーバー側のエンドポイントを呼び出す決済ボタンをウェブサイトに追加して [Checkout セッション](https://docs.stripe.com/api/checkout/sessions/create.md)を作成します。
```html
Buy cool new product
```
Checkout セッションには、顧客が支払いフォームにリダイレクトされたときに表示される内容がプログラム的に表されます。セッションは、以下のオプションを使用して設定することが可能です。
- 請求[項目](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items)
- 利用通貨
`success_url`。お客様のウェブサイト上にあり、決済完了後に顧客が戻されるページの URL 値です。
> デフォルトでは、Checkout セッションは作成後 24 時間で期限切れとなります。
Checkout セッションを作成したら、レスポンスで返された [URL](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-url) に顧客をリダイレクトします。
最後に、[request_incremental_authorization](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-payment_method_options-card-request_incremental_authorization) を `if_available` に設定して、増分オーソリ機能を有効にします。
#### Ruby
```ruby
# This example sets up an endpoint using the Sinatra framework.
require 'json'
require 'sinatra'
require 'stripe'
# Don't put any keys in code. Use a secrets vault or environment
# variable to supply keys to your integration. This example
# shows how to set a secret key for illustration purposes only.
#
# See https://docs.stripe.com/keys-best-practices and find your
# keys at https://dashboard.stripe.com/apikeys.
Stripe.api_key = '<>'
post '/create-checkout-session' do
session = Stripe::Checkout::Session.create({
line_items: [{
price_data: {
currency: 'usd',
product_data: {
name: 'T-shirt'
},
unit_amount: 2000
},
quantity: 1
}],payment_method_options: {
card: {
request_incremental_authorization: 'if_available'
}
},
mode: 'payment',
# These placeholder URLs will be replaced in a following step.
success_url: 'https://example.com/success'
})
redirect session.url, 303
end
```
顧客が決済を完了すると、[PaymentIntent](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-payment_intent) の [latest_charge](https://docs.stripe.com/api/charges/object.md) の [payment_method_details](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details) フィールドに、顧客の決済手段と[上記の利用基準](https://docs.stripe.com/payments/incremental-authorization.md#availability)に基づいて `available` または `unavailable` が示されます。これにより、PaymentIntent が増分オーソリを受けられるかかどうかを判別できます。(CheckoutSession の作成時に増分オーソリをリクエストしなかった場合は、`unavailable` になります。)
```json
{
"id": "pi_ANipwO3zNfjeWODtRPIg",
"object": "payment_intent",
"amount": 1000,
"amount_capturable": 1000,
"amount_received": 0,
...
// if latest_charge is expanded
{
"latest_charge": {
"amount": 1000,
"payment_method_details": {
"card": {
"incremental_authorization": {"status": "available" // or "unavailable"
}
}
}
...
}
}
}
```
## Checkout をマウントする
#### HTML + JS
Checkout は [Stripe.js](https://docs.stripe.com/js.md) の一部として利用できます。HTML ファイルのヘッダーに Stripe.js スクリプトを追加してページに含めます。次に、マウンティングに使用する空の DOM ノード (コンテナー) を作成します。
```html
```
公開可能な API キーで Stripe.js を初期化します。
Checkout セッションの作成、および client secret の取得をサーバーにリクエストする、非同期の `fetchClientSecret` 関数を作成します。 Checkout インスタンスを作成する際に、この関数を `options` に渡します。
```javascript
// Initialize Stripe.js
const stripe = Stripe('<>');
initialize();
// Fetch Checkout Session and retrieve the client secret
async function initialize() {
const fetchClientSecret = async () => {
const response = await fetch("/create-checkout-session", {
method: "POST",
});
const { clientSecret } = await response.json();
return clientSecret;
};
// Initialize Checkout
const checkout = await stripe.initEmbeddedCheckout({
fetchClientSecret,
});
// Mount Checkout
checkout.mount('#checkout');
}
```
#### React
npm から [react-stripe-js](https://docs.stripe.com/sdks/stripejs-react.md) と Stripe.js ローダーをインストールします。
```bash
npm install --save @stripe/react-stripe-js @stripe/stripe-js
```
埋め込みの Checkout コンポーネントを使用するには、`EmbeddedCheckoutProvider` を作成します。公開可能 API キーを使用して `loadStripe` を呼び出し、返された `Promise` をプロバイダーに渡します。
Checkout セッションの作成、および client secret の取得をサーバーにリクエストする、非同期の `fetchClientSecret` 関数を作成します。この関数をプロバイダーで受け入れられる `options` プロパティに渡します。
```jsx
import * as React from 'react';
import {loadStripe} from '@stripe/stripe-js';
import {
EmbeddedCheckoutProvider,
EmbeddedCheckout
} from '@stripe/react-stripe-js';
// Make sure to call `loadStripe` outside of a component’s render to avoid
// recreating the `Stripe` object on every render.
const stripePromise = loadStripe('pk_test_123');
const App = () => {
const fetchClientSecret = useCallback(() => {
// Create a Checkout Session
return fetch("/create-checkout-session", {
method: "POST",
})
.then((res) => res.json())
.then((data) => data.clientSecret);
}, []);
const options = {fetchClientSecret};
return (
)
}
```
Checkout は、HTTPS 接続を介して支払い情報をStripeに安全に送信する iframe でレンダリングされます。
> 一部の支払い方法では、別のページにリダイレクトして支払いを確定する必要があるため、Checkout は別の iframe 内に配置しないでください。
### デザインをカスタマイズする
アカウントの[ブランディング設定](https://dashboard.stripe.com/settings/branding)で、背景色、ボタンの色、枠線の角丸半径、フォントを設定して、サイトのデザインに合わせて Checkout をカスタマイズします。
デフォルトでは、Checkout は外側に余白やマージンが追加されずに表示されます。必要なマージンを適用するには (四方すべてに 16px など)、目的の余白を適用するコンテナー要素 (div など) を使用することをお勧めします。
## 戻り先ページを表示する
顧客が支払いを試行すると、Stripe はサイトがホストしている戻りページに顧客をリダイレクトします。Checkout セッションを作成したときに、[return_url](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-return_url) パラメーターで戻りページの URL は指定されています。[リダイレクト動作をカスタマイズする](https://docs.stripe.com/payments/checkout/custom-success-page.md?payment-ui=embedded-form)ためのオプションについては、こちらの記事をご覧ください。
戻り先ページを表示する際は、URL に含まれる Checkout セッション ID を使用して、Checkout セッションのステータスを取得します。セッションのステータスに応じて、結果を次のように処理します。
- `complete`:支払いが成功しました。Checkout セッションの情報を成功ページに表示します。
- `open`:支払いが失敗したか、またはキャンセルされました。顧客が再試行できるように Checkout を再マウントしてください。
#### Ruby
```ruby
get '/session-status' do
session = Stripe::Checkout::Session.retrieve(params[:session_id])
{status: session.status, customer_email: session.customer_details.email}.to_json
end
```
```javascript
const session = await fetch(`/session_status?session_id=${session_id}`)
if (session.status == 'open') {
// Remount embedded Checkout
} else if (session.status == 'complete') {
// Show success page
// Optionally use session.payment_status or session.customer_email
// to customize the success page
}
```
#### リダイレクトベースの決済手段
決済手段によっては、決済中に顧客が銀行のオーソリページなどの中間ページにリダイレクトされることがあります。顧客はそのページでアクションを完了すると、戻り先ページにリダイレクトされます。
[リダイレクトベースの決済手段とリダイレクト動作](https://docs.stripe.com/payments/checkout/custom-success-page.md?payment-ui=embedded-form#redirect-based-payment-methods)についてご紹介します。
## 増分オーソリを実行する
PaymentIntent のオーソリ額を増やすには、[increment_authorization](https://docs.stripe.com/api/payment_intents/increment_authorization.md) エンドポイントを使用して、増額後の新しい合計[オーソリ額](https://docs.stripe.com/api/payment_intents/increment_authorization.md#increment_authorization-amount)を指定します。この金額は、元のオーソリ額よりも高く設定されていなければなりません。これにより、更新後のオーソリ額が顧客のカードで試行されるようになります。1 つの PaymentIntent でこのエンドポイントを複数回呼び出し、オーソリ額をさらに増やすことが可能です。
1 つの PaymentIntent につき、最大 10 回まで増分オーソリの試行が可能です。
#### curl
```bash
curl https://api.stripe.com/v1/payment_intents/{{PAYMENT_INTENT_ID}}/increment_authorization \
-u <>: \
-d "amount"=1500
```
増分オーソリが成功すると、金額が更新された PaymentIntent オブジェクトが返されます。オーソリが失敗すると、代わりに [card_declined](https://docs.stripe.com/error-codes.md#card-declined) エラーが返されます。PaymentIntent オブジェクトは、前回のオーソリ額を引き続きキャプチャーします。増分オーソリに失敗した場合、その他の PaymentIntent フィールド ([application_fee_amount](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-application_fee_amount)、[transfer_data](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-transfer_data)、[metadata](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-metadata)、[description](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-description)、[statement_descriptor](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-statement_descriptor) など) に行われる更新は保存されません。
増分オーソリには上限があり、500 USD (または現地通貨による相当額)、または前回のオーソリ額の 500% のいずれか高い方が増分 1 回の上限額にあたります。
## PaymentIntent をキャプチャーする
増分オーソリされた PaymentIntent のオーソリ額を増やすかどうかにかかわらず、当初のオーソリの有効期間が切れる前に売上をキャプチャーする必要があります。増分オーソリでは[有効期間](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md)は延長されません。過去に増分オーソリされた PaymentIntent のオーソリ額をキャプチャーする場合は、通常のときと同様に [[capture エンドポイント](https://docs.stripe.com/api/payment_intents/capture.md)を使用します。
#### curl
```bash
curl https://api.stripe.com/v1/payment_intents/{{PAYMENT_INTENT_ID}}/capture \
-u <>:
```
増分オーソリが成功すると、更新後の金額が指定されたキャプチャー済みの PaymentIntent オブジェクトが返されます。オーソリが失敗すると、代わりに [card_declined エラー](https://docs.stripe.com/error-codes.md#card-declined)が返されます。PaymentIntent はキャプチャーされませんが、前回のオーソリ額は引き続きキャプチャーされます。増分オーソリに失敗した場合、その他の PaymentIntent フィールド ([application_fee_amount](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-application_fee_amount)、[transfer_data](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-transfer_data)、[metadata](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-metadata)、[description](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-description)、[statement_descriptor](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-statement_descriptor) など) に行われる更新は保存されません。
## 実装内容をテストする
任意のセキュリティコード、郵便番号、有効期限の Stripe テストカードを使用して、テスト中に増分オーソリをトリガーします:
1. [create a CheckoutSession step](https://docs.stripe.com/payments/incremental-authorization.md#create-and-confirm) で、テストカードを使って CheckoutSession を作成してください。
1. [perform an incremental authorization step](https://docs.stripe.com/payments/incremental-authorization.md#increment-authorization) で指定されたパラメータで増分オーソリを実行します。次のテストカードを使用して、増分オーソリの成功または失敗をシミュレートします。
| 番号 | 決済手段 | 説明 |
| ---------------- | ---------------------------------------------- | -------------------------- |
| 4000058400000063 | `pm_card_debit_incrementalAuthAuthorized` | オーソリ額をリクエストに記載された金額に増額します。 |
| 4000008400000076 | `pm_card_credit_disableEnterpriseCardFeatures` | オーソリ増額リクエストを拒否します。 |
# 埋め込みフォーム
> This is a 埋め込みフォーム for when platform is web and ui is embedded-form. View the full page at https://docs.stripe.com/payments/incremental-authorization?platform=web&ui=embedded-form.
増分オーソリを利用すると、確定された PaymentIntent のオーソリ額をキャプチャー前に増やすことができます。増分オーソリの各内訳は、キャプチャー前にクレジットカード明細書に保留項目として記載されます (たとえば、元のオーソリ額 10 USD から 15 USD に増額した場合は、10 USD と保留項目の 5 USD が個別に記載されます)。キャプチャー後、保留中のオーソリは削除され、キャプチャーされた合計金額が最終的に 1 つの項目として表示されます。
## サポート状況
増分オーソリを利用する際は、次の制限事項にご注意ください。
- Visa、Mastercard、American Express、Discover でのみ利用できます。
- カードブランドによっては加盟店カテゴリーの制限があります (以下を参照)。
- [CheckoutSession](https://docs.stripe.com/api/checkout/sessions/.md) で [mode](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-mode) は `payment` に設定され、[capture_method](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-payment_intent_data-capture_method) は `manual` に設定されます。
増分オーソリと Terminal を利用した対面決済について、詳細は[増分オーソリ](https://docs.stripe.com/terminal/features/incremental-authorizations.md)をご覧ください。
> #### IC+ の特長
>
> 当社では *IC+* (A pricing plan where businesses pay the variable network cost for each transaction plus the Stripe fee rather than a flat rate for all transactions. This pricing model provides more visibility into payments costs) でユーザーに対して増分オーソリを提供しています。標準の Stripe 料金でこの機能を利用したい場合は、[Stripe サポート](https://support.stripe.com)のフォームからお問い合わせください。
### カードネットワークと加盟店カテゴリー別のサポート状況
増分オーソリは、下記の基準を満たす支払いで使用できます。ユーザーカテゴリーは、[ダッシュボード](https://dashboard.stripe.com/settings/update/company/update)で確認できます。
以下の条件を満たさない支払いで増分オーソリを実行しようとすると、エラーが発生します。
| カードブランド | 加盟店の所在国 | 決済タイプ | 加盟店カテゴリー |
| ---------------- | ------- | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Visa** | グローバル | すべてのカード支払いタイプ | すべてのユーザーカテゴリー |
| **Mastercard** | グローバル* | すべてのカード支払いタイプ | すべてのユーザーカテゴリー |
| **アメリカン・エキスプレス** | グローバル | すべてのカード払いの種類** | すべてのユーザーカテゴリー |
| **ディスカバー** | グローバル | すべてのカード支払いタイプ | レンタカー、ホテル、地方 / 郊外の通勤・通学用交通機関 / 旅客輸送 (フェリーを含む)、旅客鉄道、貸切バス / バスツアー、汽船 / クルーズ客船、ボートレンタル / リース、食料品店とスーパーマーケット、電気車両充電、飲食店 / レストラン、酒場 (アルコール飲料)、ホテル / モーテル / リゾート、トレーラーパーク / キャンプ場、機器 / 工具 / かまど / 家電のレンタルおよびリース、レンタカー代理店、トラック / ユーティリティートレーラーのレンタル、トレーラーハウス / RV 車のレンタル、駐車場 / 駐車メーター / ガレージ、遊園地 / サーカス / 占い、その他レクリエーションサービス (上記に該当しないもの) |
| **ディスカバー** | グローバル | 非対面カード支払い | タクシーとリムジン |
MX ユーザーと、JP ユーザーの JPY 取引を除く
\** 一部のAmerican Express 発行会社は増分認証 (インクリメンタル・オーソリゼーション) に対応していません。これらのカードでこの機能をリクエストすると、返される [ステータス](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-incremental_authorization_supported) は `unavailable` になります。
### 対応が限定されるネットワーク (ベータ)
次のカードネットワークは、増分オーソリへの対応が限定されます。
| カードブランド | 加盟店の所在国 | 決済タイプ | 加盟店カテゴリー |
| ------------ | --------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **ダイナースクラブ** | アメリカ、カナダ、イギリス (Discover 経由) | 対面カード支払い | レンタカー、ホテル、地方 / 郊外の通勤・通学用交通機関 / 旅客輸送 (フェリーを含む)、旅客鉄道、貸切バス / バスツアー、汽船 / クルーズ客船、ボートレンタル / リース、食料品店とスーパーマーケット、電気車両充電、飲食店 / レストラン、酒場 (アルコール飲料)、ホテル / モーテル / リゾート、トレーラーパーク / キャンプ場、機器 / 工具 / かまど / 家電のレンタルおよびリース、レンタカー代理店、トラック / ユーティリティートレーラーのレンタル、トレーラーハウス / RV 車のレンタル、駐車場 / 駐車メーター / ガレージ、遊園地 / サーカス / 占い、その他レクリエーションサービス (上記に該当しないもの) |
| **ダイナースクラブ** | グローバル (Discover 経由) | 非対面カード支払い | レンタカー、ホテル、地方 / 郊外の通勤・通学用交通機関 / 旅客輸送 (フェリーを含む)、旅客鉄道、タクシー / リムジン、貸切バス / バスツアー、汽船 / クルーズ客船、ボートレンタル / リース、食料品店とスーパーマーケット、電気車両充電、飲食店 / レストラン、酒場 (アルコール飲料)、ホテル / モーテル / リゾート、トレーラーパーク / キャンプ場、機器 / 工具 / かまど / 家電のレンタルおよびリース、レンタカー代理店、トラック / ユーティリティートレーラーのレンタル、トレーラーハウス / RV 車のレンタル、駐車場 / 駐車メーター / ガレージ、遊園地 / サーカス / 占い、その他レクリエーションサービス (上記に該当しないもの) |
| **銀聯** | グローバル (Discover 経由) | 非対面カード支払い | レンタカー、ホテル、地方 / 郊外の通勤・通学用交通機関 / 旅客輸送 (フェリーを含む)、旅客鉄道、タクシー / リムジン、貸切バス / バスツアー、汽船 / クルーズ客船、ボートレンタル / リース、食料品店とスーパーマーケット、電気車両充電、飲食店 / レストラン、酒場 (アルコール飲料)、ホテル / モーテル / リゾート、トレーラーパーク / キャンプ場、機器 / 工具 / かまど / 家電のレンタルおよびリース、レンタカー代理店、トラック / ユーティリティートレーラーのレンタル、トレーラーハウス / RV 車のレンタル、駐車場 / 駐車メーター / ガレージ、遊園地 / サーカス / 占い、その他レクリエーションサービス (上記に該当しないもの) |
| **JCB** | グローバル (Discover 経由) | 非対面カード支払い | レンタカー、ホテル、地方 / 郊外の通勤・通学用交通機関 / 旅客輸送 (フェリーを含む)、旅客鉄道、タクシー / リムジン、貸切バス / バスツアー、汽船 / クルーズ客船、ボートレンタル / リース、食料品店とスーパーマーケット、電気車両充電、飲食店 / レストラン、酒場 (アルコール飲料)、ホテル / モーテル / リゾート、トレーラーパーク / キャンプ場、機器 / 工具 / かまど / 家電のレンタルおよびリース、レンタカー代理店、トラック / ユーティリティートレーラーのレンタル、トレーラーハウス / RV 車のレンタル、駐車場 / 駐車メーター / ガレージ、遊園地 / サーカス / 占い、その他レクリエーションサービス (上記に該当しないもの) |
### 増分オーソリと強力な顧客認証 (SCA)
貴社とカード保有者が [SCA 要件のある国](https://support.stripe.com/questions/countries-in-the-european-economic-area-\(eea\)-impacted-by-strong-customer-authentication-\(sca\)-regulation) に所在している場合、増分オーソリを使用する際に留意すべき重要な考慮事項があります。
初回オーソリ時に増分オーソリ機能をリクエストすると、Stripe はその決済方法を将来オフセッションで使用できるように自動的に設定します。そのため、初回オーソリには 3D セキュア (3DS) が必要ですが、この支払いに対するその後の増分オーソリは加盟店が開始したものと見なされ、追加の SCA が免除される可能性があります。支払い情報は増分オーソリによって将来オフセッションで使用するために保存されることを顧客に明確に示してください。
一部の 3DS 取引では、[不正なチャージバック (盗難または偽造されたカード) に対する責任は、貴社からカード発行会社に移ります](https://docs.stripe.com/payments/3d-secure/authentication-flow.md#disputed-payments)。加盟店により開始される取引を送信する場合は、ライアビリティシフトのメリットはありません。
> #### 法令遵守
>
> 顧客の支払い情報を保存する際には、適用されるすべての法律、規制、ネットワークルールを遵守する責任を貴社が負うものとします。たとえば、顧客が貴社のウェブサイトやアプリをあまり利用していないときに請求する場合など、将来使用するために決済手段を保存するケースがあります。ウェブサイトやアプリに、決済手段の情報をどのように保存するのか明記した規約を追加し、顧客がオプトインできるようにします。
>
> 顧客がオフラインのときに請求する場合は、規約に次の内容が含まれていることを確認してください。
>
> - 特定の取引について、貴社が顧客の代理として単独の支払いまたは一連の支払いを開始することを許可する、顧客からの同意
- 想定される支払いのタイミングと頻度 (たとえば、スケジュール指定の分割払い、サブスクリプションの支払い、または不定期のトップアップに対する支払いなど)
- 支払い金額の決定方法
- サブスクリプションサービス用の決済手段の場合は、キャンセルポリシー
>
> これらの条件に対して顧客から得た書面による同意の記録を必ず保管してください。
## ベストプラクティス
増分オーソリを利用する場合は、オーソリの見積もり額の内訳について最終顧客に事前通知します。見積もり額はその後の増分オーソリで引き上げられることがあります。そのベストプラクティスを下記にいくつかご紹介します。
- 見積もり額に対するオーソリであることと、決済時 (購入前) に後続のオーソリリクエストが発生する可能性があることを開示します。
- 予想取引総額の妥当な概算に基づいて、見積もり額を決定します。
新しい [CheckoutSession](https://docs.stripe.com/api/checkout_sessions.md) を作成する際、[custom_text](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-custom_text) フィールドを使用して決済ページに追加のテキストを表示することで、法令遵守要件を満たせます。
> #### 法令遵守
>
> 増分オーソリを行うにあたり、お客様は適用されるすべての法律、規制、ネットワーク規則を遵守する責任を負うものとします。この機能を使用するカードネットワークの規則に照らし、取引の内容が適用される規則に準拠していることを確認してください。規則はネットワークごとに異なります。たとえば、ほとんどのカードネットワークでは、初回のオーソリの対象となる見積もり額の計算方法が制限されており、オーソリ時に取引額が判明している場合 (継続サブスクリプションの支払いなど)、その取引で増分オーソリを利用することは禁じられています。
>
> このページに記載されている情報のうち、これらの要件の遵守に関する情報は一般的なガイダンスであり、法律、税務、会計、その他の専門的なアドバイスではありません。自らの義務について不明な点がある場合は、専門家に相談することをお勧めします。
## CheckoutSession を作成する
サーバーから、*決済セッション* (A Checkout Session represents your customer's session as they pay for one-time purchases or subscriptions through Checkout. After a successful payment, the Checkout Session contains a reference to the Customer, and either the successful PaymentIntent or an active Subscription)を作成し、[ui_mode](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-ui_mode) を `embedded` に設定します。[決済セッション](https://docs.stripe.com/api/checkout/sessions/create.md)には、含める[項目](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items)と[通貨](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-currency)などのオプションを設定できます。
自社サイトでホストされているカスタムページに顧客を戻すには、そのページの URL を [return_url](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-return_url) パラメーターに指定します。URL にテンプレート変数 `{CHECKOUT_SESSION_ID}` を含めて、戻り先ページでセッションのステータスを取得します。Checkout では、リダイレクト前にこの変数が Checkout セッション ID に自動的に置き換えられます。
[戻り先ページの設定](https://docs.stripe.com/payments/accept-a-payment.md?payment-ui=checkout&ui=embedded-form#return-page)と、[リダイレクト動作をカスタマイズ](https://docs.stripe.com/payments/checkout/custom-success-page.md?payment-ui=embedded-form)するためのその他のオプションについて、詳細をご覧ください。
Checkout セッションの作成後、レスポンスで返される `client_secret` を使用して、[Checkout をマウント](https://docs.stripe.com/payments/incremental-authorization.md#mount-checkout)します。
増分オーソリ機能を有効にするには、[request_incremental_authorization](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-payment_method_options-card-request_incremental_authorization) を `if_available` に設定します。
#### Ruby
```ruby
# This example sets up an endpoint using the Sinatra framework.
require 'json'
require 'sinatra'
require 'stripe'
# Don't put any keys in code. Use a secrets vault or environment
# variable to supply keys to your integration. This example
# shows how to set a secret key for illustration purposes only.
#
# See https://docs.stripe.com/keys-best-practices and find your
# keys at https://dashboard.stripe.com/apikeys.
Stripe.api_key = '<>'
post '/create-checkout-session' do
session = Stripe::Checkout::Session.create({
line_items: [{
price_data: {
currency: 'usd',
product_data: {
name: 'T-shirt',
},
unit_amount: 2000,
},
quantity: 1,
}],
mode: 'payment',
ui_mode: 'embedded',payment_method_options: {
card: {
request_incremental_authorization: 'if_available',
},
},
return_url: 'https://example.com/checkout/return?session_id={CHECKOUT_SESSION_ID}'
})
{clientSecret: session.client_secret}.to_json
end
```
顧客が決済を完了すると、[PaymentIntent](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-payment_intent) の [latest_charge](https://docs.stripe.com/api/charges/object.md) の [payment_method_details](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details) フィールドに、顧客の決済手段と[上記の利用基準](https://docs.stripe.com/payments/incremental-authorization.md#availability)に基づいて `available` または `unavailable` が示されます。これにより、PaymentIntent が増分オーソリを受けられるかかどうかを判別できます。(CheckoutSession の作成時に増分オーソリをリクエストしなかった場合は、`unavailable` になります。)
```json
{
"id": "pi_ANipwO3zNfjeWODtRPIg",
"object": "payment_intent",
"amount": 1000,
"amount_capturable": 1000,
"amount_received": 0,
...
// if latest_charge is expanded
{
"latest_charge": {
"amount": 1000,
"payment_method_details": {
"card": {
"incremental_authorization": {"status": "available" // or "unavailable"
}
}
}
...
}
}
}
```
## 増分オーソリを実行する
PaymentIntent のオーソリ額を増やすには、[increment_authorization](https://docs.stripe.com/api/payment_intents/increment_authorization.md) エンドポイントを使用して、増額後の新しい合計[オーソリ額](https://docs.stripe.com/api/payment_intents/increment_authorization.md#increment_authorization-amount)を指定します。この金額は、元のオーソリ額よりも高く設定されていなければなりません。これにより、更新後のオーソリ額が顧客のカードで試行されるようになります。1 つの PaymentIntent でこのエンドポイントを複数回呼び出し、オーソリ額をさらに増やすことが可能です。
1 つの PaymentIntent につき、最大 10 回まで増分オーソリの試行が可能です。
#### curl
```bash
curl https://api.stripe.com/v1/payment_intents/{{PAYMENT_INTENT_ID}}/increment_authorization \
-u <>: \
-d "amount"=1500
```
増分オーソリが成功すると、金額が更新された PaymentIntent オブジェクトが返されます。オーソリが失敗すると、代わりに [card_declined](https://docs.stripe.com/error-codes.md#card-declined) エラーが返されます。PaymentIntent オブジェクトは、前回のオーソリ額を引き続きキャプチャーします。増分オーソリに失敗した場合、その他の PaymentIntent フィールド ([application_fee_amount](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-application_fee_amount)、[transfer_data](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-transfer_data)、[metadata](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-metadata)、[description](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-description)、[statement_descriptor](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-statement_descriptor) など) に行われる更新は保存されません。
増分オーソリには上限があり、500 USD (または現地通貨による相当額)、または前回のオーソリ額の 500% のいずれか高い方が増分 1 回の上限額にあたります。
## PaymentIntent をキャプチャーする
増分オーソリされた PaymentIntent のオーソリ額を増やすかどうかにかかわらず、当初のオーソリの有効期間が切れる前に売上をキャプチャーする必要があります。増分オーソリでは[有効期間](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md)は延長されません。過去に増分オーソリされた PaymentIntent のオーソリ額をキャプチャーする場合は、通常のときと同様に [[capture エンドポイント](https://docs.stripe.com/api/payment_intents/capture.md)を使用します。
#### curl
```bash
curl https://api.stripe.com/v1/payment_intents/{{PAYMENT_INTENT_ID}}/capture \
-u <>:
```
増分オーソリが成功すると、更新後の金額が指定されたキャプチャー済みの PaymentIntent オブジェクトが返されます。オーソリが失敗すると、代わりに [card_declined エラー](https://docs.stripe.com/error-codes.md#card-declined)が返されます。PaymentIntent はキャプチャーされませんが、前回のオーソリ額は引き続きキャプチャーされます。増分オーソリに失敗した場合、その他の PaymentIntent フィールド ([application_fee_amount](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-application_fee_amount)、[transfer_data](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-transfer_data)、[metadata](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-metadata)、[description](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-description)、[statement_descriptor](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-statement_descriptor) など) に行われる更新は保存されません。
## 実装内容をテストする
任意のセキュリティコード、郵便番号、有効期限の Stripe テストカードを使用して、テスト中に増分オーソリをトリガーします:
1. [create a CheckoutSession step](https://docs.stripe.com/payments/incremental-authorization.md#create-and-confirm) で、テストカードを使って CheckoutSession を作成してください。
1. [perform an incremental authorization step](https://docs.stripe.com/payments/incremental-authorization.md#increment-authorization) で指定されたパラメータで増分オーソリを実行します。次のテストカードを使用して、増分オーソリの成功または失敗をシミュレートします。
| 番号 | 決済手段 | 説明 |
| ---------------- | ---------------------------------------------- | -------------------------- |
| 4000058400000063 | `pm_card_debit_incrementalAuthAuthorized` | オーソリ額をリクエストに記載された金額に増額します。 |
| 4000008400000076 | `pm_card_credit_disableEnterpriseCardFeatures` | オーソリ増額リクエストを拒否します。 |
# 高度な連携機能
> This is a 高度な連携機能 for when platform is web and ui is elements. View the full page at https://docs.stripe.com/payments/incremental-authorization?platform=web&ui=elements.
増分オーソリを利用すると、確定された PaymentIntent のオーソリ額をキャプチャー前に増やすことができます。増分オーソリの各内訳は、キャプチャー前にクレジットカード明細書に保留項目として記載されます (たとえば、元のオーソリ額 10 USD から 15 USD に増額した場合は、10 USD と保留項目の 5 USD が個別に記載されます)。キャプチャー後、保留中のオーソリは削除され、キャプチャーされた合計金額が最終的に 1 つの項目として表示されます。
## サポート状況
増分オーソリを利用する際は、次の制限事項にご注意ください。
- Visa、Mastercard、American Express、Discover でのみ利用できます。
- カードブランドによっては加盟店カテゴリーの制限があります (以下を参照)。
増分オーソリと Terminal を利用した対面決済について、詳細は[増分オーソリ](https://docs.stripe.com/terminal/features/incremental-authorizations.md)をご覧ください。
> #### IC+ の特長
>
> 当社では *IC+* (A pricing plan where businesses pay the variable network cost for each transaction plus the Stripe fee rather than a flat rate for all transactions. This pricing model provides more visibility into payments costs) でユーザーに対して増分オーソリを提供しています。標準の Stripe 料金でこの機能を利用したい場合は、[Stripe サポート](https://support.stripe.com)のフォームからお問い合わせください。
### カードネットワークと加盟店カテゴリー別のサポート状況
増分オーソリは、下記の基準を満たす支払いで使用できます。ユーザーカテゴリーは、[ダッシュボード](https://dashboard.stripe.com/settings/update/company/update)で確認できます。
以下の条件を満たさない支払いで増分オーソリを実行しようとすると、エラーが発生します。
| カードブランド | 加盟店の所在国 | 決済タイプ | 加盟店カテゴリー |
| ---------------- | ------- | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Visa** | グローバル | すべてのカード支払いタイプ | すべてのユーザーカテゴリー |
| **Mastercard** | グローバル* | すべてのカード支払いタイプ | すべてのユーザーカテゴリー |
| **アメリカン・エキスプレス** | グローバル | すべてのカード払いの種類** | すべてのユーザーカテゴリー |
| **ディスカバー** | グローバル | すべてのカード支払いタイプ | レンタカー、ホテル、地方 / 郊外の通勤・通学用交通機関 / 旅客輸送 (フェリーを含む)、旅客鉄道、貸切バス / バスツアー、汽船 / クルーズ客船、ボートレンタル / リース、食料品店とスーパーマーケット、電気車両充電、飲食店 / レストラン、酒場 (アルコール飲料)、ホテル / モーテル / リゾート、トレーラーパーク / キャンプ場、機器 / 工具 / かまど / 家電のレンタルおよびリース、レンタカー代理店、トラック / ユーティリティートレーラーのレンタル、トレーラーハウス / RV 車のレンタル、駐車場 / 駐車メーター / ガレージ、遊園地 / サーカス / 占い、その他レクリエーションサービス (上記に該当しないもの) |
| **ディスカバー** | グローバル | 非対面カード支払い | タクシーとリムジン |
MX ユーザーと、JP ユーザーの JPY 取引を除く
\** 一部のAmerican Express 発行会社は増分認証 (インクリメンタル・オーソリゼーション) に対応していません。これらのカードでこの機能をリクエストすると、返される [ステータス](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-incremental_authorization_supported) は `unavailable` になります。
### 対応が限定されるネットワーク (ベータ)
次のカードネットワークは、増分オーソリへの対応が限定されます。
| カードブランド | 加盟店の所在国 | 決済タイプ | 加盟店カテゴリー |
| ------------ | --------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **ダイナースクラブ** | アメリカ、カナダ、イギリス (Discover 経由) | 対面カード支払い | レンタカー、ホテル、地方 / 郊外の通勤・通学用交通機関 / 旅客輸送 (フェリーを含む)、旅客鉄道、貸切バス / バスツアー、汽船 / クルーズ客船、ボートレンタル / リース、食料品店とスーパーマーケット、電気車両充電、飲食店 / レストラン、酒場 (アルコール飲料)、ホテル / モーテル / リゾート、トレーラーパーク / キャンプ場、機器 / 工具 / かまど / 家電のレンタルおよびリース、レンタカー代理店、トラック / ユーティリティートレーラーのレンタル、トレーラーハウス / RV 車のレンタル、駐車場 / 駐車メーター / ガレージ、遊園地 / サーカス / 占い、その他レクリエーションサービス (上記に該当しないもの) |
| **ダイナースクラブ** | グローバル (Discover 経由) | 非対面カード支払い | レンタカー、ホテル、地方 / 郊外の通勤・通学用交通機関 / 旅客輸送 (フェリーを含む)、旅客鉄道、タクシー / リムジン、貸切バス / バスツアー、汽船 / クルーズ客船、ボートレンタル / リース、食料品店とスーパーマーケット、電気車両充電、飲食店 / レストラン、酒場 (アルコール飲料)、ホテル / モーテル / リゾート、トレーラーパーク / キャンプ場、機器 / 工具 / かまど / 家電のレンタルおよびリース、レンタカー代理店、トラック / ユーティリティートレーラーのレンタル、トレーラーハウス / RV 車のレンタル、駐車場 / 駐車メーター / ガレージ、遊園地 / サーカス / 占い、その他レクリエーションサービス (上記に該当しないもの) |
| **銀聯** | グローバル (Discover 経由) | 非対面カード支払い | レンタカー、ホテル、地方 / 郊外の通勤・通学用交通機関 / 旅客輸送 (フェリーを含む)、旅客鉄道、タクシー / リムジン、貸切バス / バスツアー、汽船 / クルーズ客船、ボートレンタル / リース、食料品店とスーパーマーケット、電気車両充電、飲食店 / レストラン、酒場 (アルコール飲料)、ホテル / モーテル / リゾート、トレーラーパーク / キャンプ場、機器 / 工具 / かまど / 家電のレンタルおよびリース、レンタカー代理店、トラック / ユーティリティートレーラーのレンタル、トレーラーハウス / RV 車のレンタル、駐車場 / 駐車メーター / ガレージ、遊園地 / サーカス / 占い、その他レクリエーションサービス (上記に該当しないもの) |
| **JCB** | グローバル (Discover 経由) | 非対面カード支払い | レンタカー、ホテル、地方 / 郊外の通勤・通学用交通機関 / 旅客輸送 (フェリーを含む)、旅客鉄道、タクシー / リムジン、貸切バス / バスツアー、汽船 / クルーズ客船、ボートレンタル / リース、食料品店とスーパーマーケット、電気車両充電、飲食店 / レストラン、酒場 (アルコール飲料)、ホテル / モーテル / リゾート、トレーラーパーク / キャンプ場、機器 / 工具 / かまど / 家電のレンタルおよびリース、レンタカー代理店、トラック / ユーティリティートレーラーのレンタル、トレーラーハウス / RV 車のレンタル、駐車場 / 駐車メーター / ガレージ、遊園地 / サーカス / 占い、その他レクリエーションサービス (上記に該当しないもの) |
### 増分オーソリと強力な顧客認証 (SCA)
貴社とカード保有者が [SCA 要件のある国](https://support.stripe.com/questions/countries-in-the-european-economic-area-\(eea\)-impacted-by-strong-customer-authentication-\(sca\)-regulation) に所在している場合、増分オーソリを使用する際に留意すべき重要な考慮事項があります。
初回オーソリ時に増分オーソリ機能をリクエストすると、Stripe はその決済方法を将来オフセッションで使用できるように自動的に設定します。そのため、初回オーソリには 3D セキュア (3DS) が必要ですが、この支払いに対するその後の増分オーソリは加盟店が開始したものと見なされ、追加の SCA が免除される可能性があります。支払い情報は増分オーソリによって将来オフセッションで使用するために保存されることを顧客に明確に示してください。
一部の 3DS 取引では、[不正なチャージバック (盗難または偽造されたカード) に対する責任は、貴社からカード発行会社に移ります](https://docs.stripe.com/payments/3d-secure/authentication-flow.md#disputed-payments)。加盟店により開始される取引を送信する場合は、ライアビリティシフトのメリットはありません。
> #### 法令遵守
>
> 顧客の支払い情報を保存する際には、適用されるすべての法律、規制、ネットワークルールを遵守する責任を貴社が負うものとします。たとえば、顧客が貴社のウェブサイトやアプリをあまり利用していないときに請求する場合など、将来使用するために決済手段を保存するケースがあります。ウェブサイトやアプリに、決済手段の情報をどのように保存するのか明記した規約を追加し、顧客がオプトインできるようにします。
>
> 顧客がオフラインのときに請求する場合は、規約に次の内容が含まれていることを確認してください。
>
> - 特定の取引について、貴社が顧客の代理として単独の支払いまたは一連の支払いを開始することを許可する、顧客からの同意
- 想定される支払いのタイミングと頻度 (たとえば、スケジュール指定の分割払い、サブスクリプションの支払い、または不定期のトップアップに対する支払いなど)
- 支払い金額の決定方法
- サブスクリプションサービス用の決済手段の場合は、キャンセルポリシー
>
> これらの条件に対して顧客から得た書面による同意の記録を必ず保管してください。
## ベストプラクティス
増分オーソリを利用する場合は、オーソリの見積もり額の内訳について最終顧客に事前通知します。見積もり額はその後の増分オーソリで引き上げられることがあります。そのベストプラクティスを下記にいくつかご紹介します。
- 見積もり額に対するオーソリであることと、決済時 (購入前) に後続のオーソリリクエストが発生する可能性があることを開示します。
- 予想取引総額の妥当な概算に基づいて、見積もり額を決定します。
> #### 法令遵守
>
> 増分オーソリを行うにあたり、お客様は適用されるすべての法律、規制、ネットワーク規則を遵守する責任を負うものとします。この機能を使用するカードネットワークの規則に照らし、取引の内容が適用される規則に準拠していることを確認してください。規則はネットワークごとに異なります。たとえば、ほとんどのカードネットワークでは、初回のオーソリの対象となる見積もり額の計算方法が制限されており、オーソリ時に取引額が判明している場合 (継続サブスクリプションの支払いなど)、その取引で増分オーソリを利用することは禁じられています。
>
> このページに記載されている情報のうち、これらの要件の遵守に関する情報は一般的なガイダンスであり、法律、税務、会計、その他の専門的なアドバイスではありません。自らの義務について不明な点がある場合は、専門家に相談することをお勧めします。
## 未キャプチャーの PaymentIntent を作成して確定する
`request_incremental_authorization` パラメーターを使用して、増分予定の PaymentIntents を指定できます。
`if_available` または `never` パラメーターを使用して、PaymentIntent の更新を開始するタイミングを決定します。
- `if_available`: 作成した PaymentIntent では、今後の増分が[増分オーソリ対応状況](https://docs.stripe.com/payments/incremental-authorization.md#availability)に基づいて許可されます。
- `never`: 作成した PaymentIntent では、今後の増分が許可されません。
未キャプチャー分の支払いに対して増分オーソリを実行できるのは、[PaymentIntent の確定](https://docs.stripe.com/api/payment_intents/confirm.md)後に限られます。確定前に支払いの金額を調整するには、代わりに [update メソッド](https://docs.stripe.com/api/payment_intents/update.md)を使用します。
```curl
curl https://api.stripe.com/v1/payment_intents \
-u "<>:" \
-d amount=1000 \
-d currency=usd \
-d "payment_method_types[]"=card \
-d payment_method=pm_card_debit_incrementalAuthAuthorized \
-d confirm=true \
-d capture_method=manual \
-d "expand[]"=latest_charge \
-d "payment_method_options[card][request_incremental_authorization]"=if_available
```
PaymentIntent 確認レスポンスでは、[latest_charge](https://docs.stripe.com/api/charges/object.md) の [payment_method_details](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details) フィールドに、顧客の支払い方法と[上記の使用可能条件](https://docs.stripe.com/payments/incremental-authorization.md#availability)に基づいて `available` または `unavailable` が示され、これによって PaymentIntent が増分オーソリに使用可能かどうかが決まります (PaymentIntent 確認リクエストにおいて増分オーソリをリクエストしなかった場合は、`unavailable` になります)。
```json
// PaymentIntent Response
{
"id": "pi_ANipwO3zNfjeWODtRPIg",
"object": "payment_intent",
"amount": 1000,
"amount_capturable": 1000,
"amount_received": 0,
...
// if latest_charge is expanded
{
"latest_charge": {
"amount": 1000,
"payment_method_details": {
"card": {
"incremental_authorization": {"status": "available" // or "unavailable"
}
}
}
...
}
}
}
```
## 増分オーソリを実行する
PaymentIntent のオーソリ額を増やすには、[increment_authorization](https://docs.stripe.com/api/payment_intents/increment_authorization.md) エンドポイントを使用して、増額後の新しい合計[オーソリ額](https://docs.stripe.com/api/payment_intents/increment_authorization.md#increment_authorization-amount)を指定します。この金額は、元のオーソリ額よりも高く設定されていなければなりません。これにより、更新後のオーソリ額が顧客のカードで試行されるようになります。1 つの PaymentIntent でこのエンドポイントを複数回呼び出し、オーソリ額をさらに増やすことが可能です。
1 つの PaymentIntent につき、最大 10 回まで増分オーソリの試行が可能です。
#### curl
```bash
curl https://api.stripe.com/v1/payment_intents/{{PAYMENT_INTENT_ID}}/increment_authorization \
-u <>: \
-d "amount"=1500
```
増分オーソリが成功すると、金額が更新された PaymentIntent オブジェクトが返されます。オーソリが失敗すると、代わりに [card_declined](https://docs.stripe.com/error-codes.md#card-declined) エラーが返されます。PaymentIntent オブジェクトは、前回のオーソリ額を引き続きキャプチャーします。増分オーソリに失敗した場合、その他の PaymentIntent フィールド ([application_fee_amount](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-application_fee_amount)、[transfer_data](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-transfer_data)、[metadata](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-metadata)、[description](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-description)、[statement_descriptor](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-statement_descriptor) など) に行われる更新は保存されません。
増分オーソリには上限があり、500 USD (または現地通貨による相当額)、または前回のオーソリ額の 500% のいずれか高い方が増分 1 回の上限額にあたります。
## PaymentIntent をキャプチャーする
増分オーソリされた PaymentIntent のオーソリ額を増やすかどうかにかかわらず、当初のオーソリの有効期間が切れる前に売上をキャプチャーする必要があります。増分オーソリでは[有効期間](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md)は延長されません。過去に増分オーソリされた PaymentIntent のオーソリ額をキャプチャーする場合は、通常のときと同様に [[capture エンドポイント](https://docs.stripe.com/api/payment_intents/capture.md)を使用します。
#### curl
```bash
curl https://api.stripe.com/v1/payment_intents/{{PAYMENT_INTENT_ID}}/capture \
-u <>:
```
増分オーソリが成功すると、更新後の金額が指定されたキャプチャー済みの PaymentIntent オブジェクトが返されます。オーソリが失敗すると、代わりに [card_declined エラー](https://docs.stripe.com/error-codes.md#card-declined)が返されます。PaymentIntent はキャプチャーされませんが、前回のオーソリ額は引き続きキャプチャーされます。増分オーソリに失敗した場合、その他の PaymentIntent フィールド ([application_fee_amount](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-application_fee_amount)、[transfer_data](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-transfer_data)、[metadata](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-metadata)、[description](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-description)、[statement_descriptor](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-statement_descriptor) など) に行われる更新は保存されません。
## 実装内容をテストする
任意のセキュリティコード、郵便番号、有効期限の Stripe テストカードを使用して、テスト中に増分オーソリをトリガーします:
1. [create and confirm PaymentIntent step](https://docs.stripe.com/payments/incremental-authorization.md#create-and-confirm) でテストカードを使用して PaymentIntent を作成します。
1. [perform an incremental authorization step](https://docs.stripe.com/payments/incremental-authorization.md#increment-authorization) で指定されたパラメータで増分オーソリを実行します。次のテストカードを使用して、増分オーソリの成功または失敗をシミュレートします。
| 番号 | 決済手段 | 説明 |
| ---------------- | ---------------------------------------------- | -------------------------- |
| 4000058400000063 | `pm_card_debit_incrementalAuthAuthorized` | オーソリ額をリクエストに記載された金額に増額します。 |
| 4000008400000076 | `pm_card_credit_disableEnterpriseCardFeatures` | オーソリ増額リクエストを拒否します。 |