Negotiate the highest mutually supported OCPI version and module set when connecting to a platform with mismatched OCPI support
domain: evroaming.org · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Call GET on the counterparty's versions endpoint (the one fixed URL both sides know from onboarding) to retrieve the list of OCPI versions they support, each with its own endpoint URL.
Compare that list against your own supported versions and select the highest version both platforms have in common — do not assume both sides support 2.2.1 just because that's the current spec revision.
GET the chosen version's endpoint list to discover which modules and roles (sender/receiver) the counterparty actually implements at that version, since module support is optional and varies by implementation.
Complete the credentials handshake at the negotiated version, storing the counterparty's per-module endpoint URLs for that version rather than hardcoding URL patterns.
Handle counterparties that only support an older version (e.g. 2.1.1) by falling back to that version's module shapes for that specific relationship, while still using 2.2.1 elsewhere, rather than assuming one global version across all partners.
Known gotchas
Two platforms both claiming 2.2.1 support can still differ meaningfully — 2.2.1 was published with errata/interpretation differences across implementers, and a module considered mandatory by one party may be treated as optional by another.
The version and endpoints discovery calls happen before or during credential registration and use a different trust context than later module calls — conflating these phases is a common cause of registration failures.
A counterparty's endpoint list can change over time (e.g. adding a new module); integrations that cache the endpoint list once at registration and never refresh it will miss newly available modules or fail against removed ones.
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?