api 2 changelog

& upgrade manual.

We have made our API able to have more instant products being at the same time faster and more convenient. To use all of the new stuff and make it fast, please read our notes below.

  • Most important changes in architecture:
    • We do not have booking/check endpoint. Instead, we use day pricing to check availability, then booking process requires one step less.
    • Product details, product-type details, and pricing now have separate endpoints. - Instead of Pax and Children, now we use 3 age groups: Adults, Children, and Seniors.
    • Day pricing endpoint provides availability check, also for timeslots. Returns full details of ticket validity.
    • BookingOptions is a new concept of dynamic fields that can be added to product-types. They can be required (selected or filled out), they can have a price. Thanks to booking options more products can be instant process without manual work.
    • Voucher require being downloaded by the partner, not the guest since download link requires authorization.
    • All endpoints contain HTOAS links and OPTION method to make API self documented.
  • Changes described by endpoint:
    • GET /products
      • Lowered number of keys: 'uuid', 'updatedAt', 'title', 'titleTranslated', 'validFrom', 'validThrough', 'basePrice', 'typeName', 'typeUuid', 'links'
      • Values of the keys at this endpoint are same as API V1
    • GET /products/UUID
      • Removed: "productTypes", "prices" (have separate ednpoints), "minChildren", "maxChildren", "url", "staticUrl"
      • Keys: 'uuid', 'updatedAt', 'title', 'titleTranslated', 'description', 'descriptionTranslated', 'highlights', 'highlightsTranslated', 'additionalInfo', 'additionalInfoTranslated', 'priceIncludes', 'priceIncludesTranslated', 'priceExcludes', 'priceExcludesTranslated', 'validFrom', 'validThrough', 'itinerary', 'itineraryTranslated', 'warnings', 'warningsTranslated', 'safety', 'safetyTranslated', 'latitude', 'longitude', 'minPax', 'maxPax', 'basePrice', 'currency', 'isFlatPaxPrice', 'reviewCount', 'reviewAverageScore', 'typeName', 'typeUuid', 'photosUrl', 'businessHoursFrom', 'businessHoursTo', 'averageDelivery', 'hotelPickup', 'airportPickup', 'hasOptions', 'allProductTypesHaveOptions', 'photos', 'categories', 'locations', 'guideLanguages', 'audioHeadsetLanguages', 'writtenLanguages', 'links'.
      • New: 'hasOptions', 'allProductTypesHaveOptions', 'links'. /product/UUID/product-types New endpoint with product-types list Keys: 'uuid', 'title', 'links'
    • GET /product-types/UUID
      • New endpoint to get product types details.
      • Keys: 'uuid', 'title', 'titleTranslated', 'description', 'descriptionTranslated', 'durationDays', 'durationHours', 'durationMinutes', 'daysInAdvance', 'isNonRefundable', 'minPax', 'maxPax', 'minAdultAge', 'maxAdultAge', 'hasChildPrice', 'allowChildren', 'minChildren', 'maxChildren', 'minChildAge', 'maxChildAge', 'allowSeniors', 'minSeniors', 'maxSeniors', 'minSeniorAge', 'maxSeniorAge', 'allowInfant', 'minInfantAge', 'maxInfantAge', 'maxGroup', 'minGroup', 'instantConfirmation', 'nonInstantVoucher', 'directAdmission', 'voucherUse', 'voucherUseTranslated', 'voucherRedemptionAddress', 'voucherRedemptionAddressTranslated', 'voucherRequiresPrinting', 'meetingTime', 'meetingAddress', 'meetingLocation', 'meetingLocationTranslated', 'cancellationPolicies', 'recommendedMarkup', 'adultParityPrice', 'childParityPrice', 'seniorParityPrice', 'validity', 'timeslots', 'options', 'links'. New to V2: 'allowSeniors', 'minSeniors', 'maxSeniors', 'minSeniorAge', 'maxSeniorAge', 'maxGroup', 'minGroup', 'options'
      • Important: we use 'minPax', 'maxPax', not minAdults or maxAdults.
      • 'options' has dynamic values, there is whole doc page dedicated to that.
    • GET /product-types/UUID/price-lists
      • New endpoint for pricing.
      • Keys: 'date', 'weekday', 'available', 'currency', 'prices', 'timeslots', 'options', 'links',
    • GET /product-types/UUID/price-lists/YYYY-MM-DD
      • New endpoint for availability & price check.
      • Keys: 'date', 'weekday', 'available', 'currency', 'prices', 'timeslots', 'options', 'voucherValidity', 'links',
      • Important: data here not to be cached, while calling this endpoint real time checks are preformed. Voucher validity is divided into age groups. Timeslots presence here marks availability.
    • POST /bookings/check – endpoint removed.
    • POST /bookings
      • Payload diff: "adults" instead of "pax", contact data of person making booking moved to customer object: "firstName", "lastName", "salutation", "Mr.", "email", "phone",
      • New keys: "customer", "options". Options are dynamic, please check docs: booking options
    • GET /bookings
      • Lowered number of keys: 'uuid', 'code', 'status', 'createdAt', 'updatedAt'
    • PUT /booking/UUID/confirm|cancel
      • no change
    • GET /bookings/UUID
      • Removed keys: 'totalAmountRequestCurrency', 'requestCurrencyCode', 'confirmationEmailSentAt', 'confirmationEmailFiles', 'links' Removed links to media files. Changed: 'guests' to 'adults' New: 'options' array
    • GET /bookings/UUID/vouchers
      • Object “data” contains object for every voucher file with:
      • Keys: 'uuid', 'generatedAt', 'downloadedAt', 'links'
      • Important: Links to media files require auuthorization, should be downloaded and distributed from Partner servers.