オンラインカード決済に対して、保留期間を延長する
オーソリの延長を使用して、オーソリ後、最長 30 日後にオンラインのカード支払いをキャプチャする方法をご紹介します。
延長されたオーソリではオーソリの有効期間が長くなるため、標準のオーソリ有効期間よりも長く顧客の資金を保持できます。ほとんどのカードネットワークの場合、デフォルトのオーソリ有効期間は、オンライン決済の場合は 7 日間、対面の Terminal 決済の場合は 2 日間ですが、カードネットワークによっては、有効期間を最大 30 日間まで延長できます。オーソリの有効期間について詳細は、支払い方法の売上を保留をご覧ください。
サポート状況
オーソリの拡張を使用する場合、地域別の制限はありません。ただし、次のような制限があることに注意してください。
- オーソリの拡張は、Visa、Mastercard、アメリカン・エキスプレス、ディスカバーでのみ利用できます。
- カードブランドによっては加盟店カテゴリーの制限があります。以下のネットワークのサポート状況一覧を参照してください。
- このページでは、オンラインカード決済のオーソリの拡張について説明します。対面カード決済でオーソリの拡張を利用する場合は、Terminal のドキュメントをご覧ください。
- CheckoutSession で mode は
payment
に設定され、capture_method はmanual
に設定されます。
IC+ の特長
Stripe は、IC+ 料金体系のユーザーにオーソリの拡張機能を提供しています。現在 Stripe の料金体系を組み合わせてご利用で、この機能へのアクセスをご希望の場合は、support.stripe.com からお問い合わせください。
カードネットワークと加盟店カテゴリー別のサポート状況
オーソリの拡張を利用できる決済と、その有効期間を決定する規則は、カードネットワークごとに異なります。次の表には、Visa、Mastercard、アメリカン・エキスプレス、ディスカバーでオーソリの拡張を利用した場合の有効期間および取引タイプが表示されています。ただし、カードネットワークの規則は事前の通告なしに変更される場合があるため、capture_before フィールドで支払いの有効期間をその都度確認することをお勧めします。
カードブランド | 加盟店カテゴリー | オーソリの有効期間を延長 |
---|---|---|
Visa | ホテル、宿泊施設、車のレンタル、クルーズ会社 その他すべての加盟店カテゴリー* | 30 日間** |
Mastercard (Maestro および Cirrus カードを除く) | すべての加盟店カテゴリー | 30 日間 |
アメリカン・エキスプレス | 宿泊施設および車のレンタル | 30 日*** |
ディスカバー | 航空会社、バスチャーター / ツアー、車のレンタル、クルーズ会社、地方 / 郊外の通勤・通学用交通機関、旅客輸送 (フェリー、ホテル、宿泊施設、鉄道を含む) | 30 日間 |
サポートが限定されるネットワーク (ベータ)
次のカードネットワークは、オーソリの拡張を限定的にサポートしています。
カードブランド | 加盟店の所在国 | 加盟店カテゴリー | オーソリ拡張後の有効期間 |
---|---|---|---|
ダイナースクラブ | アメリカ (ディスカバー経由) | すべての加盟店カテゴリー | 30 日 |
銀聯 | グローバル (アメリカとカナダを除く) | すべての加盟店カテゴリー | 27~29 日 |
アメリカとカナダ (ディスカバー経由) | 航空会社、バスチャーター / ツアー、レンタカー、クルーズ会社、地方 / 郊外の通勤・通学用交通機関、旅客輸送 (フェリー、ホテル、宿泊施設、鉄道を含む) | 30 日 |
最近のサポート状況の変更
- 2023 年 9 月:ディスカバーでのオーソリの拡張は、次の加盟店カテゴリーで利用できなくなりました (ネットワークの提供情報を引用): 飲食店、レンタルボート、キャンピングカー / RV レンタル、レンタルトラック、タイムシェア、タクシー / リムジン、トレーラーパーク / キャンプ場、機器 / 家具 / 家電レンタル、遊園地、サーカス、占い、レクリエーションサービス。
- 2023 年 9 月:不履行によるネットワーク手数料を防ぐため、Visa のオーソリ有効期間が 31 日から 30 日に短縮されました。その期間内に確実に取引を完了できるよう、6 時間の猶予時間を設けた上でオーソリの有効期間を 29 日と 18 時間に設定しています。
ベストプラクティス
オーソリの拡張を実行すると、顧客には資金が長期間保留されているように表示されます。身に覚えのない支払いによる不審請求の申し立てが増加するのを防ぐために、明瞭な明細書表記を提供するようにしてください。
新しい CheckoutSession を作成する際、custom_text フィールドを使用して決済ページに追加のテキストを表示することで、法令遵守要件を満たせます。
法令遵守
オーソリの拡張を行うにあたり、お客様は適用されるすべての法律、規制、ネットワーク規則を遵守する責任を負うものとします。この機能を受け付けるカードネットワークの仕様に照らし、取引の内容が適用されるすべての規則に準拠していることを確認してください。規則はネットワークごとに異なります。たとえば、ほとんどのネットワークでは、オーソリの時点で最終的なキャプチャー金額を知らされていない場合にのみ有効期間を延長することが認められています。
このページに記載されている情報のうち、これらの要件の遵守に関する情報は一般的なガイダンスであり、法律、税務、会計、その他の専門的なアドバイスではありません。自らの義務について不明な点がある場合は、専門家に相談することをお勧めします。
CheckoutSession を作成する
サーバーで Checkout セッションを作成し、ui_mode を embedded
に設定します。Checkout セッションを設定する際、line items に加え、currency などのオプションを指定できます。
自社サイトでホストされているカスタムページに顧客を戻すには、そのページの URL を return_url パラメーターに指定します。URL にテンプレート変数 {CHECKOUT_
を含めて、戻り先ページでセッションのステータスを取得します。Checkout では、リダイレクト前にこの変数が Checkout セッション ID に自動的に置き換えられます。
戻り先ページの設定と、リダイレクト動作をカスタマイズするためのオプションについてご紹介します。
Checkout セッションの作成後、レスポンスで返される client_
を使用して、Checkout をマウントします。
オーソリの拡張機能を有効にするには、request_extended_authorization を if_
に設定します。
特定の支払いの有効期間を確認するには、capture_before フィールドを使用します。CheckoutSession の完了後に有効期間の変更は行われません。CheckoutSession の完了後にオーソリが拡張されているかを判断するには、関連する支払いの extended_authorization.status フィールドを確認します。
{ "id": "pi_xxx", "object": "payment_intent", "amount": 1000, "amount_capturable": 1000, "amount_received": 0, "status": "requires_capture", ... // if latest_charge is expanded "latest_charge": { "id": "ch_xxx", "object": "charge", "payment_method_details": { "card": { "amount_authorized": 1000, "capture_before": 1696524701, "extended_authorization": { "status": "enabled", // or "disabled" } } } ... } ... }
Checkout をマウントする
Checkout は、HTTPS 接続を介して支払い情報をStripeに安全に送信する iframe でレンダリングされます。
よくある間違い
一部の支払い方法では、別のページにリダイレクトして支払いを確定する必要があるため、Checkout は別の iframe 内に配置しないでください。
デザインをカスタマイズする
アカウントのブランディング設定で、背景色、ボタンの色、枠線の角丸半径、フォントを設定して、サイトのデザインに合わせて Checkout をカスタマイズします。
デフォルトでは、Checkout は外側に余白やマージンが追加されずに表示されます。必要なマージンを適用するには (四方すべてに 16px など)、目的の余白を適用するコンテナー要素 (div など) を使用することをお勧めします。
戻り先ページを表示する
顧客が支払いを試行すると、Stripe はサイトがホストしている戻りページに顧客をリダイレクトします。Checkout セッションを作成したときに、return_url パラメーターで戻りページの URL は指定されています。リダイレクト動作をカスタマイズするためのオプションについては、こちらの記事をご覧ください。
戻り先ページを表示する際は、URL に含まれる Checkout セッション ID を使用して、Checkout セッションのステータスを取得します。セッションのステータスに応じて、結果を次のように処理します。
complete
:支払いが成功しました。Checkout セッションの情報を成功ページに表示します。open
:支払いが失敗したか、またはキャンセルされました。顧客が再試行できるように Checkout を再マウントしてください。
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 }
リダイレクトベースの決済手段
決済手段によっては、決済中に顧客が銀行のオーソリページなどの中間ページにリダイレクトされることがあります。顧客はそのページでアクションを完了すると、戻り先ページにリダイレクトされます。
リダイレクトベースの決済手段とリダイレクト動作についてご紹介します。
実装内容をテストする
以下の Stripe テストカードを、任意のセキュリティコードと将来の有効期限とともに使用して、テスト時にオーソリの拡張をリクエストします。テスト時に、所定のネットワークの決済でオーソリの拡張がが可能であれば、本番環境の決済でも利用できます。
カードブランド | 番号 | 決済手段 |
---|---|---|
Visa | pm_ | |
Mastercard | pm_ | |
アメリカン・エキスプレス | pm_ | |
ディスカバー | pm_ |