Table of Contents

Booking Pricing

After the category has been chosen, and any time prior to creating the booking, pricing can be requested with the CruisePriceBookingRQ/RS message pair. The Seaware will return all of the pricing items for both the individual traveler and the booking.

Request Example

<OTA_CruisePriceBookingRQ xmlns="http://www.opentravel.org/OTA/2003/05" CorrelationID="7904337c-81d7-42f6-891c-a385d82a1f8e" Version="1.00">
  <POS>
    [..]
  </POS>
  <SailingInfo>
    <SelectedSailing VoyageID="CS21711JUNKTN">
      <CruiseLine/>
    </SelectedSailing>
    <SelectedCategory PricedCategoryCode="A"/>
  </SailingInfo>
  <ReservationInfo>
    <GuestDetails>
      <GuestDetail>
        <ContactInfo>
          <PersonName>
            <GivenName>Guest Name #1</GivenName>
            <MiddleName>Guest Middle Name #1</MiddleName>
            <Surname>Guest SurName #1</Surname>
          </PersonName>
        </ContactInfo>
      </GuestDetail>
      [..]
    </GuestDetails>
  </ReservationInfo>
</OTA_CruisePriceBookingRQ>

Category Code Parameter

Providing PricedCategoryCode is optional, but only to allow for this request to be invoked before category is known in the booking flow.

Category definitely must be provided if it is known already, as it may affect the result (promotion eligibility) and it will significantly affect performance of the call.

Important

If no category provided the server will need to first establish available categories for the sailing and then query promotion availability for each category available.

Response Example

Response will contain:

  • BookingPrices element with itemized per-booking invoice, commission and charges details
  • GuestPrices element with per-guest invoice, commission and charges details
  • PaymentSchedule element with payment schedule items, with PaymentNumber attribute that corresponds to Seaware payment Due Type:
    • 1 = FIRST_DEPOSIT
    • 2 = SECOND_DEPOSIT
    • 3 = THIRD_DEPOSIT
    • 4 = FOURTH_DEPOSIT
    • 50 = FINAL_PAYMENT
    • 60 = FULL_DEPOSIT
<vx:OTA_CruisePriceBookingRS xmlns:ns3="http://www.versonix.com/ota" 
  xmlns:ns4="http://schemas.xmlsoap.org/soap/envelope/" 
  xmlns:vx="http://www.opentravel.org/OTA/2003/05" 
  CorrelationID="7904337c-81d7-42f6-891c-a385d82a1f8e" 
  TargetName="SW_OTA_TEST@ORADEV" 
  TimeStamp="2021-08-27T14:29:15.179" 
  Version="1.999">
  <vx:Success/>
  <vx:SailingInfo>
    [..]
  </vx:SailingInfo>
  <vx:BookingPayment>
    <vx:BookingPrices>
      <vx:BookingPrice Amount="100.000" CodeDetail="Insurance" PriceTypeCode="10"/>
      <vx:BookingPrice Amount="0.000" CodeDetail="Net commission total" PriceTypeCode="11"/>
      <vx:BookingPrice Amount="221.520" CodeDetail="Packages" PriceTypeCode="13"/>
      <vx:BookingPrice Amount="1225.120" CodeDetail="Balance due" PriceTypeCode="3"/>
      <vx:BookingPrice Amount="-50.000" CodeDetail="Discount" PriceTypeCode="34"/>
      <vx:BookingPrice Amount="1225.120" CodeDetail="Net amount due" PriceTypeCode="40"/>
      <vx:BookingPrice Amount="1225.120" CodeDetail="Gross totals" PriceTypeCode="8"/>
      [..]
    </vx:BookingPrices>
    <vx:PaymentSchedule>
      <vx:Payment Amount="225.12" CurrencyCode="USD" DueDate="2023-01-29T23:59:59" PaymentNumber="50"/>
    </vx:PaymentSchedule>
    <vx:GuestPrices>
      <vx:GuestPrice GuestRefNumber="1">
        <vx:GuestName>
          <vx:GivenName>GUEST NAME #1</vx:GivenName>
          <vx:MiddleName>GUEST MIDDLE NAME #1</vx:MiddleName>
          <vx:Surname>GUEST SURNAME #1</vx:Surname>
          <vx:TPA_Extensions/>
        </vx:GuestName>
        <vx:PriceInfos>
          <vx:PriceInfo Amount="50.000" CodeDetail="Insurance" PriceTypeCode="10"/>
          <vx:PriceInfo Amount="-10.000" CodeDetail="Discount" PriceTypeCode="34"/>
          <vx:PriceInfo Amount="1000.120" CodeDetail="Cruise rate" PriceTypeCode="5"/>
          <vx:PriceInfo Amount="1040.120" CodeDetail="Gross totals" PriceTypeCode="8"/>
        </vx:PriceInfos>
      </vx:GuestPrice>
      [..]
    </vx:GuestPrices>
  </vx:BookingPayment>
</vx:OTA_CruisePriceBookingRS>

Price Type Codes

The codes in the result are taken from the OTA Code List Price Type Code "PRI" standard. Common codes include:

  • 3 = Balance due
  • 5 = Cruise rate
  • 8 = Gross totals
  • 10 = Insurance
  • 11 = Net commission total
  • 34 = Discount

The specific price breakdown items returned may vary. Your integration guide will document the price items available for your account.

Pricing for an Existing Booking

The same message can be used to query pricing for an existing booking (or booking in a temporary storage). ReservationID element is used to define the booking ID. In this case the message can be used for two scenarios:

Scenario 1: View Existing Invoice

I have a booking and want to see the invoice details without making any changes to the booking. This will work even if booking is locked and being edited by another user.

In this scenario the call must contain ONLY the POS element and the ReservationID. All other elements need to be omitted or provided empty (for elements marked as mandatory by the XSD).

Example:

<OTA_CruisePriceBookingRQ xmlns="http://www.opentravel.org/OTA/2003/05" CorrelationID="5379337c-81d7-42f6-891c-a385d82a1f0d" Version="1.00">
  <POS>
    [..]
  </POS>
  <SailingInfo/>
  <ReservationInfo>
    <ReservationID Type="14" ID_Context="SEAWARE" ID="10281"/>
    <GuestDetails>
      <GuestDetail/>
    </GuestDetails>
  </ReservationInfo>
</OTA_CruisePriceBookingRQ>

Scenario 2: Preview Changes

I have a booking that I plan to edit (e.g. add a shorex, change insurance choice). I would like to see what the invoice will be with those changes (but without actually making the changes yet).

If ANY other details are provided in the request the SwOTA server will assume this second scenario and apply the provided information to the booking before generating the pricing response. The changes will immediately be discarded and will NOT be stored.

Important

This means it is essential to include everything that should be applied to the booking (including all components that are already on that booking, otherwise they will be removed). This also means the request may fail if there is another user working with the same booking at the same time (the reservation might be locked if it is being edited by another operator).