Skip to content
Documentation Menu

Data Transfer (Charge Point → Central System)

Source: OCPP 1.6 Specification — Section 4.3 (Operation), Sections 6.15 / 6.16 (Messages)

Note: DataTransfer is bidirectional. This file documents the CP-initiated direction. The CSMS-initiated direction is documented in §5.6.

Overview

If a Charge Point needs to send information to the Central System for a function not supported by OCPP, it SHALL use the DataTransfer.req PDU.

The vendorId in the request SHOULD be known to the Central System and uniquely identify the vendor-specific implementation. The vendorId SHOULD be a value from the reversed DNS namespace, where the top tiers of the name, when reversed, should correspond to the publicly registered primary DNS name of the Vendor organisation.

Optionally, the messageId in the request PDU MAY be used to indicate a specific message or implementation.

The length of data in both the request and response PDU is undefined and should be agreed upon by all parties involved.

If the recipient of the request has no implementation for the specific vendorId it SHALL return a status UnknownVendor and the data element SHALL not be present. In case of a messageId mismatch (if used) the recipient SHALL return status UnknownMessageId. In all other cases the usage of status Accepted or Rejected and the data element is part of the vendor-specific agreement between the parties involved.

Sequence Diagram

Figure 14. Sequence Diagram: Data Transfer

Charge Point  ──── DataTransfer.req ────▶  Central System
                   (vendorId, messageId?, data?)
Charge Point  ◀─── DataTransfer.conf ────  Central System
                   (status, data?)

Initiator

Charge Point → Central System (this file). Also CSMS → CP (see §5.6).

Fields

Field NameField TypeCard.Description
vendorIdCiString255Type1..1Required. This identifies the Vendor specific implementation.
messageIdCiString50Type0..1Optional. Additional identification field.
dataText (length undefined)0..1Optional. Data without specified length or format.

DataTransferStatus values

  • Accepted — Message has been accepted, and the contained request is accepted.
  • Rejected — Message has been accepted, but the contained request is rejected.
  • UnknownMessageId — Message could not be interpreted due to unknown messageId.
  • UnknownVendorId — Message could not be interpreted due to unknown vendorId.

Examples

{
  "vendorId": "com.vendorx.charging",
  "messageId": "PromoBannerSync",
  "data": "{\"campaignId\":\"spring2026\"}"
}

Schema

Source: schemas/DataTransfer.json, schemas/DataTransferResponse.json (OCPP 1.6, JSON Schema draft-04)

Request schema (JSON Schema)
Response schema (JSON Schema)