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.
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
Next run
Booking opens when the live run starts.
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.
Rehearse Gireve and Plugsurfing Roam behaviour, pinned to their published guides, on the Automate plan.
Prepare your endpoint for hub onboardingCan 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 sessionConformance 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
{
"kwh": 1,
"last_updated": "2026-10-26T11:05:35.132Z"
}{
"status_code": 2001,
"status_message": "Session with ID JRN-RELAY-MISS-177cb655 not found",
"timestamp": "2026-10-26T11:04:37Z"
}The Hub SHALL then forward this error to the client which sent the request (when the request was not a Broadcast Push).
The eMSP test party answered status_code 2001 and the CPO test party received 2001.
A charging journey, step by step
- chooseThe outcome to prove.
- previewThe exact plan, hashed before anything is sent.
- runOn a real or accelerated clock.
- 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 gradedSee a real plan ledger

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
- Credentials
- Locations
- Sessions
- CDRs
- Tariffs
- Tokens
- Commands
OCPI 2.2.110 modules
- Credentials
- Locations
- Sessions
- CDRs
- Tariffs
- Tokens
- Commands
- Charging Profiles
- Hub Client Info
- Paymentsext
OCPI 2.3.011 modules
- Credentials
- Locations
- Sessions
- CDRs
- Tariffs
- Tokens
- Commands
- Charging Profiles
- Hub Client Info
- Payments
- 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 coverageCan 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 journeyModule matrix as a table
| Module | 2.1.1 | 2.2.1 | 2.3.0 |
|---|---|---|---|
| Versions endpoint | Suite | Suite | Suite |
| Credentials | Suite | Suite | Suite |
| Locations | Suite | Suite | Suite |
| Sessions | Suite | Suite | Suite |
| CDRs | Suite | Suite | Suite |
| Tariffs | Suite | Suite | Suite |
| Tokens | Suite | Suite | Suite |
| Commands | Suite | Suite | Suite |
| Charging Profiles | Not in this version | Suite | Suite |
| Hub Client Info | Not in this version | Suite | Suite |
| Payments | Not in this version | Suite, Direct Payment extension | Suite |
| Bookings | Not in this version | Not in this version | Suite, Booking extension |
| MCS connector (megawatt charging) | Not in this version | Not in this version | Suite |
| Truck vehicle types | Not in this version | Not in this version | Suite |
| Reefer power outlet | Not in this version | Not in this version | Suite |
Free OCPI simulator and tools
Start before the endpoint.
Learn the exchange before you build it.
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 agentclaude mcp add --transport http chargerdojo https://mcp.chargerdojo.comcodex mcp add chargerdojo --url https://mcp.chargerdojo.com{ "mcpServers": { "chargerdojo": { "url": "https://mcp.chargerdojo.com" } } }in ~/.cursor/mcp.json> 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 endpointOur 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 endpointWe 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 worksCan 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 reportCan 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 runRun 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