Валідатор

Неправильне значення поля в рахунку FA(3)

Що означає ця помилка

Поле стоїть на своєму місці, але його значення не відповідає формату, який для нього задає схема XSD FA(3). Повідомлення називає поле, вписане значення і те, чого очікує схема, а нижче ми описуємо кожен різновид цієї помилки.

Кожне поле в схемі має тип: сума, дата, NIP, код зі списку, текст певної довжини. Порожній елемент, наприклад <P_1M></P_1M>, теж має неправильне значення. Якщо поле необов'язкове і в нього нема чого вписати, видали весь елемент. Більшість текстових полів, що містять лише пробіли, схема теж вважає порожніми.

Схема XSD FA(3)

Формат суми

Сума складається лише з цифр, необов'язкового мінуса на початку і крапки перед дробовою частиною. Схема має три числові типи:

  • суми (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 продавця, покупця та інших суб'єктів; наш валідатор цього не робить.

Документація API KSeF 2.0, перевірка рахунку

Префікс країни в поле 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-файл, і ми покажемо, що треба виправити. Твій файл не залишає браузер.

Відкрити валідатор