Skip to content

API de verificação de idade para sites e aplicativos

Confirme que o visitante atinge o seu limite de idade, sem que o seu aplicativo guarde documentos de identidade nem datas de nascimento.

Confirme que o visitante atinge o seu limite de idade

Uma única sessão cobre as duas metades: o visitante prova que controla o número pelo WhatsApp, responde uma vez à pergunta de idade e o seu aplicativo recebe o resultado — limite atingido ou não, conforme o limite que você define.

Como funciona a verificação de idade

Passo um, verificar o número. Você chama POST /start-verification com flow=age e exibe o deep link do WhatsApp devolvido, como QR code no desktop ou botão no celular. O visitante envia uma mensagem já preenchida da própria conta de WhatsApp, então o controle do número é provado pelo ato de enviar, e não por um código que você tenha mandado para ele.

Passo dois, definir o limite. A mesma chamada aceita um min_age opcional. Sem ele vale o limite configurado na sua conta, que é 18 enquanto você não mudar. min_age só é aceito em flow=age e precisa ser um inteiro positivo; qualquer outra coisa volta como 400.

Passo três, concluir a checagem de idade. Assim que a metade do telefone é comprovada, a resposta traz um bloco age com status pending e uma age_verification_url. O visitante recebe esse mesmo link de uso único pelo WhatsApp, e você pode usá-lo para levá-lo adiante no navegador em que ele já está. Ele responde no provedor de idade e volta para a sua callback_url com token e age=verified, denied ou failed anexados.

Passo quatro, receber o resultado. Um segundo webhook, age_verification_result, dispara quando o provedor responde, e GET /check-verification-status informa a mesma coisa. O bloco age traz status, verified, required — o limite realmente checado —, verified_at e provider.

Vale conhecer uma armadilha antes de escrever o laço de polling. O status da própria sessão chega a verified assim que o número é comprovado, enquanto age.status ainda está em pending. Trate o bloco age como o sinal do passo de idade, nunca o status da sessão.

Verificação do número + verificação de idade

Os dois passos respondem a perguntas diferentes, e o fluxo os mantém separados de propósito. Enviar uma mensagem de WhatsApp prova que o visitante controla aquele número. Não diz absolutamente nada sobre a idade dele: um número de telefone não é prova de idade, e nenhuma parte deste fluxo o trata como tal.

O que o passo do telefone traz é um lugar para pôr a resposta. Um resultado de idade sozinho é um fato sem âncora — alguém, em algum lugar, passou de um limite. Ligado a um número que o visitante acabou de usar de forma demonstrável, vira algo que você reconhece na próxima visita.

Isso também barateia o visitante recorrente. Um resultado positivo é guardado por um ano junto ao número, então quem já passou do mesmo limite comprova o número de novo e carrega a resposta anterior em vez de voltar ao provedor. Terminar a mensagem de WhatsApp com #reset ignora esse cache quando você precisa de uma resposta nova.

Verificar idade sem construir um banco de identidades

A pergunta que uma checagem de idade faz é um booleano. A maior parte dos dados normalmente coletados para respondê-la não é, e é isso que torna o arquivo de documentos um péssimo negócio: você acaba guardando passaportes e carteiras de motorista para armazenar um sim.

O que o seu aplicativo precisa é pouco. O resultado — verified, denied, failed ou ainda pending. O limite checado. Quando foi respondido e qual provedor respondeu. O identificador da sessão e o número verificado, que ligam a resposta ao visitante à sua frente. É todo o bloco age, mais o que o fluxo do telefone já devolve.

O que o seu aplicativo não precisa é de data de nascimento nem de documento de identidade, e a API não devolve nenhum dos dois, então não há campo para registrar por acidente. Uma resposta positiva é guardada junto ao número como a resposta, o limite e a data. As credenciais do provedor ficam em segredos do lado do servidor, e o que o provedor precisou olhar para decidir não é repassado a você.

Nada disso diz o que quer que seja sobre as suas próprias obrigações. O que você precisa checar, por quanto tempo precisa poder comprovar que checou e o que conta como método aceitável são perguntas para o seu jurídico e o seu regulador, não para um fornecedor de API.

Verificação de idade e verificação de identidade

A verificação de idade responde a uma pergunta: este visitante atinge o limite de idade que você definiu? A verificação de identidade responde a outra: quem é esta pessoa? As duas costumam ser vendidas juntas e movem quantidades de dados muito diferentes.

flow=age é do primeiro tipo. Não devolve nome, nem data de nascimento, nem nada vindo de um documento. Não é KYC, e um resultado positivo não é uma afirmação de identidade em que você possa se apoiar em outro lugar. Se a sua obrigação é saber quem é o cliente, esta não é a ferramenta para essa parte.

Ele também herda a suposição que existe sob toda checagem baseada em telefone: a de que o número pertence a quem o está usando. Provar o controle enviando uma mensagem é terreno mais firme do que receber um SMS, mas um adolescente com acesso ao telefone de um adulto é um cenário que nenhuma checagem remota fecha por completo. O artigo sobre checagens de idade que não viram um banco de documentos, no link abaixo, detalha a arquitetura, os quatro estados e os limites.

Integre a verificação de idade ao seu aplicativo

