Developers

Integrate at the edges. Keep the core canonical.

Meters, payment rails, ERP, billing, GIS and SCADA connect through explicit contracts so application logic does not become vendor-specific.

Contracts

Primary integration boundaries

BoundaryCore methods / fieldsPurpose
Meter adapteridentify, decodeRawPayload, normalizeReading, normalizeStatus, capabilitiesOEM protocol → canonical water data
Payment adapterparseCallback, verifyTransaction, normalizeTransaction, parseReversalPayment rail → normalized payment evidence
Event envelopetype, schema_version, workspace_id, aggregate_id, occurred_at, correlation_idState transition → auditable event
External referencesource_system, source_id, source_timestamp, ingestion timestampLegacy IDs remain traceable
Water balanceinflow, outputs, authorized consumption, storage, gaps, confidenceMeasured inputs → explainable variance

Example trace

WaterPesa’s canonical accountability chain

Trace

bulk inflow → zone / DMA → distribution assets → customer / estate meters → validated consumption → tariff → billed amount → payment → allocation → variance → incident → work order → repair → post-intervention reading → litres recovered → revenue recovered