Open source accounting software compatible with KSeF (National System of e-Invoices in Poland).
Check out the live demo: https://openinvoice.in/
Note
Podsumowanie sytuacji:
- Obowiązek KSeF NIE wszedł jeszcze w życie dla większości firm. Oficjalny start to 1 kwietnia 2026 (lub 1 lipca 2026 dla mikroprzedsiębiorców).
- Oficjalne środowisko produkcyjne KSeF jest obecnie ZAMKNIĘTE dla sesji dla mniejszych podmiotów. Jest aktywne tylko dla wąskiej grupy największych firm (>200 mln zł), dla których startował 1 lutego.
- Błąd 403 Forbidden na środowisku produkcyjnym jest oczekiwany i normalny. System odrzuca próby otwarcia sesji, ponieważ nie masz jeszcze uprawnień czasowych. Twoja implementacja jest prawdopodobnie poprawna.
Poniższa tabela przedstawia kluczowe daty i zalecane działania w oparciu o próg przychodów:
| Twoja sytuacja (Przychody 2024) | Data obowiązku KSeF | Co robić TERAZ (Styczeń-Luty 2026) | Co robić od 1 KWIETNIA 2026 |
|---|---|---|---|
| Powyżej 200 mln zł | Od 1.02.2026 | Pilnie testuj na PRODUKCJI (ksef.mf.gov.pl). Błąd 403 oznacza problem z tokenem/certyfikatem. Sprawdź portal KSeF. |
-- |
| Poniżej 200 mln zł (Większość firm) | Od 1.04.2026 | Skup się na testach w DEMO i przygotowaniu aplikacji. Ignoruj błąd 403 na produkcji – to normalne. | Przetestuj połączenie z produkcją. Włącz obowiązkowe wysyłanie faktur do KSeF. |
Masz jeszcze czas do 1 kwietnia. Wykorzystaj go mądrze:
- Kontynuuj testy na ŚRODOWISKU DEMO (
ksef-demo.mf.gov.pl):- Użyj oficjalnych danych testowych (NIP 1234567890).
- Doprowadź do pełnego flow: uwierzytelnienie -> otwarcie sesji -> wysłanie faktury FA(2) -> pobranie UPO.
- Jeśli na DEMO występuje 403, wtedy należy szukać błędu w kodzie.
- Przygotuj tryb "hybrydowy":
- Do 31 marca: Aplikacja działa w "trybie zwykłym" (bez KSeF).
- Od 1 kwietnia: Aplikacja automatycznie przełącza się na wysyłanie do KSeF.
- Zaimplementuj tryb awaryjny (QR kody) na wypadek awarii KSeF.
- Testy na Produkcji (Marzec):
- Dopiero na początku marca wygeneruj nowy token w portalu produkcyjnym (
portal.ksef.gov.pl). - Wykonaj testowe połączenie, aby upewnić się, że wszystko działa.
- Dopiero na początku marca wygeneruj nowy token w portalu produkcyjnym (
Important
Technical Status: Ready for KSeF 2.0 (Feb 2026 Launch)
This project has been updated to fully comply with the KSeF 2.0 API standards effective from February 1st, 2026.
- API Version: v2.0 (
/v2endpoints) - Schema:
FA (3)/1-0E - Encryption: RSA-OAEP with SHA-256
- Authentication: JWT-based with
InitTokenflow (includingX-KSeF-Feature: upo-v4-3)
We have verified the technical implementation against the api-test.ksef.mf.gov.pl/v2 environment.
- ✅ Authentication: Successfully retrieves Auth Token (JWT).
- ✅ Encryption: Correctly encrypts symmetric keys using the Ministry of Finance public key.
⚠️ Session Creation: Currently blocked (403 Forbidden) by the KSeF Test Environment restrictions on V2 sessions until the official operational date (Feb 1st).
Next Steps:
The codebase is release-ready. Once the KSeF V2 API becomes fully operational for public testing, the connection logic in scripts/test_ksef_connection.ts is expected to pass without modification.
- KSeF Integration: Seamlessly obtain tokens and manage invoices in compliance with Polish regulations.
- Open Source: Built for the community, transparent and extensible.
- Modern Stack:
- Frontend: Nuxt 3 (Vue 3), TailwindCSS, Pinia.
- Backend: Node.js, Fastify, Prisma, MongoDB.
- Testing: Vitest.
- Node.js (v18+)
- pnpm
- Docker (optional, for deployment)
-
Clone the repository.
-
Install dependencies:
# Frontend cd front pnpm install # Backend cd back pnpm install
-
Set up environment variables (see
.env.examplein both directories).
Frontend:
cd front
pnpm devBackend:
cd back
pnpm devContributions are welcome! Please feel free to submit a Pull Request.