The Mobility House · AsyncAPI Specification
The Mobility House Webhooks
Version
View Spec
View on GitHub
CompanyEnergyElectric VehiclesEV ChargingSmart ChargingEnergy ManagementVehicle-to-GridLoad ManagementFleetOCPPVDV 463ModbusGermanyAsyncAPIEvents
AsyncAPI Specification
generated: '2026-08-30'
method: searched
source: 'https://tmh-help.freshdesk.com/en/support/solutions/articles/203000046009-chargepilot-charging-data-push-api
and https://vdv-docs.tmh.energy/ (sections 2-5), fetched 2026-08-30.'
name: The Mobility House event and webhook surface
note: 'The Mobility House publishes NO AsyncAPI document. It does publish two real event surfaces in
prose-plus-example form: an outbound HTTPS webhook (the ChargePilot Charging Data Push-API) and a
bidirectional WebSocket-Secure message interface (VDV 463). This artifact catalogues them from the
published documentation. No AsyncAPI specification has been authored on the provider''s behalf.'
asyncapi_published: false
surfaces:
- id: chargepilot-charging-data-push-api
name: ChargePilot Charging Data Push-API
kind: webhook
direction: outbound
protocol: https
method: POST
endpoint: 'customer-supplied HTTPS URL (ChargePilot POSTs to a receiver the customer operates; no
Mobility House host is involved as the destination)'
authentication:
style: api-key-header
header: Ocp-Apim-Subscription-Key
note: 'Azure API Management subscription-key header, presented by ChargePilot to the customer
endpoint. Key is issued during onboarding.'
content_type: application/json
cadence: 'Hourly by default, adjustable per customer; a record becomes eligible on charging session
completion.'
scope: 'All current and future charging sites on the account are included automatically.'
events:
- name: charging-session-completed
description: 'One completed charging session, billing-relevant.'
payload_fields:
- name: TransactionID
type: number
description: Session identifier.
- name: ChargerID
type: string
description: OCPP station ID / serial number.
- name: ConnectorID
type: number
description: Charging point identifier within the station.
- name: StartAt
type: string
format: utc-timestamp
description: Session start, UTC.
- name: EndAt
type: string
format: utc-timestamp
description: Session end, UTC.
- name: Id
type: string
description: RFID tag presented for the session.
- name: EnergyDelivered
type: number
unit: Wh
description: Energy delivered, meter_start to meter_stop.
- name: InitialSoC
type: number|null
description: State of charge at session start. DC charging points only; null on AC.
- name: EndSoC
type: number|null
description: State of charge at session end. DC charging points only; null on AC.
gaps:
retry_policy: 'Not documented.'
delivery_guarantee: 'Not documented.'
signature_verification: 'Not documented — the only authenticator described is the static
Ocp-Apim-Subscription-Key header.'
expected_response_codes: 'Not documented.'
- id: chargepilot-vdv-463
name: ChargePilot VDV 463 message interface
kind: websocket-messages
direction: bidirectional
protocol: wss
transport_note: 'VDV 463 mandates an encrypted WebSocket connection over TLS. The endpoint is
provisioned per customer site by The Mobility House and is not published.'
authentication:
style: http-basic
note: 'HTTP Basic Authentication during the WebSocket handshake, credentials Base64-encoded.
Credentials and a recommended TMH certificate are issued when the site is enabled for VDV 463.'
envelope:
shape: json-array
positions:
- MessageType (1 Request, 2 Confirmation, 3 Error)
- Source (BMS | ITCS | CMS)
- PresystemId
- TimeStamp (UTC)
- MessageId (UUID)
- MessageName
- Payload object
messages:
- name: BootNotification.req
direction: upstream-system -> ChargePilot
required: true
description: 'First message after a successful handshake. No further messages may be exchanged
until ChargePilot answers BootNotification.conf.'
- name: BootNotification.conf
direction: ChargePilot -> upstream-system
required: true
description: Confirmation that the session is open for data exchange.
- name: ProvideChargingInformation.req
direction: ChargePilot -> upstream-system
required: true
cadence: every 15 seconds
description: 'Carries a depotInfoList: depot setup, chargingStationInfoList with station statuses,
chargingPointInfoList with charging point statuses, presentPower, fault information, ongoing
charging processes and (when previously supplied) scheduledChargingProcessList entries.'
- name: ProvideChargingRequests.req
direction: upstream-system -> ChargePilot
required: false
description: 'Per-vehicle charging schedules. Full-state message: ChargePilot diffs the supplied
list against the requests it already holds — new entries are created, changed entries updated,
omitted entries deleted. chargingInstruction may be Normal, Changed or Terminate.'
- name: <MessageName> error (MessageType 3)
direction: both
description: 'Sent instead of a confirmation when a request cannot be processed. ChargePilot''s
error payload always carries a message property with a human-readable explanation; the upstream
system''s error payload shape is not fixed by the interface.'
Work with this as data
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/the-mobility-house-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.