A driver with one charging app expects it to work at chargers from many different companies. Behind that simple experience, the charging network and the driver's app provider must exchange a lot of information: where the chargers are, whether they are free, what they cost, whether the driver may charge and how much energy was delivered. The most widely used open protocol for this exchange is OCPI, the Open Charge Point Interface.
This guide explains what OCPI does, how its modules fit together, which versions exist and what you need to start roaming.
- OCPI connects the back-office systems of charge point operators (CPOs) and e-mobility service providers (eMSPs).
- It is a free, open REST/JSON protocol maintained by the EVRoaming Foundation.
- Modules cover locations, tariffs, tokens, sessions, charge detail records, remote commands and smart charging.
- OCPI works peer-to-peer or through roaming hubs, and complements OCPP rather than replacing it.
What problem does OCPI solve?
Without a common protocol, every CPO and every eMSP would need a custom integration with each partner. With dozens of networks and hundreds of providers in a single country, that quickly becomes unmanageable. OCPI defines one standard way to share the data needed for roaming, so a single implementation can connect to many partners. The two roles involved are explained in our guide to CPO vs eMSP.
How OCPI works
OCPI is a set of REST APIs exchanged over HTTPS, with JSON messages. Each party exposes endpoints for the modules it supports and calls the other party's endpoints. Data flows in both directions: the CPO pushes location and session updates, while the eMSP can request data or send commands. A credentials handshake at the start exchanges tokens and agreed versions, so each side knows how to authenticate and which modules the other supports.
The main OCPI modules
| Module | What it does | Typical direction |
|---|---|---|
| Credentials and Versions | Registration, authentication tokens and version negotiation | Both |
| Locations | Sites, EVSEs and connectors with status, power and opening hours | CPO to eMSP |
| Tariffs | Price structures for energy, time, parking and flat fees | CPO to eMSP |
| Tokens | RFID cards and app identifiers allowed to charge | eMSP to CPO |
| Sessions | Live charging sessions with energy and cost so far | CPO to eMSP |
| CDRs | Final charge detail records used for billing | CPO to eMSP |
| Commands | Remote start, stop, reservation and unlock requests | eMSP to CPO |
| ChargingProfiles | Smart charging requests from the eMSP side | eMSP to CPO |
| HubClientInfo | Information about parties connected through a hub | Hub to parties |
A roaming session with OCPI, step by step
- The CPO publishes its locations and tariffs; the eMSP shows them in its app.
- The driver taps an RFID card or starts charging in the app. The CPO checks the token, either against a list received through the Tokens module or with a real-time authorisation request.
- The CPO's CSMS starts the session on the charger over OCPP and reports progress to the eMSP through the Sessions module.
- When charging ends, the CPO sends a CDR with energy, duration and cost.
- The eMSP bills the driver and the CPO invoices the eMSP according to their agreement.
OCPI versions
| Version | Main points |
|---|---|
| 2.1.1 | First widely adopted stable version; still found in many integrations |
| 2.2 / 2.2.1 | Support for hubs and multiple roles per party, improved tariffs, charging profiles; the most common version today |
| 2.3.0 | The latest major release, with additions aimed at EU AFIR requirements such as ad hoc payment information and richer location data |
Partners must agree on a common version. A platform that supports several versions can connect to more partners without asking them to upgrade.
Peer-to-peer or through a hub?
OCPI can be used directly between two parties, which gives full control and avoids hub fees, or through a roaming hub, where each party connects once and reaches many partners. Hubs also handle contracts and financial clearing. Many CPOs start with a hub for reach and add direct connections with their largest partners.
OCPI and OCPP: complementary, not competing
OCPP connects a charger to its management system; OCPI connects that management system to other companies' systems. A roaming session therefore uses both: OCPP between charger and CPO, OCPI between CPO and eMSP. Our article on OCPI vs OCPP compares them in detail, and our plain-language guide to OCPP covers the charger side.
OCPI and regulation
Roaming is increasingly expected by regulators. In the EU, the AFIR regulation requires open data on charging points, and OCPI 2.3.0 adds features that help meet these rules. In the UK, the Public Charge Point Regulations 2023 require open data to be provided using OCPI. Even where it is not mandatory, roaming support is often a condition of public funding and tenders.
How to get started with OCPI
- Choose your role: CPO, eMSP or both.
- Check your platform: your CSMS should support OCPI natively, ideally several versions.
- Clean your data: accurate location, connector and tariff data is essential, because partners display it to their drivers.
- Choose partners: decide between a hub, direct connections or both.
- Test and go live: run test sessions with each partner and reconcile the first CDRs carefully.
Frequently asked questions
Is OCPI free to use?
Yes. The OCPI specification is open and free to implement. Costs come from implementation, roaming hub fees and commercial agreements with partners.
Who maintains OCPI?
OCPI is maintained by the EVRoaming Foundation, a non-profit organisation that publishes new versions and supports its adoption.
Do I need OCPI if I only have a few chargers?
Not necessarily at first, but roaming can significantly increase utilisation. Many small operators connect through a hub or a platform that already supports OCPI.
Which OCPI version should I use?
OCPI 2.2.1 is the most widely used today. If you operate in the EU, plan for 2.3.0 to support AFIR-related data, and keep 2.1.1 for partners that have not upgraded.
Connect your chargers to eMSPs and roaming hubs through OCPI from the same platform that runs your OCPP network. See Üreticy's roaming features or contact us to plan your first connections.
