Przejdź do głównej zawartości

Konfiguracja

Interfejs KsefnikConfig definiuje opcje konfiguracji przekazywane do createKsefnik().

interface KsefnikConfig {
nip: string
environment: 'production' | 'demo' | 'test'
token?: string
storage?: 'memory' | 'sqlite'
sqlitePath?: string
plugins?: string[]
reconciliation?: {
minConfidence?: number
enabledPasses?: string[]
}
}
PoleTypWymaganeDomyślnieOpis
nipstringtak—NIP firmy (10 cyfr)
environment'production' | 'demo' | 'test'tak—Środowisko KSeF
tokenstringnie—Token API KSeF (wymagany dla production i demo)
storage'memory' | 'sqlite'nie'memory'Typ storage
sqlitePathstringnie'./ksefnik.db'Ścieżka do pliku SQLite
pluginsstring[]nie[]Nazwy pakietów pluginów do załadowania
reconciliationobjectnie—Opcje pipeline uzgadniania
PoleTypDomyślnieOpis
minConfidencenumber0Minimalna pewność dopasowania (0-100). Dopasowania poniżej są odrzucane.
enabledPassesstring[]wszystkieLista nazw passów do włączenia. Pominięte passy nie będą uruchamiane.
const ksefnik = createKsefnik({
config: {
nip: '1234567890',
environment: 'production',
token: process.env.KSEFNIK_TOKEN,
},
})

Wymaga tokena. Komunikacja z produkcyjnym API KSeF pod https://ksef.mf.gov.pl.

Ksefnik odczytuje konfigurację ze zmiennych środowiskowych (priorytet niższy niż jawna konfiguracja):

ZmiennaMapowaniePrzykład
KSEFNIK_NIPconfig.nip1234567890
KSEFNIK_ENVconfig.environmentproduction
KSEFNIK_TOKENconfig.tokeneyJhbG...
.env
KSEFNIK_NIP=1234567890
KSEFNIK_ENV=production
KSEFNIK_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
const ksefnik = createKsefnik({
config: {
nip: '1234567890',
environment: 'test',
storage: 'memory',
},
})

Domyślny. Dane znikają po zakończeniu procesu. Idealny do testów i jednorazowych skryptów.

const ksefnik = createKsefnik({
config: {
nip: '1234567890',
environment: 'production',
reconciliation: {
// Odrzucaj dopasowania z confidence < 50
minConfidence: 50,
// Używaj tylko pewnych passów (wyłącz fuzzy i proximity)
enabledPasses: [
'ksef-ref',
'exact-nip-amount',
'invoice-ref',
'partial-amount',
],
},
},
})