E Anlage 24 EFM_Anh 9_Anl 4b_PKM-Datenanbindung_V1.4_231016_MVU 250428.pdf

Öffentliche Nahverkehrsleistungen für drei Linienbündel im Rheingau-Taunus-Kreis und in Wiesbaden

Extrahierter Dokumenttext · Stand: 05.11.2026, 14:02 (Europe/Berlin)

Herkunft: www.subreport.de

Tabellen, Layout und Zeichen können bei der Extraktion abweichen. Maßgeblich ist die Originaldatei.

Originaldatei öffnen

[Seite 1]

PKM-Datenanbindung UIC 918-9

Flexible-Content-Barcodes und Ticket-Layout-Barcodes

Dateiname: PKM-Datenanbindung von Flexible-Content-Barcodes und Ticket-Layout- Barcodes (UIC 918-9)_1.4.docx

Erstellt am: 19.01.2022

Zuletzt geändert am: 16.10.2023

Version: 1.4

Ersteller: Fraunhofer IVI Dresden

[Seite 2]

PKM-DATENANBINDUNG UIC 918-9 - FLEXIBLE-CONTENT-BARCODES UND TICKET-LAYOUT-BARCODES

Versionen

Version Bearbeiter Datum Bemerkung

0.1 Rostock 19.01.2022 Abstimmung der Anbindung des FCB und Beginn des TLB mit DB.

0.2 Rostock 07.02.2022 Ausformulierung und Einleitung mit Referenzlink auf DB-Dokument.

0.3 Rostock 09.03.2022 Abstimmung der Anbindung des TLB mit DB.

1.0 Rostock 10.03.2022 Dokument aus der Geräteschnittstellenspezifikation für PKM-Kontroll- module herausgelöst zur Übergabe an DB.

1.1 Rostock 03.02.2023 PassData herausgenommen. Berechtigungskennung ergänzt. Vertei- lung an AG UIC durch DTVG.

1.2 Rostock 02.03.2023 Beispiel bei den Grundlagen zur Transformation ergänzt.

1.3 Rostock 03.03.2023 Datenfeld für Layouttyp in TLB-Datenstruktur umbenannt auf Type. Beispiele ergänzt.

1.4 Rostock 16.10.2023 Besonderheiten zur Zeichenkodierung für Kompatibilität mit Funktion wertAlsBIN bezüglich VDV KA Datentyp PrintableString. Versionsken- nung der FCB-Datenstruktur in UICRailTicketData integriert. Kleinere redaktionelle anpassungen.

© 2023 Fraunhofer IVI Seite 2 von 19 20.03.24 PKM-Datenanbindung von Flexible-Content-Barcodes und Ticket-Layout-Barcodes (UIC 918-9)_1.4.docx

[Seite 3]

PKM-DATENANBINDUNG UIC 918-9 - FLEXIBLE-CONTENT-BARCODES UND TICKET-LAYOUT-BARCODES

Inhalt

Präambel .............................................................................................................................. 4 1 Anbindung von Flexible Content Barcodes (UIC 918-9) .......................................... 5 1.1 Grundlagen .............................................................................................................. 5 1.2 TLV-Elemente .......................................................................................................... 8 1.2.1 0x83 (Statischer Teil des Verzeichniseintrags) .................................................. 8 1.2.2 0x84 (Dynamischer Teil des Verzeichniseintrags) ............................................. 8 1.2.3 0x85 (Statischer Teil der Berechtigungsdaten) .................................................. 8 1.2.4 0x8A (Dynamischer Teil der Berechtigungsdaten) ............................................. 9 1.2.5 0xC7 (Infotext der Berechtigung) ....................................................................... 9 1.2.6 0xF6 (Ausgabetransaktion) ............................................................................... 9 1.2.7 0xDE (PV-Container) ......................................................................................... 9 1.2.8 0xD2 (Flexible Content Barcode) ....................................................................... 9 1.3 FCB-Datenstrukturen ............................................................................................. 10 1.3.1 UicRailTicketData ............................................................................................ 10 1.3.2 IssuingData ..................................................................................................... 10 1.3.3 TravelerData ................................................................................................... 11 1.3.4 TravelerType ................................................................................................... 11 1.3.5 CustomerStatusType ....................................................................................... 11 1.3.6 DocumentData ................................................................................................ 11 1.3.7 TokenType ...................................................................................................... 12 1.3.8 TicketDetailData .............................................................................................. 12 1.3.9 OpenTicketData .............................................................................................. 12 1.3.10 RegionalValidityType ....................................................................................... 13 1.3.11 ZoneType ........................................................................................................ 14 1.3.12 IncludedOpenTicketType ................................................................................. 14 1.3.13 ExtensionData ................................................................................................. 15 2 Anbindung von Ticket Layout Barcode (UIC 918-9) ............................................... 16 2.1 Grundlagen ............................................................................................................ 16 2.2 TLV-Elemente ........................................................................................................ 17 2.2.1 0x83 (Statischer Teil des Verzeichniseintrags) ................................................ 17 2.2.2 0x84 (Dynamischer Teil des Verzeichniseintrags) ........................................... 17 2.2.3 0x85 (Statischer Teil der Berechtigungsdaten) ................................................ 18 2.2.4 0x8A (Dynamischer Teil der Berechtigungsdaten) ........................................... 18 2.2.5 0xC7 (Infotext der Berechtigung) ..................................................................... 18 2.2.6 0xF6 (Ausgabetransaktion) ............................................................................. 18 2.2.7 0xDE (PV-Container) ....................................................................................... 18 2.2.8 0xD3 (Rail combined Ticket Version 2 Barcode).............................................. 18 2.3 TLB-Datenstrukturen .............................................................................................. 19 2.3.1 U_HEAD ......................................................................................................... 19 2.3.2 U_TLAY .......................................................................................................... 19

