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

O recurso de Verify Localização permite verificar a localização de um dispositivo de usuário final dentro de uma área especificada. Ele utiliza técnicas de posicionamento por rede celular para localizar o dispositivo, oferecendo várias vantagens em relação ao posicionamento por GPS, incluindo:

  • Seguro e confiável: O posicionamento por rede celular utiliza informações provenientes diretamente das redes das operadoras de telefonia móvel, eliminando o risco de falsificação de dados do GPS e de contornamento por meio de VPN.
  • Integração simplificada: O Identity Insights pode ser facilmente integrado às suas applications, reduzindo a complexidade e o esforço no desenvolvimento de software.

Alguns casos de uso na prevenção de fraudes em que a verificação de localização é útil:

  • Verificação de usuários no comércio eletrônico: As plataformas de comércio eletrônico e de conteúdo enfrentam desafios decorrentes do fato de os usuários consumirem serviços, conteúdos e licenças fora da região para a qual foram licenciados. O recurso de verificação de localização permite que essas plataformas verifiquem se a localização de um usuário final está dentro da região autorizada para o serviço, conteúdo ou licença.
  • Verificação no ponto de venda: Quando um usuário está realizando uma compra em uma loja usando seu cartão de crédito ou débito, às vezes a instituição financeira deseja verificar se a transação é fraudulenta. A verificação de localização pode ser utilizada com o número de telefone inserido no aplicativo bancário para consultar o local onde a transação foi iniciada, a fim de confirmar se o usuário está nesse local.
  • Conteúdo baseado em localização: Verifique a localização de um usuário durante eventos esportivos ou shows para enriquecer sua experiência com conteúdo personalizado, como replays de gols, ângulos diferentes, informações úteis e muito mais.

Observação: o uso dessa informação em ambiente de produção requer a aprovação das operadoras de telefonia móvel, que é gerenciada por meio do “Registro de Rede”. Para saber como solicitar acesso, siga este guia.

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 programa Location Verification Insight de forma programática, usando o 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 “Verificação de localização”, a fim de verificar se a localização de um determinado dispositivo do usuário está dentro da área especificada:

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": {
      "location_verification": {
         "location": {
            "type": "CIRCLE",
            "radius": 3000,
            "center": {
               "latitude": -90,
               "longitude": -180
                }
            }
          }
        }
    }'

A API comparará, então, a área fornecida como entrada para aquele usuário específico de celular com a localização disponível nos sistemas da própria operadora do usuário e retornará uma confirmação caso haja correspondência:

{
  "request_id": "c2cc7a65-9b10-493f-9c0a-1c86751a91c4",
  "insights": {
    "location_verification": {
        "is_verified": "TRUE",
        "latest_location_at": "2024-07-08T09:30:27.504Z",
        "match_rate": 1,
        "status": {
          "code": "OK",
          "message": "Success"
        }
    }
  }
}

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.

Campo Descrição Obrigatório
is_verified Resultado de uma solicitação de verificação:

TRUE: quando a rede localiza o dispositivo dentro da área solicitada.
FALSE: quando a área solicitada não corresponde à área em que a rede localiza o dispositivo.
UNKNOWN: quando a rede não consegue localizar o dispositivo.
PARTIAL: quando a área solicitada coincide parcialmente com a área em que a rede localiza o dispositivo. A match_rate poderia ser incluído na resposta.
Sim
latest_location_at Data e hora em UTC ISO 8601 da última localização. Sim
match_rate Estimativa da taxa de correspondência entre a área indicada na solicitação (R) e a área em que a rede localiza o dispositivo (N), calculada como o valor percentual da interseção entre ambas as áreas dividido pela área da rede, ou seja, (R ∩ N) / N * 100. Incluído apenas se for Verify é PARTIAL. Não

Leitura complementar