OCPI vs OCPP
People mix these up because both show up in the same charging session. They sit on different hops.
OCPP is the charger talking to the CSMS that operates it. WebSocket, JSON arrays, BootNotification, transactions. Spec: Open Charge Alliance.
OCPI is two backends talking so a driver from network A can use a charger on network B. HTTPS, Locations, Tokens, Sessions, CDRs, Commands. Spec: EVRoaming Foundation, OCPI 2.2.1.
Samples: OCPP 1.6J, OCPP 2.0.1, OCPI sample messages.
Side by side
| OCPP | OCPI | |
|---|---|---|
| Job | Operate a charger | Roam between networks |
| Who talks | Charge point ↔ CSMS | CPO ↔ eMSP (or a hub) |
| Transport | WebSocket + JSON arrays | HTTPS + JSON resources |
| Maintainer | Open Charge Alliance | EVRoaming Foundation |
| Versions you will meet | 1.6J, 2.0.1, 2.1 | 2.1.1, 2.2.1 (official), 2.3.0 |
| Start a session from an app | RemoteStartTransaction / RequestStartTransaction | START_SESSION (then OCPP on the charger) |
| Chargeflux today | 1.6J and 2.0.1 simulator | Not built — roadmap |
One driver session, both protocols
eMSP app
-- OCPI START_SESSION --> CPO backend
-- OCPP RemoteStart --> charger
<-- StartTransaction / TransactionEvent --
<-- OCPI Sessions PATCH --
<-- OCPI CDR ------------If you only test OCPI, you never see a missing CALLRESULT. If you only test OCPP, you never see a token that the CPO has not pushed to the eMSP. Dual-stack products need both.
What not to do
- Do not send BootNotification to an OCPI credentials URL.
- Do not expect a charger to speak OCPI.
- Do not treat OCPI Locations.status as an OCPP connector status — the enums differ.
More
FAQ
What is the difference between OCPI and OCPP?
OCPP is charger to CSMS (WebSocket). OCPI is CPO backend to eMSP backend (HTTPS) so a driver from one network can charge on another. They stack; they do not replace each other.
Who publishes each specification?
OCPP: Open Charge Alliance. OCPI: EVRoaming Foundation.
Can I test both in Chargeflux?
OCPP 1.6J and 2.0.1 yes. OCPI is on the roadmap and not implemented. You can still test the OCPP remote-start that a CPO would send after OCPI START_SESSION.
Last reviewed August 2026 · Chargeflux.io