Indice della materia

Ricerca nella pagina

Aprire il modello di vendita e distribuzione Offline File Svizzera

L’OSDM è stato sviluppato per scambiare informazioni tariffarie e consentire prenotazioni tra ferrovie internazionali. Il file mostra anche il funzionamento di OSDM. Se siete interessati a questo set di dati, potrebbe essere necessario contattarci all’indirizzo opendata@sbb.ch.

(URL slug: osdm-offline)

Descrizione tecnica

NOVA calcola le tariffe dei trasporti pubblici in Svizzera. Alcuni percorsi sono precalcolati per gli scambi con le principali ferrovie (ad es. Spiez – Thun, Spiez – Berna, Spiez – Olten, ecc.). Questi prezzi vengono scambiati nel file OSDM offline. Il file contiene solo i dati che NOVA considera rilevanti per le vendite di biglietti internazionali. Il trasporto locale non è quindi incluso, o lo è solo in misura molto limitata.

Poiché la dimensione del file cresce di un fattore n^2 con il numero di fermate, non è così facile completare il file.

Importante: i dati disponibili non sono una condizione sufficiente per la vendita di biglietti da parte di terzi.

Aspetti tecnici

OSDM è uno standard basato su JSON. Con il file offline, stiamo solo grattando la superficie di ciò che OSDM può fare. OSDM è uno standard sviluppato in collaborazione con le FFS.

L’esempio è quello di Buchs-Zurich.

