Saltar para o conteúdo principal
O passo de verificação de localização da Didit confirma onde uma pessoa se encontra enquanto realiza a verificação, através da leitura única da posição do dispositivo (navegador ou SDK nativo) ou da localização por IP da ligação, e comparando-a com áreas permitidas e bloqueadas, a localização por IP e a morada nos seus documentos. Nos fluxos e na API, trata-se da funcionalidade GEOLOCATION, as suas definições são as chaves geolocation_* e o seu resultado é geolocation_checks[] na decisão da sessão.

Quando utilizar

  • Detém uma licença apenas para determinadas jurisdições (jogos de azar, corretagem, crédito) e precisa de comprovar que a pessoa se encontrava dentro de uma delas quando submeteu o pedido.
  • Precisa de manter as pessoas fora de locais bloqueados, como uma região sob sanções ou um estado onde não presta serviço.
  • Pretende mais um sinal de fraude: uma posição do dispositivo distante da localização por IP ou da morada no documento de identificação, uma posição simulada, uma VPN ou um emulador.
  • Não necessita das deslocações ou do histórico da pessoa, apenas de uma leitura obtida durante a sessão.

Como funciona

Aviso e permissão

A pessoa vê o motivo pelo qual a sua localização é necessária e que esta é lida apenas uma vez, para esta verificação. O seu navegador ou telemóvel solicita então a permissão. A Didit regista o aviso que a pessoa aceitou (versão, idioma e hora) como consent no resultado.

Uma posição por tentativa

O cliente mantém a melhor leitura até que esta seja suficientemente precisa ou que o tempo limite por tentativa (por predefinição, 20 segundos) expire. Cada tentativa inclui um desafio de utilização única válido por 5 minutos e associado à sessão, para que uma submissão capturada não possa ser reproduzida.

Verificações

A Didit avalia a precisão, a atualidade, permissões de localização aproximada, sinais de spoofing, áreas, a distância até à localização por IP e à morada do documento, deteções de VPN, proxy, Tor e emulador, bem como as verificações anteriores da pessoa.

Resultado

Cada constatação gera um aviso cuja ação configurada (NO_ACTION, REVIEW ou DECLINE) define o estado do passo. A ação mais forte prevalece.

Fontes de posição

Escolhe a proveniência da posição com geolocation_position_source. Num nó que consulta o dispositivo, uma tentativa sem posição é avaliada como uma recusa ou falha, conforme o caso: a localização por IP nunca a substitui.

Valores predefinidos e limites de configuração

Todas as chaves são opcionais. A lista completa encontra-se na referência das configurações das funcionalidades dos fluxos.

Predefinições

geolocation_preset define o valor predefinido de todas as ações que deixar por configurar. licensing recusa uma posição fora das áreas permitidas, dentro de uma área bloqueada, através de VPN ou Tor, ou num emulador, e envia para revisão quando é detetado um proxy. fraud_screening aplica as mesmas constatações, mas envia para revisão tudo o que licensing recusaria. Uma ação que configure explicitamente prevalece sempre.

Geofencing

Ative is_geolocation_geofencing_enabled e liste as geolocation_areas. Uma área é um país inteiro, regiões (ISO 3166-2) de um país, um círculo (1 a 500 km) ou um polígono (3 a 200 pontos). Apenas uma posição dentro de uma área permitida é aprovada, e uma área bloqueada prevalece sempre sobre uma permitida. Uma lista suporta até 50 áreas e requer pelo menos uma área permitida. A Didit avalia todo o círculo de precisão da posição, não apenas o seu centro:
  • Um círculo totalmente fora de todas as áreas permitidas é LOCATION_OUTSIDE_GEOFENCE.
  • Um círculo que cruze uma fronteira que determine a resposta é LOCATION_GEOFENCE_UNDETERMINED, nunca «fora».
  • Um círculo totalmente dentro de uma área bloqueada é LOCATION_IN_BLOCKED_AREA, sendo gerado em conjunto com o veredito da área permitida.
Um país ou região termina onde começa outro território terrestre, não na sua linha de costa. É mostrado à pessoa onde o serviço está disponível, mas nunca quais as áreas que estão bloqueadas. As regras de área também funcionam num passo ip_only, avaliadas a partir da localização por IP. A definição anterior geolocation_geofencing_by_country continua a funcionar, mas não pode ser combinada com geolocation_areas.

Verificações de distância

O parâmetro geolocation_document_distance_basis escolhe a morada: document (o documento de identidade e, depois, o comprovativo de morada), proof_of_address ou declared (expected_details.address da criação da sessão). Com geolocation_travel_tolerance_enabled, uma pessoa vista perto da sua morada nos últimos geolocation_travel_max_days dias não é sinalizada por estar longe dela agora. A tolerância de viagem nunca isenta uma VPN, uma posição com spoofing, uma área bloqueada ou uma posição fora das áreas permitidas.

