Уявіть бухгалтера, у якого 4 клієнт-банки відкриті паралельно: Raiffeisen Bank Аваль, Ощадбанк, ОТП Bank, ПУМБ. Плюс Кредобанк збоку. Щоранку — експорт за вчорашній день: один банк віддає .dbf, інший — те саме, третій — ще один формат, Кредобанк віддає старий .xls. Excel відкриває їх криво — кодування не те, числа з нулями та крапками злипаються в одну колонку, дати їдуть. Половина дня йде на те, щоб перенести 200 рядків у журнал Odoo вручну. Нижче — 5 готових модулів, кожен з яких парсить експорт свого банку і кладе чисті рядки у журнал бухобліку.
Чому DBF і старий XLS — це досі реальність українського бухобліку
Файлові формати клієнт-банків — це історичний шар, який не зникне ще роками. DBF з'явився як індустріальний стандарт у 90-х, його продовжують підтримувати банки, бо їх клієнти-юр.особи інтегрували його в свої облікові системи багато років тому. Кодування cp1251 — теж артефакт того часу. Excel «бачить» такий файл, але не розуміє його — кириличні поля перетворюються на крякозябри, числові поля з ведучими нулями втрачають формат.
Кредобанк віддає виписку у форматі XLS — той самий старий BIFF-формат до Excel 2007. Це теж легасі: сучасні версії Excel його ще відкривають, але багато програмних бібліотек з ним вже не працюють.
Висновок простий: банки не змінять формат експорту лише тому, що бухгалтеру зручніше було б отримати JSON. Тому або ви будуєте власний парсер під кожен банк — або берете готовий модуль, який цей парсер вже містить.
5 банків і модулі — таблиця
| Банк | Формат експорту | Модуль | Apps Store |
|---|---|---|---|
| Raiffeisen Bank Аваль | DBF (стандартний DBF-формат банку) | kw_bank_statement_aval_dbf | link |
| Ощадбанк | DBF | kw_bank_statement_oschadbank_dbf | link |
| ОТП Bank | DBF | kw_bank_statement_otp_dbf | link |
| ПУМБ | DBF | kw_bank_statement_pumb_dbf | link |
| Кредобанк | XLS | kw_bank_statement_kredobank_xls | link |
Усі 5 модулів сумісні з Odoo 17.0, 18.0 та 19.0. Доступні на Odoo Apps Store.
Що відбувається при імпорті — на високому рівні
Для всіх 5 модулів процес однаковий з точки зору бухгалтера:
- У клієнт-банку обираєте період — отримуєте файл (DBF для Аваля / Ощаду / ОТП / ПУМБ або XLS для Кредобанку).
- У банківському журналі Odoo натискаєте «Імпорт виписки» і обираєте файл.
- Модуль читає файл, перевіряє чи всі обов'язкові поля присутні, і створює рядки у журналі.
- Кожен рядок отримує дату, суму, опис, а також — там де банк віддає такі дані — реквізити контрагента (назва, ЄДРПОУ, IBAN/рахунок).
- Якщо контрагента вже є у вашій базі (за ЄДРПОУ або номером рахунку) — модуль прив'яже транзакцію автоматично. Якщо ні — рядок усе одно створиться, бухгалтер допасує контрагента вручну при звірці.
Повторний імпорт того самого файлу не створить дублів. Кожна транзакція має унікальний ідентифікатор — система перевіряє його при кожному імпорті. Можна сміливо перевантажити перетинний період — у журналі з'являться лише нові рядки.
Що однакове, а що відрізняється між модулями
Однакове в усіх 5 модулях:
- Захист від дублів — повторний імпорт того самого файлу не створить дубльованих рядків.
- Прив'язка до контрагента: за ЄДРПОУ, потім за банківським рахунком, потім автоматичне створення нового контрагента (опційно).
- Збереження оригінальних даних виписки для аудиту — видно, як саме банк назвав контрагента у джерелі.
- Чітка перевірка структури файлу: якщо банк змінить формат експорту, модуль скаже про це явно, замість тихо пропускати дані.
Відрізняється — бо банки експортують по-різному:
- Raiffeisen Bank Аваль — модуль фільтрує рядки за номером рахунку журналу: один журнал = один рахунок. Якщо у вас кілька рахунків в Авалі, заведіть журнал на кожен.
- Ощадбанк — мінімалістичний експорт DBF з усім необхідним: дата, сума, номер документа, призначення.
- ОТП Bank — має логіку перемикання за напрямком операції: модуль розпізнає, що при дебеті контрагент — це одна сторона, при кредиті — інша, і витягує реквізити з відповідних полів. Підтримує і старі експорти (з номером рахунку), і нові (з IBAN).
- ПУМБ — має свій унікальний формат дати, не як решта українських банків. Модуль про це знає і парсить правильно.
- Кредобанк — формат XLS. Напрямок (дебет/кредит) визначається українським текстовим маркером у файлі, тому експорт має бути в українській локалі (для UA-клієнтів це і так типово).
Як налаштувати імпорт у журналі
У бухгалтерських налаштуваннях Odoo на банківському журналі обираєте формат — Aval (DBF), Oschadbank (DBF), OTP Bank (DBF), PUMB (DBF) або Kredobank (XLS) — залежно від банку. Після цього у вікні журналу з'являється кнопка «Імпорт виписки», через яку завантажуєте файл. Один журнал = один формат = типово один рахунок (особливо у випадку Аваля, де є фільтр за рахунком у самому модулі).
Якщо у компанії кілька банків — заведіть окремий журнал на кожен. Так само, якщо у одному банку кілька рахунків — окремий журнал на рахунок.
Як почати
Усі 5 модулів опубліковані на Odoo Apps Store і сумісні з Odoo 17/18/19. Якщо ви робите впровадження самостійно — встановлюєте потрібний модуль, обираєте формат на банківському журналі, готово. Базові залежності підтягнуться автоматично.
Якщо потрібна допомога з налаштуванням, прив'язкою існуючих контрагентів за ЄДРПОУ, або міграцією історичних виписок з минулих років — KitWorks Systems працює з Odoo з 2015 року, у нас 100+ активних клієнтів і 158 публічних модулів на Apps Store. Напишіть через контактну форму або подивіться повний каталог модулів.
Якщо ваш банк — не з цих 5, а Monobank, Privat24 для бізнесу чи Укргазбанк — для них є готові API-інтеграції замість файлового імпорту. Якщо хочете огляд всіх 13 банків, які покриває KitWorks, — є окрема hub-стаття про 13 банків + Odoo з табличною навігацією.