{
    "delivery": { 
        "fareProvider": "1185",
        "deliveryId": "1",
        "optionalDelivery": false,
        "version": "1.2",
        "acceptedVersion": "1.2"
    },
    "fareStructure": {
        "calendars": [
            {
                "id": "calendar-1",
                "fromDate": "2020-09-12 23:00:00 +0000",
                "untilDate": "2021-09-12 23:00:00 +0000",
                "utcOffset": 120
            }
        ],
        "serviceClassDefinitions": [
            {
                "id": "serviceClass-1",
                "textRef": "",
                "text": "Erste Klasse",
                "comfortClass": "FIRST"
            },
            {
                "id": "serviceClass-2",
                "textRef": "",
                "text": "Zweite Klasse",
                "comfortClass": "SECOND"
            }
        ],
        "serviceLevelDefinition": null,
        "texts": [
            {
                "id": "text-1",
                "textUTF8": "1. Klasse",
                "text": "1. Klasse",
                "shortTextUtf8": "1. Klasse",
                "shortText": "1. Klasse"
            },
            {
                "id": "text-2",
                "textUTF8": "2. Klasse",
                "text": "2. Klasse",
                "shortTextUtf8": "2. Klasse",
                "shortText": "2. Klasse"
            },
            {
                "id": "text-3",
                "textUtf8": "Halbtax 1. Klasse",
                "text": "Halbtax 1. Klasse",
                "shortTextUtf": "Halbtax 1. Klasse",
                "shortText": "Halbtax 1. Klasse"
            },
            {
                "id": "text-4",
                "textUtf8": "Halbtax 2. Klasse",
                "text": "Halbtax 2. Klasse",
                "shortTextUtf": "Halbtax 2. Klasse",
                "shortText": "Halbtax 2. Klasse"
            },
            {
                "id": "text-6",
                "textUtf8": "FIP",
                "text": "FIP",
                "shortTextUtf": "FIP",
                "shortText": "FIP"
            },           
            {
                "id": "text-6",
                "textUtf8": "FIP",
                "text": "FIP",
                "shortTextUtf": "FIP",
                "shortText": "FIP"
            },
            {
                "id": "text-10",
                "textUtf8": "Erwachsener",
                "text": "Erwachsener",
                "shortTextUtf": "Erwachsener",
                "shortText": "Erwachsener"
            },
            {
                "id": "text-11",
                "textUtf8": "Kind",
                "text": "Kind",
                "shortTextUtf": "Kind",
                "shortText": "Kind"
            },
            {
                "id": "text-20",
                "textUtf8": "Normalpreis",
                "text": "Kind",
                "shortTextUtf": "Kind",
                "shortText": "Kind"
            }
        ],
        "fareResourceLocation": {
            "carrierLocations": null,
            "trainLocations": null,
            "stationLocations": null
        },
        "prices": [
            {
                "id": "price-1",
                "price": [
                    {
                        "currency": "EUR",
                        "amount": 3140
                    }
                ]
            },
            {
                "id": "price-2",
                "price": [
                    {
                        "currency": "EUR",
                        "amount": 6280
                    }
                ]
            }
        ],
        "regionalConstraints": [
            {
                "id": "regionalConstraint-1",
                "entryConnectionPointId": "8509404",
                "exitConnectionPointId": "8503000",
                "regionalValidity": {
                    "seqNb": 1,
                    "viaStations": {
                        "carrier": "1185",
                        "route": [
                            {
                                "fareReferenceStationSet": {
                                    "carrier": "1185",
                                    "code": "8509411",
                                    "name": "Sargans"
                                }
                            }
                        ]
                    }
                },
                "distance": 113
            }
        ],
        "serviceConstraints": [
            {
                "id": "serviceConstraint-1",
                "includedServiceBrands": [
                    51
                ]
            }
        ],
        "carrierConstraints": [
            {
                "id": "carrierConstraint-1",
                "includedCarrier": [
                    "1185"
                ]
            }
        ],
        "passengerConstraints": [
            {
                "id": "passengerConstraint-1",
                "passengerType": "ADULT",
                "nameRef": "text-5",
                "lowerAgeLimit": "6",
                "upperAgeLimit": "15.99",
                "ageLimitToTravelAlone": 0,
                "ageLimitForReservation": 0,
                "combinationConstraint": [
                    {
                        "maxNumber": 10,
                        "minNumber": 0,
                        "passengerTypeRef": "DOG"
                    }
                ],
                "includedFreePassenger": [
                    {
                        "number": 4,
                        "passengerTypeRef": "FAMILY_CHILD"
                    },
                    {
                        "number": 10,
                        "passengerTypeRef": "YOUNG_CHILD"
                    },
                    {
                        "number": 1,
                        "passengerTypeRef": "ACCOMP_DOG"
                    },
                    {
                        "number": 1,
                        "passengerTypeRef": "ACCOMP_PRM"
                    }
                ],
                "passengerWeight": 1
            }
        ],
        "fareConstraintBundles": [
            {
                "id": "fareConstraintBundle-1",
                "combinationConstraintRef": "combinationConstraint-1",
                "salesAvailabilityConstraintRef": "salesAvailabilityConstraint-1",
                "travelValidityConstraintRef": "travelValidityConstraint-1",
                "fullfilmentConstraintRef": "fulfillmentConstraint-1",
                "passengerCombinationRef": "passengerCombinationConstraint-1"
            }
        ],
        "passengerCombinationConstraints": [
            {
                "id": "passengerCombinationConstraint-1",
                "maxWeightedPassengers": 5,
                "minWeightedPassengers": 1
            }
        ],
        "fares": [
            {
                "id": "00000-03914",
                "bundleRef": "fareConstraintBundle-1",
                "fareType": "ADMISSION",
                "nameRef": "text-20",
                "priceRef": "price-1",
                "regionalConstraintRef": "regionalConstraint-1",
                "carrierConstraintRef": "carrierConstraint-1",
                "regulatoryConditions": [
                    "CIV"
                ],
                "serviceClassRef": "serviceClass-1",
                "passengerConstraintRef": "passengerConstraint-1",
                "legacyAccountingIdentifier": {
                    "serialId": 1,
                    "addId": 1,
                    "tariffId": 0
                }
            },
            {
                "id": "00001-03914",
                "bundleRef": "fareConstraintBundle-1",
                "fareType": "ADMISSION",
                "nameRef": "text-20",
                "priceRef": "price-2",
                "regionalConstraintRef": "regionalConstraint-1",
                "carrierConstraintRef": "carrierConstraint-1",
                "regulatoryConditions": [
                    "CIV"
                ],
                "serviceClassRef": "serviceClass-2",
                "passengerConstraintRef": "passengerConstraint-1",
                "legacyAccountingIdentifier": {
                    "serialId": 1,
                    "addId": 1,
                    "tariffId": 0
                }
            },
            {
                "id": "00002-03914",
                "bundleRef": "fareConstraintBundle-1",
                "fareType": "ADMISSION",
                "nameRef": "text-20",
                "priceRef": "price-1",
                "regionalConstraintRef": "regionalConstraint-1",
                "carrierConstraintRef": "carrierConstraint-1",
                "regulatoryConditions": [
                    "CIV"
                ],
                "serviceClassRef": "serviceClass-1",
                "passengerConstraintRef": "passengerConstraint-2",
                "legacyAccountingIdentifier": {
                    "serialId": 1,
                    "addId": 1,
                    "tariffId": 0
                }
            },
            {
                "id": "00003-03914",
                "bundleRef": "fareConstraintBundle-1",
                "fareType": "ADMISSION",
                "nameRef": "text-20",
                "priceRef": "price-2",
                "regionalConstraintRef": "regionalConstraint-1",
                "carrierConstraintRef": "carrierConstraint-1",
                "regulatoryConditions": [
                    "CIV"
                ],
                "serviceClassRef": "serviceClass-2",
                "passengerConstraintRef": "passengerConstraint-2",
                "legacyAccountingIdentifier": {
                    "serialId": 1,
                    "addId": 1,
                    "tariffId": 0
                }
            }
        ],
        "afterSalesCondition": "todo",
        "salesAvailabilityConstraint": [
            {
                "id": "salesAvailabilityConstraint-1",
                "salesRestrictions": [
                    {
                        "salesDatesRef": "calendar-1"
                    }
                ]
            }
        ],
        "travelValidityConstraints": [
            {
                "id": "travelValidityConstraint-1",
                "validityRange": {
                    "timeUnit": "DAYS",
                    "value": 2,
                    "hoursAfterMidnight": 3
                },
                "numberOfTravelDays": 0
            }
        ],
        "combinationConstraints": [
            {
                "id": "combinationConstraint-1",
                "combinationModels": [
                    {
                        "model": "CLUSTERING",
                        "combinableCarrier": null,
                        "referenceCluster": "FULLFLEX",
                        "allowedClusters": [
                            "PROMO",
                            "NONFLEX",
                            "SEMIFLEX",
                            "FULLFLEX",
                            "BUSINESS"
                        ],
                        "allowedAllocators": null,
                        "allowedCommonContracts": null
                    }
                ]
            }
        ],
        "fullfillmentConstraints": [
            {
                "id": "fulfillmentConstraint-1",
                "acceptedControlSecurityTypes": [
                    "SID",
                    "SIP",
                    "SIS"
                ],
                "acceptedBarCodes": null,
                "requiredBarCodes": null,
                "requiredSiS": null,
                "individualTicketingPermitted": true
            }
        ],
        "reductionConstraints": [
            {
                "id": "reductionConstraint-1",
                "requiredCards": [
                    {
                        "cardValue": "reductionCard-2",
                        "cardName": "Halbtax 2. Klasse",
                        "issuer": "1185"
                    }
                ]
            }
        ],
        "reductionCards": [
            {
                "id": "reductionCard-1",
                "issuer": "1185",
                "nameRef": "Halbtax",
                "serviceClasses": [
                    "HIGH",
                    "BASIC"
                ]
            },
            {
                "id": "reductionCard-2",
                "issuer": "1185",
                "nameRef": "GA 2.Klasse",
                "serviceClasses": [
                    "BASIC"
                ]
            },
            {       
                "id": "reductionCard-3",
                "issuer": "1185",
                "nameRef": "GA 1.Klasse",
                "serviceClasses": [
                    "HIGH"
                ]
            },
            {
                "id": "reductionCard-4",
                "issuer": "1185",
                "nameRef": "FIP",
                "serviceClasses": [
                    "HIGH",
                    "BASIC"
                ]
            },
            {
                "id": "reductionCard-5",
                "issuer": "1185",
                "nameRef": "RailPlus",
                "serviceClasses": [
                    "HIGH",
                    "BASIC"
                ]
            }
        ],
        "personalDataConstraints": null,
        "reservationParameters": null,
        "connectionPoints": [
            {
                "id": "connectionPoint-1",
                "legacyBorderPointCode": "271",
                "stationSets": [
                    [
                        {
                            "code": "8509404",
                            "country": "CH"
                        }
                    ],
                    [
                        {
                            "code": "8101244",
                            "country": "DE"
                        }
                    ]
                ]
            }
        ],
        "stationNames": null,
        "fareReferenceStationSetDefinitions": null,
        "zoneDefinitions": null
    }
}

Strumenti ed esempi sono disponibili alla pagina delle specifiche: https://osdm.io/

Ulteriori indicazioni