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) {
    currency
    documentDate
    documentStatus
    downloadLink
    id
    title
    totalAmountGross
    type
  }
}
Variables
{"id": "abc123"}
Response
{
  "data": {
    "accountDocument": {
      "currency": "abc123",
      "documentDate": "2024-03-15T00:00:00.000Z",
      "documentStatus": "CLOSED",
      "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",
      "totalAmountGross": 123.45,
      "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": "xyz789"}
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": "abc123"}
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
    isValid
    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",
      "isValid": 987,
      "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": true}
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": "xyz789",
  "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
    }
    deactivationDescription
    deactivationHeader
    deactivationReason
    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"},
      "deactivationDescription": "abc123",
      "deactivationHeader": "xyz789",
      "deactivationReason": "abc123",
      "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 {
    costRate {
      ...CostRateFragment
    }
    description
    id
    name
    preauthAmount
    preauthCurrencyAmount {
      ...CurrencyAmountFragment
    }
    preauthCurrencyAmounts {
      ...CurrencyAmountFragment
    }
    shortDescription
    uuid
  }
}
Response
{
  "data": {
    "contractRateOptions": [
      {
        "costRate": CostRate,
        "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": false
}
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!
stationFilter - StationFilter Limits stations by highlighted-CPO configuration. Omitting the argument returns all stations (same as ALL).

Example

Query
query cpsPaged(
  $cursorPagination: CursorFilter,
  $filter: [ConnectorFilter],
  $freeOfCharge: Boolean,
  $ignoreMarketingConfiguration: Boolean,
  $pagination: PaginationFilter,
  $stationFilter: StationFilter
) {
  cpsPaged(
    cursorPagination: $cursorPagination,
    filter: $filter,
    freeOfCharge: $freeOfCharge,
    ignoreMarketingConfiguration: $ignoreMarketingConfiguration,
    pagination: $pagination,
    stationFilter: $stationFilter
  ) {
    data {
      ...CpFragment
    }
    pagination {
      ...PaginationInterfaceFragment
    }
  }
}
Variables
{
  "cursorPagination": CursorFilter,
  "filter": [ConnectorFilter],
  "freeOfCharge": true,
  "ignoreMarketingConfiguration": false,
  "pagination": PaginationFilter,
  "stationFilter": "HIGHLIGHTED"
}
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
stationFilter - StationFilter Limits stations by highlighted-CPO configuration. Omitting the argument returns all stations (same as ALL).

Example

Query
query cpsPagedLocationBased(
  $filter: [ConnectorFilter],
  $freeOfCharge: Boolean,
  $ignoreMarketingConfiguration: Boolean,
  $location: LocationFilter,
  $orderedByDistance: String,
  $pagination: PaginationFilter,
  $stationFilter: StationFilter
) {
  cpsPagedLocationBased(
    filter: $filter,
    freeOfCharge: $freeOfCharge,
    ignoreMarketingConfiguration: $ignoreMarketingConfiguration,
    location: $location,
    orderedByDistance: $orderedByDistance,
    pagination: $pagination,
    stationFilter: $stationFilter
  ) {
    data {
      ...CpFragment
    }
    pagination {
      ...PaginationInterfaceFragment
    }
  }
}
Variables
{
  "filter": [ConnectorFilter],
  "freeOfCharge": false,
  "ignoreMarketingConfiguration": false,
  "location": LocationFilter,
  "orderedByDistance": "xyz789",
  "pagination": PaginationFilter,
  "stationFilter": "HIGHLIGHTED"
}
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 filter sections.

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

  • No argument / filter: CONNECTOR_FILTER (default): connector-property filters — TYPE_OF_CURRENT, POWER_CLASS, FILTER_BY_CONNECTOR_TYPE. Byte-identical to the pre-SPOCK-97 response.
  • filter: STATION_FILTER: single-entry list with the station-level section (slug: STATION_FILTER, type: "singleselect", options ALL / HIGHLIGHTED / NON_HIGHLIGHTED). Same Filter shape — no inline fragments required.
Response

Returns [Filter]

Arguments
Name Description
filter - FilterSet Which filter set to return. Omit or pass CONNECTOR_FILTER for the connector-filter response; pass STATION_FILTER for the station-level section.

Example

Query
query filters($filter: FilterSet) {
  filters(filter: $filter) {
    label
    options {
      ...FilterOptionFragment
    }
    slug
    type
  }
}
Variables
{"filter": "STATION_FILTER"}
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": ["abc123"], "day": "ALL"}
Response
{
  "data": {
    "occupancyRate": [{"day": "MONDAY", "hour": 9, "occupancyRate": 0.72}]
  }
}

paymentMedia

Description

List the masked payment media stored for the authenticated driver. Returns an empty list when no media exist — never null, never an error. Each entry exposes only safe, PSP-agnostic fields: id, brand, lastFour, expiry, isDefault. Allowed for role CRM.

Example

query {
  paymentMedia {
    id
    brand
    lastFour
    expiryMonth
    expiryYear
    isDefault
    createdAt
  }
}
Response

Returns [PaymentMedium!]!

Example

Query
query paymentMedia {
  paymentMedia {
    brand
    createdAt
    expiryMonth
    expiryYear
    id
    isDefault
    lastFour
  }
}
Response
{
  "data": {
    "paymentMedia": [
      {
        "brand": "abc123",
        "createdAt": "abc123",
        "expiryMonth": 123,
        "expiryYear": 987,
        "id": 4,
        "isDefault": true,
        "lastFour": "xyz789"
      }
    ]
  }
}

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": "xyz789"}
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
    paymentErrorCode
    paymentErrorMessage
    session
    status
    transaction
  }
}
Variables
{"remoteStartPreauthId": "xyz789"}
Response
{
  "data": {
    "remoteStartWithPreauthStatus": {
      "attemptId": "xyz789",
      "code": 200,
      "id": "980d6288-4828-4a18-be20-dbdc7c3be164",
      "message": "Remote start accepted.",
      "paymentErrorCode": 987,
      "paymentErrorMessage": "xyz789",
      "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": "xyz789",
  "ignoreMarketingConfiguration": false
}
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).
stationFilter - StationFilter Limits stations by highlighted-CPO configuration. Omitting the argument returns all stations (same as ALL).

Example

Query
query sitesPaged(
  $filter: [ConnectorFilter],
  $ignoreMarketingConfiguration: Boolean,
  $pagination: PaginationFilter,
  $stationFilter: StationFilter
) {
  sitesPaged(
    filter: $filter,
    ignoreMarketingConfiguration: $ignoreMarketingConfiguration,
    pagination: $pagination,
    stationFilter: $stationFilter
  ) {
    data {
      ...SiteFragment
    }
    pagination {
      ...PaginationFragment
    }
  }
}
Variables
{
  "filter": [ConnectorFilter],
  "ignoreMarketingConfiguration": false,
  "pagination": PaginationFilter,
  "stationFilter": "HIGHLIGHTED"
}
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).
stationFilter - StationFilter Limits stations by highlighted-CPO configuration. Omitting the argument returns all stations (same as ALL).

Example

Query
query sitesPagedLocationBased(
  $filter: [ConnectorFilter],
  $ignoreMarketingConfiguration: Boolean,
  $location: LocationFilter,
  $pagination: PaginationFilter,
  $stationFilter: StationFilter
) {
  sitesPagedLocationBased(
    filter: $filter,
    ignoreMarketingConfiguration: $ignoreMarketingConfiguration,
    location: $location,
    pagination: $pagination,
    stationFilter: $stationFilter
  ) {
    data {
      ...SiteFragment
    }
    pagination {
      ...PaginationFragment
    }
  }
}
Variables
{
  "filter": [ConnectorFilter],
  "ignoreMarketingConfiguration": true,
  "location": LocationFilter,
  "pagination": PaginationFilter,
  "stationFilter": "HIGHLIGHTED"
}
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": "xyz789"}
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": "xyz789"}
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"
    }
  }
}

