GraphQL API Reference

Welcome to the technical specification for the GraphQL API.

You will find here all available endpoints (queries and mutations) which can be used.
For all endpoints you will find an explanation about the purpose, types, and how they should be used.

Some of the endpoints are marked as deprecated. Please don't use them any more for new developments, because soon enough they will be removed. We will inform you about that beforehand.

If you face any problems, please do not hesitate to contact us via support-beenergised@chargepoint.com.

API Endpoints
https://<your-subdomain>.v2.api.htb.services/graphql/

Queries

accountDocument

Description

Get a document by it's ID.

Example

query {
  accountDocument(id: "doc-uuid-...") {
    id
    type
    title
    documentDate
    downloadLink
  }
}
Response

Returns an AccountDocument

Arguments
Name Description
id - String UUID of the document to retrieve.

Example

Query
query accountDocument($id: String) {
  accountDocument(id: $id) {
    documentDate
    downloadLink
    id
    title
    type
  }
}
Variables
{"id": "xyz789"}
Response
{
  "data": {
    "accountDocument": {
      "documentDate": "2024-03-15T00:00:00.000Z",
      "downloadLink": "https://files.example.has-to-be.com/invoices/cbce05d9-9172-4201-a8e4-bd3b47366097.pdf",
      "id": "cbce05d9-9172-4201-a8e4-bd3b47366097",
      "title": "Invoice 2024-001",
      "type": "invoice"
    }
  }
}

accountDocumentsPaged

Description

Get the list of all documents of the authenticated user.

Example

query {
  accountDocumentsPaged(pagination: { limit: 10, offset: 0 }) {
    pagination { totalCount }
    data { id type title documentDate downloadLink }
  }
}
Response

Returns an AccountDocumentsPaged

Arguments
Name Description
pagination - PaginationFilter Pagination parameters (limit and offset).

Example

Query
query accountDocumentsPaged($pagination: PaginationFilter) {
  accountDocumentsPaged(pagination: $pagination) {
    data {
      ...AccountDocumentFragment
    }
    pagination {
      ...PaginationFragment
    }
  }
}
Variables
{"pagination": PaginationFilter}
Response
{
  "data": {
    "accountDocumentsPaged": {
      "data": [
        {
          "id": "cbce05d9-9172-4201-a8e4-bd3b47366097",
          "title": "Invoice 2024-001",
          "type": "invoice"
        }
      ],
      "pagination": {
        "limit": 10,
        "offset": 0,
        "totalCount": 1,
        "isLastPage": true
      }
    }
  }
}

additionalRegistrationFields

Description

Get the tenant-specific extra fields a new user must provide on registration (e.g. company VAT, employee ID). Each field has a name, description, type, required flag, and optional initial value. Use the result to render the registration form dynamically. Allowed for role INI.

Example

query {
  additionalRegistrationFields {
    name
    description
    type
    required
    value
  }
}

Example

Query
query additionalRegistrationFields {
  additionalRegistrationFields {
    description
    name
    required
    type
    value
  }
}
Response
{
  "data": {
    "additionalRegistrationFields": [
      {
        "description": "Your company employee ID",
        "name": "employee_id",
        "required": "true",
        "type": "text",
        "value": "EMP-00123"
      }
    ]
  }
}

availableCardsForChargingProcess

Description

Get a list of authentication media (cards) of the authorized user which can be used to start a charging process on a specific connector.

Response

Returns [CardForChargingProcess]

Arguments
Name Description
connectorId - String! UUID of the connector to check card eligibility against.

Example

Query
query availableCardsForChargingProcess($connectorId: String!) {
  availableCardsForChargingProcess(connectorId: $connectorId) {
    expiryDate
    id
    label
    number
    preauthRequired
    rate {
      ...RateDescriptionForChargingProcessFragment
    }
    tagId
    type
  }
}
Variables
{"connectorId": "abc123"}
Response
{
  "data": {
    "availableCardsForChargingProcess": [
      {
        "expiryDate": "2026-12-31T23:59:59.000Z",
        "id": "4a7fb3a6-c5ff-4739-b46c-c013a4c8ce3f",
        "label": "My Work Card",
        "number": "HTB-0001234",
        "preauthRequired": true,
        "rate": {
          "description": "Pay per kWh",
          "shortDescription": "0.35 EUR/kWh",
          "preauthCurrencyAmounts": [
            {"amount": 30, "currency": {"isoCode": "EUR"}}
          ]
        },
        "tagId": "c1a4f434-d8c1-4bc3-8b51-4784298cc442",
        "type": "default"
      }
    ]
  }
}

availableCurrencies

Description

Get a list of available currencies of the authorized user.

Example

query {
  availableCurrencies(pagination: { limit: 10, offset: 0 }) {
    pagination { totalCount }
    data { isoCode name symbol }
  }
}
Response

Returns an AvailableCurrencies

Arguments
Name Description
pagination - PaginationFilter Pagination parameters (limit and offset).

Example

Query
query availableCurrencies($pagination: PaginationFilter) {
  availableCurrencies(pagination: $pagination) {
    data {
      ...AvailableCurrencyFragment
    }
    pagination {
      ...PaginationFragment
    }
  }
}
Variables
{"pagination": PaginationFilter}
Response
{
  "data": {
    "availableCurrencies": {
      "data": [
        {"currency": {"isoCode": "EUR"}},
        {"currency": {"isoCode": "USD"}}
      ],
      "pagination": {
        "limit": 10,
        "offset": 0,
        "totalCount": 2,
        "isLastPage": true
      }
    }
  }
}

bankAccount

Description

Get the SEPA bank account (IBAN, BIC, account holder) registered against the current user's SEPA contract. Returns null / empty fields if no SEPA contract is active. Allowed for role CRM.

Example

query {
  bankAccount {
    iban
    bic
    bank
    accountHolder
  }
}
Response

Returns a BankAccountResponse

Example

Query
query bankAccount {
  bankAccount {
    accountHolder
    bank
    bic
    iban
  }
}
Response
{
  "data": {
    "bankAccount": {
      "accountHolder": "Max Mustermann",
      "bank": "Erste Bank",
      "bic": "GIBAATWWXXX",
      "iban": "AT12 3456 7890 1234 5678"
    }
  }
}

card

Description

Get a single authentication card by its tag ID or UUID, including status, type, and rate.

Response

Returns a Card

Arguments
Name Description
id - String! UUID or tag ID of the card to retrieve.

Example

Query
query card($id: String!) {
  card(id: $id) {
    deactivationReason
    expiryDate
    id
    label
    number
    preauthRequired
    rate {
      ...RateOptionFragment
    }
    status
    tagId
    type
  }
}
Variables
{"id": "xyz789"}
Response
{
  "data": {
    "card": {
      "deactivationReason": "",
      "expiryDate": "2026-12-31T23:59:59.000Z",
      "id": "4a7fb3a6-c5ff-4739-b46c-c013a4c8ce3f",
      "label": "My Work Card",
      "number": "HTB-0001234",
      "preauthRequired": true,
      "rate": {
        "id": "6c69d520-44c4-48be-8192-22b3d97ed975",
        "name": "Standard Rate",
        "shortDescription": "0.35 EUR/kWh"
      },
      "status": "active",
      "tagId": "c1a4f434-d8c1-4bc3-8b51-4784298cc442",
      "type": "default"
    }
  }
}

cardsPaged

Description

Get a list of authentication media (cards) of the authorized user.

Example

query {
  cardsPaged(pagination: { limit: 20, offset: 0 }) {
    pagination { totalCount }
    data { id label status type expiryDate }
  }
}
Response

Returns a CardsPaged

Arguments
Name Description
pagination - PaginationFilter Pagination parameters (limit and offset).

Example

Query
query cardsPaged($pagination: PaginationFilter) {
  cardsPaged(pagination: $pagination) {
    data {
      ...CardFragment
    }
    pagination {
      ...PaginationFragment
    }
  }
}
Variables
{"pagination": PaginationFilter}
Response
{
  "data": {
    "cardsPaged": {
      "data": [
        {
          "id": "4a7fb3a6-c5ff-4739-b46c-c013a4c8ce3f",
          "label": "My Work Card",
          "number": "HTB-0001234",
          "status": "active"
        }
      ],
      "pagination": {
        "limit": 10,
        "offset": 0,
        "totalCount": 1,
        "isLastPage": true
      }
    }
  }
}

chargelog

Description

Get a chargelog by id.

Example

query {
  chargelog(id: "chargelog-uuid-...") {
    id
    status
    dateStart
    dateEnd
    energyConsumption
    cost { total currency }
  }
}
Response

Returns a Chargelog

Arguments
Name Description
id - ID! UUID of the chargelog entry to retrieve.

Example

Query
query chargelog($id: ID!) {
  chargelog(id: $id) {
    accountDocument {
      ...AccountDocumentFragment
    }
    authId
    authType
    calibrationDetails
    co2Saving
    connector {
      ...ConnectorFragment
    }
    cost {
      ...CostFragment
    }
    dateEnd
    dateStart
    energyConsumption
    id
    meterEnd
    meterStart
    rateName
    sessionId
    status
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "chargelog": {
      "accountDocument": {
        "id": "cbce05d9-9172-4201-a8e4-bd3b47366097",
        "title": "Invoice 2024-001",
        "type": "invoice"
      },
      "authId": "c1a4f434-d8c1-4bc3-8b51-4784298cc442",
      "authType": "RFID",
      "calibrationDetails": null,
      "co2Saving": 11.7,
      "connector": {
        "id": "5c749d00-315f-4127-a94d-17289206d054",
        "evseId": "AT*HTB*E000001*1",
        "label": "Connector 1"
      },
      "cost": {"total": 8.54, "grossAmount": 8.54, "currency": "EUR"},
      "dateEnd": "2024-03-15T10:15:00.000Z",
      "dateStart": "2024-03-15T08:30:00.000Z",
      "energyConsumption": 24.37,
      "id": "c258a8ab-e265-4f14-a9ba-12cef13f49f7",
      "meterEnd": 48740000,
      "meterStart": 24370000,
      "rateName": "Standard Rate",
      "sessionId": "8b60a3b3-e26c-4df8-8f29-02a682dc15c3",
      "status": "stopped"
    }
  }
}

chargelogMeterValuesSummary

Description

Returns detailed information about the meter values of a charging session.

In some cases, we do not receive meter values during the charging session. In this case, only null values will be returned.

As parameter you will need the uuid of the charging station. This can be obtained by chargelogsPaged, among others.

Response

Returns a chargelogMeterValuesSummary

Arguments
Name Description
uuid - String! The uuid of the charging session

Example

Query
query chargelogMeterValuesSummary($uuid: String!) {
  chargelogMeterValuesSummary(uuid: $uuid) {
    currentPower
    currentPowerLastChanged
    currentStateOfCharge
    energyFirstValue
    energyFirstValueTime
    energyLastValue
    energyLastValueTime
    energyUpdatedAt
    initialStateOfCharge
    stateOfChargeLastChanged
    sumEnergy
    updatedAt
  }
}
Variables
{"uuid": "abc123"}
Response
{
  "data": {
    "chargelogMeterValuesSummary": {
      "currentPower": 11000,
      "currentPowerLastChanged": "2024-03-15T09:45:00.000Z",
      "currentStateOfCharge": 78,
      "energyFirstValue": 12500,
      "energyFirstValueTime": "2024-03-15T08:30:00.000Z",
      "energyLastValue": 36870,
      "energyLastValueTime": "2024-03-15T10:15:00.000Z",
      "energyUpdatedAt": "2024-03-15T10:15:05.000Z",
      "initialStateOfCharge": 22,
      "stateOfChargeLastChanged": "2024-03-15T10:10:00.000Z",
      "sumEnergy": 24.37,
      "updatedAt": "2024-03-15T10:15:05.000Z"
    }
  }
}

chargelogsPaged

Description

Get a list of chargelogs of the authorized user, filterable with a ChargelogFilter object.

Example

query {
  chargelogsPaged(pagination: { limit: 10, offset: 0 }) {
    pagination { totalCount }
    data {
      id
      status
      dateStart
      energyConsumption
      connector { id label }
    }
  }
}
Response

Returns a ChargelogsPaged

Arguments
Name Description
filters - ChargelogFilter Filter chargelogs by status.
pagination - PaginationFilter Pagination parameters (limit and offset).
timeframe - TimeFrameFilter Restrict results to a specific time range.
type - ChargeLogType Type of chargelogs to return (e.g. contact).

Example

Query
query chargelogsPaged(
  $filters: ChargelogFilter,
  $pagination: PaginationFilter,
  $timeframe: TimeFrameFilter,
  $type: ChargeLogType
) {
  chargelogsPaged(
    filters: $filters,
    pagination: $pagination,
    timeframe: $timeframe,
    type: $type
  ) {
    data {
      ...ChargelogFragment
    }
    pagination {
      ...PaginationFragment
    }
  }
}
Variables
{
  "filters": ChargelogFilter,
  "pagination": PaginationFilter,
  "timeframe": TimeFrameFilter,
  "type": "contact"
}
Response
{
  "data": {
    "chargelogsPaged": {
      "data": [
        {
          "id": "c258a8ab-e265-4f14-a9ba-12cef13f49f7",
          "status": "stopped",
          "energyConsumption": 24.37
        }
      ],
      "pagination": {
        "limit": 10,
        "offset": 0,
        "totalCount": 1,
        "isLastPage": true
      }
    }
  }
}

chargingStatistics

Description

Get statistics for chargelogs (optionally within a specific timerange)

Example

query {
  chargingStatistics(timeframe: { start: "2026-01-01T00:00:00Z", end: "2026-03-31T23:59:59Z" }) {
    number
    energyConsumption
    co2Saving
  }
}
Response

Returns a ChargingStatistics

Arguments
Name Description
timeframe - TimeFrameFilter Restrict statistics to a specific time range. Omit for all-time statistics.

Example

Query
query chargingStatistics($timeframe: TimeFrameFilter) {
  chargingStatistics(timeframe: $timeframe) {
    co2Saving
    energyConsumption
    number
  }
}
Variables
{"timeframe": TimeFrameFilter}
Response
{
  "data": {
    "chargingStatistics": {
      "co2Saving": 186,
      "energyConsumption": 387.5,
      "number": 42
    }
  }
}

connector

Description

Load a single connector

Example

query {
  connector(id: "connector-uuid-...") {
    id
    evseId
    connectorType { label standard maxPowerRating }
    status { simple }
  }
}
Response

Returns a Connector

Arguments
Name Description
id - ID! UUID of the connector.
ignoreMarketingConfiguration - Boolean When true, returns the connector even if it is hidden by marketing configuration.

Example

Query
query connector(
  $id: ID!,
  $ignoreMarketingConfiguration: Boolean
) {
  connector(
    id: $id,
    ignoreMarketingConfiguration: $ignoreMarketingConfiguration
  ) {
    connectorType {
      ...ConnectorTypeFragment
    }
    cp {
      ...CpFragment
    }
    evseId
    freeOfCharge
    id
    label
    maintenanceWindows {
      ...ConnectorMaintenanceWindowFragment
    }
    physicalReference
    sortOrder
    status {
      ...ConnectorStatusFragment
    }
  }
}
Variables
{
  "id": "4",
  "ignoreMarketingConfiguration": false
}
Response
{
  "data": {
    "connector": {
      "connectorType": {
        "id": "36",
        "label": "Type 2 – 22 kW",
        "plugType": "Type 2 Outlet",
        "chargePointType": "AC",
        "maxPowerRating": 22
      },
      "cp": {
        "id": "624e81bd-c0cf-4252-9bc4-30054fb6a6a8",
        "label": "Main Street Station",
        "publicName": "Main Street Station"
      },
      "evseId": "AT*HTB*E000001*1",
      "freeOfCharge": false,
      "id": "5c749d00-315f-4127-a94d-17289206d054",
      "label": "Connector 1",
      "maintenanceWindows": [],
      "physicalReference": "1",
      "sortOrder": "1",
      "status": {
        "connectorId": "5c749d00-315f-4127-a94d-17289206d054",
        "calculated": "Available",
        "ocpp": "Available",
        "simple": "Available"
      }
    }
  }
}

connectorByEvseId

Description

Load a single connector by its EVSEID.

Response

Returns a Connector

Arguments
Name Description
evseId - String! The EVSE ID (Electric Vehicle Supply Equipment identifier) of the connector.
ignoreMarketingConfiguration - Boolean When true, returns the connector even if it is hidden by marketing configuration.

