Authorize
Asks the CSMS whether an identifier may charge. The token is now a structured object, and certificates are supported.
- Version
- OCPP 2.0.1
- Direction
- Charge Point → CSMS
- Functional block
- Authorization
Authorize also exists in OCPP 1.6, with a different payload. See the OCPP 1.6 version.
The 1.6 idTag string becomes idToken, an object with a type — RFID, a key code, a MAC address, an ISO 15118 eMAID, or NoAuthorization for free-vend stations.
The response carries idTokenInfo, which can also return a charging profile, an EVSE allowlist and display language preferences alongside the status.
Request
| Field | Type | Required | Description |
|---|---|---|---|
idToken | IdTokenType | Required | idToken string plus a type. Replaces 1.6's bare idTag. |
certificate | string | Optional | PEM-encoded X.509 certificate, for ISO 15118 plug-and-charge. |
iso15118CertificateHashData | OCSPRequestDataType[] | Optional | OCSP data for certificate status checking. Up to 4 entries. |
[2, "19223201", "Authorize", {
"idToken": {
"idToken": "04A1B2C3D4E580",
"type": "ISO14443"
}
}]Response
| Field | Type | Required | Description |
|---|---|---|---|
idTokenInfo | IdTokenInfoType | Required | The decision, plus optional expiry, language, group id and EVSE allowlist. |
certificateStatus | AuthorizeCertificateStatusEnumType | Optional | Result of the certificate check, when one was supplied. |
[3, "19223201", {
"idTokenInfo": {
"status": "Accepted",
"cacheExpiryDateTime": "2026-12-31T23:59:59Z",
"groupIdToken": { "idToken": "FLEET-042", "type": "Central" }
}
}]Values
IdTokenEnumType
| Value | Meaning |
|---|---|
Central | Assigned by the CSMS, not read at the station. |
eMAID | ISO 15118 e-mobility account identifier. |
ISO14443 | RFID card UID, the usual case. |
ISO15693 | Vicinity RFID card. |
KeyCode | A code entered on a keypad. |
Local | Locally generated identifier. |
MacAddress | A device MAC address. |
NoAuthorization | No authorization required — free vend. |
AuthorizationStatusEnumType
| Value | Meaning |
|---|---|
Accepted | Allowed to charge. |
Blocked | Known but blocked. |
Expired | Validity has passed. |
Invalid | Not known. |
ConcurrentTx | Already in use in another transaction. |
NoCredit | Insufficient credit. |
NotAllowedTypeEVSE | Not permitted on this type of EVSE. |
NotAtThisLocation | Not permitted at this location. |
NotAtThisTime | Not permitted at this time. |
Unknown | The CSMS could not determine a result. |
Implementation notes
The status set grew from five values to ten. NoCredit, NotAtThisTime and NotAtThisLocation are new and let a CSMS explain a refusal precisely enough for a station to display something useful.
groupIdToken replaces 1.6's parentIdTag and is a full IdToken object rather than a string.
idTokenInfo.evseId can restrict a token to specific EVSEs on the station — there was no 1.6 equivalent.