OCPI endpoints use a different authentication scheme from the rest of the Dynamo API. See OCPI authentication below.
Authentication
Standard API endpoints
All/api/v1/... endpoints use your standard API key:
OCPI endpoints
All/ocpi/... endpoints use an OCPI token issued during the credentials handshake:
Versions
List supported versions
GET /ocpi/versions
Returns the OCPI versions your Dynamo CSMS instance supports and the URL for each version’s endpoint discovery.
Get version endpoints
GET /ocpi/versions/{version}
Returns the list of OCPI modules available for a given version and the URL for each.
string
required
The OCPI version string, e.g.,
"2.2.1".Credentials
The credentials handshake is the first thing you do when connecting to a new eMSP partner. You exchange tokens and platform details so both sides can authenticate future requests.Get your CPO credentials
GET /ocpi/cpo/2.2.1/credentials
Returns your current CPO credentials. Share these with an eMSP partner to begin the registration process.
Register with an eMSP
POST /ocpi/cpo/2.2.1/credentials
Send this after an eMSP sends you their credentials. Completes the bilateral token exchange.
string
required
The token the eMSP provided to you.
string
required
The eMSP’s OCPI versions URL.
object
required
Details about the eMSP:
name, website, and optional logo.string
required
The eMSP’s 3-character party identifier.
string
required
ISO 3166-1 alpha-2 country code for the eMSP.
object[]
required
Array of role objects describing the eMSP’s OCPI roles.
Update credentials
PUT /ocpi/cpo/2.2.1/credentials
Update the credentials for an existing eMSP connection. Use the same request body as POST.
Unregister from an eMSP
DELETE /ocpi/cpo/2.2.1/credentials
Terminates the OCPI connection with a partner. Both sides’ tokens are invalidated.
Locations
Locations represent physical sites containing EVSEs and connectors. Roaming partners query these to present accurate availability data to drivers.List locations
GET /ocpi/cpo/2.2.1/locations
Returns all your locations visible to roaming partners, including EVSE and connector details.
number
default:"0"
Pagination offset.
number
default:"25"
Number of locations to return per page (max 100).
string
Return only locations last updated after this ISO 8601 timestamp. Use for incremental sync.
Get a location
GET /ocpi/cpo/2.2.1/locations/{location_id}
string
required
The location ID.
Get an EVSE
GET /ocpi/cpo/2.2.1/locations/{location_id}/{evse_uid}
string
required
The location ID.
string
required
The EVSE UID.
Get a connector
GET /ocpi/cpo/2.2.1/locations/{location_id}/{evse_uid}/{connector_id}
string
required
The location ID.
string
required
The EVSE UID.
string
required
The connector ID.
Sessions
GET /ocpi/cpo/2.2.1/sessions
Returns all active and recently completed charging sessions visible to the requesting eMSP. Only sessions initiated by drivers belonging to that eMSP are returned.
string
Return sessions started after this timestamp.
string
Return sessions started before this timestamp.
number
default:"0"
Pagination offset.
Charge detail records (CDRs)
GET /ocpi/cpo/2.2.1/cdrs
Returns Charge Detail Records for completed sessions. CDRs are the authoritative billing records used by eMSPs to invoice their drivers.
string
Return CDRs for sessions ending after this timestamp.
string
Return CDRs for sessions ending before this timestamp.
Tariffs
GET /ocpi/cpo/2.2.1/tariffs
Returns the tariffs visible to roaming partners. eMSPs use these to show drivers the cost of charging before they start a session.
Commands
eMSPs can send commands to your charge points through Dynamo CSMS. Dynamo handles the OCPP translation and returns the result to the eMSP.POST /ocpi/cpo/2.2.1/commands/{command}
string
required
The command to execute. One of:
START_SESSION, STOP_SESSION, RESERVE_NOW, UNLOCK_CONNECTOR.response_url once the charge point responds.
Tokens
Tokens represent driver authorisation credentials (RFID cards, app tokens, etc.). eMSPs push their driver tokens to you so you can perform local authorisation without a network round-trip.Get a token
GET /ocpi/cpo/2.2.1/tokens/{country_code}/{party_id}/{token_uid}
string
required
The eMSP’s ISO 3166-1 alpha-2 country code.
string
required
The eMSP’s 3-character party ID.
string
required
The token UID (e.g., RFID card number).
Create or replace a token
PUT /ocpi/cpo/2.2.1/tokens/{country_code}/{party_id}/{token_uid}
Idempotent — creates the token if it does not exist, replaces it if it does.
Partially update a token
PATCH /ocpi/cpo/2.2.1/tokens/{country_code}/{party_id}/{token_uid}
Update specific fields of an existing token without replacing the whole record. Useful for toggling valid when a card is reported lost.
Authorize a token
POST /ocpi/cpo/2.2.1/tokens/{token_uid}/authorize
Check whether a token is authorised to charge. Returns an AuthorizationInfo object with the allowed status and any applicable location restrictions.
string
required
The token UID to authorise.
string
Token type:
RFID, APP_USER, OTHER, AD_HOC_USER. Defaults to RFID.Guest sessions
Guest sessions allow drivers without an account or RFID card to charge by paying with a card or digital wallet, without registering.Authorize a guest session
POST /api/v1/sessions/guest/authorize
Initiates an ad-hoc payment flow and returns a session token the driver can use to track and stop the session.
string
required
The charge point to start a guest session on.
number
required
The connector number to start charging on.
string
required
A tokenised payment method ID from your payment processor.
Get guest session status
GET /api/v1/sessions/guest/{session_token}/status
string
required
The guest session token returned from the authorize call.
Stop a guest session
POST /api/v1/sessions/guest/{session_token}/stop
string
required
The guest session token.
RemoteStopTransaction command to the charge point and finalises the payment.
Get guest session receipt
GET /api/v1/sessions/guest/{session_token}/receipt
Returns a PDF receipt for a completed guest session. Response Content-Type is application/pdf.
string
required
The guest session token.
Integration requests
If you need to connect Dynamo CSMS to an eMSP, roaming hub, or other partner platform not yet available in the integrations catalogue, you can submit an integration request.Request a new integration
POST /api/v1/integration-requests
string
required
Type of integration requested:
emsp, roaming_hub, payment, other.string
required
Name of the partner or platform you want to connect.
string
Additional context about the use case and urgency.
List integration requests
GET /api/v1/integration-requests
Returns all integration requests submitted by your organization and their current status.