> For the complete documentation index, see [llms.txt](https://docs.enapi.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.enapi.com/technical-documentation/supported-ocpi-modules-and-capabilities.md).

# Supported OCPI Modules and Capabilities

### Core modules

<table><thead><tr><th width="138.0078125">Module</th><th width="421.2421875">Description</th><th>Direction</th></tr></thead><tbody><tr><td><strong>Credentials</strong></td><td>Authentication and connection setup during handshake</td><td>Bidirectional</td></tr><tr><td><strong>Locations</strong></td><td>Charging station data: locations, EVSEs, connectors, status</td><td>CPO → eMSP / data aggregator / PTP</td></tr><tr><td><strong>Tariffs</strong></td><td>Pricing information for charging sessions</td><td>CPO → eMSP/ data aggregator / PTP</td></tr><tr><td><strong>Tokens</strong></td><td>Authentication tokens (RFID, app credentials)</td><td>eMSP → CPO</td></tr><tr><td><strong>Sessions</strong></td><td>Real-time session updates during charging</td><td>CPO → eMSP / PTP</td></tr><tr><td><strong>CDRs</strong></td><td>Charge Detail Records — billing records after session ends</td><td>CPO → eMSP / PTP</td></tr><tr><td><strong>Commands</strong></td><td>Remote operations: START, STOP, RESERVE, UNLOCK</td><td>eMSP / PTP → CPO</td></tr><tr><td><strong>HubClientInfo</strong></td><td>Partner connection status (OCPI 2.2.1+)</td><td>ENAPI → all connected parties</td></tr><tr><td><strong>Payments</strong></td><td>Payment terminals and financial advice confirmations (OCPI 2.2.1+; 2.30 preferred)</td><td>PTP → CPO</td></tr></tbody></table>

**Direction describes the protocol roles** — who sends and who receives. Which party types those map to depends on the role you declared at handshake: a receiver of Locations may be an eMSP, a data aggregator, or a payment terminal provider. The endpoints are identical; what differs is which modules are in scope for you. See [Roles and Parties on ENAPI](/getting-started/roles-and-parties-on-enapi.md).

### Which modules apply to you

| Module            | CPO     | eMSP    | Data aggregator | PTP     |
| ----------------- | ------- | ------- | --------------- | ------- |
| **Credentials**   | Both    | Both    | Both            | Both    |
| **Locations**     | Send    | Receive | Receive         | Receive |
| **Tariffs**       | Send    | Receive | Receive         | Receive |
| **Tokens**        | Receive | Send    | —               | —       |
| **Sessions**      | Send    | Receive | —               | Receive |
| **CDRs**          | Send    | Receive | —               | Receive |
| **Commands**      | Receive | Send    | —               | Send    |
| **HubClientInfo** | Receive | Receive | Receive         | Receive |
| **Payments**      | Receive | —       | —               | Send    |

**Send:** you implement the Sender interface and push updates to ENAPI. **Receive:** you implement the Receiver interface; ENAPI delivers to you. **—** not part of your integration; you don't implement these endpoints and won't receive traffic on them.

**Data aggregators** receive reference data only: locations and tariffs. Transaction data (sessions and CDRs) is never shared with aggregators.

**PTPs** send Commands to start and stop terminal-initiated sessions, and receive the sessions and CDRs **those terminals produce** — not the CPO's wider transaction stream — alongside locations and tariffs so terminals can be assigned to EVSEs and display correct pricing.

### Not yet supported

* **ChargingProfiles**
* **Booking** (OCPI 2.3.0)
* **CANCEL\_RESERVATION** command

If you need any of these, let us know — we prioritize module support based on partner demand. Take a look at [Advanced Features](/advanced-features.md), if you are have a complex custom requirement.&#x20;


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.enapi.com/technical-documentation/supported-ocpi-modules-and-capabilities.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
