メインコンテンツへスキップ
電話番号検証機能は、OTPフローまたは電話番号自体でリスクシグナルが発生するたびに警告を出力します。対象となるのは、既知の不正な番号、VoIP回線や使い捨て回線、OTP試行回数の上限、他のユーザーのセッションとの一致などです。このページでは、すべてのコード、その発生条件、ワークフローでの対応の設定方法を説明します。

概要

警告には機能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つのカテゴリに分類されます。

関連ページ

最終更新日 2026年11月1日