Scanning 26 Official FA(3) XML Examples
The Ministry of Finance publishes 26 example XML files alongside the FA(3) schema documentation. All 26 are XSD-valid. We scanned them with KSeF Guard using --reference-date 2026-05-12 and --all-rules to show what substantive validation finds beyond schema checks.
What are the official FA(3) examples?
The Ministry of Finance publishes 26 XML files with names such as FA_3_Przykład_N.xml (N=1–26) as part of the FA(3) schema documentation (CRWDE 13775). These cover standard invoices, corrections, foreign currency, VAT-exempt, margin, advance payments, self-billing, and various special invoice types.
All 26 files pass XSD schema validation. They are official example files for selected FA(3) scenarios. They are not templates for production use; several contain fixed 2026 scenario dates and test data that trigger date-sensitive rules when validated against a current reference date.
XSD validity is not full compliance
XSD schema validation checks document structure: element names, ordering, data types, required fields. It does not check business logic, arithmetic consistency, temporal constraints, or cross-field dependencies.
A file can pass XSD validation and still surface substantive observations. KSeF Guard checks both layers: XSD first, then 128 active validation rules covering VAT Act requirements, Ministry guidance, heuristic anomaly detection, and security checks.
What KSeF Guard found
Across 26 files: 1 clean (no findings),
31 error-severity findings,
35 warning-severity findings,
8 distinct rules triggered.
Reference date: 2026-05-12.
| # | XSD | Errors | Warnings | Rules triggered |
|---|---|---|---|---|
| 1 | PASS | 1 | 2 | BUS-300, BUS-197, BUS-198 |
| 2 | PASS | 2 | 2 | BUS-300, BUS-302, BUS-197, BUS-198 |
| 3 | PASS | 2 | 2 | BUS-300, BUS-302, BUS-197, BUS-198 |
| 4 | PASS | 1 | 2 | BUS-300, BUS-197, BUS-198 |
| 5 | PASS | 0 | 0 | — |
| 6 | PASS | 2 | 0 | BUS-030, BUS-300 |
| 7 | PASS | 2 | 0 | BUS-030, BUS-300 |
| 8 | PASS | 2 | 0 | BUS-194, BUS-300 |
| 9 | PASS | 1 | 1 | BUS-300, BUS-197 |
| 10 | PASS | 0 | 1 | BUS-197 |
| 11 | PASS | 0 | 1 | BUS-197 |
| 12 | PASS | 1 | 0 | BUS-300 |
| 13 | PASS | 1 | 0 | BUS-300 |
| 14 | PASS | 2 | 2 | BUS-030, BUS-300, BUS-198, BUS-303 |
| 15 | PASS | 1 | 2 | BUS-300, BUS-197, BUS-198 |
| 16 | PASS | 1 | 2 | BUS-300, BUS-197, BUS-198 |
| 17 | PASS | 2 | 2 | BUS-030, BUS-300, BUS-198, BUS-303 |
| 18 | PASS | 1 | 1 | BUS-030, BUS-198 |
| 19 | PASS | 1 | 2 | BUS-300, BUS-197, BUS-198 |
| 20 | PASS | 1 | 2 | BUS-300, BUS-197, BUS-198 |
| 21 | PASS | 1 | 2 | BUS-300, BUS-197, BUS-198 |
| 22 | PASS | 1 | 2 | BUS-300, BUS-197, BUS-198 |
| 23 | PASS | 3 | 1 | BUS-030, BUS-168, BUS-300, BUS-198 |
| 24 | PASS | 1 | 2 | BUS-300, BUS-197, BUS-198 |
| 25 | PASS | 1 | 2 | BUS-300, BUS-197, BUS-198 |
| 26 | PASS | 0 | 2 | BUS-197, BUS-198 |
Date-sensitive rules: BUS-030, BUS-168, and BUS-194 depend on the reference date. The official examples use fixed 2026 scenario dates. When evaluated against --reference-date 2026-05-12, some dates fall outside the allowed window. This is an expected artifact of fixed test data, not a defect in the examples.
Batch rules: BUS-300, BUS-302, and BUS-303 activate when validating multiple files together. Running each file individually would not trigger these rules.
Understanding the findings
What KSeF Guard observed: Invoice issue date (P_1 — issue date) is set in the future beyond the allowed window (max 30 days ahead).
How to interpret or fix: Check the invoice issue date — it should be the current date or no more than 30 days in the future.
Source: Art. 106na ust. 1 Ustawy o VAT (LOGICAL_INFERENCE)
Triggered in examples: #6, #7, #14, #17, #18, #23
What KSeF Guard observed: The invoice issue date (P_1) exceeds the statutory deadline — the invoice must be issued no later than the 15th day of the month following the supply month (P_6 — supply/service date).
How to interpret or fix: Check the issue date — under Art. 106i of the VAT Act, an invoice must be issued by the 15th day of the month following supply. Correct the issue date or the supply date.
Source: Art. 106i ust. 1 Ustawy o VAT
Triggered in examples: #8
What KSeF Guard observed: Duplicate invoice number (P_2 — invoice number) detected in the batch. Two documents in the batch share the same number.
How to interpret or fix: Verify invoice numbering in the batch — each invoice must have a unique number (P_2). Correct the duplicated document's number.
Source: UoVAT, Art. 106e ust. 1 pkt 2 (kolejny numer jednoznacznie identyfikujący fakturę); KSeF — empiryczne odrzucenie duplikatów w sesji
Triggered in examples: #1, #2, #3, #4, #6, #7, #8, #9, #12, #13, #14, #15, #16, #17, #19, #20, #21, #22, #23, #24, #25
What KSeF Guard observed: Guard detected an issue-date (P_1) regression within a sequential invoice number series — an invoice with a higher number has an earlier date. Batch heuristic — not enforced by KSeF, but may indicate a numbering or dating error.
How to interpret or fix: Check the order of dates and invoice numbers in the batch — an invoice with a higher number should not have an earlier issue date.
Source: KSeF Guard batch heuristic (chronological monotonicity of P_1 within sequential P_2 series)
Triggered in examples: #2, #3
What KSeF Guard observed: Invoice issue date (P_1 — issue date) is more than 60 days in the future — likely erroneous. Such a distant date may indicate a mistake in the year or month.
How to interpret or fix: Check the invoice issue date — make sure the year, month, and day are correct. An invoice dated far in the future requires verification.
Source: UoVAT, Art. 106i ust. 7; Broszura FA(3) P_1, P_6
Triggered in examples: #23
What KSeF Guard observed: The invoice has an issue date (P_1) falling on a weekend (Saturday or Sunday). Weekend issuance is rare and may indicate a date entry error or an automated process.
How to interpret or fix: Check the invoice issue date — invoices are usually issued on business days. If the date is correct, this may be justified by a special business process.
Source: KSeF Guard heuristic (weekend invoice issuance — gateway validation practice)
Triggered in examples: #1, #2, #3, #4, #9, #10, #11, #15, #16, #19, #20, #21, #22, #24, #25, #26
What KSeF Guard observed: The invoice creation timestamp (DataWytworzeniaFa) falls within night hours (22:00-05:59). Night-hour creation is rare and may indicate a system error or automated process.
How to interpret or fix: Check the invoice creation hour — invoices are typically generated during business hours. If the hour is correct, this may be justified by a special business process (e.g. cross-time-zone operations).
Source: KSeF Guard heuristic (22:00-05:59 night-window invoice creation — gateway validation practice)
Triggered in examples: #1, #2, #3, #4, #14, #15, #16, #17, #18, #19, #20, #21, #22, #23, #24, #25, #26
What KSeF Guard observed: The settlement invoice (ROZ) amount exceeds the sum of the related advance invoices (ZAL) in the batch. This may indicate missing advance linkage or a partial-advance scenario (Art. 106f).
How to interpret or fix: Verify the linkage between advance and settlement invoices. The rule is a Guard heuristic — a partial-advance scenario per Art. 106f is legitimate and may trigger this alert.
Source: UoVAT, Art. 106f ust. 3 (faktury zaliczkowe i rozliczeniowe)
Triggered in examples: #14, #17
Learn more
- Rule Explorer — browse all 128 active validation rules with source-backed evidence
- Understanding Rule Classifications — what each category means and how to configure rules
- Why KSeF Guard Catches More Than KSeF — conformance v9 proof against the KSeF test API
- Why Validate Before You Send to KSeF — what pre-validation actually prevents
- Download KSeF Guard — includes the Showcase XML Pack for testing
Validate your own invoices against 128 active rules — offline, on your machine, with source traceability.
Download KSeF Guard