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.
- Visitante
- Verificação do número pelo WhatsApp
- Checagem de idade no provedor
- Resultado de idade
- 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.