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

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

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

マルチキャプチャーを実行すると、1 件のオーソリに対して複数回 PaymentIntent のキャプチャーを行えるようになります (PaymentIntent の総額に達するまで)。配送が数回に分かれる注文があり、注文のフルフィルメントを部分的に実行するたびにその売上をキャプチャーしたい場合は、このマルチキャプチャーが有効です。

IC+ の特長

マルチキャプチャーは、IC+ 料金体系のユーザーに提供される機能に含まれています。現在 Stripe の料金体系を組み合わせてご利用で、この機能へのアクセスをご希望の場合は、Stripe サポートにお問い合わせください。

サポート状況

マルチキャプチャーを行う際は、次の制限事項に注意してください。

  • オンラインカード決済のみサポートしています
  • アメリカン・エキスプレス、Visa、ディスカバー、Mastercard、Cartes Bancaires、ダイナースクラブ、銀聯カード (CUP)、JCB で利用可能です。
  • source_transaction を使用する支払いと送金別方式の売上フローには対応していない
  • Stripe では 1 つの PaymentIntent に対して最大 50 回キャプチャーできます

CUP と JCB のサポート

CUP によるマルチキャプチャーは、アメリカでのみご利用いただけます。JCB によるマルチキャプチャーは、アメリカ、カナダ、オーストラリア、ニュージーランドでのみご利用いただけます。

ベストプラクティス

1 つの注文を複数回に分けて配送する場合は、各配送の詳細を最終顧客に事前通知するようにしてください。そうすることで、銀行取引明細書に複数の取引が表示されていることに混乱した顧客からの問い合わせやチャージバックを防止できます。顧客への通知については、以下のベストプラクティスを参考にしてください。

  • 購入前の段階で、配送予定日と取引金額を顧客に通知する。
  • 配送の都度、取引金額を通知する。
  • 全額返金とキャンセルに関するポリシーを開示する。

法令遵守

マルチキャプチャーを行うにあたり、お客様は適用されるすべての法律、規制、ネットワーク規則を遵守する責任を負うものとします。この機能を使用するカードネットワークの規則に照らし、取引の内容が適用されるすべての規則に準拠していることを確認してください。規則はネットワークごとに異なります。たとえば、ほとんどのカードネットワークでは、マルチキャプチャーの用途を個別配送される商品の販売に対するカード非提示取引に制限しています。一部のカードネットワークでは、業種 (旅行業など) によって企業のマルチキャプチャーを認めていますが、分割払いや入金のワークフローでマルチキャプチャーを行うことは認められない場合があります。

このページに記載されている情報のうち、これらの要件の遵守に関する情報は一般的なガイダンスであり、法律、税務、会計、その他の専門的なアドバイスではありません。自らの義務について不明な点がある場合は、専門家に相談することをお勧めします。

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

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

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

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

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

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
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 をキャプチャーする

PaymentIntent が requires_capture 状態で、かつマルチキャプチャーが available の場合、オプションの final_capture パラメーターを false に設定すると、キャプチャー用の API を呼び出す際に未キャプチャーの残額をリリースしないよう Stripe に指示が送られます。たとえば、10 USD の PaymentInent を確定した場合に、7 USD を final_capture=false にしてキャプチャーすると、残りの 3 USD はオーソリ状態が維持されることになります。

Command Line
cURL
No results
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

PI キャプチャーのレスポンスに含まれる amount_capturable と amount_received フィールドは適宜更新されます。

// 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, ... } ... }

最終キャプチャー

以下のいずれかが実行されるまで、PaymentIntent のステータスは requires_capture のままです。

  • final_capture を true に設定する。
  • final_capture パラメーターを使わずにキャプチャーする (final_capture はデフォルトで true に設定されているため)。
  • オーソリの有効期間が切れる。

この時点で Stripe は残りの売上をリリースし、PaymentIntent のステータスが succeeded に変わります。

Command Line
cURL
No results
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

PI キャプチャーのレスポンスに含まれる amount_capturable と amount_received フィールドは適宜更新されます。

// 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, ... } ... }

未キャプチャーの PaymentIntent は canceled になりますが、一部キャプチャーされた PaymentIntent は succeeded になります。

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

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

Stripe テストカードと任意のセキュリティコード、郵便番号、将来の日付の有効期限を使用して、マルチキャプチャーによる決済をテストします。

番号決済手段説明
pm_card_visaこのテストカードは、マルチキャプチャーをサポートしています。
pm_card_visa_cartesBancairesマルチキャプチャーをサポートする Cartes Bancaires または Visa のテストカード。

返金

PaymentIntent のステータスが requires_capture の場合、キャプチャー合計額から返金合計額を引いた金額 (amount_received — amount_refunded に達するまで、何度でも返金できます。charge.refunded フィールドは、最後のキャプチャーが実行され、amount_received の全額が返金された場合にのみ true に移行します。

Stripe は、refund_application_fee=true または reverse_transfer=true を指定した一部返金に対応していません。代わりに、application fee refund (プラットフォーム手数料の返金) エンドポイントと transfer reversal (送金の差戻し) エンドポイントを使用して、手数料の一部返金と送金の差戻しを手動で実行できます。application fee refund エンドポイントまたは transfer reversal エンドポイントを使用すると、Stripe は refund_application_fee=true または reverse_transfer=true の返金に対応できなくなります。

Connect

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

  • 最初のキャプチャー時に application_fee_amount または transfer_data[amount] を設定した場合、後続のすべてのキャプチャーで同じ値が要求されます。キャプチャー時に渡される application_fee_amount または transfer_data[amount] は、PaymentIntent の作成、確定、更新時に渡される値を上書きします。
  • Stripe は、refund_application_fee=true または reverse_transfer=true を指定したマルチキャプチャーに対する一部返金に対応していません。application fee refund (プラットフォーム手数料の返金) エンドポイントと transfer reversal (送金の差戻し) エンドポイントを使用すると、手数料の一部返金や送金の差戻しを実行できます。

Webhook

支払いの更新 Webhook

Stripe は、支払いのキャプチャーが行われるたびに、charge.updated Webhook を送信します。

たとえば、application_fee_amount が指定されたデスティネーション支払いをマルチキャプチャーする場合、最初のキャプチャーが行われると、Stripe はこれらの空のフィールドに値を入力します。

// 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

Stripe は、amount_to_capture と final_capture の値に関係なく、キャプチャーのたびに payment_intent.amount_capturable_updated を送信します。

たとえば、10 USD の金額の PaymentIntent から 1 USD をキャプチャーすると、PaymentIntent の amount_capturable フィールドが 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 } }

支払いのキャプチャーイベント

Stripe は 最後のキャプチャー、またはオーソリ期間の終了時に、未キャプチャーの金額のオーソリを差戻すために charge.captured イベントを送信します。支払いの captured フィールドは、最後のキャプチャーまたはオーソリの差戻しが終わった時にのみ true になります。

たとえば、amount=0 と final_capture=true を指定してキャプチャーを行うと、支払いの captured 属性は false から true に変わります。

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

返金 Webhook

マルチキャプチャーの返金 Webhook は、マルチキャプチャー以外の返金 Webhook と同じです。

部分返金が行われるたびに、refund.created イベントが送信されます。連結アカウントの場合、これに加えてプラットフォーム手数料を返金する際には application_fee.refunded イベント、また送金を差戻す際には transfer.reversed イベントも送信されます。

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