Un error que no rechaza
El texto de la AEAT es El cálculo de la huella suministrada es incorrecta. y está en el tercer apartado de la lista, el de los errores que producen la aceptación del registro. El documento de validaciones los llama errores admisibles: no impiden el registro, pero dejan constancia de que algo no cuadra, y la AEAT pide subsanarlo para poder tratar ese registro.
En la misma familia están los avisos sobre el formato de la huella del registro anterior, que tiene que ser un SHA-256 de 64 caracteres hexadecimales en mayúsculas. Esos códigos están en la página del encadenamiento.

Cómo se calcula la huella
Las especificaciones técnicas de la AEAT fijan la receta: se toman los campos del registro en un orden concreto, se escriben como campo=valor separados por &, se calcula el SHA-256 y se pasa a hexadecimal en mayúsculas. Uno de esos campos es la huella del registro anterior, y así cada registro queda atado al que lo precede.
Basta con que un solo carácter difiera entre lo que se usó para calcular y lo que se envió para que la AEAT obtenga otro resultado. Un importe que difiera en un céntimo, una fecha escrita con otro formato o un número de factura con un espacio de más son suficientes.
Lo que hace el módulo para que coincida
- Calcula la huella en el momento de encadenar el registro, al publicar la factura, y la guarda. Ni la huella ni la huella anterior se pueden modificar después.
- Envía CuotaTotal e ImporteTotal con exactamente las mismas cadenas que entraron en la huella, para que la AEAT pueda repetir el cálculo.
- Cada día, el cron Verifactu: Nightly Integrity Check recorre la cadena de cada empresa y deja el resultado en Registros de Cumplimiento › Estado de la Cadena.

Qué hacer si te llega un 2000
- No te alarmes por la factura: está registrada en la AEAT. En Odoo el registro aparece como «Aceptado con errores (subsanar)».
- Abre Estado de la Cadena y pulsa Verificar Integridad. Si la cadena local da error, el problema empezó en Odoo y hay que mirarlo antes de seguir facturando.
- Para subsanar, la AEAT pide remitir un nuevo registro con el mismo identificador de factura. El módulo publicado no envía registros de subsanación por sí solo, así que escríbenos a comercial@flexigobe.com con el número del registro y la respuesta guardada.
¿Puedo recalcular la huella a mano y corregirla en Odoo?
No. El registro de facturación no deja cambiar la huella ni la huella anterior, y es así a propósito: la cadena tiene que ser inalterable.
¿Afecta a las facturas siguientes?
Cada registro encadena la huella del anterior tal como se guardó en Odoo. Si la cadena local está íntegra, las siguientes siguen su curso.
Sigue leyendo
Comprobado en el código del módulo (versión 20.0) y en las fuentes enlazadas
Fuentes
- www.agenciatributaria.es/static_files/AEAT_Desarrolladores/EEDD/IVA/VERI-FACTU/Validacione
- www.agenciatributaria.es/static_files/AEAT_Desarrolladores/EEDD/IVA/VERI-FACTU/Veri-Factu_
- Código del módulo: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_cola_envio.py
- Código del módulo: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_registro.py
- Código del módulo: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_aeat_client.py
- Código del módulo: flexigo_spain_verifactu 20.0 (aa2ea3d2): data/verifactu_crons.xml
- prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/err
