OCPI testing tool

OCPI testing that finds roaming bugs before your partners do

ChargerDojo is the OCPI testing tool that catches what a compliance check misses: strict conformance suites across OCPI 2.1.1, 2.2.1 and 2.3.0, and a partner that misbehaves on purpose.

Free sandbox, no login. Your own endpoint needs a plan.

A real Charging Journey on our sandbox

The live run appears here as soon as the shared sandbox answers.

Sandbox eMSP · OCPI 2.2.1

ChargerDojo

plays the charge point operator

No call yet

No energy yet

Energy sent to your platform

No price yet

Price sent, excl. VAT

Sandbox eMSP

stands in for your platform

No call yet

Next run

Booking opens when the live run starts.

Or break it on purpose

Drivers could see their charge go down: 2.50 kWh, then 2.25.

Updates sent during an outage never reach your platform.

Broken records, such as a session that ends before it starts, land in your data.

Open an example report

OCPI charging journeys

Rehearse the bad day.

Passing a compliance check is not the same as working with your partner. Run the full charge, break it on purpose, check the bill.

Full charge

Authorize, charge, stop, bill.

Run the journey

Rough session

Drop updates. Send the meter backwards.

Test the bad day

CDR evidence

Delivery, corrections and receiver answers.

Open the billing desk

Rehearse Gireve and Plugsurfing Roam behaviour, pinned to their published guides, on the Automate plan.

Prepare your endpoint for hub onboarding

Can it behave like a real EVSE on a bad day?

Yes. A charging journey can drop status updates, send a meter that goes backwards, deliver a CDR late, or lose the connection mid-session, on a real or accelerated clock. You watch how your platform recovers, which is the part a clean conformance pass never shows you.

Run a rough session

Conformance evidence

Open the evidence.

Every finding carries the exchange that proves it.

We test the tester.

Every conformance check runs against our own peers, broken on purpose for each OCPI version. A check none of them can turn red fails our build, not yours.

  • accepts-any-token
  • mutable-cdr
  • success-code-on-rejection

Does the hub pass the partner's error back?

Real finding · OCPI 2.2.1

RequestPATCH/ocpi/2.2.1/sessions/NL/CDA/JRN-RELAY-MISS-177cb655
{
  "kwh": 1,
  "last_updated": "2026-10-26T11:05:35.132Z"
}
ResponseHTTP 200 · 114 ms
{
  "status_code": 2001,
  "status_message": "Session with ID JRN-RELAY-MISS-177cb655 not found",
  "timestamp": "2026-10-26T11:04:37Z"
}
Rule
The Hub SHALL then forward this error to the client which sent the request (when the request was not a Broadcast Push).
SHALLstatus_codes.asciidoc § 4xxx: Hub errors
Verdict
Passed

The eMSP test party answered status_code 2001 and the CPO test party received 2001.

Open the full report

A charging journey, step by step

  1. chooseThe outcome to prove.
  2. previewThe exact plan, hashed before anything is sent.
  3. runOn a real or accelerated clock.
  4. inspectRequest, response, rule and verdict.

A SHALL fails, a SHOULD warns, and a check we could not observe is never a pass. Share the report with your partner, no account needed.

Does a run fail on every spec deviation?

No, and that is deliberate. A SHALL violation fails the run. A SHOULD divergence is reported but never fatal, because a partner who ignores a SHOULD is still compliant, and failing them for it sends your team off to fix code that was never broken. Every check names the rule it encodes and carries the exchange that proves it, so a finding is always something you can act on.

How runs are graded
See a real plan ledger
Plan ledger of a sandbox charging journey, captured from the product

OCPI 2.1.1, 2.2.1 and 2.3.0 coverage

Your role. Your version.

Every module of OCPI 2.1.1, 2.2.1 and 2.3.0 has a suite. The EVRoaming Foundation's test tool, EVRTT, does not test OCPI 2.1.1.

  • CPO: Prove your sender side.
  • eMSP: Prove your receiver.
  • Payment terminal provider: Prove Direct Payment end to end.
  • Hub: Prove routing and relay.

OCPI 2.1.17 modules

  1. Credentials
  2. Locations
  3. Sessions
  4. CDRs
  5. Tariffs
  6. Tokens
  7. Commands

OCPI 2.2.110 modules

  1. Credentials
  2. Locations
  3. Sessions
  4. CDRs
  5. Tariffs
  6. Tokens
  7. Commands
  8. Charging Profiles
  9. Hub Client Info
  10. Paymentsext

OCPI 2.3.011 modules

  1. Credentials
  2. Locations
  3. Sessions
  4. CDRs
  5. Tariffs
  6. Tokens
  7. Commands
  8. Charging Profiles
  9. Hub Client Info
  10. Payments
  11. Bookingsext

+ MCS, truck and reefer fields

New in that versionPublished extension

