Como você executa a validação de endereço? [fechadas]

88

É mesmo possível realizar a validação de endereço (físico, não e-mail)? Parece que o grande número de formatos de endereço, mesmo nos Estados Unidos, tornaria essa tarefa bastante difícil. Por outro lado, parece uma tarefa que seria necessária para vários requisitos de negócios.

Kevin Pang
fonte
22
faça o que fizer, se o endereço parecer inválido, deixe o usuário selecionar se ele realmente é válido, não apenas o rejeite porque o validador diz que ele é inválido.
Pim Jager
Você quer dizer "preenchimento automático de endereço" ou "validação de endereço"? Quero dizer, nenhum serviço saberá de todas as mudanças que acontecem no mundo real. A cada minuto, milhões de novos endereços aparecem e os antigos sendo demolidos. E estou falando localmente agora, no âmbito de um planeta.
Yevgeniy Afanasyev

Respostas:

27

Esta é uma maneira gratuita e tipo "fora da caixa" de fazer isso. Não é 100% perfeito, mas deve rejeitar endereços claramente inexistentes.

Envie o endereço completo para o serviço da web de geocodificação do Google . Este serviço tenta retornar as coordenadas exatas do local que você o alimenta, ou seja, latitude e longitude.

Na minha experiência, se o endereço for inválido, você receberá um resultado de 602 do serviço. Definitivamente, há a possibilidade de falsos positivos ou falsos negativos, mas usado em conjunto com outras verificações de consistência pode ser útil.

( O serviço de geocodificação do Yahoo , por outro lado, retornará as coordenadas do centro da cidade se a cidade existir, mas o restante do endereço for falso. Potencialmente útil, desde que você preste muita atenção ao campo "precisão" em o resultado).

Tim Farley
fonte
4
Existe alguém que realmente usou esse método em um sistema ativo?
Aston
27
Os TOS do Google e do Yahoo proíbem o uso de seu serviço de geocodificação, exceto em conjunto com o uso de um mapa exibido para o usuário. Encontre algo mais parecido com o que Jonathan Oliver sugeriu. Veja: code.google.com/apis/maps/terms.html
Matt
1
Não estou obtendo os referidos 602 resultados quando insiro um endereço incorreto.
HK1
9
Esta realmente NÃO deve ser a resposta selecionada. Isso viola os TOS do Google e, na verdade, não está validando endereços. O Google usa muita inteligência para "adivinhar" o endereço que você deseja, mesmo quando as informações estão um pouco erradas. O Google também retornará um geocódigo se você disser entre 55 Main St e o google souber que há uma Main Street 50 e uma Main Street 60, ele retornará um geocódigo bem-sucedido com a média da distância, mesmo que um 55 Main St não realmente existir. Você precisa usar um serviço de validação real como USPS de preferência ou Experian ou SmartyStreets.
jacurtis de
1
Isso faria um aplicativo Blockchain maravilhoso onde todos contribuem com um nó, armazenando bits e partes de um banco de dados imenso em constante mudança ...
decoder7283
19

Há uma série de boas respostas aqui, mas a maioria delas pressupõe que o usuário deseja uma solução "API" em que deve escrever código para se conectar a um serviço de terceiros e / ou copiar a tela do USPS. Tudo isso é muito bom, mas deve ser considerado nos requisitos de negócios e custos associados à implementação e, em seguida, ponderado em relação aos benefícios desejados.

Dependendo dos requisitos de negócios e da maneira como os dados são recebidos no sistema, uma solução de processamento de endereços em tempo real pode ser a melhor aposta. Se uma solução em tempo real for necessária, você deve considerar o contrato de licença e as limitações técnicas das APIs do Google Maps / Bing / Yahoo. Eles normalmente limitam o número de chamadas que você pode fazer a cada dia. A API de ferramentas da Web do USPS é a mesma, mas restringe como / por que você pode usar o sistema e como você tem permissão para usar os dados posteriormente.

Ao mesmo tempo, há um punhado de grandes provedores de serviços que podem processar facilmente uma lista estática de endereços. Basicamente, você dá ao provedor de serviços um arquivo CSV ou Excel, eles o limpam e o devolvem a você. É um acordo único, sem compromisso ou obrigação de longo prazo - geralmente.

Divulgação completa: sou o fundador da SmartyStreets. Fazemos verificação de endereço para endereços dentro dos Estados Unidos. Podemos facilmente certificar uma lista de CASS e também oferecemos uma API de serviço web de verificação de endereço . Não temos taxas ocultas, contratos ou qualquer coisa. Você usa nosso serviço até não precisar mais dele e pode ir embora. (Ao contrário das empresas de telefonia celular que exigem um contrato.)

Jonathan Oliver
fonte
1
Perfeito, exatamente o que eu estava procurando. E deixe-me dizer que você tem estilo, senhor. Belo site.
Cory Mawhorter
2
Usamos SmartyStreets e é incrível.
JerSchneid
17
O custo do SmartyStreet para 1.000 pesquisas é de $ 30. Economizei um clique para você.
William Entriken de
1.000 pesquisas = 66 $ para internacionais
Robert Sinclair,
Na verdade o USPS tem uma interface REST para isso ... entretanto, e isto é ENORME entretanto ... se você acertar isso com um script para validar um banco de dados cheio de endereços eles irão bani-lo. Você tem permissão para validar a entrada de dados do usuário com ele, portanto, pode ser usado em um formulário da web onde os acessos da API serão cronometrados aleatoriamente. Apenas certifique-se de que seu formulário tem proteção de bot ou você obterá acesso DoS à API em pouco tempo. Além disso, isso só é bom para endereços nos EUA.
Neil Davis
15

O USPS tem um limpador de endereços online , que alguém raspou na tela de um serviço da web de um homem pobre. No entanto, se você estiver fazendo isso com bastante frequência, seria uma ideia melhor se inscrever para uma conta do USPS e ligar para o seu próprio serviço web .

Mark Brackett
fonte
17
Para evitar a azia de fazer isso e receber uma carta de rejeição três dias depois, quase ninguém tem permissão para usar o próprio validador de endereço do USPS. É por isso que a tela do cara raspou em primeiro lugar. É estritamente limitado a organizações sem fins lucrativos.
Nicholas Piasecki
5
O USPS não permite que esses dados sejam usados ​​para outra coisa senão o envio de uma carta ou pacote. Em outras palavras, você deve enviar para o endereço que procura.
16
O USPS permitirá o uso comercial de IFF - você não está revendendo ou limpando seus bancos de dados. Nós nos qualificamos para uma conta e a usamos para verificar / corrigir TODOS os endereços que chegam por meio de nossos formulários da web.
marklark de
2
Ou pretendo enviar pelo correio em algum momento. Minha empresa teve inicialmente o acesso à API do USPS negado, mas, após esclarecer nosso uso pretendido (e declarar que não usaríamos a API para corrigir dados antigos), fomos aprovados.
marklark de
4
Você só pode usar a API do USPS se estiver verificando um endereço para enviar ou enviar remessas: secure.shippingapis.com/registration - se você não enviar remessas ou enviar pelo USPS, encontre uma API alternativa que não tem as restrições de licença.
Matt
9

Vou encaminhá-lo para a minha postagem do blog - Uma lição sobre armazenamento de endereço , vou entrar em algumas das técnicas e algoritmos usados ​​no processo de validação de endereço. Meu pensamento principal é "Não seja preguiçoso com o armazenamento de endereços, isso só lhe causará dores de cabeça no futuro!"

Além disso, há outra pergunta StackOverflow que faz esta pergunta. Intitulado Como os endereços geográficos internacionais devem ser armazenados em um banco de dados relacional .

BenAlabaster
fonte
8

Durante o desenvolvimento de um serviço interno de verificação de endereço em uma empresa alemã para a qual trabalhava, descobri várias maneiras de resolver esse problema. Vou fazer o meu melhor para resumir minhas descobertas abaixo:

Software de código aberto gratuito