© 2023 Fraunhofer IVI Seite 3 von 19 20.03.24 PKM-Datenanbindung von Flexible-Content-Barcodes und Ticket-Layout-Barcodes (UIC 918-9)_1.4.docx

[Seite 4]

PKM-DATENANBINDUNG UIC 918-9 - FLEXIBLE-CONTENT-BARCODES UND TICKET-LAYOUT-BARCODES

Präambel

Dieses Dokument entstand in Zusammenarbeit mit der DB (DB Vertrieb GmbH). Vielfach be- steht bei Verkehrsverbünden und Verkehrsunternehmen die Notwendigkeit, von Dritten per UIC-Barcode ausgegebene Tickets auch mit PKM-Kontrollmodulen zumindest anzeigen und eventuell auch automatisiert prüfen zu können.

Mit Einführung des Deutschlandtickets gewann diese Anforderung weiter an Bedeutung. Da- her wurde dieses Thema nunmehr auch durch die DTVG und deren Technische AG UIC auf- genommen.

Dieses Dokument beschreibt lediglich ein technisches Verfahren zur Datenabbildung. Es trifft jedoch keine darüberhinausgehende Aussagen zur generellen Eignung von UIC-Barcodes zur Abbildung von Fahrscheinen des öffentlichen Nahverkehrs.

© 2023 Fraunhofer IVI Seite 4 von 19 20.03.24 PKM-Datenanbindung von Flexible-Content-Barcodes und Ticket-Layout-Barcodes (UIC 918-9)_1.4.docx

[Seite 5]

PKM-DATENANBINDUNG UIC 918-9 - FLEXIBLE-CONTENT-BARCODES UND TICKET-LAYOUT-BARCODES

1 Anbindung von Flexible Content Barcodes (UIC 918-9)

Die Verarbeitung erfolgt prinzipiell gemäß der von der DB bereitgestellten Spezifikation „In- teroperabilität Barcode DB Online-Ticket“, die unter https://www.bahn.de/barcode herunterge- laden werden kann. Weitergehende Details sind im Folgenden aufgeführt.

1.1 Grundlagen

Um Berechtigungen mit Flexible Content Barcode (FCB) gemäß UIC 918-9 über Kontrollmo- dule nach PKM verarbeiten zu können, müssen deren FCB-Datenstrukturen geräteseitig in die TLV-Elemente nach VDV KA überführt werden. Letztere bilden dann die Datengrundlage für den Fachablauf Kontrolle, insb. für die Auswahl des PV-Kontrollmoduls und die Prüfung der zeitlichen Relevanz der Kontrolle.

Aus jedem unter UicRailTicketData.transportDocument..openTicket.includedAddOns. ange- gebenen IncludedOpenTicketType wird eine eigene temporäre Berechtigungsdatenstruktur gemäß VDV KA abgeleitet. Ungültige Berechtigungsdatenstrukturen werden im Fachablauf Kontrolle ignoriert.

Die hierarchische FCB-Datenstruktur UicRailTicketData wird dafür in eine strukturierte Wert- listen übersetzt, welche anschließend über die PKM Fachfunktion wertAlsBIN in eine Valu- eCompact kodierte Bytefolge überführt und über das TLV-Element 0xD2 bereitgestellt wird. Das Kontrollmodul kann diese Bytefolge anschließend über die PKM-Fachfunktion wertAus- BIN wieder in die strukturierte Wertliste übersetzen. Der Transport der strukturierte Wertliste als Bytrefolge in den Berechtigungsdaten macht damit die Ergänzung einer spezifischen Ge- räteschnittstelle unnötig.

Die Übersetzung der FCB-Datenstrukturen in strukturierte Wertlisten erfolgt dabei gemäß Transformation T:

T(BINARY) <=> Bits T(STRING) <=> Text T(INTEGER) <=> Zahl T(BOOLEAN) <=> Wahrheitswert Ein primitiver Wert wird in den entsprechenden PKM-Datentyp überführt. Bei Zeichenketten müssen bestimmte Zeichen ersetzt werden, damit diese fehlerfrei über wertAlsBIN in eine Bytefolge übersetzt werden können. Grund dafür ist die Beschränkung des dort verwendeten Datenformats PrintableString auf die Zeichen \u0020 bis \u00FF. Bis aus Tabulator und Zeilenumbruch werden alle Zeichen außerhalb dieses Bereichs zu einem Mittelpunkt \u00B7. Der Tabulator \u0009 wird zu einem langen Gedankenstrich \u0097 und der Zeilenumbruch \u000A wird zur Ab- satzmarke \u00B6.

T([Elem1, …, ElemN]) <=> [[T(Elem1), ..., T(ElemN)]] Eine Sequenz von Elementen wird zu einer Wertliste, welche die Wertliste der transformierten Elementen enthält. Diese Struktur erlaubt die strukturelle Erkennung bzw. Unterscheidung von Sequenzen und Datenstrukturen. In den FCB-Datenstrukturen sind Sequenzen mit den Anzahlen 0..* bzw. 1..* gekennzeichnet.

T({"Name1": Wert1, …, "NameN": WertN}) <=> [["Name1", …, "NameN"], [T(Wert1), …, T(WertN)]] Eine Datenstruktur wird zu einer Wertliste, welche die Liste von Datenfeldnamen sowie die Liste der Datenfeldwerte enthält, wobei nur die in der Datenstruktur bestückten Datenfelder betrachtet werden. Diese Struktur erleichtert die Handhabung dynamischer Datenstrukturen im Kontrollmodul, da zum Zugriff auf ein bestimmtes Datenfeld leicht die Position seines Namen ermittelt werden kann. In den FCB-Datenstrukturen sind optionale Datenfelder mit der Anzahl 0..1 gekennzeichnet.

