Co odpowiada AEAT
Każda wysyłka zawiera od 1 do 1000 rekordów. Odpowiedź przynosi status całej wysyłki (Correcto, ParcialmenteCorrecto albo Incorrecto), status każdego rekordu (Correcto, AceptadoConErrores albo Incorrecto) i czas oczekiwania do następnej wysyłki.
AEAT publikuje swój oficjalny katalog błędów, z 247 kodami, w trzech rodzinach:
| Rodzina | Co oznacza | Co zrobić |
|---|---|---|
| 4xxx: odrzucona cała wysyłka | Nic z tej wysyłki nie zostało zarejestrowane. | Usuń przyczynę i wyślij ponownie całą wysyłkę. |
| Odrzucony rekord | Ten rekord nie jest przyjęty; reszta wysyłki tak. | Popraw ten rekord i wyślij ponownie tylko jego. |
| 2xxx: przyjęty z błędami | Rekord jest zarejestrowany, ale coś trzeba poprawić. | Nie wysyłaj go ponownie jako nowego: popraw to, co wskazuje kod. |
Dwa konkretne przypadki warto rozpoznawać od razu. Kod 3000 oznacza zdublowany rekord: jeśli już figuruje jako poprawny albo przyjęty z błędami, nie trzeba go wysyłać ponownie. A odcisk cyfrowy (huella), czyli skrót SHA-256 powiązany z poprzednim rekordem, AEAT przelicza sama: jeśli się nie zgadza, rekord zostaje przyjęty z błędem, który trzeba poprawić.

Zanim dotrze do AEAT: certyfikat
AEAT identyfikuje wystawcę po certyfikacie przedstawionym przy połączeniu. Bez certyfikatu jej usługa przekierowuje na stronę błędu 4033, „nie wykryto certyfikatu”. Z certyfikatem, który nie przechodzi weryfikacji, na stronę 4011. W Odoo te przypadki są zatrzymywane wcześniej:
No active certificate for company …: firma nie ma aktywnego certyfikatu. Wgraj go w Configuration › Certificates.The certificate … of company … has expired.: certyfikat wygasł. Jest codzienne ostrzeżenie o wygasaniu, żeby do tego nie doszło.
Co Twój system blokuje przed wysłaniem
| Komunikat | Czego brakuje | Rozwiązanie |
|---|---|---|
Company … has no NIF for Veri*Factu. | Firma nie ma NIF. | Uzupełnij go w danych firmy. |
Invalid NIF length: "…" (must be 9 chars) | NIF klienta nie ma 9 znaków. | Sprawdź NIF w kontakcie. |
Invalid NIF digits: "…" | NIF zawiera nieprawidłowe znaki. | Popraw go w kontakcie. |
Cannot post invoice: invalid counterparty identifier. | Identyfikator klienta jest nieprawidłowy. | Popraw identyfikator przed zaksięgowaniem. |
Record … has no tax breakdown (Desglose) to declare. | Faktura nie ma rozbicia podatków. | Sprawdź podatki w pozycjach. |
Record … is chained to a previous record that does not exist. | Łańcuch rekordów jest przerwany. | Nie poprawiaj go ręcznie: sprawdź stan łańcucha i napisz do nas. |
The AEAT accepts at most 1000 records per request. | Wysyłka z większą liczbą rekordów, niż wolno. | Kolejka je dzieli; jeśli to widzisz, daj nam znać. |

Gdzie szukać w Odoo
Kolejka wysyłek jest przetwarzana co minutę i znajduje się w AEAT Submission › Submission Queue. Błędy zwrócone przez AEAT mają własną listę w AEAT Errors, a pełny katalog kodów jest w AEAT Error Catalogue. Te trzy ekrany rozwiązują większość przypadków bez otwierania dokumentu technicznego AEAT, choć poniżej jest do niego link, gdyby był potrzebny.

Moduł jest opublikowany dla Odoo 17, 18, 19 i 20. Jeśli jakiegoś kodu nie ma w katalogu, wyślij nam dokładny tekst odpowiedzi: znajdziemy go w oficjalnym dokumencie walidacji.
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
- prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/Sis
- sede.agenciatributaria.gob.es/Sede/errores/erro4033.html
- www.agenciatributaria.es/static_files/AEAT_Desarrolladores/EEDD/IVA/VERI-FACTU/Veri-Factu_
- Kod modułu: flexigo_spain_verifactu 20.0 (4dc42be4): models/account_move.py
- Kod modułu: flexigo_spain_verifactu 20.0 (4dc42be4): models/verifactu_aeat_client.py
- Kod modułu: flexigo_spain_verifactu 20.0 (4dc42be4): models/verifactu_nif_validator.py
- Kod modułu: flexigo_spain_verifactu 20.0 (4dc42be4): data/verifactu_crons.xml
- Kod modułu: flexigo_spain_verifactu 20.0 (4dc42be4): views/menu_views.xml
- apps.odoo.com/apps/modules/20.0/flexigo_spain_verifactu
