APX Overview · APX Specification · APX 0.14.0 · built on APDS 4.1 (2026-01-14) · DraftAPX
APX

Overview

APX Specification: technical documentation

Version 0.16.0 (draft)

Updated 2026-11-02

APX Specification · APX 0.14.0 · built on APDS 4.1 (2026-01-14) · Draft

Overview

Parking and kerbside operations now run on many connected systems at once: access control and lane equipment, licence plate recognition (LPR), permits and credentials, payment systems, merchant validations, enforcement, valet, tolling and the back offices that tie them together. Each pair of systems usually needs its own integration.

The Alliance for Parking Data Standards (APDS) has given these systems a common language. APDS 4.1, whose core data model is the basis of ISO/TS 5206-1:2023, defines what a Place, a Right, a Rate, a Quote, a Session and an Observation are, and an API to exchange them. APX builds on that work.

APX (APDS Parking eXtensions) is an open, additive companion specification to APDS 4.1. It is one API that PARCS, LPR, tolling, permitting and reservations vendors can implement once. It reuses everything APDS defines, as published, and adds only what APDS leaves out: real-time delivery, operational control, alerting, discovery, and the operational domains built on them (APX Part 0 §0.1).

This document gives a summary of the APX specification. It follows the structure of the APDS Overview 4.1 so that readers who know the APDS documents can find their way around.

Mission

To give parking systems one open, vendor-neutral API for the operational exchanges that sit on top of the APDS data model, so that a system which already speaks APDS can also control a lane, raise an alert, take a payment or issue a permit without a private integration for each partner.

How does APX do this?

Background

APDS deliberately stops at data exchange. It does not define how to vend a gate, issue a lost ticket, push a rate to a lane or apply a validation. It has a webhook subscription, but signing, retries and delivery format are left to each project. Security and permissions are left to the Distributing Party (APX executive summary). As a result, PARCS, LPR, tolling, permitting and reservations vendors still build one-off integrations for exactly these things, and call centres and management platforms integrate each vendor separately.

APX began as a way to fill those gaps without forking APDS. Its first complete draft (0.1.0) was published on 2026-08-21. Later editions added customer service and resolution, violations and enforcement, merchant validation programmes, credential lifecycle, valet, LPR read detail, negotiated rates and ticket matching, EV charging and plate lists (CHANGELOG.md).

In implementing APDS 4.1 end to end across these systems, the work also found a small number of things the APDS data model does not yet have a place for, and some corrections to the published API document. APX has been shared with the APDS committee. Following discussion with the committee, the work is split into two tracks, described in Relationship to APDS.

APX Governance

The repository states the current arrangement (CONTRIBUTING.md):

Guiding Principles

The principles that direct APX, in no particular order, are:

  1. APDS first (the prime directive). Wherever APDS 4.1 defines a route, schema or convention, an APX implementation uses it verbatim. APX does not redefine, subset or re-shape any APDS entity. APX resources point at APDS entities by Reference or VersionedReference (APX Part 0 §0.2).
  2. A plain APDS client keeps working. A client that speaks only APDS 4.1 works against an APX implementation without changes, for the routes it uses (APX Part 0 §0.2; Annex A, APX-CORE-02).
  3. Extend, do not fork. APX adds to APDS through the mechanisms APDS itself provides: the extension container with keys of the form apds-ext:apx:<class>@<version> (APDS Use Case Document §C.2.5), user-defined code lists, and new interaction routes that reference APDS entities (APX Part 10 §10.1).
  4. The APDS construct wins. When APDS standardises something APX already covers, the next APX edition adopts the APDS form verbatim, deprecates its own, and documents the migration. APX is a proving ground for APDS, never a competitor (APX Part 3 §3.3(8)).
  5. No business logic in APX. APX carries the facts and the decisions of the systems it connects; it does not take those decisions for them. Screening a plate against a list stays with the operator (APX Part 24 §24.4). The LPR system says whether a read was an entry or an exit; APX does not derive it (APX Part 13 §13.3a(4)). APDS likewise leaves data storage, aggregation policy and business logic out of scope, and APX keeps that boundary (APX Part 0 §0.4).
  6. Additive only within a major version. New optional fields, new endpoints, new code-list entries and new conformance classes only. Removing or re-typing anything needs a new major version. A deprecated feature remains functional for at least one further edition and 12 months, whichever is longer (APX Part 3 §3.2).
  7. Partial adoption is honest. APX is divided into conformance classes. A vendor implements only the classes it needs, but never part of a class (APX Part 3 §3.1).
  8. The machine-readable document is normative. Where prose and the OpenAPI document disagree on an APX path or schema, the OpenAPI document prevails and the prose is corrected. On APDS-native paths the vendored APDS document prevails; APX prose never overrides APDS (APX Part 0 §0.5).
  9. Fail closed. A token with no place grant can reach no place. An all-places grant must be stated explicitly. For a control plane that can open gates, misconfiguration must fail toward nothing (APX Part 9 §9.3).
  10. Vendor neutral and open. Every partner gets its own namespace for fields, endpoints and event topics. Nothing in APX favours one supplier, and the specification is free to implement.

