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

OCPPOCPI
JobOperate a chargerRoam between networks
Who talksCharge point ↔ CSMSCPO ↔ eMSP (or a hub)
TransportWebSocket + JSON arraysHTTPS + JSON resources
MaintainerOpen Charge AllianceEVRoaming Foundation
Versions you will meet1.6J, 2.0.1, 2.12.1.1, 2.2.1 (official), 2.3.0
Start a session from an appRemoteStartTransaction / RequestStartTransactionSTART_SESSION (then OCPP on the charger)
Chargeflux today1.6J and 2.0.1 simulatorNot 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