© 2023 Fraunhofer IVI Seite 5 von 19 20.03.24 PKM-Datenanbindung von Flexible-Content-Barcodes und Ticket-Layout-Barcodes (UIC 918-9)_1.4.docx

[Seite 6]

PKM-DATENANBINDUNG UIC 918-9 - FLEXIBLE-CONTENT-BARCODES UND TICKET-LAYOUT-BARCODES

Das nachfolgende Beispiel zeigt die Bestückung einer gelesenen FCB-Datenstruktur sowie die daraus abgeleitete PKM-Datenstruktur und deren ValueCompact kodierte Bytefolge:

FCB-Datenstruktur { "issuingDetail": { "securityProviderNum": 1080, "issuerNum": 1080, "issuingYear": 2023, "issuingDay": 121, "issuingTime": 795, "issuerName": "DB AG", "specimen": false, "securePaperTicket": false, "activated": true, "currency": "EUR", "issuerPNR": "J7EJ5KNN" }, "travelerDetail": { "firstName": "Leia", "lastName": "Organa", "yearOfBirth": 1977, "dayOfBirth": 145, "ticketHolder": true }, "transportDocument": [{ "ticket":{ "openTicket": { "referenceIA5": "HWOPQV5Y", "productIdNum": 9999, "returnIncluded": false, "validRegion": [{ "zones":{ "nutsCode": "DE" } }], "validFromDay": 0, "validFromTime": 0, "validUntilDay": 31, "validUntilTime": 180, "tariffs": [{ "numberOfPassengers": 1, "passengerType": "adult", "restrictedToCountryOfResidence": false, "tariffDesc": "Deutschlandticket" }], "classCode": "second", "price": 4900, "includedAddOns": [{ "productOwnerIA5": "VDV6263", "productIdNum": 9999, "externalIssuerId": 6260, "issuerAutorizationId": 191869608, "validRegion": [{ "zones": { "carrierIA5": "VDV5000", "zoneId": [1] } }], "validFromDay": 0, "validFromTime": 0, "validUntilDay": 0, "validUntilTime": 0 }] } } }] }

PKM-Datenstruktur [ ["issuingDetail"; "travelerDetail"; "transportDocument"];

© 2023 Fraunhofer IVI Seite 6 von 19 20.03.24 PKM-Datenanbindung von Flexible-Content-Barcodes und Ticket-Layout-Barcodes (UIC 918-9)_1.4.docx

[Seite 7]

PKM-DATENANBINDUNG UIC 918-9 - FLEXIBLE-CONTENT-BARCODES UND TICKET-LAYOUT-BARCODES

[ [ ["securityProviderNum"; "issuerNum"; "issuingYear"; "issuingDay"; "issuingTime"; "issuerName"; "specimen"; "securePaperTicket"; "activated"; "currency"; "issuerPNR"]; [1080; 1080; 2023; 121; 795; "DB AG"; nein; nein; ja; "EUR"; "J7EJ5KNN"] ]; [ ["firstName"; "lastName"; "yearOfBirth"; "dayOfBirth"; "ticketHolder"]; ["Leia"; "Organa"; 1977; 145; ja] ]; [[ [ ["ticket"]; [ [ ["openTicket"]; [ [ ["referenceIA5"; "productIdNum"; "returnIncluded"; "validRegion"; "validFromDay"; "validFromTime"; "validUntilDay"; "validUntilTime"; "tariffs"; "classCode"; "price"; "includedAddOns"]; ["HWOPQV5Y"; 9999; nein; [[[["zones"]; [[["nutsCode"]; ["DE"]]]]]]; 0; 0; 31; 180; [[[ ["numberOfPassengers"; "passengerType"; "restrictedToCountryOfResidence"; "tariffDesc"]; [1; "adult"; nein; "Deutschlandticket"] ]]]; "second"; 4900; [[[ ["productOwnerIA5"; "productIdNum"; "externalIssuerId"; "issuerAutorizationId"; "validRegion"; "validFromDay"; "validFromTime"; "validUntilDay"; "validUntilTime"]; ["VDV6263"; 9999; 6260; 191869608; [[[["zones"]; [[["carrierIA5"; "zoneId"]; ["VDV5000"; [[1]]]]]]]]; 0; 0; 0; 0] ]]] ] ] ] ] ] ] ]] ] ]