APX Technical Documentation

The APX Specification mirrors the APDS 4.1 technical documentation and adds two documents specific to APX:

Document Contents
01 Overview (this document) Purpose, principles, the relationship to APDS, a summary of every APX module, security and permissions, and conformance.
02 Information Model The APX classes, attributes, relationships and enumerations for each domain, with diagrams showing where they attach to the APDS model.
03 Data Dictionary The definition of every APX class, attribute and enumeration value, in the table format of the APDS 4.1 Data Dictionary.
04 Use Cases Worked examples of APX in use, from the lane to the back office.
05 Interface Specification The APX API: routes, message flows, change feeds, event delivery, commands, errors and security.
06 Requests to APDS What APX asks of APDS: corrections to the published API document, suggested additions, and the data elements proposed for the APDS data model.

The normative interface is the OpenAPI 3.1 document spec/dist/apx-v1.yaml (also spec/dist/apx-v1.json), bundled from the modular source in spec/openapi/, together with the APX data-profile overlay spec/openapi/overlays/apx-data-overlay.yaml. The build applies the overlay to produce the effective API description (APX Part 0 §0.5).

The other normative artifacts of an edition are the registry files in spec/registries/, the written standard in docs/standard/ (Parts 0 to 24) and Annex A (conformance requirements and the ICS template). Each edition names that set exactly, by checksum, in spec/edition.json. CI fails if the manifest goes stale, so an edition is a fixed set of files, not the state of a branch (APX Part 3 §3.4).

Informative material includes the documentation and examples overlays, the sample scenarios in docs/scenarios/, the PARCS Starter Profile (a 26-endpoint subset with its own slim bundle, spec/dist/apx-parcs.json) and the simulator in packages/simulator/.

A separate, narrower package, the APX Data Specification in docs/apds-submission/, lists only the data elements proposed to APDS. Document 06 of this set summarises it.

APX Specification Development Priorities

APX was built in steps. The base classes came first, then each operational domain as its own optional class.

Edition Date Main addition
0.1.0 2026-08-21 First complete v1 draft: data profile, delivery fabric, control, alerts, security, extensibility, registries, errors, accounts, payments, LPR, reservations, permits, tolling, discovery
0.2.0 2026-09-02 Submission-readiness revision
0.3.0 2026-09-05 Customer service and resolution (Part 17)
0.4.0 2026-09-19 Violations (Part 19)
0.5.0 2026-09-19 Validation programmes (Part 20)
0.6.0 2026-09-19 Enforcement policy for each location (Part 19)
0.7.0 2026-09-20 Credentials (Part 21)
0.8.0 2026-09-20 Valet (Part 22)
0.9.0 2026-09-21 LPR read detail (Part 13 §13.3a)
0.10.0 2026-09-24 Negotiated rates and ticket matching (Part 6 §6.6 and §6.7)
0.11.0 2026-09-25 Vetting release: every class exercised against the bundle
0.12.0 2026-09-28 LPR access events: reads say what happened
0.13.0 2026-09-29 Audit of every Part against the bundle, Annex A and the registries, ahead of APDS working-group review
0.14.0 2026-10-12 EV charging (Part 23), plate lists (Part 24), and what an external pairing engine needs to write back (session detail, read review, imported violations)
Unreleased 2026-10-18 UI launch (Part 25) and site configuration (Part 26), with the field and code gaps found in a six-month sample of ten remote-assistance call centres: new issue types, interaction outcomes, approvals, receipts, refund reasons, device faults and supplies

