Неправильне значення поля в рахунку FA(3)
Що означає ця помилка
Поле стоїть на своєму місці, але його значення не відповідає формату, який для нього задає схема XSD FA(3). Повідомлення називає поле, вписане значення і те, чого очікує схема, а нижче ми описуємо кожен різновид цієї помилки.
Кожне поле в схемі має тип: сума, дата, NIP, код зі списку, текст певної довжини. Порожній елемент, наприклад <P_1M></P_1M>, теж має неправильне значення. Якщо поле необов'язкове і в нього нема чого вписати, видали весь елемент. Більшість текстових полів, що містять лише пробіли, схема теж вважає порожніми.
Формат суми
Сума складається лише з цифр, необов'язкового мінуса на початку і крапки перед дробовою частиною. Схема має три числові типи:
- суми (
P_11,P_13_x,P_14_x,P_15та інші, типTKwotowy): щонайбільше 2 знаки після крапки; - ціни за одиницю і знижка (
P_9A,P_9B,P_10, типTKwotowy2): щонайбільше 8 знаків; - кількість і курс валюти (
P_8B,KursWaluty,KursWalutyZ, типTIlosci): щонайбільше 6 знаків.
Не пройдуть: пробіл або крапка як розділювач тисяч, десяткова кома, валюта в полі, нуль на початку (02051.00) і знак плюс. Сума без дробової частини, наприклад 2051, правильна.
<!-- ❌ Кома, пробіл, валюта, нуль на початку -->
<P_15>2051,00</P_15>
<P_15>2 051.00</P_15>
<P_15>2051 zł</P_15>
<P_15>02051.00</P_15>
<!-- ✅ Цифри і крапка -->
<P_15>2051.00</P_15>Пробіл і кому в сумах виявляє також окреме правило, описане на сторінці про суми без розділювачів. Одне виправлення прибирає обидва повідомлення.
Формат дати
Дати записуєш як РРРР-ММ-ДД (2026-02-15), і такий день має існувати в календарі: 2026-02-30 не пройде. Схема обмежує й діапазон: P_1, P_6 і P_6A приймають дати від 2006-01-01 до 2050-01-01, а DataZaplaty і Termin від 2016-07-01.
DataWytworzeniaFa це єдине обов'язкове поле з датою і часом. Між ними стоїть літера T, а не пробіл. Брошура наводить приклад у часі UTC, з літерою Z у кінці, і так записувати найпростіше. Схема прийме також запис без часового поясу або зі зміщенням, наприклад +02:00. Дат, раніших за 2025-09-01T00:00:00Z, схема в цьому полі не приймає.
<!-- ❌ Дата в польському форматі -->
<P_1>15.02.2026</P_1>
<!-- ❌ Час у полі, яке приймає лише дату -->
<P_1>2026-02-15T10:00:00</P_1>
<!-- ✅ -->
<P_1>2026-02-15</P_1>
<!-- ❌ Пробіл замість T, немає секунд -->
<DataWytworzeniaFa>2026-02-15 10:00</DataWytworzeniaFa>
<!-- ✅ -->
<DataWytworzeniaFa>2026-02-15T10:00:00Z</DataWytworzeniaFa>NIP
У поле NIP (польський податковий номер) вписуєш 10 цифр, без рисок, пробілів і префікса PL. Перша цифра не може бути нулем, а друга й третя не можуть одночасно бути нулями. Схема перевіряє лише запис. KSeF на продуктивному середовищі перевіряє також контрольну суму NIP продавця, покупця та інших суб'єктів; наш валідатор цього не робить.
Префікс країни в поле NIP не потрапляє. Продавець може вказати його окремо в PrefiksPodatnika (Podmiot1), а покупець з іншої країни ЄС має поля KodUE і NrVatUE замість NIP.
<!-- ❌ Риски і префікс -->
<NIP>987-654-32-10</NIP>
<NIP>PL9876543210</NIP>
<!-- ✅ -->
<NIP>9876543210</NIP>Код країни
KodKraju в адресі приймає дволітерний код зі списку в схемі, великими літерами: PL, DE, UA. Не пройдуть POL, pl чи Polska.
Поле KodUE біля номера VAT ЄС покупця має окремий, коротший список: країни ЄС і XI для Північної Ірландії, а Греція має в ньому код EL. В адресі Греція це GR, і EL у KodKraju не пройде.
<!-- ❌ Три літери, малі літери -->
<KodKraju>POL</KodKraju>
<KodKraju>pl</KodKraju>
<!-- ✅ -->
<KodKraju>PL</KodKraju>Задовге або закоротке значення
Текстові поля мають обмеження довжини. Номер рахунку P_2 і багато інших текстових полів вміщують щонайбільше 256 знаків, назва в Nazwa 512, а номер банківського рахунку NrRB від 10 до 34 знаків. У цих помилках бібліотека валідації не цитує значення, тож у повідомленні побачиш його довжину й ліміт, а саме значення знайдеш у файлі на вказаному рядку.
Закоротке значення це найчастіше порожнє поле: кожне текстове поле має містити щонайменше один знак. Заповни його або видали елемент, якщо він необов'язковий. Задовге скороти, наприклад повну назву правової форми в назві фірми заміни скороченням.
<!-- ❌ Порожнє поле -->
<P_2></P_2>
<!-- ✅ -->
<P_2>FV/2026/10/014</P_2>Забагато десяткових знаків
Суми мають щонайбільше 2 знаки після крапки, кількості й курси 6, ціни за одиницю 8. Зайві знаки зазвичай з'являються в списку двічі для одного поля (ліміт знаків і невідповідний шаблон запису), а ще як окреме правило MF про точність. Одне округлення прибирає всі три повідомлення.
Після округлення перевір підсумки: округлені P_13_x і P_14_x мають і далі складатися в P_15. Розбіжності виявляє перевірка розрахунку ПДВ.
<!-- ❌ 3 знаки в сумі, 9 у ціні -->
<P_11>1000.123</P_11>
<P_9A>10.123456789</P_9A>
<!-- ✅ -->
<P_11>1000.12</P_11>
<P_9A>10.12345679</P_9A>Значення поза списком
Частина полів приймає лише значення із закритого списку, і повідомлення перелічує дозволені (для довгих списків, як-от коди валют, показуємо перші вісім). Важить кожен знак, зокрема регістр і пробіли. Найчастіші випадки:
P_12(ставка ПДВ):23,8,5,zw,np Iта інші, без знака%; докладніше на сторінці про ставку ПДВ у P_12;RodzajFaktury:VAT,KOR,ZAL,ROZ,UPR,KOR_ZAL,KOR_ROZ;- поля «так/ні» в
Adnotacje, а такожJSTіGV:1або2, ніколи0; WariantFormularza: лише3;KodWaluty: трилітерний код великими літерами,PLN, а неzłчиpln.
<!-- ❌ -->
<P_12>23%</P_12>
<RodzajFaktury>FV</RodzajFaktury>
<P_16>0</P_16>
<!-- ✅ -->
<P_12>23</P_12>
<RodzajFaktury>VAT</RodzajFaktury>
<P_16>2</P_16>Інший формат
Решта випадків:
- Поле, яке приймає лише
1, наприкладFPабоP_19N. Не вписуйtakчиtrue. Якщо поле тебе не стосується і воно необов'язкове, якFP, видали весь елемент. - Текст у розділі, який містить лише інші елементи, наприклад слово, вписане безпосередньо в
Adnotacje. Перенеси його у відповідне поле або видали. - Число поза діапазоном, наприклад
NrWierszaFa, що дорівнює0. Номери рядків починаються з1. - Адреса e-mail без знака
@уEmail.
Коли жоден опис не підходить, порівняй поле з брошурою FA(3), яка наводить формат кожного поля. Після виправлення перевір рахунок ще раз.
Перевір свій рахунок
Завантаж XML-файл, і ми покажемо, що треба виправити. Твій файл не залишає браузер.
Відкрити валідатор