Skip to content

Architecture at a glance

Vecnet consolidates two payment rails. The authoritative reference is vecnet_citizen_flow.mmd and the architecture PDF; the themed diagram below is rebuilt from it.

System flow

In words:

  • Online payers go Web/App → Vecnet Hosted Checkout (which embeds the Tonder Lite SDK v2.0) → Tonder API → Tonder Backend, which sends a Transaction Notification back to the Vecnet Listener.
  • In-person payers go Terminal POS → Menta API → Menta Backend, which also notifies the Listener.
  • The Listener writes to the Vecnet DB (Postgres) and hands off to the Webhook Manager, which notifies the portal/merchant.
  • The Vecnet Backend runs Finanzas (the finances module) and Liquidaciones (settlements). The Frontend exposes the Hosted Checkout, Dashboard, Admin Panel, and System Control Panel.

Two load-bearing principles

Carry these through every design decision.

1 · Acquirer-as-plugin

Tonder and Menta are two rails behind one abstraction. The finances engine treats each rail as an ACQUIRER entity. Adding a third rail later must not require schema or core-flow changes — only a new acquirer record + fee rules + a notification adapter. See The two rails.

2 · One correlation ID per transaction

Every payment — CNP or CP — carries a single correlation ID from the rail notification, through the Listener, into the journal, the ledger entries, and the settlement record. This is the thread that makes reconciliation tractable. Design every table and event around it.

Where each piece is documented

Architecture boxDocumented in
Hosted CheckoutHosted Checkout
DashboardMerchant Dashboard
Admin Panel + System Control PanelVecnet Admin platform
Listener + Webhook ManagerRails integration
FinanzasFinances flows
LiquidacionesSettlements · Cycle engine
Vecnet DBData model

Vecnet — Build Spec v0.2 · Obsidian Terminal