- Plugsurfing officially supports version 2.2 and 2.2.1 alongside version 2.1.1 of the OCPI protocol.
- From this point onwards to simplify the article, versions 2.2 and 2.2.1 will be referred to as 2.2.x.
- These technical requirements are subject to change. The CPO shall check these requirements regularly for updates. If major updates are done, Plugsurfing will inform the CPOs.
Registration / Credentials Module (Required):
Initiation of registration can be done by any of the parties.
Issuing party | Commands | Status |
CPO | POST credentials | Supported |
PUT credentials | Supported | |
DELETE credentials | Supported | |
GET versions | Supported | |
GET endpoints (for a specific version) | Supported | |
EMP | POST credentials | Supported |
PUT credentials | Supported | |
DELETE credentials | Supported | |
GET versions | Supported | |
GET endpoints (for a specific version) | Supported |
Plugsurfing expects all CPOs (and sub-CPOs, if they exist) that communicate over the OCPI connection to be represented with an unique set of role + party_id + country_code
.
Hub Client Info Module
This module is dedicated for connecting to Hubs over OCPI 2.2.x. Currently this is not supported, but it is being developed.
Locations Module (Required):
-
The Charging Infrastructure Data shall contain all information required in accordance with the protocol.
-
The Charging Infrastructure Data submitted by the CPO to Plugsurfing must be accurate, valid, complete, unique and consistent.
-
The Charging Infrastructure must be located within the operating territories (see end of document).
-
The Charging Infrastructure Data for a Charging Station must be submitted prior to any Charging Session at this Charging Station.
Request | Issuing party | Commands | Status |
Push | CPO | PUT locations | Supported |
PUT EVSE |
Supported | ||
PUT locations |
Supported | ||
PATCH locations (Patch call will only patch properties on the Location. Child EVSEs and connectors will not be updated.) | Supported | ||
PATCH locations (Patch calls will only patch properties of the EVSE. Child connectors will not be updated.) | Supported | ||
PATCH locations (connector) | Supported | ||
Pull | CPO | GET locations (i.e., CPO gets location from Plugsurfing platform) | Not supported |
EMP | GET locations (location) (i.e. Plugsurfing platform gets location from CPO) | Supported |
Differences in 2.2.x
The ‘publish’ property
Plugsurfing supports the publish property introduced in OCPI 2.2.x.
If publish=false
, the location will not be published/visible on the map. However, Plugsurfing does not support the publish_allowed_to
flag to show only locations to certain individual user.
Private locations
Plugsurfing requires the CPO to share all locations they intend to send CDRs for up front.
If the location should not be shown to users, the CPO is encouraged to use the publish property mentioned above. If private chargers can’t be shared up front, but CDRs will be sent for these locations, the CPO has to communicate this to Plugsurfing before the integration is set up.
The ‘tariff_ids’ property on connectors
Plugsurfing only supports one tariff per connector, default set to REGULAR type.
Tariffs Module (Required):
If Tariffs Module is not supported, the standard Fees for charging will apply: https://partnersupport.plugsurfing.com/hc/en-us/articles/360021089838-Fees
Request | Issuing party | Commands | Status |
Push | CPO | PUT Tariffs | Supported |
PATCH Tariffs | Supported | ||
Pull | CPO | GET Tariffs | Not supported |
EMP | GET Tariffs | Supported |
Plugsurfing only supports one tariff per connector, and that must be of REGULAR type. Other tariff types will be dropped. If the CPO uses multiple tariff types, Plugsurfing MUST be informed before the integration is set up.
Differences in 2.2.x
PATCH is removed from Tariffs as this was not seen useful. Use PUT instead.
Added county_code and party_id fields.
Tokens Module (Required):
CPO shall use Real-time Authorization when their system is online.
Request | Issuing party | Commands | Status |
Push | EMP | PUT Tokens (creation/update) | Supported |
PATCH Tokens (update) | Not supported | ||
Pull | CPO | Get Tokens (list) | Supported |
Whitelist type
Plugsurfing uses the whitelist type ALLOWED_OFFLINE
when tokens are exchanged. The CPO must send real-time authorization requests to Plugsurfing when the charger is online.
Real-time authorization
By default Plugsurfing expects the authorization request to contain the location reference to where the user intends to charge. If the CPO has private chargers not exchanged via the location module, the CPO must inform Plugsurfing about this before the integration between the systems is set up. If Plugsurfing is not informed about this, the authorization result will be NOT_ALLOWED
.
Plugsurfing will return an authorization reference on all real-time authorization requests. It’s required that this reference is sent in the CDR for the resulting session.
OCPI 2.2.x Properties not supported by Plugsurfing
Plugsurfing does currently not support the group_id
, default_profile_type
and energy_contract
properties in the Tokens module.
Charge Detailed Records (CDR) (Required):
-
The CDR shall be transmitted immediately, no longer than one hour after the end of the Charging Session.
-
The CDR shall contain all information required in accordance with the protocol version.
-
The CDR submitted by the CPO to Plugsurfing must be unaltered, complete and correct.
-
The CDR shall be associated with a Customer who was Authorized in Real Time only.
-
The Charging Infrastructure Data for a Charging Station must be submitted prior to any Charging Session at this Charging Station.
-
The CDR shall refer to a positive (zero or higher) energy consumption, price and session time.
Request | Issuing party | Commands | Status |
Push | CPO | POST CDRs | Supported |
Pull | EMP | GET CDRs | Supported (Not preferred) |
OCPI 2.2.x Properties not supported by Plugsurfing
Credit CDRs
Plugsurfing does not currently support credit CDRs.
Sessions Module (Optional*):
Request | Issuing party | Commands | Status |
Push | CPO | PUT sessions | Supported |
PATCH sessions | Supported | ||
Pull | CPO | GET sessions | Not supported |
EMP | GET sessions | Not supported |
- While optional, Plugsurfing strongly recommends the CPO to utilize this module for real-time session updates.
- This is required if remote start/stop commands are to be used.
OCPI 2.2 Properties not supported by Plugsurfing
Charging preferences
Plugsurfing does not support setting charging preferences for a session.
Charging profiles
Multiple charging profiles are not supported by Plugsurfing.
Commands Module (Optional):
Issuing party | Commands | Status |
EMP | POST commands (START_SESSION) | Supported |
POST commands (STOP_SESSION) | Supported | |
POST commands (RESERVE_NOW/CANCEL_RESERVATION) | Not supported | |
POST commands (UNLOCK) | Not supported |
IMPORTANT: Plugsurfing needs to know if the CPO supports remote start before the integration is configured. If the CPO supports remote start, the session module is also required in order to allow Plugsurfing to inform the end user about the availability and status of this functionality.
Information to be shared with Plugsurfing before the integration
In order to set up the integration properly, the following information needs to be provided before the integration is configured:
- The CPO/platform that is considered the main CPO on this connection.
- CPO/platform name
- CPO/platform country_code
- CPO/platform party_id
- CPO(s) communicating over the connection
- CPO Name
- CPO country_code
- CPO party_id
- Is remote start supported by the CPO?
- Does the CPO require the Token used during a remote start request to exist in the CPO system up front?
- If not, Plugsurfing can disable token exchange for these virtual tokens to reduce the data exchanged.
- Will real-time authorization requests and/or CDRs be sent for locations not shared up front over the locations module?
- If yes, please explain why so Plugsurfing understands what type of locations this is, and why they are kept private.
- The CPO will deliver the CDR to Plugsurfing directly after the session is completed
- If not possible, please explain why.
Territory
Territory means the geographical area which this Agreement covers, and within which all Charging Stations must be located. The geographical area included in the Territory is:
-
- Austria
- Belgium
- Bulgaria
- Croatia
- Czech Republic
- Denmark
- Estonia
- Finland
- France
- Germany
- Hungary
- Iceland
- Ireland
- Italy
- Latvia
- Liechtenstein
- Lithuania
- Luxembourg
- Netherlands
- Norway
- Poland
- Romania
- Slovakia
- Slovenia
- Spain
- Sweden
- Switzerland
- United Kingdom
Territory can also be enforced by usage of real-time authorization for local starts initiating a Charging Process, and LocationReferences object in the request body.
If the start request is denied, the CPO shall not allow the user to charge. If a session is started by the CPO when Plugsurfing has rejected the session start request, Plugsurfing has the right to reject the CDR.