Skip to content
Use case

OCPI roaming and interoperability testing

Test OCPI 2.1.1 / 2.2.1 / 2.3.0 without waiting for roaming partners. OCPPLab runs CPO and eMSP endpoints as your counterparty and connects to OCPI hubs as a CPO or eMSP party, so you can validate interoperability before going live.
Animated example of an OCPI 2.2.1 roaming exchange: your CPO platform reads GET /versions from an OCPPLab eMSP counterparty and selects 2.2.1, sends token B with POST /credentials and receives token C (tokens masked), and the partner turns Connected. The CPO then pushes PUT /locations/{country_code}/{party_id}/{location_id}, PUT /sessions/{country_code}/{party_id}/{session_id} with status ACTIVE, and POST /cdrs, whose CDR carries total_cost. OCPPLab plays the eMSP side; it does not emulate a hub. Example exchange, not a captured one.

What is OCPI?

The Open Charge Point Interface (OCPI) is the protocol that enables EV roaming between Charge Point Operators (CPOs) and e-Mobility Service Providers (eMSPs). It handles everything from location data sharing to real-time authorization, charging session management, and billing reconciliation through Charge Detail Records (CDRs).

Testing OCPI is challenging because it requires two parties. You can’t test your CPO implementation without an eMSP to connect to, and vice versa.

OCPI modules by version

  • OCPI 2.1.1

    Credentials
    Supported
    Locations
    Supported
    Sessions
    Supported
    CDRs
    Supported
    Tariffs
    Supported
    Tokens
    Supported
    Commands
    Supported
    ChargingProfiles
    Not in this version
    HubClientInfo
    Not in this version
    Bookings
    Not in this version
  • OCPI 2.2.1

    Credentials
    Supported
    Locations
    Supported
    Sessions
    Supported
    CDRs
    Supported
    Tariffs
    Supported
    Tokens
    Supported
    Commands
    Supported
    ChargingProfiles
    Supported
    HubClientInfo
    Supported
    Bookings
    Not in this version
  • OCPI 2.3.0Adds the PTP role and hub_party_id

    Credentials
    Supported
    Locations
    Supported
    Sessions
    Supported
    CDRs
    Supported
    Tariffs
    Supported
    Tokens
    Supported
    Commands
    Supported
    ChargingProfiles
    Supported
    HubClientInfo
    Supported
    Bookings
    OCPPLab extension, not an OCPI module

OCPI hub connections

If you roam through an OCPI hub such as GIREVE, OCPPLab connects to it as a CPO or eMSP party (or as a PTP on OCPI 2.3.0), validates HubClientInfo and hub-routed objects, and runs the OCPI conformance cases. It does not emulate the hub, and it does not speak Hubject’s OICP.

  • Connect to an OCPI hub as a CPO or eMSP party (PTP on OCPI 2.3.0)
  • Run the credentials handshake, including hub_party_id on OCPI 2.3.0
  • Validate HubClientInfo and the objects the hub routes from other parties
  • Check session and CDR exchange over the hub connection
  • Score GIREVE workbook cases from the OCPI conformance suite

Testing scenarios

CPO registration

POST /credentials

Test the full OCPI credentials handshake between your platform and an OCPPLab eMSP counterparty.

Cross-platform authorization

POST /tokens/{token_uid}/authorize

Validate that tokens from partner eMSPs are correctly authorized at your charge points.

Real-time session sync

PATCH /sessions/{country_code}/{party_id}/{session_id}

Verify that charging sessions are correctly reported to roaming partners in real time.

CDR reconciliation

POST /cdrs

Test CDR generation, transmission, and reconciliation across CPO-eMSP boundaries.

Location data updates

PATCH /locations/{country_code}/{party_id}/{location_id}/{evse_uid}

Validate that EVSE availability, pricing, and connector status propagate correctly.

Error handling

status_code 2001 Invalid or missing parameters

Test how your platform answers malformed requests and missing parameters, and that it returns status_code 2001 for them.

Test roaming without roaming partners

Run CPO and eMSP counterparties and connect to hubs. Validate OCPI end-to-end.

Start OCPI testingBook technical demo

Last updated: