Comprobar el formato de un número de IVA de la UE
Compruebe que un número de IVA tiene la forma correcta para su país de la UE: «DE 136-695-976» se lee como DE136695976 y cumple el patrón alemán. Los espacios, puntos y guiones copiados de facturas se ignoran. Revisa el formato, no el registro. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- DE 136-695-976
- Normalizado
- DE136695976
- Código de país
- DE
- Nombre del país
- Germany
- Formato esperado
- DE123456789
Un número de IVA puede parecer correcto y, aun así, tener una estructura no válida para su país. Este comprobador lee el prefijo de dos letras, selecciona el formato correspondiente de la UE y contrasta los caracteres restantes con el patrón publicado para ese país. Admite las distintas longitudes y letras obligatorias empleadas en la UE, e ignora espacios, puntos y guiones habituales. El resultado es una comprobación sintáctica rápida, no una confirmación de que la empresa exista ni de que su registro de IVA esté activo.
Qué puede indicarle una comprobación de formato de IVA
Una comprobación de formato responde a una pregunta concreta pero útil: ¿podría esta cadena ser un número de IVA emitido conforme a la sintaxis del país de la UE indicado? El prefijo del país determina la prueba. Los números alemanes, por ejemplo, tienen una longitud distinta de los belgas, mientras que los formatos austríaco, neerlandés, irlandés, español, chipriota y francés pueden exigir letras en posiciones específicas.
El comprobador convierte las letras a mayúsculas, elimina espacios, puntos y guiones comunes y aplica la regla del país correspondiente. Devuelve el valor normalizado, el país reconocido, un ejemplo del formato esperado y un resultado booleano. Así puede detectar dígitos ausentes, letras mal colocadas, un identificador fiscal nacional introducido sin prefijo internacional o un número copiado con el sufijo incompleto.
De forma intencionada, no calcula ni valida los dígitos de control propios de cada país. Por tanto, una cadena puede superar la prueba estructural y seguir siendo errónea, no estar asignada, haber caducado o pertenecer a otra organización. Considere un resultado positivo como autorización para continuar la validación, no como prueba de registro o identidad.
Cómo introducir prefijos de país y separadores
Introduzca el número de IVA completo, empezando por su prefijo de IVA de dos letras. La mayoría de los prefijos coinciden con el código de país habitual, pero Grecia utiliza EL a efectos del IVA de la UE; por ello, una entrada griega debe comenzar por EL y no por GR. El comprobador reconoce los prefijos de IVA de los 27 Estados miembros actuales de la UE y devuelve un error de entrada cuando el prefijo es desconocido.
La diferencia es importante: un país reconocido con un número mal formado genera un resultado normal con valid establecido en false, mientras que un prefijo desconocido significa que no existe una regla nacional aplicable. Los espacios, puntos y guiones se aceptan como separadores visuales y se eliminan antes de la comparación, lo que facilita el uso de valores copiados de facturas. Otros signos de puntuación se conservan y normalmente invalidan el formato.
No añada etiquetas como VAT, TVA o MwSt alrededor del número. Aunque muchos formatos solo contienen dígitos después del prefijo, varios países exigen una o más letras. Consérvelas: sustituirlas por dígitos cambia el formato y debe hacer que la comprobación falle.
El valor normalizado de la respuesta muestra exactamente la cadena compacta evaluada.
Validación del formato frente a verificación del registro
La validación sintáctica debe situarse al principio de un proceso de recepción de datos. Es determinista, inmediata y no envía el identificador proporcionado a ningún registro externo. Puede utilizarla mientras una persona completa un formulario de facturación, al importar registros de proveedores o antes de añadir números de IVA a una cola para una consulta oficial más lenta.
Un resultado false le ofrece un motivo claro para solicitar una corrección antes de efectuar cualquier petición de red. Un resultado true solo indica que los caracteres ocupan posiciones permitidas para ese prefijo. No consulta VIES, una autoridad tributaria nacional ni un registro mercantil, y no puede determinar si el número fue emitido, está activo para operaciones transfronterizas o pertenece al cliente indicado.
Para decisiones fiscales, exención de IVA en facturas o pruebas de cumplimiento, complete una comprobación de formato satisfactoria con la verificación oficial adecuada y conserve las evidencias exigidas por su proceso. Esta separación también aclara los fallos: los errores sintácticos locales se corrigen al instante, mientras que las caídas del registro, los servicios nacionales no disponibles y las inscripciones realmente inactivas permanecen en la fase posterior y no se confunden con errores de formato.
Qué puede hacer con ella
Validar un formulario de facturación
Detecte un prefijo no admitido o una longitud incorrecta para el país antes de que el cliente envíe su perfil de facturación.
Depurar datos de proveedores
Normalice separadores e identifique números de IVA con estructura inválida durante una importación de proveedores o clientes.
Preparar consultas al registro
Filtre localmente errores sintácticos evidentes antes de enviar números plausibles a un servicio oficial de verificación.
Preguntas frecuentes
¿Un resultado válido demuestra que el número de IVA está registrado?
No. Solo demuestra que el número coincide con el patrón de caracteres del país reconocido. Consulte un registro oficial para confirmar su estado.
¿Qué países se reconocen?
El comprobador reconoce los prefijos de IVA de los 27 Estados miembros actuales de la UE. Grecia debe utilizar el prefijo de IVA EL.
¿La parte posterior al prefijo puede contener letras?
Sí. Varios formatos oficiales de IVA exigen letras en posiciones concretas, y el comprobador las conserva y valida.
¿Se permiten espacios y guiones?
Sí. Los espacios, puntos y guiones se eliminan antes de probar el patrón nacional, y se devuelve el valor compacto normalizado.
¿Por qué un número de IVA griego debe empezar por EL?
Porque Grecia usa EL en lugar de GR a efectos del IVA europeo. Un número griego escrito con GR se trata como un prefijo desconocido y devuelve un error, ya que no hay ninguna regla de país que aplicarle.
Herramientas relacionadas
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/vat-number-format-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"DE 136 695 976"}'const res = await fetch("https://api.kit.forhosting.com/data/vat-number-format-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "DE 136 695 976"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/vat-number-format-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "DE 136 695 976"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/vat-number-format-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"DE 136 695 976"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"DE 136 695 976"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/vat-number-format-check", 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
{
"text": "DE 136 695 976"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.vat_number_format_check",
"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. |
Preguntas técnicas
¿Qué ocurre si el prefijo de país es desconocido?
La solicitud devuelve un error invalid_input porque no hay ningún patrón de IVA nacional disponible para ese prefijo.
¿Cuánto cuesta una solicitud de API?
Cada solicitud de API cuesta $0.002. La versión para navegador se ejecuta localmente sin consultar la red.