Claramente, a primeira abordagem que qualquer um faria é de código aberto (como o openstreetmap.org ), o que nunca é uma má ideia. Mas se você pode realmente colocar isso em uso bom e confiável depende muito de quanto você precisa confiar nos resultados.

Os endereços são algo extremamente variável. Verificar endereços nos EUA não é uma tarefa fácil, mas suportável, mas quando você estiver indo para a Europa, especialmente o Reino Unido com seu extenso sistema de código postal, a abordagem de código aberto simplesmente não terá dados.

Serviços da Web / APIs

Software de classe empresarial

O dinheiro resolve, obviamente. Mas nem todo negócio ou desenvolvedor pode gastar ~ $ 0,15 por consulta de endereço (isso é $ 150 para 1.000 solicitações de API) - um modelo de negócios muito caro que a grande maioria das APIs de validação de endereço implementou.

O que acabei integrando: API do streetlayer

Como não estava disposto a adotar a abordagem programática de verificar os dados de endereço manualmente, finalmente cheguei à conclusão de que precisava de uma API com um preço que não fizesse meu chefe querer me demitir e ainda fornecer informações sólidas e confiáveis resultados de verificação internacional.

Resumindo, acabei integrando uma API construída por apilayer, chamada de "API streetlayer". Fui facilmente convencido por uma integração JSON simples, resultados de validação surpreendentemente precisos e seu preço amigável ao desenvolvedor. Além disso, 100 solicitações / mês são totalmente gratuitas.

Espero que isto ajude!

Frank
fonte
boa resposta, infelizmente a API do streetlayer será encerrada na próxima semana (em 03-07-2017). alguma alternativa disponível por menos de 15 centavos por solicitação?
Chris
1

Eu usei os serviços de http://www.melissadata.com Seu "objeto de endereço" funciona muito bem. É caro, sim. Mas quando você considera os custos de escrever suas próprias soluções, o custo de dados sujos em seu aplicativo, correspondências devolvidas - vendas perdidas e assim por diante - os custos podem ser justificados.

Taptronic
fonte
1

Você também pode experimentar as soluções de qualidade de dados da SAP, que estão disponíveis em uma plataforma de servidor para processar um grande número de solicitações ou como um SDK embutido se quiser executá-lo em processo com seu aplicativo. Nós o usamos em nosso aplicativo e é muito robusto e escalonável.

James Cheng
fonte
1

Conforme visto no reddit :

$address = urlencode('1600 Pennsylvania Avenue, Washington, DC');
$json = json_decode(file_get_contents("http://where.yahooapis.com/geocode?q=$address&flags=J"));
print_r($json);
Xeoncross
fonte
1

Você pode experimentar a Api “IdentifyAddress” da Pitney Bowes disponível em - https://identify.pitneybowes.com/

O serviço analisa e compara os endereços de entrada com os bancos de dados de endereços conhecidos em todo o mundo para gerar um detalhe padronizado. Ele corrige endereços, adiciona informações postais ausentes e as formata usando o formato preferido pela autoridade postal aplicável. Eu também uso bancos de dados de endereços adicionais para fornecer detalhes aprimorados, incluindo qualidade de endereço, tipo de endereço, transliteração (como de caracteres Kanji chineses para caracteres latinos) e se um endereço é validado para o local / número da casa, rua ou cidade de informações de referência.

Você encontrará vários samples e sdk disponíveis no site e achei extremamente fácil de integrar.

Parag Mittal
fonte
0

Existem empresas que prestam este serviço. Os bureaus de serviço que lidam com mala direta em massa irão limpar uma lista de mala direta inteira para que esteja no formato adequado, o que resulta em um desconto na postagem. O USPS vende bancos de dados de informações de endereço que podem ser usados ​​para desenvolver soluções personalizadas. Eles também têm listas de fornecedores aprovados que fornecem esse tipo de software e serviço.

Existem alguns (mas não muitos) pacotes que possuem APIs para conectar a validação de endereço em seu software.

No entanto, você está certo de que é um problema bastante desagradável.

