The Ultimate Guide to OCPI (Open Charge Point Interface)
OCPI explained for CPOs and eMSPs: the 8 core modules, 2.1.1 vs 2.2.1, and bilateral vs Hub roaming — so you can launch cross-network EV charging faster.
What is OCPI?
The Open Charge Point Interface (OCPI) is an open, royalty-free protocol for communication between EV charging backends — most commonly between a Charge Point Operator (CPO) and an e-Mobility Service Provider (eMSP). Where OCPP connects a charger to its management system, OCPI connects one operator's platform to another so that drivers can charge across networks, sessions are reported, and costs are settled. It is maintained by the EV Roaming Foundation and used by roaming Hubs across Europe and beyond.
In practice, OCPI is the protocol that makes EV roaming work: it lets an eMSP's app authorize a session on a CPO's charger, receive live status, and get a final Charge Detail Record (CDR) for billing — without either side exposing its internal systems.
OCPI vs OCPP in the operator stack
OCPP and OCPI are complementary layers, not competitors: OCPP connects a charger to its management system, while OCPI connects one operator's backend to another for roaming. A full operator stack runs both.
- OCPP is "south-bound": charger ↔ CSMS/CPMS. It carries connector status, transactions, meter values, and remote commands.
- OCPI is "east-west": CPO backend ↔ eMSP backend (or Hub). It carries Locations, Sessions, Tariffs, CDRs, Tokens, and roaming Commands.
A complete operator stack typically runs an OCPP gateway for charger connectivity and an OCPI layer for roaming and partner exchange. For a deeper breakdown, see OCPI vs OCPP: what's the difference and when to use each.
OCPI modules explained
OCPI is organised into modules defined in the official OCPI specification, and a party implements only the modules its role requires. The core set covers Locations, Sessions, CDRs, Tariffs, Tokens, Commands, Credentials, and Versions:
- Locations — the charging sites, EVSEs, and connectors a CPO publishes to partners.
- Sessions — live and historical charging sessions shared during roaming.
- CDRs — the final, billable Charge Detail Record for a completed session. See OCPI CDR and billing integration for how these flow into settlement.
- Tariffs — pricing structures (per kWh, per minute, flat, parking) attached to connectors.
- Tokens — the RFID cards, app IDs, or contract IDs an eMSP issues to drivers.
- Commands — remote actions such as StartSession, StopSession, ReserveNow, and UnlockConnector.
- Credentials — the handshake that registers two parties and exchanges tokens and endpoints.
- Versions — the discovery endpoint that lists which OCPI versions and modules a party supports.
OCPI 2.2.1 adds ChargingProfiles (smart-charging exchange) and HubClientInfo (party presence through a Hub).
What is the difference between OCPI 2.1.1 and 2.2.1?
OCPI 2.2.1 adds first-class Hub support, a ChargingProfiles module, and alpha-2 country codes, while 2.1.1 remains the most widely deployed version with no native Hub role. The headline differences:
| Aspect | OCPI 2.1.1 | OCPI 2.2.1 |
|---|---|---|
| Party identification | party_id (with alpha-3 country code) | country_code (alpha-2) + party_id |
| Hub support | None native | First-class (HubClientInfo, OCPI-from-* / OCPI-to-* routing headers) |
| Smart charging | Not included | ChargingProfiles module |
| Status codes | Core 1xxx–3xxx | Adds 4xxx Hub-specific errors |
| Typical use | Most widely deployed | Current recommended version |
OCPI 2.1.1
The most widely deployed version. It uses alpha-3 country codes, identifies parties by party_id, and covers the core roaming modules (Locations, Sessions, CDRs, Tariffs, Tokens, Commands, Credentials, Versions). It has no native Hub role.
OCPI 2.2.1
The current recommended version. Key changes:
- Party identification moves to
country_code(alpha-2) +party_id. - Hubs become a first-class concept (with HubClientInfo and
OCPI-from-*/OCPI-to-*routing headers). - ChargingProfiles module for smart-charging coordination.
- Additional 4xxx status codes for Hub-specific errors.
Choosing a version is usually dictated by your roaming partners and Hubs (Hubject, Gireve, e-Clearing.net). Many CPOs need to speak both versions to different partners at the same time — which is exactly where a gateway layer that normalises versions earns its place.
How OCPI roaming works
OCPI roaming works as a sequence: two backends complete a Credentials handshake, the CPO publishes Locations, the eMSP's Token is authorized in real time, Sessions stream live, and a final CDR closes the session for billing.
- Credentials handshake — two parties exchange tokens and base URLs via the Versions and Credentials endpoints, establishing a trusted, authenticated connection.
- Locations push/pull — the CPO publishes its sites, EVSEs, and connectors so the eMSP can show them in its app.
- Real-time authorization — when a driver starts a session, the CPO checks the eMSP's Token (in real time or against a cached list) before energising the connector.
- Sessions — the CPO streams session updates so the eMSP can show live charging state.
- CDR — when the session ends, the CPO sends a final CDR. The eMSP bills the driver; settlement follows commercial agreements.
OCPI supports both push (sender notifies receiver of changes) and pull (receiver fetches with pagination headers), so partners can pick the pattern that fits their volume and freshness needs.
What is the difference between bilateral and Hub-based roaming?
Bilateral roaming is a direct OCPI connection to each partner, while Hub-based roaming connects you once to a Hub to reach many partners. Most operators run a mix of both:
- Bilateral (peer-to-peer) — you run a direct OCPI connection to each partner. Maximum control, but every new partner is another integration to operate.
- Hub-based — you connect once to a Hub (Hubject, Gireve, e-Clearing.net) and reach many partners through it. Faster coverage, less per-partner work, but you inherit the Hub's conventions and a layer of indirection.
Most serious CPOs end up with a mix: a few strategic bilateral links plus Hub coverage for the long tail. Keeping that topology clean — rather than bolting partner logic into your core product — is the operational challenge OCPI infrastructure is meant to solve. See OCPI roaming launch blueprint for a staged approach.
Why does OCPI matter?
OCPI is what turns isolated charging networks into a single, usable experience for drivers. For operators it means:
- Reach — your chargers become visible and usable to every roaming partner's customers.
- Neutrality — an open standard avoids lock-in to a single roaming vendor or Hub.
- Clean settlement — standardised CDRs make cross-network billing auditable.
- Operational separation — roaming, tokens, tariffs, and CDR workflows stay decoupled from charger connectivity.
Frequently asked questions
Short answers for operators evaluating this topic in production.
Continue evaluation
Turn this topic into a buying decision
Roaming and billing decisions usually expose the platform constraints underneath them. Use these pages to evaluate the architecture and vendor model behind the workflow.
Checklist
OCPI rollout checklist
Plan partner onboarding, sync, tariffs, and launch gating before a roaming rollout.
Checklist
EV charging software RFP checklist
Stress-test data export, rollout support, and integration terms before signing.
Comparisons
Browse EV Cloud comparisons
Compare EV Cloud against ChargePoint, Driivz, Monta, AMPECO, and other EV charging vendors.
Stay ahead of infrastructure changes
Join 2,000+ CPOs getting our insights on OCPP strategy, roaming, and scaling EV charging operations securely.
No fluff. Just hard-won infrastructure lessons. Unsubscribe anytime.
Related posts

OCPI CDR Billing: How EV Roaming Payments Work
OCPI CDR billing explained: how Charge Detail Records flow between CPOs and eMSPs, with 5 acceptance tests so settlement clears without cent-level disputes.

OCPI vs OCPP: What's the Difference and When to Use Each
OCPI vs OCPP explained: OCPP connects chargers to a backend, OCPI links platforms for roaming. Use the 6-row decision matrix to scope the right protocol fast.

OCPI 2.1.1 vs 2.2.1: Which Version Should You Implement?
OCPI 2.1.1 vs 2.2.1 for EV roaming: 6 key differences across hub messaging, charging profiles, and partner compatibility to help CPOs ship the right version.