Pide tu auditoría · 299 € Descargar en PDF →
Fecha del informe: 30/10/2026. Datos ficticios: emisor B00000000 y 9 registros de prueba con errores puestos a propósito para mostrar cada comprobación.
Resumen
- Registros analizados: 9 (9 de alta y 0 de anulación), en 6 ficheros.
- Emisores: B00000000. Cadenas (emisor y sistema informático): 1.
- Respuestas de la AEAT recibidas: 9 líneas.
- Consulta VIES: no realizada.
- Resultado: 7 errores, 5 avisos y 0 notas informativas.
| Comprobación | Errores | Avisos | Información |
|---|---|---|---|
| Lectura de ficheros | 0 | 0 | 0 |
| Estructura del XML | 0 | 0 | 0 |
| Huella | 1 | 0 | 0 |
| Encadenamiento | 2 | 0 | 0 |
| Validaciones de negocio | 0 | 0 | 0 |
| Destinatarios | 2 | 0 | 0 |
| Duplicados | 1 | 0 | 0 |
| Numeración | 0 | 1 | 0 |
| Respuestas de la AEAT | 1 | 4 | 0 |
Orden recomendado para corregir
Primero lo que afecta al programa que genera los registros (estructura, huella, cadena), porque se repite en cada registro nuevo; después las facturas que no constan en la AEAT; por último los datos de cada factura.
- Huella (hash) de los registros (1): La huella declarada no coincide con la recalculada [HASH_MISMATCH].
- Encadenamiento de los registros (2): PrimerRegistro = S cuando ya había registros anteriores [CHAIN_FIRST_NOT_FIRST]; La huella del registro anterior no coincide [CHAIN_PREV_HASH_MISMATCH].
- Registros rechazados por la AEAT y facturas duplicadas (3): Alta duplicada de la misma factura [DUPLICATE_ALTA]; Registro rechazado que no se ha resuelto [RESPONSE_REJECTED_NOT_RESENT]; Registro rechazado por duplicado [RESPONSE_DUPLICATE].
- Identificación del emisor y de los destinatarios (2): Número extranjero enviado como NIF español [RECIPIENT_FOREIGN_AS_NIF]; NIF del destinatario con dígito de control incorrecto [RECIPIENT_NIF_CHECK_DIGIT].
- Registros aceptados con errores pendientes de subsanar (3): Aceptado con errores sin subsanar [RESPONSE_ACCEPTED_WITH_ERRORS].
- Puntos de revisión (pueden ser correctos) (1): Saltos en la numeración [NUMBERING_GAP].
Incidencias
Errores (7)
La huella declarada no coincide con la recalculada [HASH_MISMATCH], 1 caso
Qué significa: Se ha recalculado la huella con los campos y el orden de la especificación oficial y el resultado no coincide con la huella del registro. La AEAT marca estos registros como “Aceptado con errores” (error 2000) y deben subsanarse. Se indica la huella esperada y la cadena de entrada usada.
Cómo corregirlo: Corrija el cálculo en el programa (campos, orden, formato de fechas e importes, espacios). Después envíe un registro de subsanación (Subsanacion = S) por cada factura afectada, con su propia huella correcta y encadenado al último registro generado.
Fuente: Especificaciones de la huella v0.1.2, §3, §5 y §7; Validaciones v1.2.2, §3.1.3.23, §3.1.4.7 y §4.3.1; error 2000.
| Fichero | Factura | Detalle |
|---|---|---|
| envios/2026-10-15-envio-2.xml:8 (registro 1) | alta B00000000 F-2026-0004 14-10-2026 | declarado: 9F86D081884C7D659A2FEAA0C55AD015A3BF4F1B2B0B822CD15D6C15B0F00A08; esperado: AD1DC29F6BD432F42DBDE5E90DDC6BBD26C164F092C392408E3A115A13C20BF8; cadena de entrada: IDEmisorFactura=B00000000&NumSerieFactura=F-2026-0004&FechaExpedicionFactura=14-10-2026&TipoFactura=F1&CuotaTotal=21.00&ImporteTotal=121.00&Huella=D20E2BE6E6D371468ED7FAE29141B124E5A041D5FA2914401D730663067649A8&FechaHoraHusoGenRegistro=2026-10-14T12:00:00+02:00 |
PrimerRegistro = S cuando ya había registros anteriores [CHAIN_FIRST_NOT_FIRST], 1 caso
Qué significa: El registro se declara primero de la cadena, pero antes se habían generado otros registros en el mismo sistema para el mismo emisor. La AEAT lo acepta con el error 2007, que debe subsanarse.
Cómo corregirlo: Revise por qué el programa reinició la cadena (reinstalación, cambio de servidor, copia de seguridad). Si es una instalación nueva, debe tener otro NumeroInstalacion. Para el registro afectado, envíe un registro de subsanación encadenado al último registro generado.
Fuente: Validaciones v1.2.2, §4.3.1; error 2007; Aclaraciones v1.3, §4.
| Fichero | Factura | Detalle |
|---|---|---|
| envios/2026-10-15-envio-2.xml:68 (registro 3) | alta B00000000 F-2026-0006 15-10-2026 | registro anterior: B00000000 F-2026-0005 15-10-2026; huella anterior: C3DC16F09D8B76E71A6BDBFDB21A191EFB7BF001F23E7EA73F5FFB8133305B70; sistema: B00000000/FG/INST-0001 |
La huella del registro anterior no coincide [CHAIN_PREV_HASH_MISMATCH], 1 caso
Qué significa: RegistroAnterior identifica bien al registro anterior, pero la huella que copia no es la huella de ese registro. Se indica el valor esperado.
Cómo corregirlo: Corrija el programa para copiar la huella exacta del registro anterior. Los registros ya enviados no se modifican.
Fuente: Aclaraciones v1.3, §15.1; Especificaciones de la huella v0.1.2, §3.
| Fichero | Factura | Detalle |
|---|---|---|
| envios/2026-10-15-envio-2.xml:38 (registro 2) | alta B00000000 F-2026-0005 15-10-2026 | declarado: 60303AE22B998861BCE3B28F33EEC1BE758A213C86C93C076DBE9F558C11C752; esperado: 9F86D081884C7D659A2FEAA0C55AD015A3BF4F1B2B0B822CD15D6C15B0F00A08; registro anterior: B00000000 F-2026-0004 14-10-2026 |
Alta duplicada de la misma factura [DUPLICATE_ALTA], 1 caso
Qué significa: Hay dos registros de alta (sin Subsanacion = S) para el mismo emisor, número y fecha de expedición, y el primero no consta como rechazado. La AEAT rechaza el segundo como “Registro de facturación duplicado” (error 3000).
Cómo corregirlo: Si el segundo registro corregía datos, debía enviarse como subsanación (Subsanacion = S). Si era otra factura, necesita otro número. Revise por qué el programa reutilizó el número.
Fuente: Aclaraciones v1.3, §6; Validaciones v1.2.2, §6.1 (ERROR (2)); error 3000.
| Fichero | Factura | Detalle |
|---|---|---|
| envios/2026-10-17-envio-3.xml:38 (registro 2) | alta B00000000 F-2026-0007 16-10-2026 | primer envío: envios/2026-10-17-envio-3.xml#1; estado del primer envío: Correcto |
Registro rechazado que no se ha resuelto [RESPONSE_REJECTED_NOT_RESENT], 1 caso
Qué significa: La AEAT rechazó este registro (“No se registra en el sistema”) y no hay un envío posterior aceptado que lo resuelva. Si era el alta inicial, la factura no consta en la AEAT. Si era una subsanación o una anulación, en la AEAT sigue constando el registro anterior, sin ese cambio.
Cómo corregirlo: Corrija el motivo del rechazo y envíe el registro que prevé el cuadro de operativas para este caso (se indica en el detalle como “siguiente envío”), encadenado al último registro generado. Si la factura no debía existir, valore su anulación; si la corrección exige factura rectificativa, la rectificativa sustituye a este paso.
Fuente: RespuestaSuministro.xsd / Descripción de los servicios web v1.0.3 (L19 Incorrecto); Validaciones v1.2.2, §4.1, §6.1 y §6.2; Aclaraciones v1.3, §17.
| Fichero | Factura | Detalle |
|---|---|---|
| envios/2026-10-14-envio-1.xml:38 (registro 2) | alta B00000000 F-2026-0002 13-10-2026 | estado: Incorrecto; código AEAT: 1193; descripción oficial: En el bloque Destinatarios si se identifica mediante NIF, el NIF debe estar identificado y ser distinto del NIF ObligadoEmision.; descripción en la respuesta: En el bloque Destinatarios si se identifica mediante NIF, el NIF debe estar identificado y ser distinto del NIF ObligadoEmision.; timestamp: 2026-10-14T09:00:04+02:00; reenvíos posteriores: 0; siguiente envío: alta por rechazo: Subsanacion=S, RechazoPrevio=X |
Número extranjero enviado como NIF español [RECIPIENT_FOREIGN_AS_NIF], 1 caso
Qué significa: El destinatario va en el campo NIF, pero el número no puede ser un NIF español (por ejemplo, nueve dígitos sin letra, como un número portugués, o un número con prefijo de otro país). El NIF de Destinatarios debe estar identificado en la AEAT; la lista oficial tiene un código de rechazo (1193) y uno de aceptación con errores (2001) para este caso, y sin la respuesta no se puede saber cuál aplicó.
Cómo corregirlo: Identifique al cliente extranjero en el bloque IDOtro: IDType 02 con el NIF-IVA completo (prefijo de país incluido) si es de la UE, o el tipo de documento y CodigoPais que correspondan. Envíe un registro de subsanación de las facturas afectadas.
Fuente: Validaciones v1.2.2, §3.1.3.13; errores 1193 y 2001.
| Fichero | Factura | Detalle |
|---|---|---|
| envios/2026-10-14-envio-1.xml:38 (registro 2) | alta B00000000 F-2026-0002 13-10-2026 | destinatario nº: 1; nif: 501234567 |
NIF del destinatario con dígito de control incorrecto [RECIPIENT_NIF_CHECK_DIGIT], 1 caso
Qué significa: El carácter de control del NIF no es el que corresponde; ese NIF no puede estar identificado en la AEAT. Se indica el carácter esperado. Según el caso, la AEAT rechaza el registro (1193) o lo acepta con errores (2001).
Cómo corregirlo: Confirme el NIF con el cliente, corríjalo en su ficha y envíe un registro de subsanación de las facturas afectadas.
Fuente: Validaciones v1.2.2, §3.1.3.13; errores 1193 y 2001.
| Fichero | Factura | Detalle |
|---|---|---|
| envios/2026-10-14-envio-1.xml:68 (registro 3) | alta B00000000 F-2026-0003 14-10-2026 | destinatario nº: 1; nif: A58818502; esperado: 1 |
Avisos (5)
Registro rechazado por duplicado [RESPONSE_DUPLICATE], 1 caso
Qué significa: La AEAT rechazó el registro porque ya tenía un registro para esa factura (error 3000). El registro que consta en la AEAT es el anterior, en el estado que indica la respuesta.
Cómo corregirlo: Si el registro rechazado corregía datos, envíelo como subsanación (Subsanacion = S). Si era otra factura, necesita otro número.
Fuente: Error 3000; Descripción de los servicios web v1.0.3 (RegistroDuplicado, L21).
| Fichero | Factura | Detalle |
|---|---|---|
| envios/2026-10-17-envio-3.xml:38 (registro 2) | alta B00000000 F-2026-0007 16-10-2026 | estado: Incorrecto; código AEAT: 3000; descripción oficial: Registro de facturación duplicado.; descripción en la respuesta: Registro de facturación duplicado.; timestamp: 2026-10-17T09:00:05+02:00 |
Aceptado con errores sin subsanar [RESPONSE_ACCEPTED_WITH_ERRORS], 3 casos
Qué significa: La AEAT registró el registro, pero con un error admisible que debe subsanarse, y no consta una subsanación posterior aceptada.
Cómo corregirlo: Corrija el dato y envíe un registro de subsanación (Subsanacion = S) de la factura.
Fuente: Validaciones v1.2.2, §4.2 y §4.3.1.
| Fichero | Factura | Detalle |
|---|---|---|
| envios/2026-10-14-envio-1.xml:68 (registro 3) | alta B00000000 F-2026-0003 14-10-2026 | estado: AceptadoConErrores; código AEAT: 2001; descripción oficial: El NIF del bloque Destinatarios no está identificado en el censo de la AEAT.; descripción en la respuesta: El NIF del bloque Destinatarios no está identificado en el censo de la AEAT.; timestamp: 2026-10-14T09:00:04+02:00 |
| envios/2026-10-15-envio-2.xml:8 (registro 1) | alta B00000000 F-2026-0004 14-10-2026 | estado: AceptadoConErrores; código AEAT: 2000; descripción oficial: El cálculo de la huella suministrada es incorrecta.; descripción en la respuesta: El cálculo de la huella suministrada es incorrecta.; timestamp: 2026-10-15T11:00:03+02:00 |
| envios/2026-10-15-envio-2.xml:68 (registro 3) | alta B00000000 F-2026-0006 15-10-2026 | estado: AceptadoConErrores; código AEAT: 2007; descripción oficial: No debe informarse como primer registro, existen facturas emitidas con el obligado emisión y el sistema informático actual.; descripción en la respuesta: No debe informarse como primer registro, existen facturas emitidas con el obligado emisión y el sistema informático actual.; timestamp: 2026-10-15T11:00:03+02:00 |
Saltos en la numeración [NUMBERING_GAP], 1 caso
Qué significa: Faltan números entre el primero y el último de la serie en el periodo exportado. Puede ser correcto (facturas anuladas antes de emitirse, series de prueba, registros fuera de la exportación), pero conviene comprobarlo.
Cómo corregirlo: Compruebe que cada número que falta tiene explicación. Si alguna factura se expidió y no se registró, genere y envíe su registro.
Fuente: RD 1619/2012, art. 6.1.a; Aclaraciones v1.3, §6.
| Fichero | Factura | Detalle |
|---|---|---|
| issuer: B00000000; series: F-2026-; year: 2026; missing: 2; ranges: 8-9; primer envío: 1; last: 10 |
Metodología y fuentes
Los registros se leen con un lector XML que no admite DTD ni entidades externas. A VIES solo se envía el NIF-IVA de cada destinatario, si se pide esa consulta.
- Huella (hash) de cada registro (recálculo). Se reconstruye la cadena de entrada campo=valor&… con los campos y el orden oficiales (alta: 8 campos; anulación: 5), con los valores tal como aparecen en el XML sin espacios al inicio ni al final, y se calcula SHA-256 en hexadecimal y mayúsculas. Se compara con la Huella declarada. Como la especificación trata igual 123.1 y 123.10, la huella declarada también se da por buena si coincide con el mismo importe escrito con 0, 1 o 2 decimales. El cálculo reproduce exactamente los tres ejemplos oficiales de la sección 6 de la especificación (prueba automática del motor). Fuentes: HASH §3, §5, §6, §7; VAL §3.1.3.23, §3.1.4.7, §4.3.1; ERR 2000.
- Encadenamiento (recálculo). Para cada emisor y sistema informático (NIF del emisor + productor + IdSistemaInformatico + NumeroInstalacion) se ordenan los registros por FechaHoraHusoGenRegistro y se comprueba que cada uno apunta, en RegistroAnterior, al registro generado inmediatamente antes: misma identificación (emisor, número, fecha) y misma huella. Se admite que un registro esté fechado hasta un minuto antes que el anterior si el enlace es explícito. Se detectan primeros registros indebidos, rupturas, bifurcaciones y registros fuera de orden. Los envíos idénticos repetidos cuentan una sola vez. Fuentes: SWEB §9.1; FAQ §4, §15; VAL §4.3.1; ERR 2007.
- Estructura del XML (estructural (derivada del XSD)). Las reglas se obtienen automáticamente de los XSD oficiales (SuministroLR.xsd, SuministroInformacion.xsd): orden y presencia de elementos, número de repeticiones, espacios de nombres, longitudes, formatos (patrones) y listas de valores admitidos. No es una validación XSD completa: no se valida el contenido de ds:Signature y los formatos se comprueban con las expresiones del esquema traducidas a expresiones regulares. Fuentes: XSD; VAL §3.1.
- Validaciones de negocio que dependen solo del registro (validación de negocio). Emisor igual al obligado de la Cabecera, NIF del emisor, fechas, caracteres de NumSerieFactura, combinación Subsanacion/RechazoPrevio, TipoRectificativa, presencia de destinatarios según TipoFactura, formato de la huella anterior, IdSistemaInformatico y cuadre de CuotaTotal e ImporteTotal con el desglose (margen de 10,00 euros). Fuentes: VAL §3.1.1, §3.1.3, §3.1.4, §3.1.5; ERR 1108, 1153, 1161, 2002, 2003, 2005, 2006, 2008.
- Identificación de los destinatarios (validación de negocio). Dígito de control de los NIF españoles, números extranjeros enviados como NIF, estructura NIF-IVA por Estado miembro en IDOtro con IDType 02, coherencia entre IDType y CodigoPais, y destinatarios “No censado”. Sin conexión, salvo la consulta opcional a VIES. Fuentes: VAL §3.1.3.13 y Nota (1), §4.3.1; ERR 1111, 1156, 1193, 1234, 1254, 1255, 2001.
- Duplicados y numeración (validación de negocio). Altas repetidas de la misma factura (emisor + número + fecha), altas de facturas ya anuladas, mismo número con fechas distintas y saltos de numeración por serie y año (aviso: un salto puede ser correcto). Fuentes: FAQ §6; VAL §6.1; ERR 3000; ROF art. 6.1.a.
- Respuestas de la AEAT (cruce con respuestas AEAT). Cada línea de respuesta se asocia al registro de la misma factura y operación, en orden de generación y de presentación. Se informa del estado (Correcto, AceptadoConErrores, Incorrecto) y del código con su descripción oficial; se señalan los rechazados que no se reenviaron, los reenvíos con indicadores distintos de los previstos y los aceptados con errores sin subsanar. Un registro rechazado se mantiene como eslabón de la cadena: la especificación indica que el registro original permanece inalterado y que cada registro se encadena con el inmediatamente anterior generado en el sistema, pero no dice de forma expresa qué ocurre con la cadena tras un rechazo. Fuentes: SWEB L19, §9.1.3; VAL §4, §6.1, §6.2; FAQ §17; ERR.
- Consulta VIES (opcional) (consulta externa opcional). Solo si se pide: cada NIF-IVA de destinatario (IDOtro, IDType 02) bien formado se consulta una vez en VIES, con pausa entre consultas. Solo se envía el número de IVA. El resultado refleja la situación en la fecha del informe, no en la fecha de la factura. Fuentes: VIES; VAL Nota (1).
Abreviaturas de las fuentes:
- HASH: AEAT, Detalle de las especificaciones técnicas para generación de la huella o hash de los registros de facturación (v0.1.2, 27/08/2024). https://www.agenciatributaria.es/static_files/AEAT_Desarrolladores/EEDD/IVA/VERI-FACTU/Veri-Factu_especificaciones_huella_hash_registros.pdf
- VAL: AEAT, Sistemas Informáticos de Facturación y Sistemas VERI*FACTU. Validaciones (v1.2.2, 08/04/2026). https://www.agenciatributaria.es/static_files/AEAT_Desarrolladores/EEDD/IVA/VERI-FACTU/Validaciones_Errores_Veri-Factu.pdf
- ERR: AEAT, listado oficial de códigos de error (errores.properties) (Last-Modified 30/07/2026). https://prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/errores.properties
- XSD: AEAT, esquemas SuministroLR.xsd, SuministroInformacion.xsd y RespuestaSuministro.xsd (SuministroInformacion.xsd Last-Modified 11/01/2026; SuministroLR.xsd y RespuestaSuministro.xsd 01/10/2025). https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/SuministroInformacion.xsd
- SWEB: AEAT, Sistemas Informáticos de Facturación. Descripción de los servicios web (v1.0.3). https://www.agenciatributaria.es/static_files/AEAT_Desarrolladores/EEDD/IVA/VERI-FACTU/Veri-Factu_Descripcion_SWeb.pdf
- FAQ: AEAT, Aclaraciones a dudas de los desarrolladores (v1.3, 04/12/2025). https://www.agenciatributaria.es/static_files/AEAT_Desarrolladores/EEDD/IVA/VERI-FACTU/FAQs-Desarrolladores.pdf
- ROF: Real Decreto 1619/2012, Reglamento por el que se regulan las obligaciones de facturación (texto consolidado BOE). https://www.boe.es/buscar/act.php?id=BOE-A-2012-14696
- VIES: Comisión Europea, VIES (servicio REST de comprobación de números de IVA) (consulta en la fecha del informe). https://ec.europa.eu/taxation_customs/vies/
Gravedad: “error” indica algo que la AEAT rechaza o que rompe la cadena o la huella; “aviso” indica algo aceptado que debe subsanarse o revisarse; “información” es contexto sin acción necesaria.
Qué no cubre este informe
- Si los NIF del emisor y de los destinatarios están identificados en el censo de la AEAT: no se consulta el censo (solo el formato y el dígito de control).
- Validación XSD completa: la comprobación estructural se deriva del XSD oficial, pero no es un validador XSD general y no valida la firma ds:Signature.
- Validaciones del desglose fiscal (tipos impositivos, claves de régimen, calificación de la operación, exenciones, recargo de equivalencia), salvo el cuadre de CuotaTotal e ImporteTotal.
- Bloques Tercero, Generador, FacturasRectificadas, FacturasSustituidas, ImporteRectificacion, Cupon y Macrodato, y las reglas de FechaOperacion.
- Lo que consta en la AEAT: solo se deduce de las respuestas entregadas; sin respuestas no se puede saber qué registros aceptó la AEAT.
- Si la exportación es completa y coincide con lo que realmente se envió.
- El contenido de las facturas expedidas (importes, IVA aplicado, código QR, leyendas).
- Registros de evento y la modalidad NO VERI*FACTU (firma XAdES, registro de eventos).
- La declaración responsable y la conformidad del sistema informático con el RD 1007/2023.
- Este informe describe los registros recibidos frente a la documentación técnica de la AEAT citada; no es asesoramiento fiscal.