Przejdź do głównej zawartości

Migracja z konkurencji

Przewodnik migracji na ksefnik z popularnych rozwiązań KSeF i ręcznych procesów.

SDK-first

Cała logika w bibliotece TypeScript. CLI, MCP i API to cienkie wrappery. Pełna kontrola programistyczna.

Open-source core

Darmowy, otwarty core z 6 passami uzgadniania, 20 regułami walidacji i 5 parserami bankowymi.

Plugin system

Rozszerzalny bez forka. Pro features jako osobne pakiety npm, bez DRM.

MCP-ready

Natywna integracja z Claude, Cursor, Windsurf i innymi narzędziami AI przez Model Context Protocol.

Aspektksefapi.plksefnik
ModelSaaS APISDK (biblioteka npm)
Cenaod 500 PLN/NIP/mies.Core: darmowy, Pro: tańszy
HostingIch serwerTwoja infrastruktura
UzgadnianieBrak6-pass pipeline + pluginy
AI integrationBrakMCP server
Vendor lock-inTak (API)Nie (adapter pattern)
  1. Zainstaluj ksefnik:

    Okno terminala
    pnpm add @ksefnik/core @ksefnik/shared
  2. Stwórz adapter wrappujący istniejący klient ksefapi.pl:

    import type { KsefAdapter } from '@ksefnik/shared'
    class KsefApiPlAdapter implements KsefAdapter {
    constructor(private apiKey: string) {}
    async fetchInvoices(opts) {
    const res = await fetch('https://api.ksefapi.pl/invoices', {
    headers: { Authorization: `Bearer ${this.apiKey}` },
    body: JSON.stringify({ from: opts.from, to: opts.to }),
    })
    return mapToKsefnikFormat(await res.json())
    }
    async sendInvoice(input) { /* ... */ }
    async getUpo(ref) { /* ... */ }
    }
  3. Użyj z ksefnik:

    const ksefnik = createKsefnik({
    config: { nip: '1234567890', environment: 'production' },
    adapter: new KsefApiPlAdapter(process.env.KSEFAPI_KEY!),
    })
  4. Stopniowo migruj na natywny adapter KSeF (bez proxy przez ksefapi.pl).

Ręczne uzgadnianie w Excelu to najczęstszy “konkurent”. Typowy proces:

  1. Eksport faktur z KSeF (ręcznie, portal)
  2. Eksport wyciągu z banku (CSV)
  3. Porównywanie kolumn w Excelu (VLOOKUP, ręczne sprawdzanie)
Ręczny ExcelKsefnik
Godziny pracy miesięcznieSekundy (automatyczny pipeline)
Błędy ludzkie6 algorytmów dopasowania
Brak walidacji20 reguł walidacji
Brak historiiStorage (SQLite) z pełną historią
Brak APIMCP dla AI, CLI dla automatyzacji
  1. Zainstaluj ksefnik CLI:

    Okno terminala
    pnpm add -g @ksefnik/cli
  2. Zaimportuj wyciąg bankowy:

    Okno terminala
    ksefnik bank-import ./wyciag-mbank.csv
  3. Pobierz faktury z KSeF:

    Okno terminala
    ksefnik fetch --from 2025-01-01 --to 2025-03-31
  4. Uruchom uzgadnianie:

    Okno terminala
    ksefnik reconcile
  5. Przejrzyj wyniki — confidence, powody, niedopasowania.

Jeśli masz własny kod do komunikacji z KSeF, nie musisz go wyrzucać. Adapter pattern pozwala wrappować istniejącą logikę.

import type { KsefAdapter } from '@ksefnik/shared'
// Twój istniejący klient
import { MyKsefClient } from './my-ksef-client'
class MyClientAdapter implements KsefAdapter {
private client = new MyKsefClient()
async fetchInvoices(opts) {
const invoices = await this.client.getAll(opts.from, opts.to)
return invoices.map((inv) => ({
id: crypto.randomUUID(),
invoiceNumber: inv.nr,
sellerNIP: inv.sprzedawca_nip,
grossAmount: Math.round(inv.brutto * 100), // PLN → grosze
currency: 'PLN' as const,
issueDate: inv.data_wystawienia,
createdAt: new Date().toISOString(),
}))
}
async sendInvoice(input) { /* ... */ }
async getUpo(ref) { /* ... */ }
}