Błąd, który nie odrzuca
Tekst AEAT brzmi El cálculo de la huella suministrada es incorrecta., czyli „Obliczenie przesłanego odcisku jest niepoprawne.”, i znajduje się w trzecim punkcie listy, czyli wśród błędów, które skutkują przyjęciem rekordu. Dokument walidacyjny nazywa je błędami dopuszczalnymi: nie uniemożliwiają rejestracji, ale pokazują, że coś się nie zgadza, a AEAT wymaga ich subsanacji, czyli korekty, aby móc dalej przetwarzać ten rekord.
W tej samej rodzinie są ostrzeżenia dotyczące formatu odcisku poprzedniego rekordu, który musi być skrótem SHA-256 z 64 znakami szesnastkowymi pisanymi wielkimi literami. Te kody opisano na stronie łańcucha.

Jak obliczany jest odcisk
Specyfikacja techniczna AEAT określa przepis: pola rekordu są brane w ustalonej kolejności, zapisywane jako pole=wartość, rozdzielone znakiem &, haszowane algorytmem SHA-256 i zamieniane na zapis szesnastkowy wielkimi literami. Jednym z tych pól jest odcisk poprzedniego rekordu, dzięki czemu każdy rekord jest powiązany z tym, który go poprzedza.
Wystarczy jeden znak różnicy między tym, co zostało zahaszowane, a tym, co wysłano, aby AEAT uzyskała inny wynik. Kwota różniąca się o grosz, data zapisana w innym formacie albo numer faktury z dodatkową spacją: każda z tych rzeczy wystarczy.
Co robi moduł, żeby się zgadzało
- Oblicza odcisk w chwili łączenia rekordu, czyli przy zatwierdzeniu faktury, i zapisuje go. Ani odcisk, ani odcisk poprzedniego rekordu nie mogą być później zmienione.
- Wysyła CuotaTotal i ImporteTotal dokładnie jako te same ciągi znaków, które weszły do odcisku, aby AEAT mogła powtórzyć obliczenie.
- Każdego dnia zadanie cron Verifactu: Nightly Integrity Check przechodzi przez łańcuch każdej firmy i zapisuje wynik w Rekordy zgodności › Stan łańcucha.

Co zrobić, gdy dostaniesz 2000
- Nie martw się o fakturę: jest zarejestrowana w AEAT. W Odoo rekord widnieje jako „Aceptado con errores (subsanar)”.
- Otwórz Stan łańcucha i kliknij Verificar Integridad. Jeśli lokalny łańcuch zgłasza błąd, problem zaczął się w Odoo i trzeba go sprawdzić, zanim będziesz dalej fakturować.
- Aby go skorygować, AEAT wymaga nowego rekordu z tym samym identyfikatorem faktury. Opublikowany moduł nie wysyła sam z siebie rekordów korygujących, więc napisz na comercial@flexigobe.com z numerem rekordu i zapisaną odpowiedzią.
Czy mogę sam przeliczyć odcisk i poprawić go w Odoo?
Nie. Rekord fakturowania nie pozwala zmienić odcisku ani odcisku poprzedniego rekordu i jest to celowe: łańcuch musi być niezmienny.
Czy wpływa to na kolejne faktury?
Każdy rekord łączy odcisk poprzedniego tak, jak został zapisany w Odoo. Jeśli lokalny łańcuch jest nienaruszony, kolejne faktury przebiegają normalnie.
Czytaj dalej
Sprawdzone w kodzie źródłowym modułu (wersja 20.0) i w podlinkowanych źródłach
Źródła
- 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_
- Kod modułu: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_cola_envio.py
- Kod modułu: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_registro.py
- Kod modułu: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_aeat_client.py
- Kod modułu: 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
