Wirelane API (2.0)

Download OpenAPI specification:Download

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}

Authentication

OAuth2Password

Security Scheme Type OAuth2
password OAuth Flow
Token URL: https://oauth.emobilitycloud-staging.com/token
Refresh URL: https://oauth.emobilitycloud-staging.com/token
Scopes:
  • admin -

    All admin functions the user has access to

OAuth2ClientCredential

Security Scheme Type OAuth2
clientCredentials OAuth Flow
Token URL: https://oauth.emobilitycloud-staging.com/token
Scopes:
  • account -

    Account registration

  • domains -

    Domain lookup

  • pois_search -

    POI search

Organizations Members

Get members of an organization

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.

Authorizations:
path Parameters
organizationId
required
string^[a-zA-Z0-9-_]+$
Example: DEMOTENANT

Organization ID

query Parameters
account_status
any
has_member_roles
any

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

member_group_ids
any

Membergroup IDs

member_status
any

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
order_by
any

Name for sort

order_direction
string
Default: "desc"
Enum: "asc" "desc"

Key for order direction

page
integer
Default: 1

Number of current page

page_size
integer [ 1 .. 1000000 ]
Default: 50

Number of items per page

search
string

Search term

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get member by account ID

Authorizations:
path Parameters
accountId
required
string^[a-zA-Z0-9-_]+$
Example: DEWLN-0123456789

Account ID

organizationId
required
string^[a-zA-Z0-9-_]+$
Example: DEMOTENANT

Organization ID

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "account": {
    },
  • "email": "user@example.com",
  • "status": "pending",
  • "member_groups": [
    ]
}

Organizations Members Payment Method

Get the payment method of the member

Authorizations:
path Parameters
accountId
required
string^[a-zA-Z0-9-_]+$
Example: DEWLN-0123456789

Account ID

organizationId
required
string^[a-zA-Z0-9-_]+$
Example: DEMOTENANT

Organization ID

Responses

Response samples

Content type
application/json
{
  • "id": "54e7c70d-fa97-11e7-b20f-00ffa96d3a77",
  • "status": "ACTIVE",
  • "processor": "wirelane",
  • "type": "visa",
  • "label": "\"**** **** **** 1234\" or \"john.doe@example.com\"",
  • "expires": "2028-12",
  • "is_useable": true,
  • "is_expired": false,
  • "metadata": [
    ]
}

Organizations Members Subscriptions

Get member subscription

Get subscriptions for organization members

Authorizations:
path Parameters
accountId
required
string^[a-zA-Z0-9-_]+$
Example: DEWLN-0123456789

Account ID

organizationId
required
string^[a-zA-Z0-9-_]+$
Example: DEMOTENANT

Organization ID

Responses

Response samples

Content type
application/json
{
  • "id": "3073b46e-1e17-4d9d-8485-1ebd9424f6b7",
  • "upcoming_subscription": {
    },
  • "current_period": {
    },
  • "plan_key": "WIRELANE-ABO-ANNUEL-3",
  • "begin": "2015-11-25T10:43:02+0100",
  • "end": "2015-11-25T10:43:02+0100",
  • "account_id": "ABCD1234"
}

Organizations Sessions

Get charging sessions of the organization

Get charging sessions conducted on the organization infrastructure

Authorizations:
path Parameters
organizationId
required
string^[a-zA-Z0-9-_]+$
Example: DEMOTENANT

Organization ID

query Parameters
charge_point_id
Array of strings

Filter by list of charge_point_id

charging_point_id
string^[a-zA-Z0-9-_*+]+$

Charging Point ID

