Czego AEAT nie może odczytać
| Kod | Tekst AEAT |
|---|---|
| 4103 | Se ha producido un error inesperado al parsear el XML. |
| 4119 | Error al informar caracteres cuya codificación no es UTF-8. |
| 4135 | Esta URL no puede ser utilizada mediante GET. |
| 4136 | No se ha enviado el nodo RegistroAlta o el anterior al nodo RegistroAlta no es correcto. |
| 4137 | No se ha enviado el nodo RegistroAnulacion o el anterior al nodo RegistroAnulacion no es correcto. |
| 4138 | Petición vacía en el XML o encoding incorrecto. |
Wszystkie sześć znajduje się w części listy, która odrzuca całą wysyłkę. Pozostałe dwa kody na tej stronie odrzucają tylko jeden rekord: 1100, Valor o tipo incorrecto del campo., najbardziej ogólny z listy, oraz 1251, dla błędnego IDVersion.

Jak Odoo wysyła każde żądanie
Moduł wysyła każdą wysyłkę jako POST SOAP 1.1 przez wzajemne TLS, z certyfikatem firmy. Treść to XML w UTF-8 z deklaracją kodowania, a nagłówek HTTP zapowiada text/xml w UTF-8. Teksty są normalizowane do postaci NFC, dzięki czemu ta sama litera z akcentem zawsze dociera tymi samymi bajtami. Każdy rekord ma IDVersion 1.0 i przed wysłaniem przechodzi walidację względem oficjalnego schematu, który zawiera moduł.
Przy takim sposobie wysyłki błędy z tej strony nie powinny się pojawiać: nie ma GET, nie ma pustych żądań, a kodowanie jest zawsze to samo.
Przypadek GET
4135 to jedyny kod z tej strony, który widać często, i ma bardzo proste wyjaśnienie: ktoś otworzył adres usługi AEAT w przeglądarce. Przeglądarka pobiera strony metodą GET, a usługa przyjmuje tylko POST. Jeśli widzisz go przy ręcznym testowaniu adresu, nie mówi to nic o Twoich wysyłkach: kolejka Odoo nigdy nie używa GET.

Co zrobić
- Przy 4103, 4119 lub 4138 w wysyłce z modułu zachowaj odpowiedź z pola Raw Response i napisz do nas na comercial@flexigobe.com: chcemy zobaczyć, która faktura znalazła się w tej wysyłce.
- Przy 4136 lub 4137 tak samo. Moduł buduje te węzły dla każdej rejestracji i każdego anulowania.
- Przy 1100 komunikat nie mówi, którego pola dotyczy: pełna odpowiedź zwykle pokazuje, którego rekordu dotyczy.
Gdy poznamy przyczynę, wysyłki w Failed wysyła się ponownie z menu Envío a AEAT › Errores AEAT, przyciskiem Reintentar Selección. Te z 1100 i 1251 kolejka ponawia już sama, ale z tymi samymi danymi.
Kody z tej strony, z tekstem AEAT
Każdy kod z dosłownym tekstem, tak jak podaje go lista błędów AEAT:
| Kod | Tekst AEAT |
|---|---|
| 4103 | Se ha producido un error inesperado al parsear el XML. |
| 4119 | Error al informar caracteres cuya codificación no es UTF-8. |
| 4135 | Esta URL no puede ser utilizada mediante GET. |
| 4136 | No se ha enviado el nodo RegistroAlta o el anterior al nodo RegistroAlta no es correcto. |
| 4137 | No se ha enviado el nodo RegistroAnulacion o el anterior al nodo RegistroAnulacion no es correcto. |
| 4138 | Petición vacía en el XML o encoding incorrecto. |
| 1100 | Valor o tipo incorrecto del campo. |
| 1251 | El valor del campo IdVersion tiene un valor incorrecto |
Błędy schematu, gdy brakuje obowiązkowego pola, mają własną stronę: błąd 4102.
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
- Kod modułu: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_aeat_client.py
- Kod modułu: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_cola_envio.py
- Kod modułu: flexigo_spain_verifactu 20.0 (aa2ea3d2): data/verifactu_error_catalogue.xml
- prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/err