ValueCompact-Bytefolge 0x0D0A7469737375696E6744657461696C0A7574726176656C657244657461696C0A787472616E73706F7274446F63 756D656E74150A7A736563757269747950726F76696465724E756D0A706973737565724E756D0A7269737375696E67 596561720A7169737375696E674461790A7269737375696E6754696D650A716973737565724E616D650A6F73706563 696D656E0A7873656375726550617065725469636B65740A706163746976617465640A6F63757272656E63790A7169 7373752D6572504E520E3D9F3D9F414EE03C820A6C44422041470202010A6A4555520A6F4A37454A354B4E4E160A70 66697273744E616D650A6F6C6173744E616D650A72796561724F6642697274680A716461794F6642697274680A7374 69636B6574486F6C6465720E0A6B4C6569610A6D4F7267616E614120F801160D0A6D7469636B6574150A716F70656E 5469636B6574150A737265666572656E63654941350A7370726F6475637449644E756D0A7572657475726E496E636C 756465640A7276616C6964526567696F6E0A7376616C696446726F6D4461790A7476616C696446726F6D54696D650A 7476616C6964556E74696C4461790A7576616C6964556E74696C54696D650A6E746172696666730A70636C61737343 6F64650A6C70726963650A75696E636C756465644164644F6E730E0A6F48574F5051563559520E7602140A6C7A6F6E 6573150A6F6E757473436F64650E0A694445180F6767863A1B140A796E756D6265724F6650617373656E676572730A 7470617373656E676572547970650A8572657374726963746564546F436F756E7472794F665265736964656E63650A 71746172696666446573630E680A6C6164756C74020A78446575747363686C616E647469636B6574180A6D7365636F 6E644C8B140A7670726F647563744F776E65724941350A7370726F6475637449644E756D0A7765787465726E616C49 737375657249640A7B6973737565724175746F72697A6174696F6E49640A7276616C6964526567696F6E0A7376616C 696446726F6D4461790A7576616C696446726F6D2D54696D650A7476616C6964556E74696C4461790A7576616C6964 556E74696C54696D650E0A6E56445636323633520E7651DB57096C9A0F140A6C7A6F6E6573150A7163617272696572 4941350A6D7A6F6E6549640E0A6E564456353030300D681818676767671818180F

© 2023 Fraunhofer IVI Seite 7 von 19 20.03.24 PKM-Datenanbindung von Flexible-Content-Barcodes und Ticket-Layout-Barcodes (UIC 918-9)_1.4.docx

[Seite 8]

PKM-DATENANBINDUNG UIC 918-9 - FLEXIBLE-CONTENT-BARCODES UND TICKET-LAYOUT-BARCODES

1.2 TLV-Elemente

1.2.1 0x83 (Statischer Teil des Verzeichniseintrags)

Der statische Teil des Verzeichniseintrags wird mit IncludedOpenTicketType bestückt. Die temporäre Berechtigungsstruktur ist ungültig, wenn mindestens eines der unten angegebenen Datenfelder nicht wie hier spezifiziert bestückt werden kann.

FeldLängeWertebereichBeschreibung
TAG10x83Konstant.
LENGTH118Konstant.
berBerechtigung_ID44ReferenceNum-Die issuerAuthorizationId aus IncludedOpenTicketType.Die issuerAuthorizationId aus IncludedOpenTicketType.
.berechtigungNummerberFour
berBerechtigung_ID2ReferenceNum-Die externalIssuerId aus IncludedOpenTicketType.
.organisationsNummerberTwo
prodProdukt_ID2ReferenceNum-Die productIdNum aus IncludedOpenTicketType.
.produktNummerberTwo
prodProdukt_ID2ReferenceNum-In IncludedOpenTicketType.productOwnerIA5 direkt hinter dem
.organisationsNummerberTwoPräfix “VDV” angegebene Nummer.
berGueltigkeitsbeginnberGueltigkeitsbeginn4DateTimeCompactDateTimeCompactGemäß FCB Spezifikation aus validFromDay und validFromTime
des IncludedOpenTicketType sowie issuingYear, issuingDay und
issuingTime der IssuingData zusammengesetzter Zeitpunkt.
berGueltigkeitsende4DateTimeCompactGemäß FCB Spezifikation aus validUntilDay und validUntilTime
des IncludedOpenTicketType sowie issuingYear, issuingDay und
issuingTime der IssuingData zusammengesetzter Zeitpunkt.

1.2.2 0x84 (Dynamischer Teil des Verzeichniseintrags)

Der dynamische Teil des Verzeichniseintrags kennzeichnet die Berechtigung als ausgegeben.

FeldLängeWertebereichBeschreibung
TAG10x84Konstant.
LENGTH12Konstant.
berStatus17Konstant.
berSynchronNummer11Konstant.

1.2.3 0x85 (Statischer Teil der Berechtigungsdaten)

Der statische Teil der Berechtigungsdaten wird als TLV-EFS mit einem PV-Container bestückt.

FeldLängeWertebereichBeschreibung
TAG10x85Konstant.
LENGTH1..3INT
PV-Containervar.TLV-Element 0xDE wie unten strukturiert

© 2023 Fraunhofer IVI Seite 8 von 19 20.03.24 PKM-Datenanbindung von Flexible-Content-Barcodes und Ticket-Layout-Barcodes (UIC 918-9)_1.4.docx

[Seite 9]

PKM-DATENANBINDUNG UIC 918-9 - FLEXIBLE-CONTENT-BARCODES UND TICKET-LAYOUT-BARCODES

1.2.4 0x8A (Dynamischer Teil der Berechtigungsdaten)

Der dynamische Teil der separaten Berechtigungsdaten ist leer.

FeldLängeWertebereichBeschreibung
TAG10x8AKonstant.
LENGTH10Konstant.

1.2.5 0xC7 (Infotext der Berechtigung)

Der Infotext der Berechtigung ist leer.

FeldLängeWertebereichBeschreibung
TAG10xC7Konstant.
LENGTH10Konstant.

1.2.6 0xF6 (Ausgabetransaktion)

Die Ausgabetransaktion ist leer.

FeldLängeWertebereichBeschreibung
TAG10xF6Konstant.
LENGTH10Konstant.

1.2.7 0xDE (PV-Container)

Der PV-Container enthält das TLV-Element zum Flexible Content Barcode.

FeldLängeWertebereichBeschreibung
TAG10xDEKonstant.
LENGTH1..3INT
FCB-Ticketdatenvar.TLV-Element 0xD2 wie unten strukturiert.

1.2.8 0xD2 (Flexible Content Barcode)

Dieses TLV-Element enthält die Daten des Flexible Content Barcode.

