Roaming hubs
Prove your roaming hub routes OCPI correctly, release after release.
ChargerDojo joins your hub as a CPO and an eMSP test party, sends a Session through it and checks every forward against the OCPI routing rules. Run it after each hub release or on a daily schedule, send partners the report as evidence, and point joining partners to ChargerDojo to test their own endpoint first.
OCPI 2.2, 2.2.1 and 2.3.0. Sample hub report free, no login.Identity $149 a month; relay and schedules $499.Every check that can fail is proven to fail on a hub that breaks its rule.
Roaming hub relay · OCPI 2.2.1
20 passed · 2 not tested- 03GET/credentials200 · 3 ms
- 05GET/hubclientinfo200 · 6 ms
- 08PUT/sessions/NL/CDA/{session_id}201 · 42 ms
- 09INSession forwarded to the eMSP test party
- 11PATCH/sessions/NL/CDA/{session_id}2001 · 23 ms
- 12INPATCH forwarded to the eMSP test party
- 13PUT/sessions/NL/CDA/{session_id}4001 · 5 ms
Both sides of the hub
Two test parties, one Session, your hub in the middle.
You create a CPO and an eMSP test party in your test environment and issue a registration token for each. We register both with your hub, then watch what reaches each side.
The CPO test party pushes a Session addressed to the eMSP test party. Your hub must forward it with the same routing headers and a new X-Request-ID, and carry the receiver's answer back addressed to the CPO test party.
Then a PATCH the receiver refuses, whose error must come back unchanged, and a PUT to a party your hub does not know, where the report records whether your hub answers 4001.
Identity runs first: both test parties read your Credentials and, on 2.2 and 2.2.1, your HubClientInfo list. The hub guide walks through each step.
- CPO test party to hub.PUT
/sessionsReply:201 · 1000 - Hub to eMSP test party.PUT
/sessionsReply:201 · 1000 - CPO test party to hub.PATCH
/sessionsReply:200 · 2001 - Hub to eMSP test party.PATCH
/sessionsReply:200 · 2001 - CPO test party to hub.PUT
/sessionsReply:200 · 4001
Before these, both test parties read your Credentials and your HubClientInfo list.
All nine calls
- CPO test party to hub.GET
/credentialsReply:200 · 1000 - eMSP test party to hub.GET
/credentialsReply:200 · 1000 - CPO test party to hub.GET
/hubclientinfoReply:200 · 1000 - eMSP test party to hub.GET
/hubclientinfoReply:200 · 1000 - CPO test party to hub.PUT
/sessionsReply:201 · 1000 - Hub to eMSP test party.PUT
/sessionsReply:201 · 1000 - CPO test party to hub.PATCH
/sessionsReply:200 · 2001 - Hub to eMSP test party.PATCH
/sessionsReply:200 · 2001 - CPO test party to hub.PUT
/sessionsReply:200 · 4001
OCPI versions
Moving to OCPI 2.3.0 changes how your hub names itself.
On 2.2 and 2.2.1 a hub reports only the role HUB and lists its parties in HubClientInfo. On 2.3.0 it names itself in hub_party_id and lists the parties it reaches in its roles. The checks follow the version you register. OCPI 2.1.1 has no routing headers, so hub testing starts at 2.2.
| What we read | OCPI 2.2 and 2.2.1 | OCPI 2.3.0 |
|---|---|---|
| How the hub names itself | The role HUB in its Credentials | hub_party_id in its Credentials |
| Who it reports | Each test party in its HubClientInfo list | The parties reachable through it, in its Credentials roles |
The report
Every forward, graded against its clause.
Your report lists the request the CPO test party sent and the one your hub forwarded as separate ledger rows. Below, the two sit side by side, each forwarded header marked unchanged or new.
- Routing
U01The forward names the eMSP test party in TO and the CPO test party in FROM.U02The answer comes back addressed to the CPO test party.U03The forward carries a new X-Request-ID.U04The X-Correlation-ID reaches the receiver unchanged.U05The hub leaves last_updated unchanged.- Errors
U06The receiver's status reaches the CPO test party unchanged.- Identity
U07On 2.2 and 2.2.1 the hub reports itself only as role HUB.U08On 2.2 and 2.2.1 its HubClientInfo list is a list; a test party left off it is not tested.U09On 2.3.0 it names itself in hub_party_id.U10No Credentials, Versions or HubClientInfo request or response from the hub carries a routing header.- Recorded, not graded
U11A request the hub accepted reached the eMSP test party.U12A party the hub does not know is answered 4001.U13On 2.3.0 the hub lists the parties reachable through it in its roles.
Sent by the CPO test party
PUT /ocpi/2.2.1/sessions/NL/CDA/JRN-RELAY-e9936b5a
X-Request-ID: a053d292-9630-446a-9090-3fb2208e2528
X-Correlation-ID: 2aaf9ffb-35aa-4954-ad41-a1ed3e874052
OCPI-from-party-id: CDA
OCPI-to-party-id: CDB
"last_updated": "2026-11-05T20:26:01.601Z"Forwarded to the eMSP test party
new X-Request-ID: 35e3882d-9cb7-45a1-9e74-11d7b4d3f1c8
unchanged X-Correlation-ID: 2aaf9ffb-35aa-4954-ad41-a1ed3e874052
unchanged OCPI-from-party-id: CDA
unchanged OCPI-to-party-id: CDB
unchanged "last_updated": "2026-11-05T20:26:01.601Z"Checks that catch real faults
Every check that can fail has caught the fault it names.
We run each of those checks against a copy of our reference hub with exactly that rule broken, and it must fail. The unbroken hub must pass. On OCPI 2.2, 2.2.1 and 2.3.0.
- Copies the incoming X-Request-ID onto the forward
U03 - Replaces the X-Correlation-ID on the forward
U04 - Rewrites last_updated on the forwarded Session
U05 - Swallows the receiver's error and answers success
U06 - On 2.2 and 2.2.1 lists its connected parties as its own roles
U07
After the first run
Keep it running as your hub changes.
On a schedule
Relay runs daily or weekly, and the connection shows what the last run found. On Automate, $499 a month.
Staging and production
Automate, $499 a month, holds 20 endpoints. Each hub environment uses two, one per test party, so up to 10 environments.
A report your partners can open
Send a share link to a CPO or eMSP waiting to connect, and they read the same evidence you do.
More than one hub
Need more than 20 endpoints? Certified, our quoted plan, covers identity and relay across all your hubs. It issues no certificate. Write to sales@chargerdojo.com.
Partner onboarding Launching soon
You will onboard your hub's partners in ChargerDojo.
Launching soon, not live today. You will invite the CPOs and eMSPs joining your hub, give them your test list and see each partner's latest shared verdict.
Invite your partners
You will invite each CPO or eMSP by email or link, and each will sign up into its own organisation.
Your test list
Each partner will run the journeys you list for your hub, from its own account.
Every partner's status
Your partner list will show the latest verdict each partner chose to share. You will see nothing a partner did not share.
Evidence for go-live
Each partner's shared report will be its go-live evidence: the run, every exchange and every verdict, behind one link.
Before you register.
Which of our environments do you connect to?
The one you register. Each test party is a registration with your hub, at the versions URL and token you give it, so a staging hub works the same as production.
Can our partners test before they reach our onboarding?
Yes. Each CPO or eMSP joining your hub can test its own endpoint against ChargerDojo before your test phase starts, and open the share link you send them to your hub's report.
Do you support client certificates or an IP allow-list?
Not today. Your test environment must accept our test parties with token authentication alone. If your hub needs a client certificate or a fixed source IP, talk to us.
sales@chargerdojo.comIs a report a certification?
No. ChargerDojo is an independent testing tool. A report records the checks that ran against your hub.
We are joining a hub as a CPO or eMSP. Is this for us?
This page tests the hub itself. To test your own endpoint before a hub connects you, prepare your next hub integration.
Prepare your next hub integrationWhich plan do we need?
Identity needs one registration on Integrate, $149 a month. Relay and schedules need a CPO and an eMSP registration on Automate, $499 a month.
Talk to us about your hub, or register it today.
The sample hub report is free, no login. Your hub's report has the same shape.