Practice an OCPI situation

Start with a person and an event. Inspect the exchange when the story needs it.

Follow a flow

Every message in an exchange that works, from the first request to the record it leaves.

  • Complete EV charging session

    Follow an authored charging session from the driver arriving at the charger through energy delivery and billing between participating roaming platforms.

    Start here · 8 min · Authored exampleOCPI 2.1.1, 2.2.1 and 2.3.0Endpoint test: Does the complete journey work?
  • One card, two countries

    A driver with a German contract charges at a Dutch operator's charger. The CPO and the eMSP are in different countries, and each object names the country and party that owns it.

    Technical · 5 min · Authored exampleOCPI 2.1.1, 2.2.1 and 2.3.0No endpoint test
  • Remote start and stop

    An eMSP remotely starts and stops an authored charging session on behalf of a driver, using OCPI's asynchronous command exchange.

    Technical · 5 min · Authored exampleOCPI 2.1.1, 2.2.1 and 2.3.0Endpoint test: Can I start and stop remotely?
  • Roaming connection setup

    How a CPO and eMSP discover each other, exchange credentials, and synchronize locations and tokens to enable roaming.

    Technical · 3 min · Authored exampleOCPI 2.1.1, 2.2.1 and 2.3.0Endpoint test: Can I connect a roaming partner?
  • Tariff and billing

    How pricing flows from tariff publication through to the final invoice. Covers the full billing lifecycle from CPO pricing to driver payment.

    Advanced · 4 min · Authored exampleOCPI 2.1.1, 2.2.1 and 2.3.0Endpoint test: Is my billing correct?

Diagnose a problem

A refusal, a missing update or a bill that does not match: what the exchange shows, and which parts the spec decides.

  • Charged twice for one charge

    In this authored billing example, a dropped connection leads to a fresh CDR ID and two customer charges. A Credit CDR illustrates correction of a sent record.

    Advanced · 4 min · Authored exampleOCPI 2.1.1, 2.2.1 and 2.3.0No endpoint test
  • The authorization that says no

    A driver taps an expired card and the charge is refused. The lesson is what a refusal actually looks like on the wire: a successful exchange carrying a 'no', not an error.

    Advanced · 4 min · Authored exampleOCPI 2.1.1, 2.2.1 and 2.3.0No endpoint test
  • The bill was higher than the price I saw

    A driver sees a daytime energy rate before a time-of-day tariff changes. This authored example follows the difference between the displayed rate and the customer bill.

    Advanced · 5 min · Authored exampleOCPI 2.1.1, 2.2.1 and 2.3.0No endpoint test
  • The Session that never closes

    A charge starts and meters normally, then the eMSP does not receive its closing update. Follow the missing-message observation and the reconciliation it needs.

    Advanced · 5 min · Authored exampleOCPI 2.1.1, 2.2.1 and 2.3.0No endpoint test

Read an example or run an exchange

A guided scenario divides a message sequence into linked steps. Each step has an authored explanation, example and Sources, with technical details available when you want them.

The message examples are authored examples. Nothing runs until you choose Run. Where a sandbox action is available, its panel shows the admitted run and receiver observations separately. Test this flow opens a charging journey setup for an explicit endpoint run.

Where to go next

Common questions

What does a guided scenario show?

Scenarios show authored examples, explanations and Sources for a message sequence. Choose a step to read its part of the exchange, then open technical details to inspect the example payload.

When does the sandbox run?

Nothing runs until you choose Run. Where a step offers a sandbox action, its panel identifies the request and the receiver before you start. After admission, it shows the observed response and captured evidence separately from the authored example.

How do I test my own endpoint?

Use Test this flow where the scenario offers it. The link opens a charging journey setup with the matching flow. Choose your target there and explicitly start the run; opening the setup does not run it.