E-Invoicing in Poland
Poland launched KSeF (Krajowy System e-Faktur) as mandatory for all B2B transactions on February 1, 2026. KSeF is a centralized clearance system — every invoice must be submitted to and validated by the government platform before it reaches the buyer. The system uses a proprietary XML schema (not standard EN 16931 UBL/CII) and does not use the Peppol network.
Mandate Status
| Phase | Status | Scope |
|---|---|---|
| KSeF voluntary | Live (Jan 2022) | All VAT payers (opt-in) |
| B2B mandatory | Live (Feb 2026) | All Polish VAT payers |
| B2G | Live (Feb 2026) | Included in general KSeF mandate |
Technical Specifications
Implementation Notes
KSeF is architecturally different from Peppol-based mandates. If you've built for Belgium or Germany, assume nothing transfers.
Clearance model. Every invoice must be submitted to KSeF via API, validated by the government, and assigned a unique KSeF number before it's considered issued. The buyer retrieves the invoice from KSeF — you don't deliver it directly. This means your pipeline's "send invoice" step is actually "submit to KSeF and wait for acceptance." Rejection means the invoice was never issued.
Proprietary XML schema. KSeF uses its own XML schema (FA(2)), not EN 16931 UBL or CII. If your pipeline is built on EN 16931, you need a dedicated KSeF mapper. The schema has Polish-specific fields (e.g., GTU codes for goods/services classification, MPP split payment markers) that have no EN 16931 equivalent.
Authentication complexity. KSeF requires qualified electronic signatures (kwalifikowany podpis elektroniczny), trusted profiles (profil zaufany), or authorization tokens for API access. Multi-entity setups need per-entity token management. The token refresh logic is non-trivial — tokens expire and the renewal endpoint has rate limits.
What catches integrators off-guard. KSeF stores invoices for 10 years and serves as the legal archive. Credit notes must reference the original KSeF number. Cross-border invoices also require KSeF reporting (the system covers all invoices issued by Polish VAT payers, not just domestic). Batch submission is supported but each invoice gets individual validation — a batch of 1,000 can partially fail.
Common Rejection Patterns
| # | Code | Description | |
|---|---|---|---|
| 1 | KSEF-010 | KSeF XML schema validation failed | Fix guide |
| 2 | PL-R-003 | KSeF submission required | Fix guide |
| 3 | KSEF-009 | Bank account not on VAT white list | Fix guide |
| 4 | PL-R-004 | KSeF session token invalid | Fix guide |
| 5 | PL-R-007 | Split payment annotation required | Fix guide |
Invoice Navigator auto-remediates these at pipeline speed. See how →
View all Poland error codesRecent Updates
Poland: Updated threshold criteria for KSeF Phase 1
Clarified that Phase 1 mandatory e-invoicing from February 1, 2026 applies to enterprises with 2024 sales exceeding 200 million PLN, providing more specific threshold criteria than previously available.
Source: Polish KSeFPoland KSeF Implementation Now Shows Detailed Phased Rollout
The KSeF system will be implemented in three phases: February 1, 2026 for businesses with revenue >200M PLN in 2024, April 1, 2026 for most other businesses, and January 1, 2027 for businesses with monthly revenue ≤10,000 PLN. This represents a significant change from the previously understood single implementation date.
Source: KSeF PortalPoland KSeF mandate date confirmed
Poland confirms February 1, 2026 as the mandatory start date for the KSeF national e-invoicing system.
Source: Polish Ministry of FinanceShip compliant Poland invoices
Validate, fix, and route Poland e-invoices through a single API. No XML editing required.
Get API Access