deletePaymentMedium

Description

Permanently delete a stored payment medium. Removes the card from internal storage and deregisters it at the PSP. Returns true on success. The default payment medium cannot be deleted. Allowed for role CRM.

Example

mutation {
  deletePaymentMedium(paymentMediumId: "uuid-of-payment-medium")
}
Response

Returns a Boolean!

Arguments
Name Description
paymentMediumId - ID! UUID of the payment medium to delete.

Example

Query
mutation deletePaymentMedium($paymentMediumId: ID!) {
  deletePaymentMedium(paymentMediumId: $paymentMediumId)
}
Variables
{"paymentMediumId": 4}
Response
{"data": {"deletePaymentMedium": false}}

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": "abc123"
}
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"
      }
    }
  }
}

registerPaymentMedium

Description

Start a payment medium registration session. Returns a hosted-page URL for the mobile app to render the PSP UI. Does not require a rateId — the payment medium is independent of contract enrollment. Allowed for role CRM.

Example

mutation {
  registerPaymentMedium {
    redirectUrl
    sessionId
  }
}

Example

Query
mutation registerPaymentMedium {
  registerPaymentMedium {
    redirectUrl
    sessionId
  }
}
Response
{
  "data": {
    "registerPaymentMedium": {
      "redirectUrl": "xyz789",
      "sessionId": "abc123"
    }
  }
}

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": "abc123",
  "rateId": "abc123"
}
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
    paymentErrorCode
    paymentErrorMessage
    session
    status
    transaction
  }
}
Variables
{
  "authorization": Authorization,
  "connector": "abc123"
}
Response
{
  "data": {
    "remoteStart": {
      "attemptId": "xyz789",
      "code": 200,
      "id": "980d6288-4828-4a18-be20-dbdc7c3be164",
      "message": "Remote start accepted.",
      "paymentErrorCode": 987,
      "paymentErrorMessage": "abc123",
      "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
    paymentErrorCode
    paymentErrorMessage
    redirectUrl
    remoteStartPreauthId
  }
}
Variables
{
  "authorization": Authorization,
  "connector": "xyz789",
  "preauthCurrencyAmount": CurrencyAmountInput
}
Response
{
  "data": {
    "remoteStartWithPreauth": {
      "message": "Preauth initiated. Complete payment to start charging.",
      "paymentErrorCode": 987,
      "paymentErrorMessage": "xyz789",
      "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
    paymentErrorCode
    paymentErrorMessage
    session
    status
    transaction
  }
}
Variables
{
  "authorization": Authorization,
  "connector": "xyz789"
}
Response
{
  "data": {
    "remoteStartWithoutInvoicing": {
      "attemptId": "abc123",
      "code": 200,
      "id": "980d6288-4828-4a18-be20-dbdc7c3be164",
      "message": "Remote start accepted.",
      "paymentErrorCode": 123,
      "paymentErrorMessage": "xyz789",
      "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": "abc123"}
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"
    }
  }
}

retriggerInvoicePayment

Description

Enqueue a payment capture for an open invoice using the contact's default payment medium. The capture runs asynchronously in be.energised's job pipeline. Re-poll accountDocument(id) to learn the outcome — the invoice state will reflect the result once the async capture completes.

Deactivated contacts may call this mutation — same product rule as remoteStart (confirmed with PO). The user is typically blocked because of an unpaid invoice; allowing the call enables the re-activation loop owned by PREQ-2298.

Response

Returns a RetriggerInvoicePaymentResult!

Arguments
Name Description
accountDocumentId - String! UUID of the invoice (AccountDocument) whose payment capture to enqueue.

Example

Query
mutation retriggerInvoicePayment($accountDocumentId: String!) {
  retriggerInvoicePayment(accountDocumentId: $accountDocumentId) {
    accountDocumentId
    status
  }
}
Variables
{"accountDocumentId": "abc123"}
Response
{
  "data": {
    "retriggerInvoicePayment": {
      "accountDocumentId": "xyz789",
      "status": "PAYMENT_QUEUED"
    }
  }
}

setDefaultPaymentMedium

Description

Set a payment medium as the default for the authenticated driver. Atomically unsets any previous default. Returns the updated PaymentMedium. If the given ID does not exist or does not belong to the authenticated driver, returns NOT_FOUND. Allowed for role CRM.

Example

mutation {
  setDefaultPaymentMedium(paymentMediumId: "uuid-...") {
    id
    brand
    lastFour
    isDefault
  }
}
Response

Returns a PaymentMedium!

Arguments
Name Description
paymentMediumId - ID! UUID of the payment medium to mark as default.

Example

Query
mutation setDefaultPaymentMedium($paymentMediumId: ID!) {
  setDefaultPaymentMedium(paymentMediumId: $paymentMediumId) {
    brand
    createdAt
    expiryMonth
    expiryYear
    id
    isDefault
    lastFour
  }
}
Variables
{"paymentMediumId": 4}
Response
{
  "data": {
    "setDefaultPaymentMedium": {
      "brand": "abc123",
      "createdAt": "abc123",
      "expiryMonth": 123,
      "expiryYear": 123,
      "id": "4",
      "isDefault": false,
      "lastFour": "abc123"
    }
  }
}

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": ["abc123"]}
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
currency - String Document currency (ISO 4217). Only populated for documents of type invoice or creditnote; null otherwise.
documentDate - DateTime The date when the document was issued
documentStatus - DocumentStatus

Lifecycle status of the document. Interpret in conjunction with type: OPEN on an invoice means awaiting payment, on a creditnote it means the refund has been issued.

Only populated for documents of type invoice or creditnote; null for all other types and when the upstream value cannot be mapped to one of the enum members.

downloadLink - String A Link to download the pdf
id - String UUID of the document.
title - String The title of the document
totalAmountGross - Float

Total document amount (gross) in the document currency. For an invoice this is the amount the customer pays; for a credit note this is the amount refunded. May differ from the CDR amount (chargeLog.cost.grossAmount); prefer this value for display.

Only populated for documents of type invoice or creditnote; null for all other types and when the upstream value is unavailable.

type - accountDocumentType The type of the document
Example
{
  "currency": "abc123",
  "documentDate": "2024-03-15T00:00:00.000Z",
  "documentStatus": "CLOSED",
  "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",
  "totalAmountGross": 123.45,
  "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": "xyz789",
  "label": "xyz789",
  "number": "abc123",
  "preauthRequired": true,
  "tagId": "xyz789",
  "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.
isValid - Int Plausibility validation status: 0 = invalid, 1 = valid, null = the plausibility check has not run yet.
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",
  "isValid": 987,
  "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_ac"], "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.
deactivationDescription - String Free-text description set on the contact when deactivated (be.E UI / Core API). Shown to the user on the white-label app blocker screen. Null when active.
deactivationHeader - String Free-text header set on the contact when deactivated (be.E UI / Core API). Shown to the user on the white-label app blocker screen. Null when active.
deactivationReason - String PSP-supplied reason for deactivation (e.g. failed-capture error message). Null when the contact is active. Free-text today; the consumer is responsible for any user-facing translation.
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"},
  "deactivationDescription": "abc123",
  "deactivationHeader": "xyz789",
  "deactivationReason": "xyz789",
  "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": "abc123",
  "PAGE_ENVIRONMENT": "xyz789"
}

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": 987,
  "statusText": "xyz789"
}

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": "xyz789"
}

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
}

