{
  "openapi": "3.0.1",
  "info": {
    "title": "eMabler | Express API",
    "description": "",
    "termsOfService": "https://www.emabler.com/privacy-policy",
    "contact": {
      "name": "eMabler Ltd",
      "url": "https://www.emabler.com/contact",
      "email": "hello@emabler.com"
    },
    "version": "2.0.1"
  },
  "servers": [
    {
      "url": "https://api.emabler.net/api/v2/express/"
    }
  ],
  "paths": {
    "/v2/express/transactions": {
      "get": {
        "tags": [
          "Transactions"
        ],
        "summary": "Get Express Transactions",
        "description": "Retrieves transaction information for express charging sessions.",
        "operationId": "getExpressTransactions",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page to be fetched. Default: 1",
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            },
            "x-ms-summary": "Page",
            "x-ms-visibility": "important"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit (No. of records per page). Max value: 100. Default: 100.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            },
            "x-ms-summary": "Limit",
            "x-ms-visibility": "important"
          },
          {
            "name": "search",
            "in": "query",
            "description": "Search text to filter sessions.",
            "schema": {
              "type": "string"
            },
            "x-ms-summary": "Search",
            "x-ms-visibility": "important"
          },
          {
            "name": "from",
            "in": "query",
            "description": "Filter sessions from this timestamp (ISO 8601 format).",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "x-ms-summary": "Timestamp From",
            "x-ms-visibility": "important"
          },
          {
            "name": "to",
            "in": "query",
            "description": "Filter sessions to this timestamp (ISO 8601 format).",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "x-ms-summary": "Timestamp To",
            "x-ms-visibility": "important"
          },
          {
            "name": "clientId",
            "in": "query",
            "description": "Filter by client ID",
            "schema": {
              "type": "string"
            },
            "x-ms-summary": "Client ID",
            "x-ms-visibility": "important"
          },
          {
            "name": "chargerId",
            "in": "query",
            "description": "Filter by charger ID",
            "schema": {
              "type": "string"
            },
            "x-ms-summary": "Charger ID",
            "x-ms-visibility": "important"
          },
          {
            "name": "transactionId",
            "in": "query",
            "description": "Filter by transaction ID",
            "schema": {
              "type": "string"
            },
            "x-ms-summary": "Transaction ID",
            "x-ms-visibility": "important"
          },
          {
            "name": "merchantReference",
            "in": "query",
            "description": "Filter by merchant reference",
            "schema": {
              "type": "string"
            },
            "x-ms-summary": "Merchant Reference",
            "x-ms-visibility": "important"
          },
          {
            "name": "paymentType",
            "in": "query",
            "description": "Filter by payment type",
            "schema": {
              "type": "string"
            },
            "x-ms-summary": "Payment Type",
            "x-ms-visibility": "important"
          },
          {
            "name": "sortKey",
            "in": "query",
            "description": "Field to be used for sorting. Default: startTime",
            "schema": {
              "type": "string"
            },
            "x-ms-summary": "Sort Key",
            "x-ms-visibility": "important"
          },
          {
            "name": "sortDescending",
            "in": "query",
            "description": "Set to 'true' to sort descending based on sort key. Default: 'true'",
            "schema": {
              "type": "boolean"
            },
            "x-ms-summary": "Sort Descending",
            "x-ms-visibility": "important"
          }
        ],
        "responses": {
          "200": {
            "description": "Express sessions successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/getExpressTransactionsResponse"
                }
              }
            },
            "x-ms-summary": "Success"
          },
          "400": {
            "description": "Details of the validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemDetails"
                }
              }
            },
            "x-ms-summary": "Validation Error"
          },
          "500": {
            "description": "An unexpected error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error"
                }
              }
            },
            "x-ms-summary": "Internal Server Error"
          },
          "401": {
            "description": "User not authorized.",
            "x-ms-summary": "Unauthorized"
          }
        },
        "security": [
          {
            "apiKey": [ ]
          },
          {
            "bearer": [ ]
          }
        ],
        "x-ms-visibility": "important"
      }
    },
    "/v2/express/settings": {
      "get": {
        "tags": [
          "Settings"
        ],
        "summary": "Get Express settings for authenticated customer",
        "description": "Get the Express settings for the authenticated customer",
        "operationId": "getExpressSettings",
        "responses": {
          "200": {
            "description": "The Express settings for the authenticated customer",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/getExpressSettingsResponse"
                }
              }
            },
            "x-ms-summary": "OK Reply"
          },
          "400": {
            "description": "Exception Details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error"
                }
              }
            },
            "x-ms-summary": "Error/Exception"
          },
          "404": {
            "description": "Settings not found for the customer",
            "x-ms-summary": "Not Found"
          },
          "401": {
            "description": "User / function not authorised",
            "x-ms-summary": "Unauthorised"
          }
        },
        "security": [
          {
            "apiKey": [ ]
          },
          {
            "bearer": [ ]
          },
          {
            "functionKey": [ ]
          }
        ],
        "x-ms-visibility": "important"
      },
      "put": {
        "tags": [
          "Settings"
        ],
        "summary": "Update Express settings for authenticated customer",
        "description": "Update or create Express settings for the authenticated customer",
        "operationId": "updateExpressSettings",
        "requestBody": {
          "description": "Express settings data to update",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/updateExpressSettingsRequestBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The updated Express settings",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/updateExpressSettingsResponse"
                }
              }
            },
            "x-ms-summary": "OK Reply"
          },
          "400": {
            "description": "Validation error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error"
                }
              }
            },
            "x-ms-summary": "Validation Error"
          },
          "401": {
            "description": "User / function not authorised",
            "x-ms-summary": "Unauthorised"
          }
        },
        "security": [
          {
            "apiKey": [ ]
          },
          {
            "bearer": [ ]
          },
          {
            "functionKey": [ ]
          }
        ],
        "x-ms-visibility": "important"
      }
    },
    "/v2/express/sessions": {
      "get": {
        "tags": [
          "Session"
        ],
        "summary": "Get express sessions",
        "description": "Gets express sessions for the specified duration",
        "operationId": "getSessions",
        "parameters": [
          {
            "name": "startTimeBegin",
            "in": "query",
            "description": "Beginning of the 'session start time' period",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "x-ms-summary": "Start Time Begin",
            "x-ms-visibility": "important"
          },
          {
            "name": "startTimeEnd",
            "in": "query",
            "description": "Ending of the 'session start time' period",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "x-ms-summary": "Start Time End",
            "x-ms-visibility": "important"
          },
          {
            "name": "stopTimeBegin",
            "in": "query",
            "description": "Beginning of the 'session stop time' period",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "x-ms-summary": "Stop Time Begin",
            "x-ms-visibility": "important"
          },
          {
            "name": "stopTimeEnd",
            "in": "query",
            "description": "Ending of the 'session stop time' period",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "x-ms-summary": "Stop Time End",
            "x-ms-visibility": "important"
          }
        ],
        "responses": {
          "200": {
            "description": "Express sessions for the given duration",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/sessionResponse"
                  }
                }
              }
            },
            "x-ms-summary": "OK Reply"
          },
          "400": {
            "description": "Exception Details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error"
                }
              }
            },
            "x-ms-summary": "Error/Exception"
          },
          "401": {
            "description": "User not authorised",
            "x-ms-summary": "Unauthorised"
          }
        },
        "deprecated": true,
        "security": [
          {
            "apiKey": [ ]
          },
          {
            "bearer": [ ]
          }
        ],
        "x-ms-visibility": "important"
      }
    },
    "/v2/express/prices": {
      "post": {
        "tags": [
          "Price"
        ],
        "summary": "Add Express Price",
        "description": "Creates a new express price entry in the system.",
        "operationId": "addExpressPrice",
        "requestBody": {
          "description": "The express price data to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/addExpressPriceRequestBody"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Express price successfully created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/addExpressPriceResponse"
                }
              }
            },
            "x-ms-summary": "Success"
          },
          "400": {
            "description": "Details of the validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemDetails"
                }
              }
            },
            "x-ms-summary": "Validation Error"
          },
          "500": {
            "description": "An unexpected error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error"
                }
              }
            },
            "x-ms-summary": "Internal Server Error"
          },
          "401": {
            "description": "User not authorized.",
            "x-ms-summary": "Unauthorized"
          }
        },
        "security": [
          {
            "apiKey": [ ]
          },
          {
            "bearer": [ ]
          }
        ],
        "x-ms-visibility": "important"
      },
      "get": {
        "tags": [
          "Price"
        ],
        "summary": "Get Express Prices",
        "description": "Retrieves pricing information for express charging sessions.",
        "operationId": "getExpressPrices",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page to be fetched. Default: 1",
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            },
            "x-ms-summary": "Page",
            "x-ms-visibility": "important"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit (No. of records per page). Max value: 100. Default: 100.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            },
            "x-ms-summary": "Limit",
            "x-ms-visibility": "important"
          },
          {
            "name": "priceType",
            "in": "query",
            "description": "Filter by price type",
            "schema": {
              "type": "string"
            },
            "x-ms-summary": "Price Type",
            "x-ms-visibility": "important"
          },
          {
            "name": "currency",
            "in": "query",
            "description": "Filter by currency code",
            "schema": {
              "type": "string"
            },
            "x-ms-summary": "Currency",
            "x-ms-visibility": "important"
          },
          {
            "name": "sortKey",
            "in": "query",
            "description": "Field to be used for sorting. Default: id",
            "schema": {
              "type": "string"
            },
            "x-ms-summary": "Sort Key",
            "x-ms-visibility": "important"
          },
          {
            "name": "sortDescending",
            "in": "query",
            "description": "Set to 'true' to sort descending based on sort key. Default: 'false'",
            "schema": {
              "type": "boolean"
            },
            "x-ms-summary": "Sort Descending",
            "x-ms-visibility": "important"
          }
        ],
        "responses": {
          "200": {
            "description": "Express prices successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/getExpressPricesResponse"
                }
              }
            },
            "x-ms-summary": "Success"
          },
          "400": {
            "description": "Details of the validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemDetails"
                }
              }
            },
            "x-ms-summary": "Validation Error"
          },
          "500": {
            "description": "An unexpected error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error"
                }
              }
            },
            "x-ms-summary": "Internal Server Error"
          },
          "401": {
            "description": "User not authorized.",
            "x-ms-summary": "Unauthorized"
          }
        },
        "security": [
          {
            "apiKey": [ ]
          },
          {
            "bearer": [ ]
          }
        ],
        "x-ms-visibility": "important"
      }
    },
    "/v2/express/price/{priceId}": {
      "get": {
        "tags": [
          "Price"
        ],
        "summary": "Get Express Price",
        "description": "Retrieves detailed price information for a specific express price by price ID.",
        "operationId": "getExpressPrice",
        "parameters": [
          {
            "name": "priceId",
            "in": "path",
            "description": "The unique identifier of the price",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "x-ms-summary": "Price ID",
            "x-ms-visibility": "important"
          }
        ],
        "responses": {
          "200": {
            "description": "Express price successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/expressPriceDto"
                }
              }
            },
            "x-ms-summary": "Success"
          },
          "400": {
            "description": "Details of the validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemDetails"
                }
              }
            },
            "x-ms-summary": "Validation Error"
          },
          "500": {
            "description": "An unexpected error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error"
                }
              }
            },
            "x-ms-summary": "Internal Server Error"
          },
          "404": {
            "description": "Price not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error"
                }
              }
            },
            "x-ms-summary": "Not Found"
          },
          "401": {
            "description": "User not authorized.",
            "x-ms-summary": "Unauthorized"
          }
        },
        "security": [
          {
            "apiKey": [ ]
          },
          {
            "bearer": [ ]
          }
        ],
        "x-ms-visibility": "important"
      }
    },
    "/v2/express/configuration": {
      "get": {
        "tags": [
          "Configuration"
        ],
        "summary": "Get the configuration related to Express",
        "description": "Get the configuration related to Express",
        "operationId": "getConfiguration",
        "parameters": [
          {
            "name": "urlKey",
            "in": "query",
            "description": "This is the Url Key configured for the Express Charger",
            "schema": {
              "type": "string"
            },
            "x-ms-summary": "Url Key configured for the Express Charger",
            "x-ms-visibility": "important"
          }
        ],
        "responses": {
          "200": {
            "description": "The configuration for the Express",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/configurationResponse"
                }
              }
            },
            "x-ms-summary": "OK Reply"
          },
          "400": {
            "description": "Exception Details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error"
                }
              }
            },
            "x-ms-summary": "Error/Exception"
          },
          "401": {
            "description": "User / function not authorised",
            "x-ms-summary": "Unauthorised"
          }
        },
        "deprecated": true,
        "security": [
          {
            "apiKey": [ ]
          },
          {
            "bearer": [ ]
          },
          {
            "functionKey": [ ]
          }
        ],
        "x-ms-visibility": "important"
      },
      "post": {
        "tags": [
          "Configuration"
        ],
        "summary": "Update the configuration related to Express",
        "description": "Update the configuration related to Express",
        "operationId": "updateConfiguration",
        "requestBody": {
          "description": "The configuration request for Express. Configuration as JSON and file as a form data",
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/configurationData"
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "description": "Exception Details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error"
                }
              }
            },
            "x-ms-summary": "Error/Exception"
          },
          "200": {
            "description": "No description"
          },
          "401": {
            "description": "User not authorised",
            "x-ms-summary": "Unauthorised"
          }
        },
        "deprecated": true,
        "security": [
          {
            "apiKey": [ ]
          },
          {
            "bearer": [ ]
          }
        ],
        "x-ms-visibility": "important"
      }
    },
    "/v2/express/logo/{fileName}": {
      "get": {
        "tags": [
          "Configuration"
        ],
        "summary": "Get the logo image for the Express",
        "description": "Get the logo image for the Express",
        "operationId": "getLogo",
        "parameters": [
          {
            "name": "fileName",
            "in": "path",
            "description": "The file name of the logo to be retrieved",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-ms-summary": "The file name of the logo",
            "x-ms-visibility": "important"
          }
        ],
        "responses": {
          "200": {
            "description": "The logo for the Express",
            "content": {
              "image/*": {
                "schema": {
                  "$ref": "#/components/schemas/stream"
                }
              }
            },
            "x-ms-summary": "OK Reply"
          },
          "400": {
            "description": "Exception Details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error"
                }
              }
            },
            "x-ms-summary": "Error/Exception"
          }
        },
        "deprecated": true,
        "x-ms-visibility": "important"
      }
    },
    "/v2/express/chargers": {
      "post": {
        "tags": [
          "Charger"
        ],
        "summary": "Add Express Charger",
        "description": "Creates a new express charger entry in the system.",
        "operationId": "addExpressCharger",
        "requestBody": {
          "description": "The express charger data to create",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/addExpressChargerRequestBody"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Express charger successfully created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/addExpressChargerResponse"
                }
              }
            },
            "x-ms-summary": "Success"
          },
          "400": {
            "description": "Details of the validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemDetails"
                }
              }
            },
            "x-ms-summary": "Validation Error"
          },
          "500": {
            "description": "An unexpected error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error"
                }
              }
            },
            "x-ms-summary": "Internal Server Error"
          },
          "409": {
            "description": "A charger with the provided URL key or Charger ID already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error"
                }
              }
            },
            "x-ms-summary": "Conflict"
          },
          "401": {
            "description": "User not authorized.",
            "x-ms-summary": "Unauthorized"
          }
        },
        "security": [
          {
            "apiKey": [ ]
          },
          {
            "bearer": [ ]
          }
        ],
        "x-ms-visibility": "important"
      },
      "get": {
        "tags": [
          "Charger"
        ],
        "summary": "Get Express Chargers",
        "description": "Retrieves charger information for express charging sessions.",
        "operationId": "getExpressChargers",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page to be fetched. Default: 1",
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            },
            "x-ms-summary": "Page",
            "x-ms-visibility": "important"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit (No. of records per page). Max value: 100. Default: 100.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            },
            "x-ms-summary": "Limit",
            "x-ms-visibility": "important"
          },
          {
            "name": "search",
            "in": "query",
            "description": "Search text to filter chargers.",
            "schema": {
              "type": "string"
            },
            "x-ms-summary": "Search",
            "x-ms-visibility": "important"
          },
          {
            "name": "connectionType",
            "in": "query",
            "description": "Filter by connection type",
            "schema": {
              "type": "string"
            },
            "x-ms-summary": "Connection Type",
            "x-ms-visibility": "important"
          },
          {
            "name": "chargerType",
            "in": "query",
            "description": "Filter by charger type",
            "schema": {
              "type": "string"
            },
            "x-ms-summary": "Charger Type",
            "x-ms-visibility": "important"
          },
          {
            "name": "sortKey",
            "in": "query",
            "description": "Field to be used for sorting. Default: id",
            "schema": {
              "type": "string"
            },
            "x-ms-summary": "Sort Key",
            "x-ms-visibility": "important"
          },
          {
            "name": "sortDescending",
            "in": "query",
            "description": "Set to 'true' to sort descending based on sort key. Default: 'false'",
            "schema": {
              "type": "boolean"
            },
            "x-ms-summary": "Sort Descending",
            "x-ms-visibility": "important"
          }
        ],
        "responses": {
          "200": {
            "description": "Express chargers successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/getExpressChargersResponse"
                }
              }
            },
            "x-ms-summary": "Success"
          },
          "400": {
            "description": "Details of the validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemDetails"
                }
              }
            },
            "x-ms-summary": "Validation Error"
          },
          "500": {
            "description": "An unexpected error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error"
                }
              }
            },
            "x-ms-summary": "Internal Server Error"
          },
          "401": {
            "description": "User not authorized.",
            "x-ms-summary": "Unauthorized"
          }
        },
        "security": [
          {
            "apiKey": [ ]
          },
          {
            "bearer": [ ]
          }
        ],
        "x-ms-visibility": "important"
      }
    },
    "/v2/express/charger/{chargerId}": {
      "get": {
        "tags": [
          "Charger"
        ],
        "summary": "Get Express Charger",
        "description": "Retrieves detailed charger information for a specific express charger by charger ID.",
        "operationId": "getExpressCharger",
        "parameters": [
          {
            "name": "chargerId",
            "in": "path",
            "description": "The unique identifier of the charger",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-ms-summary": "Charger ID",
            "x-ms-visibility": "important"
          }
        ],
        "responses": {
          "200": {
            "description": "Express charger successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/expressChargerDto"
                }
              }
            },
            "x-ms-summary": "Success"
          },
          "400": {
            "description": "Details of the validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemDetails"
                }
              }
            },
            "x-ms-summary": "Validation Error"
          },
          "500": {
            "description": "An unexpected error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error"
                }
              }
            },
            "x-ms-summary": "Internal Server Error"
          },
          "404": {
            "description": "Charger not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error"
                }
              }
            },
            "x-ms-summary": "Not Found"
          },
          "401": {
            "description": "User not authorized.",
            "x-ms-summary": "Unauthorized"
          }
        },
        "security": [
          {
            "apiKey": [ ]
          },
          {
            "bearer": [ ]
          }
        ],
        "x-ms-visibility": "important"
      }
    },
    "/v2/express/chargers/{chargerId}": {
      "patch": {
        "tags": [
          "Charger"
        ],
        "summary": "Update Express Charger",
        "description": "Updates an existing express charger in the system.",
        "operationId": "updateExpressCharger",
        "parameters": [
          {
            "name": "chargerId",
            "in": "path",
            "description": "The ID of the express charger to update.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-ms-summary": "Charger ID",
            "x-ms-visibility": "important"
          }
        ],
        "requestBody": {
          "description": "The express charger data to update",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/updateExpressChargerRequestBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Express charger successfully updated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/updateExpressChargerResponse"
                }
              }
            },
            "x-ms-summary": "Success"
          },
          "400": {
            "description": "Details of the validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/problemDetails"
                }
              }
            },
            "x-ms-summary": "Validation Error"
          },
          "500": {
            "description": "An unexpected error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error"
                }
              }
            },
            "x-ms-summary": "Internal Server Error"
          },
          "404": {
            "description": "Express charger not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error"
                }
              }
            },
            "x-ms-summary": "Not Found"
          },
          "409": {
            "description": "A charger with the provided URL key already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error"
                }
              }
            },
            "x-ms-summary": "Conflict"
          },
          "403": {
            "description": "User does not have access to this charger.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error"
                }
              }
            },
            "x-ms-summary": "Forbidden"
          },
          "401": {
            "description": "User not authorized.",
            "x-ms-summary": "Unauthorized"
          }
        },
        "security": [
          {
            "apiKey": [ ]
          },
          {
            "bearer": [ ]
          }
        ],
        "x-ms-visibility": "important"
      }
    }
  },
  "components": {
    "schemas": {
      "addExpressChargerRequestBody": {
        "type": "object",
        "properties": {
          "chargerId": {
            "type": "string"
          },
          "urlKey": {
            "type": "string"
          },
          "connectionType": {
            "type": "string"
          },
          "chargerType": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "sockets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/expressSocketPriceRequest"
            }
          }
        }
      },
      "addExpressChargerResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "chargerId": {
            "type": "string"
          },
          "urlKey": {
            "type": "string"
          },
          "connectionType": {
            "type": "string"
          },
          "chargerType": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "sockets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/expressSocketPriceResponse"
            }
          }
        }
      },
      "addExpressPriceRequestBody": {
        "type": "object",
        "properties": {
          "priceType": {
            "type": "string",
            "description": "The type of pricing unit (e.g., 'KWH_UNIT', 'WH_UNIT', 'MIN_UNIT')"
          },
          "currency": {
            "type": "string",
            "description": "Currency code (e.g., 'EUR', 'USD'). Default: EUR"
          },
          "unitPrice": {
            "type": "number",
            "description": "Price including VAT",
            "format": "double"
          },
          "vat": {
            "type": "number",
            "description": "VAT percentage",
            "format": "double"
          }
        }
      },
      "addExpressPriceResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "priceType": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "unitPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "vat": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        }
      },
      "configurationData": {
        "type": "object",
        "properties": {
          "configuration": {
            "$ref": "#/components/schemas/configurationRequest"
          },
          "file": {
            "type": "string",
            "format": "binary"
          }
        }
      },
      "configurationRequest": {
        "type": "object",
        "properties": {
          "company": {
            "type": "string"
          },
          "vatNumber": {
            "type": "string"
          },
          "termsConditionsUrl": {
            "type": "string"
          },
          "supportText": {
            "type": "string"
          }
        }
      },
      "configurationResponse": {
        "type": "object",
        "properties": {
          "company": {
            "type": "string"
          },
          "vatNumber": {
            "type": "string"
          },
          "logoFileName": {
            "type": "string"
          },
          "termsConditionsUrl": {
            "type": "string"
          },
          "supportText": {
            "type": "string"
          }
        }
      },
      "error": {
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "errorNumber": {
            "type": "integer",
            "format": "int32"
          },
          "helpLink": {
            "type": "string"
          }
        }
      },
      "expressChargerDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "enabled": {
            "type": "boolean"
          },
          "chargerId": {
            "type": "string"
          },
          "chargerName": {
            "type": "string"
          },
          "urlKey": {
            "type": "string"
          },
          "connectionType": {
            "type": "string"
          },
          "chargerType": {
            "type": "string"
          },
          "sockets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/expressSocketPriceDto"
            }
          }
        }
      },
      "expressPriceDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "unitPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "priceType": {
            "type": "string"
          },
          "vat": {
            "type": "number",
            "format": "double"
          },
          "currency": {
            "type": "string"
          }
        }
      },
      "expressSocketPriceDto": {
        "type": "object",
        "properties": {
          "socketId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "socketName": {
            "type": "string"
          },
          "price": {
            "$ref": "#/components/schemas/expressPriceDto"
          }
        }
      },
      "expressSocketPriceRequest": {
        "type": "object",
        "properties": {
          "connectorId": {
            "type": "integer",
            "format": "int32"
          },
          "priceId": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "expressSocketPriceResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "connectorId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "priceId": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "expressTransactionDto": {
        "type": "object",
        "properties": {
          "chargerId": {
            "type": "string"
          },
          "chargerName": {
            "type": "string"
          },
          "socketId": {
            "type": "integer",
            "format": "int32"
          },
          "socketName": {
            "type": "string"
          },
          "siteId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "siteName": {
            "type": "string"
          },
          "transactionId": {
            "type": "string"
          },
          "merchantReference": {
            "type": "string"
          },
          "paymentType": {
            "type": "string"
          },
          "startTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "endTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "consumptionWh": {
            "type": "integer",
            "format": "int32"
          },
          "consumptionKwh": {
            "type": "number",
            "format": "double"
          },
          "priceType": {
            "type": "string"
          },
          "unitPrice": {
            "type": "number",
            "format": "double"
          },
          "vatPercent": {
            "type": "number",
            "format": "double"
          },
          "currency": {
            "type": "string"
          },
          "totalCostInclVat": {
            "type": "number",
            "format": "double"
          },
          "totalCostExclVat": {
            "type": "number",
            "format": "double"
          },
          "totalVatAmount": {
            "type": "number",
            "format": "double"
          },
          "chargerStartTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "chargerEndTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "getExpressChargersResponse": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "limit": {
            "type": "integer",
            "format": "int32"
          },
          "totalRecords": {
            "type": "integer",
            "format": "int32"
          },
          "hasNextPage": {
            "type": "boolean"
          },
          "hasPreviousPage": {
            "type": "boolean"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/expressChargerDto"
            }
          }
        }
      },
      "getExpressPricesResponse": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "limit": {
            "type": "integer",
            "format": "int32"
          },
          "totalRecords": {
            "type": "integer",
            "format": "int32"
          },
          "hasNextPage": {
            "type": "boolean"
          },
          "hasPreviousPage": {
            "type": "boolean"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/expressPriceDto"
            }
          }
        }
      },
      "getExpressSettingsResponse": {
        "type": "object",
        "properties": {
          "companyName": {
            "type": "string"
          },
          "vatNumber": {
            "type": "string"
          },
          "logoFile": {
            "type": "string"
          },
          "termsConditionsUrl": {
            "type": "string"
          },
          "supportText": {
            "type": "string"
          },
          "fungAccountId": {
            "type": "string"
          },
          "fungPaymentProfileId": {
            "type": "string"
          },
          "primaryColor": {
            "type": "string"
          },
          "secondaryColor": {
            "type": "string"
          },
          "backgroundColor": {
            "type": "string"
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "getExpressTransactionsResponse": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "limit": {
            "type": "integer",
            "format": "int32"
          },
          "totalRecords": {
            "type": "integer",
            "format": "int32"
          },
          "hasNextPage": {
            "type": "boolean"
          },
          "hasPreviousPage": {
            "type": "boolean"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/expressTransactionDto"
            }
          }
        }
      },
      "problemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string"
          },
          "instance": {
            "type": "string"
          },
          "extensions": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          }
        }
      },
      "sessionResponse": {
        "type": "object",
        "properties": {
          "chargerId": {
            "type": "string"
          },
          "socketId": {
            "type": "integer",
            "format": "int32"
          },
          "transactionId": {
            "type": "string"
          },
          "evseTransactionId": {
            "type": "string"
          },
          "merchantReference": {
            "type": "string"
          },
          "paymentType": {
            "type": "string"
          },
          "startTime": {
            "type": "string",
            "format": "date-time"
          },
          "endTime": {
            "type": "string",
            "format": "date-time"
          },
          "consumptionWh": {
            "type": "integer",
            "format": "int32"
          },
          "consumptionKwh": {
            "type": "number",
            "format": "double"
          },
          "priceType": {
            "type": "string"
          },
          "unitPrice": {
            "type": "number",
            "format": "double"
          },
          "vatPercent": {
            "type": "number",
            "format": "double"
          },
          "currency": {
            "type": "string"
          },
          "totalCostInclVat": {
            "type": "number",
            "format": "double"
          },
          "totalCostExclVat": {
            "type": "number",
            "format": "double"
          },
          "totalVatAmount": {
            "type": "number",
            "format": "double"
          },
          "chargerStartTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "chargerEndTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "stream": {
        "type": "object",
        "properties": {
          "canRead": {
            "type": "boolean"
          },
          "canWrite": {
            "type": "boolean"
          },
          "canSeek": {
            "type": "boolean"
          },
          "canTimeout": {
            "type": "boolean"
          },
          "length": {
            "type": "integer",
            "format": "int64"
          },
          "position": {
            "type": "integer",
            "format": "int64"
          },
          "readTimeout": {
            "type": "integer",
            "format": "int32"
          },
          "writeTimeout": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "updateExpressChargerRequestBody": {
        "type": "object",
        "properties": {
          "urlKey": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "sockets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/expressSocketPriceRequest"
            }
          }
        }
      },
      "updateExpressChargerResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "chargerId": {
            "type": "string"
          },
          "urlKey": {
            "type": "string"
          },
          "connectionType": {
            "type": "string"
          },
          "chargerType": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "sockets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/expressSocketPriceResponse"
            }
          }
        }
      },
      "updateExpressSettingsRequestBody": {
        "type": "object",
        "properties": {
          "companyName": {
            "type": "string"
          },
          "vatNumber": {
            "type": "string"
          },
          "termsConditionsUrl": {
            "type": "string"
          },
          "supportText": {
            "type": "string"
          },
          "fungAccountId": {
            "type": "string"
          },
          "fungPaymentProfileId": {
            "type": "string"
          },
          "primaryColor": {
            "type": "string"
          },
          "secondaryColor": {
            "type": "string"
          },
          "backgroundColor": {
            "type": "string"
          },
          "logoBase64": {
            "type": "string"
          }
        }
      },
      "updateExpressSettingsResponse": {
        "type": "object",
        "properties": {
          "companyName": {
            "type": "string"
          },
          "vatNumber": {
            "type": "string"
          },
          "logoFile": {
            "type": "string"
          },
          "termsConditionsUrl": {
            "type": "string"
          },
          "supportText": {
            "type": "string"
          },
          "fungAccountId": {
            "type": "string"
          },
          "fungPaymentProfileId": {
            "type": "string"
          },
          "primaryColor": {
            "type": "string"
          },
          "secondaryColor": {
            "type": "string"
          },
          "backgroundColor": {
            "type": "string"
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      }
    },
    "securitySchemes": {
      "apiKey": {
        "type": "apiKey",
        "description": "The API key for the customer",
        "name": "x-api-key",
        "in": "header"
      },
      "bearer": {
        "type": "http",
        "description": "The bearer token for the user",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      },
      "functionKey": {
        "type": "apiKey",
        "description": "The Function key configured to invoke the function",
        "name": "x-function-key",
        "in": "header"
      }
    }
  }
}