The imin Platform
2.0.0
2.0.0
  • Introduction to the imin Platform
  • Using the Platform
    • imin's Platform Products
    • Authentication
    • Our Platform Data
      • Understanding Responses
      • Namespaces and Extensions
      • Defensive Data Consumption
      • Mocking the Interface
  • platform products
    • Search
      • imin Events API
        • Events API Reference
        • Virtual & Physical Sessions
        • Concepts
          • EventSeries
          • ScheduledSessions and eventSchedules
          • Activities and Collections
            • Activities
            • Activity Concept Collections
          • Accessibility Support
          • Prices
        • Filters
          • Modes
          • Age Ranges
          • Dates and Times
          • Activities and Concept Collections
          • High Frequency Sessions
      • imin Facilities API
        • Query Parameter Search
          • Mandatory Query Parameters
            • mode=discovery-geo
            • mode=upcoming-slots
          • Optional Query Parameters
        • ByID Search
          • FacilityUse By-ID
          • Slot By-ID
        • FacilityUses and IndividualFacilityUses
        • Slots
        • Facilities Slot Booking
      • imin Places API [BETA]
        • Example Request & Response
    • Firehose
      • Introduction to the Firehose
      • Accessing the Firehose
      • Firehose Usage Policy & Restrictions
      • Firehose and Search
      • Bookable Firehose Feeds
      • Bookable Sellers Feed
      • Attribution Catalog Endpoint
    • Live Timetables
      • Pre-Requisites: Open Data Feeds
      • The Onboarding Process
        • 1. Ensuring your Data Offers the Best User Experience
        • 2. Setting up and Embedding your First Timetable
        • 3. Setting up the Rest of your Timetables
        • 4. Activating Booking via Guest Checkout
      • Features Available Upon Request
      • Styling the Live Timetables
      • FAQs
    • Data Dashboard
  • incorporating book and pay
    • imin Branded Checkout
      • Introduction
      • Setup
        • Information We Require From You
        • Actions You Need to Complete
      • Authenticated Checkout
        • Testing [BETA]
        • 👪Group Booking [BETA]
      • Standalone Checkout
      • Firehose and Checkout [BETA]
        • Loading the Checkout via Firehose
    • imin Booking Platform
      • Customer Account Management
        • Create Customer Account
        • Update Customer Account
        • Get Customer Account
        • Delete Customer Account
        • Example Scenario
        • Payment Card Management
        • Linked Accounts
        • Entitlement
          • Evidence Requests
          • Entitlement Pricing in Search
          • Entitlement Pricing in Checkout
        • Access Pass
        • Webhooks
      • Orders
        • Order History
        • Order (by ID)
        • Cancellations & Refunds
      • Upcoming OrderItems
      • Receipt (by ID)
  • imin and booking systems
    • Seller Onboarding
      • API
  • HINTS & TIPS
    • Get the Best Out of Search
      • Displaying Schedule Information
      • URLs and Offering a Call to Action
      • Searching by Activity
      • Your Search Results and HighFrequencySessions
      • Customer Specific Images
  • Info for Data Publishers
    • Your RPDE Feed & the imin Platform [BETA]
      • Providing Places Data [BETA]
      • Providing Schedule Information [BETA]
Powered by GitBook
On this page
  • Is an Opportunity Bookable?
  • Booking a Session or Slot
  1. incorporating book and pay
  2. imin Branded Checkout

Firehose and Checkout [BETA]

PreviousStandalone CheckoutNextLoading the Checkout via Firehose

Last updated 3 years ago

Is an Opportunity Bookable?

The exact name of the field referred to below as imin:isPotentiallyBookable has yet to be agreed upon. With this in mind, the following should be used for reference purposes only and should not be coded against.

It is possible to book, in , ScheduledSessions and Slots that are found in . Not all of these are bookable. In order to determine whether a ScheduledSession or Slot is bookable, find its associated SessionSeries or FacilityUse in the respective endpoints and check that the following three requirements are ALL met:

  1. (ScheduledSession/Slot) imin:isPotentiallyBookable is TRUE

    • This means that the ScheduledSession/Slot is bookable.

    • This could be FALSE if e.g. this particular occurrence ran out of spaces.

  2. (SessionSeries/FacilityUse) imin:aggregateOffer.publicAdult.imin:isPotentiallyBookable is TRUE

    • This means that the SessionSeries/FacilityUse is bookable.

    • This could be FALSE if e.g. this opportunity does not support online bookings.

  3. (ScheduledSession/Slot) startDate is within the window specified by (SessionSeries/FacilityUse)imin:aggregateOffer.publicAdult.validFromBeforeStartDate

    • The start of the time window is the startDate (i.e. the time that the customer is browsing this data) minus the validFromBeforeStartDate duration e.g. if validFromBeforeStartDate is P1W ("one week"), then the ScheduledSession/Slot is only bookable for the one week period before it starts. It cannot be booked 8 days before it starts.

    • The end of the time window is the startDate - Otherwise, it's already started!

Put another way, in order to realise if something is bookable, you must ask:

  1. Is the SessionSeries/FacilityUsepotentially bookable?

  2. Is the ScheduledSession/Slotpotentially bookable?

  3. Is the time that the end user is making the request to book in the valid time before?

A session/facility that is only for children will not have imin:aggregateOffer.publicAdult, which means that the 2nd requirement from the list above will not be met. You should, therefore, consider these items not to be bookable.

Is a parent potentially bookable? If the parent does not exist or is not potentially bookable, then the ScheduledSession/Slotwill not be potentially bookable.

Booking a Session or Slot

If an opportunity is bookable according to the rules above, you can show your customers a "Book" button/link which uses the following URL, for ScheduledSessions:

https://{checkoutBaseUrl}/v1/scheduled-sessions/{scheduled-session-identifier}

Where:

  • scheduled-session-identifier: The .identifier field in the bookable ScheduledSession. This must be URI encoded.

And for Slots:

https://{checkoutBaseUrl}/v1/slots/{slot-identifier}

Where:

  • slot-identifier: The .identifier field in the bookable Slot. This must be URI encoded.

For information on how to locate the the associated SessionSeries/FacilityUse based on data in the ScheduledSession/Slot (and vice versa), please refer to .

checkoutBaseUrl is the Checkout hostname that we've set up together e.g. checkout.acmesports.com (see for more information).

To learn more about the checkoutBaseUrland how to set one up, please refer to .

Checkout
Firehose
Introduction to the Firehose
here
Your {checkoutBaseUrl} & your DNS settings