Die KSeF-Nummer zerlegt
Sobald KSeF eine Rechnung angenommen hat, bekommt sie eine weltweit eindeutige Nummer mit genau 35 Zeichen. Sie steht unter dem QR-Code, im UPO und ist der Schlüssel zum Abruf der Rechnung. Die letzten zwei Zeichen sind eine CRC-8-Prüfsumme – ein Tippfehler fällt damit sofort auf.
✓ Gültige KSeF-Nummer (Format, NIP, Datum und CRC-8 stimmen)
🧩 Aufbau
5265877635
NIP Verkäufer
10 Ziffern
-
20250826
Annahmedatum
2025-08-26
-
0100001AF629
Technischer Teil
12 Hex-Zeichen
-
AF
CRC-8
berechnet: AF
NIP-Prüfziffer
5
2
6
5
8
7
7
6
3
5
×6
×5
×7
×2
×3
×4
×5
×6
×7
Prüf.
30
10
42
10
24
28
35
36
21
Σ = 236 · 236 mod 11 = 5 ✓
🔁 CRC-8 über die ersten 32 Zeichen (Polynom 0x07, Start 0x00)
Jedes Zeichen wird als ASCII-Byte in das Register gemischt. Klick auf ein Zeichen zeigt die 8 Schiebe-Schritte.
Endwert des Registers: 0xAF→ angehängt als „AF“
Zeichen 32: „9“ = 0x39
Register vorher00000000 (0x00)
XOR Byte00111001 (0x39)
=00111001
| Takt | Register | MSB | danach |
|---|---|---|---|
| 1 | 00111001 | 0 | 01110010 |
| 2 | 01110010 | 0 | 11100100 |
| 3 | 11100100 | 1 → ⊕07 | 11001111 |
| 4 | 11001111 | 1 → ⊕07 | 10011001 |
| 5 | 10011001 | 1 → ⊕07 | 00110101 |
| 6 | 00110101 | 0 | 01101010 |
| 7 | 01101010 | 0 | 11010100 |
| 8 | 11010100 | 1 → ⊕07 | 10101111 |
Ist das oberste Bit gesetzt, wird nach dem Linksschieben mit 0x07 (00000111) verknüpft – das ist die Division durch das Generatorpolynom x⁸+x²+x+1.
📚 Quellen
- Numer KSeF – struktura i walidacja ↗35 Zeichen, CRC-8 mit Polynom 0x07
- Sesja – sprawdzenie stanu i pobranie UPO ↗Status- und UPO-Endpunkte
- KSeF API 2.0 – OpenAPI ↗Interaktive API-Dokumentation (Testumgebung)
Technische Dokumentation: Repository CIRFMF „ksef-docs“ (heute „ksef-api“) des polnischen Finanzministeriums, abgerufen am 24.09.2026.