# 支払い方法を保留する オーソリとキャプチャーを分離して、支払いはすぐに作成しますが、売上のキャプチャーは後で行います。 決済を作成する際に、対象の支払い方法を保留することで、売上をリザーブして後からキャプチャーすることができます。たとえば、ホテルではゲストのチェックイン前に決済を全額オーソリし、ゲストのチェックアウト時にその金額をキャプチャーするといったことがよく行われます。これは、*手動キャプチャー* (Manually capture funds separately from an authorization)と呼ばれることもあります。 決済のオーソリにより、顧客の支払い方法で金額が確保されて保証されます。API を使用している場合、支払いの [payment_method_details.card.capture_before](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-capture_before) 属性は、オーソリの有効期限が切れる日時を示します。 オーソリの有効期限が切れる前に売上をキャプチャーする必要があります。売上のキャプチャー前にオーソリの有効期限が切れた場合、売上がリリースされ、決済ステータスが `canceled` に変更されます。詳細は[非同期型の支払いのステータス](https://docs.stripe.com/payments/paymentintents/lifecycle.md)をご確認ください。 ## オーソリの有効期間 次の表は、さまざまな取引タイプをオーソリする際の有効期間の概要を示しています。 ### カード非提示取引 | カードブランド | [加盟店により開始される取引](https://docs.stripe.com/payments/cits-and-mits.md)のオーソリの有効期間 | [顧客により開始される取引](https://docs.stripe.com/payments/cits-and-mits.md)のオーソリの有効期間 | | ---------------- | ---------------------------------------------------------------------------- | --------------------------------------------------------------------------- | | **Visa** | 5 日間* | 7 日 | | **Mastercard** | 7 日 | 7 日 | | **アメリカン・エキスプレス** | 7 日 | 7 日 | | **ディスカバー** | 7 日 | 7 日 | 正確なオーソリ期間は、決済処理を見越して 4 日と 18 時間です。 > Stripe とカードネットワークは、[off_session](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-off_session) などの API パラメーターだけでなく、カード保有者参加のシグナルに基づいて、取引を MIT または CIT として分類します。たとえば、`off_session: true` が指定された支払いでも、CVC が存在する場合は CIT として分類され、代わりに CIT オーソリ期間が発生することがあります。 ### カード提示取引 (対面支払い) | カードブランド | オーソリの有効期間 | | ---------------- | --------- | | **Visa** | 5 日間* | | **Mastercard** | 2 日 | | **アメリカン・エキスプレス** | 2 日 | | **ディスカバー** | 2 日 | 正確なオーソリ期間は、決済処理を見越して 4 日と 18 時間です。 ### 日本における 30 日間のオーソリ期間 日本に所在するアカウントの場合、Visa、Mastercard、JCB、ダイナースクラブ、ディスカバーを利用する日本円建ての取引は最長 30 日間、保留にできます。 日本円以外の取引とアメリカン・エキスプレスの取引は、標準どおり 7 日間で有効期限が切れます。 > 2024 年 4 月 14 日以降、Visa はオンラインで[加盟店により開始される取引](https://docs.stripe.com/payments/cits-and-mits.md)のオーソリ期間を 7 日から 5 日に短縮しました。また、(端末による) 対面取引のオーソリ期間が 2 日から 5 日に延長されました。 ## 決済手段の制限事項 導入前に、オーソリとキャプチャーの分離に関する次の制限事項を確認してください。 - オーソリと*キャプチャー* (Fulfillment is the process of providing the goods or services purchased by a customer, typically after payment is collected)の分離に対応しているのは一部の決済手段に限られます。対応している決済手段は、カード支払い、Affirm、Afterpay、Cash App Pay、Klarna、PayPal などです。一方、対応していない決済手段は、[ACH](https://docs.stripe.com/payments/ach-direct-debit.md) や [iDEAL](https://docs.stripe.com/payments/ideal.md) などです。詳細は[決済手段の機能のサポート](https://docs.stripe.com/payments/payment-methods/payment-method-support.md)をご覧ください。 - 上記の表に記載されている以外にも、他の決済手段にはさまざまな規則とオーソリ期間が適用されます。 - カード支払い: 通常、オンライン決済で 7 日間、対面の Terminal 決済で 2 日間、金額が保留されます (取引のタイプとカードネットワークに応じて異なります)。有効期間延長の対象となる一部の[オンライン](https://docs.stripe.com/payments/extended-authorization.md)決済および [Terminal 決済のオーソリ](https://docs.stripe.com/terminal/features/extended-authorizations.md)については、オーソリの延長をリクエストすることができます。また、カードネットワークはキャプチャーを意図しない 1 USD のオーソリを禁止する可能性があります。 - [Affirm](https://docs.stripe.com/payments/affirm/accept-a-payment.md?platform=web#manual-capture): Affirm で非常に高額の注文額に対して頭金が必要な場合、オーソリ時にその金額が請求され、支払いがキャプチャーされなかった場合は返金されます。その後は、30 日以内に支払い残高をキャプチャーしてください。 - [Afterpay / Clearpay](https://docs.stripe.com/payments/afterpay-clearpay/accept-a-payment.md?web-or-mobile=web&payment-ui=direct-api#manual-capture): オーソリ時に、顧客は最初の返済の分割払いを支払います。Afterpay は、支払いがキャプチャーされなかった場合、その支払いを返金します。13 日以内に支払い残高をキャプチャーする必要があります。 - [Cash App Pay](https://docs.stripe.com/payments/cash-app-pay/accept-a-payment.md?web-or-mobile=web&payment-ui=direct-api#manual-capture): 決済を完了するには、有効なオーソリを 7 日以内にキャプチャーする必要があります。 - [Klarna](https://docs.stripe.com/payments/klarna/accept-a-payment.md?web-or-mobile=web&payment-ui=direct-api#manual-capture): 支払いリクエストから 28 日目の午前 0 時までに支払いをキャプチャーする必要があります。そうしないと、オーソリの有効期限が切れます。たとえば、UTC 2020-10-01 14:00 に行われた支払いリクエストは、UTC 2020-10-29 00:00 までにキャプチャーする必要があります。 - [PayPal](https://docs.stripe.com/payments/paypal/accept-a-payment.md?web-or-mobile=web&payment-ui=direct-api#manual-capture): 金額を 10 日間保留します。Stripeは自動的にさらに 10 日間 (合計 20 日間) の保留の延長を試みます。[決済の設定](https://docs.stripe.com/payments/paypal/choose-settlement-preference.md)がオーソリ有効期間に影響する場合があります。詳細については、[オーソリとキャプチャーの分離](https://docs.stripe.com/payments/paypal/accept-a-payment.md?web-or-mobile=web&payment-ui=direct-api#manual-capture)をご覧ください。 ## ダッシュボードを使用してオーソリとキャプチャーを行う コードを記述せずに、支払いのオーソリと売上のキャプチャーを別々に行うことができます。 1. ダッシュボードで[新しい支払いを作成](https://dashboard.stripe.com/test/payments/new)し、**1 回限り**を選択します。 2. 支払い方法を入力または選択する際に、**その他のオプション** を選択して、**売上を後でキャプチャー**を選びます。 支払いは、[支払いページ](https://dashboard.stripe.com/test/payments)に**未キャプチャー**として表示されます。 売上をキャプチャーするには、支払いの詳細ページに移動して**キャプチャー**をクリックします。 ## オーソリのみを行うように Stripe に指示する #### Checkout Sessions API オーソリとキャプチャーの分離を指定するには、Checkout セッションの作成時に [capture_method](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-payment_intent_data-capture_method) を `manual` に指定します。このパラメーターは、Stripe に対して、金額のオーソリのみを行い、顧客の決済手段でキャプチャーしないよう指示します。 ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d "line_items[0][price]={{PRICE_ID}}" \ -d "line_items[0][quantity]=2" \ -d mode=payment \ -d ui_mode=elements \ -d "payment_intent_data[capture_method]=manual" ``` 上記の方法では、対象となる決済手段を使用した Checkout セッションでのみ Stripe に「後からキャプチャー」を指示できます。 #### Payment Intents API オーソリとキャプチャーを分離することを示すには、PaymentIntent の作成時に、[capture_method](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-capture_method) に `manual` を指定します。このパラメーターは、Stripe に対して、金額のオーソリのみを行い、顧客の支払い方法でキャプチャーしないよう指示します。 ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1099 \ -d currency=usd \ -d "payment_method_types[]=card" \ -d capture_method=manual ``` 上記の方法では、対象となる決済手段を使用した PaymentIntent でのみ「後でのキャプチャー」を Stripe に指示できます。たとえば、カード支払いと SEPA ダイレクトデビット (後でのキャプチャーに対応していない) を 1 つの PaymentIntent で受け付けることはできません。後でのキャプチャーに対応していない可能性のある決済手段を受け付けるには、`payment_method_options[]` オブジェクトで `capture_method=manual` を設定して、capture-after-per-payment-method を設定できます。 たとえば、`payment_method_options[card][capture_method]=manual` を設定すると、カード支払いのみが保留されます。決済手段は[ダッシュボード](https://dashboard.stripe.com/settings/payment_methods)で管理できます。Stripe は取引額、通貨、決済フローなどの要素に基づいて、各顧客に対応した最も関連性の高い決済手段を[動的に表示](https://docs.stripe.com/payments/payment-methods/dynamic-payment-methods.md)するロジックを処理します。 ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1099 \ -d currency=usd \ -d "automatic_payment_methods[enabled]=true" \ -d "payment_method_options[card][capture_method]=manual" ``` また、以下の例のように[決済手段タイプ](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_types)を使用して、`card` と `sepa_debit` を一覧表示することもできます。 ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1099 \ -d currency=eur \ -d "payment_method_types[]=card" \ -d "payment_method_types[]=sepa_debit" \ -d "payment_method_options[card][capture_method]=manual" ``` 引き続きキャプチャーを行う前に、カード詳細による支払い方法を PaymentIntent に関連付け、PaymentIntent を確定してカードをオーソリします。これを行うには、PaymentIntent で `payment_method` フィールドと `confirm` フィールドを設定します。 > #### オーソリの拡張 > > 通常、オンラインカード決済に対するオーソリの有効期間は、7 日間です。この有効期間を延長するために、[オンラインカード決済に対する保留を延長する](https://docs.stripe.com/payments/extended-authorization.md)ことができます。 ## 売上をキャプチャーする > #### Checkout セッションには PaymentIntent ID が割り当てられています > > Checkout Sessions API を使用している場合は、Checkout Session オブジェクトで返される [PaymentIntent ID](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-payment_intent) を必ず使用してください。 支払い方法のオーソリが完了すると、PaymentIntent の[ステータス](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-status)は `requires_capture` に移行します。オーソリ済みの売上をキャプチャーするには、PaymentIntent の[キャプチャー](https://docs.stripe.com/api/payment_intents/capture.md)リクエストを行います。デフォルトでは、オーソリ済みの総額がキャプチャーされます。当初の金額より少ない、または (特定のオンラインカード決済に対して) 多い金額をキャプチャーするには、[amount_to_capture](https://docs.stripe.com/api/payment_intents/capture.md#capture_payment_intent-amount_to_capture) オプションを渡します。部分的なキャプチャーを行った場合、残額は自動的にリリースされます。オンラインカード決済に対して当初より多い金額をキャプチャーする場合は、[オーバーキャプチャーに関するドキュメント](https://docs.stripe.com/payments/overcapture.md)で詳細をご確認ください。 次の例は、オーソリ済みの 10.99 USD の支払いのうち、7.50 USD をキャプチャーする方法を示しています。 ```curl curl https://api.stripe.com/v1/payment_intents/pi_123/capture \ -u "<>:" \ -d amount_to_capture=750 ``` 一部のカード決済は[マルチキャプチャー](https://docs.stripe.com/payments/multicapture.md)の対象となりますが、大半の決済ではオーソリ済みの決済をキャプチャーできるのは 1 回のみです。決済の一部をキャプチャーした場合、差額分に対して別途キャプチャーを行うことはできません (代わりに、[顧客の決済手段の詳細を後で使用できるように保存](https://docs.stripe.com/payments/save-during-payment.md#save-payment-details-for-future-use)し、必要に応じてそれ以降の決済を作成することを検討してください)。 カード発行会社および支払い方法のインターフェイスによっては、カード明細書でオーソリとキャプチャー (売上処理) された支払いが区別されておらず、顧客の混乱を招くことがあります。 さらに、顧客が手動キャプチャーによって PaymentIntent 上で支払い処理を完了すると、`payment_intent.amount_capturable_updated` イベントがトリガーされます。PaymentIntent からキャプチャー可能な合計額を確認するには、PaymentIntent の [amount_capturable](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-amount_capturable) プロパティを調べます。 ## オーソリをキャンセルする オーソリをキャンセルする必要がある場合は、[PaymentIntent をキャンセル](https://docs.stripe.com/refunds.md#cancel-payment)してください。 ## 有効期限が切れる前に支払いをキャプチャーする (Private preview) You can instruct Stripe to automatically capture before authorization expires instead of manually triggering capture for card payment methods. Use automatic delayed capture to ensure you don’t miss capturing authorized payments. You can also control when the capture occurs using the `capture_by` parameter. 自動遅延キャプチャーを有効にするには、PaymentIntentで[capture_method](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_options-card)を`automatic_delayed` として設定します: ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1099 \ -d currency=usd \ -d "payment_method_types[]=card" \ -d "payment_method_options[card][capture_method]=automatic_delayed" ``` このアプローチでは、Stripe はオーソリの有効期限が切れる前にお客様のクレジットカード決済をキャプチャーし、有効期限の約 6 時間前にキャプチャーをトリガーします。これは、有効期限前に Authorized Payments をキャプチャーするためのバックアッププロセスとして機能します。PaymentIntent が自動的にキャプチャーされる前でも、手動で [キャプチャー](https://docs.stripe.com/api/payment_intents/capture.md) または [キャンセル](https://docs.stripe.com/refunds.md#cancel-payment) できます。 ### Control capture timing Use the `capture_by` parameter to control when funds are captured from the customer’s account. The following values are supported: - `auth_expiry`: Captures funds before the authorization expires. This is the default behavior when `capture_by` is omitted. - `end_of_day`: Captures funds at the end of the day (UTC). - `target_delay`: Captures funds after a specified delay. When using `target_delay`, provide a `capture_delay` hash with `days` or `hours` to specify the delay period. The following example uses `capture_by` set to `target_delay` with a `capture_delay` of 3 days to automatically capture the PaymentIntent 3 days after successful authorization: ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1099 \ -d currency=usd \ -d "payment_method_types[]=card" \ -d "payment_method_options[card][capture_method]=automatic_delayed" \ -d "payment_method_options[card][capture_by]=target_delay" \ -d "payment_method_options[card][capture_delay][days]=3" ``` This is useful if you know the amount of time needed to perform actions between authorization and capture, and to make sure you capture the payment before the authorization expires. You can set both `days` and `hours` as long as the total delay doesn’t exceed 30 days. > `capture_method=automatic_delayed`を使用すると、Stripe はオーソリ有効期限前に決済をキャプチャーすることを優先します。オーソリ期間が指定された遅延期間よりも短い場合は、遅延期間を無視して有効期限前に PaymentIntent をキャプチャーします。 ## See also - [Checkout でのオーソリとキャプチャーを分ける](https://docs.stripe.com/payments/accept-a-payment.md?payment-ui=checkout&ui=stripe-hosted#auth-and-capture) - [オンラインカード決済に対する保留を延長する](https://docs.stripe.com/payments/extended-authorization.md)