Authorize

Core CP->CSMS

Sent by the Charge Point to authorize an identifier (RFID tag, credit card, etc.) before starting a transaction.

Quick Reference

Required Fields

idTag string(20)

The identifier to be authorized (e.g., RFID tag)

Example Payload

{
  "idTag": "AABBCCDD"
}

Example Full Frame

[
  2,
  "msg-001",
  "Authorize",
  {
    "idTag": "AABBCCDD"
  }
]

Format: [MessageType, MessageId, Action, Payload]

Overview

The Authorize message is used to validate an identifier (typically an RFID tag) with the Central System before allowing a charging session to start. This is a critical security and billing verification step.

When to Send

  • When a user presents an RFID tag to start charging
  • Before sending StartTransaction (if authorization is required)
  • Optionally before StopTransaction to verify the stopping user

Expected Response

The CSMS responds with an IdTagInfo object containing:

  • status: Accepted, Blocked, Expired, Invalid, or ConcurrentTx
  • expiryDate (optional): When the authorization expires
  • parentIdTag (optional): Group identifier for the tag

Usage Notes

  • Authorization can be skipped if the Charge Point has a local authorization list
  • The idTag must be exactly as read from the RFID reader (case-sensitive)
  • Some CSMSs support multiple identifier formats (RFID, credit card, app-based)

Best Practices

  1. Local authorization cache - Cache positive authorizations to allow offline charging
  2. Handle expiry dates - Check expiryDate in responses and cache them
  3. User feedback - Provide immediate visual/audio feedback based on authorization status
  4. Timeout handling - If authorization times out, decide whether to allow or deny charging

Testing Tips

  • Test with valid idTag to verify Accepted response
  • Test with unknown idTag to verify Invalid response
  • Test with blocked idTag to verify Blocked response
  • Test offline mode with cached authorizations

Common Errors

PropertyConstraintViolation

Cause: idTag exceeds 20 characters

Solution: Ensure idTag is max 20 characters

TypeConstraintViolation

Cause: Missing required field idTag

Solution: Always include idTag in the payload