オーソリを増額する
キャプチャーする前に、確定した PaymentIntent で既存のオーソリを増額します。
Incremental authorization allows you to increase the authorized amount on a confirmed PaymentIntent before you capture it. Before capture, each incremental authorization appears on the credit card statement as an additional pending entry (for example, a 10 USD authorization incremented to 15 USD appears as separate 10 USD and 5 USD pending entries). After capture, the pending authorizations are removed, and the total captured amount appears as one final entry.
Availability 
When using incremental authorizations, be aware of the following restrictions:
- It’s only available with Visa, Mastercard, or Discover.
- Certain card brands have merchant category restrictions (see below).
- mode is set to
payment
and capture_method is set tomanual
on the CheckoutSession.
To learn more about incremental authorization and in-person payments made using Terminal, see Incremental Authorizations.
IC+ feature
We offer incremental authorizations to users on IC+ pricing. If you’re on standard Stripe pricing and want access to this feature, you can learn more at support.stripe.com.
Availability by card network and merchant category
増分オーソリは、下記の基準を満たす支払いで使用できます。ユーザーカテゴリーは、ダッシュボードで確認できます。
以下の条件を満たさない支払いで増分オーソリを実行しようとすると、エラーが発生します。
カードブランド | 加盟店の所在国 | 決済タイプ | 加盟店カテゴリー |
---|---|---|---|
Visa | グローバル | すべてのカード支払いタイプ | すべてのユーザーカテゴリー |
Mastercard | グローバル* | すべてのカード支払いタイプ | すべてのユーザーカテゴリー |
ディスカバー | グローバル | すべてのカード支払いタイプ | レンタカー、ホテル、地方 / 郊外の通勤・通学用交通機関 / 旅客輸送 (フェリーを含む)、旅客鉄道、貸切バス / バスツアー、汽船 / クルーズ客船、ボートレンタル / リース、食料品店とスーパーマーケット、電気車両充電、飲食店 / レストラン、酒場 (アルコール飲料)、ホテル / モーテル / リゾート、トレーラーパーク / キャンプ場、機器 / 工具 / かまど / 家電のレンタルおよびリース、レンタカー代理店、トラック / ユーティリティートレーラーのレンタル、トレーラーハウス / RV 車のレンタル、駐車場 / 駐車メーター / ガレージ、遊園地 / サーカス / 占い、その他レクリエーションサービス (上記に該当しないもの) |
ディスカバー | グローバル | 非対面カード支払い | タクシーとリムジン |
対応が限定されるネットワーク (ベータ)
増分オーソリと強力な顧客認証 (SCA)
貴社とカード保有者が SCA 要件のある国 に所在している場合、増分オーソリを使用する際に留意すべき重要な考慮事項があります。
初回オーソリ時に増分オーソリ機能をリクエストすると、Stripe はその決済方法を将来オフセッションで使用できるように自動的に設定します。そのため、初回オーソリには 3D セキュア (3DS) が必要ですが、この支払いに対するその後の増分オーソリは加盟店が開始したものと見なされ、追加の SCA が免除される可能性があります。支払い情報は増分オーソリによって将来オフセッションで使用するために保存されることを顧客に明確に示してください。
一部の 3DS 取引では、不正なチャージバック (盗難または偽造されたカード) に対する責任は、貴社からカード発行会社に移ります。加盟店により開始される取引を送信する場合は、ライアビリティシフトのメリットはありません。
Compliance
顧客の支払い情報を保存する際には、適用されるすべての法律、規制、ネットワークルールを遵守する責任を貴社が負うものとします。たとえば、顧客が貴社のウェブサイトやアプリをあまり利用していないときに請求する場合など、将来使用するために決済手段を保存するケースがあります。ウェブサイトやアプリに、決済手段の情報をどのように保存するのか明記した規約を追加し、顧客がオプトインできるようにします。
顧客がオフラインのときに請求する場合は、規約に次の内容が含まれていることを確認してください。
- 特定の取引について、貴社が顧客の代理として単独の支払いまたは一連の支払いを開始することを許可する、顧客からの同意
- 想定される支払いのタイミングと頻度 (たとえば、スケジュール指定の分割払い、サブスクリプションの支払い、または不定期のトップアップに対する支払いなど)
- 支払い金額の決定方法
- サブスクリプションサービス用の決済手段の場合は、キャンセルポリシー
これらの条件に対して顧客から得た書面による同意の記録を必ず保管してください。
Best practices 
When using incremental authorization, proactively notify your end customer with the details of any authorizations for estimated amounts, which might be followed by incremental authorizations that increase those amounts. Here are some best practices for doing so:
- Disclose that an authorization is for an estimated amount and that subsequent authorization requests might follow at the time of checkout, before purchase.
- Base estimated amounts on a genuine estimate of what the total transaction amount will be.
You can use the custom_text field when creating a new CheckoutSession to display additional text on the checkout page to help meet compliance requirements.
Compliance
You’re responsible for your compliance with all applicable laws, regulations, and network rules when using incremental authorization. Consult the network rules for the card networks that you plan to use this feature with to make sure your sales comply with applicable rules, which vary by network. For example, most card networks restrict how you can calculate estimated amounts included in the initial authorization, and prohibit the use of incremental authorizations for transactions where the transaction amount should be known at the time of authorization (for example, charges for recurring subscriptions).
The information provided on this page relating to your compliance with these requirements is for your general guidance, and isn’t legal, tax, accounting, or other professional advice. Consult with a professional if you’re unsure about your obligations.
CheckoutSession を作成する
Add a checkout button to your website that calls a server-side endpoint to create a Checkout Session.
<html> <head> <title>Buy cool new product</title> </head> <body> <!-- Use action="/create-checkout-session.php" if your server is PHP based. --> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>
A Checkout Session is the programmatic representation of what your customer sees when they’re redirected to the payment form. You can configure it with options such as:
- Line items to charge
- Currencies to use
You must populate success_
with the URL value of a page on your website that Checkout returns your customer to after they complete the payment. You can optionally also provide a cancel_
value of a page on your website that Checkout returns your customer to if they terminate the payment process before completion.
注
Checkout Sessions expire 24 hours after creation by default.
After creating a Checkout Session, redirect your customer to the URL returned in the response.
Lastly, set request_incremental_authorization as if_
to enable the incremental authorization feature.
After the customer has completed checkout, the payment_method_details field on the latest_charge in the PaymentIntent contains available
or unavailable
based on the customer’s payment method and the availability criteria mentioned above, which determines whether a PaymentIntent is eligible for incremental authorization or not. (If you didn’t request incremental authorization when creating the CheckoutSession, it will be unavailable
.)
{ "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 をマウントする
Checkout は、HTTPS 接続を介して支払い情報をStripeに安全に送信する iframe でレンダリングされます。
よくある間違い
一部の支払い方法では、別のページにリダイレクトして支払いを確定する必要があるため、Checkout は別の iframe 内に配置しないでください。
デザインをカスタマイズする
アカウントのブランディング設定で、背景色、ボタンの色、枠線の角丸半径、フォントを設定して、サイトのデザインに合わせて Checkout をカスタマイズします。
デフォルトでは、Checkout は外側に余白やマージンが追加されずに表示されます。必要なマージンを適用するには (四方すべてに 16px など)、目的の余白を適用するコンテナー要素 (div など) を使用することをお勧めします。
戻り先ページを表示する
After your customer attempts payment, Stripe redirects them to a return page that you host on your site. When you created the Checkout Session, you specified the URL of the return page in the return_url parameter. Read more about other options for customizing redirect behavior.
When rendering your return page, retrieve the Checkout Session status using the Checkout Session ID in the URL. Handle the result according to the session status as follows:
complete
: The payment succeeded. Use the information from the Checkout Session to render a success page.open
: The payment failed or was canceled. Remount Checkout so that your customer can try again.
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 }
Redirect-based payment methods
During payment, some payment methods redirect the customer to an intermediate page, such as a bank authorization page. When they complete that page, Stripe redirects them to your return page.
Learn more about redirect-based payment methods and redirect behavior.
増分オーソリを実行する
To increase the authorized amount on a PaymentIntent, use the increment_authorization endpoint and provide the updated total authorization amount to increment to, which must be greater than the original authorized amount. This attempts to authorize for a higher amount on your customer’s card. A single PaymentIntent can call this endpoint multiple times to further increase the authorized amount.
You have a maximum of 10 incremental authorization attempts per PaymentIntent.
curl https://api.stripe.com/v1/payment_intents/{{PAYMENT_INTENT_ID}}/increment_authorization \ -u
: \ -d "amount"=1500sk_test_BQokikJOvBiI2HlWgH4olfQ2
If the incremental authorization succeeds, it returns the PaymentIntent object with the updated amount. If the authorization fails, it returns a card_declined error instead. The PaymentIntent object remains capturable for the previously authorized amount. Any potential updates to other PaymentIntent fields (for example, application_fee_amount, transfer_data, metadata, description, and statement_descriptor) aren’t saved if the incremental authorization fails.
Incremental authorization has a maximum cap of either 500 USD (or local equivalent) over, or 500% over the previously authorized amount (whichever is higher) for each individual increment.
PaymentIntent をキャプチャーする
Whether you increase the authorized amount on a PaymentIntent with an incremental authorization or not, you need to capture the funds before the initial authorization expires–incremental authorizations don’t extend the validity period. To capture the authorized amount on a PaymentIntent with prior incremental authorizations, use the capture endpoint as usual.
curl https://api.stripe.com/v1/payment_intents/{{PAYMENT_INTENT_ID}}/capture \ -u
:sk_test_BQokikJOvBiI2HlWgH4olfQ2
If the incremental authorization succeeds, it returns the captured PaymentIntent object with the updated amount. If the authorization fails, it returns a card_declined error instead. The PaymentIntent isn’t captured, but it remains capturable for the previously authorized amount. Any potential updates to other PaymentIntent fields (for example, application_fee_amount, transfer_data, metadata, description and statement_descriptor) aren’t saved if the incremental authorization fails.
実装内容をテストする
Use the incremental authorization Stripe test card with any CVC, postal code, and future expiration to trigger incremental authorizations while testing:
- First create the CheckoutSession using the test card in the create a CheckoutSession step above.
- Perform the incremental authorization with the parameters specified in the perform an incremental authorization step above, and use the test card to trigger an incremental authorization.
Number | Payment Method | Description |
---|---|---|
pm_ | This increases the authorization amount to the amount provided in the request. |