> ## Documentation Index
> Fetch the complete documentation index at: https://docs.spirii.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Control Response

> Delivers the outcome of a previously submitted control request. One message
per `request_id`.




## AsyncAPI

````yaml openapi/smart-charging/asyncapi.yaml controlResponse
id: controlResponse
title: Control Response
description: |
  Delivers the outcome of a previously submitted control request. One message
  per `request_id`.
servers:
  - id: sns
    protocol: sns
    host: sns.amazonaws.com
    bindings: []
    variables: []
address: control-response
parameters: []
bindings:
  - protocol: sns
    version: latest
    value:
      name: control-response
    schemaProperties:
      - name: name
        type: string
        description: control-response
        required: false
operations:
  - &ref_0
    id: receiveControlResponse
    title: Receive a control response
    description: Outcome of a previously submitted control request.
    type: receive
    messages:
      - &ref_1
        id: controlResponse
        contentType: application/json
        payload:
          - name: Control Response
            description: Outcome of a previously submitted control request.
            type: object
            properties:
              - name: request_id
                type: string
                description: Matches the `request_id` of the originating control request.
                required: true
              - name: result
                type: string
                description: >
                  - `ACCEPTED`: the request was applied.

                  - `REJECTED_BY_CHARGING_STATION`: the charging station
                  rejected the request.

                  - `CHARGING_STATION_OFFLINE`: the charging station is not
                  currently connected.

                  - `CHARGING_STATION_NOT_RESPONSIVE`: the charging station did
                  not respond in time.

                  - `INVALID_ASSET_STATE`: generic term for when the request
                  requires the asset to be in a specific state it is not in.
                  More specific results like `CHARGING_STATION_OFFLINE` are used
                  where applicable. Concrete examples of when this occurs are a)
                  when a limit request is made on a connector that does not have
                  a transaction. b) when there isn't enough capacity to
                  apportion to the connector or c) if a clear limit is sent for
                  an already expired request.

                  - `INVALID_MESSAGE_FORMAT`: the request did not match the
                  expected schema.

                  - `FORBIDDEN`: the actor does not control the given asset.

                  - `INTERNAL_ERROR`: an unexpected error occurred while
                  processing the request.

                  - `TOO_MANY_REQUESTS`: more than 1 allowed request was made
                  within a window of 5 seconds and the request was rejected by
                  rate limiting.

                  - `INVALID_MESSAGE_PAYLOAD`: the request payload failed
                  business-rule validation (e.g. limit exceeds circuit
                  capacity).
                enumValues:
                  - ACCEPTED
                  - REJECTED_BY_CHARGING_STATION
                  - CHARGING_STATION_OFFLINE
                  - CHARGING_STATION_NOT_RESPONSIVE
                  - INVALID_ASSET_STATE
                  - INVALID_MESSAGE_FORMAT
                  - FORBIDDEN
                  - INTERNAL_ERROR
                  - TOO_MANY_REQUESTS
                  - INVALID_MESSAGE_PAYLOAD
                required: true
              - name: asset_id
                type: integer
                description: Chargebox or circuit id.
                required: true
              - name: connector_id
                type: integer
                description: >-
                  Present for EVSE input limit requests, absent for circuit fuse
                  limit requests.
                required: false
              - name: sent_to_chargebox_at
                type: string
                description: >-
                  ISO 8601 timestamp of when the action that triggered this
                  message occurred.
                required: false
              - name: received_from_chargebox_at
                type: string
                description: ISO 8601 timestamp reported by the chargebox itself.
                required: false
              - name: description
                type: string
                description: >-
                  Echoes the `metadata` supplied on the originating request, if
                  any, and adds additional contextual information that may be
                  specific to the integration.
                required: false
              - name: result_description
                type: array
                description: >-
                  Additional information about the result, e.g. the specific
                  cause of a rejection.
                required: false
                properties:
                  - name: item
                    type: string
                    required: false
        headers: []
        jsonPayloadSchema:
          type: object
          description: >
            Result of a previously submitted control request, correlated by
            `request_id`.

            `connector_id` is present for
            `SET_EVSE_INPUT_LIMIT`/`CLEAR_EVSE_INPUT_LIMIT`

            responses and absent for circuit-fuse-limit responses.
          properties:
            request_id:
              type: string
              description: Matches the `request_id` of the originating control request.
              x-parser-schema-id: <anonymous-schema-34>
            result:
              type: string
              enum:
                - ACCEPTED
                - REJECTED_BY_CHARGING_STATION
                - CHARGING_STATION_OFFLINE
                - CHARGING_STATION_NOT_RESPONSIVE
                - INVALID_ASSET_STATE
                - INVALID_MESSAGE_FORMAT
                - FORBIDDEN
                - INTERNAL_ERROR
                - TOO_MANY_REQUESTS
                - INVALID_MESSAGE_PAYLOAD
              description: >
                - `ACCEPTED`: the request was applied.

                - `REJECTED_BY_CHARGING_STATION`: the charging station rejected
                the request.

                - `CHARGING_STATION_OFFLINE`: the charging station is not
                currently connected.

                - `CHARGING_STATION_NOT_RESPONSIVE`: the charging station did
                not respond in time.

                - `INVALID_ASSET_STATE`: generic term for when the request
                requires the asset to be in a specific state it is not in. More
                specific results like `CHARGING_STATION_OFFLINE` are used where
                applicable. Concrete examples of when this occurs are a) when a
                limit request is made on a connector that does not have a
                transaction. b) when there isn't enough capacity to apportion to
                the connector or c) if a clear limit is sent for an already
                expired request.

                - `INVALID_MESSAGE_FORMAT`: the request did not match the
                expected schema.

                - `FORBIDDEN`: the actor does not control the given asset.

                - `INTERNAL_ERROR`: an unexpected error occurred while
                processing the request.

                - `TOO_MANY_REQUESTS`: more than 1 allowed request was made
                within a window of 5 seconds and the request was rejected by
                rate limiting.

                - `INVALID_MESSAGE_PAYLOAD`: the request payload failed
                business-rule validation (e.g. limit exceeds circuit capacity).
              x-parser-schema-id: ControlResponseResult
            asset_id:
              type: integer
              description: Chargebox or circuit id.
              x-parser-schema-id: <anonymous-schema-35>
            connector_id:
              type: integer
              description: >-
                Present for EVSE input limit requests, absent for circuit fuse
                limit requests.
              x-parser-schema-id: <anonymous-schema-36>
            sent_to_chargebox_at:
              type: string
              format: date-time
              description: >-
                ISO 8601 timestamp of when the action that triggered this
                message occurred.
              x-parser-schema-id: ActionTimestamp
            received_from_chargebox_at:
              type: string
              format: date-time
              description: ISO 8601 timestamp reported by the chargebox itself.
              x-parser-schema-id: ChargeboxReportedTimestamp
            metadata:
              description: >-
                Echoes the `metadata` supplied on the originating request, if
                any, and adds additional contextual information that may be
                specific to the integration.
              x-parser-schema-id: <anonymous-schema-37>
            result_description:
              type: array
              items:
                type: string
                x-parser-schema-id: <anonymous-schema-39>
              description: >-
                Additional information about the result, e.g. the specific cause
                of a rejection.
              x-parser-schema-id: <anonymous-schema-38>
          required:
            - request_id
            - result
            - asset_id
          x-parser-schema-id: ControlResponse
        title: Control Response
        description: Outcome of a previously submitted control request.
        example: |-
          {
            "request_id": "a1b2c3d4-0000-0000-0000-000000000001",
            "result": "ACCEPTED",
            "asset_id": 123456,
            "connector_id": 1,
            "sent_to_chargebox_at": "2026-10-31T08:11:10.000Z",
            "received_from_chargebox_at": "2026-10-31T08:11:12.123Z",
            "metadata": {
              "foo": "bar"
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: controlResponse
    bindings: []
    extensions:
      - id: x-parser-unique-object-id
        value: controlResponse
sendOperations:
  - *ref_0
receiveOperations: []
sendMessages:
  - *ref_1
receiveMessages: []
extensions:
  - id: x-parser-unique-object-id
    value: controlResponse
securitySchemes:
  - id: apiKey
    name: x-api-key
    type: httpApiKey
    description: |
      API key issued to the Actor during registration. Spirii can revoke and
      reissue keys at any time.
    in: header
    extensions: []

````