Download OpenAPI specification:Download
This is the JSON API of transPORT rail (tPr), the traffic management system for rail transport at the port of Hamburg.
The message types described below are part of the communication processes between an RTC, Quay and the tPr system.
JSON API means that this is a REST API using standard HTTP verbs, with the content of requests and responses in JSON format.
Please note that this description is a work in progress and we are continuously trying to improve it.
For every message a Response message has to be sent back, either as a confirmation or as a rejection of the incoming message. For example, when a TransportOrder is received by the tPr system, syntax and consistency check is done. If formal errors are found, a negative response message specifying the errors will be sent as a reply. In this case the tPr has not saved the data of the message and it can be sent again with corrected data using the same order reference and version. If the message has no formal errors, the order will be created. The tPr then sends a positive response message to the sender.
Response Messages by tPr are currently only supported for messages from the RU (former TD04), for messages from the location in the port (former TD01), no response messages are sent.
Bearer
The API can be accessed using JSON Web Tokens (JWT), an open standard specified in RFC 7519. In order to make properly authorized requests follow these steps:
Then you can use the token in your requests using Bearer Authentication.
LoadingDone object instance
required | object Metainfo für die Übertragung. |
required | object Angaben zur Ladestelle an der verladen wurde |
taNumber required | string = 5 characters Transportauftrags-Nummer |
evuOrderReference | string or null [ 0 .. 35 ] characters Auftragsreferenz des Auftraggebers |
typeOfTransport required | string = 1 characters C|K Art des Transports Gültige Werte: K für Wagenladungsverkehr (konventioneller Verkehr) |
euroPalletCount | integer <int32> [ 0 .. 999 ] ^[0-9]*$ Anzahl Europalleten im Tausch - Nur bei typeOfTransport K |
boxPalletCount | integer <int32> [ 0 .. 999 ] ^[0-9]*$ Anzahl Boxpalleten im Tausch - Nur bei typeOfTransport K |
flaws | string or null [ 0 .. 200 ] characters Mängelbericht - Nur bei typeOfTransport K |
content | string or null [ 0 .. 200 ] characters Inhalt der Ladung - Nur bei typeOfTransport K |
required | Array of objects (TransportUnit) Liste der Ladeeinheiten, für die VI gesetzt werden soll - bei typeOfTransport = K - Wagen, bei typeOfTransport = C - Container |
{- "metainfo": {
- "exchangeNumber": "06637133-2230-472e-80fa-ba1c9661d0a7",
- "version": 1.1,
- "communication": {
- "sender": "LDST",
- "provider": "PROV"
}, - "CreationTime": "2020-02-18T14:36:42.410Z"
}, - "location": {
- "areaCode": "HHO",
- "quayCode": "ABCD",
- "locationCode": "ABCD"
}, - "taNumber": "12345",
- "evuOrderReference": "01010101ABCD",
- "typeOfTransport": "C",
- "euroPalletCount": 100,
- "boxPalletCount": 100,
- "flaws": "100",
- "content": "Kohle",
- "transportUnits": [
- {
- "sequenceNumber": 1,
- "processingMode": "A",
- "LoadingDateTime": "string",
- "loadingPoint": "ABCD",
- "track": "012",
- "ExposureTime": "2020-05-27T12:14:15.562Z",
- "wagonNumber": "335412345678",
- "trackSequenceNumber": 0,
- "preLoadingParkingArea": "",
- "reordingDirection": "I",
- "wagonCategory": "Sgnss",
- "wagonWeightEmpty": 26600,
- "loadLimitC": 62500,
- "loadLimitCs": 18500,
- "axles": 4,
- "wagonCriteria": "99",
- "loadingWeight": 1000,
- "weightTara": 9999,
- "containerHeight": "40",
- "containerLength": "40",
- "containerType": "DC",
- "loadingUnitId": "XXXX1234567",
- "maxTemperature": 60.9,
- "minTemperature": -60.3,
- "remarks": "Nichts besonderes",
- "shutter": [
- {
- "sealSequenceNumber": 1,
- "number": "12345678",
- "typeCode": 9,
- "locationCode": 9
}
]
}
]
}
Responce object instance
object or null Metainfo für die Übertragung. | |
Array of objects or null (Reference) non-empty Referenzen | |
messageType | string or null Art der quittierten Nachricht |
generalResponseCode required | string = 1 characters Beschreibt die Verarbeitung der der Originalnachricht "O" = Ok - Nachricht verarbeitet ohne weitere Kommentare |
ResponseDateTime required | string non-empty ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$... Zeitpunkt der Quittierung ISO 8601 Format: YYYY-MM-DDThh:mm:ss.SSSZ |
Array of objects or null (ResponseTexts) Text zur Antwort |
{- "metainfo": {
- "exchangeNumber": "06637133-2230-472e-80fa-ba1c9661d0a7",
- "version": 1.1,
- "communication": {
- "sender": "LDST",
- "provider": "PROV"
}, - "CreationTime": "2020-02-18T14:36:42.410Z"
}, - "references": [
- {
- "referenceType": "ORIGMSG",
- "referenceValue": "06637133-2230-472e-80fa-ba1c9661d0a7"
}
], - "messageType": "TransportOrder",
- "generalResponseCode": "O",
- "ResponseDateTime": "2020-05-27T12:14:15.562Z",
- "texts": [
- {
- "freeText": "Eine Bearbeitung des Transportauftrags ist nicht mehr zulässig"
}
]
}
TransportOrder object instance
required | object Metainfo für die Übertragung. |
operatorCode | string or null [ 0 .. 5 ] characters Bei der HPA registrierter Teilnehmer-Code des Operateurs |
processingInstructions | string or null [ 0 .. 1 ] characters Verarbeitungskennzeichen |
typeOfTransport required | string = 1 characters C|K Art des Transports Gültige Werte: |
direction required | string = 1 characters I|O Transportrichtung Gültige Werte: |
transportOrderVersion required | integer <int32> [ 1 .. 99 ] ^[0-9]*$ Version des Transportauftrags |
required | Array of objects (References) Array von Referenzen Externe Referenzen zur Zuordnung des Transportauftrags. Es muss mindestens ein Eintrag mit Typ "CTOREF" vorhanden sein. |
required | object Verladedetails |
required | object Entladedetails |
object or null Details zum grenzüberschreitendem Verkehr | |
wagonDisposalCategory | string or null [ 0 .. 1 ] characters Verfügungsart lt. Schlüsseltabelle |
clearanceStation | string or null [ 0 .. 32 ] characters Bahnhof an dem die Verzollung vorgenommen werden soll |
railwayBillType | string or null [ 0 .. 4 ] characters Frachtbrief-Art (CIM, EVO etc.) |
klvIndicator | integer <int32> ^[0-9]*$ Kennzeichen für KLV-Verkehr Import/Export per Zug(7) oder LKW(8) |
overloadLicenceNumber | string or null [ 0 .. 6 ] characters Genehmigungsnummer für Schwerwagen bzw. Lademaß-Überschreitung |
overloadLicenceYear | integer <int32> ^[0-9]*$ Jahr der Genehmigung für Schwerwagen / Lademaß-Überschreitung |
required | object Versender, Pflichtangabe - es muss mindestens das Feld customerName geliefert werden |
required | object Empfänger, Pflichtangabe - es muss mindestens das Feld customerName geliefert werden |
object or null Verkehrsführer | |
object or null Kunde des EVU | |
referenceIdSec | string or null [ 0 .. 35 ] characters Sekundärreferenznummer |
invoiceRecipient | string or null [ 0 .. 10 ] characters Rechnungsempfänger (Langtext) |
required | Array of objects (ToTransportUnit) |
{- "metainfo": {
- "exchangeNumber": "06637133-2230-472e-80fa-ba1c9661d0a7",
- "version": 1.1,
- "communication": {
- "sender": "LDST",
- "provider": "PROV"
}, - "CreationTime": "2020-02-18T14:36:42.410Z"
}, - "operatorCode": "ABCD",
- "processingInstructions": "1",
- "typeOfTransport": "C",
- "direction": "O",
- "transportOrderVersion": 1,
- "references": [
- {
- "reference": {
- "referenceType": "ORIGMSG",
- "referenceValue": "06637133-2230-472e-80fa-ba1c9661d0a7"
}
}
], - "dispatchDetail": {
- "DateTime": "2020-05-27",
- "railstation": {
- "countryCode": "80",
- "code": "015891"
}, - "location": {
- "areaCode": "HHO",
- "quayCode": "ABCD",
- "locationCode": "ABCD"
}
}, - "dischargeDetail": {
- "DateTime": "string",
- "railstation": {
- "countryCode": "80",
- "code": "015891"
}, - "location": {
- "areaCode": "HHO",
- "quayCode": "ABCD",
- "locationCode": "ABCD"
}
}, - "transitDetail": {
- "routeCode": "9910",
- "routeClass": "",
- "maximumSpeed": 999
}, - "wagonDisposalCategory": "s",
- "clearanceStation": "",
- "railwayBillType": "",
- "klvIndicator": 0,
- "overloadLicenceNumber": "",
- "overloadLicenceYear": 2025,
- "consignor": {
- "customerNumber": "",
- "customerName": "Kundenname",
- "referenceNumber": ""
}, - "consignee": {
- "customerNumber": "",
- "customerName": "Kundenname",
- "referenceNumber": ""
}, - "shippingDirector": {
- "customerNumber": "",
- "customerName": "Kundenname",
- "referenceNumber": ""
}, - "customer": {
- "customerNumber": "",
- "customerName": "Kundenname",
- "referenceNumber": ""
}, - "referenceIdSec": "",
- "invoiceRecipient": "",
- "transportUnits": [
- {
- "position": 1,
- "wagonNumber": "335412345678",
- "content": "Beschreibungstext",
- "commodity": 999999,
- "transportCompanyZabOrderReference": "",
- "emptyFull": "F",
- "weight": 99999,
- "atlasAtbNr": "",
- "customsRegistrationNumber": "",
- "customsRegistrationNumberItem": "",
- "originCountryCode": "DE",
- "destinationCountryCode": "IT",
- "train": {
- "trainNumber": "50581",
- "ScheduledDateTime": "2024-11-07"
}, - "customerInstructionForStation": "",
- "customerInstructionDestination": "",
- "secondaryPlacard": "",
- "oceanCarrierData": {
- "code": "MSK",
- "name": "MAERSK",
- "bookingNumber": ""
}, - "oceanVoyage": {
- "code": "DEHAM",
- "name": "Hamburg",
- "shipName": "VesselOne"
}, - "equipmentDetail": {
- "typeCode": "",
- "name": "",
- "quantity": 999,
- "weight": 99999
}, - "poolPalletDetail": {
- "quantityEuroPallet": 999,
- "quantityBox": 999
}, - "shutterData": {
- "sealSequenceNumber": 1,
- "number": "12345678",
- "typeCode": 9,
- "locationCode": 9
}, - "dangerousGoodsData": {
- "gegisReferenceNumber": "",
- "dangerousGoods": [
- {
- "sequenceNumber": 1,
- "groupIdentification": {
- "identificationMark": "",
- "groupType": "1",
- "groupDescription": ""
}, - "legalNorm": "RID",
- "regulationsAmendment": "",
- "transportCertificate": {
- "certificateType": "CT",
- "certificateNumber": "12345A",
- "additionalRemarks": ""
}, - "class": "9",
- "unNumber": "3000",
- "packingGroup": "",
- "properShippingName": "",
- "technicalNameSupplement": "",
- "goodsLabel": "",
- "shuntingLabel": "",
- "mpLabel": "",
- "classificationCode": "",
- "hazardId": "",
- "emSNumber": {
- "fireSchedule": "",
- "spillageSchedule": ""
}, - "limitedQuantityIndicator": "Y",
- "exceptedQuantityIndicator": "N",
- "wasteIndicator": "N",
- "salvageIndicator": "",
- "emptyUncleanedIndicator": "N",
- "packages": {
- "totalNumber": 1,
- "packageCode": "KI",
- "description": "Kisten",
- "instructionCode": ""
}, - "dangerWeight": {
- "grossValue": 1,
- "netValue": 1,
- "netExplosiveValue": 1
}, - "flashPointValue": 100,
- "radioactive": {
- "category": "",
- "radionuclides": "",
- "maxActivityValue": {
- "unit": "BQ",
- "value": ""
}, - "transportIndex": -999,
- "criticalSafetyIndex": -9999,
- "packageType": "",
- "exclusiveUseIndicator": "N"
}, - "SafetyDate": "string",
- "waterPollutionClass": 3,
- "marpolCategory": "",
- "comments": "",
- "lastTransported": "",
- "endorsement": ""
}
]
}, - "transportContainer": {
- "containerNumber": "ABCD1234567",
- "length": "40",
- "height": "40",
- "type": "DC",
- "tareWeight": 99999,
- "customsLoadData": {
- "position": 1,
- "originCountryCode": "80",
- "packageCode": "PK",
- "numberOfPackages": 1,
- "rawMassWeight": 99999,
- "tradeDescription": "LAMPS",
- "atxNumber": "",
- "atbNumber": "ATB123456123456123456",
- "atbNumberPosition": "1",
- "customsTariffNumber": "",
- "previousDocumentNumber": "",
- "previousDocumentType": "",
- "mrnNumber": "MRN24DE123456123456X1"
}, - "temperatureDetail": {
- "refrigeration": "N",
- "maxValue": 100,
- "minValue": -100
}, - "loadingRequestCode": "1121",
- "releaseNumber": "",
- "previousRegistrationNumber": ""
}
}
]
}
required | object Metainfo für die Übertragung. |
operatorCode | string or null [ 0 .. 5 ] characters Bei der HPA registrierter Teilnehmer-Code des Operateurs |
processingInstructions | string or null [ 0 .. 1 ] characters Verarbeitungskennzeichen |
direction required | string = 1 characters I|O Transportrichtung Gültige Werte: |
typeOfSequence required | string = 1 characters LD|PL|TF|DP Im Bahnversand wird "LD" für die Verlade-Daten gesendet. In Reihungen wird "PL" für Soll-Reihungen, "TF" für Zugbildungs-Ende, "DP" für Abfahrt benutzt. |
sequenceVersion required | integer <int32> [ 1 .. 99 ] ^[0-9]*$ Version der Reihung (1-99) |
object or null Zuginformationen | |
trainCompositionCheck required | string = 1 characters Y|N Kennzeichen Reihungskontrolle Y|N |
departureDate | string or null^\d{4}-\d{2}-\d{2}$ Abfahrtsdatum ISO 8601 Format: YYYY-MM-DD |
departureTime | string or null^(?:[01]\d|2[0-3]):[0-5]\d$ Abfahrtszeit ISO 8601 Format: hh:mm (UTC) |
arrivalDate | string or null^\d{4}-\d{2}-\d{2}$ Ankunftsdatum ISO 8601 Format: YYYY-MM-DD |
arrivalTime | string or null^(?:[01]\d|2[0-3]):[0-5]\d$ Ankunftszeit ISO 8601 Format: hh:mm (UTC) |
required | object Bahnhofsangabe des aktuellen Standorts |
required | object Bahnhofsangabe des Abfahrtsortes |
required | object Bahnhofsangabe des Ankunftsortes |
trainCategory | string or null Zuggattungsnummer |
grossLoadWeight | integer <int32> [ 0 .. 999999 ] ^[0-9]*$ Gesamtgewicht der Ladung in kg inklusive Lademittel |
grossBrakingPower | integer <int32> [ 0 .. 999999 ] ^[0-9]*$ Wagenzugbremsgewicht in kg |
grossTrailingLoad | integer <int32> [ 0 .. 999999 ] ^[0-9]*$ Wagenzuggewicht in kg |
axlesEmpty | integer <int32> ^[0-9]*$ Anzahl Achsen Leerwagen |
axlesLoaded | integer <int32> ^[0-9]*$ Anzahl Achsen beladene Wagen |
required | Array of objects (Vehicle) Fahrzeugliste |
{- "metainfo": {
- "exchangeNumber": "06637133-2230-472e-80fa-ba1c9661d0a7",
- "version": 1.1,
- "communication": {
- "sender": "LDST",
- "provider": "PROV"
}, - "CreationTime": "2020-02-18T14:36:42.410Z"
}, - "operatorCode": "ABCD",
- "processingInstructions": "1",
- "direction": "O",
- "typeOfSequence": "LD",
- "sequenceVersion": 1,
- "train": {
- "trainNumber": "50581",
- "ScheduledDateTime": "2024-11-07"
}, - "trainCompositionCheck": "N",
- "departureDate": "2020-05-27",
- "departureTime": "16:30",
- "arrivalDate": "2020-05-27",
- "arrivalTime": "16:30",
- "currentStation": {
- "countryCode": "80",
- "code": "345678"
}, - "departureStation": {
- "countryCode": "80",
- "code": "345678"
}, - "arrivalStation": {
- "countryCode": "80",
- "code": "345678"
}, - "trainCategory": "string",
- "grossLoadWeight": 99999,
- "grossBrakingPower": 99999,
- "grossTrailingLoad": 99999,
- "axlesEmpty": 300,
- "axlesLoaded": 300,
- "vehicles": [
- {
- "position": 1,
- "vehicleType": "W",
- "wagonNumber": "335412345678",
- "emptyFull": "F",
- "transportCompanyZabOrderReference": "",
- "brakingOperability": 1,
- "brakingState": 1,
- "typeOfTransport": "C",
- "destinationStation": {
- "railStation": {
- "countryCode": "80",
- "code": "345678"
}
}, - "throughCoach": true,
- "wagonWeight": 99999,
- "brakingPower": 99999,
- "loadWeight": 99999,
- "dangerousGoodsData": {
- "gegisReferenceNumber": "",
- "dangerousGoods": [
- {
- "sequenceNumber": 1,
- "groupIdentification": {
- "identificationMark": "",
- "groupType": "1",
- "groupDescription": ""
}, - "legalNorm": "RID",
- "regulationsAmendment": "",
- "transportCertificate": {
- "certificateType": "CT",
- "certificateNumber": "12345A",
- "additionalRemarks": ""
}, - "class": "9",
- "unNumber": "3000",
- "packingGroup": "",
- "properShippingName": "",
- "technicalNameSupplement": "",
- "goodsLabel": "",
- "shuntingLabel": "",
- "mpLabel": "",
- "classificationCode": "",
- "hazardId": "",
- "emSNumber": {
- "fireSchedule": "",
- "spillageSchedule": ""
}, - "limitedQuantityIndicator": "Y",
- "exceptedQuantityIndicator": "N",
- "wasteIndicator": "N",
- "salvageIndicator": "",
- "emptyUncleanedIndicator": "N",
- "packages": {
- "totalNumber": 1,
- "packageCode": "KI",
- "description": "Kisten",
- "instructionCode": ""
}, - "dangerWeight": {
- "grossValue": 1,
- "netValue": 1,
- "netExplosiveValue": 1
}, - "flashPointValue": 100,
- "radioactive": {
- "category": "",
- "radionuclides": "",
- "maxActivityValue": {
- "unit": "BQ",
- "value": ""
}, - "transportIndex": -999,
- "criticalSafetyIndex": -9999,
- "packageType": "",
- "exclusiveUseIndicator": "N"
}, - "SafetyDate": "string",
- "waterPollutionClass": 3,
- "marpolCategory": "",
- "comments": "",
- "lastTransported": "",
- "endorsement": ""
}
]
}, - "damageInformation": {
- "wagonOperabilityCode": 0,
- "nextRevisionDate": "2024-05-31",
- "maxSpeedDamageCaused": 60,
- "operationRestrictions": [
- 0
], - "damages": [
- {
- "damageCode": 0,
- "damageCause": 0
}
]
}, - "specialHandlings": [
- "string"
], - "operatingProcedures": [
- "string"
], - "damagedVehicle": "Y",
- "transportUnitData": [
- {
- "orderReference": {
- "referenceType": "ORIGMSG",
- "referenceValue": "06637133-2230-472e-80fa-ba1c9661d0a7"
}
}
], - "wagonDestination": "string",
- "shunter": "string",
- "wagonMasterData": {
- "wagonCategory": "string",
- "modelId": "str",
- "typeOfInventory": "str",
- "cluster": "string",
- "axles": 6,
- "wheelBase": 26.7,
- "bogiePitch": 0,
- "minCurveRadius": 0,
- "minVerticalRadius": 0,
- "unladenWeight": 28000,
- "lengthOverBuffers": 26700,
- "loadLimitPerAxle": 999999,
- "maxSpeedEmpty": 120,
- "maxSpeedLoaded": 120,
- "carryingCapacity": 107000,
- "maxLengthLoadMeter": 200.1,
- "maxLengthLoadFeet": 80,
- "heightOfLoadingUpLevel": 0,
- "loadingCapacity": 0.1,
- "brakeEquipment": 0,
- "stars": 2,
- "wagonOwnerCode": "strin",
- "wagonOwnerCountry": "st",
- "wagonOwner": "string",
- "authorizerToDispose": "string",
- "disposable": "s",
- "loadPlanner": "string",
- "loadLimitPattern": {
- "speedLimit": 120,
- "railwayClass": "A",
- "validityArea": "string",
- "loadLimit": 68000
}
}, - "BoilerValidTo": "2020-05-27",
- "HuValidTo": "2023-01-27",
- "remarks": "string"
}
]
}