#AutoTranslate
Brief Description
A query for public transport prices via NOVA is made available via this interface.
This is an initial test system and the data comes from the integration and not from production.
Functional Description
The OJP fare service allows trips to be calculated. The service can be used to execute queries in OJP format for NOVA. The responses also include discount journeys. The query must be made in the future. The journeys must be entered as TripResult.
It is only possible to query prices within Switzerland. Price queries with Half Fare Travelcards (‘Half Fare Travelcards’) can be made.
The price information is not binding. The actual price will only be determined when the order is placed.
The number of requests is also limited.
Technical Description
At the moment, only the integration system is available.
The most important data and interfaces:
URL: https://api.opentransportdata.swiss/ojpfare/
Access is only possible with the help of the API key. See: API Manager
For first attempts, here is an OpenAPI: API Explorer OJPFare
The service also allows OJPTripRequests and then generate the TripResults required for the query.
Journey planner (OJP) and price information data: https://data.opentransportdata.swiss/group/journeyplanner
Price information:
Example: OJPTripRequest within Bern
<OJP xmlns="http://www.siri.org.uk/siri" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ojp="http://www.vdv.de/ojp" xsi:schemaLocation="http://www.siri.org.uk/siri ../ojp-xsd-v1.0/OJP.xsd" version="1.0">
<OJPRequest>
<ServiceRequest>
<RequestorRef>OJP SDK v1.0</RequestorRef>
<RequestTimestamp>2023-09-04T11:00:53.285Z</RequestTimestamp>
<ojp:OJPTripRequest>
<RequestTimestamp>2023-09-04T11:00:53.285Z</RequestTimestamp>
<ojp:Origin>
<ojp:PlaceRef>
<StopPointRef>8576990</StopPointRef>
<ojp:LocationName>
<ojp:Text>Bern, Guisanplatz Expo (Bern)</ojp:Text>
</ojp:LocationName>
</ojp:PlaceRef>
</ojp:Origin>
<ojp:Destination>
<ojp:PlaceRef>
<StopPointRef>8571359</StopPointRef>
<ojp:LocationName>
<ojp:Text>Bern, Länggasse (Bern)</ojp:Text>
</ojp:LocationName>
</ojp:PlaceRef>
</ojp:Destination>
<ojp:Params>
<ojp:NumberOfResultsAfter>5</ojp:NumberOfResultsAfter>
<ojp:IncludeTrackSections>true</ojp:IncludeTrackSections>
<ojp:IncludeLegProjection>true</ojp:IncludeLegProjection>
<ojp:IncludeTurnDescription>true</ojp:IncludeTurnDescription>
<ojp:IncludeIntermediateStops>true</ojp:IncludeIntermediateStops>
</ojp:Params>
</ojp:OJPTripRequest>
</ServiceRequest>
</OJPRequest>
</OJP>
A TripResult in the answer:
<ojp:TripResult>
<ojp:ResultId>ID-52F8DE3F-2A4D-45F7-A432-017FD41A62D6</ojp:ResultId>
<ojp:Trip>
<ojp:TripId>ID-52F8DE3F-2A4D-45F7-A432-017FD41A62D6</ojp:TripId>
<ojp:Duration>PT22M</ojp:Duration>
<ojp:StartTime>2023-10-02T12:22:30Z</ojp:StartTime>
<ojp:EndTime>2023-10-02T12:44:00Z</ojp:EndTime>
<ojp:Transfers>2</ojp:Transfers>
<ojp:Distance>5738</ojp:Distance>
<ojp:TripLeg>
<ojp:LegId>1</ojp:LegId>
<ojp:TimedLeg>
<ojp:LegBoard>
<StopPointRef>8576990</StopPointRef>
<ojp:StopPointName>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Bern, Guisanplatz Expo</ojp:Text>
</ojp:StopPointName>
<ojp:PlannedQuay>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">E</ojp:Text>
</ojp:PlannedQuay>
<ojp:ServiceDeparture>
<ojp:TimetabledTime>2023-10-02T12:22:30Z</ojp:TimetabledTime>
</ojp:ServiceDeparture>
<ojp:Order>1</ojp:Order>
</ojp:LegBoard>
<ojp:LegIntermediates>
<StopPointRef>8576991</StopPointRef>
<ojp:StopPointName>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Bern, Kasernenstrasse</ojp:Text>
</ojp:StopPointName>
<ojp:ServiceArrival>
<ojp:TimetabledTime>2023-10-02T12:23:30Z</ojp:TimetabledTime>
</ojp:ServiceArrival>
<ojp:ServiceDeparture>
<ojp:TimetabledTime>2023-10-02T12:23:30Z</ojp:TimetabledTime>
</ojp:ServiceDeparture>
<ojp:Order>2</ojp:Order>
</ojp:LegIntermediates>
<ojp:LegAlight>
<StopPointRef>8587485</StopPointRef>
<ojp:StopPointName>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Bern, Rosengarten</ojp:Text>
</ojp:StopPointName>
<ojp:ServiceArrival>
<ojp:TimetabledTime>2023-10-02T12:25:00Z</ojp:TimetabledTime>
</ojp:ServiceArrival>
<ojp:Order>3</ojp:Order>
</ojp:LegAlight>
<ojp:Service>
<ojp:OperatingDayRef>2023-10-02</ojp:OperatingDayRef>
<ojp:JourneyRef>ojp:92040::H:j23:445:42369</ojp:JourneyRef>
<LineRef>ojp:92040:</LineRef>
<DirectionRef>H</DirectionRef>
<ojp:Mode>
<ojp:PtMode>bus</ojp:PtMode>
<BusSubmode>localBusService</BusSubmode>
<ojp:Name>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Bus</ojp:Text>
</ojp:Name>
<ojp:ShortName>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">B</ojp:Text>
</ojp:ShortName>
</ojp:Mode>
<ojp:PublishedLineName>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">40</ojp:Text>
</ojp:PublishedLineName>
<ojp:OperatorRef>ojp:850</ojp:OperatorRef>
<ojp:DestinationStopPointRef>8577024</ojp:DestinationStopPointRef>
<ojp:DestinationText>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Allmendingen b. B., K�serei</ojp:Text>
</ojp:DestinationText>
</ojp:Service>
</ojp:TimedLeg>
</ojp:TripLeg>
<ojp:TripLeg>
<ojp:LegId>2</ojp:LegId>
<ojp:TransferLeg>
<ojp:TransferMode>walk</ojp:TransferMode>
<ojp:LegStart>
<StopPointRef>8587485</StopPointRef>
<ojp:LocationName>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Bern, Rosengarten</ojp:Text>
</ojp:LocationName>
</ojp:LegStart>
<ojp:LegEnd>
<StopPointRef>8587485</StopPointRef>
<ojp:LocationName>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Bern, Rosengarten</ojp:Text>
</ojp:LocationName>
</ojp:LegEnd>
<ojp:TimeWindowStart>2023-10-02T12:25:00Z</ojp:TimeWindowStart>
<ojp:TimeWindowEnd>2023-10-02T12:27:36Z</ojp:TimeWindowEnd>
<ojp:Duration>PT3M</ojp:Duration>
<ojp:WalkDuration>PT1M</ojp:WalkDuration>
<ojp:BufferTime>PT1M</ojp:BufferTime>
</ojp:TransferLeg>
</ojp:TripLeg>
<ojp:TripLeg>
<ojp:LegId>3</ojp:LegId>
<ojp:TimedLeg>
<ojp:LegBoard>
<StopPointRef>8587485</StopPointRef>
<ojp:StopPointName>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Bern, Rosengarten</ojp:Text>
</ojp:StopPointName>
<ojp:ServiceDeparture>
<ojp:TimetabledTime>2023-10-02T12:27:36Z</ojp:TimetabledTime>
<ojp:EstimatedTime>2023-10-02T12:27:36Z</ojp:EstimatedTime>
</ojp:ServiceDeparture>
<ojp:Order>1</ojp:Order>
</ojp:LegBoard>
<ojp:LegIntermediates>
<StopPointRef>8587484</StopPointRef>
<ojp:StopPointName>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Bern, Sch�nburg</ojp:Text>
</ojp:StopPointName>
<ojp:ServiceArrival>
<ojp:TimetabledTime>2023-10-02T12:28:42Z</ojp:TimetabledTime>
<ojp:EstimatedTime>2023-10-02T12:28:42Z</ojp:EstimatedTime>
</ojp:ServiceArrival>
<ojp:ServiceDeparture>
<ojp:TimetabledTime>2023-10-02T12:28:42Z</ojp:TimetabledTime>
<ojp:EstimatedTime>2023-10-02T12:28:42Z</ojp:EstimatedTime>
</ojp:ServiceDeparture>
<ojp:Order>2</ojp:Order>
</ojp:LegIntermediates>
<ojp:LegIntermediates>
<StopPointRef>8587483</StopPointRef>
<ojp:StopPointName>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Bern, Salem</ojp:Text>
</ojp:StopPointName>
<ojp:ServiceArrival>
<ojp:TimetabledTime>2023-10-02T12:29:30Z</ojp:TimetabledTime>
<ojp:EstimatedTime>2023-10-02T12:29:30Z</ojp:EstimatedTime>
</ojp:ServiceArrival>
<ojp:ServiceDeparture>
<ojp:TimetabledTime>2023-10-02T12:29:30Z</ojp:TimetabledTime>
<ojp:EstimatedTime>2023-10-02T12:29:30Z</ojp:EstimatedTime>
</ojp:ServiceDeparture>
<ojp:Order>3</ojp:Order>
</ojp:LegIntermediates>
<ojp:LegIntermediates>
<StopPointRef>8590021</StopPointRef>
<ojp:StopPointName>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Bern, Viktoriaplatz</ojp:Text>
</ojp:StopPointName>
<ojp:PlannedQuay>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">C</ojp:Text>
</ojp:PlannedQuay>
<ojp:ServiceArrival>
<ojp:TimetabledTime>2023-10-02T12:30:30Z</ojp:TimetabledTime>
<ojp:EstimatedTime>2023-10-02T12:30:30Z</ojp:EstimatedTime>
</ojp:ServiceArrival>
<ojp:ServiceDeparture>
<ojp:TimetabledTime>2023-10-02T12:30:30Z</ojp:TimetabledTime>
<ojp:EstimatedTime>2023-10-02T12:30:30Z</ojp:EstimatedTime>
</ojp:ServiceDeparture>
<ojp:Order>4</ojp:Order>
</ojp:LegIntermediates>
<ojp:LegIntermediates>
<StopPointRef>8507110</StopPointRef>
<ojp:StopPointName>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Bern, Zytglogge</ojp:Text>
</ojp:StopPointName>
<ojp:PlannedQuay>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">A</ojp:Text>
</ojp:PlannedQuay>
<ojp:ServiceArrival>
<ojp:TimetabledTime>2023-10-02T12:32:54Z</ojp:TimetabledTime>
<ojp:EstimatedTime>2023-10-02T12:32:54Z</ojp:EstimatedTime>
</ojp:ServiceArrival>
<ojp:ServiceDeparture>
<ojp:TimetabledTime>2023-10-02T12:32:54Z</ojp:TimetabledTime>
<ojp:EstimatedTime>2023-10-02T12:32:54Z</ojp:EstimatedTime>
</ojp:ServiceDeparture>
<ojp:Order>5</ojp:Order>
</ojp:LegIntermediates>
<ojp:LegIntermediates>
<StopPointRef>8590048</StopPointRef>
<ojp:StopPointName>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Bern, Bundesplatz</ojp:Text>
</ojp:StopPointName>
<ojp:ServiceArrival>
<ojp:TimetabledTime>2023-10-02T12:34:24Z</ojp:TimetabledTime>
<ojp:EstimatedTime>2023-10-02T12:34:24Z</ojp:EstimatedTime>
</ojp:ServiceArrival>
<ojp:ServiceDeparture>
<ojp:TimetabledTime>2023-10-02T12:34:24Z</ojp:TimetabledTime>
<ojp:EstimatedTime>2023-10-02T12:34:24Z</ojp:EstimatedTime>
</ojp:ServiceDeparture>
<ojp:Order>6</ojp:Order>
</ojp:LegIntermediates>
<ojp:LegAlight>
<StopPointRef>8576646</StopPointRef>
<ojp:StopPointName>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Bern, Bahnhof</ojp:Text>
</ojp:StopPointName>
<ojp:PlannedQuay>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">I</ojp:Text>
</ojp:PlannedQuay>
<ojp:ServiceArrival>
<ojp:TimetabledTime>2023-10-02T12:35:30Z</ojp:TimetabledTime>
<ojp:EstimatedTime>2023-10-02T12:35:36Z</ojp:EstimatedTime>
</ojp:ServiceArrival>
<ojp:Order>7</ojp:Order>
</ojp:LegAlight>
<ojp:Service>
<ojp:OperatingDayRef>2023-10-02</ojp:OperatingDayRef>
<ojp:JourneyRef>ojp:92010::R:j23:3656:17878</ojp:JourneyRef>
<LineRef>ojp:92010:</LineRef>
<DirectionRef>R</DirectionRef>
<ojp:Mode>
<ojp:PtMode>bus</ojp:PtMode>
<BusSubmode>localBusService</BusSubmode>
<ojp:Name>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Bus</ojp:Text>
</ojp:Name>
<ojp:ShortName>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">B</ojp:Text>
</ojp:ShortName>
</ojp:Mode>
<ojp:PublishedLineName>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">10</ojp:Text>
</ojp:PublishedLineName>
<ojp:OperatorRef>ojp:827</ojp:OperatorRef>
<ojp:Attribute>
<ojp:Text>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">VELOS: Platzzahl eingeschr�nkt</ojp:Text>
</ojp:Text>
<ojp:Code>A__VB</ojp:Code>
</ojp:Attribute>
<ojp:Attribute>
<ojp:Text>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Niederflureinstieg</ojp:Text>
</ojp:Text>
<ojp:Code>A__NF</ojp:Code>
<AccessFacility>palletAccess_lowFloor</AccessFacility>
</ojp:Attribute>
<ojp:DestinationStopPointRef>8595932</ojp:DestinationStopPointRef>
<ojp:DestinationText>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Schliern, Bus-Endstation</ojp:Text>
</ojp:DestinationText>
</ojp:Service>
</ojp:TimedLeg>
</ojp:TripLeg>
<ojp:TripLeg>
<ojp:LegId>4</ojp:LegId>
<ojp:TransferLeg>
<ojp:TransferMode>walk</ojp:TransferMode>
<ojp:LegStart>
<StopPointRef>8576646</StopPointRef>
<ojp:LocationName>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Bern, Bahnhof</ojp:Text>
</ojp:LocationName>
</ojp:LegStart>
<ojp:LegEnd>
<StopPointRef>8576646</StopPointRef>
<ojp:LocationName>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Bern, Bahnhof</ojp:Text>
</ojp:LocationName>
</ojp:LegEnd>
<ojp:TimeWindowStart>2023-10-02T12:35:36Z</ojp:TimeWindowStart>
<ojp:TimeWindowEnd>2023-10-02T12:37:48Z</ojp:TimeWindowEnd>
<ojp:Duration>PT3M</ojp:Duration>
<ojp:WalkDuration>PT2M</ojp:WalkDuration>
<ojp:BufferTime>PT0M</ojp:BufferTime>
</ojp:TransferLeg>
</ojp:TripLeg>
<ojp:TripLeg>
<ojp:LegId>5</ojp:LegId>
<ojp:TimedLeg>
<ojp:LegBoard>
<StopPointRef>8576646</StopPointRef>
<ojp:StopPointName>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Bern, Bahnhof</ojp:Text>
</ojp:StopPointName>
<ojp:PlannedQuay>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">F</ojp:Text>
</ojp:PlannedQuay>
<ojp:ServiceDeparture>
<ojp:TimetabledTime>2023-10-02T12:37:48Z</ojp:TimetabledTime>
</ojp:ServiceDeparture>
<ojp:Order>1</ojp:Order>
</ojp:LegBoard>
<ojp:LegIntermediates>
<StopPointRef>8581351</StopPointRef>
<ojp:StopPointName>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Bern, Schanzenstrasse</ojp:Text>
</ojp:StopPointName>
<ojp:ServiceArrival>
<ojp:TimetabledTime>2023-10-02T12:39:42Z</ojp:TimetabledTime>
</ojp:ServiceArrival>
<ojp:ServiceDeparture>
<ojp:TimetabledTime>2023-10-02T12:39:42Z</ojp:TimetabledTime>
</ojp:ServiceDeparture>
<ojp:Order>2</ojp:Order>
</ojp:LegIntermediates>
<ojp:LegIntermediates>
<StopPointRef>8571357</StopPointRef>
<ojp:StopPointName>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Bern, Universit�t</ojp:Text>
</ojp:StopPointName>
<ojp:ServiceArrival>
<ojp:TimetabledTime>2023-10-02T12:41:18Z</ojp:TimetabledTime>
</ojp:ServiceArrival>
<ojp:ServiceDeparture>
<ojp:TimetabledTime>2023-10-02T12:41:18Z</ojp:TimetabledTime>
</ojp:ServiceDeparture>
<ojp:Order>3</ojp:Order>
</ojp:LegIntermediates>
<ojp:LegIntermediates>
<StopPointRef>8571358</StopPointRef>
<ojp:StopPointName>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Bern, Mittelstrasse</ojp:Text>
</ojp:StopPointName>
<ojp:ServiceArrival>
<ojp:TimetabledTime>2023-10-02T12:42:42Z</ojp:TimetabledTime>
</ojp:ServiceArrival>
<ojp:ServiceDeparture>
<ojp:TimetabledTime>2023-10-02T12:42:42Z</ojp:TimetabledTime>
</ojp:ServiceDeparture>
<ojp:Order>4</ojp:Order>
</ojp:LegIntermediates>
<ojp:LegIntermediates>
<StopPointRef>8590038</StopPointRef>
<ojp:StopPointName>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Bern, Unitobler</ojp:Text>
</ojp:StopPointName>
<ojp:ServiceArrival>
<ojp:TimetabledTime>2023-10-02T12:43:48Z</ojp:TimetabledTime>
</ojp:ServiceArrival>
<ojp:ServiceDeparture>
<ojp:TimetabledTime>2023-10-02T12:43:48Z</ojp:TimetabledTime>
</ojp:ServiceDeparture>
<ojp:Order>5</ojp:Order>
</ojp:LegIntermediates>
<ojp:LegAlight>
<StopPointRef>8571359</StopPointRef>
<ojp:StopPointName>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Bern, L�nggasse</ojp:Text>
</ojp:StopPointName>
<ojp:ServiceArrival>
<ojp:TimetabledTime>2023-10-02T12:44:42Z</ojp:TimetabledTime>
</ojp:ServiceArrival>
<ojp:Order>6</ojp:Order>
</ojp:LegAlight>
<ojp:Service>
<ojp:OperatingDayRef>2023-10-02</ojp:OperatingDayRef>
<ojp:JourneyRef>ojp:92020::R:j23:2215:31326</ojp:JourneyRef>
<LineRef>ojp:92020:</LineRef>
<DirectionRef>R</DirectionRef>
<ojp:Mode>
<ojp:PtMode>bus</ojp:PtMode>
<BusSubmode>localBusService</BusSubmode>
<ojp:Name>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Bus</ojp:Text>
</ojp:Name>
<ojp:ShortName>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">B</ojp:Text>
</ojp:ShortName>
</ojp:Mode>
<ojp:PublishedLineName>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">20</ojp:Text>
</ojp:PublishedLineName>
<ojp:OperatorRef>ojp:827</ojp:OperatorRef>
<ojp:Attribute>
<ojp:Text>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">VELOS: Platzzahl eingeschr�nkt</ojp:Text>
</ojp:Text>
<ojp:Code>A__VB</ojp:Code>
</ojp:Attribute>
<ojp:Attribute>
<ojp:Text>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Niederflureinstieg</ojp:Text>
</ojp:Text>
<ojp:Code>A__NF</ojp:Code>
<AccessFacility>palletAccess_lowFloor</AccessFacility>
</ojp:Attribute>
<ojp:DestinationStopPointRef>8571359</ojp:DestinationStopPointRef>
<ojp:DestinationText>
<ojp:Text xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="de">Bern, L�nggasse</ojp:Text>
</ojp:DestinationText>
</ojp:Service>
</ojp:TimedLeg>
</ojp:TripLeg>
</ojp:Trip>
</ojp:TripResult>
The effective OJPFareRequest then looks like this (we only show the position of the trip and do not fill it in):
<?xml version="1.0" encoding="UTF-8"?>
<OJP xmlns="http://www.siri.org.uk/siri" xmlns:ojp="http://www.vdv.de/ojp" version="1.0">
<OJPRequest>
<ServiceRequest>
<RequestTimestamp>2023-10-02T11:56:11.714265</RequestTimestamp>
<RequestorRef>OJP2NOVA</RequestorRef>
<ojp:OJPFareRequest>
<RequestTimestamp>2023-10-02T11:56:11.714265</RequestTimestamp>
<ojp:TripFareRequest>
<ojp:Trip>
<!-- add the Trip here -->
</ojp:Trip>
<!-- multiple trips possible -->
</ojp:TripFareRequest>
<ojp:Params>
<ojp:FareAuthorityFilter>ch:1:NOVA</ojp:FareAuthorityFilter>
<ojp:PassengerCategory>Adult</ojp:PassengerCategory>
<ojp:TravelClass>second</ojp:TravelClass>
<ojp:Traveller>
<ojp:Age>25</ojp:Age>
<ojp:PassengerCategory>Adult</ojp:PassengerCategory>
<ojp:EntitlementProducts>
<ojp:EntitlementProduct>
<ojp:FareAuthorityRef>ch:1:NOVA</ojp:FareAuthorityRef>
<ojp:EntitlementProductRef>HTA</ojp:EntitlementProductRef>
<ojp:EntitlementProductName>Halbtax-Abonnement</ojp:EntitlementProductName>
</ojp:EntitlementProduct>
</ojp:EntitlementProducts>
</ojp:Traveller>
</ojp:Params>
</ojp:OJPFareRequest>
</ServiceRequest>
</OJPRequest>
</OJP>
Parameters
Trips are in OJPTripRequest for this reason, the main focus will be on the parameters
| Parameters | Explanation | Example |
|---|---|---|
oFareAuthorityfilter |
Currently set to NOVA. Ignored in the service. | ojp:FareAuthorityFilter>ch:1:NOVA</ojp:FareAuthorityFilter> |
PassengerCategory |
Choice list. Currently being ignored. | <ojp:PassengerCategory>Adult</ojp:PassengerCategory> |
Traveller |
More information about the passenger. Ignored at the moment. | |
Age |
The age of the passenger. Ignored at the moment. | |
EntitlementProduct |
At the moment, only the EntitlementProductRef Half Fare Travelcard (half-price subscription) is supported.
If this is set, Half Fare Travelcard prices will be shown, otherwise the full price. |
The result is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<ojp:OJPFareDelivery xmlns="http://www.siri.org.uk/siri" xmlns:ojp="http://www.vdv.de/ojp">
<ResponseTimestamp>2023-10-02T11:56:13.536149</ResponseTimestamp>
<Status>true</Status>
<ojp:FareResult>
<ojp:ResultId>ID-20932163-8A85-4648-80A2-661D2D388361</ojp:ResultId>
<ojp:TripFareResult>
<ojp:FromTripLegIdRef>2</ojp:FromTripLegIdRef>
<ojp:ToTripLegIdRef>2</ojp:ToTripLegIdRef>
<ojp:FareProduct>
<ojp:FareProductId>10972</ojp:FareProductId>
<ojp:FareProductName>10972</ojp:FareProductName>
<ojp:FareAuthorityRef>NOVA</ojp:FareAuthorityRef>
<ojp:FareAuthorityText>NOVA</ojp:FareAuthorityText>
<ojp:Price>2.80</ojp:Price>
<ojp:NetPrice>2.58</ojp:NetPrice>
<ojp:Currency>CHF</ojp:Currency>
<ojp:VatRate>7.7</ojp:VatRate>
<ojp:TravelClass>second</ojp:TravelClass>
</ojp:FareProduct>
</ojp:TripFareResult>
<ojp:TripFareResult>
<ojp:FromTripLegIdRef>2</ojp:FromTripLegIdRef>
<ojp:ToTripLegIdRef>2</ojp:ToTripLegIdRef>
<ojp:FareProduct>
<ojp:FareProductId>10972</ojp:FareProductId>
<ojp:FareProductName>10972</ojp:FareProductName>
<ojp:FareAuthorityRef>NOVA</ojp:FareAuthorityRef>
<ojp:FareAuthorityText>NOVA</ojp:FareAuthorityText>
<ojp:Price>4.80</ojp:Price>
<ojp:NetPrice>4.43</ojp:NetPrice>
<ojp:Currency>CHF</ojp:Currency>
<ojp:VatRate>7.7</ojp:VatRate>
<ojp:TravelClass>first</ojp:TravelClass>
</ojp:FareProduct>
</ojp:TripFareResult>
</ojp:FareResult>
</ojp:OJPFareDelivery>
Key points
- The price calculation only works for the future.
- Only public transport legs can be evaluated.
- Price information also includes supersaver tickets, where they exist. Standard fare tickets have the code 125. For example, BLS uses the product code 84004 for Bern–Zweisimmen.
- If on demand, sharing, etc. is listed on the trip, the behaviour is not yet fully defined. The information is provided that not all legs could be priced.
- The half-fare calculation was previously fixed. This is different now. A corresponding traveller with the EntitalementProduct is now required.
Known issues
- Data is currently obtained from the NOVA integration environment.
- The error messages are not optimal.
- The Half Fare Travelcard price (Half Fare Travelcard as EntitlementProduct) is currently fixed re-encoded in the service. We are considering removing this. In this case, however, the EntitlementProduct must be inserted. The age is preserved. But the price will also be set to ‘person’ in all other cases.
- In certain cases, passengers need to switch to a Day Pass, for example, because a first-class ticket is not available at all. In that case, it may be that a discounted Day Pass is available under code 2361. This must be filtered.
- No prices are given for stops abroad (e.g. not even for Léman Express)
Further information
- Data set: Beta: Service for requesting price information via OJP Fare – dataset – opentransportdata.swiss – CKAN data catalog
- All information about the service: openTdataCH/ojp-nova: Interface between OJP and NOVA to return an OJPFareDelivery (github.com)
- The calculation is integrated under Test in OJP demo – BETA (odpch.ch)
