Skip to content

BetterFleet API surfaces

VDV-aligned message endpoint

Route Method Status Current behaviour
/vdv261/v2icp/messages POST 200, 401, 422, 502, 503 Requires VIN/EVCC-bound HTTP Basic authentication and validates a flat V2ICPVehicleRequest. Every request requires h2_stat and bat_stat. The facade obtains the current directive from Manage Core. A seq = 0 response contains every backend field, using SNA for unavailable values; later responses contain the applicable directive delta. Core transport or invalid-response failures return 502, while missing or invalid runtime integration configuration returns 503.

The request and response body are flat JSON objects. Do not place vehicle or backend fields inside parameters.

{
  "seq": 0,
  "vin": "WVWZZZ1JZXW000001",
  "evccid": "001122334455",
  "h2_stat": 0,
  "bat_stat": 0
}

BetterFleet extensions

Route Method Status Purpose
/vdv261/schemas GET 200 Lists the published schema identifiers.
/vdv261/schemas/{schema_name} GET 200, 404 Returns a Pydantic JSON schema; unknown names return 404.
/vdv261/v2icp/diagnostics POST 202 Accepts a DiagnosticEvent; the facade does not persist it.
/vdv261/openapi.json GET 200 Returns the generated OpenAPI document used by this documentation site.

These routes aid BetterFleet integration and are not defined by VDV 261.

Deployment boundary

VDV 261 expects the EVCC to send US-ASCII JSON over HTTPS through ISO 15118 VAS 3 InternetAccess, using IPv6 and port 443. It also defines TLS, User-Agent and optional VIN-based Basic Authentication behaviour. BetterFleet requires VIN/EVCC-bound Basic authentication at this facade. The VIN remains the Basic username, and the submitted EVCC ID must match its credential binding. The application does not enforce the surrounding VAS, IPv6, TLS, User-Agent, response-size, or retry-state-machine requirements.

Reference artifacts: schema/openapi.json and the generated API reference.