Can we test megawatt charging and truck fields?

Yes, on OCPI 2.3.0, which is the version that adds them. The 2.3.0 Locations and Booking suites validate payloads carrying the MCS connector, the truck vehicle types, and the refrigeration outlet for reefer trailers, against your endpoint or our sandbox endpoints. Earlier OCPI versions do not define these fields, so a heavy-duty charging deadline is a 2.3.0 conversation.

See version coverage

Can we prove out Direct Payment ahead of a PTP rollout?

Yes. There is an OCPI 2.3.0 Payments conformance suite, and the tool now runs a full Direct Payment terminal journey: it plays the CPO and takes a payment terminal end to end, terminal registration, the tariff and pre-authorization, the charge, and the Financial Advice Confirmation with its full, partial, and failed capture outcomes, reconciling the captured amount against the CDR. It runs on OCPI 2.3.0 and on the 2.2.1 Direct Payment working document, with the payment verdict kept separate from the charging one. Against our sandbox endpoints it is free; against your own endpoint it is on the Automate plan.

Run a Direct Payment journey
Module matrix as a table
OCPI conformance suite coverage by module and version
Module2.1.12.2.12.3.0
Versions endpointSuiteSuiteSuite
CredentialsSuiteSuiteSuite
LocationsSuiteSuiteSuite
SessionsSuiteSuiteSuite
CDRsSuiteSuiteSuite
TariffsSuiteSuiteSuite
TokensSuiteSuiteSuite
CommandsSuiteSuiteSuite
Charging ProfilesNot in this versionSuiteSuite
Hub Client InfoNot in this versionSuiteSuite
PaymentsNot in this versionSuite, Direct Payment extensionSuite
BookingsNot in this versionNot in this versionSuite, Booking extension
MCS connector (megawatt charging)Not in this versionNot in this versionSuite
Truck vehicle typesNot in this versionNot in this versionSuite
Reefer power outletNot in this versionNot in this versionSuite

Free OCPI simulator and tools

Start before the endpoint.

Learn the exchange before you build it.

Simulator

A full roaming exchange in your browser.

Watch it run

Payload Workbench

Check a Location, Session or CDR's fields before you send it.

Validate a payload

Learning Hub

Guided scenarios, a module explorer and real message flows.

Start learning

Free · no key

OCPI in your coding agent

ChargerDojo's MCP server answers version, credentials and module questions from the same registry the simulator obeys.

Connect a coding agent
claude mcp add --transport http chargerdojo https://mcp.chargerdojo.com

> What changed between OCPI 2.2.1 and 2.3.0?

Frequently asked questions

What do you need from us to test our OCPI endpoint?

Three things: the versions URL you would hand to a roaming partner, a CREDENTIALS_TOKEN_A so the real registration handshake can run against you, and whether you are the CPO or the eMSP side, which decides the interfaces we exercise. Point it at a test environment rather than production, because a run writes real data into your system and reads it back. Testing your own endpoint belongs to the paid plans.

Register an endpoint

Our endpoint runs on localhost or inside a private network. Can we still test it?

The tool is hosted and talks to your system server to server, so the endpoint has to be reachable from the internet. If it lives on localhost or inside a VPC, a tunnel takes minutes to set up. There is also a connector you download and run next to your service, which removes even that step and never exposes it. CORS does not matter here: that is a browser policy, and these calls never come from a browser.

Connect a local endpoint

We build charging software for clients. Can we test their endpoints?

Yes. Register each client endpoint as its own target and run the same suites and journeys against it, with a report per endpoint you can hand over. If you are testing on behalf of several clients, talk to us about which plan fits.

How endpoint testing works

Can my partner read a report without an account?

Yes. A run can be shared as a read-only report link that carries the plan hash, the rule behind each check, and sanitized evidence, with no login required to read it. A sandbox run stays shareable on every tier, marked as one. Running the suite against your own endpoint takes a plan, and so does the link: a link to a report about your own endpoint stops opening when the plan ends, while a shared sandbox report stays readable within report retention. Deleting your account revokes every report link you created, even where your organisation keeps the report itself.

Share a report

Can CI block a merge on a failed run?

Yes. The same plan the browser runs can be compiled and started from a pipeline with an API key, and retries are idempotent, so a flaky network never double-starts a run. CI automation belongs to the paid plans.

Gate your build on a run

Run it before you ship it.

Start with a free sandbox run. Point it at your endpoint, send the report to your partner, then keep it green from CI and on a schedule.

What is free, and what is paid?

Simulating and learning are free, with no login. Run the simulator, inspect message payloads, run conformance suites against our sandbox endpoints, and share the resulting report, all at no cost. Testing against your own endpoints and CI automation belong to the paid plans. Links to reports about your own endpoint open only while you have a current plan. Sandbox report links stay readable within report retention.

Open EV Charging Simulator