Технически типове данни и номенклатури
Техническите типове данни зад полетата - лимити на текст, десетични числа и номенклатурите на НАП.
Защо въобще ви трябва тази глава
До момента говорихме за кои полета са задължителни и кога. Тук говорим за нещо по-приземено, но също толкова важно: какъв формат приема всяко поле - защото схемата налага строги граници на дължина и точност, и надвишаването им не е "предупреждение", а причина за отрязване на данни или отхвърляне на файла.
Пълният списък технически типове (SimpleTypes)
Всяко поле в SAF-T е дефинирано чрез един от следните 17 базови типа - вижте пълния речник (глава по глава, секция "Технически типове") за конкретен пример при всеки. Диаграмата по-долу показва всичките 17, с точния формат и граница на всеки.
Текстовите полета имат различни, не еднакви граници
Ако описание на сметка във вашата счетоводна програма е 300 знака, а полето е
SAFlongtextType (максимум 256), стойността надвишава лимита на схемата - а това
е причина за отхвърляне при валидация, не безобидна подробност. Какво точно се случва
зависи от софтуера ви: някои инструменти изобщо не проверяват дължината и директно ще
произведат невалиден файл; други (Magi включително) съкращават текста предварително,
точно за да не стигнете до отхвърляне заради това - но така губите края на текста
мълчаливо. И в двата случая правилното решение е едно и също: проверявайте
предварително дали дългите ви описания реално се събират в границата на съответното
поле, вместо да разчитате на който и да е автоматичен механизъм да го оправи вместо
вас.
Десетичният разделител е винаги точка
Независимо от българския писмен навик (запетая като десетичен разделител), XML
стандартът зад SAF-T изисква точка (.) навсякъде, без изключение - за паричните
суми, количествата, обменния курс, всичко от тип Decimal. Това не е избор на НАП, а
изискване на самия XML/XSD технически стандарт - и се отнася еднакво за
SAFmonetaryType, SAFquantityType, SAFweightType и обикновения Decimal тип.
Обменният курс - винаги към еврото
Курсът в ExchangeRate (използван в CurrencyAmount x ExchangeRate = Amount, виж глава
5) е винаги изразен от чуждата валута към EUR - не към лева, и не по избор на
счетоводната програма.
Лесно за пропускане
В ежедневната счетоводна практика в България курсовете обичайно се мислят спрямо
лева. Типът за самия курс (SAFexchangerateType) носи до 18 цифри общо, 4 след
десетичната точка - по-висока точност от обичайните парични суми, защото малка
грешка в курса се умножава по цялата сума.
Датите и часовете - ISO 8601, без изключения
Всички дати във файла следват формат ГГГГ-ММ-ДД (напр. 2026-07-22), а часовете - 24-часов
формат ЧЧ:ММ (напр. 15:03), без значение колко рядко се среща полето от тип Time в
практиката (появява се почти изцяло само където схемата изрично изисква час, отделно от
дата - например MovementPostingTime при движение на стоки). Български формат на дата
(22.07.2026) или 12-часов формат с "AM"/"PM" не се приемат никъде във файла.
Кодовете по ISO стандарти
Държавите се изписват с двубуквен код по ISO 3166-1 alpha-2 (BG, DE, FR) - не
трибуквения вариант (BGR), който също съществува като стандарт, но не е този, който
SAF-T очаква. Валутите се изписват с трибуквен код по ISO 4217 (EUR, USD) - символи
като € или $ не са валидни стойности за полето.
Номенклатурите, които трябва да мапирате
Отделно от техническите типове по-горе, SAF-T разчита на официални номенклатури на НАП - вашите вътрешни кодове трябва да бъдат съпоставени с тях преди подаване, не използвани директно. Общо номенклатурите са 14 - пълният списък е в диаграмата по-долу.
Само пет от тях изискват реално, ръчно мапиране на вашите собствени вътрешни кодове за месечно подаване: сметкоплан, продукти, данъчни кодове, мерни единици и видове документи. Останалите девет (механизми за плащане, видове движение на стоки/активи, вид на материалния запас, данъчни режими, IBAN, кодове на държави/области, валути) се прилагат от софтуера автоматично, като референция или валидация - вие не мапирате нищо свое към тях.
От петте реални мапирания обемът и времето за всяко се различават драстично:
- Продукти (
NC8_TARIC, около 9 900 записа общо) - обичайно най-времеемката част, ако фирмата има богат продуктов каталог. Не заради обема на самата номенклатура (мапирате само артикулите, които реално продавате или купувате, не целия списък), а защото продуктовите описания във вашата счетоводна програма рядко са стандартизирани - всеки артикул реално изисква отделна преценка. - Сметкоплан на НАП (
NRA_Nom_Accounts, обичайно 250-350 кода) - идва на второ място по обем работа. Колко точно зависи пряко от това колко аналитичен е вашият собствен вътрешен сметкоплан спрямо номенклатурата на НАП - плитък вътрешен сметкоплан (малко на брой, общи сметки) означава повече ръчна преценка при мапиране на всяка сметка, не по-малко. - Данъчни кодове, мерни единици и видове документи - списъците им са къси, но мапирането им е реално и задължително, не просто декоративна стъпка.
Продуктите, не сметкопланът, обичайно отнемат най-много време
Ако фирмата има малко на брой продукти, сметкопланът обичайно е по-времеемък от продуктите - но при богат каталог е обратното. Инструменти с автоматично AI мапиране (вижте промоцията в края на тази глава) спестяват най-много реални часове именно тук, при продуктите.
Какво да запомните от тази глава
- 17 базови технически типа стоят зад всяко поле в схемата - вижте диаграмата по-горе за пълния списък граници.
- Десетичният разделител е винаги точка, никога запетая - за всички числови типове.
- Текстовите полета имат различни максимални дължини (9/18/35/70/256 знака) според типа им - надвишаването е причина за отхвърляне при валидация; дали софтуерът ви ви предпазва от това (например чрез мълчаливо съкращаване) или не, зависи от инструмента, не от схемата.
- Обменният курс е винаги към еврото, независимо от навика да се мисли в лева.
- Датите следват ISO 8601 (ГГГГ-ММ-ДД), часовете - 24-часов формат - без изключения.
- Общо 14 номенклатури, но само 5 изискват реално мапиране на вашите вътрешни кодове (сметкоплан, продукти, данъчни кодове, мерни единици, видове документи) - останалите 9 се прилагат автоматично като референция.
- Продуктите, не сметкопланът, обичайно отнемат най-много време при богат продуктов каталог; сметкопланът е на второ място, а обемът му зависи от това колко аналитичен е вашият вътрешен сметкоплан спрямо номенклатурата на НАП.
Следващата глава разглежда специфичните случаи - международни операции, данък при източника и трите сектора с особени облекчения (банки, застрахователи, лечебни заведения).
Никога повече грешка заради отрязан текст
Magi следи дължините на полетата и номенклатурите от тази глава автоматично, преди файлът да стигне до НАП.