FeldLängeWertebereichBeschreibung
TAG10xD2Konstant.
LENGTH1..3INT
transprotDocumentIndextransprotDocumentIndex22INT2INT2Listenposition des UicRailTicketData.transportDocument der Be-
rechtigung. Die erste Listenposition ist 1.
includedAddOnsIndex2INT2Listenposition des OpenTicketData.includedAddOns der Berech-
tigung. Die erste Listenposition ist 1.
uicRailTicketSchema4PrintableStringKennung des verwendeten FCB-Datenschemas. Diese ist derzeit
"FCB3".

© 2023 Fraunhofer IVI Seite 9 von 19 20.03.24 PKM-Datenanbindung von Flexible-Content-Barcodes und Ticket-Layout-Barcodes (UIC 918-9)_1.4.docx

[Seite 10]

PKM-DATENANBINDUNG UIC 918-9 - FLEXIBLE-CONTENT-BARCODES UND TICKET-LAYOUT-BARCODES

uicRailTicketDatavar.ValueCompactIn eine strukturierte Wertliste übersetzte und als Bytefolge Valu-
eCompact kodierte UicRailTicketData.

1.3 FCB-Datenstrukturen

1.3.1 UicRailTicketData

Die mit ^ gekennzeicheten Datenstrukturen werden bei Bedarf in dieser Spezifikation ergänzt.

FeldAnzahlWertebereichBeschreibung
version1STRING (IA5String)Version der Datenstruktur, derzeit " 3.03".
issuingDetail1IssuingData
travelerDetail0..1TravelerData
transportDocument0..*DocumentData
controlDetail0..1ControlData^
extension0..*ExtensionData^

1.3.2 IssuingData

FeldAnzahlWertebereichBeschreibung
securityProviderNum0..1INTEGER (1..32000)
securityProviderIA50..1STRING (IA5String)
issuerNum0..1INTEGER (1..32000)
issuerIA50..1STRING (IA5String)
issuingYear0..1INTEGER (1..200)Jahreszahl.
issuingDay0..1INTEGER (1..366)Tag im Jahr.
issuingTime0..1INTEGER (0..1440)Minute am Tag.
issuerName0..1STRING (UTF8String)
specimen1BOOLEAN
securePaperTicket1BOOLEAN
activated1BOOLEAN
currency1STRING (IA5String, 3)
currencyFract1INTEGER (1..3)
issuerPNR0..1STRING (IA5String)
extension0..1ExtensionData
issuedOnTrainNum0..1INTEGER
issuedOnTrainIA50..1STRING (IA5String)
issuedOnLine0..1INTEGER
pointOfSale0..1GeoCoordinateType^

© 2023 Fraunhofer IVI Seite 10 von 19 20.03.24 PKM-Datenanbindung von Flexible-Content-Barcodes und Ticket-Layout-Barcodes (UIC 918-9)_1.4.docx

[Seite 11]

PKM-DATENANBINDUNG UIC 918-9 - FLEXIBLE-CONTENT-BARCODES UND TICKET-LAYOUT-BARCODES

1.3.3 TravelerData

FeldAnzahlWertebereichBeschreibung
traveler0..*TravelerType
preferedLanguage0..1STRING (IA5String, 2)
groupName0..1STRING (UTF8String, 2)

1.3.4 TravelerType

FeldAnzahlWertebereichBeschreibung
firstName0..1STRING (UTF8String)
secondName0..1STRING (UTF8String)
lastName0..1STRING (UTF8String)
idCard0..1STRING (IA5String)
passportId0..1STRING (IA5String)
title0..1STRING (IA5String, 1..3)
gender0..1STRING (GenderType)"unspecified", "female", "male", "other"
customerIdIA50..1STRING (IA5String)
customerIdNum0..1INTEGER
yearOfBirth0..1INTEGER (1901..2155)
monthOfBirth0..1INTEGER (1..12)
dayOfBirth0..1INTEGER (1..31)
ticketHolder1BOOLEAN
passengerTypepassengerType0..10..1STRING (PassengerType)STRING (PassengerType)"adult", "senior", "child", "youth", "dog", "bi-
cycle", "freeAddonPassenger", "freeAd-
donChild"
passengerWithReducedMobility0..1BOOLEAN
countryOfResidence0..1INTEGER (1..999)
countryOfPassport0..1INTEGER (1..999)
countryOfIdCard0..1INTEGER (1..999)
status0..*CustomerStatusType

1.3.5 CustomerStatusType

FeldAnzahlWertebereichBeschreibung
statusProviderNum0..1INTEGER (1..32000)
statusProviderIA50..1STRING (IA5String)
customerStatus0..1INTEGER
customerStatusDescr0..1STRING (IA5String)

1.3.6 DocumentData

Feld Anzahl Wertebereich Beschreibung

© 2023 Fraunhofer IVI Seite 11 von 19 20.03.24 PKM-Datenanbindung von Flexible-Content-Barcodes und Ticket-Layout-Barcodes (UIC 918-9)_1.4.docx

[Seite 12]

PKM-DATENANBINDUNG UIC 918-9 - FLEXIBLE-CONTENT-BARCODES UND TICKET-LAYOUT-BARCODES

token0..1TokenType
ticket1TicketDetailData

1.3.7 TokenType

FeldAnzahlWertebereichBeschreibung
tokenProviderNum0..1INTEGER
tokenProviderIA50..1STRING (IA5String)
tokenSpecification0..1STRING (IA5String)
token1BINARY (OctetString)

1.3.8 TicketDetailData

Diese Datenstruktur besitzt stets genau ein Datenfeld.

