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
  • Introduction
  • Request
  • Response
  1. incorporating book and pay
  2. imin Branded Checkout

Standalone Checkout

PreviousGroup Booking [BETA]NextFirehose and Checkout [BETA]

Last updated 5 years ago

Introduction

The Standalone Checkout is available for customers who are not using the imin Events API and are instead processing open data directly.

To enable authenticated Checkout, you must register your webhook with imin. This can be done by contacting your imin liaison.

Please only refer to this page if you are processing open data directly (as opposed to using imin's Events API).

Request

All opportunities available in open data have an id .

The id from a ScheduledSession within the open data is to be supplied as the id contained within imin:initialOrder.orderedItem.orderedItem in the initial request, along with the information contained within the following JSON:

PUT /checkout-sessions HTTP/1.1
Host: checkout.example.com
Date: Mon, 8 Oct 2018 20:52:35 GMT
Accept: application/json

POST /checkout-sessions
{
  "@context": ["https://openactive.io/", "https://imin.co/"],
  "type": "imin:CheckoutSession",
  "imin:initialOrder": {
    "type": "OrderQuote",
    "orderedItem": [
      {
        "type": "OrderItem",
        "orderedItem": {
          "type": "ScheduledSession",
          "id": "https://opendata.fusion-lifestyle.com/OpenActive/api/scheduled-sessions/310003324"
        }
      }
    ]
  }
}

Response

The response will reflect back the request, but will additionally contain a potentialAction with a target URL. The data consumer uses .potentialAction[0].targetas the URL of the "book" button for this opportunity.

HTTP/1.1 201 Created
Date: Mon, 8 Oct 2018 20:52:36 GMT
Content-Type: application/json
Location: /checkout-sessions/BQokikJOvBiI2H

{
  "@context": ["https://openactive.io/", "https://imin.co/"],
  "type": "imin:CheckoutSession",
  "imin:initialOrder": {
    "type": "OrderQuote",
    "broker": {
      "type": "Organization",
      "name": "Example",
      "url": "https://www.example.com"
    },
    "orderedItem": [
      {
        "type": "OrderItem",
        "orderedItem": {
          "type": "ScheduledSession",
          "id": "https://opendata.fusion-lifestyle.com/OpenActive/api/scheduled-sessions/310003324"
        }
      }
    ]
  },
  "potentialAction": [
    {
      "type": "OrderAction",
      "name": "Checkout",
      "target": "https://checkout.example.com/opendata/BQokikJOvBiI2H",
     }
  ]
}

If the opportunity is not available for you to book within the imin platform, the following response will be returned:

HTTP/1.1 400 Bad Request
Date: Mon, 8 Oct 2018 20:52:36 GMT
Content-Type: application/json

{
  "@context": ["https://openactive.io/", "https://imin.co/"],
  "type": "UnavailableOpportunityError",
  "description": "This opportunity is not available to book."
}

If the opportunity provided is available for you to book within the imin platform, the response JSON will include the URL for the Checkout:

bookable
bookable