Guías

Valida un código postal antes de guardarlo

Un campo de código postal que solo comprueba la longitud y el formato de los caracteres aceptará sin problema un código con un formato perfecto y completamente erróneo. Validar de verdad significa comprobar que el código corresponde a un lugar real.

La llamada de validación

Envía el código y el código ISO 3166-1 alfa-2 del país a /v1/postcode. Una combinación válida devuelve al menos un resultado con coordenadas y componentes de ubicación.

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"}}
  ]
}

Tratar un resultado vacío como no válido

Si results llega vacío, la combinación de código postal y país no corresponde a ninguna ubicación conocida. Esa es tu señal para rechazar el campo del formulario con un mensaje claro, en lugar de dejar que un código inventado acabe más tarde en una etiqueta de envío.

Validar no es lo mismo que una coincidencia exacta de dirección

Un código postal cubre un área, a veces pequeña y a veces grande según el país, así que una validación correcta confirma que el código existe, no que coincida con la dirección concreta de la calle que también se introdujo en el formulario. Combina la validación del código postal con una comprobación de geocodificación directa de la dirección completa cuando necesites que coincidan tanto el código como la calle.

Un error que conviene evitar

Rechazar un código solo porque no coincide con tus propias expectativas de formato, antes incluso de enviarlo a la API, descarta entradas válidas por una diferencia estética. Un código escrito sin un espacio, con espacios de más o con mayúsculas y minúsculas incoherentes suele seguir siendo un código postal válido una vez normalizado. Recorta y normaliza los espacios y las mayúsculas del campo antes de llamar a /v1/postcode, en lugar de rechazar la entrada directamente por una peculiaridad de formato que la propia consulta habría tolerado.

Un caso límite: código correcto, país equivocado

Un código postal sintácticamente válido puede fallar la validación simplemente porque se seleccionó el país equivocado junto a él, ya que el mismo patrón numérico o alfanumérico puede ser un código válido en el sistema de más de un país. Si una consulta vuelve vacía para un código que el cliente asegura que es correcto, comprueba que el campo de país coincida con lo que el cliente realmente quería indicar antes de tratar el propio código postal como el problema.

Dónde ejecutar esta comprobación

Ejecuta la comprobación cuando el campo pierde el foco o al enviar el formulario, no con cada pulsación de tecla, ya que un código postal normalmente se escribe completo antes de que tenga sentido validarlo. Así la comprobación se limita a una solicitud por intento de envío en lugar de una por cada carácter escrito.

El coste de hacerlo en todas partes

Una llamada de validación por envío de formulario es una sola solicitud. Incluso un formulario con mucho tráfico usará una pequeña fracción de las 2.500 solicitudes gratuitas al día incluidas con cada clave, o disponibles desde una sola dirección sin clave, solo en validación de códigos postales.

Detectar un código postal incorrecto antes de que llegue a una etiqueta de envío compensa la solicitud adicional que cuesta. Los detalles completos de los parámetros están en la documentación de consulta de códigos postales.