コンテンツにスキップ
アカウントを作成
または
サインイン
Stripe ドキュメントのロゴ
/
AI に質問する
アカウントを作成
サインイン
始める
支払い
売上
プラットフォームおよびマーケットプレイス
資金管理
開発者向けのツール
概要
Stripe Payments について
構築済みのシステムをアップグレード
支払いの分析
オンライン決済
概要ユースケースを見つけるManaged Payments
Payment Links を使用する
決済ページを構築
高度なシステムを構築
アプリ内実装を構築
決済手段
決済手段を追加
決済手段を管理
Link による購入の迅速化
支払いインターフェイス
Payment Links
Checkout
Web Elements
アプリ内 Elements
決済シナリオ
カスタムの決済フロー
柔軟なアクワイアリング
    概要
    支払いを複数回キャプチャー
    支払いでオーソリ額を超える金額をキャプチャー
    オンラインカード決済に対する保留を延長
    オーソリを増額する
    支払いの一部オーソリ
    ベータから移行
オーケストレーション
店頭支払い
端末
他の Stripe プロダクト
Financial Connections
仮想通貨
Climate
ホーム支払いFlexible acquiring

注

このページはまだ日本語ではご利用いただけません。より多くの言語で文書が閲覧できるように現在取り組んでいます。準備が整い次第、翻訳版を提供いたしますので、もう少しお待ちください。

支払いを複数回キャプチャーする

オーソリされた金額に達するまで、PaymentIntent を複数回キャプチャーします。

ページをコピー

Multicapture allows you to capture a PaymentIntent multiple times for a single authorization, up to the full amount of the PaymentIntent. You can use it when you have orders with multiple shipments, and want to capture funds as you fulfill parts of the order.

IC+ feature

Multicapture is part of the functionality we offer to users on IC+ pricing. If you’re on blended Stripe pricing and want access to this feature, contact Stripe Support.

Availability

When using multicapture, be aware of the following restrictions:

  • It only supports online card payments
  • It’s available with Amex, Visa, Discover, Mastercard, Cartes Bancaires, Diners Club, China UnionPay (CUP), and Japan Credit Bureau (JCB)
  • source_transaction を使用する支払いと送金別方式の売上フローには対応していない
  • Stripe allows you to capture up to 50 times for a single PaymentIntent

CUP and JCB support

CUP multicapture is only available in the United States. JCB multicapture is only available in the United States, Canada, Australia, and New Zealand.

Best practices

When sending separate shipments for one order, proactively notify your end customer with the details of each shipment. Doing so avoids inquiries and chargebacks from customers because of confusion with seeing multiple transactions on their bank statement. Use the following best practices when notifying customers:

  • Inform them of the estimated delivery date and transaction amount for each shipment at the time of checkout, before purchase.
  • Notify them upon each shipment, along with the transaction amount.
  • Disclose your full refund and cancellation policy.

Compliance

You’re responsible for your compliance with all applicable laws, regulations, and network rules when using multicapture. Consult the rules for the card networks that you want to use this feature with to make sure your sales comply with all applicable rules, which vary by network. For example, most card networks restrict multicapture usage to card-not-present transactions for the sale of goods that ship separately. Certain card networks permit multicapture for businesses based on their industry (for example, travel), while some don’t permit multicapture for installment or deposit workflows.

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.

未キャプチャー分の PaymentIntent を作成して確定する

オーソリとキャプチャーを個別に行うことを示すには、PaymentIntent の作成時に capture_method を manual として指定します。オーソリとキャプチャーの分離について、詳細は支払い方法を保留する方法をご覧ください。

if_available または never パラメーターを使用し、この支払いに対して Multicapture をリクエストします。

  • if_available: 作成される PaymentIntent では、支払い方法が対応している場合に、複数回のキャプチャーが許可されます。

  • never: 作成される PaymentIntent では、複数回のキャプチャーが許可されません

Command Line
cURL
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=1000 \ -d currency=usd \ -d "payment_method_types[]"=card \ -d payment_method=pm_card_visa \ -d confirm=true \ -d capture_method=manual \ -d "expand[]"=latest_charge \ -d "payment_method_options[card][request_multicapture]"=if_available

レスポンスでは、latest_charge の payment_method_details.card.multicapture.status フィールドには、顧客の支払い方法に基づき available または unavailable が含まれます。

// PaymentIntent Response { "id": "pi_xxx", "object": "payment_intent", "amount": 1000, "amount_capturable": 1000, "amount_received": 0, ... // if latest_charge is expanded "latest_charge": { "id": "ch_xxx", "object": "charge", "amount": 1000, "amount_captured": 0, "amount_refunded": 0, "payment_method_details": { "card": { "multicapture": { "status": "available" // or "unavailable" } } } ... } ... }

PaymentIntent をキャプチャーする

For a PaymentIntent in a requires_capture state where multicapture is available, specifying the optional final_capture parameter to be false tells Stripe not to release the remaining uncaptured funds when calling the capture API. For example, if you confirm a 10 USD payment intent, capturing 7 USD with final_capture=false keeps the remaining 3 USD authorized.

Command Line
cURL
curl https://api.stripe.com/v1/payment_intents/pi_xxx/capture \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount_to_capture=700 \ -d final_capture=false \ -d "expand[]"=latest_charge

In the PI capture response, the amount_capturable and amount_received fields update accordingly.

