Перейти до змісту

Платежі (Payments)

Рух грошових коштів: отримання від клієнтів, виплати постачальникам, планові (зарплата, податки, оренда).


1. Документи

Документ Призначення
IncomingPayment Вхідний платіж (клієнт → організація)
OutgoingPayment Вихідний платіж (організація → постачальник)
PlannedPayment Плановий платіж (зарплата, податки, оренда)

2. IncomingPayment — вхідний платіж

Поля

  • number / date
  • organizationOrganization (хто отримує)
  • clientClient (хто платить)
  • payment_type — enum:
  • bank — банк (settlement_account) ✅
  • cash — готівка (cashbox) ✅
  • card — картка (еквайринг) ⏳ deferred у Sprint 4 cash-bank-audit (потребує acquiring_account / 333.5)
  • offset — залік (без грошей) ⏳ deferred у Sprint 4 cash-bank-audit (наразі через JournalEntry)
  • settlement_account / cashbox — куди зараховано
  • currency + amount
  • purpose — призначення платежу (текст з банку)
  • external_id — ID транзакції з банку / POS

Прив'язка до документів (payment_matching)

  • invoice_allocations — розподіл суми по Invoice:
    IncomingPayment: 10 000 UAH
    ├── Invoice #42: 6 000 UAH
    ├── Invoice #43: 3 500 UAH
    └── unallocated: 500 UAH (аванс)
    

Проводки (Posting)

Дт 311 (р/р) / 301 (каса) — Кт 361 (розрахунки з покупцями)

3. OutgoingPayment — вихідний платіж

Поля (симетрично до вхідного)

  • clientClient (отримувач — постачальник, співробітник)
  • payment_typebank / cash / card
  • settlement_account / cashbox — звідки
  • amount + currency
  • purpose
  • expense_itemExpenseItem (якщо не прив'язано до PurchaseInvoice)
  • is_approved — підтверджено керівником (для контролю)

Прив'язка

  • purchase_invoice_allocations — розподіл по PurchaseInvoice
  • Можна без прив'язки — для господарських витрат (канцтовари, ПММ з готівки)

Проводки

Дт 631 (розрахунки з постачальниками) — Кт 311 / 301
або
Дт 92 / 93 / 94 (витрати) — Кт 311 / 301 (прямі витрати)

4. PlannedPayment — плановий платіж

Бюджет руху грошей: скільки і коли треба заплатити.

  • planned_date — дата планованого платежу
  • organizationOrganization
  • contractorClient (або employee)
  • amount + currency
  • payment_category — enum:
  • salary (зарплата)
  • tax (податки)
  • rent (оренда)
  • utilities (комуналка)
  • supplier (постачальники)
  • loan (кредити)
  • other
  • statusplanned / approved / paid / cancelled
  • source_document → (PurchaseInvoice, Contract) — що породило
  • actual_paymentOutgoingPayment (якщо вже сплачено)

Регістр: PlannedPaymentJournal (Payment Calendar).


5. Payment Calendar (UI-процес)

Компонент: PaymentCalendarPage (process)

Функції: - Відображення планованих платежів на тиждень/місяць - Порівняння з фактом (planned vs actual) - Прогноз касових розривів (cash gap) - Approval workflow для OutgoingPayment


6. Bank reconciliation — узгодження виписок ✅

Окремий процес — повна сторінка bank-reconciliation: - Імпорт банківської виписки у 4 форматах: SWIFT MT940, ISO 20022 camt.053, PrivatBank CSV, Monobank CSV - Авто-зіставлення з існуючими IncomingPayment / OutgoingPayment за сумою + IBAN/ЄДРПОУ + датою (±3 дні), confidence scoring 0.40 … 1.00 - Per-tenant BankMatchingRule для recurring платежів (orенда, абонплата) → defaults для створення draft платежів - Kanban UI з 3 колонок (Pending / Matched / Created)

Sprint 5 з плану аудиту cash-bank shipped 2026-05-10. Деталі: bank-reconciliation.md.


🔮 Deferred / Ideas

Auto-matching by AI (NLP on purpose field)

Мотивація: з призначення платежу можна вгадати Invoice Чому відкладено: потрібне навчання на історії + UA-мова Trigger: >500 неприв'язаних платежів / місяць

Multi-stage approval for large outgoing payments

Мотивація: платіж >X грн вимагає approval керівника + фіндиректора Чому відкладено: workflow engine Trigger: корпоративний клієнт

Payment forecasting (30-90 day outlook)

Мотивація: фіндиректор планує ліквідність Чому відкладено: потрібен прогноз оплат з Invoice.due_date Trigger: запит CFO

Automated salary payment batches

Мотивація: генерація пакета платежів для зарплати за рахунок списку співробітників Чому відкладено: інтеграція з HRM модулем Trigger: клієнт >50 співробітників

Cryptocurrency payments (USDT, ETH)

Мотивація: B2B-експорт, IT-послуги Чому відкладено: legal + бухоблік в UAH Trigger: клієнт з IT-сектору


Пов'язане