For the data elements proposed to APDS, the work is grouped in three tiers (docs/apds-submission/01-overview.md):

Looking ahead, the repository names these next steps: the APDS working groups' views on the Tier 1 proposals and the two proposed new domains; re-vendoring any new APDS release as a new APX edition (APX Part 3 §3.5); and, on the steward's side, a contributor patent-commitment mechanism and royalty-free declaration before standards-body submission (CONTRIBUTING.md).

Relationship to APDS

APX sits on APDS 4.1. It pins exactly one APDS release per edition, currently 4.1, vendored byte for byte and checksum-guarded (APX Part 3 §3.5). A server advertises the APDS version it implements as apdsVersion in its bootstrap document. There is no in-band version negotiation.

Two tracks

Following discussion with the APDS committee, the work is split in two (README.md):

Track What it contains Where it goes
Data elements The classes, attributes and enumerations that describe what is exchanged: access events, equipment status, credential lifecycle, plate read detail, violations, validation redemptions and the like Proposed to APDS for its data model, in the APX Data Specification (docs/apds-submission/). If taken up, they would sit beside the existing APDS domains and so in a future revision of ISO TS 5206-1.
The APX API Routes, change feeds, signed event delivery, discovery, scopes, the command workflow, request and response bodies Stays in APX. It is APX's preferred implementation specification on top of APDS. It is not proposed for the data model.

Until APDS takes up an element, the APX API carries it as an APDS extension under the generic extension mechanism of APDS 4.1 (Use Case Document §C.2.5). When APDS takes up an element, the APX API moves to the APDS form in its next release and retires its own, so the two never disagree.

APX also keeps a list of suggested corrections to the published apds-api-4.1.yaml (fourteen errata filed on parkingdata/spec) and a short list of additions APDS could consider (docs/apds-change-requests.md, docs/errata/). None of them blocks APX: APX works around each item in its own overlay. Every item is a request or a suggestion, offered with thanks for the work that has gone into APDS. Document 06 sets them out.

How APX elements relate to the APDS model

Every APX schema falls into one of four kinds (docs/data-model-by-domain.md):

Kind Meaning Proposed to APDS?
APDS An existing APDS entity, used as it is Already there
Extension Fields APX adds to an APDS entity, carried in an apds-ext:apx:* block in its extensions container Candidate: the fields could move onto the APDS entity
New element A data element APDS has nothing for Candidate if small and stable
API only An envelope, command, request body, search or computed view No; stays in APX

Extension levels

The APDS Information Model uses the DATEX II extension taxonomy. Against it, APX takes this position (APX Part 10 §10.3):

APX declares extensionName: apx and its extensionVersion in the OpenAPI info block, following the Information Model's extension declaration rule.

Where APX modules sit on the APDS domains

