概要
警告には機能PHONEのタグが付けられます。警告はGET /v3/session/{sessionId}/decision/のphone_verifications[].warnings[]に含まれ、標準の警告オブジェクトの形式(feature、risk、additional_data、log_type、short_description、long_description、node_id)に従います。各警告はセッションごとのログにも記録されるため、Business Consoleの電話番号セクションにも表示されます。
一部の警告は無条件の自動却下のトリガーであり、常に機能のステータスをDeclinedに設定します。それ以外の警告は、ワークフロー設定で定義する設定可能なアクション(設定に応じてDECLINE、REVIEW、NO_ACTION)に対応します。そのため、同じリスクコードでも、あるワークフローでは却下となり、別のワークフローではフラグが付くだけ、ということがあります。
自動却下の条件
以下の警告は、設定にかかわらず常に電話番号検証ステップを却下し、常にlog_type: "error"が付きます。
VERIFICATION_CODE_ATTEMPTS_EXCEEDED:ユーザーがOTPの試行回数上限に達しました。デフォルトでは、誤ったコードの送信が2回(phone_max_check_attempts)、またはOTPの送信が2回を超えた場合(phone_max_retries)で、いずれもワークフローノードごとに調整できます。スタンドアロンの電話番号APIでは、コードを3回まで試行できます。PHONE_NUMBER_IN_BLOCKLIST:番号がLists APIで管理するブロックリストに含まれているか、ブロックリストに登録されたセッションと一致しています。
HIGH_RISK_PHONE_NUMBER(配信プロバイダーの不正防止レイヤーによりOTPの送信が拒否され、送信がBlockedとなった場合)は、デフォルトでは却下となりますが、現在は無条件ではありません。後述のhigh_risk_phone_actionを参照してください。
設定可能なリスク
以下の各リスクは、DECLINE、REVIEW、NO_ACTION(デフォルト。警告は記録されますが、ステータスには影響しません)のいずれかに設定できるワークフロー設定に対応しています。設定したアクションによって、警告のlog_typeも決まります:DECLINE → error、REVIEW → warning、NO_ACTION → information。
重複検出は、アプリケーション内のKYC、KYB、スタンドアロンAPIによる電話番号検証を横断して実行され、セッションを
vendor_dataでグループ化します。同じvendor_dataを共有するセッションは同一のエンドユーザーとして扱われ、一致結果から除外されます。vendor_dataを空のままにすると、すべてのセッションがそれぞれ別のユーザーとして扱われます。
ブロックされた送信
HIGH_RISK_PHONE_NUMBERも同じパターンに従いますが、プロバイダーが拒否した送信は承認できないため、選択肢がより限られます。
この設定は、そのステップのすべての高リスクブロックの
additional_data.risk_factorsが厳密に["device_attribute"]である場合にのみ適用されます。これはプロバイダーの「このデバイスは疑わしい」というシグナルで、通常のモバイル回線で発生するものです。それ以外のリスク要因、device_attributeを含むだけの組み合わせ、またはリスク要因がまったくないブロックの場合は、設定にかかわらず却下されます。ブロック理由(repeated_attempts、suspicious、spam)は別のフィールドで、additional_data.blocked_reasonで返されます。
この設定とは関係なく、Lists APIで作成した電話番号の許可リストに含まれる番号は、ブロックされた送信を理由に自動却下されることはありません。その場合、ステップはレビュー中になり、警告にはlog_type: "warning"が付き、additional_data.phone_number_in_allowlistはtrueになります。
認証試行回数の上限
電話番号検証機能では、不正利用を防ぐためにOTPの試行回数に厳格な上限を設けています。- コード入力の試行回数:デフォルトでは誤った入力が2回(
phone_max_check_attempts)に達すると、ステップはVERIFICATION_CODE_ATTEMPTS_EXCEEDEDとともにDeclinedとして確定します。スタンドアロンの電話番号APIでは、認証1件あたり3回までコードを入力できます。 - 送信回数:デフォルトでは合計2回(
phone_max_retries)で、初回送信と1回の再送信です。それ以上の送信リクエストがあるとステップが確定し、VERIFICATION_CODE_ATTEMPTS_EXCEEDEDが発生します。 - OTPの有効期間:保留中のOTPは初回送信から5分間有効です。再試行しても有効期間は延長されません。
repeated_attempts、suspicious、spamのいずれか)。その場合に発生するのはHIGH_RISK_PHONE_NUMBERであり、試行回数の警告ではありません。
生成される警告
セッション間の一致
番号が他のセッションまたはブロックリストで検出された場合、それらの一致はphone_verifications[].matches[]にも表示されます(最大5件)。各一致にはsession_id、session_number、vendor_data、verification_date、phone_number、status、is_blocklisted、api_serviceに加えて、session(同じ番号を持つ他のセッション、ステータスは問わない)またはlist_entry(配列の先頭に追加される合成のブロックリスト一致)のいずれかを値とするsourceが含まれます。現在の番号が電話番号の許可リストに登録されている場合、Diditは一致の証跡を保持しますが、重複電話番号のアクションを適用する代わりにPHONE_NUMBER_IN_ALLOWLISTを返します。一致の完全なスキーマについては、電話番号検証レポートを参照してください。
例
voip_number_actionをREVIEWに設定した状態で、VoIP番号への送信がブロックされる(HIGH_RISK_PHONE_NUMBER)例です。
警告の種類
各リスクには、アプリケーションの設定に基づいて重大度が割り当てられます。重大度は次の3つのカテゴリに分類されます。関連ページ
- 電話番号検証の概要:機能の動作、料金、対応チャネル。
- 電話番号検証レポート:
lifecycle[]とmatches[]を含むレスポンスの完全な構造。 - データモデル:電話番号検証:フィールドごとの正規スキーマ。
- Management API:Lists:
PHONE_NUMBER_IN_BLOCKLISTで使用される電話番号のブロックリストを管理します。