3D セキュアを使用したカード保有者認証
不正利用を抑制するためにビジネスが使用する追加の認証手段である、3D セキュアについてご紹介します。
3D セキュアの仕組み
3D セキュア (3DS) は、多要素認証を使用して、カードが物理的に存在しないオンライン取引の不正利用を削減します。3DS は、オンライン決済フローでビジネスによって開始され、多要素認証 (通常、SMS またはメールベースで Stripe が送信するワンタイムパスコードを使用) の実行を要求します。
3D セキュアフローの例
ステップ 1: 顧客がカードの詳細情報を入力します。
ステップ 2: アクワイアラーが 3DS 認証を要求します。Stripe Issuing カードを 3DS に登録する場合、カード保有者には追加の認証ステップを完了するように促すメッセージが表示されます。
上記のように、決済時の 3D セキュアの追加手順では通常、カード保有者に対してカード発行会社の認証ページを表示し、電話またはメールに送信された確認コードを入力するように求めます。
3DS が重要な理由
多くの場合、カード非提示取引でのオンライン不正利用による損失の責任はビジネスが負います。自社を守るため、ビジネスは 3DS 認証を開始して不正取引を受け付ける可能性を減らすことができます。ビジネスが 3DS 認証を開始しても、Stripe カードが 3DS に登録されている場合にのみカード保有者はこのステップを完了する必要があります。イギリスとユーロ圏では、3DS は強力な顧客認証 (SCA) の規制要件を実装するための標準です。
ライアビリティシフト
ビジネスによって 3DS 認証が開始されると、多くの場合不正利用に対する責任はビジネスからカード発行会社に移ります。これは、Issuing カードが 3DS に登録されているかにかかわらず適用されるため、カード発行会社は追加確認を行う必要なく、増大した責任に対応できます。
3DS への登録
- アメリカ: アメリカでの 3DS の登録は任意であり、サポートに問い合わせて登録をリクエストしない限り、カードは 3DS に登録されません。取引の不正利用を管理するためのベストプラクティスの一環として、Issuing プログラムのライフサイクルにおける初期の段階でカードを 3DS に登録することをお勧めします。登録により、カード保有者の取引の一部で負担は増えますが、オンラインのカード非提示取引における取引の不正利用による潜在的な損失のリスクは大幅に減少します。登録がリクエストされると、Stripe はアカウントに関連付けられている有効なカードをすべて登録し、今後作成されるすべてのカードを自動的に登録します。
- 電話番号もメールアドレスも登録されていないカード保有者は、3DS に登録されません。登録をリクエストした後で、Cardholder オブジェクトに連絡先情報を追加し、そのようなカードを自動的に登録することもできます。逆に、カード保有者の連絡先情報を削除すると、カードの 3DS の登録が解除されます。
- イギリスとユーロ圏: 地域の規制により、カードは作成時にデフォルトで 3DS に登録されます。
- 3DS に対する SCA の実装を許可して地域の規制に準拠するには、ユーロ圏とイギリスで発行されたすべてのカードで有効な電話番号の登録が必要です。
3DS 認証
cardholder (カード保有者) に対する 3DS 認証リクエストが届くと、Stripe は 1 回限りの確認コードを含むショートメッセージまたはメールをカード保有者に送信します。
認証の方法は、カード保有者が提供した連絡先情報によって異なります。Stripe Issuing が対応しているイギリスとユーロ圏の市場では、1 回限りのショートメッセージの確認コードで認証するために、カード保有者は電話番号を登録する必要があります。アメリカでは、登録された電話番号やメールアドレスはカード保有者の認証に使用されますが、両方とも提供されている場合、認証には電話番号が使用されます。どちらか一方の場合は、利用可能な連絡先情報が認証リクエストで使用されます。お客様とカード保有者を最大限に保護するために、カード保有者の電話番号とメールアドレスを最新の状態に維持することをお勧めします。これにより、認証時に Stripe からカード保有者に連絡できます。カード保有者情報は、API またはダッシュボードから、フィールドを新しい値に変更することで更新できます。
イギリスとユーロ圏では、カード保有者には、セキュリティに関する追加の質問が表示される場合もあります。そのカード保有者には、カードの取引リストが表示され、そこから承認する取引を選択できます。カード保有者が初めてカードを使用する場合は、提示された取引のいずれも承認しないことを示すオプションを選択します。
カード保有者に提示される取引リスト。
3D セキュアの言語を選択する
Cardholder オブジェクトの preferred_locales フィールドによって、3DS フローの表示言語が決定します。3DS のデフォルト言語は英語です。
カード保有者用に 3DS の言語を選択するには、API を使用して、preferred_
を利用言語の優先順の配列に設定します。必要に応じて、言語を 1 つのみ提供することもできます。対応している言語は、英語 (en
)、フランス語 (fr
)、ドイツ語 (de
)、イタリア語 (it
)、スペイン語 (es
) です。
アメリカでは、Stripe はネイティブ iOS および Android アプリケーションによる認証にも対応しています。この機能を使用するには、サポートにお問い合わせください。
使用する認証方法にかかわらず、カード保有者が短い期間内に 3 回続けて 3DS の試行に失敗すると、カードでの 3DS が 60 分間無効になります。
免除
特定のタイプの低リスクの支払いは、SCA から免除される場合があります。免除では、顧客の認証頻度を減らすことで、リスクの低い支払いの負担を抑えます。Stripe はデフォルトで 3DS の対象カードに対する以下の免除を要求し、低リスクまたは低価値と判断した取引に関連する負担を抑えます。
タイプ | 意味 |
---|---|
transaction_risk_analysis (アメリカのみ) | カード発行会社 (Stripe など) はリアルタイムのリスク分析を実行して、取引に低リスクによる免除を要求するかどうかを判断します。 |
low_value_transaction | 30 GBP または EUR (あるいは相当換算額) 未満の取引は「小額」とみなされ、SCA が免除されます。カード保有者が最後に認証に成功してから 5 回免除が適用された場合、またはこれまで免除された支払いの合計額が 100 GBP または EUR を超えた場合は、免除が適用されず、カード保有者を認証する必要があります。 |
注
アクワイアラーも免除をリクエストでき、Stripe は状況に応じてそれを認めます。このようなシナリオでは、損失に対する責任は引き続きアクワイアラーにあり、カード発行会社に移行しません。
カード発行会社が要求する免除が適用されると、Authorization オブジェクトは次のようになります。
{ "object": "issuing.authorization", ... "verification_data" : { ... "authentication_exemption": { "type": "low_value_transaction", "claimed_by": "issuer" }, ... }, ... }
一方、アクワイアラーが要求する免除が適用されると、Authorization オブジェクトは次のようになります。
{ "object": "issuing.authorization", ... "verification_data" : { ... "authentication_exemption": { "type": "low_value_transaction", "claimed_by": "acquirer" }, ... }, ... }
イギリスまたはユーロ圏を拠点としていて、ユースケースでバーチャルカードのみを必要とする場合は、Stripe サポートにお問い合わせいただき、Secure Corporate Payment (SCP) 免除がプログラムに該当するかを相談できます。
3DS による不正利用の管理
Stripe は API を通じた 3DS の試行に関する詳細を認証エンドポイントに含めます。verification_data ハッシュの three_
ハッシュを使用して、オーソリが正常に認証されたかどうかを特定します。自社の認証ロジックを維持している場合、これらの値をキー入力として使用してオーソリを許可するか拒否するかを判断することをお勧めします。
また、ビジネスが 3DS を試行していない場合、three_
フィールドは null になります。3DS が免除されている場合、authentication_
が存在し、three_
フィールドは null になります。オーソリに three_
と authentication_
を両方含めることはできません。
以下の表では、各値が表す内容と、不正利用を抑えるための使用方法に関するガイドラインを確認できます。
結果 | 意味 | 推奨されるアクション |
---|---|---|
attempt_acknowledged | ビジネスがオーソリを認証しようとしましたが、カードが登録されていないか、Stripe にアクセスできませんでした。 | オーソリが不正であるかどうかを判断するための証拠が不十分です。 |
authenticated | 買い物客が携帯電話に送信された正しい確認コードを入力したため、カード保有者として正常に確認されました。オンライン購入は合法であり、不正ではありませんでした。 | 取引を承認します。 |
failed | カード保有者は買い物客として認証されませんでした。カード保有者が購入している本人ではない可能性があります。 | 取引を拒否します。 |
必須 | オーソリが拒否されました。規制要件により、この取引には認証が義務付けられていますが、加盟店から適切に提出されておらず、適用可能な免除も申請されていません。 | 取引を拒否します。 |
注
カードが 3DS に登録されている場合に verification_
が存在しないときは、オーソリの際に加盟店による 3D セキュアは実行されません。
3DS のテスト方法
Stripe Payments API を使用して 3DS をテストします。
発行済みのカードを使用して PaymentMethod を作成する
以下のコマンドを実行し、ご自身の発行済みカードを使用して PaymentMethod を作成できます。
以下の値を置き換えます。
YOUR_
を、発行済みカードのカード番号にISSUED_ CARD_ NUMBER YOUR_
を、発行済みカードのセキュリティコードにISSUED_ CARD_ CVC YOUR_
を、発行済みカードの有効期限の月にISSUED_ CARD_ EXPIRATION_ MONTH YOUR_
を、発行済みカードの有効期限の年にISSUED_ CARD_ EXPIRATION_ YEAR
PaymentIntent を作成する
以下のコマンドを実行して、PaymentIntent を作成できます。
このコマンドは 3D セキュア認証リクエストを開始する PaymentIntent を作成します。payment_
パラメーターを使用して 3D セキュア認証を実行します。チャレンジを保証できる十分な金額を設定する必要があります。この例では 150 USD を使用しています。
"capture_
パラメーターは PaymentIntent の手動キャプチャーを有効にします。そのため、売上はオーソリされますがまだキャプチャーされません。
PaymentIntent を確定する
以下のコマンドを実行して、PaymentIntent を確定できます。
pi_
を PaymentIntent ID に、pm_
を PaymentMethod ID に置き換えます。PaymentIntent の確定後に受け取るレスポンスには next_
フィールドが含まれます。このフィールドには、3DS 認証の実行に向けてユーザーをリダイレクトするために使用できる URL が含まれます。
... "next_action": { "redirect_to_url": { "return_url": "https://www.example.com ", "url": "https://hooks.stripe.com/3d_secure_2/hosted?...." }, "type": "redirect_to_url" }, ...
オーソリを無効にする
3DS チャレンジと支払いのオーソリの完了後は、売上をキャプチャーすることなく PaymentIntent をキャンセルできます。
pi_
を PaymentIntent ID に置き換えます。