FeldAnzahlWertebereichBeschreibung
reservation0..1ReservationData^
carCarriageReservation0..1CarCarriageReservationData^
openTicket0..1OpenTicketData
pass0..1PassData^
voucher0..1VoucherData^
customerCard0..1CustomerCardData^
counterMark0..1CountermarkData^
parkingGround0..1ParkingGroundData^
fipTicket0..1FIPTicketData^
stationPassage0..1StationPassageData^
delayConfirmation0..1DelayConfirmation^
extension0..1ExtensionData

1.3.9 OpenTicketData

FeldAnzahlWertebereichBeschreibung
referenceNum0..1INTEGER
referenceIA50..1STRING (IA5String)
productOwnerNum0..1INTEGER (1..32000)
productOwnerIA50..1STRING (IA5String)
productIdNum0..1INTEGER (1..65535)
productIdIA50..1STRING (IA5String)
externalIssuerId0..1INTEGER
issuerAutorizationId0..1INTEGER
returnIncluded1BOLEAN

© 2023 Fraunhofer IVI Seite 12 von 19 20.03.24 PKM-Datenanbindung von Flexible-Content-Barcodes und Ticket-Layout-Barcodes (UIC 918-9)_1.4.docx

[Seite 13]

PKM-DATENANBINDUNG UIC 918-9 - FLEXIBLE-CONTENT-BARCODES UND TICKET-LAYOUT-BARCODES

stationCodeTable0..1STRING (CodeTableType)"stationUIC", "stationUICReservation",
"stationERA", "localCarrierStationCode-
Table", "proprietaryIssuerStationCode-
Table"
fromStationNum0..1INTEGER (1..9999999)
fromStationIA50..1STRING (IA5String)
toStationNum0..1INTEGER (1..9999999)
toStationIA50..1STRING (IA5String)
fromStationNameUTF80..1STRING (UTF8String)
toStationNameUTF80..1STRING (UTF8String)
validRegionDesc0..1STRING (UTF8String)
validRegion0..*RegionalValidityType
returnDescription0..1ReturnRouteDescriptionType^
validFromDayvalidFromDay0..10..1INTEGER (-367..700)INTEGER (-367..700)Verschiebung in Tagen gegebnüber
issuingDate
validFromTime0..1INTEGER (0..1439)
validFromUTCOffset0..1INTEGER (-60..+60)
validUntilDay0..1INTEGER (-1..370)
validUntilTime0..1INTEGER (0..1439)
validUntilUTCOffset0..1INTEGER (-60..+60)
activatedDay0..*INTEGER (0..370)
classCodeclassCode0..10..1STRING (TravelClassType)STRING (TravelClassType)"notApplicabel", "first", "second", "tourist",
"comfort", "premium", "business", "all",
"premiumFirst", "standardFirst", "premi-
umSecond", "standardSecond"
serviceLevel0..1STRING (1..2)
carrierNum0..*INTEGER (1..32000)
carrierIA50..*STRING (IA5String)
includedServiceBrands0..*INTEGER (0..32000)
excludedServiceBrands0..*INTEGER (0..32000)
tariffs0..*TariffType^
price0..1INTEGER
vatDetails0..*VatDetailType^
infoText0..1STRING (UTF8String)
includedAddOns0..*IncludedOpenTicketType
luggage0..1LuggageRestrictionType^
includedTransportTypes0..*INTEGER (0..31)
excludedTransportTypes0..*INTEGER (0..31)
extension0..1ExtensionData

1.3.10 RegionalValidityType

FeldAnzahlWertebereichBeschreibung
trainLink1TrainLinkType^
viaStations1ViaStationType^

© 2023 Fraunhofer IVI Seite 13 von 19 20.03.24 PKM-Datenanbindung von Flexible-Content-Barcodes und Ticket-Layout-Barcodes (UIC 918-9)_1.4.docx

[Seite 14]

PKM-DATENANBINDUNG UIC 918-9 - FLEXIBLE-CONTENT-BARCODES UND TICKET-LAYOUT-BARCODES

zones1ZoneType
lines1LineType^
polygone1PolygoneType^

1.3.11 ZoneType

FeldAnzahlWertebereichBeschreibung
carrierNum0..1INTEGER (1..32000)
carrierIA50..1STRING (IA5String)
stationCodeTable0..1STRING (CodeTableType)
entryStationNum0..1INTEGER (0..9999999)
entryStationIA50..1STRING (IA5String)
terminatingStationNum0..1INTEGER (0..9999999)
terminatingStationIA50..1STRING (IA5String)
city0..1INTEGER
zoneId0..*INTEGER
binaryZoneId0..1BINARY (OctetString)
nutsCode0..1STRING

1.3.12 IncludedOpenTicketType

FeldAnzahlWertebereichBeschreibung
productOwnerNum0..1INTEGER (1..32000)
productOwnerIA50..1STRING (IA5String)
productIdNum0..1INTEGER (0..65535)
productIdIA50..1STRING (IA5String)
externalIssuerId0..1INTEGER
issuerAutorizationId0..1INTEGER
stationCodeTable0..1STRING (CodeTableType)
validRegion0..*RegionalValidityType
validFromDay0..1INTEGER (-367..700)
validFromTime0..1INTEGER (0..1439)
validFromUTCOffset0..1INTEGER (-60..+60)
validUntilDay0..1INTEGER (-1..370)
validUntilTime0..1INTEGER (0..1439)
validUntilUTCOffset0..1INTEGER (-60..+60)
classCode0..1STRING (TravelClassType)
serviceLevel0..1STRING (1..2)
includedCarriersNum0..*INTEGER (1..32000)
includedCarriersIA50..*STRING (IA5String)
includedServiceBrands0..*INTEGER (0..32000)
excludedServiceBrands0..*INTEGER (0..32000)

© 2023 Fraunhofer IVI Seite 14 von 19 20.03.24 PKM-Datenanbindung von Flexible-Content-Barcodes und Ticket-Layout-Barcodes (UIC 918-9)_1.4.docx

[Seite 15]

PKM-DATENANBINDUNG UIC 918-9 - FLEXIBLE-CONTENT-BARCODES UND TICKET-LAYOUT-BARCODES

tariffs0..*TariffType^
infoText0..1STRING (UTF8String)
includedTransportTypes0..*INTEGER (0..31)
excludedTransportTypes0..*INTEGER (0..31)
extension0..1ExtensionData

1.3.13 ExtensionData

FeldAnzahlWertebereichBeschreibung
extensionId1STRING (IA5String)
extensionData1BINARY (OctetString)

© 2023 Fraunhofer IVI Seite 15 von 19 20.03.24 PKM-Datenanbindung von Flexible-Content-Barcodes und Ticket-Layout-Barcodes (UIC 918-9)_1.4.docx

[Seite 16]

PKM-DATENANBINDUNG UIC 918-9 - FLEXIBLE-CONTENT-BARCODES UND TICKET-LAYOUT-BARCODES

2 Anbindung von Ticket Layout Barcode (UIC 918-9)

Die Verarbeitung erfolgt prinzipiell gemäß der von der DB bereitgestellten Spezifikation „In- teroperabilität Barcode DB Online-Ticket“, die unter https://www.bahn.de/barcode herunterge- laden werden kann. Weitergehende Details sind im Folgenden aufgeführt.

2.1 Grundlagen

Um Berechtigungen mit Ticket Layout Barcode (TLB) gemäß UIC 918-9 (Digitally Signed Ti- cket DST gemäß UIC 918-3) über Kontrollmodule nach PKM verarbeiten zu können, müssen deren TLB-Datenstrukturen geräteseitig in die TLV-Elemente nach VDV KA überführt werden. Letztere bilden dann die Datengrundlage für den Fachablauf Kontrolle, insb. für die Auswahl des PV-Kontrollmoduls und die Prüfung der zeitlichen Relevanz der Kontrolle. Die Kontrolle über TLB-Datenstrukturen ist nur dann zulässig, wenn sie nicht über FCB-Datenstrukturen (siehe oben) erfolgen konnte.

Die hierarchische TLB -Datenstruktur U_HEAD wird dafür genauso in eine strukturierte Wert- listen übersetzt und als ValueCompact kodierte Bytefolge bereitgestellt, wie die weiter oben beschriebenen FCB-Datenstrukturen. Ungeachtet der Interpretation der TLB-Datenstrukturen durch ein PV-Kontrollmodul muss die Gerätesoftware den Inhalt des Rail combined Ticket Ver- sion 2 Barcode stets als Druckbild zur Anzeige bringen können.

Das nachfolgende Beispiel zeigt die Bestückung einer gelesenen TLB-Datenstruktur sowie die daraus abgeleitete PKM-Datenstruktur und deren ValueCompact kodierte Bytefolge:

TLB-Datenstruktur { "Header": "U_HEAD01", "RICS": "1080", "TicketId": "J7EJ5KNN", "EditionTime": "010420230800", "Flags": "0", "Lang1": "DE", "Lang2": "DE" "Layout": { "Type": "RCT2", "001801332": "Fahrkarte", "005201090": "Organa", "016201090": "Leia", "011801331": "Deutschlandticket", "015201020": "1", "015501160": "Person(en)", "030101040": "2023", "060101050": "01.05", "060701050": "00.00", "065201050": "01.06", "065801050": "03.00", "066601050": "2", "120102502": "Gültig vom 01.05.2023 bis 31.05.2023", "135201030": "EUR", "135601150": "49,00" } }

PKM-Datenstruktur [ ["Header"; "RICS"; "TicketId"; "EditionTime"; "Flags"; "Lang1"; "Lang2"; "Layout"]; ["U_HEAD01"; "1080"; "J7EJ5KNN"; "010420230800"; "0" ; "DE"; "DE"; [ ["Type"; "001801332"; "005201090"; "016201090"; "011801331"; "015201020"; "015501160";

© 2023 Fraunhofer IVI Seite 16 von 19 20.03.24 PKM-Datenanbindung von Flexible-Content-Barcodes und Ticket-Layout-Barcodes (UIC 918-9)_1.4.docx

[Seite 17]

PKM-DATENANBINDUNG UIC 918-9 - FLEXIBLE-CONTENT-BARCODES UND TICKET-LAYOUT-BARCODES

"030101040"; "060101050"; "060701050"; "065201050"; "065801050"; "066601050"; "120102502"; "135201030"; "135601150"]; ["RCT2"; "Fahrkarte"; "Organa"; "Leia"; "Deutschlandticket"; "1"; "Person(en)"; "2023"; "01.05"; "00.00"; "01.06"; "03.00"; "2"; "Gültig vom 01.05.2023 bis 31.05.2023"; "EUR"; "49;00"] ]] ]

ValueCompact-Bytefolge 0x0D0A6D4865616465720A6B524943530A6F5469636B657449640A7245646974696F6E54696D650A6C466C6167730A 6C4C616E67310A6C4C616E67320A6D4C61796F75740E0A6F555F4845414430310A6B313038300A6F4A37454A354B4E 4E0A733031303432303233303830300A68300A6944450A6944450D0A6B547970650A703030313830313333320A7030 30353230313039300A703031363230313039300A703031313830313333310A703031353230313032300A7030313535 30313136300A703033303130313034300A703036303130313035300A703036303730313035300A7030363532303130 35300A703036353830313035300A703036363630313035300A703132303130323530320A703133353230313033300A 703133353630313135300E0A6B524354320A70466168726B617274650A6D4F7267616E610A6B4C6569610A78446575 747363686C616E647469636B65740A68310A71506572736F6E28656E290A6B323032330A6C30312E30350A6C30302E 30300A6C30312E30360A6C30332E30300A68320A8B47FC6C74696720766F6D2030312E30352E323032332062697320 33312E30352E323032330A6A4555520A6C34393B303018

2.2 TLV-Elemente

2.2.1 0x83 (Statischer Teil des Verzeichniseintrags)

Der statischer Teil des Verzeichniseintrags wird mit Konstanten bestückt.

FeldLängeWertebereichBeschreibung
TAG10x83Konstant.
LENGTH118Konstant.
berBerechtigung_ID4400Konstant.Konstant.
.berechtigungNummer
berBerechtigung_ID20Konstant.
.organisationsNummer
prodProdukt_ID20Konstant.
.produktNummer
prodProdukt_ID20Konstant.
.organisationsNummer
berGueltigkeitsbeginn401.01.2000Konstant.
berGueltigkeitsende401.01.2100Konstant.

2.2.2 0x84 (Dynamischer Teil des Verzeichniseintrags)

Der dynamische Teil des Verzeichniseintrags kennzeichnet die Berechtigung als ausgegeben.

FeldLängeWertebereichBeschreibung
TAG10x84Konstant.
LENGTH12Konstant.
berStatus17Konstant.
berSynchronNummer11Konstant.

© 2023 Fraunhofer IVI Seite 17 von 19 20.03.24 PKM-Datenanbindung von Flexible-Content-Barcodes und Ticket-Layout-Barcodes (UIC 918-9)_1.4.docx

[Seite 18]

PKM-DATENANBINDUNG UIC 918-9 - FLEXIBLE-CONTENT-BARCODES UND TICKET-LAYOUT-BARCODES

2.2.3 0x85 (Statischer Teil der Berechtigungsdaten)

Der statische Teil der Berechtigungsdaten wird als TLV-EFS mit einem PV-Container bestückt.

FeldLängeWertebereichBeschreibung
TAG10x85Konstant.
LENGTH1..3INT
PV-Containervar.TLV-Element 0xDE wie unten strukturiert

2.2.4 0x8A (Dynamischer Teil der Berechtigungsdaten)

Der dynamische Teil der separaten Berechtigungsdaten ist leer.

FeldLängeWertebereichBeschreibung
TAG10x8AKonstant.
LENGTH10Konstant.

2.2.5 0xC7 (Infotext der Berechtigung)

Der Infotext der Berechtigung ist leer.

FeldLängeWertebereichBeschreibung
TAG10xC7Konstant.
LENGTH10Konstant.

2.2.6 0xF6 (Ausgabetransaktion)

Die Ausgabetransaktion ist leer.

FeldLängeWertebereichBeschreibung
TAG10xF6Konstant.
LENGTH10Konstant.

2.2.7 0xDE (PV-Container)

Der PV-Container enthält das TLV-Element zum Flexible Content Barcode.

FeldLängeWertebereichBeschreibung
TAG10xDEKonstant.
LENGTH1..3INT
TLB-Ticketdatenvar.TLV-Element 0xD3 wie unten strukturiert.

2.2.8 0xD3 (Rail combined Ticket Version 2 Barcode)

Dieses TLV-Element enthält die Daten des Rail combined Ticket Version 2 Barcode.

© 2023 Fraunhofer IVI Seite 18 von 19 20.03.24 PKM-Datenanbindung von Flexible-Content-Barcodes und Ticket-Layout-Barcodes (UIC 918-9)_1.4.docx

[Seite 19]

PKM-DATENANBINDUNG UIC 918-9 - FLEXIBLE-CONTENT-BARCODES UND TICKET-LAYOUT-BARCODES

FeldLängeWertebereichBeschreibung
TAG10xD3Konstant.
LENGTH1..3INT
uicRailTicketDatauicRailTicketDatavar.var.ValueCompactValueCompactIn eine strukturierte Wertliste übersetzte und als Bytefolge Valu-
eCompact kodierte U_HEAD.

2.3 TLB-Datenstrukturen

2.3.1 U_HEAD

FeldAnzahlWertebereichBeschreibung
Header1STRING (12)Record ID und Version konstant "U_HEAD01".
RICS1STRING (4)
TicketId1STRING (20)Eindeutige Kennung der Fahrtberechtigung.
EditionTime1STRING (12)Erzeugungszeit im Format DDMMYYYYhhmm.
FlagsFlags11STRING (1)STRING (1)Ziffer als Bitfeld mit Bit 0 für internationales Ticket, Bit 1 für Erzeugt bei ex-
ternem Verkauf und Bit 2 für Testticket.
Lang11STRING (2)Ausgabesprache.
Lang21STRING (2)
Layout1U_TLAYBestückung des Drucklayouts und seiner Druckfelder.

2.3.2 U_TLAY

FeldAnzahlWertebereichBeschreibung
Type1STRING (4)Konstant, bspw. "RCT2", "PLAI" oder "EOSU".
LLCCHHWWFLLCCHHWWF0..*0..*STRINGSTRINGDer Wert des Datenfelds enthält den field text. Die Platzhalter im Datenfeld-
namen: LL = field line, CC = field column, HH = field height und WW = field
width mit je zwei Ziffern sowie F = field formatting mit einer Ziffer.

© 2023 Fraunhofer IVI Seite 19 von 19 20.03.24 PKM-Datenanbindung von Flexible-Content-Barcodes und Ticket-Layout-Barcodes (UIC 918-9)_1.4.docx

Alle Unterlagen dieser Ausschreibung