BeNe (BN) Carrier Requirements
For Universal API developers that develop code for rail carriers, some carriers require a specific process to become certified on their system.
BeNe
When implementing BeNe, there are slight differences than with other rail API-connected carriers. Below is a list of what’s different for BeNe, as well as tips when starting your development:
BeNe content, through Universal API, has Benelux-only sales and distribution restrictions, does have a carrier certification process to follow, and also has a Look-to-Book requirement.
Note: With BN, Eurostar content, as well as many international SNCF trains, may be available.
When developing for BeNe content:
- The first RailAvailabilitySearchReq has no train segment. If the request includes ResponseType, ensure ResponseType="Availability". ResponseType=”Fares” is used when the request is for specific train segments. There are three settings for RailAvailabilityRequest:
- RequestType="Availability" - this is the default if the RailAvailabilitySearchReq does not include a ResponseType and does not include train segments.
- RequestType="Schedules".
- RequestType="Fares" – this is the default if the RailAvailabilitySearchReq does not include a ResponseType but includes train segments.
- The second rail availability call is optional, and typically is used to request fares for specific trains (e.g., RequestType="Fares"). If it's used for specifying a train segment, the default is "Fares."
- To build your book call, begin by choosing the correct RailPricingSolution from the RailAvailabilityRsp and add it in to the RailCreateReservationReq. For example:
<rail:RailPricingSolution Key="tzcQ2DWrTGG10Yo33k44GQ==" OfferId="29" TotalPrice="GBP110.00" ApproximateTotalPrice="GBP110.00" ProviderCode="RCS" SupplierCode="TL" HostTokenRef="fe0a7f56-c696-4ba1-a9ba-c51802d2fad3" Reference="SA">
<rail:RailJourneyRef Key="5+Pog03TR7y9G/j1vRhnnQ=="/>
<rail:RailPricingInfo Key="aGja7MaZTQOKyBz2+tVFWA==" TotalPrice="GBP110.00" ApproximateTotalPrice="GBP110.00">
<rail:RailFareRef Key="I8OxAuUeQk2ytTPnmGinww=="/>
<rail:RailBookingInfo RailFareRef="I8OxAuUeQk2ytTPnmGinww==" RailJourneyRef="5+Pog03TR7y9G/j1vRhnnQ=="/>
<rail:PassengerType Code="ADT" Age="34"/>
</rail:RailPricingInfo>
</rail:RailPricingSolution> - Complete any Ref data that with the actual element to which it points. Replace:
- RailJourneyRef with RailJourney.
- The RailSegmentRef under RailJourney must be replaced with the RailSegment:
<rail:RailSegmentRef Key="jKC9ePAHQa2/KpSb8tV+aw=="/>
- The RailSegmentRef under RailJourney must be replaced with the RailSegment:
- RailFareKey with RailFare.
- The RailFareNoteRef and RailFareIDRef are optional, and can be removed:
<rail:RailFareNoteRef Key="OlasB2RKRIu7VdbJz+gTaw=="/>
<rail:RailFareIDRef Key="CsgbPGs8Tz2Ajt4zda4q1w=="/>
- RailJourneyRef with RailJourney.
- Ensure the settings are correct based on what the carrier accepts:
- FormOfPayment Type: BN only accepts DirectBill (which is like an Agency form of payment):
com:FormOfPayment Type="DirectBill" Key="LO+7YhXOFrqq+S0pndtqrA==" FulfillmentType="Ticket on Departure - FulfillmentType: Ticket on Departure, Travel Agency, Train Station Service Desk, Digital Printing of Ticket at Home, Retrieve Ticket at Eurostar in London, Corporate Kiosk, Ticket by Email:
- <com:FormOfPayment Type="DirectBill" Key="LO+7YhXOFrqq+S0pndtqrA==" FulfillmentType="Ticket on Departure">
Removing the multiple FulfillmentType elements from either the RailSegment or the RailFare is optional, because Universal API only keys off of what is sent in the FormOfPayment element.
- If Corporate Kiosk is used, it will default to 'Ticket on Departure' at the carrier.
- BookingAction: BN accepts BookingActionType="Final", "FinalTicket", and "Initiate" in the root of the RailCreateReservationReq.
Payment Type: this attribute is required, and all enumerated values in the schema are accepted for BN:
<com:Payment Type="Itinerary" BookingTravelerRef="LO+6XgYQTrqq+S0pndtprA==" ApproximateAmount="GBP110.00" FormOfPaymentRef="LO+7YhXOFrqq+S0pndtqrA==" Amount="GBP110.00" Key="Mtks1xNNOmuJdFRvCybKxg=="/>
- FormOfPayment Type: BN only accepts DirectBill (which is like an Agency form of payment):
Rail Exchange
Rail.xsd enables the RailExchangeQuoteReq and RailExchangeReq transactions for BeNe through Universal API.
- For SNCF and BeNe, the customer must send RailPricingSolution in the RailExchangeQuote request.
-
RailExchangeQuote without RailPricingSolution is NOT supported by RCS for these vendors. Therefore, for BENE, the customer is expected to do a RailAvailabilitySearchReq/LFS to get a new RailPricingSolution and then pass it in RailExchangeQuote.
-
For exchange quote:
- RailExchangeQuoteReq/RailPricingSolution/RailPricingInfo/RailFare/RailFareNoteRef and RailExchangeQuoteReq/RailFareNoteList should be present.
-
Both should be taken from the RailPricingSolution returned in RailAvailabilitySearchRsp done before exchange quote
- BeNe allows only modifying existing segments at the journey level.
Users can indicate whether to add/modify/cancel rail journeys through the new RailPricingSolution and RailExchangeSolution element, specifically in the @Operation attribute.