date_picker_since
string <date-time> ^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{...

The date time to search from

date_picker_until
string <date-time> ^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{...

The date time to search to

evseid
Array of strings

Filter by list of evseids

identification
string <= 50 characters

Value of the identification to filter for

identification_type
Array of strings
Items 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"

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
order_by
string
Enum: "sessionId" "emp" "ownerId" "chargingStationId" "pointScmId" "evseid" "status" "sessionBegin" "sessionEnd" "tariff" "price" "kwh" "chargingSessionType" "chargingType" "plugType" "country" "city" "zipCode" "creationDate" "updateDate"

Name for sort

order_direction
string
Enum: "asc" "desc" ""

Key for order direction

organization_type
Array of strings
Items Enum: "emp" "cpo" "owner"

Type of the organization

owner_id
Array of strings

Filter by list of owner_id

page
integer
Default: 1

Number of current page

page_size
integer [ 1 .. 1000000 ]
Default: 50

Number of items per page

priceModelId
string

The PriceModel.price_id to filter for

search
string

Search term

status
Array of strings

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
tariffId
string

The Tariff.tariff_id to filter for

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get one session from organization

Get a single charging session conducted on the organization infrastructure

Authorizations:
path Parameters
organizationId
required
string^[a-zA-Z0-9-_]+$
Example: DEMOTENANT

Organization ID

sessionId
required
string^[a-zA-Z0-9-_]+$

The ID to search for

Responses

Response samples

Content type
application/json
{
  • "session_id": "d8d195c0-900e-41f1-b239-0456855d81c2",
  • "short_session_id": "d8d195c0",
  • "emp": "desgd",
  • "tariff": "LADEPAY_01",
  • "tariff_text": "string",
  • "price_model": "desgd_ladepay_01",
  • "price_model_text": "string",
  • "identification": "e6f252d6-30a0-5416-8533-126335a2ad2d",
  • "identification_type": "access_token",
  • "session_begin": "2017-10-15T16:44:40+0200",
  • "session_end": "2017-10-15T17:52:59+0200",
  • "session_duration": 68,
  • "kwh": 17.46,
  • "has_signed_value": true,
  • "totalPrice": {
    },
  • "status": "closed",
  • "meter_start": 1541678196,
  • "meter_stop": 1541678196,
  • "error_code": "invalid_meter_values",
  • "error_message": "Manually closed because of time out",
  • "roaming_provider": "eclearing",
  • "secret": "4D9FEC1EE17BBC224A14CAD439E5C0AD11AFFCF9301F318DFA23C1CBBC736135",
  • "location": {
    },
  • "customer": {
    },
  • "cpo_session_id": "19eea288-1ee1-5aa9-b258-38fea1df55f3",
  • "customer_membership_owner": "wirelane",
  • "charging_station_id": "98fd4f3a554f33c12eca9b5e2e4b369a",
  • "charging_point_id": "00eb08a9b45c69a4f9f14982a0095e12",
  • "charge_point_id": "DESGDE000801-2",
  • "sf_asset_id": "00055c6800055c68ab",
  • "sf_cp_id": "00055c6800055c68ab",
  • "asset_id": "00055c68-db40-4484-b11c-11a6b6ea7ea0",
  • "charging_provider": "wirelane",
  • "cpo_created": true,
  • "process_begin": "2017-10-15T16:44:45+0200",
  • "process_end": "2017-10-15T17:53:04+0200",
  • "creation_date": "2017-10-15T16:44:40+0200",
  • "update_date": "2017-10-15T17:53:04+0200",
  • "roaming_session_id": "fffa4a27-8112-463c-a0a9-222d76b6f96b",
  • "startFeePrice": {
    },
  • "energyDimensionsPrice": {
    },
  • "timeDimensionsPrice": {
    },
  • "limit_price": 50,
  • "limit_kwh": 35,
  • "limit_duration": 600,
  • "maintenance": true
}

Organizations Charging Stations

Get organization charging stations

Finding charging stations for the account.

Authorizations:
path Parameters
organizationId
required
string^[a-zA-Z0-9-_]+$
Example: DEMOTENANT

Organization ID

query Parameters
auth_type
Array of strings
Items Enum: "card" "remote" "nfc_terminal" "direct"

The charging station authorization type.

charging_provider
Array of strings
Items Enum: "echs_delnd" "emc" "hubject" "wirelane"

Filter by charging point provider

charging_sites
Array of strings

Filters stations based on related ChargingSite.id values.

charging_type
Array of strings
Items Enum: "AC" "DC"

The charging type

distance
string^[0-9]*$

Search distance in meters

has_point_group
boolean

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.

include_roaming
boolean
Default: false

Filter by roaming.

lat
string^[-+]?[0-9]*.?[0-9]+$

Latitude

lon
string^[-+]?[0-9]*.?[0-9]+$

Longitude

onboarded
boolean

Filter by onboarded, check if onboarding is done.

order_by
string
Default: "address_zip_code"
Enum: "station_id" "distance" "status_update" "address_zip_code" "address_city"

Name for sort

order_direction
string
Default: "asc"
Enum: "asc" "desc"

Key for order direction

owner_id
Array of strings

Filter by list of owner_id

page
integer
Default: 1

Number of current page

page_size
integer [ 1 .. 1000000 ]
Default: 50

Number of items per page

plug_types
Array of strings
Items Enum: "TYPE_1" "TYPE_1_ATCH" "TYPE_2" "TYPE_2_ATCH" "TYPE_3" "TYPE_3_ATCH" "CHADEMO" "CCS" "SCHUKO" "UNKNOWN"

The plug types. (*_ATCH = with cable attached)

point_groups
Array of strings

Search for specific point groups

power_range
string^[0-9]{1,3}-[0-9]{1,3}$

The charging speed, as minimum to maximum (e.g. 22-300 for 22 to 300 kW).

search
string

Search term

status
Array of strings
Items Enum: "FREE" "IN_USE" "CHARGING" "UNAVAILABLE" "UNKNOWN" "FAULTED" "RESERVED" "CLOSED" "MAINTENANCE"

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

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get one station from organization

Get a single charging station by their id

Authorizations:
path Parameters
organizationId
required
string^[a-zA-Z0-9-_]+$
Example: DEMOTENANT

Organization ID

stationId
required
integer

The ID to search for.

Responses

Response samples

Content type
application/json
{
  • "station_id": "DE*WLN*7966",
  • "charging_provider": "emc",
  • "owner": "dewln",
  • "cpo": "dewln",
  • "cpo_name": "Wirelane GmbH",
  • "cpo_logo": "string",
  • "vendor": "Wirelane",
  • "model": "Light&Charge",
  • "address": {
    },
  • "availability": {
    },
  • "timezone": "Europe/Berlin",
  • "service_hotline": "0800557788",
  • "coordinates": {
    },
  • "roaming": false,
  • "accessibility": "public",
  • "accessibility_location_type": "on-street",
  • "authentication_types": [
    ],
  • "favorite_id": "254c5412-0d6e-4269-ae1a-0f723d6d7ae7",
  • "connectors": [
    ],
  • "energy_resource_type": "mixed",
  • "id": 1337,
  • "solution_type": "bmvi",
  • "onboarding": "done",
  • "onboardingCompletedAt": "2023-05-01T00:00:00+0200",
  • "charging_site_id": "54e7c70d-fa97-11e7-b20f-00ffa96d3a77",
  • "charging_site_name": "string"
}

Fetches Salesforce Cases for a charging station

Fetches both open and closed cases from Salesforce

Authorizations:
path Parameters
organizationId
required
string^[a-zA-Z0-9-_]+$
Example: DEMOTENANT

Organization ID

stationId
required
integer

The ID to search for.

query Parameters
order_by
string
Default: "caseNumber"
Enum: "id" "caseNumber" "title" "status" "createdAt"

Name for sort

order_direction
string
Default: "asc"
Enum: "asc" "desc"

Key for order direction

page
integer
Default: 1

Number of current page

page_size
integer [ 1 .. 1000000 ]
Default: 50

Number of items per page

status
Array of strings
Items Enum: "New" "In progress - Electrician" "In progress - Timeframe" "In progress - Wirelane" "In progress - Wirelane IT" "Waiting for customer" "Closed"

Filter by status

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get the connection chain of a Charging Station

Authorizations:
path Parameters
organizationId
required
string^[a-zA-Z0-9-_]+$
Example: DEMOTENANT

Organization ID

stationId
required
integer

The ID to search for.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get all maintenance windows for a specific charging station of a given organization

Get all maintenance windows for a specific charging station of a given organization The endpoint returns an array of ChargingStationMaintenance models

Authorizations:
path Parameters
organizationId
required
string^[a-zA-Z0-9-_]+$
Example: DEMOTENANT

Organization ID

stationId
required
integer

The ID to search for.

query Parameters
page
integer
Default: 1

Number of current page

page_size
integer [ 1 .. 1000000 ]
Default: 50

Number of items per page

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Organizations Tariffs

Get tariffs

Authorizations:
path Parameters
organizationId
required
string^[a-zA-Z0-9-_]+$
Example: DEMOTENANT

Organization ID

query Parameters
marketplace_ids
Array of integers

List of marketplace ids used to filter the tariffs. Filter tariffs by the marketplaces where the customer or the marketplace tariff exists.

order_by
string
Default: "priority"
Enum: "priority" "name" "active_from_date" "active_until_date"

Name for sort

order_direction
string
Default: "desc"
Enum: "asc" "desc"

Key for order direction

page
integer
Default: 1

Number of current page

page_size
integer [ 1 .. 1000000 ]
Default: 50

Number of items per page

roaming_provider
string
Enum: "none" "hubject" "eclearing"

Filters the tariffs for their configured roaming provider.

status
Array of strings
Items Enum: "active" "inactive"

Filters the tariffs for status

types
Array of strings
Items Enum: "marketplace" "customer" "member" "contactless_payment" "cpo_roaming" "direct_charging_cpo" "unregistered" ""

Filter tariffs by tariff type.

  • marketplace: Tariffs with type marketplace
  • customer: Tariffs with type customer
  • member: Tariffs with type member
  • contactless_payment: Tariffs with type contactless_payment
  • cpo_roaming: Tariffs with type cpo_roaming
  • direct_charging_cpo: Tariffs with type direct_charging_cpo
  • unregistered: Tariffs with type direct_payment
  • ``: All tariffs, irrespective of the flag values
header Parameters
Accept-Language
string^[a-zA-Z]{2}(-[a-zA-Z]{2})?

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get a specific tariff

Authorizations:
path Parameters
organizationId
required
string^[a-zA-Z0-9-_]+$
Example: DEMOTENANT

Organization ID

tariffId
required
integer

The tariff ID to search for

Responses

Response samples

Content type
application/json
{
  • "id": 1002,
  • "tariff_id": "dewln-1111991",
  • "tenant": "dewln",
  • "name": [
    ],
  • "priority": 200,
  • "creation_date": "2015-11-25T10:43:02+0100",
  • "update_date": "2017-10-25T06:55:44+0200",
  • "active_from_date": "2018-07-25T00:00:00+0200",
  • "active_until_date": "2027-07-25T00:00:00+0200",
  • "tariff_type": "customer",
  • "roaming_platform": "none",
  • "for_unregistered_customers": false,
  • "for_marketplace": true,
  • "for_customer": false,
  • "for_member": false,
  • "marketplace_ids": [
    ],
  • "member_groups": [
    ],
  • "organization_eligibility_list": {
    },
  • "reservation_duration": 30,
  • "plans": [
    ],
  • "prices": [
    ],
  • "active": true
}

Get a specific price for a specific tariff

Authorizations:
path Parameters
organizationId
required
string^[a-zA-Z0-9-_]+$
Example: DEMOTENANT

Organization ID

priceModelId
required
integer

The price ID to search for

tariffId
required
integer

The tariff ID to search for

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "price_id": "663b5413b497c",
  • "currency": "EUR",
  • "free": true,
  • "point_groups": [
    ],
  • "rule": "poi['group_charging'] in ['SAINTCYR_REG_AC_01']",
  • "tolerance_duration": 2,
  • "price_order_within_tariff": 1,
  • "connection_fee": 1.5,
  • "rounding_mode_time": "EXACT",
  • "rounding_mode_energy": "EXACT",
  • "tariff_alt_url": [
    ],
  • "tariff_alt_text": [
    ],
  • "tax_rate": 19,
  • "tax_rate_invoice_text": [
    ],
  • "active": true,
  • "creation_date": "2015-11-25T10:43:02+0100",
  • "update_date": "2017-10-25T06:55:44+0200",
  • "owner": "WIRELANE-2500781",
  • "rule_cpos_allowed": [
    ],
  • "rule_cpos_not_allowed": [
    ],
  • "rule_external_emps_allowed": [
    ],
  • "rule_pois_allowed": [
    ],
  • "rule_pois_not_allowed": [
    ],
  • "rule_external_point_groups_allowed": [
    ],
  • "rule_external_point_groups_not_allowed": [
    ],
  • "rule_charging_type": "AC",
  • "pricing_template_id": "string",
  • "elements": [
    ],
  • "autoDescription": [
    ]
}

Webhooks

Forwards an organization event to the defined callback. Webhook

Authorizations:

Responses