Verificação de idade [Pré-visualização para desenvolvedores]

O recurso “Verificação de idade” resolve o duplo desafio da conformidade regulatória e da proteção de menores, permitindo que as Applications verifiquem a idade do usuário com o mínimo de atrito. Ele supera as deficiências das verificações tradicionais de idade, que muitas vezes são facilmente contornadas ou exigem a digitalização invasiva de documentos. A API consegue isso utilizando dados verificados dos usuários, mantidos com segurança pelas operadoras de telefonia móvel e por fontes de dados de terceiros confiáveis, para confirmar se o usuário está acima do limite de idade exigido.

Entre os casos de uso mais comuns em que a verificação de idade pode trazer benefícios, destacam-se:

  • Acesso restrito por idade (para sites com verificação mínima ou sem verificação): A verificação de idade permite que plataformas que normalmente dependem de dados mínimos de cadastro (por exemplo, redes sociais) integrem uma verificação segura de idade em seus processos de acesso. Essa medida impede que menores de idade tenham acesso a conteúdos sensíveis ou inadequados, ao mesmo tempo em que aumenta a segurança na plataforma.
  • Validação da idade durante os processos de integração: Esse recurso permite que as empresas implementem uma verificação de idade de alta confiabilidade durante o cadastro do usuário, cumprindo os requisitos legais para serviços como serviços bancários ou apostas, além de ajudar as empresas a proteger determinados públicos-alvo contra a compra online de produtos com restrição de idade.
  • Restrições de conteúdo com base na idade: A verificação de idade permite que as empresas personalizem e restrinjam o tipo de conteúdo exibido ao usuário em suas Applications e plataformas, com base na idade dele. Por meio dessa funcionalidade, é possível proteger usuários vulneráveis contra conteúdos inadequados para o consumo deles, além de cumprir as regulamentações exigidas.
  • Restrições publicitárias com base na idade: Ao utilizar a Verificação de Idade, as empresas podem viabilizar uma publicidade digital precisa e em conformidade com as normas, impedindo a exibição de anúncios com restrição de idade a usuários identificados como menores de idade. Isso garante o cumprimento das regulamentações e otimiza os gastos com publicidade, direcionando os anúncios apenas a públicos que podem, legalmente, ter acesso a eles.

Pré-requisitos

Para usar o Identity Insights, você deve verificar se sua conta está configurada corretamente; consulte o Introdução guia para obter mais informações sobre:

  • Criando seu account,
  • Criação de uma aplicação da Vonage para uso com a API do Identity Insights,
  • Os diferentes ambientes disponíveis e como configurar sua Account para utilizá-los,
  • E como usar a interface de usuário “Introdução” do Painel de Controle para utilizar a API sem precisar escrever nenhum código.

Este guia explicará como utilizar o Age Verification Insight programaticamente por meio do cURL.

A API do Identity Insights está disponível por meio de vários endpoints regionais. Os exemplos deste guia utilizam o endpoint da UE, mas você pode encontrar a lista completa em Detalhes técnicos.

Fazendo uma chamada de API

A autenticação na API do Identity Insights é feita por meio de JWTs, um token JSON compacto e autônomo. Para gerar um JWT, você pode usar nosso gerador online, ou, se preferir, use o CLI da Vonage. Você precisará do ID do seu aplicativo e da chave privada para gerar o JWT. Assim que tiver o JWT, poderá enviar uma solicitação à API.

Este exemplo mostra uma solicitação cURL para o recurso de verificação de idade, a fim de verificar se um assinante associado ao número de telefone fornecido tem mais de 18 anos; isso é definido pelo age_threshold parâmetro, que pode ser definido em qualquer valor entre 0 e 120 anos:

curl -X POST https://api-eu.vonage.com/identity-insights/v1/requests  \
  -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  -d '{
    "phone_number": "14040000000",
    "purpose": "FraudPreventionAndDetection",
    "insights": {
        "age_verification": {
         	"age_threshold": 18,
          "id_document": "66666666q",
          "name": "Federica Sanchez Arjona",
          "given_name": "Federica",
          "family_name": "Sanchez Arjona",
          "middle_names": "Sanchez",
          "family_name_at_birth": "YYYY",
          "birthdate": "1978-08-22",
          "email": "federicaSanchez.Arjona@example.com",
          "include_content_lock": true,
          "include_parental_control": true
        }
      }
     }
   }'

A API comparará, então, as informações associadas a um determinado usuário de celular com as que constam (e foram verificadas) nos registros da própria operadora desse usuário e retornará uma confirmação sobre a idade com base no limite estabelecido, uma pontuação geral de identidade para os atributos de identidade fornecidos, bem como informações sobre o conteúdo e as restrições de controle parental definidas, se for o caso:

{
  "request_id": "f41087de-b9fc-4081-ab85-9d6475a19706",
  "insights": {
      "age_verification": {
          "is_age_threshold_met": "TRUE",
          "is_verified": true,
          "identity_match_score": 90,
          "content_lock": "TRUE",
          "parental_control": "TRUE",
          "status": {
              "code": "OK",
              "message": "Success"
          }
      }
  }
}

Você verá os seguintes campos na age_verification objeto:

Aqui, o status O objeto indica o status das informações retornadas para o número de telefone especificado:

Campo Descrição
status.code Código que indica o status da solicitação. Deve ser um dos seguintes:

NO_COVERAGE: O país ou a rede de celular não é compatível com os fornecedores disponíveis.
INVALID_PURPOSE: A finalidade indicada não é válida nem permitida para este Insight.
UNAUTHORIZED: Não foi possível autorizar a solicitação para essa combinação de aplicativo, fornecedor e número de telefone.
INTERNAL_ERROR: Ocorreu um erro interno durante o processamento da solicitação.
SUPPLIER_ERROR: O fornecedor apresentou um erro durante o processamento da solicitação.
NOT_FOUND: Não foi possível encontrar o número de telefone para este Insight.
UNSUPPORTED_NETWORK_TYPE: Esse tipo de rede não é compatível com este Insight.
INVALID_NUMBER_FORMAT: O formato do número de telefone não é válido para atribuição pelas operadoras aos usuários.
OK: A informação foi processada com sucesso.
status.message Descrição mais detalhada do status.

Se status.code na resposta está OK, você também poderá ver os campos descritos na tabela abaixo. Se um campo estiver marcado como “Sim” na coluna “Obrigatório”, ele sempre será retornado quando o status for OK. Se um campo estiver marcado como “Não”, ele poderá ou não ser retornado.

Nome Descrição Obrigatório
is_age_threshold_met Enumeração: "TRUE" "FALSE", "DATA_UNAVAILABLE"
Indique TRUE quando a idade do usuário for igual ou superior ao limite de idade (idade >= limite de idade), e FALSE caso contrário (idade < limite de idade). Se o provedor da API não tiver informações suficientes para realizar a validação, DATA_UNAVAILABLE será devolvido.
Sim
is_verified Indique "TRUE" se as informações fornecidas tiverem sido comparadas com as informações contidas em um documento de identificação legalmente aceito como documento de comprovação de idade (Nota); caso contrário, indicar "FALSE". Não
identity_match_score A pontuação geral das informações de identidade disponíveis no provedor de API. É opcional que o provedor de API retorne a pontuação de correspondência de identidade.
Mín.: 0, Max: 100
Não
content_lock Indique "TRUE"se a assinatura associada ao número de telefone tiver algum tipo de restrição de conteúdo (por exemplo, certos conteúdos da web bloqueados) e "FALSE" caso contrário. Se o provedor da API não tiver informações para recuperar o content_lock valor, DATA_UNAVAILABLE será devolvido. Não
parental_control Indique "TRUE" se a assinatura associada ao número de telefone tiver algum tipo de controle parental ativado e "FALSE" caso contrário. Se o provedor da API não tiver informações para recuperar o parental_control valor, DATA_UNAVAILABLE será devolvido. Não

Leitura complementar