CostRate

Description

Marketing text bundle of a cost rate. shortDescription, description and legal are maps of locale code → translation (e.g. { en_US: ..., de_DE: ... }). For dynamic-pricing rates validity describes the currently active schedule entry; static rates and dynamic rates in a recurring gap have validity = null and nextPrice = null.

Fields
Field Name Description
description - LocalizedString Full marketing description, keyed by locale code. Empty when the cost rate has no translations.
id - ID RateCost.uuid — stable per-cost-rate identifier (SPOCK-100 contract C8).
legal - LocalizedString Legal / terms text shown alongside the marketing copy, keyed by locale code. Empty when the cost rate has no translations.
nextPrice - NextPrice Next applicable price version. null for static rates or when no further version is scheduled.
shortDescription - LocalizedString Short marketing description, keyed by locale code (e.g. { en_US: "Off-peak", de_DE: "Schwachlast" }). Empty when the cost rate has no translations.
validity - Validity Currently active price window. null for static rates or dynamic rates in a recurring gap.
Example
{
  "description": LocalizedString,
  "id": "4",
  "legal": LocalizedString,
  "nextPrice": NextPrice,
  "shortDescription": LocalizedString,
  "validity": Validity
}

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"

DocumentStatus

Description

Lifecycle status of an account document (invoice or credit note).

  • DRAFT - not yet finalised (e.g. awaiting fiscalization).
  • OPEN - issued. For invoices: awaiting payment. For credit notes: refund has been issued.
  • CLOSED - settled (datePayed is set). Only ever observed on invoices; credit notes do not transition to CLOSED because they clear datePayed on creation.

