Comprobar un IVA europeo
La API Validar Número de IVA toma un número de IVA de la Unión Europea y lo consulta directamente contra VIES, el buscador oficial de la Comisión Europea, para confirmar si ese número está registrado activamente a nombre de una empresa válida. Importa por una razón muy concreta: cobrar o exonerar el IVA en una factura B2B de forma equivocada es un problema de cumplimiento, y este endpoint le dice, antes de emitir la factura, si el número que le dio su cliente realmente pasa la prueba.
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.
Por qué VIES y no solo una revisión de formato
Un número de IVA puede tener un formato perfecto, con el prefijo de país correcto y la cantidad correcta de dígitos, y aun así no pertenecer a nadie, ya sea porque se tecleó mal, la empresa se dio de baja o simplemente se inventó. VIES, el sistema de intercambio de información sobre IVA que opera la Comisión Europea, consulta en tiempo real la base de datos fiscal de cada estado miembro, así que un resultado positivo significa que el número está vigente en un registro oficial, no solo que tiene la forma correcta. Esta api validar numero de iva europeo envuelve esa consulta y devuelve una respuesta clara de válido o inválido, junto con el nombre y la dirección de la empresa registrada cuando el estado miembro los proporciona.
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ó. Las plataformas contables validan el número de IVA del cliente antes de generar una factura, los marketplaces condicionan el registro de compradores empresariales a que la verificación pase, y los equipos financieros revalidan periódicamente los números almacenados porque el registro de una contraparte puede vencer sin que ninguna decisión de compra lo mencione.
Cómo se comporta la petición
Envíe POST /verify/vat con el número de IVA y el país, y recibe un task_id de inmediato. La verificación es asíncrona en parte porque VIES es un sistema gubernamental en vivo con sus propias lentitudes ocasionales, y su integración no debería quedarse esperando. Los resultados llegan por webhook o por un enlace firmado válido por 24 horas, e informan la revisión de formato, el estado de registro en VIES y los detalles de la consulta cuando están disponibles. Una tarea que falla tras tres reintentos devuelve un error claro y jamás se cobra.
Un sistema construido para un mecanismo fiscal específico
VIES existe porque el espacio de IVA de la Unión Europea permite que las empresas comercien entre estados miembros sin cobrar IVA en ventas B2B que califican, siempre que ambas partes estén registradas ante el IVA, un mecanismo que solo funciona si el vendedor puede confirmar el estado del comprador en el momento de la venta. Como cada país opera su propia autoridad fiscal y su propia base de datos, VIES funciona como la puerta común, agregando consultas en vivo en lugar de mantener una copia central única, lo que también explica por qué la disponibilidad de VIES a veces depende de la capacidad de respuesta del estado miembro consultado.
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 número de IVA del comprador antes de decidir si se aplica la inversión del sujeto pasivo, bloquear el registro en una tienda B2B hasta que un número pase la verificación, o correr un barrido programado sobre los números de IVA almacenados para detectar los que ya vencieron. 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
Facturación transfronteriza
Una plataforma contable valida el número de IVA de un cliente contra VIES antes de emitir una factura B2B, aplicando la exención por inversión del sujeto pasivo solo cuando el número está realmente activo.
Registro de compradores en un marketplace B2B
Un marketplace mayorista exige que la verificación de IVA pase antes de aprobar una cuenta de comprador empresarial, filtrando de forma automática números de registro inválidos o inventados.
Revalidación periódica de clientes
Un equipo financiero revisa cada trimestre sus números de IVA almacenados para detectar contrapartes cuyo registro venció desde la factura original, antes de que la siguiente venta dependa de él.
Exención de IVA en el checkout
Un checkout de comercio electrónico valida en tiempo real el número de IVA de un cliente empresarial para decidir, en el acto, si retira el IVA del total del pedido.
Preguntas frecuentes
¿Cómo valido un número de IVA europeo con una API?
Envíe POST /verify/vat con el número y el código de país. La api validar numero de iva europeo devuelve un task_id de inmediato y entrega el resultado de VIES a su webhook o a un enlace firmado al terminar la verificación.
¿Esto consulta directamente contra VIES?
Sí. El endpoint consulta VIES, el buscador oficial de IVA de la Comisión Europea, así que un resultado válido refleja un registro vigente en la base de datos fiscal del estado miembro correspondiente, no solo un número con formato correcto.
¿Es gratis validar 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 estados miembros de la Unión Europea registrados en VIES. Un número de un país fuera de la UE, incluido un número de IVA del Reino Unido, queda fuera del alcance de VIES y se reportará como no aplicable a esta consulta.
¿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é fallaría esta verificación una empresa real?
Una empresa puede estar legítimamente registrada ante el IVA y aun así fallar si se registró hace poco y VIES todavía no sincroniza, o si el servicio VIES de ese estado miembro está temporalmente fuera de línea, algo que se reporta como un estado distinto y no como un rechazo definitivo.
¿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, y pronto desde nuestra app, el email y Telegram.
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 '{"items":["valor-1","valor-2"]}'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({
"items": [
"valor-1",
"valor-2"
]
})
});
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={
"items": [
"valor-1",
"valor-2"
]
},
)
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" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
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
{
"items": [
"valor-1",
"valor-2"
]
}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. |