Przejdź do głównej zawartości

Namespace: bank

Namespace bank odpowiada za import wyciągów bankowych z automatyczną detekcją formatu i ekstrakcją NIP-ów z opisów transakcji.

Parsuje wyciąg bankowy z tekstu, automatycznie wykrywając format. Zapisuje transakcje do storage.

async importFromString(
content: string,
opts?: ImportBankStatementOpts,
): Promise<BankTransaction[]>
PoleTypWymaganeOpis
parsersBankStatementParser[]nieWłasna lista parserów (domyślnie getDefaultParsers())

Funkcja getDefaultParsers() zwraca parsery w kolejności detekcji:

ParserBankFormat
MT940DowolnySWIFT MT940
mBankmBankCSV
INGING Bank ŚląskiCSV
PKOPKO BPCSV
SantanderSantander Bank PolskaCSV
import { readFileSync } from 'node:fs'
const content = readFileSync('./wyciag.csv', 'utf-8')
const transactions = await ksefnik.bank.importFromString(content)
console.log(`Zaimportowano ${transactions.length} transakcji`)
console.log(`Bank: ${transactions[0]?.bank}`)

Zwraca transakcje zapisane w storage (zaimportowane wcześniej przez importFromString()).

async list(): Promise<BankTransaction[]>
// Import z pliku
const content = readFileSync('./wyciag-mbank.csv', 'utf-8')
await ksefnik.bank.importFromString(content)
// Odczyt ze storage
const transactions = await ksefnik.bank.list()
for (const tx of transactions) {
const amount = (tx.amount / 100).toFixed(2)
console.log(`${tx.date} | ${amount} PLN | ${tx.description}`)
}

Parsery automatycznie wyciągają NIP-y z opisów transakcji i ustawiają pola senderNIP / recipientNIP. Obsługiwane formaty NIP w opisach:

  • NIP: 1234567890
  • NIP 123-456-78-90
  • NIP1234567890
  • 10-cyfrowa sekwencja z poprawną sumą kontrolną
import { createKsefnik } from '@ksefnik/core'
import { readFileSync } from 'node:fs'
const ksefnik = createKsefnik({
config: { nip: '1234567890', environment: 'test' },
})
// 1. Import wyciągów z różnych banków
const mt940 = readFileSync('./mt940.sta', 'utf-8')
const mbank = readFileSync('./mbank-export.csv', 'utf-8')
const txMt940 = await ksefnik.bank.importFromString(mt940)
const txMbank = await ksefnik.bank.importFromString(mbank)
// 2. Wszystkie transakcje w storage
const all = await ksefnik.bank.list()
console.log(`Łącznie: ${all.length} transakcji`)
// 3. Użyj w uzgadnianiu
const invoices = await ksefnik.invoices.list()
const report = await ksefnik.reconciliation.run(invoices, all)