Other document statuses (won, lost, postponed on offers) are intentionally not represented here; resolvers return null for those.

Values
Enum Value Description

CLOSED

DRAFT

OPEN

Example
"CLOSED"

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": "xyz789",
  "response": LoginErrorResponse
}

Filter

Description

One possible property on which a section can be filtered, together with all possible options for that property. Returned by the filters query.

When filter is omitted or CONNECTOR_FILTER, entries describe connector properties and can be echoed into the ConnectorFilter input. When filter: STATION_FILTER, the sole entry describes the station-level selector whose option slugs echo into stationFilter: on cpsPaged / sitesPaged.

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. One of the connector-property values (TYPE_OF_CURRENT, POWER_CLASS, FILTER_BY_CONNECTOR_TYPE) or STATION_FILTER for the station-level section.
type - String Information on the filter type (e.g. multiselect, singleselect).
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"
}

FilterSet

Description

Selects which set of filter descriptors the filters query returns. Kept separate from FilterType so the request-side vocabulary (what the client asks for) does not couple to the response-side vocabulary (what a section carries as Filter.slug).

  • CONNECTOR_FILTER (also the default when the argument is omitted): connector-property filters (TYPE_OF_CURRENT, POWER_CLASS, FILTER_BY_CONNECTOR_TYPE). Byte-identical to the pre-SPOCK-97 response.
  • STATION_FILTER: single-entry list with the station-level section. Always returned when explicitly requested — the WL app decides whether to surface the chip; no backend gating on cpo_display_configuration.