flowchart TB subgraph APDS["APDS 4.1 data domains"] Place Right Session Rate Occupancy Quote Observation end subgraph Fabric["APX base and fabric"] Data["Data profile and change feeds"] Events["Subscriptions and events"] Discovery Security["Security, scopes and grants"] end subgraph Ops["APX operational modules"] Control["Control and device status"] Alerts Accounts["Accounts and payments"] LPR Reservations["Reservations and permits"] RatesMatch["Negotiated rates and ticket matching"] Tolling Violations["Violations and enforcement"] Validations Credentials Valet PlateLists["Plate lists"] Resolution["Resolution and customer support"] Charging["EV charging"] UiLaunch["UI launch"] SiteConfig["Site configuration"] end Data --> Place Data --> Session Data --> Occupancy Control --> Place Alerts --> Place Accounts --> Right LPR --> Observation Reservations --> Right Reservations --> Quote RatesMatch --> Rate RatesMatch --> Session Tolling --> Observation Violations --> Right Violations --> Observation Validations --> Rate Validations --> Session Credentials --> Right Valet --> Session PlateLists --> Right Resolution --> Session Charging --> Place Charging --> Session SiteConfig --> Place UiLaunch --> Resolution

Figure 1: The APX modules and the APDS domains each one builds on. The base and fabric modules apply to every domain.

Overview of the APX Specification

This section summarises each APX module in the order of the APDS Overview: what it is for, the benefit of sharing it, and its key concepts. For the normative detail, see the APX Part cited in each section. The Information Model, Data Dictionary, Use Cases and Interface Specification in this set give more depth.

Common conventions

A few rules apply across every module (APX Parts 4 and 12):

Discovery

Discovery tells a client what a server offers and what that client in particular may do (APX Part 16).

Benefits of Discovery

Onboarding a new integration partner usually means emailed documents and guesswork. With APX, a partner needs one thing: a hostname. Everything else can be discovered. Discovery is contractual, not advertising: a client can call everything its discovery document lists, and nothing more (APX Part 9 §9.3).

Key concepts

Data

The Data module is the base of APX (class apx-data, APX Part 5). It defines no parallel data routes. Pull and push use the APDS 4.1 routes (/places, /observations, /contacts, /rights/specs, /rights/assigned, /rates, /sessions, /quotes) mounted verbatim. APX adds behaviour APDS leaves open.

Benefits of the Data profile

Polling full lists does not scale to live occupancy or thousands of sessions. With a cursor feed, a partner that goes offline for an hour replays exactly what it missed, with no gaps and no duplicates. The rule that an explicit null clears a field removes a common integration fault. Because every addition is an optional parameter or header on the standard routes, a client that ignores them sees normal APDS behaviour.

Push and pull

Occupancy and aggregation

Subscriptions and Events

The delivery fabric (class apx-events, APX Part 8) pushes events to subscribers instead of making them poll. It is a superset-compatible profile of the APDS /webhooks route and EventSubscription.

Benefits of Subscriptions and Events

Webhooks without rules lead to unsigned payloads, silent drops and duplicates. APX makes the delivery contract normative: signatures, a retry schedule, stable event ids for de-duplication and an auditable ledger. Subscriptions can be filtered by place and severity, so each partner receives only its own world. One subscription can carry a location's whole story for analytics: session lifecycle, payments, plate reads, occupancy, alerts and command outcomes.

Key concepts

Control

The Control module (class apx-control, APX Part 6) lets an authorised client act on a site. APDS inventories devices (SupplementalEquipment) and marks access-controlled places, but defines no actuation.

Benefits of Control

The commands map to what call-centre agents do many times a day: take a call at a lane, see the ticket, apply a validation, vend the gate. Returning a full lifecycle instead of a bare yes or no lets the caller tell "the gate opened" from "the gate is faulted" from "your command expired", and prove it later.

Commands

Lane and device status

Alerts

The Alerts module (class apx-alerts, APX Part 7) records conditions that need someone's attention. APDS has no alert, event or notification class, so this domain is new.

Benefits of Alerts

Parking sites are monitored from many places: the equipment supplier's service desk, a remote monitoring centre, the operator's control room, and enforcement and charging partners. Each needs to know when a barrier faults or a lane is blocked, and whether someone has already taken it in hand. A shared alert lets one party raise a condition and others act on it, without one integration per supplier.

Key concepts

Accounts and Payments

The Accounts module (class apx-accounts, with the dependent class apx-payment-history, APX Part 13 §13.1 and §13.2) covers account lookup, taking payments and writing them back to accounting.

