Valide el formato de un código postal por país
Los códigos postales son breves, pero su formato cambia mucho de un país a otro. Esta capacidad recibe un código postal o ZIP junto con un código de país de dos letras y comprueba si el valor respeta la estructura estándar correspondiente.
Ejecutar — gratis
Ofrece una respuesta determinista sin consultar redes, geocodificación ni bases de direcciones. Úsela para detectar letras fuera de lugar, dígitos ausentes o separadores incorrectos antes de que los datos lleguen a pagos, envíos, facturación o fichas de clientes. Un país no admitido genera un error claro de entrada.
Valide el formato en su contexto nacional
No es posible evaluar bien un código postal sin conocer el país. Cinco dígitos son habituales en Estados Unidos, Francia, Alemania y España, pero resultan insuficientes para India, China o Singapur. Canadá alterna letras y números, Polonia exige un guion y Reino Unido admite varias estructuras alfanuméricas. Esta capacidad mantiene las reglas separadas y elige una sola a partir del código de país de dos letras. Elimina espacios exteriores inocuos y acepta el país en mayúsculas o minúsculas, pero no transforma silenciosamente el código postal en otro valor. La respuesta incluye el país normalizado, el código recortado, el formato esperado y un resultado booleano. Así, una aplicación puede decidir según el booleano y un formulario puede mostrar el patrón correcto cuando el dato sea inválido. Si el país no figura en la tabla disponible, la solicitud falla de forma explícita en vez de declarar inválido cualquier dato desconocido. Esta diferencia evita que una cobertura incompleta se convierta en una recomendación engañosa sobre la calidad de sus datos.
Comprenda qué demuestra una comprobación de formato
El algoritmo verifica la estructura, no la existencia ni la posibilidad de entrega. Un resultado correcto significa que los caracteres, la longitud y los separadores coinciden con el patrón representado para el país. No confirma que la autoridad postal haya asignado el código, que una calle pertenezca a él ni que un transportista atienda el destino. Esas afirmaciones requieren datos externos actuales y, normalmente, una dirección completa. Mantener este límite claro es esencial: la validación determinista es rápida, privada y repetible, mientras que verificar entregabilidad es otro servicio. Los códigos se conservan como texto para no perder ceros iniciales. Envíelos como cadenas, sobre todo en Francia, Italia o ciertas regiones estadounidenses. Las letras se comparan sin distinguir mayúsculas donde corresponde, y solo se aceptan espacios opcionales en sistemas que los permiten. La puntuación no se elimina de forma general, porque un separador puede ser obligatorio en un país e incorrecto en otro. La etiqueta de formato explica la forma esperada sin afirmar que cada combinación posible exista realmente.
Valide donde se incorporan los datos incorrectos
El mejor momento para comprobar el valor es justo después de que la persona seleccione el país e introduzca el código postal. Una tienda puede validarlo antes de crear el pedido, un registro puede señalar un error antes de guardar el perfil y una importación puede revisar cada fila antes de fusionarla con la base de clientes. En formularios, conserve visible el valor original y use el formato devuelto como orientación, sin sustituir el texto inesperadamente. En procesos por lotes, guarde el booleano y el país junto a la fila para distinguir valores mal formados de países sin cobertura. La función es determinista y no utiliza red, azar, reloj ni estado mutable, por lo que una misma entrada siempre produce igual respuesta. Cada automatización mediante API cuesta $0.002 por solicitud completada y cada código constituye un elemento medible. Interprete un resultado falso como una petición de corrección, no como prueba de fraude o de que la dirección no existe. Un error de país desconocido indica un problema de configuración o cobertura que requiere una decisión explícita.
Qué puede hacer con ella
Avisos durante el pago
Compruebe el código después de elegir el país y muestre el formato nacional antes de generar la etiqueta de envío.
Control de importaciones al CRM
Marque códigos mal formados y mantenga los países no admitidos separados de los valores simplemente inválidos.
Formularios internacionales
Aplique las reglas adecuadas de letras, dígitos, longitud y separadores sin programar una expresión regular en cada cliente.
Preguntas frecuentes
¿Un resultado válido demuestra que existe la dirección?
No. Solo demuestra que el código cumple la estructura estándar del país; no confirma asignación ni entregabilidad.
¿Qué ocurre con un código de país desconocido?
La solicitud devuelve un error de entrada inválida. La falta de cobertura nunca se convierte en un falso resultado engañoso.
¿Debo enviar los códigos postales como números?
No. Envíelos como texto para conservar ceros iniciales, letras, espacios y signos obligatorios.
¿Se aceptan letras minúsculas?
Sí, en los países con códigos alfabéticos. El país tampoco distingue mayúsculas y se devuelve normalizado en mayúsculas.
¿Cuánto cuesta la validación?
Cada solicitud de API completada correctamente cuesta $0.002. Las entradas incorrectas se notifican como errores.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/data/postal-code-validate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"postal_code":"94105","country_code":"US"}'const res = await fetch("https://api.kit.forhosting.com/data/postal-code-validate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"postal_code": "94105",
"country_code": "US"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/postal-code-validate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"postal_code": "94105",
"country_code": "US"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/postal-code-validate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"postal_code":"94105","country_code":"US"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"postal_code":"94105","country_code":"US"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/postal-code-validate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"postal_code": "94105",
"country_code": "US"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.postal_code_validate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_mb | 25 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |