Comprobar un IVA europeo
La API Validar Número de IVA toma un número de IVA de la Unión Europea y comprueba que esté bien formado: un prefijo de país europeo reconocido seguido de un patrón de caracteres consistente con un número de IVA.
Ejecútela online
Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.
Importa por una razón concreta: cobrar o exonerar el IVA en una factura B2B a partir de un número mal tecleado o inventado es un problema de cumplimiento, y esto atrapa los números malformados antes de emitir la factura. Valida la forma del número; no confirma que la empresa detrás esté registrada — esa confirmación en vivo es un paso aparte contra VIES, el buscador oficial de la Unión Europea.
Por qué una revisión de formato atrapa errores reales
Un número de IVA puede estar mal tecleado, faltarle un dígito, llevar el prefijo de país equivocado o simplemente estar inventado, y cada uno de esos casos es una cadena malformada que una revisión estructural atrapa al instante, antes de que llegue a su lógica fiscal. Esta api validar numero de iva europeo comprueba que el número lleve un prefijo de país europeo reconocido y un patrón de caracteres consistente con ese esquema, y devuelve una respuesta clara de válido o inválido junto con el código de país que extrajo del prefijo. Es la primera barrera barata: un número que falla aquí está mal con seguridad, y uno que pasa está bien formado y vale la pena verificar más a fondo.
Qué le dice y qué no le dice una revisión de formato
Que un número pase la revisión de formato significa que tiene la forma de un número de IVA real: prefijo correcto, longitud y caracteres plausibles. Lo que no le dice es si ese número está realmente registrado a nombre de una empresa vigente: un número perfectamente bien formado puede no pertenecer a nadie, porque la empresa se dio de baja o porque se inventó justo para pasar una revisión de forma. Confirmar un registro vigente se hace contra VIES, el sistema oficial de la Comisión Europea que consulta la base de datos fiscal de cada estado miembro, un paso aparte que este endpoint deliberadamente no realiza, y es justo eso lo que lo mantiene rápido y económico para ejecutarlo en cada envío.
A quién protege
Cualquier empresa que venda B2B a través de fronteras dentro de la Unión Europea necesita un número de IVA válido del comprador para aplicar el mecanismo de inversión del sujeto pasivo y exonerar la factura de IVA; si se equivoca, el vendedor puede terminar respondiendo por un IVA que nunca cobró. Atrapar un número malformado en el punto de entrada detiene la clase de error más barata antes de que se propague: las plataformas contables validan el formato antes de generar una factura, los marketplaces condicionan el registro de compradores empresariales a que el formato pase, y los equipos financieros revisan los números almacenados en busca de corrupción evidente, y cada uno de esos casos marca qué números aún requieren una confirmación en vivo contra VIES.
Cómo se comporta la petición
Envíe POST /verify/vat con el número de IVA y recibe un task_id de inmediato. La comprobación informa si el número está bien formado y el código de país que extrajo, entregado por webhook o por un enlace firmado válido por 24 horas, así su integración nunca se queda esperando. Una tarea que falla tras tres reintentos devuelve un error claro y jamás se cobra, y el resultado es JSON estructurado listo para insertarse directamente en la lógica de facturación u onboarding.
Dónde encaja en un flujo de facturación
Como los resultados son JSON estructurado, este endpoint se integra sin fricción en la lógica de generación de facturas: validar el formato del número de IVA del comprador antes de decidir si se aplica la inversión del sujeto pasivo, y encaminar los bien formados a una confirmación en VIES; bloquear el registro en una tienda B2B hasta que un número esté al menos correctamente formado; o correr un barrido programado sobre los números de IVA almacenados para detectar entradas corruptas o malformadas. El acceso requiere saldo prepago, lo que mantiene el servicio rápido y libre de abuso, y cada verificación tiene un precio fijo publicado de $0.002 sin créditos inventados.
Qué puede hacer con ella
Validación en facturación transfronteriza
Una plataforma contable valida el formato del número de IVA de un cliente antes de emitir una factura B2B, rechazando de entrada los números mal tecleados o malformados y marcando los bien formados para una verificación en VIES.
Registro de compradores en un marketplace B2B
Un marketplace mayorista exige que la revisión de formato pase antes de aprobar una cuenta de comprador empresarial, filtrando de forma automática números de registro malformados o inventados.
Revalidación periódica de clientes
Un equipo financiero revisa cada trimestre sus números de IVA almacenados en busca de entradas corruptas o malformadas antes de que la siguiente factura dependa de ellas.
Validación de entrada en el checkout
Un checkout de comercio electrónico valida en tiempo real el formato del número de IVA de un cliente empresarial para atrapar una errata antes de calcular el total del pedido.
Preguntas frecuentes
¿Cómo valido el formato de un número de IVA europeo con una API?
Envíe POST /verify/vat con el número. La api validar numero de iva europeo devuelve un task_id de inmediato y entrega el resultado de formato y el código de país a su webhook o a un enlace firmado al terminar la verificación.
¿Esto confirma que la empresa está registrada?
No. Valida únicamente el formato: el prefijo de país y el patrón de caracteres. Confirmar que un número está registrado a nombre de una empresa vigente es un paso aparte contra VIES, el buscador oficial de IVA de la Comisión Europea, que este endpoint no consulta.
¿Es gratis validar el formato de un número de IVA?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. El acceso funciona con un saldo prepago de ForHosting KIT: se recarga desde $10.00 (no caduca) y cada solicitud se cobra a su precio publicado, así que una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿Qué países cubre esta verificación?
Todos los formatos de número de IVA de los estados miembros de la Unión Europea, identificados por el prefijo de país de dos letras. Un número de un país fuera de la UE, incluido un número de IVA del Reino Unido, queda fuera de este esquema y se reportará como no aplicable.
¿Puedo validar muchos números de IVA en lote?
Sí. Envíe cada número en su propio POST y las tareas corren en paralelo; cada petición se cobra por separado y una tarea fallida se reintenta y nunca se cobra.
¿Por qué un número bien formado puede seguir estando mal?
Porque una revisión de formato solo prueba que el número tiene la forma correcta, no que esté registrado. Un número bien formado puede no pertenecer a nadie, y por eso una revisión de formato que pasa debería ir seguida de una confirmación en VIES para cualquier número del que dependa.
¿Cómo se entregan los resultados?
De dos formas: un webhook firmado que enviamos a su servidor apenas termina la verificación, lo recomendado, o un enlace firmado válido por 24 horas que puede consultar cuando quiera.
¿Se conserva el número de IVA después de la verificación?
No. El número enviado y su resultado se eliminan al cerrar la ventana de retención y jamás se usan para entrenar nada; los enlaces de entrega son firmados y caducan.
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/verify/vat \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"vat":"ESB12345678"}'const res = await fetch("https://api.kit.forhosting.com/verify/vat", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"vat": "ESB12345678"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/verify/vat",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"vat": "ESB12345678"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/verify/vat", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"vat":"ESB12345678"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"vat":"ESB12345678"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/verify/vat", 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
{
"vat": "ESB12345678"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "verify.vat",
"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.
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. |