Benefits of Accounts and Payments

The flow follows the real call: "I can't get out." The agent finds the account by phone number, sees the balance, takes payment through a secure phone system, posts it back to accounting, and the gate opens. Every recorded payment also publishes apx.accounts.payment.recorded.v1, so finance and analytics systems receive revenue as it happens.

Key concepts

LPR

The LPR module (class apx-lpr, APX Part 13 §13.3) joins plate reads to tickets and sessions and carries what modern recognition engines know.

Benefits of LPR

LPR vendors do not need a separate ingestion API. A plate read is an APDS Observation, so it enters through POST /observations. The only new need is the join ("which ticket goes with this plate?"), so that is the main new route. Extra detail rides inside the standard Observation, so a camera that knows more can say more without breaking a reader that speaks only APDS.

Reads

Access events and lane cameras

Plate review

Reservations and Permits

Reservations and permits (classes apx-reservations and apx-permits, APX Part 14) are thin profiles over APDS machinery. No parallel booking or permit entity exists.

Benefits of Reservations and Permits

Every separate booking object eventually disagrees with the ticket system it shadows. By making the reservation be the APDS AssignedRight, there is nothing to reconcile: the reservation, the permit and the thing the gate checks are the same object.

Key concepts

Rates and Ticket Matching

Two optional features of the Control class close open tickets at the exit lane without touching the rate deck (APX Part 6 §6.6 and §6.7). Servers list them in the features of the bootstrap document.

Benefits of Negotiated Rates and Ticket Matching

Agents and partners regularly offer a customer a price other than the posted one: a flat rate for a lost ticket, a goodwill rate, an agreed event rate. Without a rule, each partner keeps its own list, which drifts from the published deck. APX lets the operator flag which tables may be offered, and requires every change to one ticket to be attributable to a named provider, discount, table or agent. Revenue integrity comes from the design, not from operator discipline (APX Part 6 §6.3).

Key concepts

Tolling

Tolling (class apx-tolling, APX Part 15) connects roadside reads to money. APDS has no toll entities, so this domain is new. It is still built to APDS conventions: toll points are SupplementalEquipment, reads are native Observations, money is AmountInCurrency and settlement links a Payment.

Benefits of Tolling

Tolling is evidence-based billing. A toll transaction keeps its chain intact: the reads it was built from, the price applied, the payment that settled it, and any dispute and its outcome. Every link is a reference to an object elsewhere in the same API.

Key concepts

Violations and Enforcement

Violations (class apx-violations, APX Part 19) cover what operators call tickets, notices, warnings and citations, under one resource. APDS 4.1 has no violation entity, but it has the pieces enforcement needs, and APX builds on them.

Benefits of Violations

Enforcement usually involves several parties: the operator that owns the rights and sessions, an enforcement provider with cameras or officers, a processing agency that sends notices and collects payment, and someone who hears appeals. A shared description of the violation, its notice and its outcome lets them hand a case from one to the next, and lets an appeal be checked against the same evidence and rules the notice was issued under.

Key concepts

flowchart LR Obs["Observation and Image"] --> Elig["Eligibility check against AssignedRight"] Elig --> Vio["Violation detected"] Vio --> Rev["Review by officer or policy"] Rev --> Notice["Notice issued"] Policy["Enforcement policy and signage"] --> Notice Notice --> Pay["Payment"] Notice --> Appeal["Appeal and resolution"]

Figure 2: The enforcement evidence chain. Each box is a record the next one refers to.

Validations

Validations (class apx-validations, APX Part 20) manage the merchant side of validation: everything an operator does around the provider list and the applyValidation command of Part 6.

Benefits of Validations

APDS records that a validation happened (PaymentTypeEnum: validation, Segment.validationId, RateTable.validation, RateDiscount), but not who may validate, on what terms, or who pays. Pay stations, merchant applications and sites therefore keep separate copies. APX adds the programme and keeps the APDS record as the thing that actually reduces the amount due. Every redemption carries the actual reduction, not the nominal benefit, so month-end billing rests on evidence.

Key concepts

Credentials

Credentials (class apx-credentials, APX Part 21) manage the life of access credentials: keycards, fobs, RFID tags and transponders, mobile credentials, hangtags and plates used as the credential.

Benefits of Credentials

Credentials change state all the time: a card is reported lost, a fob is suspended for non-payment, a replacement is issued with a new number. APDS lets a credential be attached to an AssignedRight, but not whether it is still usable or what replaced it. With APX, the office and the gate agree: a lane that only speaks APDS still refuses a card at 6 p.m. because the office replaced it at noon.

Key concepts

Valet

Valet (class apx-valet, APX Part 22) covers custody of a vehicle. APDS 4.1 has no valet entity; its only mention is the valetOnly operating restriction.

Benefits of Valet

Hotels, hospitals, restaurants and event venues hand cars to attendants all day, and each valet operator has its own application. APX gives them a shared shape. The stay and the money remain the APDS Session. What APX adds is custody (who has the keys, where the car is, when it was asked for, who it was handed to) and evidence. A drop-off condition report that the customer acknowledged is what settles "that scratch wasn't there".

Key concepts

Plate Lists

Plate lists (class apx-plate-lists, APX Part 24) carry lists about a plate that someone other than the vehicle's keeper maintains. APDS has nothing for this. A plate list is not a credential (Part 21) and not a right (Part 14).

Benefits of Plate Lists

Cities keep scofflaw lists; operators keep watch lists and lists of service vehicles that may park anywhere. The systems that screen arrivals need these lists current, and an edge server must be able to catch up after an outage.

Key concepts

Resolution and Customer Support

Customer Service and Resolution (class apx-resolution, which requires apx-control, APX Part 17) assembles what an agent needs in one call.

Benefits of Resolution

When a customer presses the intercom, the agent, human or automated, should not have to log into another system, find the facility, the lane and the transaction, and reconstruct what happened. One call assembles the context, and the server, not the agent, decides which actions are permitted.

Key concepts

EV Charging

EV charging (class apx-charging, APX Part 23) is the parking side of charging. It was added in 0.14.0 and is the newest module. It is a registered optional class. Its data elements are offered to APDS as Tier 3, for discussion only.

Benefits of EV Charging

A driver wants to know whether a charger is free now. An operator wants to know when a bay is taken by a vehicle that is not charging, and wants to bill a charge with the parking. APDS 4.1 describes the static infrastructure completely (ElectricChargingEquipment, ElectricChargingPoint, Connector, RefillPoint), but nothing live and nothing that ties a charge to a stay. APX adds that, and reuses every APDS construct by reference.

Key concepts

UI Launch

UI launch (class apx-ui-launch, APX Part 25) lets an implementation open its own screen for a member of staff, with automatic login, and brings everything done on that screen back as APX data. It is defined once and used by every module: a module offers a screen by adding a surface to the apx-ui-surfaces registry. "Screen-pop" already names the lane inquiry (Part 6 §6.2), so this Part speaks of a UI launch.

Benefits of UI Launch

Most remote-assistance actions still happen in a vendor's own web portal, not through an API. In a six-month sample of ten operator call centres (1,503 locations, 9,664 lanes), only one location in eight had any revenue-control link; elsewhere the agent opened the vendor's portal in another window, issued the lost ticket or applied the validation there, and typed a note. Money amounts were recorded on about one call in a hundred, and gate vends were never confirmed back. A vendor will take years to implement every APX module, but it already has good screens. UI launch lets it offer them on day one without breaking the record.

Key concepts

Site Configuration

Site configuration (class apx-site-config, APX Part 26) makes APX alone enough to describe a location: what hardware it has and where it stands, how a parker at any point of it reaches help, what each camera looks at and how to see it, which other systems know the location by which identifiers, and whom to escalate to.

Benefits of Site Configuration

