Sheet 03 · CaseApostol CSMS: 100+ versions, 4 instances and real drivers' money
A charging station management system the studio designed, built and maintains. Europe (Stripe, AFIR) and Russia (YooKassa, 54-FZ) in one codebase, each brand on its own instance.
In productionsince 10 Jul 2026 · ocpp-css.com
The problemAn operator needs a system of its own rather than renting someone else's cloud: stations from different vendors and protocol versions, payment without registration, revenue straight to the station owner, roaming with other networks.
How it is builtStation protocols are a separate C++20 service. Business logic and money live in PostgreSQL in one transaction: the calculation, the invoice and the payment never diverge. A new brand is deployed from a signed license in 5–10 minutes.
The resultThree brands on two markets and a test server. The retail service ocpp-css.com has been taking drivers' payments into station owners' accounts since July. The software is registered with Rospatent.
4instances on one version, v1.23.3as of 24 Oct 2026
100+versions released since March 2026version history in the repository, 24 Oct 2026
100,000+charging sessions on one instance: none left open, no double chargespecification, part 0, cl. 7.3
100,000+lines of business logic in PL/pgSQLproduct composition and metrics
3OCPP station protocol versions: 1.5, 1.6, 2.0.1specification, part IV, block OCS
2OCPI roaming versions: 2.2.1 and 2.3.0, both rolesspecification, part IV, block OCI
3payment providers: Stripe, YooKassa, CloudPaymentsspecification, part IV, block PAY
30+domain entities, 100+ tablesspecification, part IV, cl. 1.6