Values
Enum Value Description

CONNECTOR_FILTER

STATION_FILTER

Example
"CONNECTOR_FILTER"

FilterType

Description

Section identifier for the filter descriptors returned by the filters query (as Filter.slug) and for the connector-property filter values applied by the paged CP / site queries (as input ConnectorFilter.slug). Passing STATION_FILTER inside ConnectorFilter is silently ignored by the backend — station filtering is expressed via the top-level stationFilter: argument on cpsPaged / sitesPaged, not via ConnectorFilter.

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)

STATION_FILTER

station-level section returned when filters(filter:) is STATION_FILTER

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
123.45

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": "abc123",
  "sessionId": "xyz789"
}

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
987

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"

LocalizedString

Example
LocalizedString

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": "xyz789",
  "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": "abc123"
}

NextPrice

Description

Next applicable price version of a dynamic-pricing cost rate. shortDescription, description and legal are maps of locale code → translation (same shape as the parent CostRate). No id and no recursive nextPrice (see SPOCK-100 contract C9).

Fields
Field Name Description
description - LocalizedString Full marketing description of the next price version, keyed by locale code.
legal - LocalizedString Legal / terms text shown alongside the marketing copy of the next price version, keyed by locale code.
shortDescription - LocalizedString Short marketing description of the next price version, keyed by locale code.
validity - Validity Validity window of the next applicable price version.
Example
{
  "description": LocalizedString,
  "legal": LocalizedString,
  "shortDescription": LocalizedString,
  "validity": Validity
}

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": true, "limit": 987, "offset": 987, "totalCount": 987}

PaymentCallbackType

Values
Enum Value Description

HTML

JSON

Example
"HTML"

PaymentMedium

Description

A masked, PSP-agnostic payment medium stored for the authenticated driver.

Fields
Field Name Description
brand - String! Card brand or payment-method identifier as received from the PSP. Values are raw unprocessed values from the PSP (e.g. "VISA", "Mastercard", "DEBIT MASTERCARD"), gateway abbreviations ("VIS", "ECA", "PAP"), Display-level normalisation is the consumer's responsibility.
createdAt - String ISO-8601 creation timestamp, or null if not available.
expiryMonth - Int Expiry month (1–12), or null if not available.
expiryYear - Int Expiry year (4-digit), or null if not available.
id - ID! Opaque internal identifier (UUID).
isDefault - Boolean! Whether this is the driver's default payment medium.
lastFour - String Last four digits of the card number, or null if not available.
Example
{
  "brand": "abc123",
  "createdAt": "xyz789",
  "expiryMonth": 123,
  "expiryYear": 987,
  "id": 4,
  "isDefault": true,
  "lastFour": "abc123"
}

