Road vehicles — Information for remote diagnostic support — General requirements, definitions and use cases — Amendment 1

Véhicules routiers — Information pour support de diagnostic à distance — Exigences générales, définitions et cas d'utilisation — Amendement 1

General Information

Status
Published
Publication Date
21-Nov-2021
Current Stage
6060 - International Standard published
Start Date
22-Nov-2021
Completion Date
22-Nov-2021
Ref Project

RELATIONS

Buy Standard

Standard
ISO 20080:2019/Amd 1:2021
English language
50 pages
sale 15% off
Preview
sale 15% off
Preview
Draft
ISO 20080:2019/FDAmd 1:Version 14-avg-2021
English language
50 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (sample)

INTERNATIONAL ISO
STANDARD 20080
First edition
2019-03
AMENDMENT 1
2021-11
Road vehicles — Information for
remote diagnostic support — General
requirements, definitions and use
cases
AMENDMENT 1
Véhicules routiers — Information pour support de diagnostic à
distance — Exigences générales, définitions et cas d'utilisation
AMENDEMENT 1
Reference number
ISO 20080:2019/Amd.1:2021(E)
© ISO 2021
---------------------- Page: 1 ----------------------
ISO 20080:2019/Amd.1:2021(E)
COPYRIGHT PROTECTED DOCUMENT
© ISO 2021

All rights reserved. Unless otherwise specified, or required in the context of its implementation, no part of this publication may

be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting on

the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address below

or ISO’s member body in the country of the requester.
ISO copyright office
CP 401 • Ch. de Blandonnet 8
CH-1214 Vernier, Geneva
Phone: +41 22 749 01 11
Email: copyright@iso.org
Website: www.iso.org
Published in Switzerland
© ISO 2021 – All rights reserved
---------------------- Page: 2 ----------------------
ISO 20080:2019/Amd.1:2021(E)
Foreword

ISO (the International Organization for Standardization) is a worldwide federation of national standards

bodies (ISO member bodies). The work of preparing International Standards is normally carried out

through ISO technical committees. Each member body interested in a subject for which a technical

committee has been established has the right to be represented on that committee. International

organizations, governmental and non-governmental, in liaison with ISO, also take part in the work.

ISO collaborates closely with the International Electrotechnical Commission (IEC) on all matters of

electrotechnical standardization.

The procedures used to develop this document and those intended for its further maintenance are

described in the ISO/IEC Directives, Part 1. In particular, the different approval criteria needed for the

different types of ISO documents should be noted. This document was drafted in accordance with the

editorial rules of the ISO/IEC Directives, Part 2 (see www.iso.org/directives).

Attention is drawn to the possibility that some of the elements of this document may be the subject of

patent rights. ISO shall not be held responsible for identifying any or all such patent rights. Details of

any patent rights identified during the development of the document will be in the Introduction and/or

on the ISO list of patent declarations received (see www.iso.org/patents).

Any trade name used in this document is information given for the convenience of users and does not

constitute an endorsement.

For an explanation of the voluntary nature of standards, the meaning of ISO specific terms and

expressions related to conformity assessment, as well as information about ISO's adherence to

the World Trade Organization (WTO) principles in the Technical Barriers to Trade (TBT) see

www.iso.org/iso/foreword.html.

This document was prepared by Technical Committee ISO/TC 22, Road vehicles, Subcommittee SC 31,

Data communication.

Any feedback or questions on this document should be directed to the user’s national standards body. A

complete listing of these bodies can be found at www.iso.org/members.html.
iii
© ISO 2021 – All rights reserved
---------------------- Page: 3 ----------------------
ISO 20080:2019/Amd.1:2021(E)
Road vehicles — Information for remote diagnostic
support — General requirements, definitions and use cases
AMENDMENT 1
Annex A
Replace Annex A with the following:
© ISO 2021 – All rights reserved
---------------------- Page: 4 ----------------------
ISO 20080:2019/Amd.1:2021(E)
Annex A
(informative)
Implementation based on ISO 20078 – Road Vehicles – Extended
Vehicle (ExVe) – Web Services
A.1 Introduction
A.1.1 General

This annex contains a web service specification of the use cases listed in this document. The web

service specification is based on the ISO 20078:2021 series. All web services are defined as REST APIs,

using JSON for the transfer of content.

The ISO 20078:2021 series is indispensable for implementing web services according to this annex.

A.1.2 Security

All REST APIs are using OAuth2 compatible framework for access control, OpenID Connect compatible

framework for identification purposes and HTTPS for securing the transfer, see ISO 20078-3:2021 for

details. The exact details of how to obtain access is described by each offering party.

A.1.3 Error codes
A.1.3.1 ISO 20078

The HTTP status codes (error codes) listed for each REST API are described in ISO 20078-2:2021.

A.1.3.2 General error conditions

General error conditions are valid for all use cases. Table A.1 presents the mapping of error conditions