São as duas chamadas REST de qualquer integração Phone-Verif, com um parâmetro a mais. Autentique-se com a sua chave de API no cabeçalho x-api-key, abra a sessão com flow=age e leia o bloco age no endpoint de status ou no webhook.

  1. Visitante
  2. Verificação do número pelo WhatsApp
  3. Checagem de idade no provedor
  4. Resultado de idade
  5. Seu aplicativo

Os dois passos respondem a perguntas diferentes e ficam separados do início ao fim. Enviar a mensagem de WhatsApp prova que o visitante controla aquele número; isso nunca vale como prova da idade dele. Quem produz o resultado de idade é o passo de idade.

curl -X POST "https://api.phone-verif.com/start-verification?flow=age&min_age=18" \
  -H "x-api-key: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"session_id": "checkout-4821", "callback_url": "https://your-app.example/age-checked"}'

Abra uma sessão com flow=age. Sem min_age vale o limite configurado na sua conta, que é 18 enquanto você não mudar.

{
  "status": "verified",
  "age": { "status": "pending", "verified": false, "required": 18 },
  "age_verification_url": "https://t.phone-verif.com/av/AbCd1234"
}

A sessão chega a verified assim que o número é comprovado, enquanto o passo de idade ainda está pendente. Leia age.status, e não o status da sessão, para a resposta de idade — e mande o visitante para age_verification_url para concluir a checagem no navegador em que ele já está.

{
  "event": "age_verification_result",
  "session_id": "checkout-4821",
  "validation_token": "...",
  "age": {
    "status": "verified",
    "verified": true,
    "required": 18,
    "verified_at": "2026-09-01T22:00:00.000Z",
    "provider": "ageverif"
  }
}

Quando o provedor responde, um segundo webhook leva o resultado, e o endpoint de status devolve o mesmo bloco.

flow=age exige um provedor de idade configurado na sua conta. Sem ele, a API responde 503 com o código age_not_configured, de modo que um erro de configuração continua distinguível de uma queda.

Perguntas frequentes sobre verificação de idade

Posso verificar que os usuários têm mais de 18 anos?
Sim. Abra a sessão com flow=age e omita min_age: o fluxo checa então o limite configurado na sua conta, que é 18 enquanto você não mudar nas configurações.
Posso usar outra idade mínima?
Sim. Passe min_age na chamada inicial com o limite que precisa. Precisa ser um inteiro positivo, só é aceito em flow=age, e qualquer outra coisa é rejeitada com 400. Cada sessão guarda o limite com que foi aberta, e esse limite volta no campo required do bloco age, então quem ler depois sabe o que foi de fato estabelecido.
Preciso guardar a data de nascimento do usuário?
Não, e nem poderia: a API não devolve nenhuma. O que volta é se o limite foi atingido, qual era o limite, quando foi respondido e qual provedor respondeu.
Preciso guardar documentos de identidade?
Não. O provedor pode precisar ver um documento para formar a resposta; o seu aplicativo recebe apenas a resposta. Nada do documento é devolvido pela API, então não há o que guardar.
A verificação de idade prova a identidade de alguém?
Não. flow=age responde se a pessoa que detém um número comprovado atinge um limite. Não é verificação de identidade nem KYC: sem nome, sem data de nascimento, sem documento.
O que acontece se a verificação de idade falhar?
denied e failed são resultados diferentes e não devem ser tratados como um só. denied é uma decisão do provedor, e repetir a checagem não muda a resposta. failed significa que o provedor não pôde ser alcançado, então nada foi decidido e tentar de novo é justo. Uma negativa ou uma falha do provedor não é cobrada; uma checagem de idade concluída é cobrada como uma segunda unidade além da verificação do número.
Posso combinar verificação do número e verificação de idade?
É exatamente isso que flow=age é. Uma única sessão comprova o número pelo WhatsApp e depois roda o passo de idade, e os dois resultados chegam nessa mesma sessão. Não há duas integrações nem dois identificadores para conciliar.
Posso forçar uma nova checagem para um visitante que volta?
Sim. Um resultado positivo é reaproveitado por um ano para o mesmo número e o mesmo limite. Terminar a mensagem de verificação do WhatsApp com #reset ignora a resposta em cache e manda o visitante para a checagem completa.

Related

Casos de uso da verificação de idade

Conteúdo adulto

Onde uma caixa marcada já não conta como checagem. O resultado de idade filtra o acesso antes de qualquer entrega, e o visitante não envia documento nenhum para você.

Apostas online

Contas de apostas e cassino que precisam manter menores de fora. A checagem entra no cadastro e, se as suas próprias regras exigirem, antes de uma ação sensível.

Álcool e produtos restritos

Bebidas, tabaco, vapes, facas, solventes e fogos de artifício. A checagem fica na frente do pagamento, sobre o pedido e não sobre a sessão de navegação.

Jogos

Títulos com classificação etária, recursos de chat e mecânicas pagas restritas abaixo de certa idade. O limite é um parâmetro da requisição: cada recurso pode pedir o seu.

Marketplaces

Anúncios restritos por lei ou pela sua própria política. Compradores e vendedores podem ter limites diferentes, bastando abrir a sessão com outro min_age.

Plataformas sociais e de comunidade

Regras de idade mínima em contas, mensagens diretas ou recursos ao vivo. A resposta fica ligada a um número comprovado, então sobrevive ao fim da sessão.

Build your verificação de idade flow today

Start integrating in minutes with clear documentation, SDKs, and global message delivery.