Vissza a Journal-hoz
financehu

Banki kivonat OCR es 92%-os automata parositas negy banknal

92%-os automata parositas negy banknal, Unicredit-specifikus extractor 71->88%-ra, es 20-30 ora/honap konyveloi idomegtakaritas.

Az automatikus banki tetel-parositas a konyveles legfaradtsagosabb manualis lepese, amit a Netorigo Finance modul automatizal. Negy magyar bank (OTP, K&H, Raiffeisen, Erste) tesztelt portfolioja alapjan 92%-os automatikus parositasi aranyt mertunk. A maradek 8% emberi szemre szorul, de a modul 1-kattintassal felajanl megoldas-jelolteket.

Mit fogad a modul

Harom formatumot importalunk: PDF (a magyar bankok ezen feladnak ki kivonatokat), CAMT.053 (XML, SEPA-szabvany), MT940 (SWIFT-orokseg, meg eleve hasznalt). A PDF-importalas ket szinten dolgozik. Az elso szinten a pdf-parse JS-library kinyeri a szoveget. A bankok 80%-anal ez gepi olvashato szovegetjelent es az adat strukturaltan kerul ki. A masodik szinten, ha a PDF szkennelt (kep), Tesseract OCR-rel olvassuk be a tablazatot, majd egy regex-pipeline tisztitja a tetelnek mezoit.

CAMT.053 es MT940 importalas trivialis: szabvanyos formatum, pontosan szervezett mezok. Itt csak az utalvanyaonosito mezo (bank-tx-id) idempotenciajara kell figyelni, nehogy egy ujraprobalt import duplikalja a teteleket.

A parositasi logika

Minden importalt banki tranzakciot egy bank_transaction tablan tarolunk, es egy match-engine.service.ts futtatja a parositast. A logika harom dimenzio mellett dolgozik:

  1. Osszeg: pontosan egyeznie kell. Ha 100,000 Ft erkezett, csak 100,000 Ft-os szamla vagy koteles parositoodhat hozza.

  2. Datum-ablak: a banki dat ±3 napos ablakot enged a szamla-datumhoz kepest. (A banki utalvanyok ritkan futnak ki azonnal, plusz a B2B-szamlazas gyakran hatra-keltez.)

  3. Partner-nev fuzzy egyezes: a banki kozlemenyt vagy partnernev mezot a string-similarity (Dice koefficienss) modullal vetjuk ossze a partner cegnevevel. Csak akkor parositunk, ha a score >0.82. (0.82 a tapasztalati kuszob, ami a hamis-pozitiv es valodi-egyezes kozti optimalist talaltuk a 4 bank portfolioban.)

Ha mindharom kriterium teljesul, a parositas automatikus es a matched_invoice_id kerul a banki tetelre, valamint a szamla paid_status = PAID lesz. Az audit-trail a match_method = AUTO flag-et kapja, hogy a konyvelo lassa, hogy gepi parositas tortent.

A 8% parosulatlan tetel

A 8% ami nem parosul automatikusan, egy 'unmatched queue'-ba kerul. A bookkeeper-felulet itt felsorolja a tetelt es a 3 legjobb 'kozeli' parositasi jeloltet (alacsonyabb scoring, vagy szelesebb datum-ablak, vagy reszosszeg-egyezes). A konyvelo egy kattintassal elfogadja a jelolt parositast, es a tranzakcio megoldodik. Az ido tipikusan 30-90 masodperc tetelenkent.

A bank, ami toi-rontja a parositast

A Unicredit. A masik negy bank (OTP, K&H, Raiffeisen, Erste) a banki kivonat 'kozlemeny' vagy 'megjegyzes' mezojebe a partner cegnevet pakolja. Ha az ugyfel 'Pelda Kft.' nevet ad meg, a kozlemenyben 'PELDA KFT' fog megjelenni. Egyertelmu.

A Unicredit viszont egy belso utalvanyaonostot tesz oda, mint pl. 'TRX-2026-05-18-984371'. A partnernev egy masik (partner_name) mezoben szerepel, de gyakran csonkitva (max 22 karakter), nagybetuvel, ekezet nelkul, es valoasanloleg AZ ETHIOPIAI INTRO ANI 'PELDA KORLATOLT FE' lesz beleirva. A fuzzy egyezesi score igy gyakran 0.65 alatt marad.

A megoldas: Unicredit-specifikus extractor, amelyik elobb az additional_info mezobol probaja kinyerni a partnernek hosszabb verziojat, es ha ott sincs, akkor a partner-celszamla-tortenetbol (partner_account_history) lekerdezi, melyik partner szokott errol a szamlarol fizetni. Ezzel a Unicredit-aranyt feltornaztuk 71%-rol 88%-ra.

A tobbi 4 bank pontossaga

OTP: 94%, K&H: 93%, Raiffeisen: 92%, Erste: 91%. A 4 bank atlaga 92,5%, amit kerekitunk 92%-ra a publikus dokumentaciakban.

A banki kivonat parositas nem latvanyos feladat, de ez tipikusan 20-30 oranyi konyveloi munkat tunkak el havonta egy 200-tetelu cegtnel. Ez 240,000-360,000 Ft megtakaritas evente.