A system that joins a location today learns its layout from three places at once: the parking vendor's portal for the lanes and devices, the call platform for which intercom rings where, and a spreadsheet for the cameras. In the same sample of ten call centres, lane types were free text, the intercom fields on lanes were defined but never filled, most lanes could not be tied to the parking system's own lane identifier, and camera and parking-system passwords were stored in plain text on the lane records. Part 26 gives every item a fixed role, a place in the building, its make, model, versions, serial number and MAC addresses, and the relations between items, and keeps every password out of APX.

Key concepts

Security and Permissions

APDS leaves security to the Distributing Party. APX narrows that to an interoperable profile without prescribing an identity provider (APX Part 9). The APDS guidance still holds: access to data is controlled by the Distributing Party, and different Receiving Parties will receive different sets of data.

Authentication

Scopes

Scopes follow the pattern apx.<domain>:<verb>. A request whose token lacks the scope is refused with 403 insufficient-scope (APX Part 9 §9.2). The scopes in the OpenAPI document are:

Area Scopes
Data apx.data:read, apx.data:write
Control apx.control:read, apx.control:execute
Alerts apx.alerts:read, apx.alerts:write
Subscriptions apx.subscriptions:manage
Accounts and payments apx.accounts:read, apx.payments:write
LPR apx.lpr:read
Reservations and permits apx.reservations:manage, apx.permits:manage
Tolling apx.tolling:manage
Resolution apx.resolution:read, apx.support:manage
Violations apx.violations:read, apx.violations:manage
Validations apx.validations:read, apx.validations:manage, apx.validations:redeem (merchant)
Credentials apx.credentials:read, apx.credentials:manage
Valet apx.valet:read, apx.valet:manage, apx.valet:request (customer)
Plate lists apx.platelists:read, apx.platelists:manage
UI launch apx.ui:launch (host), apx.ui:read, apx.ui:record (the surface's back end)
Site configuration apx.siteconfig:read, apx.siteconfig:manage (whoever runs the calls), apx.cameras:view, apx.displays:record (whoever drives the signs)
Stay compliance apx.compliance:read, apx.compliance:write (the compliance engine)
EV charging apx.charging:read, apx.charging:manage (bridge), apx.charging:status (customer)
Other apx.digest:use, apx.replication:write

APDS-native routes keep the APDS roles. For example, an enforcement client reads the native routes with the APDS ep role and the APX routes with apx.violations:* (APX Part 19).

Grants

Two token claims bound a client's world (APX Part 9 §9.3):

Visibility outside the grant

Three rules settle what a caller learns about records it may not see (APX Part 9 §9.3a):

  1. A request that names a place, lane or device outside the grant gets 403 insufficient-grant.
  2. Where a Part limits a credential to its own records (a merchant's own programmes, a valet customer's own ticket), another party's record is reported as 404 target-not-found, exactly like a record that does not exist.
  3. A lookup that names no place (by plate, phone, card digits or ticket) returns only records at granted places. With no grant it returns an empty list, never 403, because a 403 would reveal that matching records exist.

Privacy and data sharing

Licence plates, plate images and payment records are personal data in many jurisdictions. APX sets an interoperable floor (APX Part 9 §9.6):

Regulatory compliance (lawful basis, data-subject rights, cross-border transfer) remains the Distributing Party's responsibility.

flowchart LR Client["Partner client"] --> Boot["Bootstrap document"] Boot --> Token["OAuth2 token with scopes and grants"] Token --> Disc["Discovery document"] Disc --> Native["APDS native routes"] Disc --> ApxRoutes["APX routes"] Native --> Check{"Scope and grant check"} ApxRoutes --> Check Check -->|allowed| Data["Data within granted places"] Check -->|refused| Problem["403 problem response"] Data --> Events["Signed events to subscriber"]

Figure 3: How a partner connects. Every request passes the same scope and grant check, on APDS routes and APX routes alike.

Scenario Examples

Example 1: A call-centre vendor hired for one garage.

Example 2: A merchant validating its own customers.

Example 3: An analytics platform that must not see plates.

Example 4: A location moves to an aggregating platform.

Example 5: A valet customer checking on a car.

Conformance

APX functionality is divided into named conformance classes, registered in spec/registries/apx-conformance-classes.json (APX Part 3 §3.1). An implementation:

  1. implements the APDS 4.1 routes each claimed class requires;
  2. advertises its classes in /.well-known/apx-configuration;
  3. satisfies every normative requirement mapped to those classes;
  4. never implements part of a claimed class.

Conformance classes

Class What it covers Requires Part
apx-data APDS native routes with the APX data profile (Full and Change updates, tombstones, cursor change feed) Base 5
apx-events Delivery fabric over APDS /webhooks with HMAC signing and the retry schedule Base 8
apx-events-sse Server-Sent Events stream with resume apx-events 8
apx-control Command plane, lane inquiry, validations, device status Base classes 6
apx-alerts Alert resource and lifecycle Base classes 7
apx-discovery Credential-scoped capability discovery Base classes 16
apx-accounts Account lookup, take payment, accounting write-back Base classes 13
apx-payment-history Payment history lookup by ticket apx-accounts 13
apx-lpr Plate and ticket cross-lookup over APDS Observations Base classes 13
apx-reservations Reservations profile over APDS quotes and assigned rights Base classes 14
apx-permits Permits profile over RightSpecification, RightPool and Credential Base classes 14
apx-tolling TollTransaction and its dispute lifecycle Base classes 15
apx-resolution Resolution contexts, allowed actions, passback, plate candidates, support history apx-control 17
apx-violations Violation lifecycle and the eligibility check Base classes 19
apx-validations Merchant enrolment, instrument issuance, redemption ledger, statements Base classes 20
apx-credentials Credential lifecycle and access-event history Base classes 21
apx-valet Valet custody, retrieval queue, verified handback, customer scope Base classes 22
apx-charging Charging-point status with bay presence, ChargingSession, settlement, customer scope Base classes; apx-control for charger commands 23
apx-plate-lists Plate lists and entries, change feed, apx.platelists.changed.v1 Base classes 24
apx-ui-launch Vendor screens opened for staff with automatic login, single-use launches, loopback of every action as APX data Base classes; apx-resolution for execution.type: ui 25
apx-site-config Equipment detail with a fixed role list, areas, cameras and views, comms points, place operations, external identifiers, change notices Base classes 26
apx-mtls Mutual TLS on all APX endpoints None; combines with any set 9, 16

apx-data and apx-events are the base classes. Every other class builds on them. The unauthenticated bootstrap document is required of every implementation, whatever it claims (APX Part 16 §16.1).

Vendor classes

A vendor may define its own class, named <vendor-ns>-<class>, where the prefix is the namespace of its extension keys. Names beginning with apx- are reserved. Clients ignore classes they do not recognise (APX Part 3 §3.1).

Annex A and the Implementation Conformance Statement

Annex A numbers the testable requirements of each class, so that a certification body, a procurement team or an implementer can build a test matrix. Identifiers have the form APX-<CLASS>-<NN> and are never renumbered. Section A.1 holds cross-cutting requirements that apply to every class, for example APX-CORE-01 (APDS constructs used verbatim), APX-CORE-07 (scope and grant refusals) and APX-CORE-10 (personal-data minimisation).

An Implementation Conformance Statement (ICS) is a filled-in copy of Annex A with a header naming the implementation, the supplier, the APX edition and the APDS version. Each requirement of every claimed class is marked PASS, N/A (a conditional requirement that does not apply) or DEVIATION with an explanation. The bootstrap document must advertise exactly the classes the ICS claims. A claim with any unexplained non-PASS row on a claimed class does not conform (Annex A.20).

Extending APX

APX is built to be extended the same way it extends APDS (APX Part 10, Part 3 §3.3):

For a more detailed review of each module, refer to the Information Model, Data Dictionary, Use Cases and Interface Specification documents of this set, and to the APX Parts cited above.