// PaymentIntent Response { "id": "pi_ANipwO3zNfjeWODtRPIg", "object": "payment_intent", "amount": 1000, "amount_capturable": 300, // 1000 - 700 = 300 "amount_received": 700, // if latest_charge is expanded "latest_charge": { "id": "ch_xxx", "object": "charge", "amount": 1000, "amount_captured": 700, "amount_refunded": 0, ... } ... }

最終キャプチャー

The PaymentIntent remains in a requires_capture state until you do one of the following:

  • Set final_capture to true.
  • Make a capture without the final_capture parameter (because final_capture defaults to true).
  • The authorization window expires.

At this point, Stripe releases any remaining funds and transitions the PaymentIntent to a succeeded state.

Command Line
cURL
curl https://api.stripe.com/v1/payment_intents/pi_xxx/capture \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount_to_capture=200 \ -d final_capture=true \ -d "expand[]"=latest_charge

In the PI capture response, the amount_capturable and amount_received fields will be updated accordingly.

// PaymentIntent Response { "id": "pi_ANipwO3zNfjeWODtRPIg", "object": "payment_intent", "amount": 1000, "amount_capturable": 0, // not 100 due to final_capture=true "amount_received": 900, // 700 + 200 = 900 // if latest_charge is expanded "latest_charge": { "id": "ch_xxx", "object": "charge", "amount": 1000, "amount_captured": 900, "amount_refunded": 0, ... } ... }

Uncaptured PaymentIntents transition to canceled, while partially captured PaymentIntents transition to succeeded.

オプションキャプチャーされていない売上をリリースする

構築したシステムをテストする

Use a Stripe test card with any CVC, postal code, and future expiration date to test multicapture payments.

NumberPayment Method説明
pm_card_visaThis test card supports multicapture.
pm_card_visa_cartesBancairesCartes Bancaires or Visa test card that supports multicapture.

返金

For a PaymentIntent in requires_capture state, you can refund any number of times up to the total captured amount minus the total refunded amount, which is the amount_received—amount_refunded. The charge.refunded field transitions to true only when the final capture has been performed and the entire amount_received is refunded.

Stripe doesn’t support partial refunds with refund_application_fee=true or reverse_transfer=true. Instead, you can perform partial fee refunds by manually performing partial fee refunds and transfer reversals using the application fee refund and transfer reversal endpoints. After using the application fee refund or transfer reversal endpoints, Stripe doesn’t support any further refunds with refund_application_fee=true or reverse_transfer=true respectively.

Connect

Multicapture は、source_transaction パラメーターを伴う支払いと送金別方式を除き、Connect のすべてのユースケースに対応します。application_fee_amount と transfer_data[amount] パラメーターにはいくつかの追加検証があります。Multicapture を Connect に実装する際は以下の検証を考慮してください。

  • Setting application_fee_amount or transfer_data[amount] on the first capture makes it required for all subsequent captures. Each application_fee_amount and transfer_data[amount] passed at capture time overrides the values passed in on PaymentIntent creation, confirmation, and update.
  • Stripe doesn’t support partial refunds on multicapture payments with refund_application_fee=true or reverse_transfer=true. You can perform partial fee refunds or transfer reversals using the application fee refund and transfer reversal endpoints.

Webhook

Charge updated webhooks

We send a charge.updated webhook each time you capture a payment.

For example, on the first capture of a destination charge multicapture payment with an application_fee_amount, we update these fields from empty to non-empty values.

// charge.updated { "data": { "id": "ch_xxx", "object": "charge", "amount": 1000, "balance_transaction": "txn_xxx", // applicable to all charges "transfer": "tr_xxx", // applicable to destination charges only "application_fee": "fee_xxx", // applicable to Connect only ... }, "previous_attributes": { "balance_transaction": null, // applicable to all charges "transfer": null, // applicable to destination charges only "application_fee": null, // applicable to Connect only } }

payment_intent.amount_capturable_updated

We send payment_intent.amount_capturable_updated on every capture, regardless of amount_to_capture and final_capture values.

For example, if we capture 1 USD from a PaymentIntent with an amount of 10 USD, the PaymentIntent’s amount_capturable field updates to 9 USD.

// payment_intent.amount_capturable_updated { "data": { "id": "pi_xxx", "object": "payment_intent", "amount": 1000, "amount_capturable": 900 // 1000 - 100 = 900 ... }, "previous_attributes": { "amount_capturable": 1000 } }

Charge captured events

We send a charge.captured event for final captures or at the end of the authorization window to reverse the authorization of the uncaptured amount. The captured field for a charge only becomes true after a final capture or authorization reversal.

For example, if we do a capture with amount=0 and final_capture=true, the captured attribute on the charge changes from false to true.

// charge.captured { "data": { "id": "ch_xxx", "object": "charge", "captured": true ... }, "previous_attributes": { "captured": false } }

Refund webhooks

Multicapture refund webhooks are no different than non-multicapture refund webhooks.

During each partial refund, we send a refund.created event. For connected accounts, we also send application_fee.refunded events when we refund application fees and transfer.reversed events when we reverse transfers.

このページはお役に立ちましたか。
はいいいえ
お困りのことがございましたら 、サポートにお問い合わせください。
早期アクセスプログラムにご参加ください。
変更ログをご覧ください。
ご不明な点がございましたら、お問い合わせください。
LLM ですか?llms.txt を読んでください。
Powered by Markdoc