in 5.5 to REST API errors:
Table A.1 — Mapping of error conditions to REST API
Error condition HTTP status ExveErrorId Example
code
Request currently not 503 20080-1000 {
possible to perform by the
"dtcReadout": {
ExVe
"id": "abcde-12345-ghjke-67474",
"messageTimestamp":
"2016-02-24T09:23:46Z",
"exveErrorId": "20080-1000",
"exveErrorMsg": "Request currently
not possible to perform by the ExVe",
"vehicleId": "12345678909876543"
}
© ISO 2021 – All rights reserved
---------------------- Page: 5 ----------------------
ISO 20080:2019/Amd.1:2021(E)
A.1.3.3 Use case specific error conditions
Use case specific errors are mapped to HTTP status codes in each REST API.
A.2 Resources

A web service is exposing access to one or more resources. To be able to access a resource through a

web service, access needs to be granted. This can be done either directly to the resource or through a

container.

Table A.2 maps the ISO 20080 (this document) use cases to REST APIs and resources. In some cases,

mapping of a use case to a REST API provides little standardization benefit, as it is highly offering party

specific.
Table A.2 — Mapping of use cases to REST APIs
UC Use case name REST API Resource(s) Comment
01 Use case discovery resourceReadout Not applicable
02 Identify ECUs installed ecuReadouts ECU readout
in the vehicle
03 Read diagnostic trouble dtcReadouts DTC readout
codes (DTCs)
04 Read readiness codes readinessCodeReadouts Readiness code readout
05 Read DTC snapshot data dtcSnapshotReadout DTC snapshot readout
06 Read selected parameterReadout Parameter readout
diagnostic
parametric
dynamic data
07 Read malfunction malfunctionIndicatorReadout Malfunction indicator
indicator status readout
08 Clear DTCs clearDtcJob Clear DTC job

09 Adjust the settings of a Not applicable/no Not applicable System setting input

selected system standardized API due to and result are offering
differences between party specific.
offering parties.
10 Activation of actuators Not applicable/no Not applicable Actuator input and
standardized API due to result are offering
differences between party specific.
offering parties.
11 Activate a self-test Not applicable/no Not applicable Self-test input and
routine standardized API due to result are offering
differences between party specific.
offering parties.

ISO 20078-2:2021 defines new syntax for resource versioning (used in Accept and Content-Type HTTP

headers). Existing implementations of ISO 20080 based on the ISO 20078:2019 series version can still

be used. For new implementations, support of the ISO 20078:2021 series is recommended (see Table A.3

for details).
© ISO 2021 – All rights reserved
---------------------- Page: 6 ----------------------
ISO 20080:2019/Amd.1:2021(E)

Table A.3 — Mapping of REST API resource representation used in ISO 20080:2019 and

ISO 20080:2019/Amd.1:2021 versions
UC REST API Resource version according to Resource version according to
ISO 20078-2:2019 ISO 20078-2:2021

01 resourceReadout application/x.exve.org.resourcereadout.v1+json application/json; exve-resourceversion=

resourcereadout.v1.0

02 ecuReadouts application/x.exve.org.ecureadout.v1+json application/json; exve-resourceversion=

ecureadout.v1.0

03 dtcReadouts application/x.exve.org.dtcreadout.v1+json application/json; exve-resourceversion=

dtcreadout.v1.0

04 readinessCodeReadouts application/x.exve.org.readinesscodereadout.v1+json application/json; exve-resourceversion=

readinesscodereadout.v1.0

05 dtcSnapshotReadout application/x.exve.org.dtcsnapshotreadout.v1+json application/json; exve-resourceversion=

dtcsnapshotreadout.v1.0

06 parameterReadout application/x.exve.org.parameterreadout.v1+json application/json; exve-resourceversion=

parameterreadout.v1.0

malfunctionIndicatorRead application/x.exve.org.malfunctionIndicatorreadout. application/json; exve-resourceversion=

out v1+json malfunctionindicatorreadout.v1.0

08 clearDtcJob application/x.exve.org.cleardtcjob.v1+json application/json; exve-resourceversion=

cleardtcjob.v1.0
A.3 REST API information model

The rest API information model in Figure A.1 is compiled from the use cases in this document and used

as a base for designing the REST APIs.
Figure A.1 — REST API information model
© ISO 2021 – All rights reserved
---------------------- Page: 7 ----------------------
ISO 20080:2019/Amd.1:2021(E)
A.4 REST APIs
A.4.1 Use case 01 – resourceReadout

The resourceReadout API follows the asynchronous interaction pattern, as the processing time of the

request can vary dependent on the offering party implementation (see Figure A.2). In some cases, it is

possible to return the result immediately, whereas sometimes the accessing party needs to poll the API

until the result is ready.

The accessing party starts by posting a resource readout request (see Table A.4). If the result is available

immediately, the result is returned directly (see Table A.5). If the result is not available immediately, a

status is returned instead of the readout. The accessing party is supposed to poll the request status

until the processing is completed. When the processing is completed, the accessing party will receive

the result.

The readout status and the completed readout will be available for a limited time after being created.

This time is specified by the offering party.
Figure A.2 — resourceReadouts sequence diagram
Table A.4 — POST resourceReadout
POST vehicles/{vehicleId}/resourceReadouts

Description This API creates a readout of available resources to the accessing party for one vehicle. If the

result is available immediately, the result is returned. If the result is not available, a location

to the resource readout is returned. This location shall be polled until the result is available.

Parameters vehicleId string required The vehicle identifier of the vehicle to read from

© ISO 2021 – All rights reserved
---------------------- Page: 8 ----------------------
ISO 20080:2019/Amd.1:2021(E)
Table A.4 (continued)
Request Host required According to HTTP/1.1 RFC 2616
headers
Authorization required Bearer {token}
Accept required application/json; exve-resourceversion=resourcereadout.v1.0;
charset=utf-8
Response Location Absolute URI of the /resourceReadouts endpoint
headers
Response 201 Example (result available immediately):
(success)
"resourceReadout": {
"id": "abcde-12345-ghjke-67474",
"asyncStatus": "Complete",
"messageTimestamp": "2016-02-24T09:23:46Z",
"vehicleId": "12345678909876543",
"resources": [
{
"name": "DTC Readout",
"version": "1",
"api":
"https://example.org/vehicles/12345678909876543/dtcReadouts"
},
{
"name": "ECU Readout",
"version": "1",
"api":
"https://example.org/vehicles/12345678909876543/ecuReadouts"
}
]
}

202 Result is not available immediately. Location of resourceReadout will be returned,

e.g. vehicles/{vehicleId}/resourceReadouts/{id}, see Location header.
Error codes 400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
406 Not Acceptable
500 Internal Server Error
501 Not Implemented
503 Service Unavailable
505 Version Not Supported
Access Any resource Access to any resource will give access to this API.
JSON schema See Clause A.5.
© ISO 2021 – All rights reserved
---------------------- Page: 9 ----------------------
ISO 20080:2019/Amd.1:2021(E)
Table A.5 — GET resourceReadout
GET vehicles/{vehicleId}/resourceReadouts/{id}

Description This API returns a readout of available resources to the accessing party for one vehicle. The id

of the readout is returned when posting the request. If the resource readout is not completed,

the readout status is returned. If the resource readout is completed, the result is returned.

Parameters vehicleId string required The vehicle identifier of the vehicle to read from

id string required Id of the DTC readout
Request Host required According to HTTP/1.1 RFC 2616
headers
Authorization required Bearer {token}
Accept required application/json; exve-resourceversion=resourcereadout.v1.0;
charset=utf-8

Response Content-Type application/json; exve-resourceversion= resourcereadout.v1.0;charset=utf-8

headers
Response 200 Example (result available):
(success)
"resourceReadout": {
"id": "abcde-12345-ghjke-67474",
"asyncStatus": "Complete",
"messageTimestamp": "2016-02-24T09:23:46Z",
"vehicleId": "12345678909876543",
"resources": [
{
"name": "DTC Readout",
"version": "1",
"api":
"https://example.org/vehicles/12345678909876543/dtcReadouts"
},
{
"name": "ECU Readout",
"version": "1",
"api":
"https://example.org/vehicles/12345678909876543/ecuReadouts"
}
]
}
© ISO 2021 – All rights reserved
---------------------- Page: 10 ----------------------
ISO 20080:2019/Amd.1:2021(E)
Table A.5 (continued)
Example (result not available):
"resourceReadout": {
"id": "abcde-12345-ghjke-67474",
"asyncStatus": "InProgress",
"asyncWait": 10000,
"asyncEstimatedComplete": "2016-02-24T09:24:00Z",
"messageTimestamp": "2016-02-24T09:23:46Z",
"vehicleId": "12345678909876543"
}
Error codes 400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
406 Not Acceptable
500 Internal Server Error
501 Not Implemented
503 Service Unavailable
505 Version Not Supported
Access Any resource Access to any resource will give access to this API.
JSON schema See Clause A.5.
A.4.2 Use case 02 – ecuReadouts

The ecuReadout API follows the asynchronous interaction pattern, as the processing time of the request

can vary dependent on the offering party implementation (see Figure A.3). In some cases, it is possible

to return the result immediately, whereas sometimes the accessing party needs to poll the API until the

result is ready.

The accessing party starts by posting an ECU readout request (see Table A.6). If the result is available

immediately, the result is returned directly. If the result is not available immediately, a status is

returned instead of the readout. The accessing party is supposed to poll the request status until the

processing is completed (see Table A.7). When the processing is completed, the accessing party will

receive the result.

The readout status and the completed readout will be available for a limited time after being created.

This time is specified by the offering party.
© ISO 2021 – All rights reserved
---------------------- Page: 11 ----------------------
ISO 20080:2019/Amd.1:2021(E)
Figure A.3 — ecuReadouts sequence diagram
Table A.6 — POST ecuReadout
POST vehicles/{vehicleId}/ecuReadouts/ecuId={ecuId}

Description This API creates a readout of ECUs for one vehicle. If the result is available immediately, the

result is returned. If the result is not available, a location to the ECU readout is returned. This

location shall be polled until the result is available.

Parameters vehicleId string required The vehicle identifier of the vehicle to read from

ecuId string optional Return this ECU id only
Default: Return all ECUs
Request Host required According to HTTP/1.1 RFC 2616
headers
Authorization required Bearer {token}
Accept required application/json; exve-resourceversion=ecureadout.v1.0;
charset=utf-8
Response Location Absolute URI of the /ecuReadouts endpoint
headers
© ISO 2021 – All rights reserved
---------------------- Page: 12 ----------------------
ISO 20080:2019/Amd.1:2021(E)
Table A.6 (continued)
Response 201 Example (result available immediately):
(success)
"ecuReadout": {
"id": "abcde-12345-ghjke-67474",
"asyncStatus": "Complete",
"messageTimestamp": "2016-02-24T09:23:46Z",
vehicleId": "12345678909876543",
"receivedTimestamp": "2016-02-24T09:23:46Z",
"ecus": [
{
"ecuId": "ABC",
"hardwareIds": ["1234567"],
"softwareIds": ["9876543"]
}, {
"ecuId": "DEF",
"hardwareIds": ["2345678"],
"softwareIds": ["8976543"]
}, {
"ecuId": "GHI",
"hardwareIds": ["3456789"],
"softwareIds": ["7896543","7896555"]
}
]
}

202 Result is not available immediately. Location of ecuReadout will be returned,

e.g. vehicles/{vehicleId}/ecuReadouts/{id}, see Location header.
Error codes 400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
406 Not Acceptable
500 Internal Server Error
501 Not Implemented
503 Service Unavailable
505 Version Not Supported
Access ECU readout Full access to this API
JSON schema See Clause A.5.
© ISO 2021 – All rights reserved
---------------------- Page: 13 ----------------------
ISO 20080:2019/Amd.1:2021(E)
Table A.7 — GET ecuReadout
GET vehicles/{vehicleId}/ecuReadouts/{id}

Description This API returns the ECU readout for one vehicle. The id of the readout is returned when post-

ing the request. If the ECU readout is not completed, the readout status is returned. If the ECU

readout is completed, the result is returned.

Parameters vehicleId string required The vehicle identifier of the vehicle to read from

id string required id of the ECU readout
Request Host required According to HTTP/1.1 RFC 2616
headers
Authorization required Bearer {token}
Accept required application/json; exve-resourceversion=ecureadout.v1.0;
charset=utf-8

Response Content-Type application/json; exve-resourceversion=ecureadout.v1.0; charset=utf-8

headers
Response 200 Example (result available):
(success)
"ecuReadout": {
"id": "abcde-12345-ghjke-67474",
"asyncStatus": "Complete",
"messageTimestamp": "2016-02-24T09:23:46Z",
"vehicleId": "12345678909876543",
"receivedTimestamp": "2016-02-24T09:23:46Z",
"ecus": [
{
"ecuId": "ABC",
"hardwareIds": ["1234567"],
"softwareIds": ["9876543"]
}, {
"ecuId": "DEF",
"hardwareIds": ["2345678"],
"softwareIds": ["8976543"]
}, {
"ecuId": "GHI",
"hardwareIds": ["3456789"],
"softwareIds": ["7896543","7896555"]
}
]
}
© ISO 2021 – All rights reserved
---------------------- Page: 14 ----------------------
ISO 20080:2019/Amd.1:2021(E)
Table A.7 (continued)
Example (result not available):
"ecuReadout": {
"id": "abcde-12345-ghjke-67474",
"asyncStatus": "InProgress",
"asyncWait": 10000,
"asyncEstimatedComplete": "2016-02-24T09:24:00Z",
"messageTimestamp": "2016-02-24T09:23:46Z",
"vehicleId": "12345678909876543"
}
Error codes 400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
406 Not Acceptable
500 Internal Server Error
501 Not Implemented
503 Service Unavailable
505 Version Not Supported
Access ECU readout Full access to this API
JSON schema See Clause A.5.
A.4.3 Use case 03 – dtcReadouts

The dtcReadout API follows the asynchronous interaction pattern, as the processing time of the request

can vary dependent on the offering party implementation (see Figure A.4). In some cases, it is possible

to return the result immediately, whereas sometimes the accessing party needs to poll the API until the

result is ready.

The accessing party starts by posting a DTC readout request (see Table A.8). If the result is available

immediately, the result is returned directly. If the result is not available immediately, a status is

returned instead of the readout. The accessing party is supposed to poll the request status until the

processing is completed (see Table A.9). When the processing is completed, the accessing party will

receive the result.

The readout status and the completed readout will be available for a limited time after being created.

This time is specified by the offering party.
© ISO 2021 – All rights reserved
---------------------- Page: 15 ----------------------
ISO 20080:2019/Amd.1:2021(E)
Figure A.4 — dtcReadouts sequence diagram
Table A.8 — POST dtcReadout
POST vehicles/{vehicleId}/dtcReadouts?ecuId={ecuId}&dtcStatus={dtcStatus}

Description This API creates a readout of DTCs for one vehicle. If the result is available immediately, the

result is returned. If the result is not available, a location to the DTC readout is returned. This

location shall be polled until the result is available.

Parameters vehicleId string required The vehicle identifier of the vehicle to read from

ecuId string optional Returns DTCs from this ECU id only
Default: Return DTCs from all ECUs
dtcStatus string required Returns DTCs with this status only.
Request Host required According to HTTP/1.1 RFC 2616
headers
Authorization required Bearer {token}
Accept required application/json; exve-resourceversion=dtcreadout.v1.0;
charset=utf-8
Response Location Absolute URI of the /dtcReadouts endpoint
headers
© ISO 2021 – All rights reserved
---------------------- Page: 16 ----------------------
ISO 20080:2019/Amd.1:2021(E)
Table A.8 (continued)
Response 201 Example (result available immediately):
(success)
"dtcReadout": {
"id": "abcde-12345-ghjke-67474",
"asyncStatus": "Complete",
"messageTimestamp": "2016-02-24T09:23:46Z",
"vehicleId": "12345678909876543",
"receivedTimestamp": "2016-02-24T09:23:46Z",
"dtcs": [
{
"dtcId": "123456",
"status": "ACTIVE",
"occurrenceCounter": 3,
"ecuId": "ABC",
"dtcTimestamp": "2016-01-20T08:23:46Z"
},
{
"dtcId": "345678",
"status": "ACTIVE",
"occurrenceCounter": 1,
"ecuId": "ABC",
"dtcTimestamp": "2016-01-07T14:56:10Z"
}
]
}

202 Result is not available immediately. Location of dtcReadout will be returned,

e.g. vehicles/{vehicleId}/dtcReadouts/{id}, see Location header.
Error codes 400 Bad Request DTC status not valid
401 Unauthorized
403 Forbidden
404 Not Found ECU Id not valid
406 Not Acceptable
500 Internal Server Error
501 Not Implemented
503 Service Unavailable
505 Version Not Supported
Access DTC readout Full access to this API
JSON schema See Clause A.5.
© ISO 2021 – All rights reserved
---------------------- Page: 17 ----------------------
ISO 20080:2019/Amd.1:2021(E)
Table A.9 — GET dtcReadout
GET vehicles/{vehicleId}/dtcReadouts/{id}

Description This API returns the DTC readout for one vehicle. The id of the readout is returned when post-

ing the request. If the DTC readout is not completed, the readout status is returned. If the DTC

readout is completed, the result is returned.

Parameters vehicleId string required The vehicle identifier of the vehicle to read from

id string required id of the DTC readout
Request Host required According to HTTP/1.1 RFC 2616
headers
Authorization required Bearer {token}
Accept required application/json; exve-resourceversion=dtcreadout.v1.0;
charset=utf-8

Response Content-Type application/json; exve-resourceversion=dtcreadout.v1.0; charset=utf-8

headers
Response 200 Example (result available):
(success)
"dtcReadout": {
"id": "abcde-12345-ghjke-67474",
"asyncStatus": "Complete",
"messageTimestamp": "2016-02-24T09:23:46Z",
"vehicleId": "12345678909876543",
"receivedTimestamp": "2016-02-24T09:23:46Z",
"dtcs": [
{
"dtcId": "123456",
"status": "ACTIVE",
"occurrenceCounter": 3,
"ecuId": "ABC",
"dtcTimestamp": "2016-01-20T08:23:46Z"
},
{
"dtcId": "345678",
"status": "ACTIVE",
"occurrenceCounter": 1,
"ecuId": "ABC",
"dtcTimestamp": "2016-01-07T14:56:10Z"
}
]
}
© ISO 2021 – All rights reserved
---------------------- Page: 18 ----------------------
ISO 20080:2019/Amd.1:2021(E)
Table A.9 (continued)
Example (result not available):
"dtcReadout": {
"id": "abcde-12345-ghjke-67474",
"asyncStatus": "InProgress",
"asyncWait": 10000,
"asyncEstimatedComplete": "2016-02-24T09:24:00Z",
"messageTimestamp": "2016-02-24T09:23:46Z",
"vehicleId": "12345678909876543"
}
Error codes 400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
406 Not Acceptable
500 Internal Server Error
501 Not Implemented
503 Service Unavailable
505 Version Not Supported
Access DTC readout Full access to this API
JSON schema See Clause A.5.
A.4.4 Use case 04 – readinessCodeReadouts

The readinessCodeReadout API follows the asynchronous interaction pattern, as the processing time of

the request can vary dependent on the offering party implementation (see Figure A.5). In some cases, it

is possible to return the result immediately, whereas sometimes the accessing party needs to poll the

API until the result is ready.

The accessing party starts by posting a readiness code readout request (see Table A.10). If the result is

available immediately, the result is returned directly. If the result is not available immediately, a status

is returned instead of the readout. The accessing party is supposed to poll the request status until the

processing is completed (see Table A.11). When the processing is completed, the accessing party will

receive the result.

The readout status and the completed readout will be available for a limited time after being created.

This time is specified by the offering party.
© ISO 2021 – All rights reserved
---------------------- Page: 19 ----------------------
ISO 20080:2019/Amd.1:2021(E)
Figure A.5 — readinessCodeReadouts sequence diagram
Table A.10 — POST readinessCodeReadout
POST vehicles/{vehicleId}/readinessCodeReadouts

Description This API creates a readout of readiness codes for one vehicle. If the result is available

immediately, the result is returned. If the result is not available, a location to the readiness

code readout is returned. This location shall be polled until the result is available.

Parameters vehicleId string required The vehicle identifier of the vehicle to read from

Request Host required According to HTTP/1.1 RFC 2616
headers
Authorization required Bearer {token}
Accept required application/json; exve-resourceversion=
readinesscodereadout.v1.0; charset=utf-8
Response Location Absolute URI of the /readinessCodeReadouts endpoint
headers
© ISO 2021 – All rights reserved
---------------------- Page: 20 ----------------------
ISO 20080:2019/Amd.1:2021(E)
Table A.10 (continued)
Response 201 Example (result available immediately):
(success)
"readinessCodeReadout": {
"id": "abcde-12345-ghjke-67474",
"asyncStatus": "Complete",
"messageTimestamp": "2016-02-24T09:23:46Z",
"vehicleId": "12345678909876543",
"receivedTimestamp": "2016-02-24T09:23:46Z",
"readinessCodes": [
{
"systemId": "EGR",
"isReady": true
}, {
"systemId": "SCR",
"isReady": false
}
]
}

202 Result is not available immediately. Location of readinessCodeReadout will be

returned, e.g. vehicles/{vehicleId}/readinessCodeReadouts/{id}, see Location
header.
Error codes 400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
406 Not Acceptable
500 Internal Server Error
501 Not Implemented
503 Service Unavailable
505 Version Not Supported
Access Readiness code Full access to this API
readout
JSON schema See Clause A.5.
© ISO 2021 – All rights reserved
---------------------- Page: 21 ----------------------
ISO 20080:2019/Amd.1:2021(E)
Table A.11 — GET readinessCodeReadout
GET vehicles/{vehicleId}/readinessCodeReadouts/{id}

Description This API returns the readiness code readout for one vehicle. The id of the readout is returned

when posting the request. If the readiness code readout is not completed, the readout status

is returned. If the readiness code readout is completed, the result is returned.

Parameters vehicleId string required The vehicle identifier of the vehicle to read from

id string required id of the readiness code readout
Request Host required According to HTTP/1.1 RFC 2616
headers
Authorization required Bearer {token}
Accept required application/json; exve-resourceversion=
readinesscodereadout.v1.0; charset=utf-8

Response Content-Type application/json; exve-resourceversion=readinesscodereadout.v1.0;

headers charset=utf-8
Response 200 Example (result available):
(success)
"readinessCodeReadout": {
"id": "abcde-12345-ghjke-67474",
"asyncStatus": "Complete",
"messageTimestamp": "2016-02-24T09:23:46Z",
"vehicleId": "12345678909876543",
"receivedTimestamp": "2016-02-24T09:23:46Z",
"readinessCodes": [
{
"systemId": "EGR",
"isReady": true
}, {
"systemId": "SCR",
"isReady": false
}
]
}
Example (result not available):
"readinessCodeReadout": {
"id": "abcde-12345-ghjke-67474",
"asyncStatus": "InProgress",
"asyncWait": 10000,
"asyncEstimatedComplete": "2016-02-24T09:24:00Z",
"messageTimestamp": "2016-02-24T09:23:46Z",
"vehicleId": "12345678909876543"
}
© ISO 2021 – All rights
...

FINAL
ISO
AMENDMENT
DRAFT
20080:2019
FDAM 1
ISO/TC 22/SC 31
Road vehicles — Information for
Secretariat: DIN
remote diagnostic support — General
Voting begins on:
2021­08­19 requirements, definitions and use
cases
Voting terminates on:
2021­10­14
AMENDMENT 1
Véhicules routiers — Information pour support de diagnostic à
distance — Exigences générales, définitions et cas d'utilisation
AMENDEMENT 1
RECIPIENTS OF THIS DRAFT ARE INVITED TO
SUBMIT, WITH THEIR COMMENTS, NOTIFICATION
OF ANY RELEVANT PATENT RIGHTS OF WHICH
THEY ARE AWARE AND TO PROVIDE SUPPOR TING
DOCUMENTATION.
IN ADDITION TO THEIR EVALUATION AS
Reference number
BEING ACCEPTABLE FOR INDUSTRIAL, TECHNO­
ISO 20080:2019/FDAM 1:2021(E)
LOGICAL, COMMERCIAL AND USER PURPOSES,
DRAFT INTERNATIONAL STANDARDS MAY ON
OCCASION HAVE TO BE CONSIDERED IN THE
LIGHT OF THEIR POTENTIAL TO BECOME STAN­
DARDS TO WHICH REFERENCE MAY BE MADE IN
NATIONAL REGULATIONS. ISO 2021
---------------------- Page: 1 ----------------------
ISO 20080:2019/FDAM 1:2021(E)
COPYRIGHT PROTECTED DOCUMENT
© ISO 2021

All rights reserved. Unless otherwise specified, or required in the context of its implementation, no part of this publication may

be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting

on the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address

below or ISO’s member body in the country of the requester.
ISO copyright office
CP 401 • Ch. de Blandonnet 8
CH­1214 Vernier, Geneva
Phone: +41 22 749 01 11
Email: copyright@iso.org
Website: www.iso.org
Published in Switzerland
ii © ISO 2021 – All rights reserved
---------------------- Page: 2 ----------------------
ISO 20080:2019/FDAM 1:2021(E)
Foreword

ISO (the International Organization for Standardization) is a worldwide federation of national standards

bodies (ISO member bodies). The work of preparing International Standards is normally carried out

through ISO technical committees. Each member body interested in a subject for which a technical

committee has been established has the right to be represented on that committee. International

organizations, governmental and non­governmental, in liaison with ISO, also take part in the work.

ISO collaborates closely with the International Electrotechnical Commission (IEC) on all matters of

electrotechnical standardization.

The procedures used to develop this document and those intended for its further maintenance are

described in the ISO/IEC Directives, Part 1. In particular, the different approval criteria needed for the

different types of ISO documents should be noted. This document was drafted in accordance with the

editorial rules of the ISO/IEC Directives, Part 2 (see www .iso .org/ directives).

Attention is drawn to the possibility that some of the elements of this document may be the subject of

patent rights. ISO shall not be held responsible for identifying any or all such patent rights. Details of

any patent rights identified during the development of the document will be in the Introduction and/or

on the ISO list of patent declarations received (see www .iso .org/ patents).

Any trade name used in this document is information given for the convenience of users and does not

constitute an endorsement.

For an explanation of the voluntary nature of standards, the meaning of ISO specific terms and

expressions related to conformity assessment, as well as information about ISO's adherence to the

World Trade Organization (WTO) principles in the Technical Barriers to Trade (TBT) see www .iso .org/

iso/ foreword .html.

This document was prepared by Technical Committee ISO/TC 22, Road vehicles, Subcommittee SC 31,

Data communication.

Any feedback or questions on this document should be directed to the user’s national standards body. A

complete listing of these bodies can be found at www .iso .org/ members .html.
© ISO 2021 – All rights reserved iii
---------------------- Page: 3 ----------------------
ISO 20080:2019/FDAM 1:2021(E)
Road vehicles — Information for remote diagnostic
support — General requirements, definitions and use cases
AMENDMENT 1
Annex A
Replace Annex A with the following:
© ISO 2021 – All rights reserved 1
---------------------- Page: 4 ----------------------
ISO 20080:2019/FDAM 1:2021(E)
Annex A
(informative)
Implementation based on ISO 20078 – Road Vehicles – Extended
Vehicle (ExVe) – Web Services
A.1 Introduction
A.1.1 General

This annex contains a web service specification of the use cases listed in this document. The web service

specification is based on the ISO 20078:2021 series. All web services are defined as REST APIs, using

JSON for the transfer of content.

The ISO 20078:2021 series is indispensable for implementing web services according to this annex.

A.1.2 Security

All REST APIs are using OAuth2 compatible framework for access control, OpenID Connect compatible

framework for identification purposes and HTTPS for securing the transfer, see ISO 20078-3:2021 for

details. The exact details of how to obtain access is described by each offering party.

A.1.3 Error codes
A.1.3.1 ISO 20078

The HTTP status codes (error codes) listed for each REST API are described in ISO 20078­2:2021.

A.1.3.2 General error conditions

General error conditions are valid for all use cases. Table A.1 presents the mapping of error conditions

in 5.5 to REST API errors:
Table A.1 — Mapping of error conditions to REST API
Error condition HTTP status ExveErrorId Example
code
Request currently not 503 20080­1000 {
possible to perform by the
"dtcReadout": {
ExVe
"id": "abcde-12345-ghjke-67474",
"messageTimestamp":
"2016-02-24T09:23:46Z",
"exveErrorId": "20080-1000",
"exveErrorMsg": "Request currently
not possible to perform by the ExVe",
"vehicleId": "12345678909876543"
}

1) Second edition under preparation. Stage at the time of publication: ISO/FDIS 20078 (all parts).

2 © ISO 2021 – All rights reserved
---------------------- Page: 5 ----------------------
ISO 20080:2019/FDAM 1:2021(E)
A.1.3.3 Use case specific error conditions
Use case specific errors are mapped to HTTP status codes in each REST API.
A.2 Resources

A web service is exposing access to one or more resources. To be able to access a resource through a

web service, access needs to be granted. This can be done either directly to the resource or through a

container.

Table A.2, maps the ISO 20080 (this document) use cases to REST APIs and resources. In some cases,

mapping of a use case to a REST API provides little standardization benefit, as it is highly offering-party

specific.
Table A.2 — Mapping of use cases to REST APIs
UC Use case name REST API Resource(s) Comment
01 Use case discovery resourceReadout Not applicable
02 Identify ECUs installed ecuReadouts ECU readout
in the vehicle
03 Read diagnostic trouble dtcReadouts DTC readout
codes (DTCs)
04 Read readiness codes readinessCodeReadouts Readiness code readout
05 Read DTC snapshot data dtcSnapshotReadout DTC snapshot readout
06 Read selected diagnos­ parameterReadout Parameter readout
tic parametric dynamic
data
07 Read malfunction indi­ malfunctionIndicatorReadout Malfunction indicator
cator status readout
08 Clear DTCs clearDtcJob Clear DTC job

09 Adjust the settings of a Not applicable/no standard­ Not applicable System setting input

selected system ized API due to differences and result are offering
between offering parties. party specific.

10 Activation of actuators Not applicable/no standard­ Not applicable Actuator input and re­

ized API due to differences sult are offering party
between offering parties. specific.

11 Activate a self­test Not applicable/no standard­ Not applicable Self­test input and re­

routine ized API due to differences sult are offering party
between offering parties. specific.

ISO 20078-2:2021 defines new syntax for resource versioning (used in Accept and Content-Type HTTP

headers). Existing implementations of ISO 20080 based on the ISO 20078:2019 series version can still

be used. For new implementations, support of the ISO 20078:2021 series is recommended (see Table A.3

for details).

Table A.3 — Mapping of REST API resource representation used in ISO 20080:2019 and

ISO 20080:2019/Amd. 1:2021 versions

UC REST API Resource version according to ISO 20078-2:2019 Resource version according to

ISO 20078-2:2021

01 resourceReadout application/x.exve.org.resourcereadout.v1+json application/json; exve-resourceversion=re­

sourcereadout.v1.0

02 ecuReadouts application/x.exve.org.ecureadout.v1+json application/json; exve-resourceversion=e­

cureadout.v1.0

03 dtcReadouts application/x.exve.org.dtcreadout.v1+json application/json; exve-resourceversion=dt­

creadout.v1.0
© ISO 2021 – All rights reserved 3
---------------------- Page: 6 ----------------------
ISO 20080:2019/FDAM 1:2021(E)
Table A.3 (continued)

UC REST API Resource version according to ISO 20078-2:2019 Resource version according to

ISO 20078-2:2021

04 readinessCodeReadouts application/x.exve.org.readinesscodereadout. application/json; exve-resourceversion=

v1+json readinesscodereadout.v1.0

05 dtcSnapshotReadout application/x.exve.org.dtcsnapshotreadout.v1+json application/json; exve-resourceversion=

dtcsnapshotreadout.v1.0

06 parameterReadout application/x.exve.org.parameterreadout.v1+json application/json; exve-resourceversion=

parameterreadout.v1.0

07 malfunctionIndicatorReadout application/x.exve.org.malfunctionIndicatorreadout. application/json; exve-resourceversion=

v1+json malfunctionindicatorreadout.v1.0

08 clearDtcJob application/x.exve.org.cleardtcjob.v1+json application/json; exve-resourceversion=

cleardtcjob.v1.0
A.3 REST API information model

The rest API information model in Figure A.1 is compiled from the use cases in this document and used

as a base for designing the REST APIs.
Figure A.1 — REST API information model
A.4 REST APIs
A.4.1 Use case 01 – resourceReadout

The resourceReadout API follows the asynchronous interaction pattern, as the processing time of the

request can vary dependent on the offering party implementation (see Figure A.2). In some cases, it is

possible to return the result immediately, whereas sometimes the accessing party needs to poll the API

until the result is ready.
4 © ISO 2021 – All rights reserved
---------------------- Page: 7 ----------------------
ISO 20080:2019/FDAM 1:2021(E)

The accessing party starts by posting a resource readout request (see Table A.4). If the result is available

immediately, the result is returned directly (see Table A.5). If the result is not available immediately, a

status is returned instead of the readout. The accessing party is supposed to poll the request status

until the processing is completed. When the processing is completed, the accessing party will receive

the result.

The readout status and the completed readout will be available for a limited time after being created.

This time is specified by the offering party.
Figure A.2 — resourceReadouts sequence diagram
Table A.4 — POST resourceReadout
POST vehicles/{vehicleId}/resourceReadouts

Description This API creates a readout of available resources to the accessing party for one vehicle. If the

result is available immediately, the result is returned. If the result is not available, a location

to the resource readout is returned. This location shall be polled until the result is available.

Parameters vehicleId string required The vehicle identifier of the vehicle to read from

Request headers Host required According to HTTP/1.1 RFC 2616
Authorization required Bearer {token}
Accept required application/json; exve-resourceversion=resourcereadout.v1.0;
charset=utf-8
Response head­ Location Absolute URI of the /resourceReadouts endpoint
ers
© ISO 2021 – All rights reserved 5
---------------------- Page: 8 ----------------------
ISO 20080:2019/FDAM 1:2021(E)
Table A.4 (continued)
Response (suc­ 201 Example (result available immediately):
cess)
"resourceReadout": {
"id": "abcde-12345-ghjke-67474",
"asyncStatus": "Complete",
"messageTimestamp": "2016-02-24T09:23:46Z",
"vehicleId": "12345678909876543",
"resources": [
{
"name": "DTC Readout",
"version": "1",
"api":
"https://example.org/vehicles/12345678909876543/dtcReadouts"
},
{
"name": "ECU Readout",
"version": "1",
"api":
"https://example.org/vehicles/12345678909876543/ecuReadouts"
}
]
}

202 Result is not available immediately. Location of resourceReadout will be returned, e.g.

vehicles/{vehicleId}/resourceReadouts/{id}, see location header.
Error codes 400 Bad request
401 Unauthorized
403 Forbidden
404 Not found
406 Not acceptable
500 Internal server error
501 Not implemented
503 Service unavailable
505 Version not supported
Access Any resource Access to any resource will give access to this API.
JSON schema See Clause A.5.
Table A.5 — GET resourceReadout
GET vehicles/{vehicleId}/resourceReadouts/{id}

Description This API returns a readout of available resources to the accessing party for one vehicle. The id

of the readout is returned when posting the request. If the resource readout is not completed,

the readout status is returned. If the resource readout is completed, the result is returned.

6 © ISO 2021 – All rights reserved
---------------------- Page: 9 ----------------------
ISO 20080:2019/FDAM 1:2021(E)
Table A.5 (continued)

Parameters vehicleId string required The vehicle identifier of the vehicle to read from

id string required Id of the DTC readout
Request headers Host required According to HTTP/1.1 RFC 2616
Authorization required Bearer {token}
Accept required application/json; exve-resourceversion=resourcereadout.v1.0;
charset=utf-8

Response head­ Content-Type application/json; exve-resourceversion= resourcereadout.v1.0;charset=utf-8

ers
Response (suc­ 200 Example (result available):
cess)
"resourceReadout": {
"id": "abcde-12345-ghjke-67474",
"asyncStatus": "Complete",
"messageTimestamp": "2016-02-24T09:23:46Z",
"vehicleId": "12345678909876543",
"resources": [
{
"name": "DTC Readout",
"version": "1",
"api":
"https://example.org/vehicles/12345678909876543/dtcReadouts"
},
{
"name": "ECU Readout",
"version": "1",
"api":
"https://example.org/vehicles/12345678909876543/ecuReadouts"
}
]
}
© ISO 2021 – All rights reserved 7
---------------------- Page: 10 ----------------------
ISO 20080:2019/FDAM 1:2021(E)
Table A.5 (continued)
Example (result not available):
"resourceReadout": {
"id": "abcde-12345-ghjke-67474",
"asyncStatus": "InProgress",
"asyncWait": 10000,
"asyncEstimatedComplete": "2016-02-24T09:24:00Z",
"messageTimestamp": "2016-02-24T09:23:46Z",
"vehicleId": "12345678909876543"
}
Error codes 400 Bad request
401 Unauthorized
403 Forbidden
404 Not found
406 Not acceptable
500 Internal server error
501 Not implemented
503 Service unavailable
505 Version not supported
Access Any resource Access to any resource will give access to this API.
JSON schema See Clause A.5.
A.4.2 Use case 02 – ecuReadouts

The ecuReadout API follows the asynchronous interaction pattern, as the processing time of the request

can vary dependent on the offering party implementation (see Figure A.3). In some cases, it is possible

to return the result immediately, whereas sometimes the accessing party needs to poll the API until the

result is ready.

The accessing party starts by posting an ECU readout request (see Table A.6). If the result is available

immediately, the result is returned directly. If the result is not available immediately, a status is

returned instead of the readout. The accessing party is supposed to poll the request status until the

processing is completed (see Table A.7). When the processing is completed, the accessing party will

receive the result.

The readout status and the completed readout will be available for a limited time after being created.

This time is specified by the offering party.
8 © ISO 2021 – All rights reserved
---------------------- Page: 11 ----------------------
ISO 20080:2019/FDAM 1:2021(E)
Figure A.3 — ecuReadouts sequence diagram
Table A.6 — POST ecuReadout
POST vehicles/{vehicleId}/ecuReadouts/ecuId={ecuId}

Description This API creates a readout of ECUs for one vehicle. If the result is available immediately, the

result is returned. If the result is not available, a location to the ECU readout is returned. This

location shall be polled until the result is available.

Parameters vehicleId string required The vehicle identifier of the vehicle to read from

ecuId string optional Return this ECU id only
Default: Return all ECUs
Request headers Host required According to HTTP/1.1 RFC 2616
Authorization required Bearer {token}
Accept required application/json; exve-resourceversion=ecureadout.v1.0; char­
set=utf-8
Response head­ Location Absolute URI of the /ecuReadouts endpoint
ers
© ISO 2021 – All rights reserved 9
---------------------- Page: 12 ----------------------
ISO 20080:2019/FDAM 1:2021(E)
Table A.6 (continued)
Response (suc­ 201 Example (result available immediately):
cess)
"ecuReadout": {
"id": "abcde-12345-ghjke-67474",
"asyncStatus": "Complete",
"messageTimestamp": "2016-02-24T09:23:46Z",
vehicleId": "12345678909876543",
"receivedTimestamp": "2016-02-24T09:23:46Z",
"ecus": [
{
"ecuId": "ABC",
"hardwareIds": ["1234567"],
"softwareIds": ["9876543"]
}, {
"ecuId": "DEF",
"hardwareIds": ["2345678"],
"softwareIds": ["8976543"]
}, {
"ecuId": "GHI",
"hardwareIds": ["3456789"],
"softwareIds": ["7896543","7896555"]
}
]
}

202 Result is not available immediately. Location of ecuReadout will be returned, e.g. ve­

hicles/{vehicleId}/ecuReadouts/{id}, see location header.
Error codes 400 Bad request
401 Unauthorized
403 Forbidden
404 Not found
406 Not acceptable
500 Internal server error
501 Not implemented
503 Service unavailable
505 Version not supported
Access ECU readout Full access to this API
JSON schema See Clause A.5.
Table A.7 — GET ecuReadout
GET vehicles/{vehicleId}/ecuReadouts/{id}
10 © ISO 2021 – All rights reserved
---------------------- Page: 13 ----------------------
ISO 20080:2019/FDAM 1:2021(E)
Table A.7 (continued)

Description This API returns the ECU readout for one vehicle. The id of the readout is returned when post­

ing the request. If the ECU readout is not completed, the readout status is returned. If the ECU

readout is completed, the result is returned.

Parameters vehicleId string required The vehicle identifier of the vehicle to read from

id string required id of the ECU readout
Request headers Host required According to HTTP/1.1 RFC 2616
Authorization required Bearer {token}
Accept required application/json; exve-resourceversion=ecureadout.v1.0; char­
set=utf-8

Response head­ Content-Type application/json; exve-resourceversion=ecureadout.v1.0; charset=utf-8

ers
Response (suc­ 200 Example (result available):
cess)
"ecuReadout": {
"id": "abcde-12345-ghjke-67474",
"asyncStatus": "Complete",
"messageTimestamp": "2016-02-24T09:23:46Z",
"vehicleId": "12345678909876543",
"receivedTimestamp": "2016-02-24T09:23:46Z",
"ecus": [
{
"ecuId": "ABC",
"hardwareIds": ["1234567"],
"softwareIds": ["9876543"]
}, {
"ecuId": "DEF",
"hardwareIds": ["2345678"],
"softwareIds": ["8976543"]
}, {
"ecuId": "GHI",
"hardwareIds": ["3456789"],
"softwareIds": ["7896543","7896555"]
}
]
}
© ISO 2021 – All rights reserved 11
---------------------- Page: 14 ----------------------
ISO 20080:2019/FDAM 1:2021(E)
Table A.7 (continued)
Example (result not available):
"ecuReadout": {
"id": "abcde-12345-ghjke-67474",
"asyncStatus": "InProgress",
"asyncWait": 10000,
"asyncEstimatedComplete": "2016-02-24T09:24:00Z",
"messageTimestamp": "2016-02-24T09:23:46Z",
"vehicleId": "12345678909876543"
}
Error codes 400 Bad request
401 Unauthorized
403 Forbidden
404 Not found
406 Not acceptable
500 Internal server error
501 Not implemented
503 Service unavailable
505 Version not supported
Access ECU readout Full access to this API
JSON schema See Clause A.5.
A.4.3 Use case 03 – dtcReadouts

The dtcReadout API follows the asynchronous interaction pattern, as the processing time of the request

can vary dependent on the offering party implementation (see Figure A.4). In some cases, it is possible

to return the result immediately, whereas sometimes the accessing party needs to poll the API until the

result is ready.

The accessing party starts by posting a DTC readout request (see Table A.8). If the result is available

immediately, the result is returned directly. If the result is not available immediately, a status is

returned instead of the readout. The accessing party is supposed to poll the request status until the

processing is completed (see Table A.9). When the processing is completed, the accessing party will

receive the result.

The readout status and the completed readout will be available for a limited time after being created.

This time is specified by the offering party.
12 © ISO 2021 – All rights reserved
---------------------- Page: 15 ----------------------
ISO 20080:2019/FDAM 1:2021(E)
Figure A.4 — dtcReadouts sequence diagram
Table A.8 — POST dtcReadout
POST vehicles/{vehicleId}/dtcReadouts?ecuId={ecuId}&dtcStatus={dtcStatus}

Description This API creates a readout of DTCs for one vehicle. If the result is available immediately, the

result is returned. If the result is not available, a location to the DTC readout is returned. This

location shall be polled until the result is available.

Parameters vehicleId string required The vehicle identifier of the vehicle to read from

ecuId string optional Returns DTCs from this ECU id only
Default: Return DTCs from all ECUs
dtcStatus string required Returns DTCs with this status only.
Request headers Host required According to HTTP/1.1 RFC 2616
Authorization required Bearer {token}
Accept required application/json; exve-resourceversion=dtcreadout.v1.0; char­
set=utf-8
Response head­ Location Absolute URI of the /dtcReadouts endpoint
ers
© ISO 2021 – All rights reserved 13
---------------------- Page: 16 ----------------------
ISO 20080:2019/FDAM 1:2021(E)
Table A.8 (continued)
Response (suc­ 201 Example (result available immediately):
cess)
"dtcReadout": {
"id": "abcde-12345-ghjke-67474",
"asyncStatus": "Complete",
"messageTimestamp": "2016-02-24T09:23:46Z",
"vehicleId": "12345678909876543",
"receivedTimestamp": "2016-02-24T09:23:46Z",
"dtcs": [
{
"dtcId": "123456",
"status": "ACTIVE",
"occurrenceCounter": 3,
"ecuId": "ABC",
"dtcTimestamp": "2016-01-20T08:23:46Z"
},
{
"dtcId": "345678",
"status": "ACTIVE",
"occurrenceCounter": 1,
"ecuId": "ABC",
"dtcTimestamp": "2016-01-07T14:56:10Z"
}
]
}

202 Result is not available immediately. Location of dtcReadout will be returned, e.g. ve­

hicles/{vehicleId}/dtcReadouts/{id}, see location header.
Error codes 400 Bad request DTC status not valid
401 Unauthorized
403 Forbidden
404 Not found ECU Id not valid
406 Not acceptable
500 Internal server error
501 Not implemented
503 Service unavailable
505 Version not supported
Access DTC readout Full access to this API
JSON schema See Clause A.5.
Table A.9 — GET dtcReadout
GET vehicles/{vehicleId}/dtcReadouts/{id}
14 © ISO 2021 – All rights reserved
---------------------- Page: 17 ----------------------
ISO 20080:2019/FDAM 1:2021(E)
Table A.9 (continued)

Description This API returns the DTC readout for one vehicle. The id of the readout is returned when post­

ing the request. If the DTC readout is not completed, the readout status is returned. If the DTC

readout is completed, the result is returned.

Parameters vehicleId string required The vehicle identifier of the vehicle to read from

id string required id of the DTC readout
Request headers Host required According to HTTP/1.1 RFC 2616
Authorization required Bearer {token}
Accept required application/json; exve-resourceversion=dtcreadout.v1.0; char­
set=utf-8

Response head­ Content-Type application/json; exve-resourceversion=dtcreadout.v1.0; charset=utf-8

ers
Response (suc­ 200 Example (result available):
cess)
"dtcReadout": {
"id": "abcde-12345-ghjke-67474",
"asyncStatus": "Complete",
"messageTimestamp": "2016-02-24T09:23:46Z",
"vehicleId": "12345678909876543",
"receivedTimestamp": "2016-02-24T09:23:46Z",
"dtcs": [
{
"dtcId": "123456",
"status": "ACTIVE",
"occurrenceCounter": 3,
"ecuId": "ABC",
"dtcTimestamp": "2016-01-20T08:23:46Z"
},
{
"dtcId": "345678",
"status": "ACTIVE",
"occurrenceCounter": 1,
"ecuId": "ABC",
"dtcTimestamp": "2016-01-07T14:56:10Z"
}
]
}
© ISO 2021 – All rights reserved 15
---------------------- Page: 18 ----------------------
ISO 20080:2019/FDAM 1:2021(E)
Table A.9 (continued)
Example (result not available):
"dtcReadout": {
"id": "abcde-12345-ghjke-67474",
"asyncStatus": "InProgress",
"asyncWait": 10000,
"asyncEstimatedComplete": "2016-02-24T09:24:00Z",
"messageTimestamp": "2016-02-24T09:23:46Z",
"vehicleId": "12345678909876543"
}
Error codes 400 Bad request
401 Unauthorized
403 Forbidden
404 Not found
406 Not acceptable
500 Internal server error
501 Not implemented
503 Service unavailable
505 Version not supported
Access DTC readout Full access to this API
JSON schema See Clause A.5.
A.4.4 Use case 04 – readinessCodeReadouts

The readinessCodeReadout API follows the asynchronous interaction pattern, as the processing time of

the request can vary dependent on the offering party implementation (see Figure A.5). In some cases, it

is possible to return the result immediately, whereas sometimes the accessing party needs to poll the

API until the result is ready.

The accessing party starts by posting a readiness code readout request (see Table A.10). If the result is

available immediately, the result is returned directly. If the result is not available immediately, a status

is returned instead of the readout. The accessing party is supposed to poll the request status until the

processing is completed (see Table A.11). When the processing is completed, the accessing party will

receive the result.

The readout status and the completed readout will be available for a limited time after being created.

This time is specified by the offering party.
16 © ISO 2021 – All rights reserved
---------------------- Page: 19 ----------------------
ISO 20080:2019/FDAM 1:2021(E)
Figure A.5 — readinessCodeReadouts sequence diagram
Table A.10 — POST readinessCodeReadout
POST vehicles/{vehicleId}/readinessCodeReadouts

Description This API creates a readout of readiness codes for one vehicle. If the result is available immediately,

the result is returned. If the result is not available, a location to the readiness code readout is

returned. This location shall be polled until the result is available.

Parameters vehicleId string required The vehicle identifier of the vehicle to read from

Request headers Host required According to HTTP/1.1 RFC 2616
Authorization required Bearer {token}
Accept required application/json; exve-resourceversion= readinesscoderead­
out.v1.0; charset=utf-8
Response head­ Location Absolute URI of the /readinessCodeReadouts endpoint
ers
© ISO 2021 – All rights reserved 17
---------------------- Page: 20 ----------------------
ISO 20080:2019/FDAM 1:2021(E)
Table A.10 (continued)
Response (suc­ 201 Example (result available immediately):
cess)
"readinessCodeReadout": {
"id": "abcde-12345-ghjke-67474",
"asyncStatus": "Complete",
"messageTimestamp": "2016-02-24T09:23:46Z",
"vehicleId": "12345678909876543",
"receivedTimestamp": "2016-02-24T09:23:46Z",
"readinessCodes": [
{
"systemId": "EGR",
"isReady": true
}, {
"systemId": "SCR",
"isReady": false
}
]
}

202 Result is not available immediately. Location of readinessCodeReadout will be returned,

e.g. vehicles/{vehicleId}/readinessCodeReadouts/{id}, see location header.
Error codes 400 Bad request
401 Unauthorized
403 Forbidden
404 Not found
406 Not acceptable
500 Internal server error
501 Not implemented
503 Service unavailable
505 Version not supported
Access Readiness code read­ Full access to this API
out
JSON schema See Clause A.5.
Table A.11 — GET readinessCodeReadout
GET vehicles/{vehicleId}/readinessCodeReadouts/{id}

Description This API returns the readiness code readout for one vehicle. The id of the readout is returned

when posting the request. If the readiness code readout is not completed, the readout status is

returned. If the readiness code readout is completed, the result is returned.

Parameters vehicleId string required The vehicle identifier of the vehicle to read from

id string required id of the readiness code readout
18 © ISO 2021 – All rights reserved
---------------------- Page: 21 ----------------------
ISO 20080:2019/FDAM 1:2021(E)
Table A.11 (continued)
Request headers Host required According to HTTP/1.1 RFC 2616
Authorization required Bearer {token}
Accept required application/json; exve-r
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.