Validación de IVA de la UE API
Valida cualquier número de IVA europeo contra VIES, el registro oficial de la Comisión Europea. Confirmación en tiempo real más la razón social y la dirección registradas cuando el Estado miembro las divulga.
¿No tienes una clave API?
Inicia sesión en tu cuenta para crear y gestionar tus claves API.
Guía de integración
Copia un fragmento, sustituye tu clave de API y ejecútalo. Funciona en cualquier cliente HTTP — ejemplos abajo en cURL, JavaScript y Python.
/api/validate-vathttps://www.apipick.comValidate an EU VAT number against the official VIES registry
vat_numberstringobligatorioFull VAT number with its two-letter member-state prefix. Spaces, dots, and hyphens are stripped. IE6388047V
countrystringopcionalMember-state code, if the number is supplied without its prefix. Greece is EL, not GR. IE
curl -X GET "https://www.apipick.com/api/validate-vat" \
-H "x-api-key: YOUR_API_KEY"{
"vat_number": "IE6388047V",
"country_code": "IE",
"number": "6388047V",
"valid": true,
"name": "GOOGLE IRELAND LIMITED",
"address": "3RD FLOOR, GORDON HOUSE, BARROW STREET, DUBLIN 4",
"name_disclosed": true,
"request_date": "2026-09-01T11:52:22.440Z",
"consultation_number": null,
"source": "European Commission VIES",
"credits_used": 3,
"remaining_credits": 97
}Diseñada para casos de uso reales
Inversión del sujeto pasivo
Confirma el registro de IVA del comprador antes de aplicar tipo cero a una factura B2B transfronteriza, y deja constancia de la comprobación.
Alta de clientes B2B
Valida en el registro de alta y rellena automáticamente la razón social y la dirección desde el registro oficial, en lugar de pedir al cliente que las escriba.
Prevención del fraude
Detecta números de IVA inventados o caducados antes de que lleguen a tu sistema de facturación o a una declaración fiscal.
Flujos con agentes
Da a un agente financiero una herramienta de un solo parámetro que pueda invocar al procesar una factura, con una respuesta booleana inequívoca.
Campos de la respuesta
| Campo | Tipo | Descripción |
|---|---|---|
| valid | boolean | Si el número está registrado actualmente para comercio transfronterizo |
| country_code | string | Código del Estado miembro tal como se declara (EL para Grecia, XI para Irlanda del Norte) |
| number | string | El número de IVA sin su prefijo de país |
| name | string | null | Razón social registrada, cuando el Estado miembro la divulga |
| address | string | null | Dirección registrada, cuando el Estado miembro la divulga |
| name_disclosed | boolean | False cuando el Estado miembro omite los campos de identidad por política (DE, ES) |
| request_date | string | null | Marca de tiempo que VIES registró para la comprobación |
| consultation_number | string | null | Identificador de consulta de VIES, utilizable como prueba de verificación |
| credits_used | integer | Créditos descontados por esta solicitud |
| remaining_credits | integer | Créditos restantes en tu cuenta |
Límites de tasa
La limitación es por clave de API, ventana deslizante de 60 segundos. Al alcanzar el límite recibes un 429 limpio con una cabecera Retry-After.
20req/min
Por clave de API, por endpoint. Ventana deslizante de 60 segundos.
3concurrent
Máximo de peticiones simultáneas en curso por clave de API.
X-RateLimit-LimitMáximo de peticiones permitidas por minutoX-RateLimit-RemainingPeticiones restantes en la ventana actualX-RateLimit-ResetSegundos hasta que se reinicia la ventana actualRetry-AfterSegundos a esperar antes de reintentar (solo en 429)HTTP/1.1 429 Too Many Requests
Retry-After: 12
X-RateLimit-Limit: 20
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 12
{
"error": "rate_limit_exceeded",
"message": "Rate limit exceeded: 20 requests/minute per API key. Retry after 12s.",
"retry_after": 12
}Fuente de datos y licencia
Las comprobaciones se hacen contra VIES, el Sistema de Intercambio de Información sobre el IVA de la Comisión Europea, que reenvía cada consulta a la base de datos fiscal del propio Estado miembro en tiempo real. No guardamos ninguna copia del registro: la respuesta es de la administración tributaria, entregada como JSON limpio y con los casos de caída y de no divulgación explicitados.
Preguntas frecuentes
P: ¿Es la comprobación oficial de la UE?
R: Sí. La petición va a VIES, el Sistema de Intercambio de Información sobre el IVA de la Comisión Europea, que consulta en tiempo real la base de datos fiscal del propio Estado miembro. No hay base de datos intermedia, así que la respuesta coincide con la que obtendrías en el formulario web de la Comisión.
P: ¿Por qué la razón social viene vacía en los números alemanes?
R: Alemania y España no divulgan razón social ni dirección a través de VIES por política. El número se sigue confirmando como registrado o no; solo se omiten los campos de identidad. La respuesta fija name_disclosed: false para que distingas una omisión por política de un campo realmente vacío.
P: ¿Qué ocurre cuando el sistema de un Estado miembro está caído?
R: VIES enruta a la base de datos de cada Estado miembro, y esas se desconectan por mantenimiento. Cuando ocurre, recibes HTTP 503 con un mensaje claro y no se cobran créditos. Reintenta pasados unos minutos: la caída está del lado de la administración tributaria, no del nuestro.
P: ¿Qué códigos de país se admiten?
R: Los 27 Estados miembros más XI para Irlanda del Norte según el Marco de Windsor. Ten en cuenta que Grecia declara el IVA como EL, no con su código ISO GR. Gran Bretaña (GB) salió de VIES tras el Brexit y no está cubierta.
P: ¿Puedo obtener un número de consulta para mi pista de auditoría?
R: El campo consultation_number lleva el identificador de petición de VIES cuando se emite. Ese identificador es lo que una administración tributaria acepta como prueba de que verificaste el estado de IVA de una contraparte en una fecha concreta, algo que importa en la inversión del sujeto pasivo.