De 9292 Reisadvies API biedt de mogelijkheid om gebruik te maken van de planner engine van 9292 binnen een eigen website of app voor het geven van reisadviezen van adres naar adres van al het openbaar vervoer in heel Nederland inclusief eigen vervoer, deelvoertuigen en flex OV.
Deze handleiding beschrijft hoe u de interface van de 9292 Reisadvies API kunt gebruiken om op uw website of andere toepassing een routeplanner aan uw klanten aan te bieden. Dit is een aanvulling op de online swaggerdocumentatie van ons product.
Als basis voor de 9292 Reisadvies API wordt XML (tot en met v3.0.4) of JSON gebruikt. Kennis van WebAPI als ontwikkelaar en JSON is dan ook noodzakelijk om deze uitvoering te kunnen installeren.
Gebruik van de 9292 Reisadvies API is alleen toegestaan met uitdrukkelijke toestemming van 9292.
Het is verplicht het 9292 Logo te tonen. Het gaat hier om alleen het logo en geen tekst.
9292 geeft akkoord op plaatsing voor live gang binnen de productieomgeving. Dit om de uniformiteit te waarborgen.
Via de volgende URL is het 9292 Logo op te halen:
Software versie |
Documentatie versie |
Opmerking |
11-05-2020 |
20-01-2020 |
|
24-09-2020 |
01-09-2020 |
|
08-12-2020 |
15-10-2020 |
|
22-03-2021 |
23-03-2021 |
|
26-04-2021 |
26-04-2021 |
|
28-06-2021 |
|
|
29-06-2021 |
|
|
05-07-2021 v2.8.5 |
|
|
04-08-2021 v2.9.0 |
|
|
08-09-2021 v2.9.1 |
|
|
11-10-2021 v3.0.1 |
Nieuwe versie (v3) is toegevoegd. Deze bevat de volgende wijzigingen ten opzichte van de vorige versie:
|
|
22-11-2021 v3.0.2 |
|
|
07-12-2021 v3.0.3 |
|
|
19-01-2022 v3.0.4 |
|
|
04-01-2023 v4.0.0 |
Nieuwe versie (v4) is toegevoegd. Deze bevat de volgende wijzigingen ten opzichte van de vorige versie:
|
De 9292 Reisadvies API is beveiligd en kan alleen aangeroepen worden als men in het bezit is van een door 9292 verstrekt ‘Token’ of wel APIKey. Dit ‘Token’ bestaat uit een serie tekens en letters die per Licentieovereenkomst wordt afgegeven en die de klant het recht geeft om requests aan de server van 9292 te doen.
Dit ‘Token’ is even geheim als uw gebruikersnaam en wachtwoord. Deel het met niemand.
9292 kan bij misbruik het ‘Token’ deactiveren.
Het toegangstoken ontvangt u per e-mail van de 9292 Servicedesk. Dit is uw identificatiecode. Met dit token kunt u gebruik maken van de aansluittestomgeving van de 9292 Reisadvies API. Wanneer u de implementatie heeft voltooid en 9292 uw dienst heeft getest, kunt u overgaan naar de productieomgeving. Hiervoor ontvangt u van de 9292 Servicedesk een nieuw token.
De aansluiting op de aansluittestomgeving blijft na overgang op de productieomgeving nog twee weken bestaan.
Het token moet in de header bij iedere aanroep worden meegestuurd. Hierbij een voorbeeld van de request header:
Header Key |
Value |
Authorization |
Token <MY_TOKEN> |
Accept |
Application/JSON |
Content-Type |
charset=utf-8 |
Let op:
De 9292 Reisadvies API ondersteunt alleen HTTPS verzoeken.
Er worden tokens meegestuurd die een betreffende afnemer kan identificeren. Daardoor kan er bij het aftappen van een HTTP stroom misbruik van het token worden gemaakt. Dit kan resulteren in een hogere telling in de statistieken en een hogere factuur.
De 9292 Reisadvies API maakt gebruik van gegevens die verouderen of wijzigen (o.a. dienstregelingen). Daarom kunnen alleen datums gebruikt worden die binnen de geldigheidsduur vallen. Zodra er een datum wordt gebruikt die buiten de geldigheidsdatum valt zal de 9292 Reisadvies API altijd een foutmelding (400 BadRequest) teruggeven.
De geldigheidsduur kan d.m.v. de Dataset endpoint worden opgevraagd.
Het opvragen van de Dataset wordt niet meegeteld als request voor de facturatie.
De status van de 9292 Reisadvies API kan worden opgevraagd door middel van de ‘status’ endpoint. De response geeft een overzicht van de totale status van de API. Afhankelijk van de impact geeft de endpoint een ‘Unhealthy’ of ‘Degraded’ status terug indien er onderliggende issues zijn of ‘Healthy’ indien de API naar behoren werkt.
Deze verzoeken worden niet meegeteld als request voor de facturatie.
Om een locatie op te vragen dient u binnen de 9292 Reisadvies API de Locations endpoint aan te roepen. Met een locatie request kunt u informatie opvragen over een station, plaats, straat, huisnummer, halte of POI (Point Of Interest). Een locatie request zal standaard 5 locaties teruggeven, maar er is een extra instelmogelijkheid om tussen 1 en 10 locaties terug te krijgen. De stations zullen eerst teruggegeven worden, daarna de bus-/tram-/metrohaltes, daarna de straatnamen, postcodes etc.
Het is mogelijk alleen een specifiek type locatie op te vragen of alle typen locaties die aan de zoekterm voldoen.
Dit Locations endpoint is geen autosuggest. Met behulp van de Locations endpoint kunt u wel zelf een autosuggest voor uw applicatie(s) ontwikkelen.
Het opvragen van een locatie wordt niet meegeteld als request voor de facturatie.
Het opvragen van locaties in de buurt kan uitgevoerd worden op basis van breedte- en lengtegraad coördinaten of een geldige “locationId” met de “NearbyLocations” endpoint. De 9292 Reisadvies API geeft de 5 meest dichtbij zijnde locaties terug binnen een straal van 500 meter. Deze locaties kunnen een station, halte of een POI zijn. Er is een extra instelmogelijkheid om tussen 1 en 10 locaties terug te krijgen.
Het is tevens mogelijk om op type locatie te filteren.
Het opvragen van een locatie wordt niet meegeteld als request voor de facturatie.
Om een reisadvies op te vragen roept u het ‘Journeys’ endpoint aan. Het opvragen van een OV-reisadvies geeft standaard 9 reizen terug. Dit zijn reizen rond het opgevraagde tijdstip. Dit aantal is niet instelbaar.
De FromId, ToId en ViaId moeten corresponderen met de ‘Id’ van een locatie van het ‘Locations’ endpoint.
Attributen zijn gegevens die door bijvoorbeeld NS worden meegestuurd met betrekking tot een reis(deel). Deze worden niet bij alle reizen getoond, alleen waar deze informatie is toegevoegd aan het OV-reisadvies zal het element Attributes worden getoond.
Onderstaande tabel bevat een aantal voorbeelden van mogelijke attributen.
Attribuut Id |
Attribuut waarde |
Omschrijving/Opmerking |
TWEE |
alleen 2e klas |
Aanduiding dat alleen 2de klas beschikbaar is voor een reis. Dit komt maar op een aantal trajecten voor namelijk:
|
WCA |
Rolstoeltoegankelijk |
komt voor als de modaliteit toegankelijk is |
SPEC |
Speciaal ticket vereist |
Komt voornamelijk voor bij (Intercity Direct & Internationale treinen) |
FINI |
fiets meenemen niet mogelijk |
Komt voornamelijk voor bij (Intercity Direct & Internationale treinen) |
RESM |
Reserveren mogelijk |
Komt voornamelijk voor bij (Intercity Direct & Internationale treinen) |
TSR |
Toeslag Schiphol - Rotterdam |
Komt voornamelijk voor bij (Intercity Direct & Internationale treinen) |
Attributen in het OV-reisadvies zijn in het “Attributes” component te vinden. Attributes bestaat uit nul of meerdere LegAttributes. Hierbij een voorbeeld van een Attributes component:
Voorbeeld |
"attributes": [{ |
Elke OV-reis heeft een “JourneyId” waarmee het advies is te identificeren.
Hierbij een voorbeeld van een reisadvies met een JourneyId:
Voorbeeld |
{ |
Een reisadvies kan 3 typen van suggesties bevatten voor alternatieve reisopties:
Onderstaand een voorbeeld van een reisadvies dat alle 3 de typen suggesties bevat:
Voorbeeld |
{ |
Er kunnen verstoringsberichten aan een of meerdere reizen binnen het reisadvies worden gekoppeld. Deze berichten worden door vervoerders (bijvoorbeeld NS) opgestuurd voor een bepaalde plaats, station, halte lijnnummer en/of alle ritten van een vervoerder.
Een verstoringsbericht, indien aanwezig, wordt in het Disruption element van een Leg getoond.
De 9292 Reisadvies API onderkent vier soorten verstoringsberichten:
In alle responses zitten tarieven, deze tarieven zijn te vinden onder FareInfo. Deze FareInfo bevat tarieven die voor de gehele reis (Journey) gelden. Het is ook mogelijk om de tarieven per Leg te tonen.
FareInfo bestaat uit een “Complete” en een “FareLegs” component. Indien er geen tarieven beschikbaar zijn, zoals een OV-reisadvies met een veerboot, dan komt onder element “Complete” false terug. Dan is het niet mogelijk om een totaal OV-reisadvies prijs af te geven. Voor de delen waar het wel mogelijk is, wordt dit in FareLegs per reisdeel getoond.
Hieronder een voorbeeld response van een treintarief van NS met tariefinformatie:
Voorbeeld |
"fareInfo": { |
Het aantal tariefeenheden van de trein staan onder “PriceUnits” van de “FareLegs”.
Hierbij een voorbeeld van een busreis bij het OV-reisadvies van Leeuwarden naar Harlingen met het volgende prijsadvies:
Voorbeeld |
"fareInfo": { |
“FareLegs” binnen 1 Journey kunnen opgeteld worden bij de volgende combinaties:
Er kan ook gebruik worden gemaakt van onderstaande elementen, deze tellen alle losse elementen bij elkaar op en tonen het volledige en gereduceerde tarief:
Let op:
We willen u erop wijzen dat het presenteren van het totaal van de reductiebedragen in het geval van diverse modaliteiten uitleg aan de reiziger behoeft. Het recht op reductie in de trein kent andere voorwaarden dan het recht op korting in bus, tram en metro.
Het kan voorkomen dat er geen tarief beschikbaar is omdat er geen OV-chipkaart informatie aanwezig is (bijv. informatie over een veerboot). Dan komt dit als volgt in de <Fares> terug:
Voorbeeld |
"fares": [{ |
Voor het bepalen of op een FareLeg de OV-chipkaart geldig is wordt door de tariefberekening een veld NoChipFare teruggeven aan de 9292 planner. De 9292 planner geeft deze met dezelfde naam weer door aan de client. Dit is een boolean-veld. De waarde is true als er geen OV-chipkaart gebruikt kan worden en false als deze wel gebruikt kan worden.
Voorbeeld |
"fareInfo": { |
De volgende parameter is beschikbaar om het tarief in een Leg van het OV-reisadvies te tonen:
Parameter |
Beschrijving (voorbeeld) |
Fare | FareInfoAndLegs |
Tariefinformatie in de Leg bestaat uit de volgende componenten:
Component |
Omschrijving/Opmerking |
BaseFareEurocents | Het basistarief (opstaptarief) |
FareEurocents | Tarief voor de Leg zonder basistarief |
Class | Klasse |
Reduced | Indicatie of het om een gereduceerd tarief gaat |
MultipleLegFare | Indicatie of dit tarief geldt voor een totaaltraject bestaande uit meerdere opeenvolgende Legs |
MultipleLegNotice | Uitleg over de prijs per totaaltraject |
Hierbij een tarief voorbeeld dat u in een Leg kunt treffen:
Voorbeeld |
"legFares": [{ |
Door de PlannedJourneys endpoint te gebruiken geeft u de reiziger de mogelijkheid om een reeds geplande reis wederom op te vragen. Er wordt hiermee een geactualiseerd OV-reisadvies opgevraagd met alleen de betreffende reis. De betreffende reis is daarbij voorzien van de meest recente reisinformatie (bijv. rituitval, realtime data, bezettingsinformatie, verstoringsberichten, etc.).
Dit endpoint heeft 1 parameter:
Parameter |
Discription (example) |
JourneyId |
De unieke id voor een reis |
Let op:
- De JourneyId kan gebruikt worden om de originele reis op te vragen zo lang de reis door de 9292 planner kan worden aangemaakt. Dit betekent dat JourneyId’s ook kunnen verlopen.
- JourneyId’s aangemaakt in v3 zijn ook opvraagbaar in de nieuwe versie
Request:
Door gebruik te maken van het invoerveld ‘FirstMile’ (voortransport) of ‘LastMile’ (natransport) kan worden aangegeven dat voor het eerste en/of laatste deel van de reis met de (eigen of huur-) fiets, elektrische fiets of scooter moet worden gepland naar een geschikt trein-, bus-, metro- of tram-fietsoverstappunt.
Voor reizen met een eigen voertuig zijn de modaliteiten ‘PrivateBicycle’ (fiets), ‘PrivateElectricBicycle’ (elektrische fiets) en ‘PrivateMoped’ (scooter) beschikbaar en voor huurvoertuigen ‘PublicBicycle’, ‘PublicElectricBicycle’ en ‘PublicMoped’.
Indien er wordt gepland met een huurvoertuig, dat is het bij de FirstMile verplicht om aan te geven waar deze zal worden opgehaald/om welk voertuig het precies gaat. Het benodigde Id hiervoor komt uit de 9292 Locaties API. Op basis hiervan wordt een reisadvies gemaakt met extra transitie-legs naar en van de gewenste huurlocatie/-voertuig.
Onderstaand een overzicht van de parameters benodigd om fietsen of scooters in een reisadvies weer te geven:
Parameter |
Omschrijving (voorbeeld) |
FirstMile | Het type transport te gebruiken in de first mile (bijv. “PublicBicycle”) |
LastMile | Het type transport te gebruiken in de last mile (bijv. “PublicMoped”) |
FirstMileOptions.PickUpLocation | De gewenste ophaallocatie om te gebruiken |
Let op:
• Er wordt bij het plannen geen rekening gehouden met het actuele aantal beschikbare deelvoertuigen.
• Niet alle vertrek- of aankomstlocaties beschikken over het gewenste huurvoertuig type.
• Om de reiziger een betere ervaring te geven is er de optie om beschikbare voertuigtypes op te vragen voor een specifieke locatie in de 9292 Locaties API. Door deze informatie te combineren met een reisverzoek kunt u ervoor zorgen dat de reiziger een geschikt reisadvies krijgt.
Request:
Optioneel kan ook worden aangegeven dat het voertuig moet worden ingeleverd. De optionele parameter is als volgt:
Parameter |
Omschrijving (voorbeeld) |
FirstMileOptions.IncludeVehicleDropOff | Geeft aan of het reisadvies een inleverlocatie moet bijvoegen voor het betreffende huurvoertuig |
De 9292 Reisadvies API zoekt in dit geval een geschikte inleverlocatie voor het huurvoertuig. Wanneer een inleverlocatie wordt aangevraagd in de first mile van een reis, dan zal een geschikte inleverlocatie binnen 500m van een OV-overstappunt worden geselecteerd. Indien een inleverlocatie voor de last mile wordt aangevraagd, dan zal deze binnen 500m van de eindbestemming liggen.
Ook hier worden extra transitie-legs opgenomen naar en van de geselecteerde inleverlocatie.
Let op:
- Sommige huurvoertuigen moeten worden ingeleverd op een specifieke locatie. Indien de huurder dit niet doet zal de huurperiode niet worden afgesloten en zal dit tot hogere kosten leiden dan verwacht.
- Indien er geen verplichte inleverlocatie beschikbaar is binnen 500m van een overstappunt of de eindbestemming zal de Reisadvies API een foutmelding geven dat er geen geschikte inleverlocatie kan worden gevonden.
- Maak gebruik van de 9292 Locaties API om te bepalen of het geselecteerde huurvoertuig moet worden ingeleverd op een specifieke locatie en onder welke omstandigheden (terugbrengen naar zelfde locatie, inleveren binnen zelfde regio, etc.).
De standaard business regels voor plannen met de fiets zijn:
De standaard business regels voor plannen met de scooter zijn:
Voor Last Mile huurvoertuigen geldt dat een geschikte huur- en/of inleverlocatie pas door de reiziger kan worden geselecteerd als de planner het reisadvies heeft gegeven (per reis zou het OV-overstappunt kunnen verschillen). Volg hiervoor het volgende proces:
Het "LastMilePlannedJourneys” endpoint gebruikt de volgende parameters:
Parameter |
Omschrijving (voorbeeld) |
JourneyId | De unieke identificatie van de betreffende reis |
PickUpLocation | De gewenste huurlocatie |
IncludeVehicleDropOff | Geeft aan of het reisadvies een inleverlocatie moet bevatten voor het gehuurde voertuig |
Het volgende is een voorbeeld verzoek, gevolgd door een gedeeltelijke response:
Request:
Voorbeeld |
{ |
In de 9292 Reisadvies API ondersteunen we drie partijen’ Flex OV; de ‘HalteTaxi’, ‘WaterTaxi’ en ‘HubTaxi’. De eerste twee partijen betreffen Halte-Halte vervoer en worden hierdoor automatisch meegegeven in het reisadvies wanneer van toepassing. Halte-Halte Flex OV kan worden uitgesloten van het reisadvies door de “ExcludedTravelModes” parameter te vullen met “OnDemand”
De “HubTaxi” is een on-demand modaliteit die van halte naar adres rijdt (of vice versa). Deze modaliteit moet expliciet worden opgevraagd door “PublicTaxi” aan te geven in de “FirstMile” en/of “LastMile” parameters. Voor alle soorten Flex OV dient de reiziger een handeling te verrichten voordat ze gebruik kunnen maken van dit vervoer.
Let op:
- De “FirstMileOptions” en ”LastMileOptions” parameters zijn niet van toepassing bij het opvragen van een “PublicTaxi”.
- De 9292 Locaties API heeft een “OperatorDetails” endpoint dat kan worden gebruikt om het relevante HubTaxi telefoonnummer op te halen (HubTaxi wordt door verschillende vervoerders uitgevoerd met eigen telefoonnummers).
Met de ‘minder lopen’ optie geeft u de reiziger een passend OV-reisadvies waarin de hoeveelheid lopen in de first mile en/of de last mile wordt gelimiteerd.
De volgende parameter is beschikbaar om de hoeveelheid lopen in het OV-reisadvies te minimalizeren:
Parameter |
Beschrijving (voorbeeld) |
FirstMileOptions.LessWalking |
true |
LastMileOptions.LessWalking | true |
Door gebruik te maken van de ‘persoonlijke instellingen’ opties geeft u de reiziger een passend OV-reisadvies waarin hij/zij de snelheid en maximale tijdsduur kan instellen van de first mile en last mile.
De volgende parameters zijn beschikbaar voor de persoonlijke instellingen in het OV-reisadvies:
Parameter |
Beschrijving (voorbeeld) |
FirstMileOptionsUserSpeed |
Reissnelheid in km/uur voor de first mile. Indien weggelaten wordt de standaard snelheid aangenomen van de gekozen first mile modaliteit |
FirstMileOptionsUserMaxTravelTime |
Maximale reistijd in minuten voor de first mile. |
LastMileOptionsUserSpeed |
Reissnelheid in km/uur voor de last mile. Indien weggelaten wordt de standaard snelheid aangenomen van de gekozen last mile modaliteit |
LastMileOptionsUserMaxTravelTime |
Maximale reistijd in minuten voor de last mile. |
De business rules met betrekking tot reissnelheden instellingen zijn als volgt:
De business rules met betrekking tot de reistijd instellingen zijn als volgt:
Indien er geen geldige reismogelijkheden zijn gebaseerd op de opgegeven maximale reistijden zal de 9292 Reisadvies API zoeken naar alternatieven die niet voldoen aan de ingestelde persoonlijke instellingen.
Het is mogelijk om de persoonlijke instelling strikct te hanteren door de volgende parameter te gebruiken:
Parameter |
Omschrijving (voorbeeld) |
StrictTravel |
true |
Door gebruik te maken van de optie ‘Bezettingsinformatie’ geeft u de reiziger een passend OV-reisadvies met daarin de drukte per gereisde traject (Leg) en u kunt een totaal drukte voorspelling meegeven over de gehele reis.
De volgende parameters zijn beschikbaar om bezettingsinformatie in het OV-reisadvies te krijgen:
Parameter |
Beschrijving (voorbeeld) |
ShowOccupancy |
true |
De bezetting wordt aangegeven op een schaal van 0 tot 5 conform de BISON specificatie “Concept koppelvlak bezetting”. De bezetting kan worden gevisualiseerd middels de bijbehorende kleur of het bijbehorende icoontje.
Zie onderstaande tabel.
Dit is een concept voorbeeld van hoe 9292 zelf de gegevens vertaalt in haar apps en website.
Drukte volgens BISON |
Enumeratie |
Kleur |
Icoontje 9292 |
Opmerkingen |
0 |
No information |
|
Geen informatie ontvangen of bezetting onbekend. |
|
1 |
Empty |
|
Bij NS worden 1 en 2 samengevoegd naar 2 |
|
2 |
Many seats available |
|
Bij NS <65% van zitplaatsen per bak bezet |
|
3 |
Few seats available |
|
Bij NS >65% en < 100%van zitplaatsen per bak bezet |
|
4 |
Standing room only |
|
Bij NS >100% van zitplaatsen per bak bezet |
|
5 |
Full |
|
Alleen relevant voor realtime gegevens. Dit is toekomstige informatie en wordt nog niet aangeleverd. |
Bij de icoontjes wordt rekening gehouden met onderscheid in de afbeelding, zodat dit ook te zien is bij kleurenblindheid.
Een reis van Waterlooplein in Amsterdam, naar de Stadsschouwburg in Utrecht.
De gehele reis krijgt indicator druk omdat 1 leg de indicator “druk” heeft.
Er wordt dus geaggregeerd naar de drukste halte van het traject.
Het is mogelijk om uw reiziger een passend OV-reisadvies te geven met daarin routeinformatie per traject (Leg).
De volgende parameter is beschikbaar om routeinformatie in het OV-reisadvies te krijgen:
Parameter |
Beschrijving (voorbeeld) |
Route |
true |
De routeinformatie is te vinden onder de Route element van een Leg. Deze Route bestaat uit 3 elementen:
Hierbij een voorbeeld van een routeinformatie:
Voorbeeld |
"route": { |
Door gebruik te maken van de optie om unimodaal te plannen geeft u de reiziger een passend OV-reisadvies bestaande uit een enkele reis met alleen lopen, een (elektrische) fietsrit of een scooterrit vanaf de vertrek locatie naar aankomstlocatie. De gewenste modaliteit wordt bepaald door de FirstMile parameter.
De volgende parameter is beschikbaar om een unimodaal OV-reisadvies te krijgen:
Parameter |
Beschrijving (voorbeeld) |
Unimodal |
true |
FirstMile |
De modaliteit te gebruiken in de first mile (bijv. “PublicBicycle”) |
FirstMileOptions.PickUpLocation | De gewenste ophaallocatie om te gebruiken |
De combinatie van de first mile en de afstand tussen vertrek- en aankomstlocatie dient aan een van de volgende criteria te voldoen:
First mile |
Soort afstand |
Max afstand tussen vertrek- en aankomstlocatie |
Lopen |
Looproute |
≤ 1,4 km (bij standaard snelheid en reisduur) |
Fiets |
Fietsroute |
≤ 6,9 km (bij standaard snelheid en reisduur) |
Elektrische fiets 25 km/u |
Fietsroute |
≤ 10 km (bij standaard snelheid en reisduur) |
Elektrische fiets 45 km/u |
Fietsroute | ≤ 17,5 km (bij standaard snelheid en reisduur) |
Scooter 25 km/u |
Fietsroute |
≤ 10 km (bij standaard snelheid en reisduur) |
Scooter 45 km/u |
Scooterroute |
≤ 17,5 km (bij standaard snelheid en reisduur) |
Als de opgevraagde reis niet aan bovenstaande criteria voldoet, zal de 9292 Reisadvies een foutmelding retourneren.
Dit optioneel af te nemen onderdeel kan op verzoek worden toegevoegd aan de 9292 Reisadvies API. De sterwaarden en centrumzones worden gebruikt bij de zogenoemde sterabonnementen. Als u voor dit onderdeel kiest, dan zal de 9292 Reisadvies API berekenen welk sterabonnement nodig is voor het betreffende OV-reisadvies. Er wordt nog in enkele gevallen gebruik gemaakt van sterabonnementen en zodoende zal niet bij ieder OV-reisadvies de sterwaarde/centrumzone worden meegegeven. Zie onderstaand voorbeeld.
In dit voorbeeld is een OV-reisadvies opgevraagd van Station Koog Zaandijk naar Station Krommenie Assendelft. De modaliteit trein is in dit advies uitgeschakeld:
Request:
Als er starzones aanwezig zijn in het OV-reisadvies dan ziet het er als volgt uit:
Voorbeeld |
"starZones": [ |
Als er geen Starzones aanwezig zijn dan wordt het volgende getoond:
Voorbeeld |
"starZones": [] |
De sterwaarde kan zowel een numerieke als alfabetische waarde hebben. Er zijn zeven mogelijkheden als waarde: 1 t/m 6 en Netabonnement. Bij een waarde groter dan 6 komt het Netabonnement als waarde naar voren, omdat deze geldig is in het hele land op stad- en streekvervoer.
Het kan voorkomen dat voor een reis meer dan 1 abonnement nodig is. In dat geval worden meerdere elementen <FareLeg> getoond waarbij geldt dat de eerste FareLeg de tarief informatie laat zien voor de totale reis. Vervolgens wordt per benodigd abonnement de bijbehorende <FareLeg> getoond. Dit is als volgt zichtbaar in de <Fares>:
Voorbeeld |
"fareInfo": { |
Dit optioneel af te nemen onderdeel kan op verzoek worden toegevoegd aan de 9292 Reisadvies API.
Door gebruik te maken van de optie CO2 in het OV-reisadvies, kunnen uw gebruikers per OV-reis vergelijken hoeveel CO2 zij besparen door met het Openbaar Vervoer te reizen.
De berekening van CO2 is gebaseerd op basis van CO2 emissie per kilometer en Well to Wheel (WTW) = de emissie van zowel de voorketen als de directe emissies samen.
De overzichten worden hieronder weergegeven voor de verschillende vervoermiddelen.
De CO2 waarden zoals hieronder vermeld staan zijn afkomstig van de website co2emissiefactoren.nl en is het initiatief van SKAO, Stimular, Connekt, Milieu Centraal en de Rijksoverheid en is tot stand gekomen in samenwerking met diverse stakeholders.
Eigen- en deelvoertuigen
Categorie |
CO2 emissie per voertuig (g/km) |
Fiets | 0 |
Elektrische fiets 25 km/u | 6 |
Elektrische fiets 45 km/u | 6 |
Scooter 25 km/u |
17 |
Scooter 45 km/u |
32 |
Auto Klein |
180 |
Auto Middenklasse |
202 |
Auto Groot |
236 |
Openbaar vervoer
Categorie |
CO2 emissie per reiziger (g/km) |
Tram |
0 |
Bus |
103 |
Metro |
0 |
Trein |
2 |
Veerboot |
115 |
Taxi |
202 |
Geraadpleegde bronnen:
Hierbij een voorbeeld van CO2 emissie (kg) in het OV-reisadvies van postcode 3221AL in Hellevoetsluis naar postcode 3078 PE in Rotterdam.
Request:
Response:
Voorbeeld |
"cO2EmissionInfo": { |
Toelichting van de meest relevante elementen uit bovenstaande response:
Element |
Beschrijving (voorbeeld) |
JourneyDistance |
Gemeten afstand van de reis in kilometers op basis van een rechte lijn tussen van, via en naar. |
JourneyEmission |
Totale CO2 emissie van de reis met het openbaar vervoer in kilogram. |
EmissionByModality |
Lijst van CO2 emissies per modaliteit indien de volledige reis door deze modaliteit wordt afgelegd |
Dit optioneel af te nemen onderdeel kan op verzoek worden toegevoegd aan de 9292 Reisadvies API. Door gebruik te maken van de optie ‘Realtime OV-reisadviezen’ geeft u de reiziger een passend OV-reisadvies inclusief vertraging van de trein, bus, metro of tram. Waar wijzigingen in tijden optreden, kan de reis herpland worden en biedt 9292 alternatieven aan.
De volgende parameters zijn toegevoegd aan de 9292 Reisadvies API om realtime te tonen in het OV-reisadvies.
Parameters |
Beschrijving (voorbeeld) |
ArrivalRealtime |
Actuele aankomsttijd |
DepartureRealtime |
Actuele vertrektijd |
RealtimeState |
None, Offset, Cancelled |
RealTimeInfo.Cancellations |
None of Cancellations |
RealTimeInfo.Delays |
None, InternalDelay, FatalDelay |
RealTimeInfo.Detour |
Normal |
RealTimeInfo.LudMessage |
text: “Dit is een alternatief reisadvies.” |
In onderstaand voorbeeld tonen we hoe een vertraging op een rit wordt weergegeven. In dit voorbeeld is zowel de vertrektijd als de aankomsttijd gewijzigd ten opzichte van de oorspronkelijke vertrek- en aankomsttijd.
Oorspronkelijke vertrek en aankomsttijden zijn:
Voorbeeld |
"departureRealtime": "2022-11-05T11:32:00.0000000Z", |
In een OV-reisadvies wordt voor elke halte de realtime vertrek- en aankomsttijd doorgegeven, ook op de tussenliggende haltes. In onderstaand voorbeeld op de halte Claudius Prinsenlaan in Breda is de bus eerder vertrokken dan de oorspronkelijke planning.
De bus zou moeten vertrekken om 10:05 uur maar vertrekt om 10:02 uur.
Voorbeeld |
"calls": [{ |
Als een geplande rit niet wordt gereden, dan zal er een cancel bericht worden verzonden vanuit de vervoerder. Dit is zichtbaar in onderstaand voorbeeld.
De sprinter van Amersfoort naar Zwolle rijdt niet. Voor elk station/halte die de rit aan doet, wordt in de RealtimeState een Cancelled ingevuld.
Dit OV-reisadvies gaat dus niet door. Het is van belang dit in de presentatie aan de reiziger uit te leggen.
Request:
Voorbeeld |
"realtimeInfo": { |
Het kan voorkomen dat een aansluiting niet gehaald wordt. Bijvoorbeeld als bij een overstap in het eerste deel van de reis sprake was van vertraging. In de RealtimeInfo wordt dan een FatalDelay getoond, de rest van de output wijzigt niet.
Dit OV-reisadvies gaat dus niet door. Het is van belang dit in de presentatie aan de reiziger uit te leggen.
Voorbeeld |
"realtimeInfo": { |
Bij een vervallen OV-reisadvies wordt er vaak een alternatief advies geboden. Het is van belang dit in de presentatie aan de reiziger uit te leggen.
Stel dat voor de reis van Kampen Zuid naar Amsterdam Bijlmer Arena de rit met de sprinter is vervallen. Er rijdt nu een Intercity vanaf Kampen Zuid naar Duivendrecht en vervolgens ga je met de Metro naar Amsterdam Bijlmer Arena.
De belangrijkste wijziging in de response is weergegeven in onderstaand voorbeeld:
Voorbeeld |
"realtimeInfo": { |
Wanneer NS een extra rit inlegt wordt dit getoond in de 9292 Reisadvies API.
In onderstaand voorbeeld wordt er een extra rit ingelegd tussen Harderwijk en Zwolle: een extra intercity met ritnummer 29600.
Deze adviezen noemen wij altijd een Alternatief reisadvies zoals je in de Ludmessage ziet staan. Het kan zijn dat er geen Platform of Platformchange is ingevuld zoals hier het geval is. Dat betekent dat 9292 deze informatie niet heeft binnengekregen of de informatie niet is verwerkt.
Voorbeeld |
… |
Wanneer een rit een extra stop bevat dan is dit als volgt zichtbaar in de 9292 Reisadvies API:
In het reisadvies is niet zichtbaar welk halte(s)/station(s) er extra worden aangedaan. Het is ook mogelijk dat voor deze haltes/stations het aankomst/vertrekperron niet is ingevuld.
De response van een rit met een extra stop ziet er als volgt uit:
Voorbeeld |
"realtimeInfo": { |
Dit optioneel af te nemen onderdeel kan op verzoek worden toegevoegd aan de 9292 Reisadvies API. Door gebruik te maken van de optie ‘OV Prijswijzer’ geeft u de reiziger abonnement informatie over de trein, bus, metro of tram die past bij de opgegeven reis. Deze informatie is via de ProductAdvice endpoint op te vragen.
Voor informatie over de OV Prijswijzer verwijzen we u naar onze website. Daar vindt u ook met welke abonnementen de OV Prijswijzer rekent.
Met de ProductAdvice endpoint van de 9292 Reisadvies API is het mogelijk om het OV Prijswijzer advies te tonen behorende bij een gegeven OV-reisadvies.
Het verzoek dient de volgende parameters te bevatten om een OV Prijswijzer advies op te vragen.
Parameter |
Beschrijving (voorbeeld) |
JourneyId |
Unieke identificatie van een OV-reis |
TravellerAge |
Leeftijd (getal tussen de 4 en 100) |
TravellerFrequencyPeriod |
Periode (getal 1 of 2) 1 = week, 2 = maand |
TravellerFrequency |
Aantal dagen (getal tussen 1 en 31, afhankelijk van TravellerFrequencyPeriode) Als TravellerFrequencyPeriod = 1, dan moet TravellerFrequency tussen 1 en 7 zijn. Als TravellerFrequencyPeriod = 2 dan moet TravellerFrequency tussen de 1 en 31 zijn. |
Hierbij een voorbeeld van een valide request, met de volgende gegevens:
Veld |
Parameter |
JourneyId |
station-alkmaar~station-utrecht-centraal~~0~C0nHlCAAB$$HmH040~~~B~9~129~~3600215~3627006~ |
Leeftijd reiziger |
24 |
Aantal dagen |
3 |
Periode (week) |
1 |
Request:
https://<reisadvies-api-url>/v4/ProductAdvice? JourneyId=
station-alkmaar~station-utrecht-centraal~~0~C0nHlCAAB$$HmH040~~~B~9~129~~3600215~3627006~&
TravellerAge=24&TravellerFrequency=3&TravellerFrequencyPeriod=1
In onderstaand voorbeeld tonen we de XML- en JSON-gedeeltes waarin een OV Prijswijzer advies op een rit wordt weergegeven.
Voorbeeld |
{ |
Dit onderdeel wordt op verzoek toegevoegd aan de 9292 Reisadvies API. Door gebruik te maken van de optie ‘Toegankelijk Plannen & Haltetoegankelijkheid’ geeft u de reiziger een passend OV-reisadvies voor modaliteiten en haltes die geschikt zijn voor iemand met een motorische beperking. Daarnaast worden alle reisadviezen (wel of niet gepland met toegankelijkheid) voorzien van informatie met betrekking tot haltetoegankelijkheid.
De volgende parameters zijn beschikbaar om een toegankelijk OV-reisadvies te krijgen.
Parameter |
Beschrijving (voorbeeld) |
PlanWithAccessibility |
true |