SAF-T грешки при подаване в НАП — какво означават и как да ги поправите
Най-честите грешки при подаване на SAF-T файл в НАП: невалидна XSD структура, липсващи полета, грешни номенклатурни кодове. Как да ги диагностицирате и отстраните.
Защо файлът ви може да бъде отхвърлен
Когато подавате SAF-T файл в портала на НАП, той преминава през автоматична валидация срещу XSD схемата (V_1.0.2). Ако файлът не отговаря на схемата — получавате грешка и НАП ви дава 7 дни за корекция. Ако не коригирате — рискувате санкция.
Проблемът е, че съобщенията за грешки от XSD валидацията са технически и трудно разбираеми за счетоводители. „cvc-complex-type.2.4.a: Invalid content was found" не казва нищо полезно, ако не сте XML разработчик.
В тази статия разглеждаме най-честите грешки — какво означават на прост език и как да ги поправите.
Грешка 1: Невалиден DefaultCurrencyCode
Какво виждате: Грешка, свързана с полето DefaultCurrencyCode в Header елемента.
Какво означава: Стойността на DefaultCurrencyCode е зададена като „BGN" или друга валута.
Как да поправите: Задайте стойността на EUR. Да, звучи странно — работите с лева, но българската SAF-T схема изисква DefaultCurrencyCode да бъде EUR. Това е специфика на националната имплементация на стандарта.
Това е една от най-честите грешки, защото е контраинтуитивна. SAF-T Bridge автоматично задава DefaultCurrencyCode = EUR, така че тази грешка е невъзможна при нас.
Грешка 2: Неправилен ред на елементите (xs:sequence)
Какво виждате: „cvc-complex-type.2.4.a: Invalid content was found starting with element..." или подобно съобщение за нарушен ред.
Какво означава: XML елементите в определена секция не са подредени в реда, който схемата изисква. XSD схемата на НАП използва xs:sequence, което означава, че редът на елементите е задължителен — не можете да размените местата на Customers и Suppliers в MasterFiles, например.
Как да поправите: Проверете реда на елементите в засегнатата секция и ги подредете според XSD схемата. Типичният ред в MasterFilesMonthly е: GeneralLedgerAccounts, Customers, Suppliers, Products, Owners.
Грешка 3: Липсващ задължителен елемент
Какво виждате: „cvc-complex-type.2.4.b: The content of element '...' is not complete."
Какво означава: Даден задължителен елемент липсва в XML файла. Например: секцията MasterFilesMonthly съществува, но в нея липсва подсекция GeneralLedgerAccounts.
Как да поправите: Добавете липсващия елемент. Дори ако нямате данни за него — някои елементи трябва да присъстват като празни обвивки. Проверете XSD схемата за minOccurs стойностите.
Грешка 4: Невалиден номенклатурен код
Какво виждате: Грешка, свързана с конкретно поле — StandardAccountID, TaxCode, PaymentMechanism или друг код.
Какво означава: Стойността не съответства на валидните кодове от Приложение 2 на НАП. Може би сте използвали остарял код, код с грешна дължина или код, който не съществува в номенклатурата.
Как да поправите: Сверете кода с пълния списък на номенклатурните кодове. Уверете се, че използвате 5-цифрения формат за StandardAccountID (напр. 60101, а не 601).
Грешка 5: Несъответствие в суми
Какво виждате: Грешка при бизнес валидацията (не XSD) — сумите не съвпадат.
Какво означава: Общите суми в обобщителните елементи не съответстват на детайлните записи. Например: сумата на всички дебитни обороти в GeneralLedgerEntries не съвпада с NumberOfEntries.
Как да поправите: Преизчислете обобщителните полета. Това обикновено е проблем с закръгляване или пропуснат запис. Проверете TotalDebit и TotalCredit полетата.
Грешка 6: Невалиден формат на дата
Какво виждате: Грешка, свързана с дата поле — „is not a valid value of type dateTime".
Какво означава: Дата в XML файла не е в правилния формат. SAF-T изисква ISO 8601 формат: YYYY-MM-DD за дати и YYYY-MM-DDThh:mm:ss за дата и час.
Как да поправите: Конвертирайте всички дати в ISO формат. Обърнете внимание на „DD/MM/YYYY" — типичният български формат — той е невалиден за XML.
Грешка 7: Невалиден ЕИК или данъчен номер
Какво виждате: Грешка при TaxRegistrationNumber или CompanyRegistrationNumber.
Какво означава: ЕИК-ът или данъчният номер са в грешен формат, съдържат невалидни символи или са с грешна дължина.
Как да поправите: ЕИК трябва да бъде 9 или 13 цифри. Данъчният номер (ДДС номер) трябва да е във формат „BG" + ЕИК (напр. BG123456789). Премахнете интервали, тирета или други символи.
Грешка 8: Празен файл или невалиден XML
Какво виждате: „Файлът не може да бъде обработен" или „не е валиден XML документ".
Какво означава: Файлът не е валиден XML — може да е повреден, с грешна кодировка, с незатворени тагове или изобщо да не е XML.
Как да поправите: Отворете файла в текстов редактор и проверете дали е валиден XML (правилен <?xml version="1.0"?> декларация, затворени тагове, правилна кодировка UTF-8).
Как да предотвратите грешките
Най-лесният начин: валидирайте файла преди да го подадете. SAF-T Bridge предлага безплатен SAF-T валидатор, който проверява XML файла срещу същата XSD схема, която НАП използва. Грешките се показват с:
- Точен ред от XML файла, където е проблемът
- Описание на грешката на разбираем език
- Препоръка за корекция
Вместо да подадете файла, да чакате НАП да го отхвърли, да получите 7-дневен срок и да изпадате в паника — проверете го преди подаване. Отнема секунди.
А ако генерирате файла директно чрез SAF-T Bridge — всички горни грешки са невъзможни. Системата автоматично: задава правилния DefaultCurrencyCode, подрежда елементите в правилния xs:sequence ред, включва всички задължителни полета, валидира номенклатурните кодове и форматира датите правилно.