Guias

Valide um código postal antes de salvá-lo

Um campo de código postal que só verifica o tamanho e o formato dos caracteres vai aceitar sem problemas um código perfeitamente formatado e totalmente errado. A validação de verdade significa verificar se o código corresponde a um lugar real.

A chamada de validação

Envie o código e o código ISO 3166-1 alpha-2 do país para /v1/postcode. Uma combinação válida retorna pelo menos um resultado com coordenadas e componentes de localização.

GET /v1/postcode?code=SW1A 1AA&country=GB
{
  "status": "ok",
  "postcode": "SW1A 1AA",
  "country_code": "GB",
  "results": [
    {"lat": 51.5014, "lon": -0.1419, "components": {"city": "London", "region": "Greater London", "country": "GB"}}
  ]
}

Tratando um resultado vazio como inválido

Se results voltar vazio, a combinação de código postal e país não corresponde a um local conhecido. Esse é o sinal para rejeitar o campo do formulário com uma mensagem clara, em vez de deixar um código inventado passar e acabar em uma etiqueta de envio mais tarde.

Validação não é o mesmo que uma correspondência exata de endereço

Um código postal cobre uma área, às vezes pequena e às vezes grande, dependendo do país, então uma validação aprovada confirma que o código existe, não que ele corresponde ao endereço específico também informado no formulário. Combine a validação do código postal com uma verificação de geocodificação direta do endereço completo quando você precisar que o código e a rua sejam coerentes.

Um erro que vale a pena evitar

Rejeitar um código apenas porque ele não corresponde às suas próprias expectativas de formatação, antes mesmo de enviá-lo à API, descarta uma entrada válida por causa de uma diferença estética. Um código digitado sem um espaço, com espaços extras ou com maiúsculas e minúsculas inconsistentes muitas vezes ainda é um código postal válido depois de normalizado. Remova espaços sobrando e normalize os espaços e as maiúsculas no campo antes de chamar /v1/postcode, em vez de rejeitar a entrada logo de cara por uma peculiaridade de formatação que a própria consulta teria tolerado.

Um caso extremo: código certo, país errado

Um código postal sintaticamente válido ainda pode falhar na validação simplesmente porque o país errado foi selecionado junto com ele, já que o mesmo padrão numérico ou alfanumérico pode ser um código válido no sistema de mais de um país. Se uma consulta voltar vazia para um código que o cliente garante estar correto, confira se o campo de país corresponde ao que o cliente realmente quis dizer antes de tratar o próprio código postal como o problema.

Onde executar esta verificação

Execute a verificação quando o campo perder o foco ou no envio do formulário, não a cada tecla digitada, já que um código postal normalmente é digitado por completo antes de fazer sentido validá-lo. Assim a verificação fica em uma requisição por tentativa de envio, em vez de uma por caractere digitado.

Custo de fazer isso em todo lugar

Uma chamada de validação por envio de formulário é uma única requisição. Mesmo um formulário com tráfego intenso usará uma pequena fração das 2.500 requisições gratuitas por dia incluídas em cada chave, ou disponíveis a partir de um único endereço sem chave, apenas com a validação de códigos postais.

Detectar um código postal inválido antes que ele chegue a uma etiqueta de envio compensa a requisição extra que isso exige. Os detalhes completos dos parâmetros estão na documentação de consulta de código postal.