Verifique a validade do passaporte para sua viagem
Use este verificador para comparar o vencimento do passaporte com as datas planejadas de partida e retorno.
Executar grátis
Ele aplica uma regra comum: o documento deve permanecer válido por pelo menos seis meses de calendário após a volta. O resultado mostra a data-limite exata, se a regra foi atendida, quantos dias de validade restam e qualquer insuficiência. Esta é uma verificação de planejamento, não uma decisão oficial de entrada; as exigências variam conforme destino, nacionalidade, documento, rota e países de trânsito.
Informe as três datas do seu itinerário real
Comece pela data de vencimento impressa no passaporte e informe as datas planejadas de partida e retorno no formato YYYY-MM-DD. Use o dia em que a pessoa viajante espera concluir a viagem internacional, e não a data da compra da reserva ou do envio de uma solicitação. O verificador rejeita um itinerário quando a partida ocorre depois do retorno, pois essa ordem não representa a viagem planejada. Ele também valida cada data como um dia real do calendário gregoriano, impedindo que valores como 30 de fevereiro gerem silenciosamente uma resposta enganosa. Nomes, números de passaporte, nacionalidade e outros dados pessoais não são necessários nem solicitados. Se a viagem tiver vários trechos internacionais, use a data do retorno final nesta verificação conservadora de seis meses e depois consulte cada destino e ponto de trânsito separadamente. Faça o cálculo novamente sempre que o itinerário mudar, pois alterar o retorno em poucos dias também desloca o vencimento mínimo aceitável. O cálculo é determinístico e não usa a data atual; as mesmas três entradas sempre produzem o mesmo resultado.
Entenda o limite de seis meses de calendário
A data de validade exigida é calculada acrescentando seis meses de calendário ao retorno planejado. Não se usa uma quantidade fixa de dias, porque os meses têm durações diferentes. Por exemplo, um retorno em 15 de outubro gera o limite de 15 de abril. Quando o dia correspondente não existe no mês de destino, o cálculo usa o último dia válido desse mês: seis meses depois de 31 de agosto é o último dia de fevereiro, incluindo 29 de fevereiro em ano bissexto. O passaporte atende à regra quando vence na data calculada ou depois dela. A resposta também informa o total de dias corridos entre o retorno e o vencimento, que pode ser negativo se o documento vencer antes da volta. A insuficiência é zero quando a regra é cumprida; caso contrário, mostra quantos dias adicionais faltam para alcançar o limite. Esses campos tornam a decisão auditável e mantêm simples a resposta central: verdadeiro ou falso diante de uma data exibida com clareza.
Use o resultado como triagem, não como orientação oficial
A validade de seis meses além da viagem é uma regra prática bastante usada, mas não é universal, e a data de referência pode variar. Um país pode exigir validade após a chegada em vez do retorno, aceitar um período menor, exigir páginas em branco, diferenciar passaportes comuns e emergenciais ou aplicar condições distintas conforme cidadania e visto. Companhias aéreas e países de trânsito também podem realizar suas próprias verificações. Portanto, um resultado positivo significa apenas que as datas satisfazem a regra de calendário implementada aqui; ele não garante embarque, trânsito, admissão ou aprovação de visto. Após conferir as datas, confirme a exigência vigente com o governo do destino, as autoridades de todos os países de trânsito e a transportadora responsável. Renove com antecedência se o resultado for negativo ou estiver perto do limite, especialmente quando as passagens puderem mudar ou atrasos prolongarem a viagem. O cálculo no navegador pode ser usado sem conta, enquanto verificações automatizadas pela API custam US$ 0,002 por solicitação. Nenhuma consulta de rede é feita, portanto esta ferramenta nunca coloca uma base desatualizada no lugar de uma fonte oficial.
Casos de uso
Confira o passaporte antes de reservar
Compare o vencimento impresso com o itinerário proposto antes de assumir compromissos com voos ou hospedagem.
Verifique as pessoas de um grupo
Aplique o mesmo teste consistente de seis meses a cada viajante sem coletar nomes nem números de passaporte.
Confira novamente após mudar a viagem
Calcule o novo limite quando o retorno mudar e veja a quantidade exata de dias insuficientes.
Perguntas frequentes
Todos os países exigem seis meses de validade?
Não. As regras variam por destino, cidadania, rota, documento e visto. Confirme as exigências atuais com autoridades oficiais e a transportadora.
Os seis meses contam da partida ou do retorno?
Este verificador usa deliberadamente o retorno planejado como referência conservadora e acrescenta seis meses de calendário.
Como são tratadas as datas no fim do mês?
Se o mesmo dia não existir seis meses depois, o limite será o último dia válido do mês de destino.
Um passaporte que vence exatamente no limite é aceito?
Sim. Um vencimento igual ou posterior a required_valid_until atende à regra implementada neste verificador.
Um resultado positivo garante entrada ou embarque?
Não. Ele confere somente três datas contra uma regra e não considera exigências atuais de governos, vistos, trânsito, companhias aéreas ou condições físicas do passaporte.
Quanto custa uma solicitação de API?
Cada solicitação de API custa US$ 0,002. O mesmo cálculo determinístico também está disponível gratuitamente no navegador.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/travel2/passport-expiry-travel-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"passport_expiry_date":"2027-04-20","travel_date":"2026-09-10","return_date":"2026-09-20"}'const res = await fetch("https://api.kit.forhosting.com/travel2/passport-expiry-travel-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"passport_expiry_date": "2027-04-20",
"travel_date": "2026-09-10",
"return_date": "2026-09-20"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/travel2/passport-expiry-travel-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"passport_expiry_date": "2027-04-20",
"travel_date": "2026-09-10",
"return_date": "2026-09-20"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/travel2/passport-expiry-travel-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"passport_expiry_date":"2027-04-20","travel_date":"2026-09-10","return_date":"2026-09-20"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"passport_expiry_date":"2027-04-20","travel_date":"2026-09-10","return_date":"2026-09-20"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/travel2/passport-expiry-travel-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"passport_expiry_date": "2027-04-20",
"travel_date": "2026-09-10",
"return_date": "2026-09-20"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "travel2.passport_expiry_travel_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |