Data Transfer (Charging Station → CSMS)
Source: OCPP 2.0.1 Part 2 — Specification (Edition 2, 2022-12-15) — Section 1.13 (Messages); Use Cases P01 / P02 (Functional Block P. DataTransfer)
Note:
DataTransferis bidirectional. This file describes the CS-initiated direction (P02 — Data Transfer to the CSMS). For the CSMS-initiated direction (P01) the wire format is identical.
Overview
When the Charging Station needs to send vendor-specific information to the CSMS for functionality not covered by OCPP, it uses DataTransferRequest. The vendorId identifies the vendor-specific implementation (RECOMMENDED to be reverse-DNS), and the optional messageId distinguishes individual messages within that vendor's namespace. The shape and length of data is open to implementation and must be agreed by both parties.
Status semantics:
Accepted/Rejected— implementation-specific, decided by the receiving side.UnknownVendorId— recipient has no implementation for the givenvendorId.dataSHALL be absent.UnknownMessageId— recipient does not recognize the givenmessageId.
Sequence Diagram
Charging Station ──── DataTransferRequest ────▶ CSMS
(vendorId, messageId?, data?)
Charging Station ◀─── DataTransferResponse ──── CSMS
(status, data?, statusInfo?)
Initiator
Charging Station → CSMS (this file). Also CSMS → CS (P01).
Fields
| Field Name | Field Type | Card. | Description |
|---|---|---|---|
| vendorId | string [0..255] | 1..1 | Required. Identifies the vendor-specific implementation. |
| messageId | string [0..50] | 0..1 | Optional. May be used to indicate a specific message or implementation. |
| data | anyType | 0..1 | Optional. Data without specified length or format. Must be agreed by both parties. |
| Field Name | Field Type | Card. | Description |
|---|---|---|---|
| status | DataTransferStatusEnumType | 1..1 | Required. Indicates success or failure of the data transfer. |
| data | anyType | 0..1 | Optional. Data without specified length or format, in response to request. |
| statusInfo | StatusInfoType | 0..1 | Optional. Detailed status information. |
DataTransferStatusEnumType values
Accepted— Message accepted, request is accepted.Rejected— Message accepted, but the contained request is rejected.UnknownMessageId— Message could not be interpreted due to unknownmessageId.UnknownVendorId— Message could not be interpreted due to unknownvendorId.
Examples
{
"vendorId": "com.vendorx.charging",
"messageId": "TelemetryUpload",
"data": { "voltage": 230.4, "freq": 50.02 }
}{
"status": "Accepted",
"data": { "ack": true }
}Schema
Source:
schemas/DataTransferRequest.json,schemas/DataTransferResponse.json(OCPP 2.0.1 FINAL)