Example

Query
query connectorByEvseId(
  $evseId: String!,
  $ignoreMarketingConfiguration: Boolean
) {
  connectorByEvseId(
    evseId: $evseId,
    ignoreMarketingConfiguration: $ignoreMarketingConfiguration
  ) {
    connectorType {
      ...ConnectorTypeFragment
    }
    cp {
      ...CpFragment
    }
    evseId
    freeOfCharge
    id
    label
    maintenanceWindows {
      ...ConnectorMaintenanceWindowFragment
    }
    physicalReference
    sortOrder
    status {
      ...ConnectorStatusFragment
    }
  }
}
Variables
{
  "evseId": "abc123",
  "ignoreMarketingConfiguration": false
}
Response
{
  "data": {
    "connectorByEvseId": {
      "connectorType": {
        "id": "36",
        "label": "Type 2 – 22 kW",
        "plugType": "Type 2 Outlet",
        "chargePointType": "AC",
        "maxPowerRating": 22
      },
      "cp": {
        "id": "624e81bd-c0cf-4252-9bc4-30054fb6a6a8",
        "label": "Main Street Station",
        "publicName": "Main Street Station"
      },
      "evseId": "AT*HTB*E000001*1",
      "freeOfCharge": false,
      "id": "5c749d00-315f-4127-a94d-17289206d054",
      "label": "Connector 1",
      "maintenanceWindows": [],
      "physicalReference": "1",
      "sortOrder": "1",
      "status": {
        "connectorId": "5c749d00-315f-4127-a94d-17289206d054",
        "calculated": "Available",
        "ocpp": "Available",
        "simple": "Available"
      }
    }
  }
}

contact

Description

Get the full contact record of the currently authenticated user (name, email, address, marketing preferences, role flags, etc.). Equivalent to "GET /me" in REST terms. Allowed for role CRM.

Example

query {
  contact {
    id
    firstName
    name
    email
    currency
  }
}
Response

Returns a Contact

Example

Query
query contact {
  contact {
    address {
      ...AddressFragment
    }
    birthday
    companyId
    createdAt
    currency {
      ...CurrencyFragment
    }
    displayName
    email
    firstName
    gender
    id
    isCompany
    isDeactivated
    language
    legalDocumentsAccepted {
      ...LegalDocumentAcceptedFragment
    }
    mobile
    name
    phone
    termsAndConditionsAccepted
    updatedAt
    vat
  }
}
Response
{
  "data": {
    "contact": {
      "address": {
        "street": "Mozartplatz 1",
        "city": "Salzburg",
        "zip": "5020",
        "country": "AT"
      },
      "birthday": "1985-06-15T00:00:00.000Z",
      "companyId": null,
      "createdAt": "2022-01-10T09:00:00.000Z",
      "currency": {"isoCode": "EUR"},
      "displayName": "Max Mustermann",
      "email": "max.mustermann@example.com",
      "firstName": "Max",
      "gender": "male",
      "id": "9d276eba-1ce2-47d2-a1ea-0c40a2b1479e",
      "isCompany": false,
      "isDeactivated": false,
      "language": "de_DE",
      "legalDocumentsAccepted": [
        {
          "legalDocumentType": "TERMS_AND_CONDITIONS",
          "legalDocumentAccepted": true
        },
        {"legalDocumentType": "PRIVACY_POLICY", "legalDocumentAccepted": true}
      ],
      "mobile": "+43 664 1234567",
      "name": "Mustermann",
      "phone": "+43 316 1234567",
      "termsAndConditionsAccepted": true,
      "updatedAt": "2024-03-01T14:22:00.000Z",
      "vat": "ATU12345678"
    }
  }
}

contractPaymentMethods

Description

List the payment methods configured at the tenant level for new contracts (e.g. SEPA, Postpaid, Optile-backed payment gateway). Each entry exposes the EMP, application ID, payment type, and terms-of-service URLs. Use registerPaymentMethod to enrol the user against the paymentGateway entry. Allowed for role CRM.

Example

query {
  contractPaymentMethods {
    uuid
    paymentName
    paymentType
    termsOfServiceUrl
  }
}
Response

Returns [ContractPaymentMethod]

Example

Query
query contractPaymentMethods {
  contractPaymentMethods {
    applicationId
    cardCreateMode
    createdAt
    directPaymentMethod
    emp
    paymentName
    paymentType
    termsOfServiceUrl
    termsOfUseUrl
    updatedAt
    uuid
  }
}
Response
{
  "data": {
    "contractPaymentMethods": [
      {
        "applicationId": "beenergised",
        "cardCreateMode": "OPTIONAL",
        "createdAt": "2022-01-01T00:00:00.000Z",
        "directPaymentMethod": "SEPA",
        "emp": "HTB",
        "paymentName": "SEPA Direct Debit",
        "paymentType": "SEPA",
        "termsOfServiceUrl": "https://example.has-to-be.com/terms",
        "termsOfUseUrl": "https://example.has-to-be.com/terms-of-use",
        "updatedAt": "2024-01-01T00:00:00.000Z",
        "uuid": "5ffe9724-2ef1-4191-9a5c-682a20f7a0fb"
      }
    ]
  }
}

contractRateOptions

Description

Get rate options applicable to contracts and available to clients.

Response

Returns [RateOption!]

Example

Query
query contractRateOptions {
  contractRateOptions {
    description
    id
    name
    preauthAmount
    preauthCurrencyAmount {
      ...CurrencyAmountFragment
    }
    preauthCurrencyAmounts {
      ...CurrencyAmountFragment
    }
    shortDescription
    uuid
  }
}
Response
{
  "data": {
    "contractRateOptions": [
      {
        "description": "Pay per kWh — billed after the session ends.",
        "id": "6c69d520-44c4-48be-8192-22b3d97ed975",
        "name": "Standard Rate",
        "preauthAmount": 30,
        "preauthCurrencyAmount": {"amount": 30, "currency": {"isoCode": "EUR"}},
        "preauthCurrencyAmounts": [
          {"amount": 30, "currency": {"isoCode": "EUR"}}
        ],
        "shortDescription": "0.35 EUR/kWh",
        "uuid": "6c69d520-44c4-48be-8192-22b3d97ed975"
      }
    ]
  }
}

cp

Description

Load a single charging point by its UUID, including connectors, status, and site info

Response

Returns a Cp

Arguments
Name Description
id - ID! UUID of the charging point.
ignoreMarketingConfiguration - Boolean When true, returns the CP even if it is hidden by marketing configuration.

Example

Query
query cp(
  $id: ID!,
  $ignoreMarketingConfiguration: Boolean
) {
  cp(
    id: $id,
    ignoreMarketingConfiguration: $ignoreMarketingConfiguration
  ) {
    accessType
    additionalFields {
      ...AdditionalCpFieldFragment
    }
    address
    capabilities {
      ...CpCapabilitiesFragment
    }
    city
    connectors {
      ...ConnectorFragment
    }
    contact {
      ...ContactInformationFragment
    }
    country
    directions
    displayAttributes {
      ...DisplayAttributesFragment
    }
    id
    images {
      ...CpImageFragment
    }
    information {
      ...CpInfoFragment
    }
    isFavoured
    label
    latitude
    longitude
    operator {
      ...CpOperatorFragment
    }
    publicName
    site {
      ...SiteFragment
    }
    siteId
    status {
      ...CpStatusFragment
    }
    zip
  }
}
Variables
{"id": 4, "ignoreMarketingConfiguration": true}
Response
{
  "data": {
    "cp": {
      "accessType": "INTERNAL",
      "additionalFields": [],
      "address": "Mozartplatz 1",
      "capabilities": {"hasRemoteCommands": true},
      "city": "Salzburg",
      "connectors": [
        {
          "id": "5c749d00-315f-4127-a94d-17289206d054",
          "evseId": "AT*HTB*E000001*1",
          "label": "Connector 1"
        }
      ],
      "contact": {
        "email": "station-info@example.com",
        "phone": "+43 316 9876543"
      },
      "country": "AT",
      "directions": "Enter the parking garage on the left side.",
      "displayAttributes": {"mode": "DEFAULT"},
      "id": "624e81bd-c0cf-4252-9bc4-30054fb6a6a8",
      "images": [
        {
          "url": "https://files.example.has-to-be.com/cp-images/main-street-station.jpg"
        }
      ],
      "information": {
        "payment": "Prepaid or contract required",
        "additional": null
      },
      "isFavoured": false,
      "label": "Main Street Station",
      "latitude": 47.8095,
      "longitude": 13.055,
      "operator": {"identifier": "AT*HTB", "name": "has-to-be"},
      "publicName": "Main Street Station",
      "site": {
        "id": "12c25c47-255a-4c75-922b-69cd9b328140",
        "label": "Mozartplatz Parking"
      },
      "siteId": "12c25c47-255a-4c75-922b-69cd9b328140",
      "status": {
        "calculated": "Available",
        "ocpp": "Available",
        "simple": "Available"
      },
      "zip": "5020"
    }
  }
}

cpCapabilities

Description

Get the capabilities of an given charging station.

Response

Returns a CpCapabilities!

Arguments
Name Description
id - String! UUID of the charging station.

Example

Query
query cpCapabilities($id: String!) {
  cpCapabilities(id: $id) {
    hasRemoteCommands
  }
}
Variables
{"id": "xyz789"}
Response
{"data": {"cpCapabilities": {"hasRemoteCommands": true}}}

cpOccupancyRate

Description

Get the historical 24-hour occupancy curve for a single charging point on a given weekday. Returns one bucket per hour with the percentage of time the CP was occupied. Use the day argument with the OccupancyDays enum (e.g. MONDAY). Replaces the deprecated occupancyRate(connectors: [...]) query. Allowed for roles INI, CRM, ANYM.

Example

query {
  cpOccupancyRate(cpId: "cp-uuid-...", day: MONDAY) {
    day
    hour
    occupancyRate
  }
}
Response

Returns [OccupancyRate]

Arguments
Name Description
cpId - String! UUID of the charging point.
day - OccupancyDays! Weekday to retrieve occupancy data for (use the OccupancyDays enum, e.g. MONDAY).

Example

Query
query cpOccupancyRate(
  $cpId: String!,
  $day: OccupancyDays!
) {
  cpOccupancyRate(
    cpId: $cpId,
    day: $day
  ) {
    day
    hour
    occupancyRate
  }
}
Variables
{"cpId": "xyz789", "day": "ALL"}
Response
{
  "data": {
    "cpOccupancyRate": [{"day": "MONDAY", "hour": 9, "occupancyRate": 0.72}]
  }
}

cpsPaged

Description

Load a list of stations with pagination based on filters (optional)

Example

query {
  cpsPaged(pagination: { limit: 20, offset: 0 }) {
    pagination { totalCount }
    data {
      id
      label
      latitude
      longitude
      connectors { id status { simple } }
    }
  }
}
Response

Returns a CpsPaged

Arguments
Name Description
cursorPagination - CursorFilter Pagination by cursor. Only one pagination can be selected!
filter - [ConnectorFilter] Stations can be filtered on different properties of the Connector. Check out the type definition for more details.
freeOfCharge - Boolean
ignoreMarketingConfiguration - Boolean
pagination - PaginationFilter Pagination by limit and offset. Only one pagination can be selected!

Example

Query
query cpsPaged(
  $cursorPagination: CursorFilter,
  $filter: [ConnectorFilter],
  $freeOfCharge: Boolean,
  $ignoreMarketingConfiguration: Boolean,
  $pagination: PaginationFilter
) {
  cpsPaged(
    cursorPagination: $cursorPagination,
    filter: $filter,
    freeOfCharge: $freeOfCharge,
    ignoreMarketingConfiguration: $ignoreMarketingConfiguration,
    pagination: $pagination
  ) {
    data {
      ...CpFragment
    }
    pagination {
      ...PaginationInterfaceFragment
    }
  }
}
Variables
{
  "cursorPagination": CursorFilter,
  "filter": [ConnectorFilter],
  "freeOfCharge": true,
  "ignoreMarketingConfiguration": true,
  "pagination": PaginationFilter
}
Response
{
  "data": {
    "cpsPaged": {
      "data": [
        {
          "id": "624e81bd-c0cf-4252-9bc4-30054fb6a6a8",
          "label": "Main Street Station",
          "city": "Salzburg"
        }
      ],
      "pagination": {
        "limit": 10,
        "offset": 0,
        "totalCount": 1,
        "isLastPage": true
      }
    }
  }
}

cpsPagedLocationBased

Description

Load a list of stations with pagination based on location

Response

Returns a CpsPaged

Arguments
Name Description
filter - [ConnectorFilter] Stations can be filtered on different properties of the Connector. Check out the type definition for more details.
freeOfCharge - Boolean
ignoreMarketingConfiguration - Boolean
location - LocationFilter
orderedByDistance - String

If the Cps should be returned ordered by the distance or not.

The backend will order by distance when:

  • by default, when orderedByDistance is not specified
  • when orderedByDistance is "1" The backend will not order by distance only when:
  • when orderedByDistance is "0"
pagination - PaginationFilter

Example

Query
query cpsPagedLocationBased(
  $filter: [ConnectorFilter],
  $freeOfCharge: Boolean,
  $ignoreMarketingConfiguration: Boolean,
  $location: LocationFilter,
  $orderedByDistance: String,
  $pagination: PaginationFilter
) {
  cpsPagedLocationBased(
    filter: $filter,
    freeOfCharge: $freeOfCharge,
    ignoreMarketingConfiguration: $ignoreMarketingConfiguration,
    location: $location,
    orderedByDistance: $orderedByDistance,
    pagination: $pagination
  ) {
    data {
      ...CpFragment
    }
    pagination {
      ...PaginationInterfaceFragment
    }
  }
}
Variables
{
  "filter": [ConnectorFilter],
  "freeOfCharge": true,
  "ignoreMarketingConfiguration": false,
  "location": LocationFilter,
  "orderedByDistance": "abc123",
  "pagination": PaginationFilter
}
Response
{
  "data": {
    "cpsPagedLocationBased": {
      "data": [
        {
          "id": "624e81bd-c0cf-4252-9bc4-30054fb6a6a8",
          "label": "Main Street Station",
          "city": "Salzburg"
        }
      ],
      "pagination": {
        "limit": 10,
        "offset": 0,
        "totalCount": 1,
        "isLastPage": true
      }
    }
  }
}

filters

Description

Load a list of filters for the connector.

As the filter options can change over time, depending on the stations available in our system, the different options are not hardcoded.

Response

Returns [Filter]

Example

Query
query filters {
  filters {
    label
    options {
      ...FilterOptionFragment
    }
    slug
    type
  }
}
Response
{
  "data": {
    "filters": [
      {
        "label": "Power Class",
        "options": [
          {
            "slug": "power_class_high",
            "label": ">= 50kW",
            "default": false,
            "icon": null
          }
        ],
        "slug": "POWER_CLASS",
        "type": "multiselect"
      }
    ]
  }
}

getFavouriteCps

Description

List the charging points the current user has marked as favourites. Returns the full Cp shape (not just IDs). The reverse-side mutations setFavouriteCps and unsetFavouriteCps modify the list. Allowed for role CRM.

Example

query {
  getFavouriteCps {
    id
    label
    latitude
    longitude
  }
}
Response

Returns [Cp]

Example