http://www.usps.com/ncsc/ziplookup/vendorslicensees.htm

Jason
fonte
0

Conforme mencionado, existem muitos serviços por aí, se você está procurando validar verdadeiramente o endereço inteiro, então eu recomendo fortemente ir com um serviço do tipo Web Service para garantir que as alterações possam ser rapidamente reconhecidas pelo seu aplicativo.

Além dos serviços listados acima, webservice.net tem este serviço de validação de endereço dos EUA. http://www.webservicex.net/WCF/ServiceDetails.aspx?SID=24

Vendedores Mitchel
fonte
0

Tivemos sucesso com Perfect Address .

Seu banco de dados contém todos os nomes de ruas e intervalos de números de ruas dos EUA. Também atua como um analisador bastante decente para campos de endereço de formato livre, se você tiver a sorte de ter esse tipo de dados.

Jason DeFontes
fonte
Muito interessante ... seu site de aparência antiga me faz pensar se eles ainda estão no mercado ou são confiáveis?
Anthony Griggs de
Já faz um tempo que não estou na empresa onde o usamos. Não parece que eles mudaram muito, mas ainda afirmam ter dados atuais.
Jason DeFontes
0

Validar se é um endereço válido é uma coisa.

Mas se você está tentando validar a residência de uma pessoa em um determinado endereço, sua única quase garantia seria um teste de correspondência para o endereço, e mesmo assim não é certo se a pessoa é organizada ou conhece alguém naquele endereço.

Caso contrário, as pessoas poderiam apenas especificar um endereço aleatório arbitrário que elas sabem que existe e isso não significaria nada para você.

O melhor que você pode fazer para obter resultados imediatos é solicitar que o usuário envie uma cópia fotografada / digitalizada do chefe de seu extrato bancário ou algum outro comprovante de residência recente, porque pelo menos então eles terão que se esforçar mais para esquecê-lo, e falsificar coisas ditas aparecem facilmente com um nível básico de análise forense de imagens.

Kent Fredric
fonte
0

Não existe uma solução global. Para qualquer país, é, na melhor das hipóteses, bastante complicado.

No Reino Unido, o PostOffice controla os endereços postais e pode fornecer (a um custo) informações de endereço para fins de validação.

As agências governamentais também mantêm uma extensa lista de endereços, e estes são coletados centralmente no NLPG (National Land and Property Gazetteer).

Na verdade, validar essas listas é muito difícil. A maioria das pessoas nem mesmo sabe exatamente como seu endereço é mantido pelo PostOffice. Algumas empresas nem sabem o número de unidades em uma determinada rua.

Sua melhor aposta é procurar uma empresa especializada nesse tipo de coisa.

Kramii
fonte
0

Para dados de endereço baseados nos Estados Unidos, minha empresa usou GeoStan . Ele tem ligações para C e Java (e criamos uma ligação Perl). Observe que é um produto comercial e não é barato. Porém, é bastante rápido (aproximadamente 300 endereços por segundo) e oferece recursos como certificação CASS (desconto de correio em massa do USPS), sinalização DPV (verificação do ponto de entrega) e geocodificação LON / LAT.

Existe um módulo Perl Geo :: PostalAddress , mas ele usa heurísticas e não possui os outros recursos mencionados para GeoStan.

Editar: alguns mencionaram 'fazer você mesmo'; se você decidir fazer isso, uma boa fonte de informação para começar é o conjunto de dados do tigre do censo dos EUA , que contém muitas informações sobre os EUA, incluindo informações de endereço.

Kyle Burton
fonte
0

O Yahoo também tem uma API Placemaker. É bom apenas para locais, mas tem uma identificação universal para todos os locais do mundo.

Parece que não existe um padrão na lista ISO .

Elzo Valugi
fonte
0

NAICS.com está lançando uma API que irá adicionar todos os tipos de dados comerciais importantes, incluindo endereço. Isso aconteceria instantaneamente à medida que os formulários do seu site são processados. https://www.naics.com/business-intelligence-api/

Jillian Baker
fonte
0

