Appearance
Architecture Overview
MyHoreca Pay processes Indonesian bank statements and allocates payments into Syrve/iiko.
Bounded contexts
- BankStatements — import, detect format, parse, normalize
- CounterpartyMatching — map bank counterparty names to Syrve/iiko entities
- PaymentAllocation — match payments to documents, partial/overpayment handling
- Syrve/iiko —
IikoConnectortransport; application services in Infrastructure - Auth — JWT, roles, permissions, audit trail
See Identity and IDs for UUID v7 rules for domain entity identifiers.
Pipeline
text
any bank file
→ bank adapter (per bank/format)
→ NormalizedBankTransaction
→ counterparty matching
→ payment allocation preview/confirm
→ Syrve/iiko posting (approval gate + idempotency)Optional inbox channel (design accepted, not implemented): Telegram bot → same import pipeline after an Active cabinet↔Telegram link. See ADR: Telegram bank-statement inbox v1. WhatsApp is out of scope for v1.
Deployment topology
- Test: UI
https://pay.ru.tuna.am, APIhttps://apipay.ru.tuna.am - Production: UI
https://pay.myhoreca.id, APIhttps://pay.myhoreca.id/api - External traffic enters through YARP Gateway, which proxies
/api/*to API service.