PaymentMediumRegistrationSession

Description

Session payload for payment medium registration via the hosted PSP page.

Fields
Field Name Description
redirectUrl - String! URL to open in a webview to complete payment medium registration.
sessionId - String! Session identifier for status tracking.
Example
{
  "redirectUrl": "xyz789",
  "sessionId": "abc123"
}

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": "abc123",
  "code": "xyz789",
  "contractData": ContractData,
  "deferral": "xyz789",
  "grouping": "abc123",
  "iFrameHeight": 123,
  "label": "abc123",
  "links": PaymentLink,
  "maskedAccount": MaskedAccount,
  "method": "abc123",
  "operationType": "CHARGE",
  "recurrence": "xyz789",
  "redirect": true,
  "registration": "xyz789",
  "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
costRate - CostRate Marketing text + price-version data for the rate's default sales cost rate. Same shape as the costRate field on the other rate queries (card, contractRateOptions, ratePackageByConnectorId): per-locale shortDescription / description / legal maps, plus validity / nextPrice for dynamic-pricing cost rates (absent for static rates).
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
{
  "costRate": CostRate,
  "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
costRate - CostRate Marketing text and price-version data for the rate. Always present in practice (SPOCK-100 contract C1); nullable on the schema for forward compatibility.
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
{
  "costRate": CostRate,
  "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.
paymentErrorCode - Int PSP error code from the first error returned by IxoPay. Null when no payment error occurred.
paymentErrorMessage - String Human-readable PSP error message. Null when no payment error occurred.
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.",
  "paymentErrorCode": 123,
  "paymentErrorMessage": "abc123",
  "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.
paymentErrorCode - Int PSP error code from the first error returned by IxoPay (e.g. 2003 = card declined). Null on success or when no PSP error is available.
paymentErrorMessage - String Human-readable PSP error message (e.g. "Card declined"). Null on success. Consumer is responsible for any user-facing translation.
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.",
  "paymentErrorCode": 123,
  "paymentErrorMessage": "xyz789",
  "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"
}

RetriggerInvoicePaymentResult

Description

Result returned when a payment capture has been successfully enqueued.

Fields
Field Name Description
accountDocumentId - String! UUID of the invoice for which the payment capture was enqueued. Use this to poll accountDocument(id) for the async outcome.
status - RetriggerInvoicePaymentStatus! Always PAYMENT_QUEUED on a successful enqueue. The actual payment outcome is async — re-poll accountDocument(id) to learn the result.
Example
{
  "accountDocumentId": "xyz789",
  "status": "PAYMENT_QUEUED"
}

RetriggerInvoicePaymentStatus

Description

Possible statuses for a retriggerInvoicePayment mutation call.

Values
Enum Value Description

PAYMENT_QUEUED

Example
"PAYMENT_QUEUED"

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}
}

StationFilter

Description

Limits stations returned by CP and site list queries to those operated by CPOs configured as highlighted in the mandant's cpo_display_configuration.

  • ALL: no filtering by CPO (default; identical to omitting the argument).
  • HIGHLIGHTED: only stations whose operator is in the mandant's highlighted CPO list.
  • NON_HIGHLIGHTED: only stations whose operator is not in that list and whose operator is set (stations with no operator are excluded).
Values
Enum Value Description

ALL

HIGHLIGHTED

NON_HIGHLIGHTED

Example
"ALL"

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
"abc123"

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"
}

Validity

Description

Time window during which a price version is the active one for a dynamic-pricing cost rate.

Fields
Field Name Description
endDate - DateTime! End of the validity window (UTC).
startDate - DateTime! Start of the validity window (UTC).
Example
{
  "endDate": "2007-12-03T10:15:30Z",
  "startDate": "2007-12-03T10:15:30Z"
}

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"
}