Query
query getFavouriteCps {
  getFavouriteCps {
    accessType
    additionalFields {
      ...AdditionalCpFieldFragment
    }
    address
    capabilities {
      ...CpCapabilitiesFragment
    }
    city
    connectors {
      ...ConnectorFragment
    }
    contact {
      ...ContactInformationFragment
    }
    country
    directions
    displayAttributes {
      ...DisplayAttributesFragment
    }
    id
    images {
      ...CpImageFragment
    }
    information {
      ...CpInfoFragment
    }
    isFavoured
    label
    latitude
    longitude
    operator {
      ...CpOperatorFragment
    }
    publicName
    site {
      ...SiteFragment
    }
    siteId
    status {
      ...CpStatusFragment
    }
    zip
  }
}
Response
{
  "data": {
    "getFavouriteCps": [
      {
        "accessType": "INTERNAL",
        "additionalFields": [],
        "address": "Mozartplatz 1",
        "capabilities": {"hasRemoteCommands": true},
        "city": "Salzburg",
        "connectors": [
          {
            "id": "5c749d00-315f-4127-a94d-17289206d054",
            "evseId": "AT*HTB*E000001*1",
            "label": "Connector 1"
          }
        ],
        "contact": {
          "email": "station-info@example.com",
          "phone": "+43 316 9876543"
        },
        "country": "AT",
        "directions": "Enter the parking garage on the left side.",
        "displayAttributes": {"mode": "DEFAULT"},
        "id": "624e81bd-c0cf-4252-9bc4-30054fb6a6a8",
        "images": [
          {
            "url": "https://files.example.has-to-be.com/cp-images/main-street-station.jpg"
          }
        ],
        "information": {
          "payment": "Prepaid or contract required",
          "additional": null
        },
        "isFavoured": false,
        "label": "Main Street Station",
        "latitude": 47.8095,
        "longitude": 13.055,
        "operator": {"identifier": "AT*HTB", "name": "has-to-be"},
        "publicName": "Main Street Station",
        "site": {
          "id": "12c25c47-255a-4c75-922b-69cd9b328140",
          "label": "Mozartplatz Parking"
        },
        "siteId": "12c25c47-255a-4c75-922b-69cd9b328140",
        "status": {
          "calculated": "Available",
          "ocpp": "Available",
          "simple": "Available"
        },
        "zip": "5020"
      }
    ]
  }
}

hasPaymentMedium

Description

Returns true if current user already has an active payment medium and false if not.

Response

Returns a Boolean

Example

Query
query hasPaymentMedium {
  hasPaymentMedium
}
Response
{"data": {"hasPaymentMedium": true}}

legalDocuments

Description

The most recent legal document in device language. Possible types are "terms_and_conditions" and "privacy_policy".

Example

query {
  legalDocuments(type: TERMS_AND_CONDITIONS) {
    id
    url
    version
    type
  }
}
Response

Returns [LegalDocument!]!

Arguments
Name Description
type - LegalDocumentTypeEnum Filter by document type (e.g. TERMS_AND_CONDITIONS, PRIVACY_POLICY). Omit to retrieve all types.

Example

Query
query legalDocuments($type: LegalDocumentTypeEnum) {
  legalDocuments(type: $type) {
    id
    type
    url
    version
  }
}
Variables
{"type": "PRIVACY_POLICY"}
Response
{
  "data": {
    "legalDocuments": [
      {
        "id": "e7076445-fbaa-465b-af4f-925f4472560f",
        "type": "TERMS_AND_CONDITIONS",
        "url": "https://files.example.has-to-be.com/legal/terms-and-conditions-v3.pdf",
        "version": "3.0"
      }
    ]
  }
}

occupancyRate

Use cpOccupancyRate instead — operates on a single CP ID rather than a list of connector IDs.
Description

A query to get all occupancy of a connector

Response

Returns [OccupancyRate]

Arguments
Name Description
connectors - [String]! List of connector IDs to query occupancy for.
day - OccupancyDays! Weekday to retrieve occupancy data for (use the OccupancyDays enum).

Example

Query
query occupancyRate(
  $connectors: [String]!,
  $day: OccupancyDays!
) {
  occupancyRate(
    connectors: $connectors,
    day: $day
  ) {
    day
    hour
    occupancyRate
  }
}
Variables
{"connectors": ["xyz789"], "day": "ALL"}
Response
{
  "data": {
    "occupancyRate": [{"day": "MONDAY", "hour": 9, "occupancyRate": 0.72}]
  }
}

paymentMethods

Description

Get all payment cards registered in PSPs for the session user.

Response

Returns a PaymentMethods

Example

Query
query paymentMethods {
  paymentMethods {
    hostedSession {
      ...HostedPaymentMethodGetSessionFragment
    }
    nativeSession {
      ...NativePaymentMethodGetSessionFragment
    }
  }
}
Response
{
  "data": {
    "paymentMethods": {
      "hostedSession": HostedPaymentMethodGetSession,
      "nativeSession": NativePaymentMethodGetSession
    }
  }
}

ratePackageByConnectorId

Description

Get all rate packages by a specific connector uuid.

Example

query {
  ratePackageByConnectorId(id: "connector-uuid-...") {
    id
    amount
    visibleRuntime
    rate { name shortDescription }
  }
}
Response

Returns [RatePackage!]

Arguments
Name Description
id - String UUID of the connector to retrieve rate packages for.

Example

Query
query ratePackageByConnectorId($id: String) {
  ratePackageByConnectorId(id: $id) {
    amount
    automaticStop
    id
    rate {
      ...RateOptionFragment
    }
    visibleRuntime
  }
}
Variables
{"id": "abc123"}
Response
{
  "data": {
    "ratePackageByConnectorId": [
      {
        "amount": 30,
        "automaticStop": 120,
        "id": "28e70f8a-0589-40c6-a0b2-53c1b602fba1",
        "rate": {
          "id": "6c69d520-44c4-48be-8192-22b3d97ed975",
          "name": "Standard Rate",
          "shortDescription": "0.35 EUR/kWh"
        },
        "visibleRuntime": 120
      }
    ]
  }
}

remoteStartAttemptStatus

Description

Get the current status of the remoteStartAttempt

Response

Returns an AttemptRemoteStartResponse!

Arguments
Name Description
id - String! The id which you will get back after triggering a remoteStartAttempt

Example

Query
query remoteStartAttemptStatus($id: String!) {
  remoteStartAttemptStatus(id: $id) {
    chargeLogId
    connectorId
    failureReason
    id
    isFailure
    lastSentAt
    status
  }
}
Variables
{"id": "abc123"}
Response
{
  "data": {
    "remoteStartAttemptStatus": {
      "chargeLogId": "0ae16ec5-0810-449f-b452-8ab98110cdc4",
      "connectorId": "5c749d00-315f-4127-a94d-17289206d054",
      "failureReason": null,
      "id": "980d6288-4828-4a18-be20-dbdc7c3be164",
      "isFailure": false,
      "lastSentAt": "2024-03-15T10:23:45.000Z",
      "status": "ACCEPTED"
    }
  }
}

remoteStartWithPreauthStatus

Description

Get the current status of the remote start with preauth

Response

Returns a RemoteStartResponse

Arguments
Name Description
remoteStartPreauthId - String! The preauth remote start session ID returned by the remoteStartWithPreauth mutation.

Example

Query
query remoteStartWithPreauthStatus($remoteStartPreauthId: String!) {
  remoteStartWithPreauthStatus(remoteStartPreauthId: $remoteStartPreauthId) {
    attemptId
    code
    id
    message
    session
    status
    transaction
  }
}
Variables
{"remoteStartPreauthId": "xyz789"}
Response
{
  "data": {
    "remoteStartWithPreauthStatus": {
      "attemptId": "xyz789",
      "code": 200,
      "id": "980d6288-4828-4a18-be20-dbdc7c3be164",
      "message": "Remote start accepted.",
      "session": "TXN-20240315-00042",
      "status": "ACCEPTED",
      "transaction": "TXN-20240315-00042"
    }
  }
}

settings

Description

Get global tenant-level settings — legal documents (terms, privacy, etc.), the CRM currency, and the configured app-store rating. Pass key to filter to a single setting type (e.g. key: "crm_currency"). Allowed for roles INI, CRM, ANYM.

Example

query {
  settings {
    key
    value
  }
}
Response

Returns [Setting!]!

Arguments
Name Description
key - String Optional setting key to filter by (e.g. "crm_currency", "app_rating"). Omit to retrieve all settings.

Example

Query
query settings($key: String) {
  settings(key: $key) {
    key
    value
  }
}
Variables
{"key": "abc123"}
Response
{
  "data": {
    "settings": [
      {
        "key": "app.support.email",
        "value": "support-beenergised@chargepoint.com"
      }
    ]
  }
}

site

Description

Load a site by id

Response

Returns a Site

Arguments
Name Description
id - String UUID of the site.
ignoreMarketingConfiguration - Boolean When true, returns the site even if it is hidden by marketing configuration.

Example

Query
query site(
  $id: String,
  $ignoreMarketingConfiguration: Boolean
) {
  site(
    id: $id,
    ignoreMarketingConfiguration: $ignoreMarketingConfiguration
  ) {
    company
    cps {
      ...CpFragment
    }
    id
    label
    latitude
    longitude
    scope
  }
}
Variables
{
  "id": "abc123",
  "ignoreMarketingConfiguration": true
}
Response
{
  "data": {
    "site": {
      "company": "City of Salzburg",
      "cps": [
        {
          "id": "624e81bd-c0cf-4252-9bc4-30054fb6a6a8",
          "label": "Main Street Station"
        }
      ],
      "id": "12c25c47-255a-4c75-922b-69cd9b328140",
      "label": "Mozartplatz Parking",
      "latitude": 47.8095,
      "longitude": 13.055,
      "scope": "public"
    }
  }
}

sitesPaged

Description

Load a paginated list of sites (locations), optionally filtered by connector properties

Response

Returns a SitesPaged

Arguments
Name Description
filter - [ConnectorFilter] Connector property filters (use the filters query to discover available options).
ignoreMarketingConfiguration - Boolean When true, returns sites even if hidden by marketing configuration.
pagination - PaginationFilter Pagination parameters (limit and offset).

Example

Query
query sitesPaged(
  $filter: [ConnectorFilter],
  $ignoreMarketingConfiguration: Boolean,
  $pagination: PaginationFilter
) {
  sitesPaged(
    filter: $filter,
    ignoreMarketingConfiguration: $ignoreMarketingConfiguration,
    pagination: $pagination
  ) {
    data {
      ...SiteFragment
    }
    pagination {
      ...PaginationFragment
    }
  }
}
Variables
{
  "filter": [ConnectorFilter],
  "ignoreMarketingConfiguration": false,
  "pagination": PaginationFilter
}
Response
{
  "data": {
    "sitesPaged": {
      "data": [
        {
          "id": "12c25c47-255a-4c75-922b-69cd9b328140",
          "label": "Mozartplatz Parking"
        }
      ],
      "pagination": {
        "limit": 10,
        "offset": 0,
        "totalCount": 1,
        "isLastPage": true
      }
    }
  }
}

sitesPagedLocationBased

Description

Load a paginated list of sites with location-based proximity search

Response

Returns a SitesPaged

Arguments
Name Description
filter - [ConnectorFilter] Connector property filters (use the filters query to discover available options).
ignoreMarketingConfiguration - Boolean When true, returns sites even if hidden by marketing configuration.
location - LocationFilter Geographic center and radius to search within.
pagination - PaginationFilter Pagination parameters (limit and offset).

Example

Query
query sitesPagedLocationBased(
  $filter: [ConnectorFilter],
  $ignoreMarketingConfiguration: Boolean,
  $location: LocationFilter,
  $pagination: PaginationFilter
) {
  sitesPagedLocationBased(
    filter: $filter,
    ignoreMarketingConfiguration: $ignoreMarketingConfiguration,
    location: $location,
    pagination: $pagination
  ) {
    data {
      ...SiteFragment
    }
    pagination {
      ...PaginationFragment
    }
  }
}
Variables
{
  "filter": [ConnectorFilter],
  "ignoreMarketingConfiguration": false,
  "location": LocationFilter,
  "pagination": PaginationFilter
}
Response
{
  "data": {
    "sitesPagedLocationBased": {
      "data": [
        {
          "id": "12c25c47-255a-4c75-922b-69cd9b328140",
          "label": "Mozartplatz Parking"
        }
      ],
      "pagination": {
        "limit": 10,
        "offset": 0,
        "totalCount": 1,
        "isLastPage": true
      }
    }
  }
}

termsAndConditions

Use legalDocument instead.
Description

The most recent terms and conditions in device language.

Response

Returns a LegalDocument

Example

Query
query termsAndConditions {
  termsAndConditions {
    id
    type
    url
    version
  }
}
Response
{
  "data": {
    "termsAndConditions": {
      "id": "e7076445-fbaa-465b-af4f-925f4472560f",
      "type": "TERMS_AND_CONDITIONS",
      "url": "https://files.example.has-to-be.com/legal/terms-and-conditions-v3.pdf",
      "version": "3.0"
    }
  }
}

Mutations

acceptLegalDocument

Description

Accept a legal document like "Terms and Conditions" or "Privacy Policy" by uuid.

Response

Returns a LegalDocumentStatus!

Arguments
Name Description
id - String! UUID of the legal document to accept (terms and conditions or privacy policy).

Example

Query
mutation acceptLegalDocument($id: String!) {
  acceptLegalDocument(id: $id) {
    message
    status
  }
}
Variables
{"id": "abc123"}
Response
{
  "data": {
    "acceptLegalDocument": {
      "message": "Legal document accepted successfully.",
      "status": "success"
    }
  }
}

acceptTermsAndConditions

Use acceptLegalDocument instead.
Description

Accept the terms and conditions by uuid.

Response

Returns a TermsAndConditionsStatus!

Arguments
Name Description
id - String! UUID of the terms-and-conditions document to accept.

Example

Query
mutation acceptTermsAndConditions($id: String!) {
  acceptTermsAndConditions(id: $id) {
    message
    status
  }
}
Variables
{"id": "abc123"}
Response
{
  "data": {
    "acceptTermsAndConditions": {
      "message": "Terms and conditions accepted successfully.",
      "status": "success"
    }
  }
}

attemptRemoteStart

Description

Is similar to the remote start, but provides the customer with more detailed information about the current status. To get the current status after the mutation you need this query: remoteStartAttemptStatus

        <!-- @module chargingProcess -->
Response

Returns an AttemptRemoteStartResponse!

Arguments
Name Description
input - AttemptRemoteStartInput! The remote start input containing connectorId, tagId, and optional config.

Example

Query
mutation attemptRemoteStart($input: AttemptRemoteStartInput!) {
  attemptRemoteStart(input: $input) {
    chargeLogId
    connectorId
    failureReason
    id
    isFailure
    lastSentAt
    status
  }
}
Variables
{"input": AttemptRemoteStartInput}
Response
{
  "data": {
    "attemptRemoteStart": {
      "chargeLogId": "0ae16ec5-0810-449f-b452-8ab98110cdc4",
      "connectorId": "5c749d00-315f-4127-a94d-17289206d054",
      "failureReason": null,
      "id": "980d6288-4828-4a18-be20-dbdc7c3be164",
      "isFailure": false,
      "lastSentAt": "2024-03-15T10:23:45.000Z",
      "status": "ACCEPTED"
    }
  }
}

createAuthenticationMedia

Description

Create an authentication media

Response

Returns an AuthenticationMediaResponse

Arguments
Name Description
authenticationMedia - authenticationMediaContract! The authentication media (card) details including rateId and customerReference.

Example

Query
mutation createAuthenticationMedia($authenticationMedia: authenticationMediaContract!) {
  createAuthenticationMedia(authenticationMedia: $authenticationMedia) {
    customerReference
    id
    rateId
  }
}
Variables
{"authenticationMedia": authenticationMediaContract}
Response
{
  "data": {
    "createAuthenticationMedia": {
      "customerReference": "My charging card",
      "id": "80c085ee-cec6-43ec-a7de-2da8fe72688c",
      "rateId": "6c69d520-44c4-48be-8192-22b3d97ed975"
    }
  }
}

createPostpaidContract

Description

Create a new postpaid billing contract for the authenticated user

Response

Returns a ContractPostpaidResponse

Arguments
Name Description
postpaidContract - creatingPostpaidContract The postpaid contract details to create.

Example

Query
mutation createPostpaidContract($postpaidContract: creatingPostpaidContract) {
  createPostpaidContract(postpaidContract: $postpaidContract) {
    error {
      ...ContractErrorBodyFragment
    }
    message
    status
  }
}
Variables
{"postpaidContract": creatingPostpaidContract}
Response
{
  "data": {
    "createPostpaidContract": {
      "error": null,
      "message": "Contract created successfully.",
      "status": "success"
    }
  }
}

createSepaContract

Description

Create a new SEPA direct debit contract with bank account details

Response

Returns a ContractSepaResponse

Arguments
Name Description
sepaContract - creatingSepaContract The SEPA contract details to create.

Example

Query
mutation createSepaContract($sepaContract: creatingSepaContract) {
  createSepaContract(sepaContract: $sepaContract) {
    error {
      ...ContractErrorBodyFragment
    }
    message
    status
  }
}
Variables
{"sepaContract": creatingSepaContract}
Response
{
  "data": {
    "createSepaContract": {
      "error": null,
      "message": "SEPA contract created successfully.",
      "status": "success"
    }
  }
}

deleteContact

Description

Delete Contact: Deleting the current logged in user

Response

Returns a ContactDeleteResponse

Example

Query
mutation deleteContact {
  deleteContact {
    additionalFields {
      ...AdditionalRegistrationFieldFragment
    }
    error {
      ...ErrorBodyFragment
    }
    profile {
      ...ContactFragment
    }
    status
  }
}
Response
{
  "data": {
    "deleteContact": {
      "additionalFields": [],
      "error": null,
      "profile": null,
      "status": "success"
    }
  }
}

initAnonymousSession

Description

Initialise an anonymous session (no user identity required). Returns a JWT pair scoped to role ANYM, which grants read-only access to public charging-point information (e.g. cpsPaged, cpOccupancyRate, settings). Use this when your client wants to browse the network before login. Allowed for role INI.

Example

mutation {
  initAnonymousSession {
    sessionToken
    refreshToken
  }
}
Response

Returns a SessionAuthenticationResponse!

Example

Query
mutation initAnonymousSession {
  initAnonymousSession {
    refreshToken
    sessionToken
  }
}
Response
{
  "data": {
    "initAnonymousSession": {
      "refreshToken": "eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI5ZDI3NmViYS0xY2UyLTQ3ZDItYTFlYS0wYzQwYTJiMTQ3OWUiLCJyb2xlIjoiUkZUIiwiaWF0IjoxNzEwNDkxMjAwLCJleHAiOjE3MTMwODMyMDB9.signature",
      "sessionToken": "eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI5ZDI3NmViYS0xY2UyLTQ3ZDItYTFlYS0wYzQwYTJiMTQ3OWUiLCJyb2xlIjoiQ1JNIiwiaWF0IjoxNzEwNDkxMjAwLCJleHAiOjE3MTA0OTQ4MDB9.signature"
    }
  }
}

initSession

Description

Initialise an authenticated session for an existing user. Exchanges a username and password for a session-token / refresh-token pair (JWT). The returned sessionToken must be sent as Authorization: Bearer <token> on all subsequent CRM-role queries; the refreshToken is only valid for renewSession. Errors: EMAIL_CONFIRMATION_REQUIRED if the email has never been confirmed; otherwise "Wrong username or password." Allowed for role INI only.

Example

mutation {
  initSession(username: "user@example.com", password: "s3cret") {
    sessionToken
    refreshToken
  }
}
Response

Returns a SessionAuthenticationResponse!

Arguments
Name Description
password - String! The user's password.
username - String! The user's email address or login name.

Example

Query
mutation initSession(
  $password: String!,
  $username: String!
) {
  initSession(
    password: $password,
    username: $username
  ) {
    refreshToken
    sessionToken
  }
}
Variables
{
  "password": "abc123",
  "username": "xyz789"
}
Response
{
  "data": {
    "initSession": {
      "refreshToken": "eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI5ZDI3NmViYS0xY2UyLTQ3ZDItYTFlYS0wYzQwYTJiMTQ3OWUiLCJyb2xlIjoiUkZUIiwiaWF0IjoxNzEwNDkxMjAwLCJleHAiOjE3MTMwODMyMDB9.signature",
      "sessionToken": "eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI5ZDI3NmViYS0xY2UyLTQ3ZDItYTFlYS0wYzQwYTJiMTQ3OWUiLCJyb2xlIjoiQ1JNIiwiaWF0IjoxNzEwNDkxMjAwLCJleHAiOjE3MTA0OTQ4MDB9.signature"
    }
  }
}

invalidateSession

Description

Log the current user out by invalidating the refresh token server-side. The session token will continue to work until natural expiry — clients should also discard it locally. Throws SESSION_INVALIDATION_ERROR if the server-side invalidation fails. Allowed for role CRM.

Example

mutation {
  invalidateSession {
    isInvalidated
    status
  }
}
Response

Returns a SessionInvalidationResponse!

Example

Query
mutation invalidateSession {
  invalidateSession {
    isInvalidated
    status
  }
}
Response
{"data": {"invalidateSession": {"isInvalidated": true, "status": "success"}}}

registerContact

Description

Create user profile: Expecting a JSON containing the users information a new account is created in the mandant

Response

Returns a ContactResponse

Arguments
Name Description
additionalFields - [AdditionalRegistrationFieldInput] Tenant-specific additional fields required for registration.
contactProfile - RegisteringContactProfile The user profile data for the new account.

Example

Query
mutation registerContact(
  $additionalFields: [AdditionalRegistrationFieldInput],
  $contactProfile: RegisteringContactProfile
) {
  registerContact(
    additionalFields: $additionalFields,
    contactProfile: $contactProfile
  ) {
    additionalFields {
      ...AdditionalRegistrationFieldFragment
    }
    error {
      ...ErrorBodyFragment
    }
    profile {
      ...ContactFragment
    }
  }
}
Variables
{
  "additionalFields": [AdditionalRegistrationFieldInput],
  "contactProfile": RegisteringContactProfile
}
Response
{
  "data": {
    "registerContact": {
      "additionalFields": [],
      "error": null,
      "profile": {
        "id": "9d276eba-1ce2-47d2-a1ea-0c40a2b1479e",
        "email": "max.mustermann@example.com"
      }
    }
  }
}

registerPaymentMethod

Description

Register a new payment method for the current user via Optile. The returned link should be opened in a browser/webview to complete card or SEPA enrolment; id is the Optile transaction handle for status polling. rateId ties the registration to the rate package the user is signing up to. callbackType controls whether Optile posts the success callback as JSON (server-to-server) or HTML (browser redirect). Allowed for role CRM.

Example

mutation {
  registerPaymentMethod(rateId: "rate-uuid-...", callbackType: JSON) {
    id
    absoluteLink
  }
}
Response

Returns an OptileTransaction

Arguments
Name Description
callbackType - PaymentCallbackType Callback format for Optile: JSON (server-to-server) or HTML (browser redirect). Defaults to JSON. Default = JSON
customerReference - String Optional customer reference string for the payment registration.
rateId - String! UUID of the rate package the user is enrolling in.

Example

Query
mutation registerPaymentMethod(
  $callbackType: PaymentCallbackType,
  $customerReference: String,
  $rateId: String!
) {
  registerPaymentMethod(
    callbackType: $callbackType,
    customerReference: $customerReference,
    rateId: $rateId
  ) {
    absoluteLink
    id
    link
  }
}
Variables
{
  "callbackType": "JSON",
  "customerReference": "xyz789",
  "rateId": "xyz789"
}
Response
{
  "data": {
    "registerPaymentMethod": {
      "absoluteLink": "https://payment-gateway.example.com/checkout/txn-optile-00123",
      "id": "txn-optile-00123",
      "link": "/checkout/txn-optile-00123"
    }
  }
}

remoteStart

Description

Start a remote charging process

Example

mutation {
  remoteStart(authorization: { identifier: "tag-id-...", type: RFID }, connector: "connector-uuid-...") {
    id
    status
    transaction
  }
}
Response

Returns a RemoteStartResponse

Arguments
Name Description
authorization - Authorization The authorization credentials (identifier + type) to use for the charging session.
connector - String UUID of the connector to start charging on.

Example

Query
mutation remoteStart(
  $authorization: Authorization,
  $connector: String
) {
  remoteStart(
    authorization: $authorization,
    connector: $connector
  ) {
    attemptId
    code
    id
    message
    session
    status
    transaction
  }
}
Variables
{
  "authorization": Authorization,
  "connector": "xyz789"
}
Response
{
  "data": {
    "remoteStart": {
      "attemptId": "xyz789",
      "code": 200,
      "id": "980d6288-4828-4a18-be20-dbdc7c3be164",
      "message": "Remote start accepted.",
      "session": "TXN-20240315-00042",
      "status": "ACCEPTED",
      "transaction": "TXN-20240315-00042"
    }
  }
}

remoteStartWithPreauth

Description

Start a remote charging process with preauthorization.

Response

Returns a RemoteStartWithPreauthResponse

Arguments
Name Description
authorization - Authorization The authorization credentials (identifier + type) to use for the charging session.
connector - String UUID of the connector to start charging on.
preauthCurrencyAmount - CurrencyAmountInput The preauthorization amount to use. Must be one of the values returned by RateOption.preauthCurrencyAmounts for this connector — not a freely chosen amount.

Example

Query
mutation remoteStartWithPreauth(
  $authorization: Authorization,
  $connector: String,
  $preauthCurrencyAmount: CurrencyAmountInput
) {
  remoteStartWithPreauth(
    authorization: $authorization,
    connector: $connector,
    preauthCurrencyAmount: $preauthCurrencyAmount
  ) {
    message
    redirectUrl
    remoteStartPreauthId
  }
}
Variables
{
  "authorization": Authorization,
  "connector": "xyz789",
  "preauthCurrencyAmount": CurrencyAmountInput
}
Response
{
  "data": {
    "remoteStartWithPreauth": {
      "message": "Preauth initiated. Complete payment to start charging.",
      "redirectUrl": "https://payment-gateway.example.com/checkout/preauth-00123",
      "remoteStartPreauthId": "980d6288-4828-4a18-be20-dbdc7c3be164"
    }
  }
}

remoteStartWithoutInvoicing

Description

Start a remote charging process without invoicing

Response

Returns a RemoteStartResponse

Arguments
Name Description
authorization - Authorization The authorization credentials (identifier + type) to use for the charging session.
connector - String UUID of the connector to start charging on.

Example

Query
mutation remoteStartWithoutInvoicing(
  $authorization: Authorization,
  $connector: String
) {
  remoteStartWithoutInvoicing(
    authorization: $authorization,
    connector: $connector
  ) {
    attemptId
    code
    id
    message
    session
    status
    transaction
  }
}
Variables
{
  "authorization": Authorization,
  "connector": "xyz789"
}
Response
{
  "data": {
    "remoteStartWithoutInvoicing": {
      "attemptId": "xyz789",
      "code": 200,
      "id": "980d6288-4828-4a18-be20-dbdc7c3be164",
      "message": "Remote start accepted.",
      "session": "TXN-20240315-00042",
      "status": "ACCEPTED",
      "transaction": "TXN-20240315-00042"
    }
  }
}

remoteStop

Description

Stop a remote charging process

Example

mutation {
  remoteStop(transaction: "transaction-id-...") {
    status
    message
  }
}
Response

Returns a RemoteStopResponse

Arguments
Name Description
transaction - String The transaction ID of the charging session to stop (returned by remoteStart).

Example

Query
mutation remoteStop($transaction: String) {
  remoteStop(transaction: $transaction) {
    code
    message
    status
    title
  }
}
Variables
{"transaction": "xyz789"}
Response
{
  "data": {
    "remoteStop": {
      "code": 200,
      "message": "Remote stop accepted.",
      "status": "ACCEPTED",
      "title": "Stop Accepted"
    }
  }
}

renewSession

Description

Exchange a still-valid refreshToken for a new sessionToken + refreshToken pair. Use just before the current sessionToken expires. The previous refresh token is single-use and is invalidated server-side. Allowed for role RFT.

Example

mutation {
  renewSession {
    sessionToken
    refreshToken
  }
}
Response

Returns a SessionAuthenticationResponse!

Example

Query
mutation renewSession {
  renewSession {
    refreshToken
    sessionToken
  }
}
Response
{
  "data": {
    "renewSession": {
      "refreshToken": "eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI5ZDI3NmViYS0xY2UyLTQ3ZDItYTFlYS0wYzQwYTJiMTQ3OWUiLCJyb2xlIjoiUkZUIiwiaWF0IjoxNzEwNDkxMjAwLCJleHAiOjE3MTMwODMyMDB9.signature",
      "sessionToken": "eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI5ZDI3NmViYS0xY2UyLTQ3ZDItYTFlYS0wYzQwYTJiMTQ3OWUiLCJyb2xlIjoiQ1JNIiwiaWF0IjoxNzEwNDkxMjAwLCJleHAiOjE3MTA0OTQ4MDB9.signature"
    }
  }
}

setFavouriteCps

Description

Update the list of favourite Charge Points for the current user

Response

Returns [CpFavouredStatus]

Arguments
Name Description
ids - [String]! List of charging point UUIDs to add as favourites.

Example

Query
mutation setFavouriteCps($ids: [String]!) {
  setFavouriteCps(ids: $ids) {
    id
    isFavoured
  }
}
Variables
{"ids": ["abc123"]}
Response
{
  "data": {
    "setFavouriteCps": [
      {"id": "624e81bd-c0cf-4252-9bc4-30054fb6a6a8", "isFavoured": true}
    ]
  }
}

unsetFavouriteCps

Description

Removing the favourite Charge Points for the current user

Response

Returns [CpFavouredStatus]

Arguments
Name Description
ids - [String]! List of charging point UUIDs to remove from favourites.

Example

Query
mutation unsetFavouriteCps($ids: [String]!) {
  unsetFavouriteCps(ids: $ids) {
    id
    isFavoured
  }
}
Variables
{"ids": ["xyz789"]}
Response
{
  "data": {
    "unsetFavouriteCps": [
      {"id": "624e81bd-c0cf-4252-9bc4-30054fb6a6a8", "isFavoured": true}
    ]
  }
}

updateCard

Description

Update an existing authentication card belonging to the authenticated user — change its label (display name) and/or status (ACTIVATE / DEACTIVATE). The cardId argument is the card UUID. Returns the full updated card record. Allowed for role CRM.

Example

mutation {
  updateCard(input: { cardId: "a1b2c3d4-...", label: "My Office Card", status: ACTIVATE }) {
    id
    label
    status
  }
}
Response

Returns an UpdateCardResponse!

Arguments
Name Description
input - UpdateCardInput! The card update payload containing cardId, optional label, and optional status.

Example

Query
mutation updateCard($input: UpdateCardInput!) {
  updateCard(input: $input) {
    expiryDate
    id
    label
    message
    number
    status
    tagId
    type
  }
}
Variables
{"input": UpdateCardInput}
Response
{
  "data": {
    "updateCard": {
      "expiryDate": "2026-12-31",
      "id": "4a7fb3a6-c5ff-4739-b46c-c013a4c8ce3f",
      "label": "My Work Card",
      "message": "Card updated successfully.",
      "number": "HTB-0001234",
      "status": "active",
      "tagId": "c1a4f434-d8c1-4bc3-8b51-4784298cc442",
      "type": "default"
    }
  }
}

updateContact

Description

Update user profile: Providing a user ID and user JSON, all set fields with a non null value will be updated for user.

Response

Returns a ContactResponse

Arguments
Name Description
contactProfile - ContactProfile! The user profile fields to update (only non-null fields are applied).

Example

Query
mutation updateContact($contactProfile: ContactProfile!) {
  updateContact(contactProfile: $contactProfile) {
    additionalFields {
      ...AdditionalRegistrationFieldFragment
    }
    error {
      ...ErrorBodyFragment
    }
    profile {
      ...ContactFragment
    }
  }
}
Variables
{"contactProfile": ContactProfile}
Response
{
  "data": {
    "updateContact": {
      "additionalFields": [],
      "error": null,
      "profile": {
        "id": "9d276eba-1ce2-47d2-a1ea-0c40a2b1479e",
        "email": "max.mustermann@example.com"
      }
    }
  }
}

updatePostpaidContract

Description

Update an existing postpaid contract (e.g. change customer reference)

Response

Returns a ContractPostpaidResponse

Arguments
Name Description
postpaidContract - updatePostpaidContract The postpaid contract fields to update.

Example

Query
mutation updatePostpaidContract($postpaidContract: updatePostpaidContract) {
  updatePostpaidContract(postpaidContract: $postpaidContract) {
    error {
      ...ContractErrorBodyFragment
    }
    message
    status
  }
}
Variables
{"postpaidContract": updatePostpaidContract}
Response
{
  "data": {
    "updatePostpaidContract": {
      "error": null,
      "message": "Contract created successfully.",
      "status": "success"
    }
  }
}

updateSepaContract

Description

Update an existing SEPA contract (e.g. change bank details or customer reference)

Response

Returns a ContractSepaResponse

Arguments
Name Description
updateSepaContract - updatingSepaContract The SEPA contract fields to update.

Example

Query
mutation updateSepaContract($updateSepaContract: updatingSepaContract) {
  updateSepaContract(updateSepaContract: $updateSepaContract) {
    error {
      ...ContractErrorBodyFragment
    }
    message
    status
  }
}
Variables
{"updateSepaContract": updatingSepaContract}
Response
{
  "data": {
    "updateSepaContract": {
      "error": null,
      "message": "SEPA contract created successfully.",
      "status": "success"
    }
  }
}

Types

AccessType

Description

AccessType defines the possible states of how the station can be accessed. Typically a station is either external (e.g. via Roaming) or is a internal station.

Values
Enum Value Description

INTERNAL

The station is accessible via the internal infrastructure

ROAMING

The station is accessible via an external roaming interface
Example
"INTERNAL"

AccountDocument

Description

Details about one document.

Fields
Field Name Description
documentDate - DateTime The date when the document was issued
downloadLink - String A Link to download the pdf
id - String UUID of the document.
title - String The title of the document
type - accountDocumentType The type of the document
Example
{
  "documentDate": "2024-03-15T00:00:00.000Z",
  "downloadLink": "https://files.example.has-to-be.com/invoices/cbce05d9-9172-4201-a8e4-bd3b47366097.pdf",
  "id": "cbce05d9-9172-4201-a8e4-bd3b47366097",
  "title": "Invoice 2024-001",
  "type": "invoice"
}

AccountDocumentsPaged

Description

AccountDocuments filtered by page

Fields
Field Name Description
data - [AccountDocument] The paged set of documents of the authenticated user.
pagination - Pagination Pagination filter
Example
{
  "data": [
    {
      "id": "cbce05d9-9172-4201-a8e4-bd3b47366097",
      "title": "Invoice 2024-001",
      "type": "invoice"
    }
  ],
  "pagination": {"limit": 10, "offset": 0, "totalCount": 1, "isLastPage": true}
}

AdditionalCpField

Description

A custom key-value field configured per tenant for a charging point.

Fields
Field Name Description
name - String Field name / key.
value - String Field value.
Example
{"name": "parking_fee", "value": "Free for 2 hours"}

AdditionalRegistrationField

Description

A tenant-specific extra field shown during registration.

Fields
Field Name Description
description - String Human-readable description of what this field is for.
name - String Field name / identifier.
required - String Whether this field is mandatory ("1" = required).
type - String Data type hint (e.g. text, number).
value - String Current or default value of the field.
Example
{
  "description": "Your company employee ID",
  "name": "employee_id",
  "required": "true",
  "type": "text",
  "value": "EMP-00123"
}

AdditionalRegistrationFieldInput

Description

Input for submitting a tenant-specific additional registration field value.

Fields
Input Field Description
description - String Human-readable description of the field.
name - String! Field name / identifier.
required - String! Whether this field is mandatory ("1" = required).
type - String Data type hint for the field (e.g. text, number).
value - String! The user-provided value for this field.
Example
{
  "description": "Your company employee ID",
  "name": "employee_id",
  "required": "true",
  "type": "text",
  "value": "EMP-00123"
}

Address

Description

Postal address of a contact.

Fields
Field Name Description
city - String City name.
country - CountryAlpha Country (ISO 3166-1 alpha-2 code).
state - String State or province.
street - String Street name and number.
zip - String Postal / ZIP code.
Example
{
  "city": "Salzburg",
  "country": "AT",
  "state": "Salzburg",
  "street": "Mozartplatz 1",
  "zip": "5020"
}

AddressInput

Description

Postal address input for creating or updating a contact.

Fields
Input Field Description
city - String City name.
country - CountryAlpha Country (ISO 3166-1 alpha-2 code).
state - String State or province.
street - String Street name and number.
zip - String Postal / ZIP code.
Example
{
  "city": "Salzburg",
  "country": "AT",
  "state": "Salzburg",
  "street": "Mozartplatz 1",
  "zip": "5020"
}

AttemptRemoteStartConfig

Description

Additional configuration options for the remote start attempt.

Fields
Input Field Description
ratePackage - String ID of a selected rate package.
stopMinutes - Int Number of minutes after which a remote stop is automatically triggered.
validUntil - String A start will be permitted until the specified date and time. If validUntil is not set, it is automatically set to now +10 minutes.
Must be a valid ISO 8601 date string.
Example
{
  "ratePackage": "28e70f8a-0589-40c6-a0b2-53c1b602fba1",
  "stopMinutes": 120,
  "validUntil": "2025-05-07T15:30:00Z"
}

AttemptRemoteStartInput

Description

Input for attempting a remote start on a connector with a specific card.

Fields
Input Field Description
config - AttemptRemoteStartConfig Optional configuration parameters.
connectorId - String! UUID of the connector to start charging on.
tagId - String! Tag ID of the authentication card to authorize with.
Example
{
  "config": {"stopMinutes": 120, "validUntil": "2025-05-07T15:30:00Z"},
  "connectorId": "5c749d00-315f-4127-a94d-17289206d054",
  "tagId": "c1a4f434-d8c1-4bc3-8b51-4784298cc442"
}

AttemptRemoteStartResponse

Description

Status of a remote start attempt, including success/failure info and related IDs.

Fields
Field Name Description
chargeLogId - String The id of the chargelog related to this attempt.
connectorId - String! The connector this attempt was carried out on.
failureReason - String Message describing why this attempt did not succeed.
id - ID! UUID of this remote start attempt.
isFailure - Boolean! Indicates if this attempt was successful so far.
lastSentAt - String The last time a message was sent to the station for this attempt.
status - String! The current status of this attempt.
Example
{
  "chargeLogId": "0ae16ec5-0810-449f-b452-8ab98110cdc4",
  "connectorId": "5c749d00-315f-4127-a94d-17289206d054",
  "failureReason": null,
  "id": "980d6288-4828-4a18-be20-dbdc7c3be164",
  "isFailure": false,
  "lastSentAt": "2024-03-15T10:23:45.000Z",
  "status": "ACCEPTED"
}

AuthenticationMediaResponse

Description

Response after creating an authentication media (card) for a contract.

Fields
Field Name Description
customerReference - String The customer reference / display label.
id - String UUID of the newly created authentication media.
rateId - String UUID of the assigned rate.
Example
{
  "customerReference": "My charging card",
  "id": "80c085ee-cec6-43ec-a7de-2da8fe72688c",
  "rateId": "6c69d520-44c4-48be-8192-22b3d97ed975"
}

Authorization

Description

Authorization credentials for starting a remote charging session.

Fields
Input Field Description
identifier - String! The identifier value (e.g. RFID tag ID or card UUID depending on type).
type - AuthorizationType! The type of authorization — AUTO (system selects best card) or RFID.
Example
{"identifier": "c1a4f434-d8c1-4bc3-8b51-4784298cc442", "type": "RFID"}

AuthorizationType

Values
Enum Value Description

AUTO

RFID

Example
"AUTO"

AvailableCurrencies

Description

Paginated list of currencies available to the user.

Fields
Field Name Description
data - [AvailableCurrency!] List of available currency entries.
pagination - Pagination Pagination metadata for the result set.
Example
{
  "data": [{"currency": {"isoCode": "EUR"}}, {"currency": {"isoCode": "USD"}}],
  "pagination": {"limit": 10, "offset": 0, "totalCount": 2, "isLastPage": true}
}

AvailableCurrency

Description

A currency available for the authenticated user.

Fields
Field Name Description
currency - Currency Unique identifier in form of an iso code.
Example
{"currency": {"isoCode": "EUR"}}

BankAccountResponse

Description

SEPA bank account details associated with the user's SEPA contract.

Fields
Field Name Description
accountHolder - String Name of the bank account owner
bank - String Name of the bank institut.
bic - String Business Identifier Code (SWIFT Code).
iban - String International Bank Account Number.
Example
{
  "accountHolder": "Max Mustermann",
  "bank": "Erste Bank",
  "bic": "GIBAATWWXXX",
  "iban": "AT12 3456 7890 1234 5678"
}

Boolean

Description

The Boolean scalar type represents true or false.

Example
true

Card

Description

An authentication media (card) belonging to the user, with full details.

Fields
Field Name Description
deactivationReason - String! Reason of deactivation
expiryDate - DateTime Expiry date of the authentication media (card).
id - String! UUID of the card.
label - String Label of the authentication media (card).
number - String! Number of the authentication media (card).
preauthRequired - Boolean! Indicator whether a preauthentication is necessary on the corresponding payment medium.
rate - RateOption Rate options of card
status - CardStatus Indicator whether authentication media (card) is active/inactive.
tagId - String! RFID tag identifier of the card.
type - CardType Type of the authentication media (card).
Example
{
  "deactivationReason": "",
  "expiryDate": "2026-12-31T23:59:59.000Z",
  "id": "4a7fb3a6-c5ff-4739-b46c-c013a4c8ce3f",
  "label": "My Work Card",
  "number": "HTB-0001234",
  "preauthRequired": true,
  "rate": {
    "id": "6c69d520-44c4-48be-8192-22b3d97ed975",
    "name": "Standard Rate",
    "shortDescription": "0.35 EUR/kWh"
  },
  "status": "active",
  "tagId": "c1a4f434-d8c1-4bc3-8b51-4784298cc442",
  "type": "default"
}

CardForChargingProcess

Description

A card eligible for starting a charging process on a specific connector.

Fields
Field Name Description
expiryDate - DateTime Expiry date of the authentication media (card).
id - String! UUID of the card.
label - String Label of the authentication media (card).
number - String! Number of the authentication media (card).
preauthRequired - Boolean! Indicator whether a preauthentication is necessary on the corresponding payment medium.
rate - RateDescriptionForChargingProcess Information on rate which will be applied to the charging process.
tagId - String! RFID tag identifier of the card.
type - CardType Type of the authentication media (card).
Example
{
  "expiryDate": "2026-12-31T23:59:59.000Z",
  "id": "4a7fb3a6-c5ff-4739-b46c-c013a4c8ce3f",
  "label": "My Work Card",
  "number": "HTB-0001234",
  "preauthRequired": true,
  "rate": {
    "description": "Pay per kWh",
    "shortDescription": "0.35 EUR/kWh",
    "preauthCurrencyAmounts": [{"amount": 30, "currency": {"isoCode": "EUR"}}]
  },
  "tagId": "c1a4f434-d8c1-4bc3-8b51-4784298cc442",
  "type": "default"
}

CardInterface

Description

Shared interface for authentication media (cards) defining common fields.

Fields
Field Name Description
expiryDate - DateTime Expiry date of the authentication media (card).
id - String! UUID of the card.
label - String Label of the authentication media (card).
number - String! Number of the authentication media (card).
preauthRequired - Boolean! Indicator whether a preauthentication is necessary on the corresponding payment medium.
tagId - String! RFID tag identifier of the card.
type - CardType Type of the authentication media (card).
Possible Types
CardInterface Types

Card

CardForChargingProcess

Example
{
  "expiryDate": "2007-12-03T10:15:30Z",
  "id": "abc123",
  "label": "xyz789",
  "number": "abc123",
  "preauthRequired": true,
  "tagId": "abc123",
  "type": "default"
}

CardStatus

Values
Enum Value Description

active

inactive

Example
"active"

CardStatusActionEnum

Description

defined values for card status actions

Values
Enum Value Description

DEACTIVATE

Example
"DEACTIVATE"

CardType

Values
Enum Value Description

default

emsp

roaming

simple

virtual

Example
"default"

CardsPaged

Description

Paginated list of authentication media (cards) belonging to the user.

Fields
Field Name Description
data - [Card] List of cards in the current page.
pagination - Pagination Pagination metadata for the result set.
Example
{
  "data": [
    {
      "id": "4a7fb3a6-c5ff-4739-b46c-c013a4c8ce3f",
      "label": "My Work Card",
      "number": "HTB-0001234",
      "status": "active"
    }
  ],
  "pagination": {"limit": 10, "offset": 0, "totalCount": 1, "isLastPage": true}
}

CdrCostItem

Description

A single cost line item within a charging session cost breakdown.

Fields
Field Name Description
description - String Description of the item type
grossAmount - Float Gross amount
grossAmountLocalCurrency - Float Gross amount expressed in local currency
netAmount - Float Net amount
netAmountLocalCurrency - Float Net amount expressed in local currency
taxAmount - Float Tax amount
taxAmountLocalCurrency - Float Tax amount expressed in local currency
taxRate - Float Percentage of the tax
Example
{
  "description": "Energy",
  "grossAmount": 8.54,
  "grossAmountLocalCurrency": 8.54,
  "netAmount": 7.12,
  "netAmountLocalCurrency": 7.12,
  "taxAmount": 1.42,
  "taxAmountLocalCurrency": 1.42,
  "taxRate": 20
}

ChargeLogFilterStatus

Values
Enum Value Description

started

stopped

Example
"started"

ChargeLogType

Description

ToDo Add cp,card ....

Values
Enum Value Description

contact

Example
"contact"

Chargelog

Description

A single charging session log entry with consumption, cost, and connector details.

Fields
Field Name Description
accountDocument - AccountDocument The related account document.
authId - String! The identifier with whom the charging process was authorized.
authType - String The type of authentication media with whom the charging process was authorized.
calibrationDetails - String The link to download calibration details.
co2Saving - Float The CO2 saving in kg CO2.
connector - Connector! The connector on which the charging process is/was running.
cost - Cost The costs of the charging process.
dateEnd - DateTime End date of the charging process.
dateStart - DateTime Start date of the charging process.
energyConsumption - Float The consumed energy in kWh.
id - ID! Unique identifier in form of an uuid.
meterEnd - Int End value of the meter.
meterStart - Int Starting value of the meter.
rateName - String Name of the used rate.
sessionId - String Id of the Session. Needed to stop the transaction
status - String! The current status of the charging process.
Example
{
  "accountDocument": {
    "id": "cbce05d9-9172-4201-a8e4-bd3b47366097",
    "title": "Invoice 2024-001",
    "type": "invoice"
  },
  "authId": "c1a4f434-d8c1-4bc3-8b51-4784298cc442",
  "authType": "RFID",
  "calibrationDetails": null,
  "co2Saving": 11.7,
  "connector": {
    "id": "5c749d00-315f-4127-a94d-17289206d054",
    "evseId": "AT*HTB*E000001*1",
    "label": "Connector 1"
  },
  "cost": {"total": 8.54, "grossAmount": 8.54, "currency": "EUR"},
  "dateEnd": "2024-03-15T10:15:00.000Z",
  "dateStart": "2024-03-15T08:30:00.000Z",
  "energyConsumption": 24.37,
  "id": "c258a8ab-e265-4f14-a9ba-12cef13f49f7",
  "meterEnd": 48740000,
  "meterStart": 24370000,
  "rateName": "Standard Rate",
  "sessionId": "8b60a3b3-e26c-4df8-8f29-02a682dc15c3",
  "status": "stopped"
}

ChargelogFilter

Description

Filter for chargelogs.

Fields
Input Field Description
status - ChargeLogFilterStatus The current status of the charging process.
Example
{"status": "stopped"}

ChargelogsPaged

Description

Paginated list of charging session logs.

Fields
Field Name Description
data - [Chargelog] List of chargelogs in the current page.
pagination - Pagination Pagination metadata for the result set.
Example
{
  "data": [
    {
      "id": "c258a8ab-e265-4f14-a9ba-12cef13f49f7",
      "status": "stopped",
      "energyConsumption": 24.37
    }
  ],
  "pagination": {"limit": 10, "offset": 0, "totalCount": 1, "isLastPage": true}
}

ChargingStatistics

Description

Aggregated statistics about charging sessions (count, energy, CO2 saving).

Fields
Field Name Description
co2Saving - Float The CO2 saving in kg CO2.
energyConsumption - Float The consumed energy in kWh.
number - Int Total number of charging sessions in the queried timeframe.
Example
{"co2Saving": 186, "energyConsumption": 387.5, "number": 42}

Connector

Description

A single EV charging connector (plug) attached to a charging point.

Fields
Field Name Description
connectorType - ConnectorType Physical connector type information (plug type, power rating, etc.).
cp - Cp The parent charging point this connector belongs to.
evseId - String EVSE ID (Electric Vehicle Supply Equipment identifier) per OCPI standard.
freeOfCharge - Boolean Whether charging at this connector is free of charge.
id - ID! UUID of the connector.
label - String Human-readable label for the connector.
maintenanceWindows - [ConnectorMaintenanceWindow]! Scheduled maintenance windows when this connector will be unavailable.
physicalReference - String Physical identifier (e.g., sticker number) displayed on the charger for user wayfinding. May be null if not configured.
sortOrder - String Display sort order for listing connectors within a CP.
status - ConnectorStatus Current availability status of the connector.
Example
{
  "connectorType": {
    "id": "36",
    "label": "Type 2 – 22 kW",
    "plugType": "Type 2 Outlet",
    "chargePointType": "AC",
    "maxPowerRating": 22
  },
  "cp": {
    "id": "624e81bd-c0cf-4252-9bc4-30054fb6a6a8",
    "label": "Main Street Station",
    "publicName": "Main Street Station"
  },
  "evseId": "AT*HTB*E000001*1",
  "freeOfCharge": false,
  "id": "5c749d00-315f-4127-a94d-17289206d054",
  "label": "Connector 1",
  "maintenanceWindows": [],
  "physicalReference": "1",
  "sortOrder": "1",
  "status": {
    "connectorId": "5c749d00-315f-4127-a94d-17289206d054",
    "calculated": "Available",
    "ocpp": "Available",
    "simple": "Available"
  }
}

ConnectorFilter

Description

With this parameter, you can set different filter options for the connector.

As the filter options can change over time, depending on the stations available in our system, the different options are not hardcoded. They can be retrieved from the filters query.

Fields
Input Field Description
options - [String] Array of options for the type of filter.
slug - FilterType The type of the filter to apply
Example
{"options": ["current_type_dc"], "slug": "POWER_CLASS"}

ConnectorMaintenanceWindow

Description

Connector maintenance window

Fields
Field Name Description
comment - String Comment about the maintenance window
endDate - DateTime! End date and time of the maintenance window
startDate - DateTime! Start date and time of the maintenance window
Example
{
  "comment": "Scheduled firmware upgrade",
  "endDate": "2024-04-02T04:00:00.000Z",
  "startDate": "2024-04-01T22:00:00.000Z"
}

ConnectorStatus

Description

Current availability status of a connector (raw OCPP, calculated, and simplified).

Fields
Field Name Description
calculated - String Calculated current cp connector status
connectorId - ID! The connector’s internal ID.
ocpp - String Latest/current ocpp connector status that was received from the connector
simple - SimpleConnectorStatus Calculated current cp connector status in simplified form
Example
{
  "calculated": "Available",
  "connectorId": "5c749d00-315f-4127-a94d-17289206d054",
  "ocpp": "Available",
  "simple": "Available"
}

ConnectorType

Description

Type of connector

Fields
Field Name Description
chargePointType - String Charge point type of the connector (AC or DC).
chargingFacilityType - String Charging facility type of the connector.
chargingModeType - String Charging mode type of the connector.
id - ID! Internal ID of the connector type.
label - String Label of the connector's type.
maxPowerRating - Float Maximum power rating of the connector, defined in kW.
plugType - String Plug type of the connector.
standard - String Standard of the connector's type.
Example
{
  "chargePointType": "AC",
  "chargingFacilityType": "380 - 480V, 3-Phase ≤32A",
  "chargingModeType": "Mode_3",
  "id": "36",
  "label": "Type 2 – 22 kW",
  "maxPowerRating": 22,
  "plugType": "Type 2 Outlet",
  "standard": "IEC-62196-T2"
}

Contact

Description

Contact data

Fields
Field Name Description
address - Address Postal address of the contact.
birthday - DateTime Date of birth.
companyId - Int Company ID (for contacts belonging to a company).
createdAt - DateTime Timestamp when this contact was created.
currency - Currency Preferred currency for this contact.
displayName - String Computed display name (e.g. firstName + name).
email - String Email address.
firstName - String First name of the contact.
gender - Gender Gender: female, male, company, or diverse.
id - String UUID of the contact.
isCompany - Boolean Whether this contact represents a company rather than an individual.
isDeactivated - Boolean Whether this contact has been deactivated.
language - LanguageCode Preferred language (locale code).
legalDocumentsAccepted - [LegalDocumentAccepted] List of legal documents the user has accepted.
mobile - String Mobile phone number.
name - String Last name / family name of the contact.
phone - String Phone number.
termsAndConditionsAccepted - Boolean Use 'legalDocumentsAccepted' instead
updatedAt - DateTime Timestamp of the last update.
vat - String VAT identification number (for company contacts).
Example
{
  "address": {
    "street": "Mozartplatz 1",
    "city": "Salzburg",
    "zip": "5020",
    "country": "AT"
  },
  "birthday": "1985-06-15T00:00:00.000Z",
  "companyId": null,
  "createdAt": "2022-01-10T09:00:00.000Z",
  "currency": {"isoCode": "EUR"},
  "displayName": "Max Mustermann",
  "email": "max.mustermann@example.com",
  "firstName": "Max",
  "gender": "male",
  "id": "9d276eba-1ce2-47d2-a1ea-0c40a2b1479e",
  "isCompany": false,
  "isDeactivated": false,
  "language": "de_DE",
  "legalDocumentsAccepted": [
    {
      "legalDocumentType": "TERMS_AND_CONDITIONS",
      "legalDocumentAccepted": true
    },
    {"legalDocumentType": "PRIVACY_POLICY", "legalDocumentAccepted": true}
  ],
  "mobile": "+43 664 1234567",
  "name": "Mustermann",
  "phone": "+43 316 1234567",
  "termsAndConditionsAccepted": true,
  "updatedAt": "2024-03-01T14:22:00.000Z",
  "vat": "ATU12345678"
}

ContactDeleteResponse

Description

Response after deleting a user contact.

Fields
Field Name Description
additionalFields - [AdditionalRegistrationField] Additional registration fields associated with the deleted contact.
error - ErrorBody Error details if the deletion failed.
profile - Contact The contact profile at time of deletion.
status - String Status of the deletion operation.
Example
{"additionalFields": [], "error": null, "profile": null, "status": "success"}

ContactInformation

Description

Contact phone and email for a charging point.

Fields
Field Name Description
email - String Email adress
phone - String Phone number
Example
{"email": "station-info@example.com", "phone": "+43 316 9876543"}

ContactProfile

Description

User profile

Fields
Input Field Description
address - AddressInput Postal address.
birthday - DateTime Date of birth.
companyId - Int Company ID.
currency - String Preferred currency ISO code.
email - String Email address.
fax - String Fax number.
firstName - String First name.
gender - Gender Gender: female, male, company, or diverse.
id - String UUID of the contact to update.
isCompany - Boolean Whether this contact represents a company.
isDeactivated - Boolean Whether to deactivate this contact.
language - LanguageCode Preferred language (locale code).
mobile - String Mobile phone number.
name - String Last name / family name.
phone - String Phone number.
vat - String VAT identification number.
Example
{
  "address": {
    "street": "Mozartplatz 1",
    "city": "Salzburg",
    "zip": "5020",
    "country": "AT"
  },
  "birthday": "1985-06-15T00:00:00.000Z",
  "companyId": null,
  "currency": "EUR",
  "email": "max.mustermann@example.com",
  "fax": null,
  "firstName": "Max",
  "gender": "male",
  "id": "9d276eba-1ce2-47d2-a1ea-0c40a2b1479e",
  "isCompany": false,
  "isDeactivated": false,
  "language": "de_DE",
  "mobile": "+43 664 1234567",
  "name": "Mustermann",
  "phone": "+43 316 1234567",
  "vat": "ATU12345678"
}

ContactResponse

Description

Response for contact register/update operations. Contains the updated profile, additional fields, and potential errors.

Fields
Field Name Description
additionalFields - [AdditionalRegistrationField] The current additional registration fields for this user.
error - ErrorBody Error details if the operation failed.
profile - Contact The updated contact profile (null on error).
Example
{
  "additionalFields": [],
  "error": null,
  "profile": {
    "id": "9d276eba-1ce2-47d2-a1ea-0c40a2b1479e",
    "email": "max.mustermann@example.com"
  }
}

ContractData

Description

Contract-level data for payment integration (environment and locale settings).

Fields
Field Name Description
JAVASCRIPT_INTEGRATION - String JavaScript integration flag.
PAGE_BUTTON_LOCALE - String Button locale setting.
PAGE_ENVIRONMENT - String JavaScript integration mode.
Example
{
  "JAVASCRIPT_INTEGRATION": "xyz789",
  "PAGE_BUTTON_LOCALE": "xyz789",
  "PAGE_ENVIRONMENT": "abc123"
}

ContractErrorBody

Description

Error details for a failed contract operation.

Fields
Field Name Description
code - String Error code identifier.
response - ContractErrorResponse Detailed HTTP error response.
Example
{
  "code": "xyz789",
  "response": ContractErrorResponse
}

ContractErrorResponse

Description

HTTP-level error response from the contract backend.

Fields
Field Name Description
body - ContractErrorResponseStatus Parsed error body.
status - Int HTTP status code.
statusText - String HTTP status text.
Example
{
  "body": ContractErrorResponseStatus,
  "status": 123,
  "statusText": "abc123"
}

ContractErrorResponseStatus

Description

Status and message within a contract error response body.

Fields
Field Name Description
message - String Human-readable error message.
status - String Error status string.
Example
{
  "message": "abc123",
  "status": "abc123"
}

ContractPaymentMethod

Description

A payment method available at the tenant level for contract enrollment.

Fields
Field Name Description
applicationId - String Application ID of the payment provider.
cardCreateMode - String Card creation mode.
createdAt - DateTime Timestamp when this payment method was created.
directPaymentMethod - String Whether this is a direct payment method.
emp - String E-Mobility Provider identifier.
paymentName - String Display name of the payment method.
paymentType - String Type of payment (e.g. SEPA, credit card).
termsOfServiceUrl - String URL to the terms of service document.
termsOfUseUrl - String URL to the terms of use document.
updatedAt - DateTime Timestamp of the last update.
uuid - String! UUID of this contract payment method.
Example
{
  "applicationId": "beenergised",
  "cardCreateMode": "OPTIONAL",
  "createdAt": "2022-01-01T00:00:00.000Z",
  "directPaymentMethod": "SEPA",
  "emp": "HTB",
  "paymentName": "SEPA Direct Debit",
  "paymentType": "SEPA",
  "termsOfServiceUrl": "https://example.has-to-be.com/terms",
  "termsOfUseUrl": "https://example.has-to-be.com/terms-of-use",
  "updatedAt": "2024-01-01T00:00:00.000Z",
  "uuid": "5ffe9724-2ef1-4191-9a5c-682a20f7a0fb"
}

ContractPostpaidResponse

Description

Response after creating or updating a postpaid contract.

Fields
Field Name Description
error - ContractErrorBody Error details if the operation failed.
message - String Human-readable message describing the result.
status - String Status of the operation (e.g. success, error).
Example
{
  "error": null,
  "message": "Contract created successfully.",
  "status": "success"
}

ContractSepaResponse

Description

Response after creating or updating a SEPA contract.

Fields
Field Name Description
error - ContractErrorBody Error details if the operation failed.
message - String Human-readable message describing the result.
status - String Status of the operation (e.g. success, error).
Example
{
  "error": null,
  "message": "SEPA contract created successfully.",
  "status": "success"
}

Cost

Description

Cost breakdown for a charging session (total, tax, gross, and individual line items).

Fields
Field Name Description
costItems - [CdrCostItem] List of individual cost line items.
currency - String ISO 4217 currency code.
grossAmount - Float Total gross amount (net + tax).
grossAmountLocalCurrency - Float Total gross amount expressed in local currency.
tax - Float Tax amount. Use costItems[].taxAmount instead.
taxAmount - Float Tax amount (duplicate, deprecated). Use costItems[].taxAmount instead.
total - Float Total net cost amount.
Example
{
  "costItems": [{"description": "Energy", "grossAmount": 8.54, "taxRate": 20}],
  "currency": "EUR",
  "grossAmount": 8.54,
  "grossAmountLocalCurrency": 8.54,
  "tax": 1.42,
  "taxAmount": 1.42,
  "total": 8.54
}

CountryAlpha

Values
Enum Value Description

AC

AD

AE

AF

AG

AI

AL

AM

AN

AO

AQ

AR

AS

AT

AU

AW

AX

AZ

BA

BB

BD

BE

BF

BG

BH

BI

BJ

BM

BN

BO

BR

BS

BT

BV

BW

BY

BZ

CA

CC

CD

CF

CG

CH

CI

CK

CL

CM

CN

CO

CR

CS

CU

CV

CX

CY

CZ

DE

DG

DJ

DK

DM

DO

DZ

EC

EE

EG

EH

ER

ES

ET

EU

FI

FJ

FK

FM

FO

FR

GA

GB

GD

GE

GF

GG

GH

GI

GL

GM

GN

GP

GQ

GR

GS

GT

GU

GW

GY

HK

HM

HN

HR

HT

HU

IC

ID

IE

IL

IM

IN

IO

IQ

IR

IS

IT

JE

JM

JO

JP

KE

KG

KH

KI

KM

KN

KP

KR

KW

KY

KZ

LA

LB

LC

LI

LK

LR

LS

LT

LU

LV

LY

MA

MC

MD

ME

MG

MH

MK

ML

MM

MN

MO

MP

MQ

MR

MS

MT

MU

MV

MW

MX

MY

MZ

NA

NC

NE

NF

NG

NI

NL

NO

NP

NR

NT

NU

NZ

OM

PA

PE

PF

PG

PH

PK

PL

PM

PN

PR

PS

PT

PW

PY

QA

RE

RO

RU

RW

SA

SB

SC

SD

SE

SG

SH

SI

SJ

SK

SL

SM

SN

SO

SR

ST

SU

SV

SY

SZ

TA

TC

TD

TF

TG

TH

TJ

TK

TL

TM

TN

TO

TR

TT

TV

TW

TZ

UA

UG

US

UY

UZ

VA

VC

VE

VG

VI

VN

VU

WF

WS

YE

YT

ZA

ZM

ZW

Example
"AC"

Cp

Description

Representation of a charging station.

Fields
Field Name Description
accessType - AccessType Type of the access to a station which is either a internal or external connection. Depending on the access type the request is either handled only in our system or parts might be forwarded to other parties.
additionalFields - [AdditionalCpField] Additional cp fields (customisable info fields per mandant)
address - String Address (Streetname)
capabilities - CpCapabilities Capabilities of a charging station
city - String City
connectors - [Connector] List of connectors.
contact - ContactInformation Contact information
country - String Country (3 characters)
directions - String Additional direction information for the station. Mostly used for truck-specific charging stations.
displayAttributes - DisplayAttributes Specific attributes about how the station should be displayed.
id - ID! Unique Identifier in form of UUID4
images - [CpImage] CP Images as array
information - CpInfo Information
isFavoured - Boolean Is CP marked as a favourite by user
label - String Human readable string representation.
latitude - Float Latitude of the position.
longitude - Float Longitude of the position.
operator - CpOperator the operator of the station
publicName - String Public display name
site - Site Site
siteId - String UUID of the site this CP belongs to.
status - CpStatus Status information
zip - String Zip code
Example
{
  "accessType": "INTERNAL",
  "additionalFields": [],
  "address": "Mozartplatz 1",
  "capabilities": {"hasRemoteCommands": true},
  "city": "Salzburg",
  "connectors": [
    {
      "id": "5c749d00-315f-4127-a94d-17289206d054",
      "evseId": "AT*HTB*E000001*1",
      "label": "Connector 1"
    }
  ],
  "contact": {"email": "station-info@example.com", "phone": "+43 316 9876543"},
  "country": "AT",
  "directions": "Enter the parking garage on the left side.",
  "displayAttributes": {"mode": "DEFAULT"},
  "id": "624e81bd-c0cf-4252-9bc4-30054fb6a6a8",
  "images": [
    {
      "url": "https://files.example.has-to-be.com/cp-images/main-street-station.jpg"
    }
  ],
  "information": {
    "payment": "Prepaid or contract required",
    "additional": null
  },
  "isFavoured": false,
  "label": "Main Street Station",
  "latitude": 47.8095,
  "longitude": 13.055,
  "operator": {"identifier": "AT*HTB", "name": "has-to-be"},
  "publicName": "Main Street Station",
  "site": {
    "id": "12c25c47-255a-4c75-922b-69cd9b328140",
    "label": "Mozartplatz Parking"
  },
  "siteId": "12c25c47-255a-4c75-922b-69cd9b328140",
  "status": {
    "calculated": "Available",
    "ocpp": "Available",
    "simple": "Available"
  },
  "zip": "5020"
}

CpCapabilities

Description

Capabilities of a charging station

Fields
Field Name Description
hasRemoteCommands - Boolean! The capability of the station to work with remote commands
Example
{"hasRemoteCommands": true}

CpFavouredStatus

Description

Indicates whether a charging point is marked as a favourite by the current user.

Fields
Field Name Description
id - String UUID of the charging point.
isFavoured - Boolean Whether the CP is currently a favourite.
Example
{"id": "624e81bd-c0cf-4252-9bc4-30054fb6a6a8", "isFavoured": true}

CpImage

Description

An image associated with a charging point.

Fields
Field Name Description
url - String Url of a cp image
Example
{"url": "https://files.example.has-to-be.com/cp-images/main-street-station.jpg"}

CpInfo

Description

Additional information about a charging point (opening times, payment info, marketing display).

Fields
Field Name Description
additional - String Additional information
marketingDisplay - String A display status, which can be configured within the backends marketing information section of a charging station
openingTimes - OpeningTimes Opening times
operatingTimes - OperatingTimes Operating times
payment - String Payment information
Example
{
  "additional": "Covered parking garage, barrier-free access.",
  "marketingDisplay": null,
  "openingTimes": {"description": "Mon–Fri 06:00–22:00, Sat–Sun 08:00–20:00"},
  "operatingTimes": {
    "regularHours": [
      {"weekday": 1, "operatingHours": {"begin": "06:00:00", "end": "22:00:00"}}
    ]
  },
  "payment": "Prepaid or contract required"
}

CpOperator

Description

The operator ot the corresponding charging station.

Fields
Field Name Description
identifier - String! The identifier of the operator
name - String! The name of the operator
Example
{"identifier": "AT*HTB", "name": "has-to-be"}

CpStatus

Description

CpStatus

Fields
Field Name Description
calculated - String Calculated current cp status
ocpp - String Latest/current ocpp status that was received from the station
simple - SimpleCpStatus Calculated current cp status in simplified form
Example
{"calculated": "Available", "ocpp": "Available", "simple": "Available"}

CpsPaged

Description

Paginated list of charging points.

Fields
Field Name Description
data - [Cp] List of charging points in the current page.
pagination - PaginationInterface Pagination metadata for the result set.
Example
{
  "data": [
    {
      "id": "624e81bd-c0cf-4252-9bc4-30054fb6a6a8",
      "label": "Main Street Station",
      "city": "Salzburg"
    }
  ],
  "pagination": {"limit": 10, "offset": 0, "totalCount": 1, "isLastPage": true}
}

Currency

Description

A currency identified by its ISO 4217 code.

Fields
Field Name Description
isoCode - String ISO 4217 currency code (e.g. EUR, USD).
Example
{"isoCode": "EUR"}

CurrencyAmount

Description

A monetary amount with its associated currency.

Fields
Field Name Description
amount - Float! The numeric amount.
currency - Currency! The currency of the amount.
Example
{"amount": 30, "currency": {"isoCode": "EUR"}}

CurrencyAmountInput

Description

A currency amount used as input. When passed to remoteStartWithPreauth, this must be one of the values returned by RateOption.preauthCurrencyAmounts — not a freely chosen amount.

Fields
Input Field Description
amount - Float! The amount of the currency
currency - CurrencyInput! The currency of the amount
Example
{"amount": 30, "currency": {"isoCode": "EUR"}}

CurrencyInput

Description

ISO 4217 currency code input.

Fields
Input Field Description
isoCode - String! The ISO 4217 code of the currency
Example
{"isoCode": "EUR"}

CursorFilter

Description

Cursor-based pagination input for large result sets.

Fields
Input Field Description
cursor - String The cursor to start returning items from.
limit - Int! The number of items to return per page.
Example
{"cursor": "eyJpZCI6IjEwMCJ9", "limit": 20}

CursorPagination

Description

Pagination information with cursor.

Fields
Field Name Description
cursor - String The cursor with which the query can be continued.
isLastPage - Boolean Required for backward compatibility. Always null and will be removed in the future. Do not use, will be removed in the future.
limit - Int Maximum number of elements (limit) set for this pagination request
offset - Int Required for backward compatibility. Always null and will be removed in the future. Do not use, will be removed in the future.
totalCount - Int Required for backward compatibility. Always null and will be removed in the future. Do not use, will be removed in the future.
Example
{
  "cursor": "eyJpZCI6IjEwMCJ9",
  "isLastPage": false,
  "limit": 20,
  "offset": null,
  "totalCount": null
}

DateTime

Example
"2007-12-03T10:15:30Z"

DisplayAttributes

Description

Display attributes controlling how a charging station is rendered in the UI.

Fields
Field Name Description
mode - DisplayAttributesMode The mode in which the station should be displayed, regular or highlighted.
Example
{"mode": "DEFAULT"}

DisplayAttributesMode

Values
Enum Value Description

DEFAULT

HIGHLIGHT

Example
"DEFAULT"

ErrorBody

Description

Error details returned on failed authentication or API operations.

Fields
Field Name Description
code - String Error code identifier.
response - LoginErrorResponse Detailed HTTP error response.
Example
{
  "code": "abc123",
  "response": LoginErrorResponse
}

Filter

Description

This describes one possible property on which a connector can be filtered, as well as all possible options for this property. Can be used in conjunction with the ConnectorFilter input.

Fields
Field Name Description
label - String Description of the filter. This label can be displayed to the user.
options - [FilterOption] List of filter options for the type of filter.
slug - FilterType Unique identifier in form of a slug. The same enum is used in the filter input slug.
type - String Information on the filter type (eg. multiselect).
Example
{
  "label": "Power Class",
  "options": [
    {
      "slug": "power_class_high",
      "label": ">= 50kW",
      "default": false,
      "icon": null
    }
  ],
  "slug": "POWER_CLASS",
  "type": "multiselect"
}

FilterOption

Description

One possible option for a specific type of filter.

Fields
Field Name Description
default - Boolean Default value of filter option.
icon - String Icon slug for filter option. Can be used to display a specific icon for the filter option.
label - String Detailed description of the filter option. This label can be displayed to the user.
slug - String Unique identifier in form of a slug. This slug is used in the filter input options array.
Example
{
  "default": true,
  "icon": "connector-ccs",
  "label": "CCS/Combo 2",
  "slug": "connector_plug_type_connector-ccs"
}

FilterType

Description

The properties of the connector that can be filtered

Values
Enum Value Description

FILTER_BY_CONNECTOR_TYPE

the type of the connector (e.g. Type 2)

POWER_CLASS

the power class of the connector (e.g. < 50kW)

TYPE_OF_CURRENT

the type of the current (AC or DC)
Example
"FILTER_BY_CONNECTOR_TYPE"

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example
987.65

Gender

Values
Enum Value Description

company

diverse

female

male

Example
"company"

HostedPaymentMethodGetSession

Description

Hosted payment session with a redirect link for payment method management.

Fields
Field Name Description
link - String Redirect URL for the hosted payment form.
sessionId - String Session identifier for this payment interaction.
Example
{
  "link": "xyz789",
  "sessionId": "abc123"
}

ID

Description

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Example
"4"

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
123

LanguageCode

Description

All languages supported by the API

Values
Enum Value Description

cs_CZ

Czech

da_DK

Danish

de_DE

German

el_GR

Greek

en_US

English

es_ES

Spanish

et_EE

Estonian

fi_FI

Finnish

fr_FR

French

hr_HR

Croatian

hu_HU

Hungarian

it_IT

Italian

ja_JP

Japanese

lt_LT

Lithuanian

lv_LV

Latvian

nl_NL

Dutch

no_NO

Norwegian

pl_PL

Polish

ro_RO

Romanian

ru_RU

Russian

sk_SK

Slovak

sl_SI

Slovenian

sv_SE

Swedish

uk_UA

Ukrainian
Example
"cs_CZ"

LegalDocument

Description

A legal document (terms and conditions or privacy policy) with its content URL and version.

Fields
Field Name Description
id - String! UUID of the document.
type - LegalDocumentTypeEnum! The type of legal document (TERMS_AND_CONDITIONS or PRIVACY_POLICY).
url - String! URL to the terms and condition in PDF format.
version - String! Version number of this document revision.
Example
{
  "id": "e7076445-fbaa-465b-af4f-925f4472560f",
  "type": "TERMS_AND_CONDITIONS",
  "url": "https://files.example.has-to-be.com/legal/terms-and-conditions-v3.pdf",
  "version": "3.0"
}

LegalDocumentAccepted

Description

Record of whether a specific legal document has been accepted by the user.

Fields
Field Name Description
legalDocumentAccepted - Boolean Whether this document has been accepted.
legalDocumentType - LegalDocumentTypeEnum Type of the legal document.
Example
{"legalDocumentAccepted": true, "legalDocumentType": "TERMS_AND_CONDITIONS"}

LegalDocumentStatus

Description

Response after accepting a legal document, indicating success or failure.

Fields
Field Name Description
message - String! A description of what happened.
status - String! The status if the acceptance was successful or not.
Example
{"message": "Legal document accepted successfully.", "status": "success"}

LegalDocumentTypeEnum

Description

The possible types of a legal document

Values
Enum Value Description

PRIVACY_POLICY

Privacy policy

TERMS_AND_CONDITIONS

Terms and conditions
Example
"PRIVACY_POLICY"

LocationFilter

Description

Location filter for geographic proximity search.

Fields
Input Field Description
latitude - Float! Latitude of the center point (WGS84).
longitude - Float! Longitude of the center point (WGS84).
radius - Float! Search radius in kilometers from the center point.
Example
{"latitude": 47.8095, "longitude": 13.055, "radius": 5000}

LoginErrorResponse

Description

HTTP-level error response on login failure.

Fields
Field Name Description
body - LoginErrorResponseStatus Parsed error body.
status - Int HTTP status code.
statusText - String HTTP status text.
Example
{
  "body": LoginErrorResponseStatus,
  "status": 987,
  "statusText": "xyz789"
}

LoginErrorResponseStatus

Description

Status and message within a login error response.

Fields
Field Name Description
message - String Human-readable error message.
status - String Error status string.
Example
{
  "message": "abc123",
  "status": "xyz789"
}

MaskedAccount

Description

detailed information about the payment method to display to the user

Fields
Field Name Description
displayLabel - String!
expiryMonth - Int!
expiryYear - Int!
holderName - String!
number - String!
Example
{
  "displayLabel": "Visa •••• 4242",
  "expiryMonth": 12,
  "expiryYear": 2027,
  "holderName": "Max Mustermann",
  "number": "4242"
}

NativePaymentMethodGetSession

Description

Native payment method session containing registered and applicable payment methods.

Fields
Field Name Description
applicablePaymentMethods - [PaymentMethod] Payment methods available for registration.
registeredPaymentsMethods - [PaymentMethod] Payment methods already registered by the user.
sessionId - String Session identifier for this payment interaction.
Example
{
  "applicablePaymentMethods": [PaymentMethod],
  "registeredPaymentsMethods": [PaymentMethod],
  "sessionId": "xyz789"
}

OccupancyDays

Values
Enum Value Description

ALL

FRIDAY

MONDAY

SATURDAY

SUNDAY

THURSDAY

TUESDAY

WEDNESDAY

Example
"ALL"

OccupancyRate

Description

Occupancy data for one hour of a specific weekday at a charging point.

Fields
Field Name Description
day - String! Weekday name (e.g. MONDAY).
hour - Int! Hour of the day (0-23).
occupancyRate - Float! Percentage of time the CP was occupied during this hour (0.0 to 1.0).
Example
{"day": "MONDAY", "hour": 9, "occupancyRate": 0.72}

OpeningTimes

Description

Structured opening times for a charging point (regular hours and exceptions).

Fields
Field Name Description
description - String Opening times in textual format
exceptionalClosings - [OperatingTime] Exceptional closing times
exceptionalOpenings - [OperatingTime] Exceptional opening times
regularHours - [RegularHours] Structured data of opening times
Example
{
  "description": "Mon–Fri 06:00–22:00, Sat–Sun 08:00–20:00",
  "exceptionalClosings": [],
  "exceptionalOpenings": [],
  "regularHours": [
    {"weekday": 1, "operatingHours": {"begin": "06:00:00", "end": "22:00:00"}}
  ]
}

OperatingHours

Description

OperatingHours have the format 'hh/mm/ss'.

Defining the types as DateTime makes trouble because tests are failing. But in Sandbox DateTime is working.

Fields
Field Name Description
begin - String Begin of the period
end - String End of the period
Example
{"begin": "06:00:00", "end": "22:00:00"}

OperatingTime

Description

OperatingTimes have the format 'yyyy-mm-ddThh:mm:ss.sssZ' according to ISO-8601.

Fields
Field Name Description
begin - DateTime Begin of the period
end - DateTime End of the period
Example
{"begin": "2024-12-24T00:00:00.000Z", "end": "2024-12-26T00:00:00.000Z"}

OperatingTimes

Description

Structured operating times for a charging point.

Fields
Field Name Description
regularHours - [RegularHours] Structured data of operating times
Example
{
  "regularHours": [
    {"weekday": 1, "operatingHours": {"begin": "06:00:00", "end": "22:00:00"}}
  ]
}

OperationType

Values
Enum Value Description

CHARGE

PAYOUT

PRESET

SAVE

TOKENIZE

UPDATE

Example
"CHARGE"

OptileTransaction

Description

Response from the Optile payment gateway after registering a new payment method.

Fields
Field Name Description
absoluteLink - String! Absolute URL to open in the browser/webview for payment enrolment.
id - String Optile transaction ID for status polling.
link - String Relative URL to open in the browser/webview for payment enrolment.
Example
{
  "absoluteLink": "https://payment-gateway.example.com/checkout/txn-optile-00123",
  "id": "txn-optile-00123",
  "link": "/checkout/txn-optile-00123"
}

Pagination

Description

Pagination information.

Additional information for pagination responses

Fields
Field Name Description
isLastPage - Boolean Is this page the last page of the pagination set
limit - Int Maximum number of elements (limit) set for this pagination request
offset - Int The current offset chosen for the pagination set
totalCount - Int Overall count of pagination result (total number of objects)
Example
{"isLastPage": false, "limit": 10, "offset": 0, "totalCount": 42}

PaginationFilter

Description

Filter to do pagination requests

Fields
Input Field Description
limit - Int

Maximum number of elements (limit) set for this pagination request

Limit for one page. Will be overruled from the api if too high.

offset - Int Page offset of this pagination filter
Example
{"limit": 10, "offset": 0}

PaginationInterface

Description

Shared pagination interface implemented by offset-based and cursor-based pagination types.

Fields
Field Name Description
isLastPage - Boolean Is this page the last page of the pagination set Marked for deletion. Use inline fragments to stay compatible.
limit - Int Maximum number of elements (limit) set for this pagination request
offset - Int The current offset chosen for the pagination set Marked for deletion. Use inline fragments to stay compatible.
totalCount - Int Overall count of pagination result (total number of objects). Marked for deletion. Use inline fragments to stay compatible.
Possible Types
PaginationInterface Types

CursorPagination

Pagination

Example
{"isLastPage": false, "limit": 987, "offset": 987, "totalCount": 987}

PaymentCallbackType

Values
Enum Value Description

HTML

JSON

Example
"HTML"

PaymentMethod

Description

Represents a payment card that is either registered or available for registration for current session user.

Fields
Field Name Description
button - String Button label text for the payment form.
code - String Payment method code identifier.
contractData - ContractData Contract-level data for payment integration.
deferral - String Deferral configuration.
grouping - String Grouping category for the payment method.
iFrameHeight - Int Height of the payment iFrame in pixels.
label - String Display label for the payment method.
links - PaymentLink Related URLs (form, logo, validation, etc.).
maskedAccount - MaskedAccount detailed information about the payment method to display to the user
method - String Payment method type (e.g. CREDIT_CARD, SEPA).
operationType - OperationType Type of operation this payment method supports.
recurrence - String Recurrence type (e.g. one-time, recurring).
redirect - Boolean Whether this method requires a browser redirect.
registration - String Registration status of this payment method.
selected - Boolean Whether this payment method is currently selected.
Example
{
  "button": "xyz789",
  "code": "abc123",
  "contractData": ContractData,
  "deferral": "xyz789",
  "grouping": "xyz789",
  "iFrameHeight": 123,
  "label": "abc123",
  "links": PaymentLink,
  "maskedAccount": MaskedAccount,
  "method": "abc123",
  "operationType": "CHARGE",
  "recurrence": "xyz789",
  "redirect": false,
  "registration": "abc123",
  "selected": false
}

PaymentMethods

Description

Response body for payment cards fetched from PSPs

Fields
Field Name Description
hostedSession - HostedPaymentMethodGetSession Hosted payment session (redirect-based payment flow).
nativeSession - NativePaymentMethodGetSession Native payment session (in-app payment methods).
Example
{
  "hostedSession": HostedPaymentMethodGetSession,
  "nativeSession": NativePaymentMethodGetSession
}

RateDescriptionForChargingProcess

Description

Rate description and preauthorization details for a card eligible for charging.

Fields
Field Name Description
description - String Description of the rate.
preauthAmount - Float How much money will be preauthorized on the payment medium when this rate is used. Use preauthCurrencyAmounts instead.
preauthCurrencyAmount - CurrencyAmount How much money will be preauthorized on the payment medium when this rate is used. Use preauthCurrencyAmounts instead.
preauthCurrencyAmounts - [CurrencyAmount!] The amounts that will be preauthorized on the payment medium when this rate is used. One of these values must be passed as preauthCurrencyAmount when calling the remoteStartWithPreauth mutation.
shortDescription - String Short description of the rate.
Example
{
  "description": "Pay per kWh — billed after the session ends.",
  "preauthAmount": 30,
  "preauthCurrencyAmount": {"amount": 30, "currency": {"isoCode": "EUR"}},
  "preauthCurrencyAmounts": [{"amount": 30, "currency": {"isoCode": "EUR"}}],
  "shortDescription": "0.35 EUR/kWh"
}

RateOption

Description

A rate option that can be assigned to a contract or card. Describes pricing and preauthorization.

Fields
Field Name Description
description - String Full description of the rate option.
id - String! UUID of the rate option.
name - String Display name of the rate option.
preauthAmount - Float How much money will be preauthorized on the payment medium when this rate is used. Due to the tax calculations, we are no longer able to provide this information.
preauthCurrencyAmount - CurrencyAmount How much money will be preauthorized on the payment medium when this rate is used. Due to the tax calculations, we are no longer able to provide this information.
preauthCurrencyAmounts - [CurrencyAmount!] How much money will be preauthorized on the payment medium when this rate is used. Due to the tax calculations, we are no longer able to provide this information.
shortDescription - String Short description suitable for list views.
uuid - String Will be removed.
Example
{
  "description": "Pay per kWh — billed after the session ends.",
  "id": "6c69d520-44c4-48be-8192-22b3d97ed975",
  "name": "Standard Rate",
  "preauthAmount": 30,
  "preauthCurrencyAmount": {"amount": 30, "currency": {"isoCode": "EUR"}},
  "preauthCurrencyAmounts": [{"amount": 30, "currency": {"isoCode": "EUR"}}],
  "shortDescription": "0.35 EUR/kWh",
  "uuid": "6c69d520-44c4-48be-8192-22b3d97ed975"
}

RatePackage

Description

A rate package assigned to a connector, defining pricing, runtime limits, and automatic stop behavior.

Fields
Field Name Description
amount - Float Price amount for this rate package.
automaticStop - Int Automatic stop threshold in minutes. The session is stopped automatically after this duration.
id - String UUID of the rate package.
rate - RateOption The underlying rate option with full pricing details.
visibleRuntime - Int Maximum visible runtime in minutes before the session is hidden from the user.
Example
{
  "amount": 30,
  "automaticStop": 120,
  "id": "28e70f8a-0589-40c6-a0b2-53c1b602fba1",
  "rate": {
    "id": "6c69d520-44c4-48be-8192-22b3d97ed975",
    "name": "Standard Rate",
    "shortDescription": "0.35 EUR/kWh"
  },
  "visibleRuntime": 120
}

RegisteringContactProfile

Description

User profile data required for new account registration.

Fields
Input Field Description
address - AddressInput Postal address.
birthday - DateTime Date of birth.
companyId - Int Company ID (for company contacts).
currency - String Preferred currency ISO code.
email - String! Email address (required for account creation).
fax - String Fax number.
firstName - String First name.
gender - Gender Gender: female, male, company, or diverse.
isCompany - Boolean Whether this contact represents a company.
isDeactivated - Boolean Whether to create the contact in deactivated state.
language - LanguageCode Preferred language (locale code).
mobile - String Mobile phone number.
name - String Last name / family name.
password - String! Account password.
phone - String Phone number.
title - String Title (e.g. Mr, Ms, Dr).
vat - String VAT identification number.
Example
{
  "address": {
    "street": "Mozartplatz 1",
    "city": "Salzburg",
    "zip": "5020",
    "country": "AT"
  },
  "birthday": "1985-06-15T00:00:00.000Z",
  "companyId": null,
  "currency": "EUR",
  "email": "max.mustermann@example.com",
  "fax": null,
  "firstName": "Max",
  "gender": "male",
  "isCompany": false,
  "isDeactivated": false,
  "language": "de_DE",
  "mobile": "+43 664 1234567",
  "name": "Mustermann",
  "password": "S3cur3P@ssw0rd!",
  "phone": "+43 316 1234567",
  "title": null,
  "vat": null
}

RegularHours

Description

Regular hours entry defining availability for a specific weekday.

Fields
Field Name Description
operatingHours - OperatingHours Structured data of operating hours
weekday - Int Weekday for regular hour definition (0 as Sunday and 6 as Saturday)
Example
{"operatingHours": {"begin": "06:00:00", "end": "22:00:00"}, "weekday": 1}

RemoteStartResponse

Description

Response of a remote start

Fields
Field Name Description
attemptId - String ID of the underlying RemoteStartAttempt. Available once 3DS has completed.
code - Int Numeric status code from the charging station.
id - String UUID of the remote start request.
message - String Human-readable status message.
session - String Session ID for the charging session (once started).
status - String Current status of the remote start (e.g. Accepted, Rejected).
transaction - String Transaction ID used to stop this session via remoteStop.
Example
{
  "attemptId": "abc123",
  "code": 200,
  "id": "980d6288-4828-4a18-be20-dbdc7c3be164",
  "message": "Remote start accepted.",
  "session": "TXN-20240315-00042",
  "status": "ACCEPTED",
  "transaction": "TXN-20240315-00042"
}

RemoteStartWithPreauthResponse

Description

Response of a remote start with preauth

Fields
Field Name Description
message - String Human-readable status message.
redirectUrl - String Redirect URL
remoteStartPreauthId - String ID of the current session, required for the status update query
Example
{
  "message": "Preauth initiated. Complete payment to start charging.",
  "redirectUrl": "https://payment-gateway.example.com/checkout/preauth-00123",
  "remoteStartPreauthId": "980d6288-4828-4a18-be20-dbdc7c3be164"
}

RemoteStopResponse

Description

Response of a remote stop

Fields
Field Name Description
code - Int Numeric status code from the charging station.
message - String Human-readable message with details.
status - String Current status of the remote stop request.
title - String Short title summarizing the result.
Example
{
  "code": 200,
  "message": "Remote stop accepted.",
  "status": "ACCEPTED",
  "title": "Stop Accepted"
}

SessionAuthenticationResponse

Description

JWT token pair returned after successful authentication or token refresh.

Fields
Field Name Description
refreshToken - String Long-lived refresh token. Use with renewSession to obtain a new token pair.
sessionToken - String Short-lived JWT session token. Send as Authorization: Bearer on subsequent requests.
Example
{
  "refreshToken": "eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI5ZDI3NmViYS0xY2UyLTQ3ZDItYTFlYS0wYzQwYTJiMTQ3OWUiLCJyb2xlIjoiUkZUIiwiaWF0IjoxNzEwNDkxMjAwLCJleHAiOjE3MTMwODMyMDB9.signature",
  "sessionToken": "eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI5ZDI3NmViYS0xY2UyLTQ3ZDItYTFlYS0wYzQwYTJiMTQ3OWUiLCJyb2xlIjoiQ1JNIiwiaWF0IjoxNzEwNDkxMjAwLCJleHAiOjE3MTA0OTQ4MDB9.signature"
}

SessionInvalidationResponse

Description

Result of an invalidateSession (logout) mutation.

Fields
Field Name Description
isInvalidated - Boolean Whether the refresh token was successfully invalidated server-side.
status - String Human-readable status string (SESSION_INVALIDATION_SUCCESS or SESSION_INVALIDATION_ERROR).
Example
{"isInvalidated": true, "status": "success"}

Setting

Description

A tenant-level configuration setting (e.g. legal documents, currency, app rating).

Fields
Field Name Description
key - String! Setting identifier key (e.g. "crm_currency", "app_rating").
value - String! Setting value (format depends on the key).
Example
{"key": "app.support.email", "value": "support-beenergised@chargepoint.com"}

SimpleConnectorStatus

Description

Set of simple statuses which a charging connector can have

Values
Enum Value Description

Available

Faulted

Occupied

Unavailable

Example
"Available"

SimpleCpStatus

Description

Set of simple statuses which a charging station can have

Values
Enum Value Description

Available

Occupied

Unavailable

Example
"Available"

Site

Description

A physical site / location that groups one or more charging points.

Fields
Field Name Description
company - String Company name that owns or operates this site.
cps - [Cp] List of charging points at this site.
id - String UUID of the site.
label - String Human-readable name of the site.
latitude - Float Latitude of the site (WGS84).
longitude - Float Longitude of the site (WGS84).
scope - String Visibility scope of the site.
Example
{
  "company": "City of Salzburg",
  "cps": [
    {
      "id": "624e81bd-c0cf-4252-9bc4-30054fb6a6a8",
      "label": "Main Street Station"
    }
  ],
  "id": "12c25c47-255a-4c75-922b-69cd9b328140",
  "label": "Mozartplatz Parking",
  "latitude": 47.8095,
  "longitude": 13.055,
  "scope": "public"
}

SitesPaged

Description

Paginated list of sites.

Fields
Field Name Description
data - [Site] List of sites in the current page.
pagination - Pagination Pagination metadata for the result set.
Example
{
  "data": [
    {
      "id": "12c25c47-255a-4c75-922b-69cd9b328140",
      "label": "Mozartplatz Parking"
    }
  ],
  "pagination": {"limit": 10, "offset": 0, "totalCount": 1, "isLastPage": true}
}

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"xyz789"

TermsAndConditionsStatus

Description

Response after accepting terms and conditions, indicating success or failure. Deprecated: use LegalDocumentStatus instead.

Fields
Field Name Description
message - String! A description of what happened.
status - String! The status if the acceptance was successful or not.
Example
{"message": "Terms and conditions accepted successfully.", "status": "success"}

TimeFrameFilter

Description

Time range filter for restricting query results to a specific period.

Fields
Input Field Description
end - DateTime End of the time range (ISO-8601 DateTime). Omit for open-ended end.
start - DateTime Start of the time range (ISO-8601 DateTime). Omit for open-ended start.
Example
{"end": "2024-03-31T23:59:59.000Z", "start": "2024-01-01T00:00:00.000Z"}

UpdateCardInput

Description

Input for updating an authentication card (label and/or status).

Fields
Input Field Description
cardId - String! UUID of the card to update.
label - String New display name / label for the card.
status - CardStatusActionEnum Action to perform on card status: ACTIVATE or DEACTIVATE.
Example
{
  "cardId": "4a7fb3a6-c5ff-4739-b46c-c013a4c8ce3f",
  "label": "My Work Card",
  "status": "DEACTIVATE"
}

UpdateCardResponse

Description

Response after updating an authentication card. Contains the full updated card record.

Fields
Field Name Description
expiryDate - String Expiry date of the card as an ISO-8601 date string (e.g. "2026-12-31").
id - ID UUID of the updated card.
label - String The label of the card
message - String Message from the response
number - String The card number
status - String! Returns a active | inactive status of the card
tagId - String! The card id
type - String! The variable card type as default | roaming | virtual | simple | emsp
Example
{
  "expiryDate": "2026-12-31",
  "id": "4a7fb3a6-c5ff-4739-b46c-c013a4c8ce3f",
  "label": "My Work Card",
  "message": "Card updated successfully.",
  "number": "HTB-0001234",
  "status": "active",
  "tagId": "c1a4f434-d8c1-4bc3-8b51-4784298cc442",
  "type": "default"
}

accountDocumentType

Values
Enum Value Description

creditnote

delivery

invoice

offer

order

purchase

Example
"creditnote"

authenticationMediaContract

Description

Input for creating a new authentication media (card) tied to a rate.

Fields
Input Field Description
customerReference - String! A text field for the user to name his authentication media individually.
rateId - String! The id of the rate which will be assigned to the authentication media.
Example
{
  "customerReference": "My charging card",
  "rateId": "6c69d520-44c4-48be-8192-22b3d97ed975"
}

chargelogMeterValuesSummary

Description

Detailed information regarding meter values of a charging session.

Fields
Field Name Description
currentPower - Int current charging power
currentPowerLastChanged - String timestamp from the charging station of the latest charging power change
currentStateOfCharge - Int the current SoC of the car
energyFirstValue - Float the first energy value transmitted from the station
energyFirstValueTime - String timestamp from the charging station for the first energy value
energyLastValue - Float the latest energy value transmitted from the station
energyLastValueTime - String timestamp from the charging station for the latest energy value
energyUpdatedAt - String timestamp of the last energy update of the charging session record in our system
initialStateOfCharge - Int the initial SoC of the car
stateOfChargeLastChanged - String timestamp from the charging station of the latest SoC change
sumEnergy - Float total charged energy
updatedAt - String timestamp of the last update of the charging session record in our system
Example
{
  "currentPower": 11000,
  "currentPowerLastChanged": "2024-03-15T09:45:00.000Z",
  "currentStateOfCharge": 78,
  "energyFirstValue": 12500,
  "energyFirstValueTime": "2024-03-15T08:30:00.000Z",
  "energyLastValue": 36870,
  "energyLastValueTime": "2024-03-15T10:15:00.000Z",
  "energyUpdatedAt": "2024-03-15T10:15:05.000Z",
  "initialStateOfCharge": 22,
  "stateOfChargeLastChanged": "2024-03-15T10:10:00.000Z",
  "sumEnergy": 24.37,
  "updatedAt": "2024-03-15T10:15:05.000Z"
}

creatingPostpaidContract

Description

Input for creating a new postpaid contract.

Fields
Input Field Description
customerReference - String A text field for the customer to name his card individually.
id - String! Id of a registered contract option.
rateId - String! RateId
Example
{
  "customerReference": "My postpaid card",
  "id": "5ffe9724-2ef1-4191-9a5c-682a20f7a0fb",
  "rateId": "6c69d520-44c4-48be-8192-22b3d97ed975"
}

creatingSepaContract

Description

Input for creating a new SEPA direct debit contract.

Fields
Input Field Description
accountHolder - String! Name of the bank account owner
bank - String Name of the bank institut.
bic - String Business Identifier Code (SWIFT Code).
customerReference - String A text field for the customer to name his card individually.
debitType - String! Type of the debit card
iban - String! International Bank Account Number.
id - String! Id of a registered contract option.
rateId - String! RateId
useParent - Boolean! Use the parent account
Example
{
  "accountHolder": "Max Mustermann",
  "bank": "Erste Bank",
  "bic": "GIBAATWWXXX",
  "customerReference": "My SEPA contract",
  "debitType": "CORE",
  "iban": "AT12 3456 7890 1234 5678",
  "id": "5ffe9724-2ef1-4191-9a5c-682a20f7a0fb",
  "rateId": "6c69d520-44c4-48be-8192-22b3d97ed975",
  "useParent": false
}

updatePostpaidContract

Description

Input for updating an existing postpaid contract.

Fields
Input Field Description
customerReference - String! Customer Reference also known as Description
id - String! Id of a registered contract option.
Example
{
  "customerReference": "My postpaid card — updated",
  "id": "b218e871-e05b-476b-baa7-7b9894f79717"
}

updatingSepaContract

Description

Input for updating an existing SEPA contract's bank details or customer reference.

Fields
Input Field Description
accountHolder - String Name of the bank account owner
bank - String Name of the bank institut.
bic - String Business Identifier Code (SWIFT Code).
customerReference - String A text field for the customer to name his card individually.
iban - String International Bank Account Number.
id - String! UUID of the registered contract.
Example
{
  "accountHolder": "Max Mustermann",
  "bank": "Erste Bank",
  "bic": "GIBAATWWXXX",
  "customerReference": "My SEPA contract — updated",
  "iban": "AT12 3456 7890 1234 5678",
  "id": "b8cfbdac-109d-4fbb-9af5-cec5d8b376ef"
}