決済手段を保留する
決済を作成する際に、対象の決済手段を保留することで、売上をリザーブして後からキャプチャーすることができます。たとえば、ホテルではゲストのチェックイン前に決済を全額オーソリし、ゲストのチェックアウト時にその金額をキャプチャーするといったことがよく行われます。
決済のオーソリにより、顧客の決済手段で金額が確保されて保証されます。API を使用している場合、支払いの payment_method_details.card.capture_before 属性は、オーソリの有効期限が切れる日時を示します。
You need to capture the funds before the authorization expires. If the authorization expires before you capture the funds, the funds are released and the payment status changes to canceled
. Learn more about statuses for asynchronous payments.
注
As of April 14, 2024, Visa has shortened the authorization window for online merchant-initiated transactions from 7 days to 5 days, and they have lengthened the authorization window for in-person (Terminal transactions) from 2 days to 5 days.
Authorization validity windows for card-not-present transactions
Card brand | MIT authorization validity window | CIT authorization validity window |
---|---|---|
Visa | 5 days | 7 days |
Mastercard | 7 days | 7 days |
American Express | 7 days | 7 days |
Discover | 7 days | 7 days |
Authorization validity windows for card-present transactions (Terminal)
Card brand | Authorization validity window |
---|---|
Visa | 5 days |
Mastercard | 2 days |
American Express | 2 days |
Discover | 2 days |
導入前に、オーソリとキャプチャーの分離に関する次の制限事項を確認してください。
制限事項
オーソリのみを行うように Stripe に指示する
オーソリとキャプチャーを分離することを示すには、PaymentIntent の作成時に、capture_method に manual
を指定します。このパラメーターは、Stripe に対して、金額のオーソリのみを行い、顧客の決済手段でキャプチャーしないよう指示します。
上記の方法では、対象となる決済手段を使用した PaymentIntent でのみ「後でのキャプチャー」を Stripe に指示できます。たとえば、カード支払いと Giropay (後でのキャプチャーをサポートしていない) を 1 つの PaymentIntent で受け付けることはできません。後でのキャプチャーをサポートしていない可能性のある決済手段を受け付けるには、payment_method_options[<payment_method_type>]
オブジェクトで capture_method=manual
を設定して、capture-after-per-payment-method を設定できます。たとえば、payment_method_options[card][capture_method]=manual
を設定すると、カード支払いのみを保留にすることになります。決済手段はダッシュボードで管理できます。Stripe は取引額、通貨、決済フローなどの要素に基づいて、適切な決済手段が返されるように処理します。
また、以下の例のように決済手段のタイプを使用して、card
と giropay
を一覧表示することもできます。
引き続きキャプチャーを行う前に、カード詳細による決済手段を PaymentIntent に関連付け、PaymentIntent を確定してカードをオーソリします。これを行うには、PaymentIntent で payment_method
フィールドと confirm
フィールドを設定します。
オーソリの延長
Usually, an authorization for an online card payment is valid for 7 days. To increase the validity period, you can place an extended hold on an online card payment.
売上をキャプチャーする
決済手段のオーソリが完了すると、PaymentIntent のステータスは requires_capture
に移行します。オーソリ済みの売上をキャプチャーするには、PaymentIntent のキャプチャーリクエストを行います。デフォルトでは、オーソリ済みの総額がキャプチャーされます。当初の金額より少ない、または (特定のオンラインカード決済に対して) 多い金額をキャプチャーするには、amount_to_capture オプションを渡します。部分的なキャプチャーを行った場合、残額は自動的にリリースされます。オンラインカード決済に対して当初より多い金額をキャプチャーする場合は、オーバーキャプチャーに関するドキュメントで詳細をご確認ください。
次の例は、オーソリ済みの 10.99 USD の支払いのうち、7.50 USD をキャプチャーする方法を示しています。
一部のカード決済は Multicapture のご利用対象となりますが、大半の決済ではオーソリ済みの決済をキャプチャーできるのは 1 回のみです。決済の一部をキャプチャーした場合、差額分に対して別途キャプチャーを行うことはできません (代わりに、顧客の決済手段を後で使用できるように保存し、必要に応じてそれ以降の決済を作成することを検討してください)。
カード発行会社および決済手段のインターフェイスによっては、カード明細書でオーソリとキャプチャー (売上処理) された支払いが区別されておらず、顧客の混乱を招くことがあります。
さらに、顧客が手動キャプチャーによって PaymentIntent 上で支払い処理を完了すると、payment_intent.amount_capturable_updated
イベントがトリガーされます。PaymentIntent からキャプチャー可能な合計額を確認するには、PaymentIntent の amount_capturable プロパティを調べます。