Skip to main content
engineeringApril 2, 2026

OCPI 2.1.1 vs 2.2.1: Which Version Should You Implement?

Compare OCPI 2.1.1 and OCPI 2.2.1 for EV charging roaming. Understand module differences, partner compatibility, and how CPOs and eMSPs should choose a target version.

At a glance

OCPI 2.2.1 is usually the better target for new work, but OCPI 2.1.1 still matters because partner ecosystems remain uneven. Most teams need a compatibility strategy, not a single-version assumption.

CPO integration teamseMSP platform teamsRoaming architects
  • OCPI 2.1.1 remains common in production partner ecosystems.
  • OCPI 2.2.1 brings stronger support for hubs, charging profiles, and more mature platform workflows.
  • Partner compatibility should drive rollout planning more than internal preference alone.
  • A flexible implementation strategy beats a one-version-only architecture.
Y
Yacine El Azrak
Co-founder & CEO
2 min read

The short answer

If you are starting a new implementation today, target OCPI 2.2.1.

If you are integrating with real roaming partners, expect to support 2.1.1 as well.

That is the practical answer for most teams.

Why 2.2.1 is usually the better target

OCPI 2.2.1 is the more mature version for modern roaming scenarios because it improves:

  • Hub-oriented workflows
  • Charging profile support
  • Platform registration flows
  • Tariff and ecosystem modeling

It is the version you would choose if you were designing purely from first principles.

Why 2.1.1 still matters

Because EV charging is not designed from first principles every quarter.

It is shaped by:

  • Existing partner deployments
  • Legacy bilateral integrations
  • Slow-moving operational change
  • Commercial constraints

That means many teams still meet 2.1.1 first in production, even if 2.2.1 is the better long-term destination.

What changes in the decision process

The real decision is not:

Which version do we like more?

It is:

Which version do our partners require, and how do we avoid hard-coding that decision into the rest of our platform?

That second question leads to better architecture.

A practical rule of thumb

Choose 2.2.1 as your primary target when:

  • You are building a new roaming layer
  • You expect hub workflows to matter
  • You want a cleaner long-term implementation path

Maintain 2.1.1 compatibility when:

  • Existing partners already depend on it
  • You are entering mature roaming ecosystems
  • Commercial rollout matters more than version purity

The implementation mistake to avoid

Do not let version-specific payload handling leak into every internal service.

Instead:

  1. Normalize the objects you care about internally
  2. Handle version translation at the protocol boundary
  3. Keep partner-specific compatibility logic isolated

This is the same architectural pattern that helps teams survive OCPP 1.6 and 2.0.1 coexistence cleanly.

How this affects CPOs and eMSPs

For CPOs, the biggest issue is usually partner compatibility and operational onboarding.

For eMSPs, the issue is often breadth of interoperability and the operational cost of supporting many counterparties with inconsistent maturity.

In both cases, version flexibility is more useful than version idealism.

Related reading

If you are still mapping how roaming fits into your broader stack, read:

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.

From content to rollout

Need help applying this in a live EV charging stack?

EV Cloud helps operators connect chargers, roaming partners, and internal platforms without rewriting their entire backend. Use the guide above for strategy, then use the product pages below for rollout planning.