Pular para o conteúdo principal
O recurso Verificação de telefone emite avisos sempre que um sinal de risco é disparado no fluxo de OTP ou no próprio número: um número conhecido por ser fraudulento, uma linha VoIP ou descartável, um limite de tentativas de OTP ou uma correspondência com a sessão de outro usuário. Esta página lista cada código, o que o dispara e como configurar a resposta do workflow.

Visão geral

Os avisos são marcados com o recurso PHONE. Eles aparecem em phone_verifications[].warnings[] em GET /v3/session/{sessionId}/decision/ e seguem o formato padrão do objeto de aviso (feature, risk, additional_data, log_type, short_description, long_description, node_id). Cada aviso também é encaminhado para o log da sessão, de modo que aparece no Business Console na seção Telefone. Alguns avisos são gatilhos de recusa automática obrigatória: eles sempre definem o status do recurso como Declined. Outros correspondem a uma ação configurável (DECLINE, REVIEW ou NO_ACTION, dependendo da configuração) definida nas configurações do seu fluxo, de modo que o mesmo código de risco pode levar à recusa em um fluxo e apenas sinalizar em outro.

Condições de recusa automática

Os avisos a seguir sempre recusam a etapa de Verificação de telefone, independentemente da configuração, e sempre trazem log_type: "error":
  • VERIFICATION_CODE_ATTEMPTS_EXCEEDED: o usuário esgotou um limite de tentativas de OTP: por padrão, 2 tentativas com código incorreto (phone_max_check_attempts) ou mais de 2 envios de OTP (phone_max_retries), ambos ajustáveis por nó do fluxo. A API de telefone independente permite 3 tentativas de código.
  • PHONE_NUMBER_IN_BLOCKLIST: o número está na sua lista de bloqueio gerenciada pela API de listas ou corresponde a uma sessão incluída na lista de bloqueio.
HIGH_RISK_PHONE_NUMBER (a camada antifraude do provedor de entrega se recusando a enviar o OTP, envio Blocked) recusa por padrão, mas deixou de ser incondicional: veja high_risk_phone_action abaixo.

Riscos configuráveis

Cada um dos riscos a seguir corresponde a uma configuração do fluxo que você pode definir como DECLINE, REVIEW ou NO_ACTION (o padrão: o aviso é registrado sem afetar o status). A ação configurada também define o log_type do aviso: DECLINE → error, REVIEW → warning, NO_ACTION → information. A detecção de duplicidade é executada dentro da sua aplicação, abrangendo verificações de telefone de KYC, KYB e independentes via API, e agrupa as sessões por vendor_data: sessões que compartilham o mesmo vendor_data são tratadas como um único usuário final e excluídas dos resultados de correspondência. Se você deixar vendor_data vazio, cada sessão será tratada como um usuário distinto.

Envios bloqueados

HIGH_RISK_PHONE_NUMBER segue o mesmo padrão, com um conjunto de opções mais restrito, porque um envio que o provedor recusou não pode ser aprovado: A configuração é aplicada somente quando todos os bloqueios de alto risco na etapa trazem additional_data.risk_factors exatamente igual a ["device_attribute"]: o sinal do provedor de que “este dispositivo parece suspeito”, que é o que dispara em linhas móveis comuns. Qualquer outro fator de risco, qualquer combinação que apenas inclua device_attribute ou um bloqueio sem nenhum fator de risco resulta em recusa, independentemente da configuração. O motivo do bloqueio (repeated_attempts, suspicious ou spam) é um campo separado, retornado em additional_data.blocked_reason. Independentemente da configuração, um número que esteja em uma lista de permissões de telefone criada pela API de listas nunca é recusado automaticamente por um envio bloqueado: a etapa vai para In Review, o aviso traz log_type: "warning" e additional_data.phone_number_in_allowlist é true.

Limites de tentativas de verificação

O recurso de Verificação de telefone aplica um limite rígido de tentativas de OTP para evitar abusos:
  • Tentativas de inserção do código: por padrão, 2 envios incorretos (phone_max_check_attempts) antes que a etapa seja finalizada como Declined com VERIFICATION_CODE_ATTEMPTS_EXCEEDED. A API de telefone independente permite 3 tentativas de código por verificação.
  • Tentativas de envio: por padrão, 2 envios no total (phone_max_retries), ou seja, o envio inicial mais um reenvio. Uma nova requisição de envio finaliza a etapa e gera VERIFICATION_CODE_ATTEMPTS_EXCEEDED.
  • Validade do OTP: um OTP pendente é válido por 5 minutos a partir do primeiro envio; reenvios não estendem esse prazo.
Os dois limites podem ser ajustados em cada nó do fluxo de verificação (workflow). Independentemente desses limites, a camada antifraude do provedor de entrega pode bloquear um envio diretamente (motivo repeated_attempts, suspicious ou spam). Isso gera HIGH_RISK_PHONE_NUMBER, e não o aviso de tentativas.

Avisos gerados

Correspondências entre sessões

Quando um número é detectado em outras sessões ou na sua lista de bloqueio, essas correspondências também aparecem em phone_verifications[].matches[] (limitadas a 5 entradas). Cada correspondência contém session_id, session_number, vendor_data, verification_date, phone_number, status, is_blocklisted, api_service e um source com valor session (outra sessão com o mesmo número, com qualquer status) ou list_entry (uma correspondência sintética da lista de bloqueio, inserida no início do array). Se o número atual estiver na sua lista de permissões de números de telefone, a Didit mantém a evidência da correspondência, mas emite PHONE_NUMBER_IN_ALLOWLIST em vez de aplicar a ação para números de telefone duplicados. Consulte o relatório de Verificação de telefone para ver o esquema completo das correspondências.

Exemplo

Um envio bloqueado (HIGH_RISK_PHONE_NUMBER) para um número VoIP, com voip_number_action configurado para REVIEW:

Tipos de aviso

Cada risco recebe uma severidade com base na configuração da sua aplicação. As severidades se dividem em três categorias:

Relacionados

Última modificação em 1 de novembro de 2026