Apostol CSMS — the engine that runs ChargeMeCar
ChargeMeCar is a retail service on Apostol CSMS: a charging station management platform with three OCPP versions, OCPI roaming, Stripe Connect payments and several independent operators on one instance. This page says plainly what is in production, what is ready and what is still planned.
How ChargeMeCar relates to the platform
Three things worth knowing - for transparency, not for the brochure.
Same engine, no fork
ChargeMeCar runs the same software build as every other brand on the platform, under a cryptographically signed brand licence. Platform releases reach it the same way they reach everyone: one update command, health checks, a rollback of the same shape.
Operationally independent
Our Stripe account, our infrastructure, our legal entity - FROG IT SARL, Nice. The platform owner does not operate ChargeMeCar and cannot touch its money: payments are charged in station owners' Stripe accounts, and the brand's own data is encrypted under a per-brand key.
Open foundation, documented core
The platform stands on an open foundation published under a free licence on GitHub: the transport framework and the PostgreSQL platform layer. What a brand buys or licenses is the charging-domain layer on top of it - and the core it depends on can be read by anyone.
What the platform does - with the honest status of each line
Three levels, deliberately kept apart: in production - running on live stations with real money; ready - implemented and covered by tests and the station simulator, but without production volume yet; planned - on the roadmap, not shipping.
Stations
- OCPP 1.6 - the platform's main protocol; any station speaking it connects without adaptationIn production
- OCPP 2.0.1 - 12 of 16 functional blocks complete, 4 partialReady
- OCPP 1.5 - legacy fleetsReady
- Mixed fleet: the version is detected automatically, commands are translated between formatsReady
- Self-service connection by the owner - about 15 minutes; the station registers at its first handshakeIn production
- Remote start, stop, cable unlock, reboot, enable and decommission - from the portal, the driver app or by QRIn production
- Firmware updates from a link or the platform's file library; a station security event logReady
- Bulk operations on a fleet, a site hierarchy (region → city → site → zone)Planned
Tariffs and money
- Five billable services: per kWh, per minute of charging, idle after the end, reservation, pauseIn production
- Tariffs by schedule: weekday, hour, day/nightReady
- Stripe and Stripe Connect: direct charges in the station owner's account, receipts in the owner's name, refundsReady
- Ad-hoc QR payment without registration - the EU AFIR requirement; end-to-end tested against real StripeReady
- Platform commission withheld from each payment; a monthly itemised statement to the ownerIn production
- Prepaid balance of an organisation, per-session per-kWh billing for own fleetsIn production
- Double-entry accounting on internal accounts - the sums add up by constructionIn production
- Dynamic pricing (by demand, by electricity price)Planned
Operators and drivers
- Several independent operators on one instance, each sees only its ownIn production
- Roles: owner, administrator, operator, engineer, support, driver, partnerIn production
- Partners - a sub-network inside an operator, with revenue accountingReady
- Driver web app: map with filters, start and stop, session progress, history, saved cards, RFID, reservations - eight languagesIn production
- Notifications: push, e-mail, in-app; bulk messagesReady
- AI support assistant inside the driver app, acting strictly within the driver's rightsReady
- Native apps in the App Store and Google PlayPlanned
Roaming and integrations
- OCPI 2.2.1 and 2.3.0 at the same time, in both roles: charge point operator and e-mobility service providerReady
- Publishing stations, tariffs, sessions and settlement records to a partner network through a hub - passed a live exchangeIn production
- Receiving partner tokens and commands in live exchangePartial
- Contracts with Hubject and Gireve - a commercial step for the operator; the technical prerequisite is in placePlanned
- Open REST API - hundreds of methods with an OpenAPI specification, real-time events, webhooksIn production
- Accounting and ERP connectorsPlanned
Operations and security
- Operator dashboard: stations by state, energy, revenue, utilisation, alarms; an incident console with a live event feedIn production
- Delivery in containers; install, zero-downtime update and rollback - four deployments on one pipelineIn production
- OAuth 2.0 sign-in, including Google; browser session protection; three independent access-control levels; audit journalsIn production
- Report export to Excel/CSV, a report builder, utilisation and availability metricsPlanned
- External monitoring and alerting, point-in-time backupPlanned
- ISO 15118 Plug & Charge, mutual certificatesPlanned
Open standards, no vendor lock-in
The platform speaks the protocols every modern charging network uses - OCPP towards the hardware, OCPI towards other networks. Any OCPP-compliant station works, whoever made it.
OCPP - three versions, one runtime
- OCPP 1.5 (SOAP)
Legacy compatibility for older equipment still in service.
- OCPP 1.6 (JSON / WebSocket)
The platform's main protocol: a station that speaks it connects without adaptation.
- OCPP 2.0.1
The three-tier model Station → EVSE → Connector, a persistent device model, security events, firmware management. 12 of 16 functional blocks complete.
The version is detected at connection time. Commands from the portal are translated 1.6 ↔ 2.0.1, so a mixed fleet is managed in one interface.
OCPI - roaming with both active versions
- CPO role
Exposes the brand's stations, tariffs and sessions to partner networks - publishing through a hub has passed a live exchange.
- eMSP role
Accepts partner drivers' tokens and remote-start commands over the same channel - implemented and tested, not yet proven in a live exchange.
Hardware-neutral by design
Any OCPP 1.5 / 1.6 / 2.0.1 station - including a competitor's. A mixed fleet is consolidated in one portal with no reflashing: the OCPP server address changes in the station's own web interface.
Built around the EU regulatory perimeter
Stripe Connect direct charges into the station owner's account, ad-hoc QR payment for AFIR, strong customer authentication under PSD2, GDPR in the data layer.
Stripe Connect
«Connect with Stripe» from the portal - your own Stripe account, any country; direct charges in the owner's account; the receipt is issued from the owner's account in the owner's name; the platform's commission is withheld from each payment, with a monthly statement for the books; refunds through the same channel.
AFIR - ad-hoc payment
Publicly accessible points must accept payment from any driver without a contract or an app: the driver scans the QR code on the station, sees the tariff, pays by card and charges. Implemented and tested end to end against real Stripe.
PSD2 / 3-D Secure
Strong customer authentication for European cards is enforced by Stripe; no payment path bypasses it.
GDPR
Data stays in the EU, the driver can delete the account from the app, consents are recorded, every action leaves an audit trail.
A thin transport, the logic in the database
Two layers in the core: a single-loop transport written in modern C++ - HTTP, WebSocket, TLS, OCPP - and the business logic written in PostgreSQL itself. A deliberate engineering choice, with its arguments stated.
One event loop for HTTP and PostgreSQL
Database connections live in the same event loop as HTTP and WebSocket connections: a request is one round trip to the database, one transaction. Tens of thousands of stations hold persistent connections to a single node with stable latency.
Money integrity by construction
Cost calculation, balance checks, double-spend protection and invoicing run inside one database transaction - atomicity is PostgreSQL's guarantee, not application code. A finished session with a lost invoice, or a double charge on concurrent requests, is excluded by design.
Brand licence and manifest
A brand runs under a cryptographically signed licence - name, legal entity, market, domain, tax credentials - that cannot be reissued without the platform owner. Look, payment provider, language, currency and maps live in a brand manifest edited in the portal, applied without a rebuild.
Open foundation
The transport framework and the PostgreSQL platform layer are published under a free licence on GitHub; the charging-domain layer on top is the product. Delivery is Docker Compose on the brand's own server, with the database unreachable from the outer network segment.
Where the platform trails the enterprise leaders - and says so
None of these prevents operating and earning today; all of them are planned work.
ISO 15118 Plug & Charge
The car authorises itself, without a card or an app. Relevant for premium DC fleets and part of some national subsidy schemes.
Native mobile apps
Drivers use a web app that installs on a phone in one tap; presence in the App Store and Google Play is the next step.
Site-level load balancing
Power profiles are passed to a station and stored; distributing power between the stations of one site and reacting to grid peaks is planned.
Fleet operations at scale
Bulk firmware and settings operations, a site hierarchy, report export and a report builder - what an operator of fifty-plus stations asks for.
Roaming hubs
The eMSP half of OCPI in a live exchange, and contracts with Hubject and Gireve.
Want the platform under your own brand?
A new brand deploys on a prepared server in minutes - with its own domain, legal entity, payment provider and look. Manufacturers and operators: the white-label programme is on the next page.