CPO Migration

How CPOs move from peer-to-peer OCPI connections to ChargeIndia Hub.

This guide explains what changes for CPOs when you move from bilateral OCPI to roaming through ChargeIndia Hub. The protocol stays OCPI 2.2.1. The topology, credentials, and operational model change.

Why Hub

In peer-to-peer roaming, each CPO↔eMSP pair maintains its own credentials, URLs, and integration. On ChargeIndia Hub, you maintain one credentials relationship with the Hub. The Hub fans out your catalog and session data to connected eMSPs based on routing rules.

AspectPeer-to-peerChargeIndia Hub
CredentialsOne exchange per eMSPOne exchange with Hub (IN / CIH, role HUB)
Traffic pathDirect CPO ↔ eMSPAlways via Hub
Catalog / sessions / CDRsPush to each eMSPPush to Hub only
CommandsCallback to each eMSPAsync results to Hub callback URL

OCPI version

ChargeIndia Hub supports OCPI 2.2.1 only. If your bilateral integrations use 2.1.1 or 2.2, plan a version cutover as part of migration.

Prerequisites

  1. Commercial onboarding - Contact your ChargeIndia account team for an assigned country_code, party_id, and initial Hub token. See Onboarding.
  2. Credentials exchange - Complete mutual registration with Hub. Remote role is HUB, not EMSP. See Authentication.
  3. Receiver URLs - Provide tokens/commands receiver URLs where Hub should call your platform.
  4. Routing enablement - Roaming only flows for pairs with an active routing rule. See Routing.
  5. Connection health - Poll GET /ocpi/2.2.1/hubclientinfo before relying on live traffic. See Connection Health.

What changes

AreaPeer-to-peerVia Hub
Outbound connectionsN eMSP endpoint configsOne Hub base URL
Locations / tariffs / sessions / CDRsPush to each eMSPPush to Hub only
Token authorizeReceive from each eMSPReceive from Hub only
CommandsReceive from each eMSP; callback to eMSPReceive from Hub; async results to Hub callback URL
Inbound OCPI peerEach eMSPHub only

Outbound calls to Hub

ModuleMethodsWhat to push
LocationsPUT, PATCHLocations, EVSEs, connectors
TariffsPUTPricing
SessionsPUT, PATCHSession state updates
CDRsPOSTCompleted charge detail records

Every session must include a valid cdr_token with the eMSP's country_code and party_id. Without it, the Hub cannot route async session/CDR delivery.

Push using your own CPO country_code and party_id in URL paths and object bodies, do not use Hub (CIH). See Hub Receiver Identity (CPO).

Inbound from Hub

ModuleMethodPurpose
TokensPUT .../authorizeRealtime authorization from eMSP via Hub
CommandsPOST .../commands/{command}Remote start, stop, reserve, cancel
VersionsGET /ocpi/versionsHub health monitoring

Return immediate ACCEPTED or REJECTED for commands, then deliver async results to Hub, not directly to the eMSP:

POST /ocpi/2.2.1/commands/callback/{command_id}

Hub-initiated catalog pull

Hub operators can manually pull your Locations and Tariffs catalog. Ensure your version details advertise locations and tariffs with role SENDER if you rely on pull for initial sync.

Migration checklist

  • [ ] Bilateral eMSP credentials decommissioned (or idle) after Hub cutover per eMSP
  • [ ] Single Hub credentials exchange complete
  • [ ] All outbound pushes pointed at Hub base URL
  • [ ] Locations pushed for all public charge points (or Hub admin pull configured)
  • [ ] Location/tariff/session pushes use your CPO {country_code}/{party_id} in path and body
  • [ ] Tariffs pushed for pricing context
  • [ ] Token authorize endpoint live
  • [ ] Command receiver endpoints live
  • [ ] Command async callbacks sent to Hub callback URL (not eMSP)
  • [ ] Session PUT/PATCH with correct cdr_token on every session
  • [ ] CDR POST after session completion
  • [ ] GET /ocpi/versions reachable for health checks

Migrate incrementally - one eMSP at a time.

  1. Onboard to Hub - Complete credentials exchange while keeping bilateral links active.
  2. Enable routing - Ask your account team to enable routing for the first target eMSP.
  3. Certify E2E - Run full session lifecycle via Hub. See Session Lifecycle and CPO Certification.
  4. Switch traffic - Move production roaming for that eMSP to Hub.
  5. Decommission P2P - Revoke bilateral credentials for that eMSP.
  6. Repeat for the next eMSP.

Do not cut over before routing

Without an active routing rule, your pushes are stored but not exposed to unrouted eMSPs.