Sinais de spoofing e integridade

  • Fornecedores de localização simulada: o Android e o iOS comunicam quando uma posição é simulada em vez de medida.
  • Atestação do dispositivo: os SDKs nativos podem anexar uma atestação do dispositivo. Uma atestação com falha resulta sempre em recusa. Uma atestação em falta é registada e, por predefinição, não desencadeia qualquer ação. Os navegadores não conseguem atestar e são registados como unsupported, não como uma falha.
  • VPN, proxy e Tor: detetados na ligação que partilhou a localização. Quando a sua ação para um deles não for NO_ACTION, é pedido à pessoa que o desative e tente novamente enquanto restarem tentativas.
  • Emuladores: comunicados apenas por aplicações nativas. Um emulador termina o passo nessa tentativa, pois nenhuma nova tentativa altera o dispositivo.
  • Reprodução: um desafio apresentado noutra sessão resulta sempre em recusa.

Resultados

A tentativa aceite do passo tem um outcome: Enquanto restarem tentativas, um resultado de raio amplo, desatualizado, aproximado, recusado ou relacionado com uma área solicita à pessoa que tente novamente, e apenas a última tentativa gera avisos. Uma posição simulada, ou um emulador sobre o qual o seu fluxo aja, termina o passo na tentativa que o comunicou.

Experiência da pessoa

Consentimento e permissão

Nada é lido antes de a pessoa aceitar o aviso e responder ao pedido do sistema. O aviso indica que a localização é lida uma única vez, para esta verificação, e não constitui um registo dos seus movimentos. Uma pessoa que recuse é tratada de acordo com geolocation_refusal_path:
  • retry_then_handoff pergunta novamente enquanto restarem tentativas e, em seguida, oferece a opção de continuar num telemóvel.
  • continue_without_location oferece a opção de prosseguir sem localização e regista a recusa como o resultado.
  • end_session termina o passo e a sessão na primeira recusa. Exige que geolocation_permission_denied_action esteja definido como REVIEW ou DECLINE, e a sessão nunca é aprovada.
Com o parâmetro geolocation_allow_skip ativado, a pessoa pode continuar sem localização a qualquer momento, e o passo é avaliado por geolocation_unavailable_action. O fluxo alojado solicita a posição ao navegador e apresenta ajuda passo a passo para o Chrome e o Safari quando a localização está desativada para o site. Um navegador não consegue distinguir uma concessão precisa de uma aproximada, pelo que os resultados web nunca geram LOCATION_APPROXIMATE_ONLY, e nunca comunica um fornecedor de localização simulada, um emulador ou uma atestação. Um computador não pode partilhar uma posição precisa, pelo que o fluxo disponibiliza um código QR que continua a mesma verificação no telemóvel da pessoa (geolocation_allow_qr_handoff, ativado por defeito), e o computador avança autonomamente quando o telemóvel terminar. Quando incorporar o fluxo num iframe, inclua geolocation no atributo allow; consulte o iframe em contexto. Uma página que bloqueie a política de permissões de geolocalização é tratada como uma decisão do site, e não como uma recusa da pessoa.

SDKs nativos

Os SDKs para iOS e Android consultam o sistema operativo e podem anexar a atestação do dispositivo e sinalizadores de localização simulada. No iOS, adicione NSLocationWhenInUseUsageDescription ao Info.plist, e no Android o SDK declara ACCESS_FINE_LOCATION e ACCESS_COARSE_LOCATION e faz o pedido em tempo de execução apenas quando um fluxo inclui este passo. Consulte os SDKs nativos. Uma concessão aproximada no iOS ou Android gera LOCATION_APPROXIMATE_ONLY, a menos que geolocation_accuracy_mode seja approximate_allowed. Uma aplicação ou versão do SDK anterior a este passo encerra o passo com unsupported_client em vez de deixar a sessão bloqueada.

O que a decisão devolve

A decisão da sessão e o webhook status.updated contêm duas listas:
  • geolocation_checks[]: um item por passo de Localização, contendo a tentativa aceite desse passo, com os seus warnings.
  • geolocation_attempts[]: todas as tentativas de cada passo de Localização, da mais antiga para a mais recente.
Consulte o relatório de verificação de localização para conhecer todos os campos. As coordenadas, precisão, cidade e país são dados pessoais do utilizador final, pelo que os atributos de resposta de um fluxo podem restringir quais os campos de geolocation_checks devolvidos pela sua decisão.

Preços

A verificação de localização custa $0.05 por verificação e não faz parte do plano gratuito. A Didit cobra uma vez por cada passo de Localização numa sessão, qualquer que seja o seu resultado, dado que a verificação foi executada e devolveu uma resposta. As novas tentativas dentro do mesmo passo são gratuitas. Um novo envio que conclua o passo novamente é cobrado de novo.

Sandbox

As sessões em sandbox executam o mesmo passo no mesmo fluxo alojado, e o dispositivo ou navegador continua a comunicar uma posição real. As sessões em sandbox nunca contactam o serviço de pesquisa de IP, pelo que a comparação de IP utiliza apenas o que a sessão já contém. A utilização é registada com um preço de 0, pelo que uma sessão em sandbox nunca é cobrada. Não existem entradas mágicas para este passo.

Relacionado

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