Error 2008 de VERI*FACTU
Qué implica
Este código produce una aceptación con errores: la AEAT registra el registro de facturación, pero queda marcado como «Aceptado con errores» y debe subsanarse mediante la operativa de subsanación (un nuevo registro con Subsanacion). Es el estado más traicionero del sistema: como el envío "entra", muchos SIF lo dan por bueno y acumulan registros defectuosos que constan así en la AEAT. No lo ignores.
Causas habituales
La huella se calculó sin aplicar el trim de espacios a cada valor, o con URL-encoding — el documento oficial exige trim y prohíbe el encoding.
El registro no encadena: la huella del registro anterior que declaras no es la del último registro real de tu sistema.
Los valores hasheados no son los literales del XML (fechas o importes reformateados entre el cálculo y la serialización).
Salida en minúsculas o con longitud distinta de 64 caracteres hexadecimales.
Cómo depurarlo
Reproduce los tres vectores de ejemplo del documento oficial de la huella: si tu implementación no los clava bit a bit, ahí está el fallo.
Verifica la cadena completa de tu serie (no solo el último registro): una rotura antigua contamina todo lo posterior.
Calcula la huella sobre los mismos bytes que serializas — nunca desde objetos que reformatean fechas o números.
Prueba el validador gratuito — esquema oficial, cadena de huellas y reglas de importes, sin registro y con retención cero. Y si quieres el mock de la AEAT para tu CI, apúntate a la beta de la suite.
Errores relacionados
- 1180 Error en el bloque de Encadenamiento.
- 1247 El valor del campo TipoHuella es incorrecto.
- 1262 La longitud de huella no cumple con las especificaciones.
- 1263 La longitud del tipo de huella no cumple con las especificaciones.
- 1278 El valor de la huella del registro anterior debe ser diferente a la huella del registro actual
- 2000 El cálculo de la huella suministrada es incorrecta.