openapi: 3.0.1 info: title: Wirelane API description: | ## Basic information To use this API, a `client_id` and `client_secret` is needed. Please contact our support to receive one for your app. There are two kinds of endpoints: - endpoints that are accessible without having an Wirelane user account, these use the `OAuth2ClientCredential` security scheme. - endpoints that are only available to Wirelane user accounts, these use the `OAuth2Password` security scheme. ### Host names for the endpoints OAuth host names - Staging: `oauth.emobilitycloud-staging.com` - Production: `oauth.emobilitycloud.com` API host names - Staging: `api.wirelane-staging.com` - Production: `api.wirelane.com` ## OAuth ### Public endpoints (`OAuth2ClientCredential`) Retrieving a JWT access token: ``` POST https://${oauth_host_name}/token Content-Type: application/x-www-form-urlencoded Accept: application/json grant_type=client_credentials&client_id=...&client_secret=...&scope=account ``` ### Authenticated endpoints (`OAuth2Password`) Retrieving a JWT access token: ``` POST https://${oauth_host_name}/token Content-Type: application/x-www-form-urlencoded Accept: application/json grant_type=password&client_id=...&client_secret=...&username=...&password=... ``` ### Using the access token The `access_token` property from the response to the authentication request needs to be provided as authorization header to the requests: ``` Authorization: Bearer ${access_token} ``` contact: name: Wirelane GmbH url: https://www.wirelane.com email: support@wirelane.com version: "2.0" x-logo: url: "https://avatars.githubusercontent.com/u/32132867?s=200&v=4" backgroundColor: "#151515" altText: "Wirelane" servers: - url: https://api.wirelane-staging.com/apis/emc description: Staging server (uses test data) - url: https://api.wirelane.com/apis/emc description: Production server (uses live data) security: - OAuth2Password: - admin paths: /organizations/id/{organizationId}/members: get: tags: - Organizations Members summary: Get members of an organization description: | Get an ordered and paginated list of members of an organization. Search query can be used to filter for members by role, status, email or creation user. operationId: getMembers parameters: - $ref: '#/components/parameters/organizationIdParam' - $ref: '#/components/parameters/pageNumberParam' - $ref: '#/components/parameters/itemsPerPageParam' - $ref: '#/components/parameters/searchStringParam' - name: order_by in: query description: Name for sort required: false type: string default: created enum: - created - email - status - $ref: '#/components/parameters/orderDirectionDescParam' - $ref: '#/components/parameters/memberGroupIdsParam' - $ref: '#/components/parameters/memberStatusParam' - name: has_member_roles in: query description: | Filter users on whether they have memberGroups with roles or not. null = filter is not set, true = returns users having at least one role set in their memberGroups, false = returns users having no roles set in their memberGroups required: false type: boolean - $ref: '#/components/parameters/accountStatusParam' responses: 200: description: List of members headers: X-Total-Count: $ref: '#/components/headers/X-Total-Count' content: application/json: schema: type: array items: $ref: '#/components/schemas/Member' default: $ref: '#/components/responses/default' /organizations/id/{organizationId}/members/aid/{accountId}: get: tags: - Organizations Members summary: Get member by account ID operationId: getMemberByAccountId parameters: - $ref: '#/components/parameters/organizationIdParam' - $ref: '#/components/parameters/accountIdParam' responses: 200: description: Returns specific member object content: application/json: schema: $ref: '#/components/schemas/Member' default: $ref: '#/components/responses/default' /organizations/id/{organizationId}/members/aid/{accountId}/payment_method: get: tags: - Organizations Members Payment Method summary: Get the payment method of the member operationId: getOrganizationMemberPaymentMethod parameters: - $ref: '#/components/parameters/organizationIdParam' - $ref: '#/components/parameters/accountIdParam' responses: 200: description: Returns the PaymentMethod associated with the account. content: application/json: schema: $ref: '#/components/schemas/PaymentMethod' default: $ref: '#/components/responses/default' /organizations/id/{organizationId}/members/aid/{accountId}/subscription: get: tags: - Organizations Members Subscriptions summary: Get member subscription description: | Get subscriptions for organization members operationId: getMemberSubscription parameters: - $ref: '#/components/parameters/organizationIdParam' - $ref: '#/components/parameters/accountIdParam' responses: 200: description: Returns the members subscription data content: application/json: schema: $ref: '#/components/schemas/Subscription' default: $ref: '#/components/responses/default' /organizations/id/{organizationId}/point_groups/id/{groupId}/tariffs: get: tags: - Organizations Tariffs summary: Get charge point group tariffs operationId: listOrganizationPointGroupTariffs parameters: - $ref: '#/components/parameters/organizationIdParam' - $ref: '#/components/parameters/groupIdParam' - $ref: '#/components/parameters/pageNumberParam' - $ref: '#/components/parameters/itemsPerPageParam' - $ref: '#/components/parameters/tariffStatusParam' - $ref: '#/components/parameters/tariffOrderByParam' - $ref: '#/components/parameters/orderDirectionDescParam' responses: 200: description: Return list of tariffs content: application/json: schema: type: array items: $ref: '#/components/schemas/Tariff' headers: X-Total-Count: $ref: '#/components/headers/X-Total-Count' default: $ref: '#/components/responses/default' /organizations/id/{organizationId}/sessions: get: tags: - Organizations Sessions summary: Get charging sessions of the organization description: | Get charging sessions conducted on the organization infrastructure operationId: findOrganizationChargingSessions parameters: - $ref: '#/components/parameters/organizationIdParam' - $ref: '#/components/parameters/pageNumberParam' - $ref: '#/components/parameters/itemsPerPageParam' - $ref: '#/components/parameters/searchStringParam' - $ref: '#/components/parameters/chargingPointIdParam' - $ref: '#/components/parameters/chargingSessionStatusParam' - $ref: '#/components/parameters/datePickerSinceParam' - $ref: '#/components/parameters/datePickerUntilParam' - $ref: '#/components/parameters/sessionOrderByParam' - $ref: '#/components/parameters/orderDirectionParam' - $ref: '#/components/parameters/organizationTypeParam' - $ref: '#/components/parameters/chargePointIdListParam' - $ref: '#/components/parameters/evseidListParam' - $ref: '#/components/parameters/ownerIdListParam' - $ref: '#/components/parameters/identificationTypeParam' - $ref: '#/components/parameters/identificationParam' - name: tariffId description: The `Tariff.tariff_id` to filter for in: query required: false schema: type: string - name: priceModelId description: The `PriceModel.price_id` to filter for in: query required: false schema: type: string responses: 200: description: Returns charging sessions of the organization. content: application/json: schema: type: array items: $ref: '#/components/schemas/ChargingSession' headers: X-Total-Count: $ref: '#/components/headers/X-Total-Count' default: $ref: '#/components/responses/default' /organizations/id/{organizationId}/sessions/id/{sessionId}: get: tags: - Organizations Sessions summary: Get one session from organization description: | Get a single charging session conducted on the organization infrastructure operationId: findOrganizationChargingSession parameters: - $ref: '#/components/parameters/organizationIdParam' - $ref: '#/components/parameters/sessionIdParam' responses: 200: description: Return specific charging session content: application/json: schema: $ref: '#/components/schemas/ChargingSession' default: $ref: '#/components/responses/default' /organizations/id/{organizationId}/stations: get: tags: - Organizations Charging Stations summary: Get organization charging stations description: | Finding charging stations for the account. operationId: organizationFindChargingStations parameters: - $ref: '#/components/parameters/organizationIdParam' - $ref: '#/components/parameters/pageNumberParam' - $ref: '#/components/parameters/itemsPerPageParam' - name: order_by in: query description: Name for sort required: false schema: type: string default: address_zip_code enum: - station_id - distance - status_update - address_zip_code - address_city - $ref: '#/components/parameters/orderDirectionAscParam' - $ref: '#/components/parameters/latParam' - $ref: '#/components/parameters/lonParam' - $ref: '#/components/parameters/distanceParam' - $ref: '#/components/parameters/authTypesParameter' - $ref: '#/components/parameters/ownerIdListParam' - $ref: '#/components/parameters/chargingTypeParam' - name: onboarded in: query description: Filter by onboarded, check if onboarding is done. required: false schema: type: boolean - name: include_roaming in: query description: Filter by roaming. required: false schema: type: boolean default: false - name: charging_provider in: query description: Filter by charging point provider required: false schema: type: array items: type: string enum: - echs_delnd - emc - hubject - wirelane - $ref: '#/components/parameters/plugTypesParameter' - $ref: '#/components/parameters/powerRangeParameter' - $ref: '#/components/parameters/pointStatusParam' - $ref: '#/components/parameters/searchStringParam' - $ref: '#/components/parameters/pointGroupsSearchParam' - name: has_point_group description: | Filters stations on whether they have point-groups set or have none at all. `true` = has any group, `false` = has no group, `null` = both cases. This filter must not be combined with the `point_groups` filter. in: query required: false schema: type: boolean - name: charging_sites description: | Filters stations based on related `ChargingSite.id` values. in: query required: false schema: type: array items: type: string # pattern for UUID v4 (36 chr) pattern: '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$' responses: 200: description: List of found charging points content: application/json: schema: type: array items: $ref: '#/components/schemas/ChargingStation' headers: X-Total-Count: $ref: '#/components/headers/X-Total-Count' default: $ref: '#/components/responses/default' /organizations/id/{organizationId}/stations/id/{stationId}: get: tags: - Organizations Charging Stations summary: Get one station from organization description: | Get a single charging station by their id operationId: organizationFindChargingStation parameters: - $ref: '#/components/parameters/organizationIdParam' - $ref: '#/components/parameters/stationIdParam' responses: 200: description: Charge point content: application/json: schema: $ref: '#/components/schemas/ChargingStation' default: $ref: '#/components/responses/default' /organizations/id/{organizationId}/stations/id/{stationId}/cases: get: tags: - Organizations Charging Stations summary: Fetches Salesforce Cases for a charging station description: Fetches both open and closed cases from Salesforce operationId: organizationListStationCases parameters: - $ref: '#/components/parameters/organizationIdParam' - $ref: '#/components/parameters/stationIdParam' - name: status in: query description: Filter by status required: false schema: type: array items: type: string enum: - New - In progress - Electrician - In progress - Timeframe - In progress - Wirelane - In progress - Wirelane IT - Waiting for customer - Closed - $ref: '#/components/parameters/pageNumberParam' - $ref: '#/components/parameters/itemsPerPageParam' - name: order_by in: query description: Name for sort required: false schema: default: caseNumber type: string enum: - id - caseNumber - title - status - createdAt - $ref: '#/components/parameters/orderDirectionAscParam' responses: 200: description: List of found cases content: application/json: schema: type: array items: $ref: '#/components/schemas/Case' headers: X-Total-Count: $ref: '#/components/headers/X-Total-Count' default: $ref: '#/components/responses/default' /organizations/id/{organizationId}/stations/id/{stationId}/connection: get: tags: - Organizations Charging Stations summary: Get the connection chain of a Charging Station operationId: getOrganizationChargingStationConnection parameters: - $ref: '#/components/parameters/organizationIdParam' - $ref: '#/components/parameters/stationIdParam' responses: 200: description: 'Connection Chain for the Charging Station' content: application/json: schema: type: array items: $ref: '#/components/schemas/ConnectionChainItem' default: $ref: '#/components/responses/default' /organizations/id/{organizationId}/stations/id/{stationId}/connectors/id/{scmId}/remote_control/unlock_connector: post: tags: - Organizations Charging Stations Remote Control summary: Requests a connector unlock on the charging station connector. operationId: organizationsChargingStationUnlockConnector parameters: - $ref: '#/components/parameters/organizationIdParam' - $ref: '#/components/parameters/stationIdParam' - $ref: '#/components/parameters/scmIdParam' responses: 200: description: Returns the created RemoteControlUnlockConnector Resource content: application/json: schema: $ref: '#/components/schemas/RemoteControlUnlockConnector' default: $ref: '#/components/responses/default' /organizations/id/{organizationId}/stations/id/{stationId}/maintenance: get: tags: - Organizations Charging Stations summary: Get all maintenance windows for a specific charging station of a given organization description: | Get all maintenance windows for a specific charging station of a given organization The endpoint returns an array of ChargingStationMaintenance models operationId: getOrganizationChargingStationMaintenance parameters: - $ref: '#/components/parameters/organizationIdParam' - $ref: '#/components/parameters/stationIdParam' - $ref: '#/components/parameters/pageNumberParam' - $ref: '#/components/parameters/itemsPerPageParam' responses: 200: description: Returns all maintenance windows of a specific charging station content: application/json: schema: type: array items: $ref: '#/components/schemas/ChargingStationMaintenance' headers: X-Total-Count: $ref: '#/components/headers/X-Total-Count' default: $ref: '#/components/responses/default' /organizations/id/{organizationId}/stations/id/{stationId}/remote_control/reset: post: tags: - Organizations Charging Stations Remote Control summary: Requests a reset of the charging station. operationId: organizationsChargingStationReset parameters: - $ref: '#/components/parameters/organizationIdParam' - $ref: '#/components/parameters/stationIdParam' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RemoteControlResetRequest' responses: 200: description: Returns the created RemoteControlReset Resource content: application/json: schema: $ref: '#/components/schemas/RemoteControlReset' default: $ref: '#/components/responses/default' /organizations/id/{organizationId}/tariffs: get: tags: - Organizations Tariffs summary: Get tariffs operationId: findTariffsByOrganizationId parameters: - $ref: '#/components/parameters/organizationIdParam' - name: types in: query description: | Filter tariffs by tariff type. * `customer`: For registered customers via App or RFID authorization. * `member`: For registered members of an CPO. * `marketplace`: Marketplace offered between CPOs. * `cpo_roaming`: CPO Roaming tariff provided to the roaming partners. * `unregistered`: Ad-hoc payment via direct payment page. (`direct_payment` in `Tariff.tariff_type`) * `contactless_payment`: Ad-hoc payment via payment terminal. * `direct_charging_cpo`: Ad-hoc payment via direct payment page of the CPO. required: false schema: type: array items: type: string enum: - customer - member - marketplace - cpo_roaming - unregistered - contactless_payment - direct_charging_cpo - name: marketplace_ids in: query description: | List of marketplace ids used to filter the tariffs. Filter tariffs by the marketplaces where the customer or the marketplace tariff exists. required: false schema: type: array items: type: integer - name: roaming_provider in: query description: Filters the tariffs for their configured roaming provider. required: false schema: type: string enum: - none - hubject - eclearing - $ref: '#/components/parameters/pageNumberParam' - $ref: '#/components/parameters/itemsPerPageParam' - name: order_by in: query description: Name for sort required: false schema: type: string default: priority enum: - priority - name - active_from_date - active_until_date - $ref: '#/components/parameters/orderDirectionDescParam' - name: status in: query description: Filters the tariffs for status required: false schema: type: array items: type: string enum: - active - inactive - name: Accept-Language in: header description: '[Language tag](https://www.w3.org/International/articles/language-tags/)' schema: type: string pattern: '^[a-zA-Z]{2}(-[a-zA-Z]{2})?' responses: 200: description: Return list of tariffs content: application/json: schema: type: array items: $ref: '#/components/schemas/Tariff' headers: X-Total-Count: $ref: '#/components/headers/X-Total-Count' default: $ref: '#/components/responses/default' /organizations/id/{organizationId}/tariffs/id/{tariffId}: get: tags: - Organizations Tariffs summary: Get a specific tariff operationId: findTariff parameters: - $ref: '#/components/parameters/organizationIdParam' - $ref: '#/components/parameters/tariffIdParam' responses: 200: description: Return specific tariff content: application/json: schema: $ref: '#/components/schemas/Tariff' default: $ref: '#/components/responses/default' /organizations/id/{organizationId}/tariffs/id/{tariffId}/prices/id/{priceModelId}: get: tags: - Organizations Tariffs summary: Get a specific price for a specific tariff operationId: findTariffPrice parameters: - $ref: '#/components/parameters/organizationIdParam' - $ref: '#/components/parameters/tariffIdParam' - name: priceModelId in: path description: The price ID to search for required: true schema: type: integer responses: 200: description: Return specific price model for a tariff content: application/json: schema: $ref: '#/components/schemas/PriceModel' default: $ref: '#/components/responses/default' components: schemas: Account: description: The private account info. allOf: - $ref: '#/components/schemas/AccountInfo' - type: object properties: billable: description: Is the account free/billable. If `false` then invoices will not be billed will not sent during invoice run. type: boolean default: true example: true readOnly: true created: type: string format: date-time readOnly: true description: Date when the account was created. updated: type: string format: date-time readOnly: true description: Date when the account was updated. authDate: type: string format: date-time readOnly: true description: Date when the account was last authenticated. anonymized: description: Flag indicating if the account data has been anonymized. type: boolean readOnly: true example: false blocked_reasons: description: Reasons for account block type: array readOnly: true items: type: string enum: - NO_ACTIVE_SUBSCRIPTION - UNPAID_INVOICE - MANUALLY_BLOCKED example: - UNPAID_INVOICE blocked_manually_reason: description: Custom block reason, if `MANUALLY_BLOCKED` is set. type: string readOnly: true example: Customer violated the ToS. transactional_invoicing: description: Should the account be invoiced for each individual charging transaction. type: boolean default: false example: true readOnly: true AccountInfo: allOf: - $ref: '#/components/schemas/AccountProfileData' - type: object description: The public account info. properties: account_id: type: string description: Account ID pattern: '^[a-zA-Z0-9-_]+$' example: DEWLN-0123456789 readOnly: true tenant: type: string description: Tenant (EMP) of the account readOnly: true example: dewln email: type: string format: email description: Email address of the account example: test@example.com readOnly: true status: type: string description: State of the account readOnly: true enum: - ACTIVE - INACTIVE - BLOCKED - PENDING terminationRequested: type: string format: date-time readOnly: true description: Date when the account termination was requested. terminationEffective: type: string format: date-time readOnly: true description: Date when the account termination will be effective. terminationReason: type: string readOnly: true description: Reason for termination of the account. AccountProfileData: type: object properties: account_type: type: string description: | Intended use of the account: * `personal`: For private use * `business`: For business use, enables `company_name` and `vat_number` for use in invoices enum: - personal - business default: personal example: business language: description: '[ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) language code.' type: string pattern: '^[a-z]{2}$' example: de default: en name: type: string description: Name example: John Doe address: $ref: '#/components/schemas/PostalAddress' invoice_email_address: type: string format: email description: Additional email address to send invoices to example: invoices@example.com company_name: type: string description: Company name, only available for `account_type=business` example: Wirelane GmbH vat_number: type: string description: VAT-ID, only available for `account_type=business` example: DE999999999 Address: type: object required: - street - house_number - zip_code - city - country properties: id: description: Address ID (reference) type: integer example: 1234 readOnly: true street: type: string description: Street example: Sample Street house_number: type: string description: House number example: 12a zip_code: type: string description: Zip code, e.g. `80539` for Munich (DE) or `3029 AD` for Rotterdam (NL) example: '80539' city: type: string description: City example: Berlin country: type: string description: '[ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code.' example: DE pattern: '^[A-Z]{2}$' EventLog: description: Event log information type: object properties: id: readOnly: true type: string example: 88292387-5212-4454-bfd1-66569d65197d tenant: readOnly: true type: string maxLength: 50 description: Tenant example: dewln resource_id: readOnly: true type: string maxLength: 50 description: Resource ID example: cf834a4f-2b35-4f11-8dea-d1932cdd748e resource_type: readOnly: true type: string maxLength: 50 description: Resource type example: tariff resource_owner: readOnly: true type: string maxLength: 50 description: Resource owner example: dewln correlation_id: readOnly: true type: string maxLength: 50 description: Correlation ID example: eedfb9c0-6e38-4a6f-9ba2-de19ee911cfe action: readOnly: true type: string maxLength: 10 description: Action example: update source: readOnly: true type: string maxLength: 50 description: Source example: business_relation actor_tenant: readOnly: true type: string description: Actor tenant example: dewln actor_type: readOnly: true type: string maxLength: 20 description: Actor type example: system actor_id: readOnly: true type: string maxLength: 50 description: Actor ID example: DEWLNC123456789 event_date: readOnly: true type: string format: date-time description: Event date example: 2015-11-25T10:43:02+0100 event_name: readOnly: true type: string maxLength: 50 description: Event name example: ocpp_charging_station_update data: readOnly: true type: string description: JSON encoded data core_data: readOnly: true type: string description: JSON encoded data Case: description: Representation of a Salesforce Case type: object properties: id: type: string readOnly: true url: type: string readOnly: true caseNumber: type: integer readOnly: true caseOwnerName: type: string readOnly: true title: type: string readOnly: true status: type: string readOnly: true createdAt: type: string format: date-time readOnly: true closedAt: type: string format: date-time readOnly: true ChargingPointGroup: type: object properties: id: type: integer description: The internal ID of the charging point group example: 1 name: type: string description: The group name example: AC Chargers owner: type: string example: WIRELANE-2500781 ChargingSession: allOf: - $ref: '#/components/schemas/ChargingSessionInfo' - type: object properties: cpo_session_id: type: string description: Session-ID of the CPO example: 19eea288-1ee1-5aa9-b258-38fea1df55f3 readOnly: true customer_membership_owner: type: string example: wirelane readOnly: true charging_station_id: type: string example: 98fd4f3a554f33c12eca9b5e2e4b369a readOnly: true charging_point_id: type: string example: 00eb08a9b45c69a4f9f14982a0095e12 readOnly: true charge_point_id: type: string example: DESGDE000801-2 readOnly: true sf_asset_id: type: string description: The salesforce ID of the charging point, that represents the "physical" point. readOnly: true example: 00055c6800055c68ab sf_cp_id: type: string description: The salesforce ID of the charging point, that represents the "philosophical" point. readOnly: true example: 00055c6800055c68ab asset_id: description: The unique asset ID of the charging point readOnly: true type: string example: 00055c68-db40-4484-b11c-11a6b6ea7ea0 charging_provider: description: Charging point provider type: string example: wirelane readOnly: true cpo_created: type: boolean description: True if initialized by the cpo example: true readOnly: true process_begin: type: string format: date-time description: The date at which the session was created (e.g. authorization attempt by App start or swipe of RFID card) example: 2017-10-15T16:44:45+0200 readOnly: true process_end: type: string format: date-time description: The date at which session was closed example: 2017-10-15T17:53:04+0200 readOnly: true creation_date: type: string format: date-time description: Creation date example: 2017-10-15T16:44:40+0200 readOnly: true update_date: type: string format: date-time description: Update date example: 2017-10-15T17:53:04+0200 readOnly: true error_code: type: string description: | Error code for faulty session * `authorization_timeout`: Authorization request failed (e.g. station didn’t respond in time) * `charge_point_not_found`: Remote command failed as point could not be found * `charge_point_not_operative`: Remote start failed as station is not operative * `charge_point_not_unique`: Remote start failed as station is duplicated * `charge_point_offline`: Remote command failed as station is offline * `consecutive_start`: New transaction started before previous one was stopped * `consumption_too_high`: Session has unrealistic consumption * `customer_not_found`: Customer not found * `internal_error`: An internal error occured * `invalid_meter_values`: Received invalid or implausible meter values from the station. * `invalid_timestamps`: Received invalid or implausible timestamps from the station. * `remote_start_failed`: Error during remote start or problems contacting roaming partner * `remote_start_rejected`: Remote start rejected by roaming partner * `remote_stop_failed`: Remote stop failed at provider * `remote_stop_rejected`: Remote stop rejected by station * `roaming_denied_by_blocklist`: Roaming denied by internal block-list. Not exposed to end user, will be mapped to `remote_start_failed` in `ChargingStationInfo.error_code` instead. * `start_timeout`: RemoteStart succeeded but the station did not start the transaction in time * `stop_timeout`: Session started but not stopped in time * `tariff_not_found`: Tariff not found example: invalid_meter_values readOnly: true roaming_session_id: type: string description: Roaming-Session-ID readOnly: true example: fffa4a27-8112-463c-a0a9-222d76b6f96b startFeePrice: $ref: '#/components/schemas/PriceInformation' energyDimensionsPrice: $ref: '#/components/schemas/PriceInformation' timeDimensionsPrice: $ref: '#/components/schemas/PriceInformation' limit_price: type: number format: double description: The charging session price limit (gross price) example: 50.0 readOnly: true limit_kwh: type: number format: double description: The charging session kwh limit example: 35.0 readOnly: true limit_duration: type: integer description: The charging session duration limit (minutes) example: 600 readOnly: true maintenance: type: boolean description: True if initialized using a maintenance RFID card example: true readOnly: true ChargingSessionCustomer: type: object properties: account_id: type: string description: Account ID pattern: '^[a-zA-Z0-9-_]+$' example: DEWLN-0123456789 readOnly: true roaming_customer_id: type: string description: Customer ID from Roaming provider example: ROAM-DE*CUST*987654321 readOnly: true email: type: string format: email example: customer@example.com readOnly: true card_number: type: string example: WIRELANE123456 readOnly: true card_short_reference: type: string example: CarXYZ readOnly: true language: description: '[ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) language code.' type: string pattern: '^[a-z]{2}$' example: de readOnly: true ChargingSessionInfo: type: object properties: session_id: type: string description: Session-ID readOnly: true example: d8d195c0-900e-41f1-b239-0456855d81c2 short_session_id: type: string description: Short Session-ID (8 chars) readOnly: true example: d8d195c0 emp: description: E-Mobility Service Provider type: string example: desgd readOnly: true tariff: type: string description: The tariff name for the charging session example: LADEPAY_01 readOnly: true tariff_text: type: string description: The description text for the tariff readOnly: true price_model: type: string description: The price model key for the charging session example: desgd_ladepay_01 readOnly: true price_model_text: type: string description: The description text for the price model readOnly: true identification: type: string description: The identification value example: e6f252d6-30a0-5416-8533-126335a2ad2d readOnly: true identification_type: type: string description: | Type of the identification * `access_token`: Mobile App (v1.5, legacy since '22) * `admin_remotestart`: OCPP RemoteStart by Admin * `auth_token`: Mobile App (v1, legacy since '22) * `contactless_payment`: Direct Payment at Charging Station * `contract_id`: Roaming Contract ID * `customer_id`: Mobile App * `customer_rfid`: Mobile App (RFID Login) * `direct_payment`: Direct Payment via Website * `local_authorization`: Local Authorization at Charging Station * `local_payment`: Local Payment at Charging Station * `none_access_token`: Direct Payment (v1, legacy since '21) * `rfid`: RFID Card enum: - access_token - admin_remotestart - auth_token - contactless_payment - contract_id - customer_id - customer_rfid - direct_payment - local_authorization - local_payment - none_access_token - rfid example: access_token readOnly: true session_begin: type: string format: date-time description: The date at which the charging started delivered by CPO (ideally when current started flowing) example: 2017-10-15T16:44:40+0200 readOnly: true session_end: type: string format: date-time description: The date at which the charging ended delivered by CPO (ideally when current stopped flowing) example: 2017-10-15T17:52:59+0200 readOnly: true session_duration: type: integer description: Duration of the session in minutes example: 68 readOnly: true kwh: type: number format: double example: 17.46 readOnly: true has_signed_value: type: boolean example: true readOnly: true totalPrice: $ref: '#/components/schemas/PriceInformation' status: description: The charging session status type: string enum: - initial - authorization_pending - start_accepted - start_pending - started - stop_accepted - stop_pending - stopped - closed - canceled - error - error_consecutive_start example: closed readOnly: true meter_start: type: integer description: Meter start value example: 1541678196 readOnly: true meter_stop: type: integer description: Meter stop value example: 1541678196 readOnly: true error_code: type: string description: | Error code for faulty session * `authorization_timeout`: Authorization request failed (e.g. station didn’t respond in time) * `charge_point_not_found`: Remote command failed as point could not be found * `charge_point_not_operative`: Remote start failed as station is not operative * `charge_point_not_unique`: Remote start failed as station is duplicated * `charge_point_offline`: Remote command failed as station is offline * `consecutive_start`: New transaction started before previous one was stopped * `consumption_too_high`: Session has unrealistic consumption * `customer_not_found`: Customer not found * `internal_error`: An internal error occured * `invalid_meter_values`: Received invalid or implausible meter values from the station. * `invalid_timestamps`: Received invalid or implausible timestamps from the station. * `remote_start_failed`: Error during remote start or problems contacting roaming partner * `remote_start_rejected`: Remote start rejected by roaming partner * `remote_stop_failed`: Remote stop failed at provider * `remote_stop_rejected`: Remote stop rejected by station * `start_timeout`: RemoteStart succeeded but the station did not start the transaction in time * `stop_timeout`: Session started but not stopped in time * `tariff_not_found`: Tariff not found enum: - authorization_timeout - charge_point_not_found - charge_point_not_operative - charge_point_not_unique - charge_point_offline - consecutive_start - consumption_too_high - customer_not_found - internal_error - invalid_meter_values - invalid_timestamps - remote_start_failed - remote_start_rejected - remote_stop_failed - remote_stop_rejected - start_timeout - stop_timeout - tariff_not_found example: invalid_meter_values readOnly: true error_message: type: string description: Error message for faulty session example: Manually closed because of time out readOnly: true roaming_provider: type: string example: eclearing readOnly: true secret: type: string format: password description: Secret to verify access to the ChargingSession in other endpoints. example: 4D9FEC1EE17BBC224A14CAD439E5C0AD11AFFCF9301F318DFA23C1CBBC736135 readOnly: true location: $ref: '#/components/schemas/ChargingSessionLocation' customer: $ref: '#/components/schemas/ChargingSessionCustomer' ChargingSessionLocation: type: object properties: evse_id: type: string example: DESGDE000801 readOnly: true owner: description: Charging point owner type: string example: WIRELANE-2500781 readOnly: true cpo: description: Charging point operator type: string example: eclearing readOnly: true plug_type: type: string enum: - TYPE_1 - TYPE_1_ATCH - TYPE_2 - TYPE_2_ATCH - TYPE_3 - TYPE_3_ATCH - CHADEMO - CCS - SCHUKO - UNKNOWN example: TYPE_2 readOnly: true charging_type: type: string enum: - AC - DC readOnly: true address: $ref: '#/components/schemas/Address' ChargingStation: description: Charging Station private data allOf: - $ref: '#/components/schemas/ChargingStationInfo' - type: object properties: id: description: The internal ID readOnly: true type: integer example: 1337 solution_type: type: string description: The solution type of the contract the EVSE is assigned to readOnly: true enum: - bmvi - business_solution - caas_acquired - caas_enterprise - caas_public - caas_smb - ghg_only - hardware_only - hardware_software - software_only onboarding: type: string readOnly: true description: Charging Point Onboarding status enum: - pending - details - connectors - ocpp - group - router - payment_terminal - done default: done onboardingCompletedAt: type: string readOnly: true description: Date when onboarding was completed format: date-time example: 2023-05-01T00:00:00+0200 connectors: description: List of connectors assigned to that charging station type: array readOnly: true items: $ref: '#/components/schemas/Connector' charging_site_id: type: string example: 54e7c70d-fa97-11e7-b20f-00ffa96d3a77 description: The `ChargingSite.id` of the assigned ChargingSite readOnly: true charging_site_name: type: string description: The `ChargingSite.name` of the assigned ChargingSite readOnly: true ChargingStationInfo: description: Charging Station public data type: object properties: station_id: description: The identification label of the station readOnly: true type: string example: DE*WLN*7966 charging_provider: type: string readOnly: true example: emc description: The charging provider. E.g. `emc` for charge points using the Wirelane OCPP backend, `hubject` for hubject roaming charge points. owner: description: The owner of the charging station. readOnly: true type: string example: dewln cpo: description: Name of the Charge Point Operator readOnly: true type: string example: dewln cpo_name: type: string description: Name of the CPO readOnly: true example: Wirelane GmbH cpo_logo: type: string description: Logo Url of the CPO readOnly: true maxLength: 255 vendor: description: Name of the charge point vendor readOnly: true type: string example: Wirelane model: description: Name of the charge point model readOnly: true type: string example: Light&Charge address: $ref: '#/components/schemas/Address' availability: $ref: '#/components/schemas/OpeningHours' timezone: type: string readOnly: true description: Timezone of charging point. example: Europe/Berlin service_hotline: description: The telephone number of the service hotline type: string example: '0800557788' coordinates: $ref: '#/components/schemas/Coordinates' roaming: type: boolean description: Indicates if the charging station is directly connected to our backend or via roaming protocols. readOnly: true example: false accessibility: type: string enum: - public - private accessibility_location_type: description: | Accessibility location type * `on-street`: parking in public space * `parking-garage`: multistory car park * `underground-garage`: multistory car park, mainly underground * `parking-lot`: a cleared area that is intended for parking vehicles, i.e. at super markets, bars, etc. * `private`: located in private or corporate grounds, may not be accessible to the public * `other`: other then the given possibilities * `unknown`: parking location type is not known by the operator type: string enum: - on-street - parking-garage - underground-garage - parking-lot - private - other - unknown authentication_types: description: Authentication method for the charging point type: array items: type: string enum: - card - remote - nfc_terminal - direct example: - card - remote - nfc_terminal - direct favorite_id: type: string description: ID of the favorite record if it exists for the current API user readOnly: true example: 254c5412-0d6e-4269-ae1a-0f723d6d7ae7 connectors: description: List of connectors for that charging station type: array readOnly: true items: $ref: '#/components/schemas/ConnectorInfo' energy_resource_type: description: | Energy resource type * `renewable`: 100% powered by renewable energy * `mixed`: partly powered by renewable energy and classic power sources * `nonrenewable`: no renewable energy in the mix type: string enum: - mixed - nonrenewable - renewable ChargingStationMaintenance: description: Charging Station Maintenance Window Data type: object properties: stationId: type: integer readOnly: true description: internal ID of the charging station example: 123 chargingStationId: type: string readOnly: true description: Human readable ID of the charging station example: DE*WLN*7966 start: type: string format: date-time readOnly: true description: start of the planned maintenance window (date-time) end: type: string format: date-time readOnly: true description: End date-time of the planned maintenance window (date-time) actualEnd: type: string format: date-time readOnly: true description: Actual end of the maintenance window (date-time) ConnectionChainItem: description: Connection Chain item of a Charging Station type: object properties: type: description: Item type type: string enum: - payment_terminal - station - router - cellular - wan - ocpp_server - roaming readOnly: true label: description: Label of the item type: string readOnly: true example: 127.0.0.1 status: description: Connection status of the item type: string enum: - connected - disconnected - unknown readOnly: true id: description: Optional ID of the referenced item type type: string readOnly: true example: 54e7c70d-fa97-11e7-b20f-00ffa96d3a77 tenant: description: Tenant ID readOnly: true type: string example: dewln Connector: description: ConnectorInfo Data extended with additional private data allOf: - $ref: '#/components/schemas/ConnectorInfo' - type: object properties: scm_id: type: string example: '0088209ebda441c9762da2f38a5f233a' readOnly: true charging_groups: type: array items: $ref: '#/components/schemas/ChargingPointGroup' readOnly: true dlm_role: description: The dlm-role of the charging point type: string readOnly: true example: 'secondary' connector_id: type: integer description: ID of the connector as seen from station readOnly: true example: 0 asset_id: description: The unique asset ID of the charging point (used to associate the charging point with a Salesforce asset). This value is generated by the Wirelane backend when the charge point is initially submitted and subsequently an asset will be created in Salesforce using this unchangeable asset ID. readOnly: true type: string example: 00055c68-db40-4484-b11c-11a6b6ea7ea0 current: description: Current in A type: integer readOnly: true voltage: description: Voltage in V type: integer readOnly: true serial_number: description: The serial number type: string readOnly: true public_key: description: The public key of the charging point readOnly: true type: string example: 3059301306072A8648CE3D020106082A8648CE3D03010703 sf_asset_id: type: string description: The Salesforce ID of the charging point, that represents the "physical" point. readOnly: true example: 00055c6800055c68ab sf_cp_id: type: string description: The Salesforce ID of the charging point, that represents the "philosophical" point. readOnly: true example: 00055c6800055c68ab status_update: type: string format: date-time description: Date of the status update readOnly: true example: 2023-05-01T00:00:00+0200 ConnectorInfo: description: Data which is specific for a single connector of a station type: object properties: evseid: description: The EVSE-ID used for roaming. type: string example: DESGDE000801 plug_types: description: Up to four types of plugs. type: array items: type: string enum: - TYPE_1 - TYPE_1_ATCH - TYPE_2 - TYPE_2_ATCH - TYPE_3 - TYPE_3_ATCH - CHADEMO - CCS - SCHUKO - UNKNOWN example: - TYPE_2 - SCHUKO charging_type: description: Electricity type type: string enum: - AC - DC power: description: Power in kW type: number format: double example: 22 status: type: string description: | Status of the connector * `FREE`: Connector is free / available * `IN_USE`: Connector is occupied (cable connected or RFID card presented to card reader, in case of roaming charging might already happen) * `CHARGING`: Connector is charging * `UNAVAILABLE`: Connector is unavailable (not installed or broken) * `UNKNOWN`: Connector status is unknown * `FAULTED`: Connector is (temporary) faulted * `RESERVED`: Connector is reserved * `CLOSED`: Connector is closed (not in use anymore) * `MAINTENANCE`: Connector is scheduled for maintenance enum: - FREE - IN_USE - CHARGING - UNAVAILABLE - UNKNOWN - FAULTED - RESERVED - CLOSED - MAINTENANCE payment_url: type: string example: https://www.wirelane.com/laydepay label_code: type: string description: unique label_code for connector readOnly: true example: DEWLNET0000102-1 Coordinates: description: Coordinates type: object required: - latitude - longitude properties: latitude: type: number format: float example: 48.14510017983977 longitude: type: number format: float example: 11.582424514508215 DisplayText: description: Translatable text type: object properties: language: type: string description: '[ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) language code.' example: de text: type: string HttpError: type: object properties: error_code: type: string description: The error code describing the error example: validation_error error_message: type: string description: The human readable error message describing the error example: Provided data is not valid KeyValue: description: Key-value object type: object required: - key - value properties: key: type: string description: Key value: type: string description: Value Member: type: object properties: id: type: integer account: $ref: '#/components/schemas/Account' email: type: string format: email status: type: string description: | Membership status * `pending`: Membership is pending, user needs to accept or decline * `active`: Membership is active * `revoked`: Membership has been revoked by the organization * `terminated`: Membership has been terminated by the user or organization enum: - pending - active - revoked - terminated member_groups: description: Member groups for this member type: array items: $ref: '#/components/schemas/MemberGroup' MemberGroup: type: object properties: id: type: string tenant: description: Tenant ID type: string example: dewln readOnly: true name: type: string rights: description: List of rights the members of the member group get for the attached organization groups or for all child organizations of the organization owning the member group type: array items: type: string description: Rights of the member in the organization. all_organizations: description: If true the rights apply to all child organizations of the organization owning the member group type: boolean example: false organization_groups: description: List of organization groups where the member groups's rights apply type: array items: $ref: '#/components/schemas/OrganizationGroup' member_count: description: Member count of a MemberGroup type: integer OpeningHours: type: object properties: label: type: string description: Arbitrary label to give the availability. example: Mon-Fr 08:00-22:00, Sat-Sun CLOSED open247: type: boolean description: Is available 24/7. If true, Monday - Sunday times will be ignored. example: false monday: type: array description: Start and end time pairs representing availability on Mondays. example: - - "0900" - "1230" - - "1330" - "0000" items: type: array items: type: string tuesday: type: array description: Start and end time pairs representing availability on Tuesdays. example: - - "0000" - "0000" items: type: array items: type: string wednesday: type: array description: Start and end time pairs representing availability on Wednesdays. example: - - "0900" - "1230" - - "1330" - "0000" items: type: array items: type: string thursday: type: array description: Start and end time pairs representing availability on Thursdays. example: - - "0000" - "0000" items: type: array items: type: string friday: type: array description: Start and end time pairs representing availability on Fridays. example: - - "0900" - "1230" - - "1330" - "1645" - - "1800" - "0000" items: type: array items: type: string saturday: type: array description: Start and end time pairs representing availability on Saturdays. example: - - "0000" - "0000" items: type: array items: type: string sunday: type: array description: Start and end time pairs representing availability on Sundays. example: [] items: type: array items: type: string exceptionalOpenings: type: object properties: {} description: Start and end time pairs representing availability on specific dates. Dates in Y-m-d format. * can be used as year, month or day wildcards to represent recurring dates. example: 2020-12-24: - - "0000" - "0900" - - "0930" - "1300" '*-12-25': [] '*-12-26': [] OrganizationGroup: type: object properties: id: type: string example: '12' name: description: Name of the organization group type: string example: Organization Group organizations: description: List of organizations that belong to the group type: array items: type: string OrganizationList: description: White and blacklist of organizations, black wins over white. type: object properties: blacklist: description: Blacklisted organization IDs type: array items: type: string description: Tenant ID example: dewln readOnly: true whitelist: type: array description: Whitelisted organization IDs items: type: string description: Tenant ID example: dewln readOnly: true PaymentMethod: description: Payment method for an account type: object properties: id: type: string readOnly: true example: 54e7c70d-fa97-11e7-b20f-00ffa96d3a77 status: type: string enum: - ACTIVE - INACTIVE - BLOCKED example: ACTIVE readOnly: true processor: type: string description: Processor of the actual payment. example: wirelane readOnly: true type: type: string description: Type of the payment method. example: visa readOnly: true label: type: string description: Label for displaying payment information. example: '"**** **** **** 1234" or "john.doe@example.com"' readOnly: true expires: type: string description: Year & month of expiry, if applies. example: 2028-12 readOnly: true is_useable: type: boolean description: Indicates if the payment method can be used for payments. example: true readOnly: true is_expired: type: boolean description: Indicates if the payment method should be replaced with a new one. example: false readOnly: true metadata: type: array description: Metadata provided by the payment method type. readOnly: true items: $ref: '#/components/schemas/KeyValue' Plan: description: Plan model type: object properties: id: type: integer example: 1 readOnly: true plan_key: type: string description: Used as reference for the customer (on invoice for example) example: wirelane_public_ac_01 name: type: string example: Wirelane Large amount: type: integer description: Amount to be billed (in cent of the currency) example: 100 currency: description: '[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.' type: string enum: - EUR - CHF - SEK - ILS example: EUR interval_type: type: string enum: - SECONDS - MINUTES - DAYS - WEEKS - MONTHS description: The billing interval (period interval) interval_count: type: integer example: 1 description: Cardinality of the interval type (for example 5 MINUTES) properties: type: object example: { "seats": 5 } description: JSON properties object plan_group: type: string description: Can be used as selector for frontends enum: - PUBLIC - PRIVATE example: PUBLIC default_tax_rate: type: number format: double example: 19.0 description: The tax rate to be applied default: 19.0 tax_rate_invoice_text: type: array items: $ref: '#/components/schemas/DisplayText' seat_active_min: type: integer description: Minimum amount of cards there must to order for this plan example: 3 amount_seat_order: type: integer example: 1200 description: Cost of a seat order for a single seat (in euro cent) amount_seat_recurrent: type: integer example: 1200 description: recurrent seat cost (in euro cent) activation_date: type: string format: date-time description: Activation date example: 2015-11-25T10:43:02+0100 deactivation_date: type: string format: date-time description: Deactivation date example: 2017-10-25T06:55:44+0200 termination_date: type: string format: date-time description: If set, then this plan has been terminated and no subscriptions will be extended after this date. example: 2027-07-25T00:00:00+0200 service_levels: type: array items: $ref: '#/components/schemas/PlanServiceLevel' unlock_code: type: string pattern: '^[a-zA-Z0-9-_*.,;!@$]+$' maxLength: 20 example: -Y0u_;et_@_d!$,Ou*t. subscription_count: type: integer description: Subscription count of a plan. default: 0 PlanServiceLevel: description: Service level type: object properties: id: type: integer example: 1 description: The service level id key: type: string example: dewln_ac_01 description: The key of the service level title: type: string example: Tariff for wirelane ac charging description: The service level title description: type: string example: 0,39 € per kWh + 0,03 € per Minute description: The service level description tariff: type: string example: DEWLN_AC_01 description: The key of the tariff there is related to the service level PostalAddress: allOf: - $ref: '#/components/schemas/Address' - type: object properties: name: type: string description: 'Name / address line #1, e.g. "John Doe" or "My Company"' example: John Doe description: type: string description: 'Description / address line #2, e.g. "Rear building" or "Finance Department"' example: Rear building PriceInformation: type: object properties: grossAmount: type: number format: double description: The gross price amount example: 11.90 readOnly: true netAmount: type: number format: double description: The net price amount example: 10.00 readOnly: true taxAmount: type: number format: double description: The amount of tax included in the gross price example: 1.90 readOnly: true taxRate: type: number format: double description: The tax rate levied on the net price example: 0.19 readOnly: true currency: description: '[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.' type: string enum: - EUR - CHF - SEK - ILS default: EUR example: EUR readOnly: true PriceModel: description: Price model type: object properties: id: type: string readOnly: true price_id: type: string description: Price identifier example: 663b5413b497c readOnly: true currency: description: '[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.' type: string enum: - EUR - CHF - SEK - ILS example: EUR free: type: boolean example: true point_groups: type: array description: Specific charging point groups of the organization. If none given all points of the organization are targeted. items: type: string example: employees_reserved_points rule: type: string readOnly: true description: Rule for the rule engine, `true` by default example: "poi['group_charging'] in ['SAINTCYR_REG_AC_01']" tolerance_duration: type: number format: double description: Minimum time amount (in seconds) connected to point of charge before charging connection fee minimum: 0 example: 2 price_order_within_tariff: type: integer description: Order of price within parent tariff minimum: 0 example: 1 connection_fee: type: number format: double minimum: 0 example: 1.5 rounding_mode_time: type: string enum: - UP - EXACT - DOWN example: EXACT description: How to round the time price components (round up, down or exact) rounding_mode_energy: type: string enum: - UP - EXACT - DOWN example: EXACT description: How to round the energy price components (round up, down or exact) tariff_alt_url: type: array items: $ref: '#/components/schemas/DisplayText' tariff_alt_text: type: array items: $ref: '#/components/schemas/DisplayText' tax_rate: type: number format: double minimum: 0.0 example: 19.0 tax_rate_invoice_text: type: array items: $ref: '#/components/schemas/DisplayText' active: type: boolean creation_date: type: string format: date-time description: Creation date example: 2015-11-25T10:43:02+0100 readOnly: true update_date: type: string format: date-time description: Update date example: 2017-10-25T06:55:44+0200 readOnly: true owner: type: string example: WIRELANE-2500781 readOnly: true rule_cpos_allowed: type: array description: List of CPOs where this price is valid items: type: string example: - CPO1 - CPO3 rule_cpos_not_allowed: type: array description: List of CPOs where this price is not valid items: type: string example: - CPO2 - CPO4 rule_external_emps_allowed: type: array description: List of external EMP Provider IDs where this price is valid items: type: string example: - AT-VIE - DEWLN rule_pois_allowed: type: array description: List of charging point ids (evseids) where this price is valid items: type: string example: - DEWLN4400293 - DEWLN1100789 rule_pois_not_allowed: type: array description: List of charging point ids (evseids) where this price is not valid items: type: string example: - DEWLN2200293 - DEWLN3300789 rule_external_point_groups_allowed: type: array description: List of external point groups (defined by tenant) where this price is valid items: type: string example: - ROAMING rule_external_point_groups_not_allowed: type: array description: List of external point groups (defined by tenant) where this price is not valid items: type: string example: - PARTNER_POIs rule_charging_type: description: The charging type where this tariff is valid type: string enum: - AC - DC example: AC pricing_template_id: description: | When creating or saving a PriceModel, either use `pricing_template_id` to create a pricing model based on a template, or `elements`. If both are given, the template takes precedence. When retrieving, this field is returned when the pricing is based on a template, and skipped otherwise. Elements will be returned in either case on retrieving. type: string elements: description: | When creating or saving a PriceModel, either use `pricing_template_id` to create a pricing model based on a template, or `elements`. If both are given, the template takes precedence. When retrieving, this field is returned when the pricing is based on a template, and skipped otherwise. Elements will be returned in either case on retrieving. type: array items: $ref: '#/components/schemas/PriceModelElement' autoDescription: description: Autogenerated Description of the price components and restriction type: array items: $ref: '#/components/schemas/DisplayText' PriceModelComponent: description: Price Model component type: object properties: type: type: string enum: - ENERGY - PARKING_TIME - TIME price: type: number format: double minimum: 0 step_size: type: integer minimum: 0 PriceModelElement: description: Price model element type: object properties: price_components: type: array items: $ref: '#/components/schemas/PriceModelComponent' restrictions: type: array items: $ref: '#/components/schemas/PriceModelRestriction' PriceModelRestriction: description: Price Model restrictions type: object properties: start_time: type: string pattern: '^(2[0-3]|[01][0-9]):([0-5][0-9])$' example: '07:00' end_time: type: string pattern: '^(2[0-3]|[01][0-9]):([0-5][0-9])$' example: '20:30' start_date: type: string pattern: '^([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))$' end_date: type: string pattern: '^([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))$' min_kwh: type: number format: double minimum: 0 max_kwh: type: number format: double minimum: 0 min_duration: type: integer minimum: 0 max_duration: type: integer minimum: 0 min_price: type: number format: double minimum: 0 max_price: type: number format: double minimum: 0 day_of_week: type: array items: type: string enum: - MONDAY - TUESDAY - WEDNESDAY - THURSDAY - FRIDAY - SATURDAY - SUNDAY example: - WEDNESDAY - THURSDAY RemoteControlActionBase: type: object required: - evse properties: connector_id: minimum: 0 exclusiveMinimum: true type: integer readOnly: true message_id: readOnly: true type: string evse: type: string format: iri-reference readOnly: true message_pair: type: string format: iri-reference readOnly: true id: type: string readOnly: true creation_date: type: string format: date-time readOnly: true action: type: string readOnly: true error_status: type: boolean readOnly: true RemoteControlUnlockConnector: allOf: - $ref: '#/components/schemas/RemoteControlActionBase' RemoteControlReset: allOf: - $ref: '#/components/schemas/RemoteControlActionBase' - type: object required: - type properties: type: type: string enum: - Hard - Soft description: This contains the type of reset that the Charge Point should perform. readOnly: true RemoteControlResetRequest: type: object required: - type properties: type: type: string enum: - Hard - Soft description: This contains the type of reset that the Charge Point should perform. Subscription: type: object properties: id: type: string example: 3073b46e-1e17-4d9d-8485-1ebd9424f6b7 upcoming_subscription: $ref: '#/components/schemas/UpcomingSubscription' current_period: $ref: '#/components/schemas/SubscriptionPeriod' plan_key: type: string example: WIRELANE-ABO-ANNUEL-3 begin: type: string format: date-time description: Begin date example: 2015-11-25T10:43:02+0100 end: type: string format: date-time description: End date example: 2015-11-25T10:43:02+0100 account_id: type: string description: Id of the account example: ABCD1234 readOnly: true SubscriptionPeriod: type: object properties: plan: $ref: '#/components/schemas/Plan' currency: description: '[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.' type: string enum: - EUR - CHF - SEK - ILS example: EUR amount: type: number uid: type: string example: 3073b46e-1e17-4d9d-8485-1ebd9424f6b7 begin: type: string format: date-time description: Begin date example: 2015-11-25T10:43:02+0100 end: type: string format: date-time description: End date example: 2015-11-25T10:43:02+0100 quantity: type: integer default: 1 example: 1 tax_rate: type: number format: double example: 19.0 Tariff: description: Compilation of requirements needed to allow charging on this point type: object required: - name - priority properties: id: type: integer description: Unique ID of the tariff example: 1002 readOnly: true tariff_id: type: string description: Tariff identifier example: dewln-1111991 readOnly: true tenant: type: string description: The tenant of the tariff readOnly: true example: dewln name: type: array items: $ref: '#/components/schemas/DisplayText' example: [ { "language": "en", "text": "Wirelane employees" }, { "language": "de", "text": "Wirelane Mitarbeiter" } ] priority: type: integer description: | It prioritizes the tariff - highest priority will show up to the user and in case of equality, newest tariff wins. Prioritization happens within separate buckets: * First bucket - all tariffs with values in marketplace_ids, `for_member = true`; sorted by their priorities * Second bucket - all legacy tariffs (`for_marketplace = false`, `for_customer = false`, `for_member = false`); sorted by their priorities * Third bucket - all tariffs with `for_customer = true`, sorted by their priorities * Fourth bucket - all tariffs with values in marketplace_ids and `for_marketplace = true`, sorted by their priorities example: 200 minimum: 0 creation_date: type: string format: date-time description: Creation date example: 2015-11-25T10:43:02+0100 readOnly: true update_date: type: string format: date-time description: Update date example: 2017-10-25T06:55:44+0200 readOnly: true active_from_date: type: string format: date-time description: Active from date example: 2018-07-25T00:00:00+0200 active_until_date: type: string format: date-time description: Active until date example: 2027-07-25T00:00:00+0200 tariff_type: type: string description: | The type of this tariff. * `customer`: For registered customers via App or RFID authorization. * `member`: For registered members of an CPO. * `marketplace`: Marketplace offered between CPOs. * `cpo_roaming`: CPO Roaming tariff provided to the roaming partners. * `direct_payment`: Ad-hoc payment via direct payment page. * `contactless_payment`: Ad-hoc payment via payment terminal. * `direct_charging_cpo`: Ad-hoc payment via direct payment page of the CPO. enum: - customer - member - marketplace - cpo_roaming - direct_payment - contactless_payment - direct_charging_cpo roaming_platform: type: string description: | If set, then this tariff is aimed towards a specific roaming platform. Set to `none` for regular tariffs with no roaming-attachment. Skipping this value / nulling it will not change the value or default to `none` enum: - none - hubject - eclearing for_unregistered_customers: type: boolean description: True if this tariff is for customers which are not registered with an EMP. Obsolete. default: false example: false for_marketplace: type: boolean description: True will trade this tariff in the marketplace (if owner is allowed to sell). Obsolete. example: true for_customer: type: boolean description: True will show this tariff to owner's direct customers. Obsolete. example: false for_member: type: boolean description: True will show this tariff only to customers that are members of the organization owning the tariff. Obsolete. example: false marketplace_ids: type: array items: type: integer example: 1 description: | The IDs or the marketplaces where the tariff can be traded. * If `for_marketplace` is `true`, then this has the IDs of marketplaces where other organizations can buy this tariff and show to their own customers * If `for_member` is `true`, then this has the IDs of marketplaces where the organization and its EMPs (customer manager organizations) are part of. The organization must have already marked which are its EMPs in that marketplaces. member_groups: type: array description: Member groups, valid only when for_members is true and the tariff is in a marketplace (has ids in marketplace_ids) items: type: string example: employees_of_department_A organization_eligibility_list: $ref: '#/components/schemas/OrganizationList' reservation_duration: type: integer description: | Duration of reservation when using this tariff for a POI. * If `0`, the current tariff is for a POI not supporting reservations * Any value greater than `0`, the customers can reserve the POI for this amount of minutes minimum: 0 example: 30 authorization_url: type: string readOnly: true description: If tariff is for unregistered customers, this url is used to authorize and get payment info example: https://www.wirelane.com/directpayment plans: type: array description: A list of plan key / plan name pairs for plans associated to this tariff items: type: object required: - plan_key properties: plan_key: type: string plan_name: type: string example: { "plan_key": "wirelane_public_ac_01", "plan_name": "Wirelane Public AC plan" } prices: type: array description: Prices to extend the default price items: $ref: '#/components/schemas/PriceModel' active: description: Check if the tariff is active type: boolean default: true UpcomingSubscription: type: object properties: plan: $ref: '#/components/schemas/Plan' quantity: type: integer tax_rate: type: number format: double responses: default: description: Default response object error content: application/json: schema: $ref: '#/components/schemas/HttpError' parameters: accountIdParam: name: accountId in: path description: Account ID required: true schema: type: string pattern: '^[a-zA-Z0-9-_]+$' example: DEWLN-0123456789 organizationIdParam: name: organizationId in: path description: Organization ID required: true schema: pattern: ^[a-zA-Z0-9-_]+$ type: string example: DEMOTENANT latParam: name: lat in: query description: Latitude schema: pattern: ^[-+]?[0-9]*.?[0-9]+$ type: string lonParam: name: lon in: query description: Longitude schema: pattern: ^[-+]?[0-9]*.?[0-9]+$ type: string distanceParam: name: distance in: query description: Search distance in meters schema: pattern: ^[0-9]*$ type: string searchStringSpecialCharactersParam: name: search in: query description: Context search string schema: pattern: ^[a-zA-ZÀ-ÿ0-9-_*.,\x27\x20]+$ type: string pointGroupsSearchParam: name: point_groups in: query description: Search for specific point groups style: form explode: false schema: type: array items: pattern: ^[0-9]+$ type: string pointOrderByParam: name: order_by in: query description: Name for sort schema: type: string enum: - evseid - status - latitude - longitude - power - voltage - chargingType - plugType - country - city - zipCode - creationDate - updateDate - distance orderDirectionParam: name: order_direction in: query description: Key for order direction schema: type: string enum: - asc - desc - "" orderDirectionAscParam: name: order_direction in: query description: Key for order direction required: false schema: type: string default: asc enum: - asc - desc orderDirectionDescParam: name: order_direction in: query description: Key for order direction required: false schema: type: string default: desc enum: - asc - desc evseidListParam: name: evseid in: query description: Filter by list of evseids style: form explode: false schema: type: array items: type: string ownerIdListParam: name: owner_id in: query description: Filter by list of owner_id style: form explode: false schema: type: array items: type: string notInPointGroupsParam: name: not_in_point_groups in: query style: form explode: false schema: type: array items: type: string pointGroupsParam: name: point_groups in: query style: form explode: false schema: type: array items: type: string chargingStationIdListParam: name: charging_station_id in: query description: Filter by list of charging station id's style: form explode: false schema: type: array items: type: string pageNumberParam: name: page in: query description: Number of current page schema: type: integer default: 1 itemsPerPageParam: name: page_size in: query description: Number of items per page schema: type: integer default: 50 minimum: 1 maximum: 1000000 infrastructureOnlyParam: name: infrastructure_only in: query description: To exchange only infrastructure specific data schema: pattern: ^[0-1]{1}$ type: string reservableOnlyParam: name: reservable in: query description: To exchange only reservable points schema: pattern: ^[0-1]{1}$ type: string chargingTypeParam: name: charging_type in: query description: The charging type style: form explode: false schema: type: array items: type: string enum: - AC - DC pointStatusParam: name: status in: query description: | Status of the connector * `FREE`: Connector is free / available * `IN_USE`: Connector is occupied (cable connected or RFID card presented to card reader, in case of roaming charging might already happen) * `CHARGING`: Connector is charging * `UNAVAILABLE`: Connector is unavailable (not installed or broken) * `UNKNOWN`: Connector status is unknown * `FAULTED`: Connector is (temporary) faulted * `RESERVED`: Connector is reserved * `CLOSED`: Connector is closed (not in use anymore) * `MAINTENANCE`: Connector is scheduled for maintenance style: form explode: false schema: type: array items: type: string enum: - FREE - IN_USE - CHARGING - UNAVAILABLE - UNKNOWN - FAULTED - RESERVED - CLOSED - MAINTENANCE plugTypesParameter: name: plug_types in: query description: The plug types. (*_ATCH = with cable attached) style: form explode: false schema: type: array items: type: string enum: - TYPE_1 - TYPE_1_ATCH - TYPE_2 - TYPE_2_ATCH - TYPE_3 - TYPE_3_ATCH - CHADEMO - CCS - SCHUKO - UNKNOWN authTypesParameter: name: auth_type in: query description: | The charging station authorization type. style: form explode: false schema: type: array items: type: string enum: - card - remote - nfc_terminal - direct maxPowerParam: name: max_power in: query description: | The charging speed. Greater than 0 schema: pattern: ^[-+]?[0-9]*.?[0-9]+$ type: string searchStringParam: name: search in: query description: Search term schema: type: string chargingPointIdParam: name: charging_point_id in: query description: Charging Point ID schema: type: string pattern: "^[a-zA-Z0-9-_*+]+$" chargingSessionStatusParam: name: status in: query description: | The charging session status to search for: * `initial` * `authorization_pending` * `start_accepted` * `start_pending` * `started` * `stop_accepted` * `stop_pending` * `stopped` * `closed` * `canceled` * `error` * `error_consecutive_start` schema: type: array items: type: string datePickerSinceParam: name: date_picker_since in: query description: The date time to search from schema: type: string pattern: '^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})[\040+-](\d{4})$' format: date-time datePickerUntilParam: name: date_picker_until in: query description: The date time to search to schema: type: string pattern: '^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})[\040+-](\d{4})$' format: date-time sessionOrderByParam: name: order_by in: query description: Name for sort schema: type: string enum: - sessionId - emp - ownerId - chargingStationId - pointScmId - evseid - status - sessionBegin - sessionEnd - tariff - price - kwh - chargingSessionType - chargingType - plugType - country - city - zipCode - creationDate - updateDate organizationTypeParam: name: organization_type in: query description: Type of the organization schema: type: array items: type: string enum: - emp - cpo - owner chargePointIdListParam: name: charge_point_id in: query description: Filter by list of charge_point_id schema: type: array items: type: string sessionIdParam: name: sessionId in: path description: The ID to search for required: true schema: type: string pattern: '^[a-zA-Z0-9-_]+$' stationIdParam: name: stationId in: path description: | The ID to search for. required: true schema: type: integer powerRangeParameter: name: power_range in: query description: The charging speed, as minimum to maximum (e.g. `22-300` for 22 to 300 kW). required: false schema: type: string pattern: '^[0-9]{1,3}-[0-9]{1,3}$' tariffIdParam: name: tariffId in: path description: The tariff ID to search for required: true schema: type: integer identificationTypeParam: name: identification_type in: query description: | Type of the identification * `access_token`: Mobile App (v1.5, legacy since '22) * `admin_remotestart`: OCPP RemoteStart by Admin * `auth_token`: Mobile App (v1, legacy since '22) * `contactless_payment`: Direct Payment at Charging Station * `contract_id`: Roaming Contract ID * `customer_id`: Mobile App * `customer_rfid`: Mobile App (RFID Login) * `direct_payment`: Direct Payment via Website * `local_authorization`: Local Authorization at Charging Station * `local_payment`: Local Payment at Charging Station * `none_access_token`: Direct Payment (v1, legacy since '21) * `rfid`: RFID Card required: false schema: type: array items: type: string enum: - access_token - admin_remotestart - auth_token - contactless_payment - contract_id - customer_id - customer_rfid - direct_payment - local_authorization - local_payment - none_access_token - rfid identificationParam: name: identification in: query description: Value of the identification to filter for required: false schema: type: string maxLength: 50 memberGroupIdsParam: name: member_group_ids in: query description: Membergroup IDs required: false schema: type: array items: type: string pattern: '^[a-zA-Z0-9-_]+$' memberStatusParam: name: member_status description: | Membership status * `pending`: Membership is pending, user needs to accept or decline * `active`: Membership is active * `revoked`: Membership has been revoked by the organization * `terminated`: Membership has been terminated by the user or organization in: query required: false schema: type: array items: type: string enum: - pending - active - revoked - terminated accountStatusParam: name: account_status in: query required: false schema: type: array items: type: string enum: - ACTIVE - INACTIVE - BLOCKED - PENDING scmIdParam: name: scmId in: path description: The Scm-ID of the connector. See `Connector.scm_id` required: true schema: type: string pattern: '^[a-zA-Z0-9]+$' groupIdParam: name: groupId in: path description: The ID to search for required: true schema: type: integer tariffStatusParam: name: status in: query description: Filters the tariffs for status required: false schema: type: array items: type: string enum: - active - inactive tariffOrderByParam: name: order_by in: query description: Name for sort required: false schema: default: priority type: string enum: - name - priority - active_from_date - active_until_date - tariff_type headers: X-Total-Count: description: Total number of items schema: type: integer X-Total-Pages: description: Total number of pages schema: type: integer securitySchemes: OAuth2Password: type: oauth2 flows: password: tokenUrl: https://oauth.emobilitycloud-staging.com/token refreshUrl: https://oauth.emobilitycloud-staging.com/token scopes: admin: All admin functions the user has access to OAuth2ClientCredential: type: oauth2 flows: clientCredentials: tokenUrl: https://oauth.emobilitycloud-staging.com/token scopes: account: Account registration domains: Domain lookup pois_search: POI search x-webhooks: organization-event: post: tags: - Webhooks summary: Forwards an organization event to the defined callback. operationId: organization-event requestBody: $ref: '#/components/schemas/EventLog' responses: 200: description: Return a 200 status to indicate that the data was received successfully