O serviço Fixaddress.com está disponível e fornece os seguintes serviços,

1) Validação de endereço.

2) Correção de endereço.

3) Correção ortográfica de endereços.

4) Corrija os erros fonéticos dos endereços.

Fixaddress.com usa dados USPS e Tiger como dados de referência.

Para obter mais detalhes, visite o link abaixo,

http://www.fixaddress.com/

Rakesh Chaudhari
fonte
0

Uma área onde as pesquisas de endereço devem ser realizadas de forma confiável é para os serviços VOIP E911. Conheço empresas que usam os seguintes serviços de forma confiável para isso:

Bandwidth.com 9-1-1 Acesso API Validação de endereço MSAG

MSAG = Guia principal de endereços de rua

https://www.bandwidth.com/9-1-1/

API SmartyStreet US Street Address

https://smartystreets.com/docs/cloud/us-street-api

Grokify
fonte
0

Para começar, pode ser útil esclarecer o que você entende por validação de endereço. Você deseja localizar geograficamente um endereço e garantir que ele realmente exista? Você está tentando garantir que um endereço receba correspondência? Divulgação completa, trabalho para uma empresa chamada Service Objects e oferecemos APIs que ajudam a abordar esses dois cenários. Freqüentemente, recebemos perguntas de nossos clientes sobre a diferenciação entre um endereço físico e um endereço para correspondência (que às vezes pode ser diferente) e acho que essa seria uma distinção importante a fazer aqui. Embora o google maps seja uma ferramenta de geolocalização muito útil, não vai fazer muito no que diz respeito a realmente validar um endereço e fornecer informações além de onde o gmaps "pensa" que o endereço está. Temos alguns blogs que podem ajudar a identificar e explicar melhor esses tópicos:

Endereço postal vs endereço físico: qual é a diferença?

Validação de endereço DOTS vs. Google Maps: Qual é a diferença?

Para responder à sua pergunta, você pode realizar a validação de endereço com as ferramentas certas e fontes de dados confiáveis. Trabalhamos em soluções para isso na forma de APIs que ajudariam a geolocalização de endereços e validar endereços. O primeiro ajudaria a localizar realmente um endereço e o último ajudaria a determinar se um endereço é válido para fins de correspondência. Se você estiver interessado, há links para ambos abaixo

Validação de Endereço

Geocodificação de Endereço

Engenharia de Objetos de Serviço
fonte
-1

Para endereços nos EUA, você pode exigir um estado válido e verificar se o CEP é válido. Você pode até verificar se o código postal está no estado correto, mas, além disso, não acho que haja muitos testes que você possa executar que não forneçam muitos falsos negativos.

O que você está tentando fazer - evitar erros simples ou impor algum tipo de verificação de identidade?

Rob Walker
fonte
Você deve usar serviços pagos de terceiros.
mmcdole
Você não precisa usar ferramentas de terceiros. O USPS possui serviços da Web que fazem isso.
brian d foy
Na verdade, se a tarefa que você está realizando é "certificar-se de que este endereço seja aceitável para os serviços postais locais", então nos Estados Unidos, o USPS poderia ser considerado a segunda parte (mas isso torna o cliente que enviou o endereço meio que um terceiro).
tripleee
-1

As APIs podem desempenhar um papel crucial na análise e normalização dos dados de endereços. Isso é útil em termos de reconhecimento e verificação de endereços de correspondência em massa para entrega postal fornecida por empresas como a USPS e remessa de pacotes fornecida por empresas como UPS e FedEx. A maneira como funciona é que o serviço de validação de endereço retornará um endereço de rua analisado com valores normalizados para o padrão USPS. Você pode saber mais sobre isso neste post: https://www.tomtom.com/blog/maps/what-is-address-validation/

Tiago
fonte
1
Suas respostas parecem ser de boa qualidade, mas há uma chance de você ser sinalizado por spam porque todas as suas respostas até agora contêm um link para tomtom.com . Se você ainda não sabe, pode querer ler: Como não ser um spammer
Ardent Coder