< Return to Summary | File Generated: Thu Nov 21 2024 17:03:52 GMT+0000 (Coordinated Universal Time)

seller-requested-replacement >> book-and-seller-replace-items (OpenBookingSimpleFlow >> Multiple)

Booking Flow: OpenBookingSimpleFlow

Opportunity Type: Multiple

Feature: Cancellation / Seller Requested Replacement (Implemented)

Test: Book and seller replaces order items.

A successful replacement of order items by seller.

Running only this test

npm start -- --runInBand test/features/cancellation/seller-requested-replacement/implemented/book-and-seller-replace-items-test.js

Is this test failing?

The OpenActive Reference Implementation test result for this test can be used as a reference to help with debugging.


⚠️ 51 passed with 0 failures, 486 warnings and 126 suggestions


✅ Fetch Opportunities

Booking System Test Interface for OrderItem 0 Request

POST https://localhost:5001/api/openbooking/test-interface/datasets/uat-ci/opportunities

{
  "@type": "ScheduledSession",
  "superEvent": {
    "@type": "SessionSeries",
    "organizer": {
      "@type": "Organization",
      "@id": "https://localhost:5001/api/identifiers/sellers/1"
    }
  },
  "@context": [
    "https://openactive.io/",
    "https://openactive.io/test-interface"
  ],
  "test:testOpportunityCriteria": "https://openactive.io/test-interface#TestOpportunityBookable",
  "test:testOpenBookingFlow": "https://openactive.io/test-interface#OpenBookingSimpleFlow"
}

Response status code: 200 OK. Responded in 57.847268ms.

{
  "@context": "https://openactive.io/",
  "@type": "ScheduledSession",
  "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/2060/events/20060"
}

Booking System Test Interface for OrderItem 2 Request

POST https://localhost:5001/api/openbooking/test-interface/datasets/uat-ci/opportunities

{
  "@type": "ScheduledSession",
  "superEvent": {
    "@type": "SessionSeries",
    "organizer": {
      "@type": "Organization",
      "@id": "https://localhost:5001/api/identifiers/sellers/1"
    }
  },
  "@context": [
    "https://openactive.io/",
    "https://openactive.io/test-interface"
  ],
  "test:testOpportunityCriteria": "https://openactive.io/test-interface#TestOpportunityBookable",
  "test:testOpenBookingFlow": "https://openactive.io/test-interface#OpenBookingSimpleFlow"
}

Response status code: 200 OK. Responded in 162.090544ms.

{
  "@context": "https://openactive.io/",
  "@type": "ScheduledSession",
  "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/2061/events/20061"
}

Booking System Test Interface for OrderItem 3 Request

POST https://localhost:5001/api/openbooking/test-interface/datasets/uat-ci/opportunities

{
  "@type": "Slot",
  "facilityUse": {
    "@type": "IndividualFacilityUse",
    "provider": {
      "@type": "Organization",
      "@id": "https://localhost:5001/api/identifiers/sellers/1"
    }
  },
  "@context": [
    "https://openactive.io/",
    "https://openactive.io/test-interface"
  ],
  "test:testOpportunityCriteria": "https://openactive.io/test-interface#TestOpportunityBookable",
  "test:testOpenBookingFlow": "https://openactive.io/test-interface#OpenBookingSimpleFlow"
}

Response status code: 200 OK. Responded in 53.880057ms.

{
  "@context": "https://openactive.io/",
  "@type": "Slot",
  "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076"
}

Booking System Test Interface for OrderItem 4 Request

POST https://localhost:5001/api/openbooking/test-interface/datasets/uat-ci/opportunities

{
  "@type": "Slot",
  "facilityUse": {
    "@type": "IndividualFacilityUse",
    "provider": {
      "@type": "Organization",
      "@id": "https://localhost:5001/api/identifiers/sellers/1"
    }
  },
  "@context": [
    "https://openactive.io/",
    "https://openactive.io/test-interface"
  ],
  "test:testOpportunityCriteria": "https://openactive.io/test-interface#TestOpportunityBookable",
  "test:testOpenBookingFlow": "https://openactive.io/test-interface#OpenBookingSimpleFlow"
}

Response status code: 200 OK. Responded in 105.112554ms.

{
  "@context": "https://openactive.io/",
  "@type": "Slot",
  "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078"
}

Booking System Test Interface for OrderItem 5 Request

POST https://localhost:5001/api/openbooking/test-interface/datasets/uat-ci/opportunities

{
  "@type": "Slot",
  "facilityUse": {
    "@type": "IndividualFacilityUse",
    "provider": {
      "@type": "Organization",
      "@id": "https://localhost:5001/api/identifiers/sellers/1"
    }
  },
  "@context": [
    "https://openactive.io/",
    "https://openactive.io/test-interface"
  ],
  "test:testOpportunityCriteria": "https://openactive.io/test-interface#TestOpportunityBookable",
  "test:testOpenBookingFlow": "https://openactive.io/test-interface#OpenBookingSimpleFlow"
}

Response status code: 200 OK. Responded in 81.122707ms.

{
  "@context": "https://openactive.io/",
  "@type": "Slot",
  "@id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077"
}

Opportunity Feed extract for OrderItem 0 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Fscheduled-sessions%2F2060%2Fevents%2F20060?useCacheIfAvailable=true


Response status code: 200 OK. Responded in 268.203441ms.

{
  "state": "updated",
  "id": "https://localhost:5001/api/identifiers/scheduled-sessions/2060/events/20060",
  "modified": "1732208653234",
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "ScheduledSession",
    "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/2060/events/20060",
    "startDate": "2024-11-22T17:04:11+00:00",
    "endDate": "2024-11-22T18:04:11+00:00",
    "superEvent": {
      "@type": "SessionSeries",
      "@id": "https://localhost:5001/api/identifiers/session-series/2060",
      "identifier": 2060,
      "name": "GOLDEN: [OPEN BOOKING API TEST INTERFACE] Bookable Event",
      "activity": [
        {
          "@type": "Concept",
          "@id": "https://openactive.io/activity-list#c07d63a0-8eb9-4602-8bcc-23be6deb8f83",
          "inScheme": "https://openactive.io/activity-list",
          "prefLabel": "Jet Skiing"
        }
      ],
      "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
      "location": {
        "@type": "Place",
        "@id": "https://example.com/place/3",
        "identifier": 3,
        "name": "Stroll & Stretch",
        "description": "Casual Calisthenics in the Heart of Commerce. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
        "address": {
          "@type": "PostalAddress",
          "addressCountry": "GB",
          "addressLocality": "Oxford",
          "addressRegion": "Oxfordshire",
          "postalCode": "OX1 1UU",
          "streetAddress": "Norfolk Street"
        },
        "geo": {
          "@type": "GeoCoordinates",
          "latitude": 51.749826,
          "longitude": -1.261492
        },
        "image": [
          {
            "@type": "ImageObject",
            "url": "https://upload.wikimedia.org/wikipedia/commons/2/28/Westfield_Garden_State_Plaza_-_panoramio.jpg"
          }
        ],
        "openingHoursSpecification": [
          {
            "@type": "OpeningHoursSpecification",
            "closes": "17:30",
            "dayOfWeek": [
              "https://schema.org/Sunday"
            ],
            "opens": "09:00"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Monday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Tuesday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Wednesday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Thursday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Friday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "17:30",
            "dayOfWeek": [
              "https://schema.org/Saturday"
            ],
            "opens": "09:00"
          }
        ],
        "telephone": "01865 000003",
        "url": "https://en.wikipedia.org/wiki/Shopping_center"
      },
      "offers": [
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
          "name": "Adult",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Adult",
            "maxValue": 59,
            "minValue": 18
          },
          "allowCustomerCancellationFullRefund": true,
          "price": 14.99,
          "priceCurrency": "GBP"
        },
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
          "name": "Junior",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Junior",
            "maxValue": 17
          },
          "allowCustomerCancellationFullRefund": true,
          "price": 14.99,
          "priceCurrency": "GBP"
        },
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
          "name": "Senior",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Senior",
            "minValue": 60
          },
          "allowCustomerCancellationFullRefund": true,
          "price": 14.99,
          "priceCurrency": "GBP"
        },
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
          "name": "Adult (off-peak)",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Adult (off-peak)",
            "maxValue": 59,
            "minValue": 18
          },
          "allowCustomerCancellationFullRefund": true,
          "price": 14.99,
          "priceCurrency": "GBP"
        }
      ],
      "organizer": {
        "@type": "Organization",
        "@id": "https://localhost:5001/api/identifiers/sellers/1",
        "name": "Acme Fitness Ltd",
        "isOpenBookingAllowed": true,
        "sameAs": [
          "https://socialmedia.com/AcmeFitnessLtd"
        ],
        "taxMode": "https://openactive.io/TaxGross",
        "telephone": "02799 899771",
        "termsOfService": [
          {
            "@type": "PrivacyPolicy",
            "name": "Privacy Policy",
            "requiresExplicitConsent": false,
            "url": "https://example.com/privacy.html"
          }
        ],
        "url": "http://marjorie.biz"
      },
      "url": "https://www.example.com/sessions/2060"
    },
    "duration": "PT1H",
    "maximumAttendeeCapacity": 10,
    "remainingAttendeeCapacity": 10
  }
}

Opportunity Feed extract for OrderItem 2 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Fscheduled-sessions%2F2061%2Fevents%2F20061?useCacheIfAvailable=true


Response status code: 200 OK. Responded in 464.835836ms.

{
  "state": "updated",
  "id": "https://localhost:5001/api/identifiers/scheduled-sessions/2061/events/20061",
  "modified": "1732208653430",
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "ScheduledSession",
    "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/2061/events/20061",
    "startDate": "2024-11-22T17:04:11+00:00",
    "endDate": "2024-11-22T18:04:11+00:00",
    "superEvent": {
      "@type": "SessionSeries",
      "@id": "https://localhost:5001/api/identifiers/session-series/2061",
      "identifier": 2061,
      "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Event",
      "activity": [
        {
          "@type": "Concept",
          "@id": "https://openactive.io/activity-list#c07d63a0-8eb9-4602-8bcc-23be6deb8f83",
          "inScheme": "https://openactive.io/activity-list",
          "prefLabel": "Jet Skiing"
        }
      ],
      "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
      "location": {
        "@type": "Place",
        "@id": "https://example.com/place/1",
        "identifier": 1,
        "name": "Post-ercise Plaza",
        "description": "Sorting Out Your Fitness One Parcel Lift at a Time! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
        "address": {
          "@type": "PostalAddress",
          "addressCountry": "GB",
          "addressLocality": "Oxford",
          "addressRegion": "Oxfordshire",
          "postalCode": "OX1 1AA",
          "streetAddress": "Kings Mead House"
        },
        "amenityFeature": [
          {
            "@type": "ChangingFacilities",
            "name": "Changing Facilities",
            "value": true
          },
          {
            "@type": "Showers",
            "name": "Showers",
            "value": true
          },
          {
            "@type": "Lockers",
            "name": "Lockers",
            "value": true
          },
          {
            "@type": "Towels",
            "name": "Towels",
            "value": false
          },
          {
            "@type": "Creche",
            "name": "Creche",
            "value": false
          },
          {
            "@type": "Parking",
            "name": "Parking",
            "value": false
          }
        ],
        "geo": {
          "@type": "GeoCoordinates",
          "latitude": 51.7502,
          "longitude": -1.2674
        },
        "image": [
          {
            "@type": "ImageObject",
            "url": "https://upload.wikimedia.org/wikipedia/commons/e/e5/Oxford_StAldates_PostOffice.jpg"
          }
        ],
        "openingHoursSpecification": [
          {
            "@type": "OpeningHoursSpecification",
            "closes": "17:30",
            "dayOfWeek": [
              "https://schema.org/Sunday"
            ],
            "opens": "09:00"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Monday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Tuesday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Wednesday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Thursday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Friday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "17:30",
            "dayOfWeek": [
              "https://schema.org/Saturday"
            ],
            "opens": "09:00"
          }
        ],
        "telephone": "01865 000001",
        "url": "https://en.wikipedia.org/wiki/Post_Office_Limited"
      },
      "offers": [
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/2061#/offers/0",
          "name": "Adult",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Adult",
            "maxValue": 59,
            "minValue": 18
          },
          "allowCustomerCancellationFullRefund": true,
          "price": 0,
          "priceCurrency": "GBP"
        },
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/2061#/offers/0",
          "name": "Junior",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Junior",
            "maxValue": 17
          },
          "allowCustomerCancellationFullRefund": true,
          "price": 0,
          "priceCurrency": "GBP"
        }
      ],
      "organizer": {
        "@type": "Organization",
        "@id": "https://localhost:5001/api/identifiers/sellers/1",
        "name": "Acme Fitness Ltd",
        "isOpenBookingAllowed": true,
        "sameAs": [
          "https://socialmedia.com/AcmeFitnessLtd"
        ],
        "taxMode": "https://openactive.io/TaxGross",
        "telephone": "07634 926547",
        "termsOfService": [
          {
            "@type": "PrivacyPolicy",
            "name": "Privacy Policy",
            "requiresExplicitConsent": false,
            "url": "https://example.com/privacy.html"
          }
        ],
        "url": "https://georgianna.info"
      },
      "url": "https://www.example.com/sessions/2061"
    },
    "duration": "PT1H",
    "maximumAttendeeCapacity": 10,
    "remainingAttendeeCapacity": 10
  }
}

Opportunity Feed extract for OrderItem 3 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Ffacility-uses%2F2076%2Findividual-facility-uses%2F1%2Fslots%2F20076?useCacheIfAvailable=true


Response status code: 200 OK. Responded in 745.144904ms.

{
  "state": "updated",
  "id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076",
  "modified": "1732208653714",
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "Slot",
    "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076",
    "identifier": 20076,
    "duration": "PT1H",
    "facilityUse": {
      "@type": "IndividualFacilityUse",
      "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1",
      "name": "Court 1 on [OPEN BOOKING API TEST INTERFACE] Bookable Facility",
      "aggregateFacilityUse": {
        "@type": "FacilityUse",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2076",
        "identifier": 2076,
        "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Facility",
        "facilityType": [
          {
            "@type": "Concept",
            "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
            "inScheme": "https://openactive.io/facility-types",
            "prefLabel": "Squash Court"
          }
        ],
        "location": {
          "@type": "Place",
          "@id": "https://example.com/place/2",
          "identifier": 2,
          "name": "Premier Lifters",
          "description": "Where your Fitness Goals are Always Inn-Sight. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
          "address": {
            "@type": "PostalAddress",
            "addressCountry": "GB",
            "addressLocality": "Oxford",
            "addressRegion": "Oxfordshire",
            "postalCode": "OX1 1BB",
            "streetAddress": "Greyfriars Court, Paradise Square"
          },
          "amenityFeature": [
            {
              "@type": "ChangingFacilities",
              "name": "Changing Facilities",
              "value": false
            },
            {
              "@type": "Showers",
              "name": "Showers",
              "value": false
            },
            {
              "@type": "Lockers",
              "name": "Lockers",
              "value": false
            },
            {
              "@type": "Towels",
              "name": "Towels",
              "value": true
            },
            {
              "@type": "Creche",
              "name": "Creche",
              "value": true
            },
            {
              "@type": "Parking",
              "name": "Parking",
              "value": true
            }
          ],
          "geo": {
            "@type": "GeoCoordinates",
            "latitude": 51.7504933,
            "longitude": -1.2620685
          },
          "image": [
            {
              "@type": "ImageObject",
              "url": "https://upload.wikimedia.org/wikipedia/commons/5/53/Cambridge_Orchard_Park_Premier_Inn.jpg"
            }
          ],
          "openingHoursSpecification": [
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Sunday"
              ],
              "opens": "09:00"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Monday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Tuesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Wednesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Thursday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Friday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Saturday"
              ],
              "opens": "09:00"
            }
          ],
          "telephone": "01865 000002",
          "url": "https://en.wikipedia.org/wiki/Premier_Inn"
        },
        "provider": {
          "@type": "Organization",
          "@id": "https://localhost:5001/api/identifiers/sellers/1",
          "name": "Acme Fitness Ltd",
          "isOpenBookingAllowed": true,
          "sameAs": [
            "https://socialmedia.com/AcmeFitnessLtd"
          ],
          "taxMode": "https://openactive.io/TaxGross",
          "telephone": "04709 887275",
          "termsOfService": [
            {
              "@type": "PrivacyPolicy",
              "name": "Privacy Policy",
              "requiresExplicitConsent": false,
              "url": "https://example.com/privacy.html"
            }
          ],
          "url": "https://sandra.name"
        },
        "url": "https://www.example.com/facilities/2076"
      }
    },
    "maximumUses": 10,
    "offers": [
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      }
    ],
    "remainingUses": 10,
    "startDate": "2024-11-22T17:04:11+00:00",
    "endDate": "2024-11-22T18:04:11+00:00"
  }
}

Opportunity Feed extract for OrderItem 4 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Ffacility-uses%2F2078%2Findividual-facility-uses%2F1%2Fslots%2F20078?useCacheIfAvailable=true


Response status code: 200 OK. Responded in 744.952908ms.

{
  "state": "updated",
  "id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078",
  "modified": "1732208653716",
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "Slot",
    "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078",
    "identifier": 20078,
    "duration": "PT1H",
    "facilityUse": {
      "@type": "IndividualFacilityUse",
      "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1",
      "name": "Court 1 on [OPEN BOOKING API TEST INTERFACE] Bookable Facility",
      "aggregateFacilityUse": {
        "@type": "FacilityUse",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2078",
        "identifier": 2078,
        "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Facility",
        "facilityType": [
          {
            "@type": "Concept",
            "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
            "inScheme": "https://openactive.io/facility-types",
            "prefLabel": "Squash Court"
          }
        ],
        "location": {
          "@type": "Place",
          "@id": "https://example.com/place/1",
          "identifier": 1,
          "name": "Post-ercise Plaza",
          "description": "Sorting Out Your Fitness One Parcel Lift at a Time! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
          "address": {
            "@type": "PostalAddress",
            "addressCountry": "GB",
            "addressLocality": "Oxford",
            "addressRegion": "Oxfordshire",
            "postalCode": "OX1 1AA",
            "streetAddress": "Kings Mead House"
          },
          "amenityFeature": [
            {
              "@type": "ChangingFacilities",
              "name": "Changing Facilities",
              "value": true
            },
            {
              "@type": "Showers",
              "name": "Showers",
              "value": true
            },
            {
              "@type": "Lockers",
              "name": "Lockers",
              "value": true
            },
            {
              "@type": "Towels",
              "name": "Towels",
              "value": false
            },
            {
              "@type": "Creche",
              "name": "Creche",
              "value": false
            },
            {
              "@type": "Parking",
              "name": "Parking",
              "value": false
            }
          ],
          "geo": {
            "@type": "GeoCoordinates",
            "latitude": 51.7502,
            "longitude": -1.2674
          },
          "image": [
            {
              "@type": "ImageObject",
              "url": "https://upload.wikimedia.org/wikipedia/commons/e/e5/Oxford_StAldates_PostOffice.jpg"
            }
          ],
          "openingHoursSpecification": [
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Sunday"
              ],
              "opens": "09:00"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Monday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Tuesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Wednesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Thursday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Friday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Saturday"
              ],
              "opens": "09:00"
            }
          ],
          "telephone": "01865 000001",
          "url": "https://en.wikipedia.org/wiki/Post_Office_Limited"
        },
        "provider": {
          "@type": "Organization",
          "@id": "https://localhost:5001/api/identifiers/sellers/1",
          "name": "Acme Fitness Ltd",
          "isOpenBookingAllowed": true,
          "sameAs": [
            "https://socialmedia.com/AcmeFitnessLtd"
          ],
          "taxMode": "https://openactive.io/TaxGross",
          "telephone": "03599 052715",
          "termsOfService": [
            {
              "@type": "PrivacyPolicy",
              "name": "Privacy Policy",
              "requiresExplicitConsent": false,
              "url": "https://example.com/privacy.html"
            }
          ],
          "url": "https://dimitri.com"
        },
        "url": "https://www.example.com/facilities/2078"
      }
    },
    "maximumUses": 10,
    "offers": [
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      }
    ],
    "remainingUses": 10,
    "startDate": "2024-11-22T17:04:11+00:00",
    "endDate": "2024-11-22T18:04:11+00:00"
  }
}

Opportunity Feed extract for OrderItem 5 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Ffacility-uses%2F2077%2Findividual-facility-uses%2F1%2Fslots%2F20077?useCacheIfAvailable=true


Response status code: 200 OK. Responded in 743.067382ms.

{
  "state": "updated",
  "id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077",
  "modified": "1732208653715",
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "Slot",
    "@id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077",
    "identifier": 20077,
    "duration": "PT1H",
    "facilityUse": {
      "@type": "IndividualFacilityUse",
      "@id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1",
      "name": "Court 1 on [OPEN BOOKING API TEST INTERFACE] Bookable Facility",
      "aggregateFacilityUse": {
        "@type": "FacilityUse",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2077",
        "identifier": 2077,
        "name": "GOLDEN: [OPEN BOOKING API TEST INTERFACE] Bookable Facility",
        "facilityType": [
          {
            "@type": "Concept",
            "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
            "inScheme": "https://openactive.io/facility-types",
            "prefLabel": "Squash Court"
          }
        ],
        "location": {
          "@type": "Place",
          "@id": "https://example.com/place/2",
          "identifier": 2,
          "name": "Premier Lifters",
          "description": "Where your Fitness Goals are Always Inn-Sight. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
          "address": {
            "@type": "PostalAddress",
            "addressCountry": "GB",
            "addressLocality": "Oxford",
            "addressRegion": "Oxfordshire",
            "postalCode": "OX1 1BB",
            "streetAddress": "Greyfriars Court, Paradise Square"
          },
          "amenityFeature": [
            {
              "@type": "ChangingFacilities",
              "name": "Changing Facilities",
              "value": false
            },
            {
              "@type": "Showers",
              "name": "Showers",
              "value": false
            },
            {
              "@type": "Lockers",
              "name": "Lockers",
              "value": false
            },
            {
              "@type": "Towels",
              "name": "Towels",
              "value": true
            },
            {
              "@type": "Creche",
              "name": "Creche",
              "value": true
            },
            {
              "@type": "Parking",
              "name": "Parking",
              "value": true
            }
          ],
          "geo": {
            "@type": "GeoCoordinates",
            "latitude": 51.7504933,
            "longitude": -1.2620685
          },
          "image": [
            {
              "@type": "ImageObject",
              "url": "https://upload.wikimedia.org/wikipedia/commons/5/53/Cambridge_Orchard_Park_Premier_Inn.jpg"
            }
          ],
          "openingHoursSpecification": [
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Sunday"
              ],
              "opens": "09:00"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Monday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Tuesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Wednesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Thursday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Friday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Saturday"
              ],
              "opens": "09:00"
            }
          ],
          "telephone": "01865 000002",
          "url": "https://en.wikipedia.org/wiki/Premier_Inn"
        },
        "provider": {
          "@type": "Organization",
          "@id": "https://localhost:5001/api/identifiers/sellers/1",
          "name": "Acme Fitness Ltd",
          "isOpenBookingAllowed": true,
          "sameAs": [
            "https://socialmedia.com/AcmeFitnessLtd"
          ],
          "taxMode": "https://openactive.io/TaxGross",
          "telephone": "09654 914040",
          "termsOfService": [
            {
              "@type": "PrivacyPolicy",
              "name": "Privacy Policy",
              "requiresExplicitConsent": false,
              "url": "https://example.com/privacy.html"
            }
          ],
          "url": "http://kenneth.org"
        },
        "url": "https://www.example.com/facilities/2077"
      }
    },
    "maximumUses": 10,
    "offers": [
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 14.99,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 14.99,
        "priceCurrency": "GBP"
      }
    ],
    "remainingUses": 10,
    "startDate": "2024-11-22T17:04:11+00:00",
    "endDate": "2024-11-22T18:04:11+00:00"
  }
}

Specs

✅ Fetch Opportunities >> validation of Opportunity Feed extract for OrderItem 0

Specs

Validations

✅ Fetch Opportunities >> validation of Opportunity Feed extract for OrderItem 1

Specs

Validations

✅ Fetch Opportunities >> validation of Opportunity Feed extract for OrderItem 2

Specs

Validations

✅ Fetch Opportunities >> validation of Opportunity Feed extract for OrderItem 3

Specs

Validations

✅ Fetch Opportunities >> validation of Opportunity Feed extract for OrderItem 4

Specs

Validations

✅ Fetch Opportunities >> validation of Opportunity Feed extract for OrderItem 5

Specs

Validations

✅ C1

C1 Request

PUT https://localhost:5001/api/openbooking/order-quote-templates/18ff8cc2-31a8-4e20-8516-ec0503b40ec5

{
  "@context": "https://openactive.io/",
  "@type": "OrderQuote",
  "brokerRole": "https://openactive.io/AgentBroker",
  "broker": {
    "@type": "Organization",
    "name": "MyFitnessApp",
    "url": "https://myfitnessapp.example.com",
    "description": "A fitness app for all the community",
    "logo": {
      "@type": "ImageObject",
      "url": "http://data.myfitnessapp.org.uk/images/logo.png"
    },
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "Alan Peacock Way",
      "addressLocality": "Village East",
      "addressRegion": "Middlesbrough",
      "postalCode": "TS4 3AE",
      "addressCountry": "GB"
    }
  },
  "seller": "https://localhost:5001/api/identifiers/sellers/1",
  "orderedItem": [
    {
      "@type": "OrderItem",
      "position": 0,
      "acceptedOffer": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
      "orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/2060/events/20060"
    },
    {
      "@type": "OrderItem",
      "position": 1,
      "acceptedOffer": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
      "orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/2060/events/20060"
    },
    {
      "@type": "OrderItem",
      "position": 2,
      "acceptedOffer": "https://localhost:5001/api/identifiers/session-series/2061#/offers/0",
      "orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/2061/events/20061"
    },
    {
      "@type": "OrderItem",
      "position": 3,
      "acceptedOffer": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076#/offers/0",
      "orderedItem": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076"
    },
    {
      "@type": "OrderItem",
      "position": 4,
      "acceptedOffer": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078#/offers/0",
      "orderedItem": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078"
    },
    {
      "@type": "OrderItem",
      "position": 5,
      "acceptedOffer": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077#/offers/0",
      "orderedItem": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077"
    }
  ],
  "payment": {
    "@type": "Payment",
    "name": "AcmeBroker Points",
    "accountId": "SN1593",
    "paymentProviderId": "STRIPE"
  }
}

Response status code: 200 OK. Responded in 139.106915ms.

{
  "@context": "https://openactive.io/",
  "@type": "OrderQuote",
  "@id": "https://localhost:5001/api/openbooking/order-quotes/18ff8cc2-31a8-4e20-8516-ec0503b40ec5",
  "lease": {
    "@type": "Lease",
    "leaseExpires": "2024-11-21T17:09:16+00:00"
  },
  "orderRequiresApproval": false,
  "bookingService": {
    "@type": "BookingService",
    "name": "Acme booking system",
    "termsOfService": [
      {
        "@type": "PrivacyPolicy",
        "name": "Privacy Policy",
        "requiresExplicitConsent": false,
        "url": "https://example.com/privacy.html"
      }
    ],
    "url": "https://example.com"
  },
  "broker": {
    "@type": "Organization",
    "name": "MyFitnessApp",
    "url": "https://myfitnessapp.example.com"
  },
  "brokerRole": "https://openactive.io/AgentBroker",
  "orderedItem": [
    {
      "@type": "OrderItem",
      "acceptedOffer": {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
        "allowCustomerCancellationFullRefund": true,
        "price": 14.99,
        "priceCurrency": "GBP"
      },
      "orderedItem": {
        "@type": "ScheduledSession",
        "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/2060/events/20060",
        "startDate": "2024-11-22T17:04:11+00:00",
        "endDate": "2024-11-22T18:04:11+00:00",
        "superEvent": {
          "@type": "SessionSeries",
          "@id": "https://localhost:5001/api/identifiers/session-series/2060",
          "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Event",
          "activity": [
            {
              "@type": "Concept",
              "@id": "https://openactive.io/activity-list#6bdea630-ad22-4e58-98a3-bca26ee3f1da",
              "inScheme": "https://openactive.io/activity-list",
              "prefLabel": "Rave Fitness"
            }
          ],
          "location": {
            "@type": "Place",
            "@id": "https://example.com/place/3",
            "identifier": 3,
            "name": "Stroll & Stretch",
            "description": "Casual Calisthenics in the Heart of Commerce. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
            "address": {
              "@type": "PostalAddress",
              "addressCountry": "GB",
              "addressLocality": "Oxford",
              "addressRegion": "Oxfordshire",
              "postalCode": "OX1 1UU",
              "streetAddress": "Norfolk Street"
            },
            "geo": {
              "@type": "GeoCoordinates",
              "latitude": 51.749826,
              "longitude": -1.261492
            },
            "image": [
              {
                "@type": "ImageObject",
                "url": "https://upload.wikimedia.org/wikipedia/commons/2/28/Westfield_Garden_State_Plaza_-_panoramio.jpg"
              }
            ],
            "openingHoursSpecification": [
              {
                "@type": "OpeningHoursSpecification",
                "closes": "17:30",
                "dayOfWeek": [
                  "https://schema.org/Sunday"
                ],
                "opens": "09:00"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Monday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Tuesday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Wednesday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Thursday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Friday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "17:30",
                "dayOfWeek": [
                  "https://schema.org/Saturday"
                ],
                "opens": "09:00"
              }
            ],
            "telephone": "01865 000003",
            "url": "https://en.wikipedia.org/wiki/Shopping_center"
          },
          "url": "https://example.com/events/2060"
        },
        "maximumAttendeeCapacity": 10,
        "remainingAttendeeCapacity": 10
      },
      "position": 0,
      "unitTaxSpecification": [
        {
          "@type": "TaxChargeSpecification",
          "name": "VAT at 20%",
          "price": 2.998,
          "priceCurrency": "GBP",
          "rate": 0.2
        }
      ]
    },
    {
      "@type": "OrderItem",
      "acceptedOffer": {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
        "allowCustomerCancellationFullRefund": true,
        "price": 14.99,
        "priceCurrency": "GBP"
      },
      "orderedItem": {
        "@type": "ScheduledSession",
        "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/2060/events/20060",
        "startDate": "2024-11-22T17:04:11+00:00",
        "endDate": "2024-11-22T18:04:11+00:00",
        "superEvent": {
          "@type": "SessionSeries",
          "@id": "https://localhost:5001/api/identifiers/session-series/2060",
          "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Event",
          "activity": [
            {
              "@type": "Concept",
              "@id": "https://openactive.io/activity-list#6bdea630-ad22-4e58-98a3-bca26ee3f1da",
              "inScheme": "https://openactive.io/activity-list",
              "prefLabel": "Rave Fitness"
            }
          ],
          "location": {
            "@type": "Place",
            "@id": "https://example.com/place/3",
            "identifier": 3,
            "name": "Stroll & Stretch",
            "description": "Casual Calisthenics in the Heart of Commerce. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
            "address": {
              "@type": "PostalAddress",
              "addressCountry": "GB",
              "addressLocality": "Oxford",
              "addressRegion": "Oxfordshire",
              "postalCode": "OX1 1UU",
              "streetAddress": "Norfolk Street"
            },
            "geo": {
              "@type": "GeoCoordinates",
              "latitude": 51.749826,
              "longitude": -1.261492
            },
            "image": [
              {
                "@type": "ImageObject",
                "url": "https://upload.wikimedia.org/wikipedia/commons/2/28/Westfield_Garden_State_Plaza_-_panoramio.jpg"
              }
            ],
            "openingHoursSpecification": [
              {
                "@type": "OpeningHoursSpecification",
                "closes": "17:30",
                "dayOfWeek": [
                  "https://schema.org/Sunday"
                ],
                "opens": "09:00"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Monday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Tuesday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Wednesday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Thursday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Friday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "17:30",
                "dayOfWeek": [
                  "https://schema.org/Saturday"
                ],
                "opens": "09:00"
              }
            ],
            "telephone": "01865 000003",
            "url": "https://en.wikipedia.org/wiki/Shopping_center"
          },
          "url": "https://example.com/events/2060"
        },
        "maximumAttendeeCapacity": 10,
        "remainingAttendeeCapacity": 10
      },
      "position": 1,
      "unitTaxSpecification": [
        {
          "@type": "TaxChargeSpecification",
          "name": "VAT at 20%",
          "price": 2.998,
          "priceCurrency": "GBP",
          "rate": 0.2
        }
      ]
    },
    {
      "@type": "OrderItem",
      "acceptedOffer": {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/session-series/2061#/offers/0",
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      "orderedItem": {
        "@type": "ScheduledSession",
        "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/2061/events/20061",
        "startDate": "2024-11-22T17:04:11+00:00",
        "endDate": "2024-11-22T18:04:11+00:00",
        "superEvent": {
          "@type": "SessionSeries",
          "@id": "https://localhost:5001/api/identifiers/session-series/2061",
          "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Event",
          "activity": [
            {
              "@type": "Concept",
              "@id": "https://openactive.io/activity-list#6bdea630-ad22-4e58-98a3-bca26ee3f1da",
              "inScheme": "https://openactive.io/activity-list",
              "prefLabel": "Rave Fitness"
            }
          ],
          "location": {
            "@type": "Place",
            "@id": "https://example.com/place/1",
            "identifier": 1,
            "name": "Post-ercise Plaza",
            "description": "Sorting Out Your Fitness One Parcel Lift at a Time! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
            "address": {
              "@type": "PostalAddress",
              "addressCountry": "GB",
              "addressLocality": "Oxford",
              "addressRegion": "Oxfordshire",
              "postalCode": "OX1 1AA",
              "streetAddress": "Kings Mead House"
            },
            "amenityFeature": [
              {
                "@type": "ChangingFacilities",
                "name": "Changing Facilities",
                "value": true
              },
              {
                "@type": "Showers",
                "name": "Showers",
                "value": true
              },
              {
                "@type": "Lockers",
                "name": "Lockers",
                "value": true
              },
              {
                "@type": "Towels",
                "name": "Towels",
                "value": false
              },
              {
                "@type": "Creche",
                "name": "Creche",
                "value": false
              },
              {
                "@type": "Parking",
                "name": "Parking",
                "value": false
              }
            ],
            "geo": {
              "@type": "GeoCoordinates",
              "latitude": 51.7502,
              "longitude": -1.2674
            },
            "image": [
              {
                "@type": "ImageObject",
                "url": "https://upload.wikimedia.org/wikipedia/commons/e/e5/Oxford_StAldates_PostOffice.jpg"
              }
            ],
            "openingHoursSpecification": [
              {
                "@type": "OpeningHoursSpecification",
                "closes": "17:30",
                "dayOfWeek": [
                  "https://schema.org/Sunday"
                ],
                "opens": "09:00"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Monday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Tuesday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Wednesday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Thursday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Friday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "17:30",
                "dayOfWeek": [
                  "https://schema.org/Saturday"
                ],
                "opens": "09:00"
              }
            ],
            "telephone": "01865 000001",
            "url": "https://en.wikipedia.org/wiki/Post_Office_Limited"
          },
          "url": "https://example.com/events/2061"
        },
        "maximumAttendeeCapacity": 10,
        "remainingAttendeeCapacity": 10
      },
      "position": 2,
      "unitTaxSpecification": [
        {
          "@type": "TaxChargeSpecification",
          "name": "VAT at 20%",
          "price": 0,
          "priceCurrency": "GBP",
          "rate": 0.2
        }
      ]
    },
    {
      "@type": "OrderItem",
      "acceptedOffer": {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076#/offers/0",
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      "orderedItem": {
        "@type": "Slot",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076",
        "facilityUse": {
          "@type": "IndividualFacilityUse",
          "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1",
          "aggregateFacilityUse": {
            "@type": "FacilityUse",
            "@id": "https://localhost:5001/api/identifiers/facility-uses/2076",
            "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Facility",
            "facilityType": [
              {
                "@type": "Concept",
                "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
                "inScheme": "https://openactive.io/facility-types",
                "prefLabel": "Squash Court"
              }
            ],
            "location": {
              "@type": "Place",
              "@id": "https://example.com/place/2",
              "identifier": 2,
              "name": "Premier Lifters",
              "description": "Where your Fitness Goals are Always Inn-Sight. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
              "address": {
                "@type": "PostalAddress",
                "addressCountry": "GB",
                "addressLocality": "Oxford",
                "addressRegion": "Oxfordshire",
                "postalCode": "OX1 1BB",
                "streetAddress": "Greyfriars Court, Paradise Square"
              },
              "amenityFeature": [
                {
                  "@type": "ChangingFacilities",
                  "name": "Changing Facilities",
                  "value": false
                },
                {
                  "@type": "Showers",
                  "name": "Showers",
                  "value": false
                },
                {
                  "@type": "Lockers",
                  "name": "Lockers",
                  "value": false
                },
                {
                  "@type": "Towels",
                  "name": "Towels",
                  "value": true
                },
                {
                  "@type": "Creche",
                  "name": "Creche",
                  "value": true
                },
                {
                  "@type": "Parking",
                  "name": "Parking",
                  "value": true
                }
              ],
              "geo": {
                "@type": "GeoCoordinates",
                "latitude": 51.7504933,
                "longitude": -1.2620685
              },
              "image": [
                {
                  "@type": "ImageObject",
                  "url": "https://upload.wikimedia.org/wikipedia/commons/5/53/Cambridge_Orchard_Park_Premier_Inn.jpg"
                }
              ],
              "openingHoursSpecification": [
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "17:30",
                  "dayOfWeek": [
                    "https://schema.org/Sunday"
                  ],
                  "opens": "09:00"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Monday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Tuesday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Wednesday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Thursday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Friday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "17:30",
                  "dayOfWeek": [
                    "https://schema.org/Saturday"
                  ],
                  "opens": "09:00"
                }
              ],
              "telephone": "01865 000002",
              "url": "https://en.wikipedia.org/wiki/Premier_Inn"
            },
            "url": "https://example.com/events/2076"
          },
          "name": "Court 1 on [OPEN BOOKING API TEST INTERFACE] Bookable Facility"
        },
        "maximumUses": 10,
        "remainingUses": 10,
        "startDate": "2024-11-22T17:04:11+00:00",
        "endDate": "2024-11-22T18:04:11+00:00"
      },
      "position": 3,
      "unitTaxSpecification": [
        {
          "@type": "TaxChargeSpecification",
          "name": "VAT at 20%",
          "price": 0,
          "priceCurrency": "GBP",
          "rate": 0.2
        }
      ]
    },
    {
      "@type": "OrderItem",
      "acceptedOffer": {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078#/offers/0",
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      "orderedItem": {
        "@type": "Slot",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078",
        "facilityUse": {
          "@type": "IndividualFacilityUse",
          "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1",
          "aggregateFacilityUse": {
            "@type": "FacilityUse",
            "@id": "https://localhost:5001/api/identifiers/facility-uses/2078",
            "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Facility",
            "facilityType": [
              {
                "@type": "Concept",
                "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
                "inScheme": "https://openactive.io/facility-types",
                "prefLabel": "Squash Court"
              }
            ],
            "location": {
              "@type": "Place",
              "@id": "https://example.com/place/1",
              "identifier": 1,
              "name": "Post-ercise Plaza",
              "description": "Sorting Out Your Fitness One Parcel Lift at a Time! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
              "address": {
                "@type": "PostalAddress",
                "addressCountry": "GB",
                "addressLocality": "Oxford",
                "addressRegion": "Oxfordshire",
                "postalCode": "OX1 1AA",
                "streetAddress": "Kings Mead House"
              },
              "amenityFeature": [
                {
                  "@type": "ChangingFacilities",
                  "name": "Changing Facilities",
                  "value": true
                },
                {
                  "@type": "Showers",
                  "name": "Showers",
                  "value": true
                },
                {
                  "@type": "Lockers",
                  "name": "Lockers",
                  "value": true
                },
                {
                  "@type": "Towels",
                  "name": "Towels",
                  "value": false
                },
                {
                  "@type": "Creche",
                  "name": "Creche",
                  "value": false
                },
                {
                  "@type": "Parking",
                  "name": "Parking",
                  "value": false
                }
              ],
              "geo": {
                "@type": "GeoCoordinates",
                "latitude": 51.7502,
                "longitude": -1.2674
              },
              "image": [
                {
                  "@type": "ImageObject",
                  "url": "https://upload.wikimedia.org/wikipedia/commons/e/e5/Oxford_StAldates_PostOffice.jpg"
                }
              ],
              "openingHoursSpecification": [
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "17:30",
                  "dayOfWeek": [
                    "https://schema.org/Sunday"
                  ],
                  "opens": "09:00"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Monday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Tuesday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Wednesday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Thursday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Friday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "17:30",
                  "dayOfWeek": [
                    "https://schema.org/Saturday"
                  ],
                  "opens": "09:00"
                }
              ],
              "telephone": "01865 000001",
              "url": "https://en.wikipedia.org/wiki/Post_Office_Limited"
            },
            "url": "https://example.com/events/2078"
          },
          "name": "Court 1 on [OPEN BOOKING API TEST INTERFACE] Bookable Facility"
        },
        "maximumUses": 10,
        "remainingUses": 10,
        "startDate": "2024-11-22T17:04:11+00:00",
        "endDate": "2024-11-22T18:04:11+00:00"
      },
      "position": 4,
      "unitTaxSpecification": [
        {
          "@type": "TaxChargeSpecification",
          "name": "VAT at 20%",
          "price": 0,
          "priceCurrency": "GBP",
          "rate": 0.2
        }
      ]
    },
    {
      "@type": "OrderItem",
      "acceptedOffer": {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077#/offers/0",
        "allowCustomerCancellationFullRefund": true,
        "price": 14.99,
        "priceCurrency": "GBP"
      },
      "orderedItem": {
        "@type": "Slot",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077",
        "facilityUse": {
          "@type": "IndividualFacilityUse",
          "@id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1",
          "aggregateFacilityUse": {
            "@type": "FacilityUse",
            "@id": "https://localhost:5001/api/identifiers/facility-uses/2077",
            "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Facility",
            "facilityType": [
              {
                "@type": "Concept",
                "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
                "inScheme": "https://openactive.io/facility-types",
                "prefLabel": "Squash Court"
              }
            ],
            "location": {
              "@type": "Place",
              "@id": "https://example.com/place/2",
              "identifier": 2,
              "name": "Premier Lifters",
              "description": "Where your Fitness Goals are Always Inn-Sight. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
              "address": {
                "@type": "PostalAddress",
                "addressCountry": "GB",
                "addressLocality": "Oxford",
                "addressRegion": "Oxfordshire",
                "postalCode": "OX1 1BB",
                "streetAddress": "Greyfriars Court, Paradise Square"
              },
              "amenityFeature": [
                {
                  "@type": "ChangingFacilities",
                  "name": "Changing Facilities",
                  "value": false
                },
                {
                  "@type": "Showers",
                  "name": "Showers",
                  "value": false
                },
                {
                  "@type": "Lockers",
                  "name": "Lockers",
                  "value": false
                },
                {
                  "@type": "Towels",
                  "name": "Towels",
                  "value": true
                },
                {
                  "@type": "Creche",
                  "name": "Creche",
                  "value": true
                },
                {
                  "@type": "Parking",
                  "name": "Parking",
                  "value": true
                }
              ],
              "geo": {
                "@type": "GeoCoordinates",
                "latitude": 51.7504933,
                "longitude": -1.2620685
              },
              "image": [
                {
                  "@type": "ImageObject",
                  "url": "https://upload.wikimedia.org/wikipedia/commons/5/53/Cambridge_Orchard_Park_Premier_Inn.jpg"
                }
              ],
              "openingHoursSpecification": [
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "17:30",
                  "dayOfWeek": [
                    "https://schema.org/Sunday"
                  ],
                  "opens": "09:00"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Monday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Tuesday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Wednesday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Thursday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Friday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "17:30",
                  "dayOfWeek": [
                    "https://schema.org/Saturday"
                  ],
                  "opens": "09:00"
                }
              ],
              "telephone": "01865 000002",
              "url": "https://en.wikipedia.org/wiki/Premier_Inn"
            },
            "url": "https://example.com/events/2077"
          },
          "name": "Court 1 on [OPEN BOOKING API TEST INTERFACE] Bookable Facility"
        },
        "maximumUses": 10,
        "remainingUses": 10,
        "startDate": "2024-11-22T17:04:11+00:00",
        "endDate": "2024-11-22T18:04:11+00:00"
      },
      "position": 5,
      "unitTaxSpecification": [
        {
          "@type": "TaxChargeSpecification",
          "name": "VAT at 20%",
          "price": 2.998,
          "priceCurrency": "GBP",
          "rate": 0.2
        }
      ]
    }
  ],
  "payment": {
    "@type": "Payment",
    "name": "AcmeBroker Points",
    "accountId": "SN1593",
    "paymentProviderId": "STRIPE"
  },
  "seller": {
    "@type": "Organization",
    "@id": "https://localhost:5001/api/identifiers/sellers/1",
    "name": "Acme Fitness Ltd",
    "address": {
      "@type": "PostalAddress",
      "addressCountry": "GB",
      "addressLocality": "Another town",
      "addressRegion": "Oxfordshire",
      "postalCode": "OX1 1AA",
      "streetAddress": "1 Hidden Gem"
    },
    "isOpenBookingAllowed": true,
    "legalName": "Acme Fitness Ltd",
    "taxMode": "https://openactive.io/TaxGross",
    "termsOfService": [
      {
        "@type": "PrivacyPolicy",
        "name": "Privacy Policy",
        "requiresExplicitConsent": false,
        "url": "https://example.com/privacy.html"
      }
    ]
  },
  "totalPaymentDue": {
    "@type": "PriceSpecification",
    "openBookingPrepayment": "https://openactive.io/Required",
    "price": 44.97,
    "priceCurrency": "GBP"
  },
  "totalPaymentTax": [
    {
      "@type": "TaxChargeSpecification",
      "name": "VAT at 20%",
      "price": 8.994,
      "priceCurrency": "GBP",
      "rate": 0.2
    }
  ]
}

Specs

✅ C1 >> validation of C1

Specs

Validations

✅ Assert Opportunity Capacity (after C1)

Opportunity Feed extract for OrderItem 0 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Fscheduled-sessions%2F2060%2Fevents%2F20060?useCacheIfAvailable=true&expectedCapacity=8


Response status code: 200 OK. Responded in 21.796952ms.

{
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "ScheduledSession",
    "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/2060/events/20060",
    "startDate": "2024-11-22T17:04:11+00:00",
    "endDate": "2024-11-22T18:04:11+00:00",
    "superEvent": {
      "@type": "SessionSeries",
      "@id": "https://localhost:5001/api/identifiers/session-series/2060",
      "identifier": 2060,
      "name": "GOLDEN: [OPEN BOOKING API TEST INTERFACE] Bookable Event",
      "activity": [
        {
          "@type": "Concept",
          "@id": "https://openactive.io/activity-list#c07d63a0-8eb9-4602-8bcc-23be6deb8f83",
          "inScheme": "https://openactive.io/activity-list",
          "prefLabel": "Jet Skiing"
        }
      ],
      "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
      "location": {
        "@type": "Place",
        "@id": "https://example.com/place/3",
        "identifier": 3,
        "name": "Stroll & Stretch",
        "description": "Casual Calisthenics in the Heart of Commerce. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
        "address": {
          "@type": "PostalAddress",
          "addressCountry": "GB",
          "addressLocality": "Oxford",
          "addressRegion": "Oxfordshire",
          "postalCode": "OX1 1UU",
          "streetAddress": "Norfolk Street"
        },
        "geo": {
          "@type": "GeoCoordinates",
          "latitude": 51.749826,
          "longitude": -1.261492
        },
        "image": [
          {
            "@type": "ImageObject",
            "url": "https://upload.wikimedia.org/wikipedia/commons/2/28/Westfield_Garden_State_Plaza_-_panoramio.jpg"
          }
        ],
        "openingHoursSpecification": [
          {
            "@type": "OpeningHoursSpecification",
            "closes": "17:30",
            "dayOfWeek": [
              "https://schema.org/Sunday"
            ],
            "opens": "09:00"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Monday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Tuesday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Wednesday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Thursday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Friday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "17:30",
            "dayOfWeek": [
              "https://schema.org/Saturday"
            ],
            "opens": "09:00"
          }
        ],
        "telephone": "01865 000003",
        "url": "https://en.wikipedia.org/wiki/Shopping_center"
      },
      "offers": [
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
          "name": "Adult",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Adult",
            "maxValue": 59,
            "minValue": 18
          },
          "allowCustomerCancellationFullRefund": true,
          "price": 14.99,
          "priceCurrency": "GBP"
        },
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
          "name": "Junior",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Junior",
            "maxValue": 17
          },
          "allowCustomerCancellationFullRefund": true,
          "price": 14.99,
          "priceCurrency": "GBP"
        },
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
          "name": "Senior",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Senior",
            "minValue": 60
          },
          "allowCustomerCancellationFullRefund": true,
          "price": 14.99,
          "priceCurrency": "GBP"
        },
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
          "name": "Adult (off-peak)",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Adult (off-peak)",
            "maxValue": 59,
            "minValue": 18
          },
          "allowCustomerCancellationFullRefund": true,
          "price": 14.99,
          "priceCurrency": "GBP"
        }
      ],
      "organizer": {
        "@type": "Organization",
        "@id": "https://localhost:5001/api/identifiers/sellers/1",
        "name": "Acme Fitness Ltd",
        "isOpenBookingAllowed": true,
        "sameAs": [
          "https://socialmedia.com/AcmeFitnessLtd"
        ],
        "taxMode": "https://openactive.io/TaxGross",
        "telephone": "02799 899771",
        "termsOfService": [
          {
            "@type": "PrivacyPolicy",
            "name": "Privacy Policy",
            "requiresExplicitConsent": false,
            "url": "https://example.com/privacy.html"
          }
        ],
        "url": "http://marjorie.biz"
      },
      "url": "https://www.example.com/sessions/2060"
    },
    "duration": "PT1H",
    "maximumAttendeeCapacity": 10,
    "remainingAttendeeCapacity": 8
  }
}

Opportunity Feed extract for OrderItem 2 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Fscheduled-sessions%2F2061%2Fevents%2F20061?useCacheIfAvailable=true&expectedCapacity=9


Response status code: 200 OK. Responded in 20.645851ms.

{
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "ScheduledSession",
    "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/2061/events/20061",
    "startDate": "2024-11-22T17:04:11+00:00",
    "endDate": "2024-11-22T18:04:11+00:00",
    "superEvent": {
      "@type": "SessionSeries",
      "@id": "https://localhost:5001/api/identifiers/session-series/2061",
      "identifier": 2061,
      "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Event",
      "activity": [
        {
          "@type": "Concept",
          "@id": "https://openactive.io/activity-list#c07d63a0-8eb9-4602-8bcc-23be6deb8f83",
          "inScheme": "https://openactive.io/activity-list",
          "prefLabel": "Jet Skiing"
        }
      ],
      "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
      "location": {
        "@type": "Place",
        "@id": "https://example.com/place/1",
        "identifier": 1,
        "name": "Post-ercise Plaza",
        "description": "Sorting Out Your Fitness One Parcel Lift at a Time! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
        "address": {
          "@type": "PostalAddress",
          "addressCountry": "GB",
          "addressLocality": "Oxford",
          "addressRegion": "Oxfordshire",
          "postalCode": "OX1 1AA",
          "streetAddress": "Kings Mead House"
        },
        "amenityFeature": [
          {
            "@type": "ChangingFacilities",
            "name": "Changing Facilities",
            "value": true
          },
          {
            "@type": "Showers",
            "name": "Showers",
            "value": true
          },
          {
            "@type": "Lockers",
            "name": "Lockers",
            "value": true
          },
          {
            "@type": "Towels",
            "name": "Towels",
            "value": false
          },
          {
            "@type": "Creche",
            "name": "Creche",
            "value": false
          },
          {
            "@type": "Parking",
            "name": "Parking",
            "value": false
          }
        ],
        "geo": {
          "@type": "GeoCoordinates",
          "latitude": 51.7502,
          "longitude": -1.2674
        },
        "image": [
          {
            "@type": "ImageObject",
            "url": "https://upload.wikimedia.org/wikipedia/commons/e/e5/Oxford_StAldates_PostOffice.jpg"
          }
        ],
        "openingHoursSpecification": [
          {
            "@type": "OpeningHoursSpecification",
            "closes": "17:30",
            "dayOfWeek": [
              "https://schema.org/Sunday"
            ],
            "opens": "09:00"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Monday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Tuesday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Wednesday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Thursday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Friday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "17:30",
            "dayOfWeek": [
              "https://schema.org/Saturday"
            ],
            "opens": "09:00"
          }
        ],
        "telephone": "01865 000001",
        "url": "https://en.wikipedia.org/wiki/Post_Office_Limited"
      },
      "offers": [
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/2061#/offers/0",
          "name": "Adult",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Adult",
            "maxValue": 59,
            "minValue": 18
          },
          "allowCustomerCancellationFullRefund": true,
          "price": 0,
          "priceCurrency": "GBP"
        },
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/2061#/offers/0",
          "name": "Junior",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Junior",
            "maxValue": 17
          },
          "allowCustomerCancellationFullRefund": true,
          "price": 0,
          "priceCurrency": "GBP"
        }
      ],
      "organizer": {
        "@type": "Organization",
        "@id": "https://localhost:5001/api/identifiers/sellers/1",
        "name": "Acme Fitness Ltd",
        "isOpenBookingAllowed": true,
        "sameAs": [
          "https://socialmedia.com/AcmeFitnessLtd"
        ],
        "taxMode": "https://openactive.io/TaxGross",
        "telephone": "07634 926547",
        "termsOfService": [
          {
            "@type": "PrivacyPolicy",
            "name": "Privacy Policy",
            "requiresExplicitConsent": false,
            "url": "https://example.com/privacy.html"
          }
        ],
        "url": "https://georgianna.info"
      },
      "url": "https://www.example.com/sessions/2061"
    },
    "duration": "PT1H",
    "maximumAttendeeCapacity": 10,
    "remainingAttendeeCapacity": 9
  }
}

Opportunity Feed extract for OrderItem 3 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Ffacility-uses%2F2076%2Findividual-facility-uses%2F1%2Fslots%2F20076?useCacheIfAvailable=true&expectedCapacity=9


Response status code: 200 OK. Responded in 652.762716ms.

{
  "state": "updated",
  "id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076",
  "modified": "1732208658664",
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "Slot",
    "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076",
    "identifier": 20076,
    "duration": "PT1H",
    "facilityUse": {
      "@type": "IndividualFacilityUse",
      "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1",
      "name": "Court 1 on [OPEN BOOKING API TEST INTERFACE] Bookable Facility",
      "aggregateFacilityUse": {
        "@type": "FacilityUse",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2076",
        "identifier": 2076,
        "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Facility",
        "facilityType": [
          {
            "@type": "Concept",
            "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
            "inScheme": "https://openactive.io/facility-types",
            "prefLabel": "Squash Court"
          }
        ],
        "location": {
          "@type": "Place",
          "@id": "https://example.com/place/2",
          "identifier": 2,
          "name": "Premier Lifters",
          "description": "Where your Fitness Goals are Always Inn-Sight. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
          "address": {
            "@type": "PostalAddress",
            "addressCountry": "GB",
            "addressLocality": "Oxford",
            "addressRegion": "Oxfordshire",
            "postalCode": "OX1 1BB",
            "streetAddress": "Greyfriars Court, Paradise Square"
          },
          "amenityFeature": [
            {
              "@type": "ChangingFacilities",
              "name": "Changing Facilities",
              "value": false
            },
            {
              "@type": "Showers",
              "name": "Showers",
              "value": false
            },
            {
              "@type": "Lockers",
              "name": "Lockers",
              "value": false
            },
            {
              "@type": "Towels",
              "name": "Towels",
              "value": true
            },
            {
              "@type": "Creche",
              "name": "Creche",
              "value": true
            },
            {
              "@type": "Parking",
              "name": "Parking",
              "value": true
            }
          ],
          "geo": {
            "@type": "GeoCoordinates",
            "latitude": 51.7504933,
            "longitude": -1.2620685
          },
          "image": [
            {
              "@type": "ImageObject",
              "url": "https://upload.wikimedia.org/wikipedia/commons/5/53/Cambridge_Orchard_Park_Premier_Inn.jpg"
            }
          ],
          "openingHoursSpecification": [
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Sunday"
              ],
              "opens": "09:00"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Monday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Tuesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Wednesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Thursday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Friday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Saturday"
              ],
              "opens": "09:00"
            }
          ],
          "telephone": "01865 000002",
          "url": "https://en.wikipedia.org/wiki/Premier_Inn"
        },
        "provider": {
          "@type": "Organization",
          "@id": "https://localhost:5001/api/identifiers/sellers/1",
          "name": "Acme Fitness Ltd",
          "isOpenBookingAllowed": true,
          "sameAs": [
            "https://socialmedia.com/AcmeFitnessLtd"
          ],
          "taxMode": "https://openactive.io/TaxGross",
          "telephone": "04709 887275",
          "termsOfService": [
            {
              "@type": "PrivacyPolicy",
              "name": "Privacy Policy",
              "requiresExplicitConsent": false,
              "url": "https://example.com/privacy.html"
            }
          ],
          "url": "https://sandra.name"
        },
        "url": "https://www.example.com/facilities/2076"
      }
    },
    "maximumUses": 10,
    "offers": [
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      }
    ],
    "remainingUses": 9,
    "startDate": "2024-11-22T17:04:11+00:00",
    "endDate": "2024-11-22T18:04:11+00:00"
  }
}

Opportunity Feed extract for OrderItem 4 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Ffacility-uses%2F2078%2Findividual-facility-uses%2F1%2Fslots%2F20078?useCacheIfAvailable=true&expectedCapacity=9


Response status code: 200 OK. Responded in 653.030814ms.

{
  "state": "updated",
  "id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078",
  "modified": "1732208658666",
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "Slot",
    "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078",
    "identifier": 20078,
    "duration": "PT1H",
    "facilityUse": {
      "@type": "IndividualFacilityUse",
      "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1",
      "name": "Court 1 on [OPEN BOOKING API TEST INTERFACE] Bookable Facility",
      "aggregateFacilityUse": {
        "@type": "FacilityUse",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2078",
        "identifier": 2078,
        "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Facility",
        "facilityType": [
          {
            "@type": "Concept",
            "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
            "inScheme": "https://openactive.io/facility-types",
            "prefLabel": "Squash Court"
          }
        ],
        "location": {
          "@type": "Place",
          "@id": "https://example.com/place/1",
          "identifier": 1,
          "name": "Post-ercise Plaza",
          "description": "Sorting Out Your Fitness One Parcel Lift at a Time! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
          "address": {
            "@type": "PostalAddress",
            "addressCountry": "GB",
            "addressLocality": "Oxford",
            "addressRegion": "Oxfordshire",
            "postalCode": "OX1 1AA",
            "streetAddress": "Kings Mead House"
          },
          "amenityFeature": [
            {
              "@type": "ChangingFacilities",
              "name": "Changing Facilities",
              "value": true
            },
            {
              "@type": "Showers",
              "name": "Showers",
              "value": true
            },
            {
              "@type": "Lockers",
              "name": "Lockers",
              "value": true
            },
            {
              "@type": "Towels",
              "name": "Towels",
              "value": false
            },
            {
              "@type": "Creche",
              "name": "Creche",
              "value": false
            },
            {
              "@type": "Parking",
              "name": "Parking",
              "value": false
            }
          ],
          "geo": {
            "@type": "GeoCoordinates",
            "latitude": 51.7502,
            "longitude": -1.2674
          },
          "image": [
            {
              "@type": "ImageObject",
              "url": "https://upload.wikimedia.org/wikipedia/commons/e/e5/Oxford_StAldates_PostOffice.jpg"
            }
          ],
          "openingHoursSpecification": [
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Sunday"
              ],
              "opens": "09:00"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Monday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Tuesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Wednesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Thursday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Friday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Saturday"
              ],
              "opens": "09:00"
            }
          ],
          "telephone": "01865 000001",
          "url": "https://en.wikipedia.org/wiki/Post_Office_Limited"
        },
        "provider": {
          "@type": "Organization",
          "@id": "https://localhost:5001/api/identifiers/sellers/1",
          "name": "Acme Fitness Ltd",
          "isOpenBookingAllowed": true,
          "sameAs": [
            "https://socialmedia.com/AcmeFitnessLtd"
          ],
          "taxMode": "https://openactive.io/TaxGross",
          "telephone": "03599 052715",
          "termsOfService": [
            {
              "@type": "PrivacyPolicy",
              "name": "Privacy Policy",
              "requiresExplicitConsent": false,
              "url": "https://example.com/privacy.html"
            }
          ],
          "url": "https://dimitri.com"
        },
        "url": "https://www.example.com/facilities/2078"
      }
    },
    "maximumUses": 10,
    "offers": [
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      }
    ],
    "remainingUses": 9,
    "startDate": "2024-11-22T17:04:11+00:00",
    "endDate": "2024-11-22T18:04:11+00:00"
  }
}

Opportunity Feed extract for OrderItem 5 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Ffacility-uses%2F2077%2Findividual-facility-uses%2F1%2Fslots%2F20077?useCacheIfAvailable=true&expectedCapacity=9


Response status code: 200 OK. Responded in 653.081404ms.

{
  "state": "updated",
  "id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077",
  "modified": "1732208658667",
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "Slot",
    "@id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077",
    "identifier": 20077,
    "duration": "PT1H",
    "facilityUse": {
      "@type": "IndividualFacilityUse",
      "@id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1",
      "name": "Court 1 on [OPEN BOOKING API TEST INTERFACE] Bookable Facility",
      "aggregateFacilityUse": {
        "@type": "FacilityUse",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2077",
        "identifier": 2077,
        "name": "GOLDEN: [OPEN BOOKING API TEST INTERFACE] Bookable Facility",
        "facilityType": [
          {
            "@type": "Concept",
            "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
            "inScheme": "https://openactive.io/facility-types",
            "prefLabel": "Squash Court"
          }
        ],
        "location": {
          "@type": "Place",
          "@id": "https://example.com/place/2",
          "identifier": 2,
          "name": "Premier Lifters",
          "description": "Where your Fitness Goals are Always Inn-Sight. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
          "address": {
            "@type": "PostalAddress",
            "addressCountry": "GB",
            "addressLocality": "Oxford",
            "addressRegion": "Oxfordshire",
            "postalCode": "OX1 1BB",
            "streetAddress": "Greyfriars Court, Paradise Square"
          },
          "amenityFeature": [
            {
              "@type": "ChangingFacilities",
              "name": "Changing Facilities",
              "value": false
            },
            {
              "@type": "Showers",
              "name": "Showers",
              "value": false
            },
            {
              "@type": "Lockers",
              "name": "Lockers",
              "value": false
            },
            {
              "@type": "Towels",
              "name": "Towels",
              "value": true
            },
            {
              "@type": "Creche",
              "name": "Creche",
              "value": true
            },
            {
              "@type": "Parking",
              "name": "Parking",
              "value": true
            }
          ],
          "geo": {
            "@type": "GeoCoordinates",
            "latitude": 51.7504933,
            "longitude": -1.2620685
          },
          "image": [
            {
              "@type": "ImageObject",
              "url": "https://upload.wikimedia.org/wikipedia/commons/5/53/Cambridge_Orchard_Park_Premier_Inn.jpg"
            }
          ],
          "openingHoursSpecification": [
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Sunday"
              ],
              "opens": "09:00"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Monday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Tuesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Wednesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Thursday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Friday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Saturday"
              ],
              "opens": "09:00"
            }
          ],
          "telephone": "01865 000002",
          "url": "https://en.wikipedia.org/wiki/Premier_Inn"
        },
        "provider": {
          "@type": "Organization",
          "@id": "https://localhost:5001/api/identifiers/sellers/1",
          "name": "Acme Fitness Ltd",
          "isOpenBookingAllowed": true,
          "sameAs": [
            "https://socialmedia.com/AcmeFitnessLtd"
          ],
          "taxMode": "https://openactive.io/TaxGross",
          "telephone": "09654 914040",
          "termsOfService": [
            {
              "@type": "PrivacyPolicy",
              "name": "Privacy Policy",
              "requiresExplicitConsent": false,
              "url": "https://example.com/privacy.html"
            }
          ],
          "url": "http://kenneth.org"
        },
        "url": "https://www.example.com/facilities/2077"
      }
    },
    "maximumUses": 10,
    "offers": [
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 14.99,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 14.99,
        "priceCurrency": "GBP"
      }
    ],
    "remainingUses": 9,
    "startDate": "2024-11-22T17:04:11+00:00",
    "endDate": "2024-11-22T18:04:11+00:00"
  }
}

Specs

✅ Assert Opportunity Capacity (after C1) >> validation of Opportunity Feed extract for OrderItem 0

Specs

Validations

✅ Assert Opportunity Capacity (after C1) >> validation of Opportunity Feed extract for OrderItem 1

Specs

Validations

✅ Assert Opportunity Capacity (after C1) >> validation of Opportunity Feed extract for OrderItem 2

Specs

Validations

✅ Assert Opportunity Capacity (after C1) >> validation of Opportunity Feed extract for OrderItem 3

Specs

Validations

✅ Assert Opportunity Capacity (after C1) >> validation of Opportunity Feed extract for OrderItem 4

Specs

Validations

✅ Assert Opportunity Capacity (after C1) >> validation of Opportunity Feed extract for OrderItem 5

Specs

Validations

✅ C2

C2 Request

PUT https://localhost:5001/api/openbooking/order-quotes/18ff8cc2-31a8-4e20-8516-ec0503b40ec5

{
  "@context": "https://openactive.io/",
  "@type": "OrderQuote",
  "brokerRole": "https://openactive.io/AgentBroker",
  "broker": {
    "@type": "Organization",
    "name": "MyFitnessApp",
    "url": "https://myfitnessapp.example.com",
    "description": "A fitness app for all the community",
    "logo": {
      "@type": "ImageObject",
      "url": "http://data.myfitnessapp.org.uk/images/logo.png"
    },
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "Alan Peacock Way",
      "addressLocality": "Village East",
      "addressRegion": "Middlesbrough",
      "postalCode": "TS4 3AE",
      "addressCountry": "GB"
    }
  },
  "seller": "https://localhost:5001/api/identifiers/sellers/1",
  "customer": {
    "@type": "Person",
    "email": "[email protected]",
    "identifier": "9731c9e0-2359-4322-8491-becd27f2f565"
  },
  "orderedItem": [
    {
      "@type": "OrderItem",
      "position": 0,
      "acceptedOffer": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
      "orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/2060/events/20060"
    },
    {
      "@type": "OrderItem",
      "position": 1,
      "acceptedOffer": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
      "orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/2060/events/20060"
    },
    {
      "@type": "OrderItem",
      "position": 2,
      "acceptedOffer": "https://localhost:5001/api/identifiers/session-series/2061#/offers/0",
      "orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/2061/events/20061"
    },
    {
      "@type": "OrderItem",
      "position": 3,
      "acceptedOffer": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076#/offers/0",
      "orderedItem": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076"
    },
    {
      "@type": "OrderItem",
      "position": 4,
      "acceptedOffer": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078#/offers/0",
      "orderedItem": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078"
    },
    {
      "@type": "OrderItem",
      "position": 5,
      "acceptedOffer": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077#/offers/0",
      "orderedItem": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077"
    }
  ],
  "payment": {
    "@type": "Payment",
    "name": "AcmeBroker Points",
    "accountId": "SN1593",
    "paymentProviderId": "STRIPE"
  }
}

Response status code: 200 OK. Responded in 60.481661ms.

{
  "@context": "https://openactive.io/",
  "@type": "OrderQuote",
  "@id": "https://localhost:5001/api/openbooking/order-quotes/18ff8cc2-31a8-4e20-8516-ec0503b40ec5",
  "lease": {
    "@type": "Lease",
    "leaseExpires": "2024-11-21T17:09:20+00:00"
  },
  "orderRequiresApproval": false,
  "bookingService": {
    "@type": "BookingService",
    "name": "Acme booking system",
    "termsOfService": [
      {
        "@type": "PrivacyPolicy",
        "name": "Privacy Policy",
        "requiresExplicitConsent": false,
        "url": "https://example.com/privacy.html"
      }
    ],
    "url": "https://example.com"
  },
  "broker": {
    "@type": "Organization",
    "name": "MyFitnessApp",
    "url": "https://myfitnessapp.example.com"
  },
  "brokerRole": "https://openactive.io/AgentBroker",
  "customer": {
    "@type": "Person",
    "identifier": "9731c9e0-2359-4322-8491-becd27f2f565",
    "email": "[email protected]"
  },
  "orderedItem": [
    {
      "@type": "OrderItem",
      "acceptedOffer": {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
        "allowCustomerCancellationFullRefund": true,
        "price": 14.99,
        "priceCurrency": "GBP"
      },
      "orderedItem": {
        "@type": "ScheduledSession",
        "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/2060/events/20060",
        "startDate": "2024-11-22T17:04:11+00:00",
        "endDate": "2024-11-22T18:04:11+00:00",
        "superEvent": {
          "@type": "SessionSeries",
          "@id": "https://localhost:5001/api/identifiers/session-series/2060",
          "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Event",
          "activity": [
            {
              "@type": "Concept",
              "@id": "https://openactive.io/activity-list#6bdea630-ad22-4e58-98a3-bca26ee3f1da",
              "inScheme": "https://openactive.io/activity-list",
              "prefLabel": "Rave Fitness"
            }
          ],
          "location": {
            "@type": "Place",
            "@id": "https://example.com/place/3",
            "identifier": 3,
            "name": "Stroll & Stretch",
            "description": "Casual Calisthenics in the Heart of Commerce. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
            "address": {
              "@type": "PostalAddress",
              "addressCountry": "GB",
              "addressLocality": "Oxford",
              "addressRegion": "Oxfordshire",
              "postalCode": "OX1 1UU",
              "streetAddress": "Norfolk Street"
            },
            "geo": {
              "@type": "GeoCoordinates",
              "latitude": 51.749826,
              "longitude": -1.261492
            },
            "image": [
              {
                "@type": "ImageObject",
                "url": "https://upload.wikimedia.org/wikipedia/commons/2/28/Westfield_Garden_State_Plaza_-_panoramio.jpg"
              }
            ],
            "openingHoursSpecification": [
              {
                "@type": "OpeningHoursSpecification",
                "closes": "17:30",
                "dayOfWeek": [
                  "https://schema.org/Sunday"
                ],
                "opens": "09:00"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Monday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Tuesday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Wednesday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Thursday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Friday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "17:30",
                "dayOfWeek": [
                  "https://schema.org/Saturday"
                ],
                "opens": "09:00"
              }
            ],
            "telephone": "01865 000003",
            "url": "https://en.wikipedia.org/wiki/Shopping_center"
          },
          "url": "https://example.com/events/2060"
        },
        "maximumAttendeeCapacity": 10,
        "remainingAttendeeCapacity": 10
      },
      "position": 0,
      "unitTaxSpecification": [
        {
          "@type": "TaxChargeSpecification",
          "name": "VAT at 20%",
          "price": 2.998,
          "priceCurrency": "GBP",
          "rate": 0.2
        }
      ]
    },
    {
      "@type": "OrderItem",
      "acceptedOffer": {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
        "allowCustomerCancellationFullRefund": true,
        "price": 14.99,
        "priceCurrency": "GBP"
      },
      "orderedItem": {
        "@type": "ScheduledSession",
        "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/2060/events/20060",
        "startDate": "2024-11-22T17:04:11+00:00",
        "endDate": "2024-11-22T18:04:11+00:00",
        "superEvent": {
          "@type": "SessionSeries",
          "@id": "https://localhost:5001/api/identifiers/session-series/2060",
          "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Event",
          "activity": [
            {
              "@type": "Concept",
              "@id": "https://openactive.io/activity-list#6bdea630-ad22-4e58-98a3-bca26ee3f1da",
              "inScheme": "https://openactive.io/activity-list",
              "prefLabel": "Rave Fitness"
            }
          ],
          "location": {
            "@type": "Place",
            "@id": "https://example.com/place/3",
            "identifier": 3,
            "name": "Stroll & Stretch",
            "description": "Casual Calisthenics in the Heart of Commerce. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
            "address": {
              "@type": "PostalAddress",
              "addressCountry": "GB",
              "addressLocality": "Oxford",
              "addressRegion": "Oxfordshire",
              "postalCode": "OX1 1UU",
              "streetAddress": "Norfolk Street"
            },
            "geo": {
              "@type": "GeoCoordinates",
              "latitude": 51.749826,
              "longitude": -1.261492
            },
            "image": [
              {
                "@type": "ImageObject",
                "url": "https://upload.wikimedia.org/wikipedia/commons/2/28/Westfield_Garden_State_Plaza_-_panoramio.jpg"
              }
            ],
            "openingHoursSpecification": [
              {
                "@type": "OpeningHoursSpecification",
                "closes": "17:30",
                "dayOfWeek": [
                  "https://schema.org/Sunday"
                ],
                "opens": "09:00"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Monday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Tuesday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Wednesday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Thursday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Friday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "17:30",
                "dayOfWeek": [
                  "https://schema.org/Saturday"
                ],
                "opens": "09:00"
              }
            ],
            "telephone": "01865 000003",
            "url": "https://en.wikipedia.org/wiki/Shopping_center"
          },
          "url": "https://example.com/events/2060"
        },
        "maximumAttendeeCapacity": 10,
        "remainingAttendeeCapacity": 10
      },
      "position": 1,
      "unitTaxSpecification": [
        {
          "@type": "TaxChargeSpecification",
          "name": "VAT at 20%",
          "price": 2.998,
          "priceCurrency": "GBP",
          "rate": 0.2
        }
      ]
    },
    {
      "@type": "OrderItem",
      "acceptedOffer": {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/session-series/2061#/offers/0",
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      "orderedItem": {
        "@type": "ScheduledSession",
        "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/2061/events/20061",
        "startDate": "2024-11-22T17:04:11+00:00",
        "endDate": "2024-11-22T18:04:11+00:00",
        "superEvent": {
          "@type": "SessionSeries",
          "@id": "https://localhost:5001/api/identifiers/session-series/2061",
          "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Event",
          "activity": [
            {
              "@type": "Concept",
              "@id": "https://openactive.io/activity-list#6bdea630-ad22-4e58-98a3-bca26ee3f1da",
              "inScheme": "https://openactive.io/activity-list",
              "prefLabel": "Rave Fitness"
            }
          ],
          "location": {
            "@type": "Place",
            "@id": "https://example.com/place/1",
            "identifier": 1,
            "name": "Post-ercise Plaza",
            "description": "Sorting Out Your Fitness One Parcel Lift at a Time! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
            "address": {
              "@type": "PostalAddress",
              "addressCountry": "GB",
              "addressLocality": "Oxford",
              "addressRegion": "Oxfordshire",
              "postalCode": "OX1 1AA",
              "streetAddress": "Kings Mead House"
            },
            "amenityFeature": [
              {
                "@type": "ChangingFacilities",
                "name": "Changing Facilities",
                "value": true
              },
              {
                "@type": "Showers",
                "name": "Showers",
                "value": true
              },
              {
                "@type": "Lockers",
                "name": "Lockers",
                "value": true
              },
              {
                "@type": "Towels",
                "name": "Towels",
                "value": false
              },
              {
                "@type": "Creche",
                "name": "Creche",
                "value": false
              },
              {
                "@type": "Parking",
                "name": "Parking",
                "value": false
              }
            ],
            "geo": {
              "@type": "GeoCoordinates",
              "latitude": 51.7502,
              "longitude": -1.2674
            },
            "image": [
              {
                "@type": "ImageObject",
                "url": "https://upload.wikimedia.org/wikipedia/commons/e/e5/Oxford_StAldates_PostOffice.jpg"
              }
            ],
            "openingHoursSpecification": [
              {
                "@type": "OpeningHoursSpecification",
                "closes": "17:30",
                "dayOfWeek": [
                  "https://schema.org/Sunday"
                ],
                "opens": "09:00"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Monday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Tuesday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Wednesday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Thursday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Friday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "17:30",
                "dayOfWeek": [
                  "https://schema.org/Saturday"
                ],
                "opens": "09:00"
              }
            ],
            "telephone": "01865 000001",
            "url": "https://en.wikipedia.org/wiki/Post_Office_Limited"
          },
          "url": "https://example.com/events/2061"
        },
        "maximumAttendeeCapacity": 10,
        "remainingAttendeeCapacity": 10
      },
      "position": 2,
      "unitTaxSpecification": [
        {
          "@type": "TaxChargeSpecification",
          "name": "VAT at 20%",
          "price": 0,
          "priceCurrency": "GBP",
          "rate": 0.2
        }
      ]
    },
    {
      "@type": "OrderItem",
      "acceptedOffer": {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076#/offers/0",
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      "orderedItem": {
        "@type": "Slot",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076",
        "facilityUse": {
          "@type": "IndividualFacilityUse",
          "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1",
          "aggregateFacilityUse": {
            "@type": "FacilityUse",
            "@id": "https://localhost:5001/api/identifiers/facility-uses/2076",
            "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Facility",
            "facilityType": [
              {
                "@type": "Concept",
                "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
                "inScheme": "https://openactive.io/facility-types",
                "prefLabel": "Squash Court"
              }
            ],
            "location": {
              "@type": "Place",
              "@id": "https://example.com/place/2",
              "identifier": 2,
              "name": "Premier Lifters",
              "description": "Where your Fitness Goals are Always Inn-Sight. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
              "address": {
                "@type": "PostalAddress",
                "addressCountry": "GB",
                "addressLocality": "Oxford",
                "addressRegion": "Oxfordshire",
                "postalCode": "OX1 1BB",
                "streetAddress": "Greyfriars Court, Paradise Square"
              },
              "amenityFeature": [
                {
                  "@type": "ChangingFacilities",
                  "name": "Changing Facilities",
                  "value": false
                },
                {
                  "@type": "Showers",
                  "name": "Showers",
                  "value": false
                },
                {
                  "@type": "Lockers",
                  "name": "Lockers",
                  "value": false
                },
                {
                  "@type": "Towels",
                  "name": "Towels",
                  "value": true
                },
                {
                  "@type": "Creche",
                  "name": "Creche",
                  "value": true
                },
                {
                  "@type": "Parking",
                  "name": "Parking",
                  "value": true
                }
              ],
              "geo": {
                "@type": "GeoCoordinates",
                "latitude": 51.7504933,
                "longitude": -1.2620685
              },
              "image": [
                {
                  "@type": "ImageObject",
                  "url": "https://upload.wikimedia.org/wikipedia/commons/5/53/Cambridge_Orchard_Park_Premier_Inn.jpg"
                }
              ],
              "openingHoursSpecification": [
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "17:30",
                  "dayOfWeek": [
                    "https://schema.org/Sunday"
                  ],
                  "opens": "09:00"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Monday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Tuesday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Wednesday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Thursday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Friday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "17:30",
                  "dayOfWeek": [
                    "https://schema.org/Saturday"
                  ],
                  "opens": "09:00"
                }
              ],
              "telephone": "01865 000002",
              "url": "https://en.wikipedia.org/wiki/Premier_Inn"
            },
            "url": "https://example.com/events/2076"
          },
          "name": "Court 1 on [OPEN BOOKING API TEST INTERFACE] Bookable Facility"
        },
        "maximumUses": 10,
        "remainingUses": 10,
        "startDate": "2024-11-22T17:04:11+00:00",
        "endDate": "2024-11-22T18:04:11+00:00"
      },
      "position": 3,
      "unitTaxSpecification": [
        {
          "@type": "TaxChargeSpecification",
          "name": "VAT at 20%",
          "price": 0,
          "priceCurrency": "GBP",
          "rate": 0.2
        }
      ]
    },
    {
      "@type": "OrderItem",
      "acceptedOffer": {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078#/offers/0",
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      "orderedItem": {
        "@type": "Slot",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078",
        "facilityUse": {
          "@type": "IndividualFacilityUse",
          "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1",
          "aggregateFacilityUse": {
            "@type": "FacilityUse",
            "@id": "https://localhost:5001/api/identifiers/facility-uses/2078",
            "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Facility",
            "facilityType": [
              {
                "@type": "Concept",
                "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
                "inScheme": "https://openactive.io/facility-types",
                "prefLabel": "Squash Court"
              }
            ],
            "location": {
              "@type": "Place",
              "@id": "https://example.com/place/1",
              "identifier": 1,
              "name": "Post-ercise Plaza",
              "description": "Sorting Out Your Fitness One Parcel Lift at a Time! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
              "address": {
                "@type": "PostalAddress",
                "addressCountry": "GB",
                "addressLocality": "Oxford",
                "addressRegion": "Oxfordshire",
                "postalCode": "OX1 1AA",
                "streetAddress": "Kings Mead House"
              },
              "amenityFeature": [
                {
                  "@type": "ChangingFacilities",
                  "name": "Changing Facilities",
                  "value": true
                },
                {
                  "@type": "Showers",
                  "name": "Showers",
                  "value": true
                },
                {
                  "@type": "Lockers",
                  "name": "Lockers",
                  "value": true
                },
                {
                  "@type": "Towels",
                  "name": "Towels",
                  "value": false
                },
                {
                  "@type": "Creche",
                  "name": "Creche",
                  "value": false
                },
                {
                  "@type": "Parking",
                  "name": "Parking",
                  "value": false
                }
              ],
              "geo": {
                "@type": "GeoCoordinates",
                "latitude": 51.7502,
                "longitude": -1.2674
              },
              "image": [
                {
                  "@type": "ImageObject",
                  "url": "https://upload.wikimedia.org/wikipedia/commons/e/e5/Oxford_StAldates_PostOffice.jpg"
                }
              ],
              "openingHoursSpecification": [
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "17:30",
                  "dayOfWeek": [
                    "https://schema.org/Sunday"
                  ],
                  "opens": "09:00"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Monday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Tuesday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Wednesday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Thursday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Friday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "17:30",
                  "dayOfWeek": [
                    "https://schema.org/Saturday"
                  ],
                  "opens": "09:00"
                }
              ],
              "telephone": "01865 000001",
              "url": "https://en.wikipedia.org/wiki/Post_Office_Limited"
            },
            "url": "https://example.com/events/2078"
          },
          "name": "Court 1 on [OPEN BOOKING API TEST INTERFACE] Bookable Facility"
        },
        "maximumUses": 10,
        "remainingUses": 10,
        "startDate": "2024-11-22T17:04:11+00:00",
        "endDate": "2024-11-22T18:04:11+00:00"
      },
      "position": 4,
      "unitTaxSpecification": [
        {
          "@type": "TaxChargeSpecification",
          "name": "VAT at 20%",
          "price": 0,
          "priceCurrency": "GBP",
          "rate": 0.2
        }
      ]
    },
    {
      "@type": "OrderItem",
      "acceptedOffer": {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077#/offers/0",
        "allowCustomerCancellationFullRefund": true,
        "price": 14.99,
        "priceCurrency": "GBP"
      },
      "orderedItem": {
        "@type": "Slot",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077",
        "facilityUse": {
          "@type": "IndividualFacilityUse",
          "@id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1",
          "aggregateFacilityUse": {
            "@type": "FacilityUse",
            "@id": "https://localhost:5001/api/identifiers/facility-uses/2077",
            "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Facility",
            "facilityType": [
              {
                "@type": "Concept",
                "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
                "inScheme": "https://openactive.io/facility-types",
                "prefLabel": "Squash Court"
              }
            ],
            "location": {
              "@type": "Place",
              "@id": "https://example.com/place/2",
              "identifier": 2,
              "name": "Premier Lifters",
              "description": "Where your Fitness Goals are Always Inn-Sight. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
              "address": {
                "@type": "PostalAddress",
                "addressCountry": "GB",
                "addressLocality": "Oxford",
                "addressRegion": "Oxfordshire",
                "postalCode": "OX1 1BB",
                "streetAddress": "Greyfriars Court, Paradise Square"
              },
              "amenityFeature": [
                {
                  "@type": "ChangingFacilities",
                  "name": "Changing Facilities",
                  "value": false
                },
                {
                  "@type": "Showers",
                  "name": "Showers",
                  "value": false
                },
                {
                  "@type": "Lockers",
                  "name": "Lockers",
                  "value": false
                },
                {
                  "@type": "Towels",
                  "name": "Towels",
                  "value": true
                },
                {
                  "@type": "Creche",
                  "name": "Creche",
                  "value": true
                },
                {
                  "@type": "Parking",
                  "name": "Parking",
                  "value": true
                }
              ],
              "geo": {
                "@type": "GeoCoordinates",
                "latitude": 51.7504933,
                "longitude": -1.2620685
              },
              "image": [
                {
                  "@type": "ImageObject",
                  "url": "https://upload.wikimedia.org/wikipedia/commons/5/53/Cambridge_Orchard_Park_Premier_Inn.jpg"
                }
              ],
              "openingHoursSpecification": [
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "17:30",
                  "dayOfWeek": [
                    "https://schema.org/Sunday"
                  ],
                  "opens": "09:00"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Monday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Tuesday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Wednesday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Thursday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Friday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "17:30",
                  "dayOfWeek": [
                    "https://schema.org/Saturday"
                  ],
                  "opens": "09:00"
                }
              ],
              "telephone": "01865 000002",
              "url": "https://en.wikipedia.org/wiki/Premier_Inn"
            },
            "url": "https://example.com/events/2077"
          },
          "name": "Court 1 on [OPEN BOOKING API TEST INTERFACE] Bookable Facility"
        },
        "maximumUses": 10,
        "remainingUses": 10,
        "startDate": "2024-11-22T17:04:11+00:00",
        "endDate": "2024-11-22T18:04:11+00:00"
      },
      "position": 5,
      "unitTaxSpecification": [
        {
          "@type": "TaxChargeSpecification",
          "name": "VAT at 20%",
          "price": 2.998,
          "priceCurrency": "GBP",
          "rate": 0.2
        }
      ]
    }
  ],
  "payment": {
    "@type": "Payment",
    "name": "AcmeBroker Points",
    "accountId": "SN1593",
    "paymentProviderId": "STRIPE"
  },
  "seller": {
    "@type": "Organization",
    "@id": "https://localhost:5001/api/identifiers/sellers/1",
    "name": "Acme Fitness Ltd",
    "address": {
      "@type": "PostalAddress",
      "addressCountry": "GB",
      "addressLocality": "Another town",
      "addressRegion": "Oxfordshire",
      "postalCode": "OX1 1AA",
      "streetAddress": "1 Hidden Gem"
    },
    "isOpenBookingAllowed": true,
    "legalName": "Acme Fitness Ltd",
    "taxMode": "https://openactive.io/TaxGross",
    "termsOfService": [
      {
        "@type": "PrivacyPolicy",
        "name": "Privacy Policy",
        "requiresExplicitConsent": false,
        "url": "https://example.com/privacy.html"
      }
    ]
  },
  "totalPaymentDue": {
    "@type": "PriceSpecification",
    "openBookingPrepayment": "https://openactive.io/Required",
    "price": 44.97,
    "priceCurrency": "GBP"
  },
  "totalPaymentTax": [
    {
      "@type": "TaxChargeSpecification",
      "name": "VAT at 20%",
      "price": 8.994,
      "priceCurrency": "GBP",
      "rate": 0.2
    }
  ]
}

Specs

✅ C2 >> validation of C2

Specs

Validations

✅ Assert Opportunity Capacity (after C2)

Opportunity Feed extract for OrderItem 0 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Fscheduled-sessions%2F2060%2Fevents%2F20060?useCacheIfAvailable=true&expectedCapacity=8


Response status code: 200 OK. Responded in 23.087823ms.

{
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "ScheduledSession",
    "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/2060/events/20060",
    "startDate": "2024-11-22T17:04:11+00:00",
    "endDate": "2024-11-22T18:04:11+00:00",
    "superEvent": {
      "@type": "SessionSeries",
      "@id": "https://localhost:5001/api/identifiers/session-series/2060",
      "identifier": 2060,
      "name": "GOLDEN: [OPEN BOOKING API TEST INTERFACE] Bookable Event",
      "activity": [
        {
          "@type": "Concept",
          "@id": "https://openactive.io/activity-list#c07d63a0-8eb9-4602-8bcc-23be6deb8f83",
          "inScheme": "https://openactive.io/activity-list",
          "prefLabel": "Jet Skiing"
        }
      ],
      "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
      "location": {
        "@type": "Place",
        "@id": "https://example.com/place/3",
        "identifier": 3,
        "name": "Stroll & Stretch",
        "description": "Casual Calisthenics in the Heart of Commerce. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
        "address": {
          "@type": "PostalAddress",
          "addressCountry": "GB",
          "addressLocality": "Oxford",
          "addressRegion": "Oxfordshire",
          "postalCode": "OX1 1UU",
          "streetAddress": "Norfolk Street"
        },
        "geo": {
          "@type": "GeoCoordinates",
          "latitude": 51.749826,
          "longitude": -1.261492
        },
        "image": [
          {
            "@type": "ImageObject",
            "url": "https://upload.wikimedia.org/wikipedia/commons/2/28/Westfield_Garden_State_Plaza_-_panoramio.jpg"
          }
        ],
        "openingHoursSpecification": [
          {
            "@type": "OpeningHoursSpecification",
            "closes": "17:30",
            "dayOfWeek": [
              "https://schema.org/Sunday"
            ],
            "opens": "09:00"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Monday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Tuesday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Wednesday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Thursday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Friday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "17:30",
            "dayOfWeek": [
              "https://schema.org/Saturday"
            ],
            "opens": "09:00"
          }
        ],
        "telephone": "01865 000003",
        "url": "https://en.wikipedia.org/wiki/Shopping_center"
      },
      "offers": [
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
          "name": "Adult",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Adult",
            "maxValue": 59,
            "minValue": 18
          },
          "allowCustomerCancellationFullRefund": true,
          "price": 14.99,
          "priceCurrency": "GBP"
        },
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
          "name": "Junior",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Junior",
            "maxValue": 17
          },
          "allowCustomerCancellationFullRefund": true,
          "price": 14.99,
          "priceCurrency": "GBP"
        },
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
          "name": "Senior",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Senior",
            "minValue": 60
          },
          "allowCustomerCancellationFullRefund": true,
          "price": 14.99,
          "priceCurrency": "GBP"
        },
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
          "name": "Adult (off-peak)",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Adult (off-peak)",
            "maxValue": 59,
            "minValue": 18
          },
          "allowCustomerCancellationFullRefund": true,
          "price": 14.99,
          "priceCurrency": "GBP"
        }
      ],
      "organizer": {
        "@type": "Organization",
        "@id": "https://localhost:5001/api/identifiers/sellers/1",
        "name": "Acme Fitness Ltd",
        "isOpenBookingAllowed": true,
        "sameAs": [
          "https://socialmedia.com/AcmeFitnessLtd"
        ],
        "taxMode": "https://openactive.io/TaxGross",
        "telephone": "02799 899771",
        "termsOfService": [
          {
            "@type": "PrivacyPolicy",
            "name": "Privacy Policy",
            "requiresExplicitConsent": false,
            "url": "https://example.com/privacy.html"
          }
        ],
        "url": "http://marjorie.biz"
      },
      "url": "https://www.example.com/sessions/2060"
    },
    "duration": "PT1H",
    "maximumAttendeeCapacity": 10,
    "remainingAttendeeCapacity": 8
  }
}

Opportunity Feed extract for OrderItem 2 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Fscheduled-sessions%2F2061%2Fevents%2F20061?useCacheIfAvailable=true&expectedCapacity=9


Response status code: 200 OK. Responded in 22.051678ms.

{
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "ScheduledSession",
    "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/2061/events/20061",
    "startDate": "2024-11-22T17:04:11+00:00",
    "endDate": "2024-11-22T18:04:11+00:00",
    "superEvent": {
      "@type": "SessionSeries",
      "@id": "https://localhost:5001/api/identifiers/session-series/2061",
      "identifier": 2061,
      "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Event",
      "activity": [
        {
          "@type": "Concept",
          "@id": "https://openactive.io/activity-list#c07d63a0-8eb9-4602-8bcc-23be6deb8f83",
          "inScheme": "https://openactive.io/activity-list",
          "prefLabel": "Jet Skiing"
        }
      ],
      "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
      "location": {
        "@type": "Place",
        "@id": "https://example.com/place/1",
        "identifier": 1,
        "name": "Post-ercise Plaza",
        "description": "Sorting Out Your Fitness One Parcel Lift at a Time! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
        "address": {
          "@type": "PostalAddress",
          "addressCountry": "GB",
          "addressLocality": "Oxford",
          "addressRegion": "Oxfordshire",
          "postalCode": "OX1 1AA",
          "streetAddress": "Kings Mead House"
        },
        "amenityFeature": [
          {
            "@type": "ChangingFacilities",
            "name": "Changing Facilities",
            "value": true
          },
          {
            "@type": "Showers",
            "name": "Showers",
            "value": true
          },
          {
            "@type": "Lockers",
            "name": "Lockers",
            "value": true
          },
          {
            "@type": "Towels",
            "name": "Towels",
            "value": false
          },
          {
            "@type": "Creche",
            "name": "Creche",
            "value": false
          },
          {
            "@type": "Parking",
            "name": "Parking",
            "value": false
          }
        ],
        "geo": {
          "@type": "GeoCoordinates",
          "latitude": 51.7502,
          "longitude": -1.2674
        },
        "image": [
          {
            "@type": "ImageObject",
            "url": "https://upload.wikimedia.org/wikipedia/commons/e/e5/Oxford_StAldates_PostOffice.jpg"
          }
        ],
        "openingHoursSpecification": [
          {
            "@type": "OpeningHoursSpecification",
            "closes": "17:30",
            "dayOfWeek": [
              "https://schema.org/Sunday"
            ],
            "opens": "09:00"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Monday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Tuesday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Wednesday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Thursday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Friday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "17:30",
            "dayOfWeek": [
              "https://schema.org/Saturday"
            ],
            "opens": "09:00"
          }
        ],
        "telephone": "01865 000001",
        "url": "https://en.wikipedia.org/wiki/Post_Office_Limited"
      },
      "offers": [
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/2061#/offers/0",
          "name": "Adult",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Adult",
            "maxValue": 59,
            "minValue": 18
          },
          "allowCustomerCancellationFullRefund": true,
          "price": 0,
          "priceCurrency": "GBP"
        },
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/2061#/offers/0",
          "name": "Junior",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Junior",
            "maxValue": 17
          },
          "allowCustomerCancellationFullRefund": true,
          "price": 0,
          "priceCurrency": "GBP"
        }
      ],
      "organizer": {
        "@type": "Organization",
        "@id": "https://localhost:5001/api/identifiers/sellers/1",
        "name": "Acme Fitness Ltd",
        "isOpenBookingAllowed": true,
        "sameAs": [
          "https://socialmedia.com/AcmeFitnessLtd"
        ],
        "taxMode": "https://openactive.io/TaxGross",
        "telephone": "07634 926547",
        "termsOfService": [
          {
            "@type": "PrivacyPolicy",
            "name": "Privacy Policy",
            "requiresExplicitConsent": false,
            "url": "https://example.com/privacy.html"
          }
        ],
        "url": "https://georgianna.info"
      },
      "url": "https://www.example.com/sessions/2061"
    },
    "duration": "PT1H",
    "maximumAttendeeCapacity": 10,
    "remainingAttendeeCapacity": 9
  }
}

Opportunity Feed extract for OrderItem 3 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Ffacility-uses%2F2076%2Findividual-facility-uses%2F1%2Fslots%2F20076?useCacheIfAvailable=true&expectedCapacity=9


Response status code: 200 OK. Responded in 21.131732ms.

{
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "Slot",
    "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076",
    "identifier": 20076,
    "duration": "PT1H",
    "facilityUse": {
      "@type": "IndividualFacilityUse",
      "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1",
      "name": "Court 1 on [OPEN BOOKING API TEST INTERFACE] Bookable Facility",
      "aggregateFacilityUse": {
        "@type": "FacilityUse",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2076",
        "identifier": 2076,
        "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Facility",
        "facilityType": [
          {
            "@type": "Concept",
            "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
            "inScheme": "https://openactive.io/facility-types",
            "prefLabel": "Squash Court"
          }
        ],
        "location": {
          "@type": "Place",
          "@id": "https://example.com/place/2",
          "identifier": 2,
          "name": "Premier Lifters",
          "description": "Where your Fitness Goals are Always Inn-Sight. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
          "address": {
            "@type": "PostalAddress",
            "addressCountry": "GB",
            "addressLocality": "Oxford",
            "addressRegion": "Oxfordshire",
            "postalCode": "OX1 1BB",
            "streetAddress": "Greyfriars Court, Paradise Square"
          },
          "amenityFeature": [
            {
              "@type": "ChangingFacilities",
              "name": "Changing Facilities",
              "value": false
            },
            {
              "@type": "Showers",
              "name": "Showers",
              "value": false
            },
            {
              "@type": "Lockers",
              "name": "Lockers",
              "value": false
            },
            {
              "@type": "Towels",
              "name": "Towels",
              "value": true
            },
            {
              "@type": "Creche",
              "name": "Creche",
              "value": true
            },
            {
              "@type": "Parking",
              "name": "Parking",
              "value": true
            }
          ],
          "geo": {
            "@type": "GeoCoordinates",
            "latitude": 51.7504933,
            "longitude": -1.2620685
          },
          "image": [
            {
              "@type": "ImageObject",
              "url": "https://upload.wikimedia.org/wikipedia/commons/5/53/Cambridge_Orchard_Park_Premier_Inn.jpg"
            }
          ],
          "openingHoursSpecification": [
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Sunday"
              ],
              "opens": "09:00"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Monday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Tuesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Wednesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Thursday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Friday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Saturday"
              ],
              "opens": "09:00"
            }
          ],
          "telephone": "01865 000002",
          "url": "https://en.wikipedia.org/wiki/Premier_Inn"
        },
        "provider": {
          "@type": "Organization",
          "@id": "https://localhost:5001/api/identifiers/sellers/1",
          "name": "Acme Fitness Ltd",
          "isOpenBookingAllowed": true,
          "sameAs": [
            "https://socialmedia.com/AcmeFitnessLtd"
          ],
          "taxMode": "https://openactive.io/TaxGross",
          "telephone": "04709 887275",
          "termsOfService": [
            {
              "@type": "PrivacyPolicy",
              "name": "Privacy Policy",
              "requiresExplicitConsent": false,
              "url": "https://example.com/privacy.html"
            }
          ],
          "url": "https://sandra.name"
        },
        "url": "https://www.example.com/facilities/2076"
      }
    },
    "maximumUses": 10,
    "offers": [
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      }
    ],
    "remainingUses": 9,
    "startDate": "2024-11-22T17:04:11+00:00",
    "endDate": "2024-11-22T18:04:11+00:00"
  }
}

Opportunity Feed extract for OrderItem 4 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Ffacility-uses%2F2078%2Findividual-facility-uses%2F1%2Fslots%2F20078?useCacheIfAvailable=true&expectedCapacity=9


Response status code: 200 OK. Responded in 21.963844ms.

{
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "Slot",
    "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078",
    "identifier": 20078,
    "duration": "PT1H",
    "facilityUse": {
      "@type": "IndividualFacilityUse",
      "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1",
      "name": "Court 1 on [OPEN BOOKING API TEST INTERFACE] Bookable Facility",
      "aggregateFacilityUse": {
        "@type": "FacilityUse",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2078",
        "identifier": 2078,
        "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Facility",
        "facilityType": [
          {
            "@type": "Concept",
            "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
            "inScheme": "https://openactive.io/facility-types",
            "prefLabel": "Squash Court"
          }
        ],
        "location": {
          "@type": "Place",
          "@id": "https://example.com/place/1",
          "identifier": 1,
          "name": "Post-ercise Plaza",
          "description": "Sorting Out Your Fitness One Parcel Lift at a Time! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
          "address": {
            "@type": "PostalAddress",
            "addressCountry": "GB",
            "addressLocality": "Oxford",
            "addressRegion": "Oxfordshire",
            "postalCode": "OX1 1AA",
            "streetAddress": "Kings Mead House"
          },
          "amenityFeature": [
            {
              "@type": "ChangingFacilities",
              "name": "Changing Facilities",
              "value": true
            },
            {
              "@type": "Showers",
              "name": "Showers",
              "value": true
            },
            {
              "@type": "Lockers",
              "name": "Lockers",
              "value": true
            },
            {
              "@type": "Towels",
              "name": "Towels",
              "value": false
            },
            {
              "@type": "Creche",
              "name": "Creche",
              "value": false
            },
            {
              "@type": "Parking",
              "name": "Parking",
              "value": false
            }
          ],
          "geo": {
            "@type": "GeoCoordinates",
            "latitude": 51.7502,
            "longitude": -1.2674
          },
          "image": [
            {
              "@type": "ImageObject",
              "url": "https://upload.wikimedia.org/wikipedia/commons/e/e5/Oxford_StAldates_PostOffice.jpg"
            }
          ],
          "openingHoursSpecification": [
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Sunday"
              ],
              "opens": "09:00"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Monday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Tuesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Wednesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Thursday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Friday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Saturday"
              ],
              "opens": "09:00"
            }
          ],
          "telephone": "01865 000001",
          "url": "https://en.wikipedia.org/wiki/Post_Office_Limited"
        },
        "provider": {
          "@type": "Organization",
          "@id": "https://localhost:5001/api/identifiers/sellers/1",
          "name": "Acme Fitness Ltd",
          "isOpenBookingAllowed": true,
          "sameAs": [
            "https://socialmedia.com/AcmeFitnessLtd"
          ],
          "taxMode": "https://openactive.io/TaxGross",
          "telephone": "03599 052715",
          "termsOfService": [
            {
              "@type": "PrivacyPolicy",
              "name": "Privacy Policy",
              "requiresExplicitConsent": false,
              "url": "https://example.com/privacy.html"
            }
          ],
          "url": "https://dimitri.com"
        },
        "url": "https://www.example.com/facilities/2078"
      }
    },
    "maximumUses": 10,
    "offers": [
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      }
    ],
    "remainingUses": 9,
    "startDate": "2024-11-22T17:04:11+00:00",
    "endDate": "2024-11-22T18:04:11+00:00"
  }
}

Opportunity Feed extract for OrderItem 5 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Ffacility-uses%2F2077%2Findividual-facility-uses%2F1%2Fslots%2F20077?useCacheIfAvailable=true&expectedCapacity=9


Response status code: 200 OK. Responded in 14.169111ms.

{
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "Slot",
    "@id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077",
    "identifier": 20077,
    "duration": "PT1H",
    "facilityUse": {
      "@type": "IndividualFacilityUse",
      "@id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1",
      "name": "Court 1 on [OPEN BOOKING API TEST INTERFACE] Bookable Facility",
      "aggregateFacilityUse": {
        "@type": "FacilityUse",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2077",
        "identifier": 2077,
        "name": "GOLDEN: [OPEN BOOKING API TEST INTERFACE] Bookable Facility",
        "facilityType": [
          {
            "@type": "Concept",
            "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
            "inScheme": "https://openactive.io/facility-types",
            "prefLabel": "Squash Court"
          }
        ],
        "location": {
          "@type": "Place",
          "@id": "https://example.com/place/2",
          "identifier": 2,
          "name": "Premier Lifters",
          "description": "Where your Fitness Goals are Always Inn-Sight. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
          "address": {
            "@type": "PostalAddress",
            "addressCountry": "GB",
            "addressLocality": "Oxford",
            "addressRegion": "Oxfordshire",
            "postalCode": "OX1 1BB",
            "streetAddress": "Greyfriars Court, Paradise Square"
          },
          "amenityFeature": [
            {
              "@type": "ChangingFacilities",
              "name": "Changing Facilities",
              "value": false
            },
            {
              "@type": "Showers",
              "name": "Showers",
              "value": false
            },
            {
              "@type": "Lockers",
              "name": "Lockers",
              "value": false
            },
            {
              "@type": "Towels",
              "name": "Towels",
              "value": true
            },
            {
              "@type": "Creche",
              "name": "Creche",
              "value": true
            },
            {
              "@type": "Parking",
              "name": "Parking",
              "value": true
            }
          ],
          "geo": {
            "@type": "GeoCoordinates",
            "latitude": 51.7504933,
            "longitude": -1.2620685
          },
          "image": [
            {
              "@type": "ImageObject",
              "url": "https://upload.wikimedia.org/wikipedia/commons/5/53/Cambridge_Orchard_Park_Premier_Inn.jpg"
            }
          ],
          "openingHoursSpecification": [
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Sunday"
              ],
              "opens": "09:00"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Monday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Tuesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Wednesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Thursday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Friday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Saturday"
              ],
              "opens": "09:00"
            }
          ],
          "telephone": "01865 000002",
          "url": "https://en.wikipedia.org/wiki/Premier_Inn"
        },
        "provider": {
          "@type": "Organization",
          "@id": "https://localhost:5001/api/identifiers/sellers/1",
          "name": "Acme Fitness Ltd",
          "isOpenBookingAllowed": true,
          "sameAs": [
            "https://socialmedia.com/AcmeFitnessLtd"
          ],
          "taxMode": "https://openactive.io/TaxGross",
          "telephone": "09654 914040",
          "termsOfService": [
            {
              "@type": "PrivacyPolicy",
              "name": "Privacy Policy",
              "requiresExplicitConsent": false,
              "url": "https://example.com/privacy.html"
            }
          ],
          "url": "http://kenneth.org"
        },
        "url": "https://www.example.com/facilities/2077"
      }
    },
    "maximumUses": 10,
    "offers": [
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 14.99,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 14.99,
        "priceCurrency": "GBP"
      }
    ],
    "remainingUses": 9,
    "startDate": "2024-11-22T17:04:11+00:00",
    "endDate": "2024-11-22T18:04:11+00:00"
  }
}

Specs

✅ Assert Opportunity Capacity (after C2) >> validation of Opportunity Feed extract for OrderItem 0

Specs

Validations

✅ Assert Opportunity Capacity (after C2) >> validation of Opportunity Feed extract for OrderItem 1

Specs

Validations

✅ Assert Opportunity Capacity (after C2) >> validation of Opportunity Feed extract for OrderItem 2

Specs

Validations

✅ Assert Opportunity Capacity (after C2) >> validation of Opportunity Feed extract for OrderItem 3

Specs

Validations

✅ Assert Opportunity Capacity (after C2) >> validation of Opportunity Feed extract for OrderItem 4

Specs

Validations

✅ Assert Opportunity Capacity (after C2) >> validation of Opportunity Feed extract for OrderItem 5

Specs

Validations

✅ B

B Request

PUT https://localhost:5001/api/openbooking/orders/18ff8cc2-31a8-4e20-8516-ec0503b40ec5

{
  "@context": "https://openactive.io/",
  "@type": "Order",
  "brokerRole": "https://openactive.io/AgentBroker",
  "broker": {
    "@type": "Organization",
    "name": "MyFitnessApp",
    "url": "https://myfitnessapp.example.com",
    "description": "A fitness app for all the community",
    "logo": {
      "@type": "ImageObject",
      "url": "http://data.myfitnessapp.org.uk/images/logo.png"
    },
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "Alan Peacock Way",
      "addressLocality": "Village East",
      "addressRegion": "Middlesbrough",
      "postalCode": "TS4 3AE",
      "addressCountry": "GB"
    }
  },
  "seller": "https://localhost:5001/api/identifiers/sellers/1",
  "customer": {
    "@type": "Person",
    "email": "[email protected]",
    "identifier": "9731c9e0-2359-4322-8491-becd27f2f565"
  },
  "orderedItem": [
    {
      "@type": "OrderItem",
      "position": 0,
      "acceptedOffer": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
      "orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/2060/events/20060"
    },
    {
      "@type": "OrderItem",
      "position": 1,
      "acceptedOffer": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
      "orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/2060/events/20060"
    },
    {
      "@type": "OrderItem",
      "position": 2,
      "acceptedOffer": "https://localhost:5001/api/identifiers/session-series/2061#/offers/0",
      "orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/2061/events/20061"
    },
    {
      "@type": "OrderItem",
      "position": 3,
      "acceptedOffer": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076#/offers/0",
      "orderedItem": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076"
    },
    {
      "@type": "OrderItem",
      "position": 4,
      "acceptedOffer": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078#/offers/0",
      "orderedItem": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078"
    },
    {
      "@type": "OrderItem",
      "position": 5,
      "acceptedOffer": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077#/offers/0",
      "orderedItem": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077"
    }
  ],
  "totalPaymentDue": {
    "@type": "PriceSpecification",
    "price": 44.97,
    "priceCurrency": "GBP"
  },
  "payment": {
    "@type": "Payment",
    "identifier": "N8CH3bFZKN",
    "name": "AcmeBroker Points",
    "accountId": "SN1593",
    "paymentProviderId": "STRIPE"
  }
}

Response status code: 201 Created. Responded in 111.136779ms.

{
  "@context": [
    "https://openactive.io/",
    "https://openactive.io/ns-beta"
  ],
  "@type": "Order",
  "@id": "https://localhost:5001/api/openbooking/orders/18ff8cc2-31a8-4e20-8516-ec0503b40ec5",
  "bookingService": {
    "@type": "BookingService",
    "name": "Acme booking system",
    "termsOfService": [
      {
        "@type": "PrivacyPolicy",
        "name": "Privacy Policy",
        "requiresExplicitConsent": false,
        "url": "https://example.com/privacy.html"
      }
    ],
    "url": "https://example.com"
  },
  "broker": {
    "@type": "Organization",
    "name": "MyFitnessApp",
    "url": "https://myfitnessapp.example.com"
  },
  "brokerRole": "https://openactive.io/AgentBroker",
  "customer": {
    "@type": "Person",
    "identifier": "9731c9e0-2359-4322-8491-becd27f2f565",
    "email": "[email protected]"
  },
  "orderedItem": [
    {
      "@type": "OrderItem",
      "@id": "https://localhost:5001/api/openbooking/orders/18ff8cc2-31a8-4e20-8516-ec0503b40ec5#/orderedItems/366",
      "acceptedOffer": {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
        "allowCustomerCancellationFullRefund": true,
        "price": 14.99,
        "priceCurrency": "GBP"
      },
      "accessCode": [
        {
          "@type": "PropertyValue",
          "name": "Pin Code",
          "description": "372862"
        }
      ],
      "accessPass": [
        {
          "@type": "ImageObject",
          "url": "https://via.placeholder.com/25x25/cccccc/9c9c9c.png"
        },
        {
          "@type": "Barcode",
          "text": "2937359625",
          "url": "https://via.placeholder.com/25x25/cccccc/9c9c9c.png",
          "beta:codeType": "code128"
        }
      ],
      "orderedItem": {
        "@type": "ScheduledSession",
        "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/2060/events/20060",
        "startDate": "2024-11-22T17:04:11+00:00",
        "endDate": "2024-11-22T18:04:11+00:00",
        "superEvent": {
          "@type": "SessionSeries",
          "@id": "https://localhost:5001/api/identifiers/session-series/2060",
          "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Event",
          "activity": [
            {
              "@type": "Concept",
              "@id": "https://openactive.io/activity-list#6bdea630-ad22-4e58-98a3-bca26ee3f1da",
              "inScheme": "https://openactive.io/activity-list",
              "prefLabel": "Rave Fitness"
            }
          ],
          "location": {
            "@type": "Place",
            "@id": "https://example.com/place/3",
            "identifier": 3,
            "name": "Stroll & Stretch",
            "description": "Casual Calisthenics in the Heart of Commerce. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
            "address": {
              "@type": "PostalAddress",
              "addressCountry": "GB",
              "addressLocality": "Oxford",
              "addressRegion": "Oxfordshire",
              "postalCode": "OX1 1UU",
              "streetAddress": "Norfolk Street"
            },
            "geo": {
              "@type": "GeoCoordinates",
              "latitude": 51.749826,
              "longitude": -1.261492
            },
            "image": [
              {
                "@type": "ImageObject",
                "url": "https://upload.wikimedia.org/wikipedia/commons/2/28/Westfield_Garden_State_Plaza_-_panoramio.jpg"
              }
            ],
            "openingHoursSpecification": [
              {
                "@type": "OpeningHoursSpecification",
                "closes": "17:30",
                "dayOfWeek": [
                  "https://schema.org/Sunday"
                ],
                "opens": "09:00"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Monday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Tuesday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Wednesday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Thursday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Friday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "17:30",
                "dayOfWeek": [
                  "https://schema.org/Saturday"
                ],
                "opens": "09:00"
              }
            ],
            "telephone": "01865 000003",
            "url": "https://en.wikipedia.org/wiki/Shopping_center"
          },
          "url": "https://example.com/events/2060"
        }
      },
      "orderItemStatus": "https://openactive.io/OrderItemConfirmed",
      "position": 0,
      "unitTaxSpecification": [
        {
          "@type": "TaxChargeSpecification",
          "name": "VAT at 20%",
          "price": 2.998,
          "priceCurrency": "GBP",
          "rate": 0.2
        }
      ]
    },
    {
      "@type": "OrderItem",
      "@id": "https://localhost:5001/api/openbooking/orders/18ff8cc2-31a8-4e20-8516-ec0503b40ec5#/orderedItems/367",
      "acceptedOffer": {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
        "allowCustomerCancellationFullRefund": true,
        "price": 14.99,
        "priceCurrency": "GBP"
      },
      "accessCode": [
        {
          "@type": "PropertyValue",
          "name": "Pin Code",
          "description": "294550"
        }
      ],
      "accessPass": [
        {
          "@type": "ImageObject",
          "url": "https://via.placeholder.com/25x25/cccccc/9c9c9c.png"
        },
        {
          "@type": "Barcode",
          "text": "7951537497",
          "url": "https://via.placeholder.com/25x25/cccccc/9c9c9c.png",
          "beta:codeType": "code128"
        }
      ],
      "orderedItem": {
        "@type": "ScheduledSession",
        "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/2060/events/20060",
        "startDate": "2024-11-22T17:04:11+00:00",
        "endDate": "2024-11-22T18:04:11+00:00",
        "superEvent": {
          "@type": "SessionSeries",
          "@id": "https://localhost:5001/api/identifiers/session-series/2060",
          "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Event",
          "activity": [
            {
              "@type": "Concept",
              "@id": "https://openactive.io/activity-list#6bdea630-ad22-4e58-98a3-bca26ee3f1da",
              "inScheme": "https://openactive.io/activity-list",
              "prefLabel": "Rave Fitness"
            }
          ],
          "location": {
            "@type": "Place",
            "@id": "https://example.com/place/3",
            "identifier": 3,
            "name": "Stroll & Stretch",
            "description": "Casual Calisthenics in the Heart of Commerce. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
            "address": {
              "@type": "PostalAddress",
              "addressCountry": "GB",
              "addressLocality": "Oxford",
              "addressRegion": "Oxfordshire",
              "postalCode": "OX1 1UU",
              "streetAddress": "Norfolk Street"
            },
            "geo": {
              "@type": "GeoCoordinates",
              "latitude": 51.749826,
              "longitude": -1.261492
            },
            "image": [
              {
                "@type": "ImageObject",
                "url": "https://upload.wikimedia.org/wikipedia/commons/2/28/Westfield_Garden_State_Plaza_-_panoramio.jpg"
              }
            ],
            "openingHoursSpecification": [
              {
                "@type": "OpeningHoursSpecification",
                "closes": "17:30",
                "dayOfWeek": [
                  "https://schema.org/Sunday"
                ],
                "opens": "09:00"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Monday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Tuesday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Wednesday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Thursday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Friday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "17:30",
                "dayOfWeek": [
                  "https://schema.org/Saturday"
                ],
                "opens": "09:00"
              }
            ],
            "telephone": "01865 000003",
            "url": "https://en.wikipedia.org/wiki/Shopping_center"
          },
          "url": "https://example.com/events/2060"
        }
      },
      "orderItemStatus": "https://openactive.io/OrderItemConfirmed",
      "position": 1,
      "unitTaxSpecification": [
        {
          "@type": "TaxChargeSpecification",
          "name": "VAT at 20%",
          "price": 2.998,
          "priceCurrency": "GBP",
          "rate": 0.2
        }
      ]
    },
    {
      "@type": "OrderItem",
      "@id": "https://localhost:5001/api/openbooking/orders/18ff8cc2-31a8-4e20-8516-ec0503b40ec5#/orderedItems/368",
      "acceptedOffer": {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/session-series/2061#/offers/0",
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      "accessCode": [
        {
          "@type": "PropertyValue",
          "name": "Pin Code",
          "description": "839237"
        }
      ],
      "accessPass": [
        {
          "@type": "ImageObject",
          "url": "https://via.placeholder.com/25x25/cccccc/9c9c9c.png"
        },
        {
          "@type": "Barcode",
          "text": "4491261125",
          "url": "https://via.placeholder.com/25x25/cccccc/9c9c9c.png",
          "beta:codeType": "code128"
        }
      ],
      "orderedItem": {
        "@type": "ScheduledSession",
        "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/2061/events/20061",
        "startDate": "2024-11-22T17:04:11+00:00",
        "endDate": "2024-11-22T18:04:11+00:00",
        "superEvent": {
          "@type": "SessionSeries",
          "@id": "https://localhost:5001/api/identifiers/session-series/2061",
          "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Event",
          "activity": [
            {
              "@type": "Concept",
              "@id": "https://openactive.io/activity-list#6bdea630-ad22-4e58-98a3-bca26ee3f1da",
              "inScheme": "https://openactive.io/activity-list",
              "prefLabel": "Rave Fitness"
            }
          ],
          "location": {
            "@type": "Place",
            "@id": "https://example.com/place/1",
            "identifier": 1,
            "name": "Post-ercise Plaza",
            "description": "Sorting Out Your Fitness One Parcel Lift at a Time! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
            "address": {
              "@type": "PostalAddress",
              "addressCountry": "GB",
              "addressLocality": "Oxford",
              "addressRegion": "Oxfordshire",
              "postalCode": "OX1 1AA",
              "streetAddress": "Kings Mead House"
            },
            "amenityFeature": [
              {
                "@type": "ChangingFacilities",
                "name": "Changing Facilities",
                "value": true
              },
              {
                "@type": "Showers",
                "name": "Showers",
                "value": true
              },
              {
                "@type": "Lockers",
                "name": "Lockers",
                "value": true
              },
              {
                "@type": "Towels",
                "name": "Towels",
                "value": false
              },
              {
                "@type": "Creche",
                "name": "Creche",
                "value": false
              },
              {
                "@type": "Parking",
                "name": "Parking",
                "value": false
              }
            ],
            "geo": {
              "@type": "GeoCoordinates",
              "latitude": 51.7502,
              "longitude": -1.2674
            },
            "image": [
              {
                "@type": "ImageObject",
                "url": "https://upload.wikimedia.org/wikipedia/commons/e/e5/Oxford_StAldates_PostOffice.jpg"
              }
            ],
            "openingHoursSpecification": [
              {
                "@type": "OpeningHoursSpecification",
                "closes": "17:30",
                "dayOfWeek": [
                  "https://schema.org/Sunday"
                ],
                "opens": "09:00"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Monday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Tuesday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Wednesday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Thursday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:30",
                "dayOfWeek": [
                  "https://schema.org/Friday"
                ],
                "opens": "06:30"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "17:30",
                "dayOfWeek": [
                  "https://schema.org/Saturday"
                ],
                "opens": "09:00"
              }
            ],
            "telephone": "01865 000001",
            "url": "https://en.wikipedia.org/wiki/Post_Office_Limited"
          },
          "url": "https://example.com/events/2061"
        }
      },
      "orderItemStatus": "https://openactive.io/OrderItemConfirmed",
      "position": 2,
      "unitTaxSpecification": [
        {
          "@type": "TaxChargeSpecification",
          "name": "VAT at 20%",
          "price": 0,
          "priceCurrency": "GBP",
          "rate": 0.2
        }
      ]
    },
    {
      "@type": "OrderItem",
      "@id": "https://localhost:5001/api/openbooking/orders/18ff8cc2-31a8-4e20-8516-ec0503b40ec5#/orderedItems/369",
      "acceptedOffer": {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076#/offers/0",
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      "accessCode": [
        {
          "@type": "PropertyValue",
          "name": "Pin Code",
          "description": "773379"
        }
      ],
      "accessPass": [
        {
          "@type": "ImageObject",
          "url": "https://via.placeholder.com/25x25/cccccc/9c9c9c.png"
        },
        {
          "@type": "Barcode",
          "text": "8202256828",
          "url": "https://via.placeholder.com/25x25/cccccc/9c9c9c.png",
          "beta:codeType": "code128"
        }
      ],
      "orderedItem": {
        "@type": "Slot",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076",
        "facilityUse": {
          "@type": "IndividualFacilityUse",
          "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1",
          "aggregateFacilityUse": {
            "@type": "FacilityUse",
            "@id": "https://localhost:5001/api/identifiers/facility-uses/2076",
            "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Facility",
            "facilityType": [
              {
                "@type": "Concept",
                "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
                "inScheme": "https://openactive.io/facility-types",
                "prefLabel": "Squash Court"
              }
            ],
            "location": {
              "@type": "Place",
              "@id": "https://example.com/place/2",
              "identifier": 2,
              "name": "Premier Lifters",
              "description": "Where your Fitness Goals are Always Inn-Sight. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
              "address": {
                "@type": "PostalAddress",
                "addressCountry": "GB",
                "addressLocality": "Oxford",
                "addressRegion": "Oxfordshire",
                "postalCode": "OX1 1BB",
                "streetAddress": "Greyfriars Court, Paradise Square"
              },
              "amenityFeature": [
                {
                  "@type": "ChangingFacilities",
                  "name": "Changing Facilities",
                  "value": false
                },
                {
                  "@type": "Showers",
                  "name": "Showers",
                  "value": false
                },
                {
                  "@type": "Lockers",
                  "name": "Lockers",
                  "value": false
                },
                {
                  "@type": "Towels",
                  "name": "Towels",
                  "value": true
                },
                {
                  "@type": "Creche",
                  "name": "Creche",
                  "value": true
                },
                {
                  "@type": "Parking",
                  "name": "Parking",
                  "value": true
                }
              ],
              "geo": {
                "@type": "GeoCoordinates",
                "latitude": 51.7504933,
                "longitude": -1.2620685
              },
              "image": [
                {
                  "@type": "ImageObject",
                  "url": "https://upload.wikimedia.org/wikipedia/commons/5/53/Cambridge_Orchard_Park_Premier_Inn.jpg"
                }
              ],
              "openingHoursSpecification": [
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "17:30",
                  "dayOfWeek": [
                    "https://schema.org/Sunday"
                  ],
                  "opens": "09:00"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Monday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Tuesday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Wednesday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Thursday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Friday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "17:30",
                  "dayOfWeek": [
                    "https://schema.org/Saturday"
                  ],
                  "opens": "09:00"
                }
              ],
              "telephone": "01865 000002",
              "url": "https://en.wikipedia.org/wiki/Premier_Inn"
            },
            "url": "https://example.com/events/2076"
          },
          "name": "Court 1 on [OPEN BOOKING API TEST INTERFACE] Bookable Facility"
        },
        "maximumUses": 10,
        "remainingUses": 10,
        "startDate": "2024-11-22T17:04:11+00:00",
        "endDate": "2024-11-22T18:04:11+00:00"
      },
      "orderItemStatus": "https://openactive.io/OrderItemConfirmed",
      "position": 3,
      "unitTaxSpecification": [
        {
          "@type": "TaxChargeSpecification",
          "name": "VAT at 20%",
          "price": 0,
          "priceCurrency": "GBP",
          "rate": 0.2
        }
      ]
    },
    {
      "@type": "OrderItem",
      "@id": "https://localhost:5001/api/openbooking/orders/18ff8cc2-31a8-4e20-8516-ec0503b40ec5#/orderedItems/370",
      "acceptedOffer": {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078#/offers/0",
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      "accessCode": [
        {
          "@type": "PropertyValue",
          "name": "Pin Code",
          "description": "856579"
        }
      ],
      "accessPass": [
        {
          "@type": "ImageObject",
          "url": "https://via.placeholder.com/25x25/cccccc/9c9c9c.png"
        },
        {
          "@type": "Barcode",
          "text": "2440648183",
          "url": "https://via.placeholder.com/25x25/cccccc/9c9c9c.png",
          "beta:codeType": "code128"
        }
      ],
      "orderedItem": {
        "@type": "Slot",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078",
        "facilityUse": {
          "@type": "IndividualFacilityUse",
          "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1",
          "aggregateFacilityUse": {
            "@type": "FacilityUse",
            "@id": "https://localhost:5001/api/identifiers/facility-uses/2078",
            "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Facility",
            "facilityType": [
              {
                "@type": "Concept",
                "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
                "inScheme": "https://openactive.io/facility-types",
                "prefLabel": "Squash Court"
              }
            ],
            "location": {
              "@type": "Place",
              "@id": "https://example.com/place/1",
              "identifier": 1,
              "name": "Post-ercise Plaza",
              "description": "Sorting Out Your Fitness One Parcel Lift at a Time! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
              "address": {
                "@type": "PostalAddress",
                "addressCountry": "GB",
                "addressLocality": "Oxford",
                "addressRegion": "Oxfordshire",
                "postalCode": "OX1 1AA",
                "streetAddress": "Kings Mead House"
              },
              "amenityFeature": [
                {
                  "@type": "ChangingFacilities",
                  "name": "Changing Facilities",
                  "value": true
                },
                {
                  "@type": "Showers",
                  "name": "Showers",
                  "value": true
                },
                {
                  "@type": "Lockers",
                  "name": "Lockers",
                  "value": true
                },
                {
                  "@type": "Towels",
                  "name": "Towels",
                  "value": false
                },
                {
                  "@type": "Creche",
                  "name": "Creche",
                  "value": false
                },
                {
                  "@type": "Parking",
                  "name": "Parking",
                  "value": false
                }
              ],
              "geo": {
                "@type": "GeoCoordinates",
                "latitude": 51.7502,
                "longitude": -1.2674
              },
              "image": [
                {
                  "@type": "ImageObject",
                  "url": "https://upload.wikimedia.org/wikipedia/commons/e/e5/Oxford_StAldates_PostOffice.jpg"
                }
              ],
              "openingHoursSpecification": [
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "17:30",
                  "dayOfWeek": [
                    "https://schema.org/Sunday"
                  ],
                  "opens": "09:00"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Monday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Tuesday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Wednesday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Thursday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Friday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "17:30",
                  "dayOfWeek": [
                    "https://schema.org/Saturday"
                  ],
                  "opens": "09:00"
                }
              ],
              "telephone": "01865 000001",
              "url": "https://en.wikipedia.org/wiki/Post_Office_Limited"
            },
            "url": "https://example.com/events/2078"
          },
          "name": "Court 1 on [OPEN BOOKING API TEST INTERFACE] Bookable Facility"
        },
        "maximumUses": 10,
        "remainingUses": 10,
        "startDate": "2024-11-22T17:04:11+00:00",
        "endDate": "2024-11-22T18:04:11+00:00"
      },
      "orderItemStatus": "https://openactive.io/OrderItemConfirmed",
      "position": 4,
      "unitTaxSpecification": [
        {
          "@type": "TaxChargeSpecification",
          "name": "VAT at 20%",
          "price": 0,
          "priceCurrency": "GBP",
          "rate": 0.2
        }
      ]
    },
    {
      "@type": "OrderItem",
      "@id": "https://localhost:5001/api/openbooking/orders/18ff8cc2-31a8-4e20-8516-ec0503b40ec5#/orderedItems/371",
      "acceptedOffer": {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077#/offers/0",
        "allowCustomerCancellationFullRefund": true,
        "price": 14.99,
        "priceCurrency": "GBP"
      },
      "accessCode": [
        {
          "@type": "PropertyValue",
          "name": "Pin Code",
          "description": "996916"
        }
      ],
      "accessPass": [
        {
          "@type": "ImageObject",
          "url": "https://via.placeholder.com/25x25/cccccc/9c9c9c.png"
        },
        {
          "@type": "Barcode",
          "text": "0957204970",
          "url": "https://via.placeholder.com/25x25/cccccc/9c9c9c.png",
          "beta:codeType": "code128"
        }
      ],
      "orderedItem": {
        "@type": "Slot",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077",
        "facilityUse": {
          "@type": "IndividualFacilityUse",
          "@id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1",
          "aggregateFacilityUse": {
            "@type": "FacilityUse",
            "@id": "https://localhost:5001/api/identifiers/facility-uses/2077",
            "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Facility",
            "facilityType": [
              {
                "@type": "Concept",
                "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
                "inScheme": "https://openactive.io/facility-types",
                "prefLabel": "Squash Court"
              }
            ],
            "location": {
              "@type": "Place",
              "@id": "https://example.com/place/2",
              "identifier": 2,
              "name": "Premier Lifters",
              "description": "Where your Fitness Goals are Always Inn-Sight. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
              "address": {
                "@type": "PostalAddress",
                "addressCountry": "GB",
                "addressLocality": "Oxford",
                "addressRegion": "Oxfordshire",
                "postalCode": "OX1 1BB",
                "streetAddress": "Greyfriars Court, Paradise Square"
              },
              "amenityFeature": [
                {
                  "@type": "ChangingFacilities",
                  "name": "Changing Facilities",
                  "value": false
                },
                {
                  "@type": "Showers",
                  "name": "Showers",
                  "value": false
                },
                {
                  "@type": "Lockers",
                  "name": "Lockers",
                  "value": false
                },
                {
                  "@type": "Towels",
                  "name": "Towels",
                  "value": true
                },
                {
                  "@type": "Creche",
                  "name": "Creche",
                  "value": true
                },
                {
                  "@type": "Parking",
                  "name": "Parking",
                  "value": true
                }
              ],
              "geo": {
                "@type": "GeoCoordinates",
                "latitude": 51.7504933,
                "longitude": -1.2620685
              },
              "image": [
                {
                  "@type": "ImageObject",
                  "url": "https://upload.wikimedia.org/wikipedia/commons/5/53/Cambridge_Orchard_Park_Premier_Inn.jpg"
                }
              ],
              "openingHoursSpecification": [
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "17:30",
                  "dayOfWeek": [
                    "https://schema.org/Sunday"
                  ],
                  "opens": "09:00"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Monday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Tuesday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Wednesday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Thursday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "21:30",
                  "dayOfWeek": [
                    "https://schema.org/Friday"
                  ],
                  "opens": "06:30"
                },
                {
                  "@type": "OpeningHoursSpecification",
                  "closes": "17:30",
                  "dayOfWeek": [
                    "https://schema.org/Saturday"
                  ],
                  "opens": "09:00"
                }
              ],
              "telephone": "01865 000002",
              "url": "https://en.wikipedia.org/wiki/Premier_Inn"
            },
            "url": "https://example.com/events/2077"
          },
          "name": "Court 1 on [OPEN BOOKING API TEST INTERFACE] Bookable Facility"
        },
        "maximumUses": 10,
        "remainingUses": 10,
        "startDate": "2024-11-22T17:04:11+00:00",
        "endDate": "2024-11-22T18:04:11+00:00"
      },
      "orderItemStatus": "https://openactive.io/OrderItemConfirmed",
      "position": 5,
      "unitTaxSpecification": [
        {
          "@type": "TaxChargeSpecification",
          "name": "VAT at 20%",
          "price": 2.998,
          "priceCurrency": "GBP",
          "rate": 0.2
        }
      ]
    }
  ],
  "payment": {
    "@type": "Payment",
    "identifier": "N8CH3bFZKN",
    "name": "AcmeBroker Points",
    "accountId": "SN1593",
    "paymentProviderId": "STRIPE"
  },
  "seller": {
    "@type": "Organization",
    "@id": "https://localhost:5001/api/identifiers/sellers/1",
    "name": "Acme Fitness Ltd",
    "address": {
      "@type": "PostalAddress",
      "addressCountry": "GB",
      "addressLocality": "Another town",
      "addressRegion": "Oxfordshire",
      "postalCode": "OX1 1AA",
      "streetAddress": "1 Hidden Gem"
    },
    "isOpenBookingAllowed": true,
    "legalName": "Acme Fitness Ltd",
    "taxMode": "https://openactive.io/TaxGross",
    "termsOfService": [
      {
        "@type": "PrivacyPolicy",
        "name": "Privacy Policy",
        "requiresExplicitConsent": false,
        "url": "https://example.com/privacy.html"
      }
    ]
  },
  "totalPaymentDue": {
    "@type": "PriceSpecification",
    "openBookingPrepayment": "https://openactive.io/Required",
    "price": 44.97,
    "priceCurrency": "GBP"
  },
  "totalPaymentTax": [
    {
      "@type": "TaxChargeSpecification",
      "name": "VAT at 20%",
      "price": 8.994,
      "priceCurrency": "GBP",
      "rate": 0.2
    }
  ]
}

Specs

✅ B >> validation of B

Specs

Validations

✅ Assert Opportunity Capacity (after B)

Opportunity Feed extract for OrderItem 0 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Fscheduled-sessions%2F2060%2Fevents%2F20060?useCacheIfAvailable=true&expectedCapacity=8


Response status code: 200 OK. Responded in 19.847835ms.

{
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "ScheduledSession",
    "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/2060/events/20060",
    "startDate": "2024-11-22T17:04:11+00:00",
    "endDate": "2024-11-22T18:04:11+00:00",
    "superEvent": {
      "@type": "SessionSeries",
      "@id": "https://localhost:5001/api/identifiers/session-series/2060",
      "identifier": 2060,
      "name": "GOLDEN: [OPEN BOOKING API TEST INTERFACE] Bookable Event",
      "activity": [
        {
          "@type": "Concept",
          "@id": "https://openactive.io/activity-list#c07d63a0-8eb9-4602-8bcc-23be6deb8f83",
          "inScheme": "https://openactive.io/activity-list",
          "prefLabel": "Jet Skiing"
        }
      ],
      "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
      "location": {
        "@type": "Place",
        "@id": "https://example.com/place/3",
        "identifier": 3,
        "name": "Stroll & Stretch",
        "description": "Casual Calisthenics in the Heart of Commerce. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
        "address": {
          "@type": "PostalAddress",
          "addressCountry": "GB",
          "addressLocality": "Oxford",
          "addressRegion": "Oxfordshire",
          "postalCode": "OX1 1UU",
          "streetAddress": "Norfolk Street"
        },
        "geo": {
          "@type": "GeoCoordinates",
          "latitude": 51.749826,
          "longitude": -1.261492
        },
        "image": [
          {
            "@type": "ImageObject",
            "url": "https://upload.wikimedia.org/wikipedia/commons/2/28/Westfield_Garden_State_Plaza_-_panoramio.jpg"
          }
        ],
        "openingHoursSpecification": [
          {
            "@type": "OpeningHoursSpecification",
            "closes": "17:30",
            "dayOfWeek": [
              "https://schema.org/Sunday"
            ],
            "opens": "09:00"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Monday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Tuesday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Wednesday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Thursday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Friday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "17:30",
            "dayOfWeek": [
              "https://schema.org/Saturday"
            ],
            "opens": "09:00"
          }
        ],
        "telephone": "01865 000003",
        "url": "https://en.wikipedia.org/wiki/Shopping_center"
      },
      "offers": [
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
          "name": "Adult",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Adult",
            "maxValue": 59,
            "minValue": 18
          },
          "allowCustomerCancellationFullRefund": true,
          "price": 14.99,
          "priceCurrency": "GBP"
        },
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
          "name": "Junior",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Junior",
            "maxValue": 17
          },
          "allowCustomerCancellationFullRefund": true,
          "price": 14.99,
          "priceCurrency": "GBP"
        },
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
          "name": "Senior",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Senior",
            "minValue": 60
          },
          "allowCustomerCancellationFullRefund": true,
          "price": 14.99,
          "priceCurrency": "GBP"
        },
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
          "name": "Adult (off-peak)",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Adult (off-peak)",
            "maxValue": 59,
            "minValue": 18
          },
          "allowCustomerCancellationFullRefund": true,
          "price": 14.99,
          "priceCurrency": "GBP"
        }
      ],
      "organizer": {
        "@type": "Organization",
        "@id": "https://localhost:5001/api/identifiers/sellers/1",
        "name": "Acme Fitness Ltd",
        "isOpenBookingAllowed": true,
        "sameAs": [
          "https://socialmedia.com/AcmeFitnessLtd"
        ],
        "taxMode": "https://openactive.io/TaxGross",
        "telephone": "02799 899771",
        "termsOfService": [
          {
            "@type": "PrivacyPolicy",
            "name": "Privacy Policy",
            "requiresExplicitConsent": false,
            "url": "https://example.com/privacy.html"
          }
        ],
        "url": "http://marjorie.biz"
      },
      "url": "https://www.example.com/sessions/2060"
    },
    "duration": "PT1H",
    "maximumAttendeeCapacity": 10,
    "remainingAttendeeCapacity": 8
  }
}

Opportunity Feed extract for OrderItem 2 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Fscheduled-sessions%2F2061%2Fevents%2F20061?useCacheIfAvailable=true&expectedCapacity=9


Response status code: 200 OK. Responded in 19.036686ms.

{
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "ScheduledSession",
    "@id": "https://localhost:5001/api/identifiers/scheduled-sessions/2061/events/20061",
    "startDate": "2024-11-22T17:04:11+00:00",
    "endDate": "2024-11-22T18:04:11+00:00",
    "superEvent": {
      "@type": "SessionSeries",
      "@id": "https://localhost:5001/api/identifiers/session-series/2061",
      "identifier": 2061,
      "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Event",
      "activity": [
        {
          "@type": "Concept",
          "@id": "https://openactive.io/activity-list#c07d63a0-8eb9-4602-8bcc-23be6deb8f83",
          "inScheme": "https://openactive.io/activity-list",
          "prefLabel": "Jet Skiing"
        }
      ],
      "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
      "location": {
        "@type": "Place",
        "@id": "https://example.com/place/1",
        "identifier": 1,
        "name": "Post-ercise Plaza",
        "description": "Sorting Out Your Fitness One Parcel Lift at a Time! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
        "address": {
          "@type": "PostalAddress",
          "addressCountry": "GB",
          "addressLocality": "Oxford",
          "addressRegion": "Oxfordshire",
          "postalCode": "OX1 1AA",
          "streetAddress": "Kings Mead House"
        },
        "amenityFeature": [
          {
            "@type": "ChangingFacilities",
            "name": "Changing Facilities",
            "value": true
          },
          {
            "@type": "Showers",
            "name": "Showers",
            "value": true
          },
          {
            "@type": "Lockers",
            "name": "Lockers",
            "value": true
          },
          {
            "@type": "Towels",
            "name": "Towels",
            "value": false
          },
          {
            "@type": "Creche",
            "name": "Creche",
            "value": false
          },
          {
            "@type": "Parking",
            "name": "Parking",
            "value": false
          }
        ],
        "geo": {
          "@type": "GeoCoordinates",
          "latitude": 51.7502,
          "longitude": -1.2674
        },
        "image": [
          {
            "@type": "ImageObject",
            "url": "https://upload.wikimedia.org/wikipedia/commons/e/e5/Oxford_StAldates_PostOffice.jpg"
          }
        ],
        "openingHoursSpecification": [
          {
            "@type": "OpeningHoursSpecification",
            "closes": "17:30",
            "dayOfWeek": [
              "https://schema.org/Sunday"
            ],
            "opens": "09:00"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Monday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Tuesday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Wednesday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Thursday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "21:30",
            "dayOfWeek": [
              "https://schema.org/Friday"
            ],
            "opens": "06:30"
          },
          {
            "@type": "OpeningHoursSpecification",
            "closes": "17:30",
            "dayOfWeek": [
              "https://schema.org/Saturday"
            ],
            "opens": "09:00"
          }
        ],
        "telephone": "01865 000001",
        "url": "https://en.wikipedia.org/wiki/Post_Office_Limited"
      },
      "offers": [
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/2061#/offers/0",
          "name": "Adult",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Adult",
            "maxValue": 59,
            "minValue": 18
          },
          "allowCustomerCancellationFullRefund": true,
          "price": 0,
          "priceCurrency": "GBP"
        },
        {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/2061#/offers/0",
          "name": "Junior",
          "acceptedPaymentMethod": [
            "http://purl.org/goodrelations/v1#Cash",
            "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
          ],
          "ageRestriction": {
            "@type": "QuantitativeValue",
            "name": "Junior",
            "maxValue": 17
          },
          "allowCustomerCancellationFullRefund": true,
          "price": 0,
          "priceCurrency": "GBP"
        }
      ],
      "organizer": {
        "@type": "Organization",
        "@id": "https://localhost:5001/api/identifiers/sellers/1",
        "name": "Acme Fitness Ltd",
        "isOpenBookingAllowed": true,
        "sameAs": [
          "https://socialmedia.com/AcmeFitnessLtd"
        ],
        "taxMode": "https://openactive.io/TaxGross",
        "telephone": "07634 926547",
        "termsOfService": [
          {
            "@type": "PrivacyPolicy",
            "name": "Privacy Policy",
            "requiresExplicitConsent": false,
            "url": "https://example.com/privacy.html"
          }
        ],
        "url": "https://georgianna.info"
      },
      "url": "https://www.example.com/sessions/2061"
    },
    "duration": "PT1H",
    "maximumAttendeeCapacity": 10,
    "remainingAttendeeCapacity": 9
  }
}

Opportunity Feed extract for OrderItem 3 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Ffacility-uses%2F2076%2Findividual-facility-uses%2F1%2Fslots%2F20076?useCacheIfAvailable=true&expectedCapacity=9


Response status code: 200 OK. Responded in 18.157509ms.

{
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "Slot",
    "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076",
    "identifier": 20076,
    "duration": "PT1H",
    "facilityUse": {
      "@type": "IndividualFacilityUse",
      "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1",
      "name": "Court 1 on [OPEN BOOKING API TEST INTERFACE] Bookable Facility",
      "aggregateFacilityUse": {
        "@type": "FacilityUse",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2076",
        "identifier": 2076,
        "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Facility",
        "facilityType": [
          {
            "@type": "Concept",
            "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
            "inScheme": "https://openactive.io/facility-types",
            "prefLabel": "Squash Court"
          }
        ],
        "location": {
          "@type": "Place",
          "@id": "https://example.com/place/2",
          "identifier": 2,
          "name": "Premier Lifters",
          "description": "Where your Fitness Goals are Always Inn-Sight. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
          "address": {
            "@type": "PostalAddress",
            "addressCountry": "GB",
            "addressLocality": "Oxford",
            "addressRegion": "Oxfordshire",
            "postalCode": "OX1 1BB",
            "streetAddress": "Greyfriars Court, Paradise Square"
          },
          "amenityFeature": [
            {
              "@type": "ChangingFacilities",
              "name": "Changing Facilities",
              "value": false
            },
            {
              "@type": "Showers",
              "name": "Showers",
              "value": false
            },
            {
              "@type": "Lockers",
              "name": "Lockers",
              "value": false
            },
            {
              "@type": "Towels",
              "name": "Towels",
              "value": true
            },
            {
              "@type": "Creche",
              "name": "Creche",
              "value": true
            },
            {
              "@type": "Parking",
              "name": "Parking",
              "value": true
            }
          ],
          "geo": {
            "@type": "GeoCoordinates",
            "latitude": 51.7504933,
            "longitude": -1.2620685
          },
          "image": [
            {
              "@type": "ImageObject",
              "url": "https://upload.wikimedia.org/wikipedia/commons/5/53/Cambridge_Orchard_Park_Premier_Inn.jpg"
            }
          ],
          "openingHoursSpecification": [
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Sunday"
              ],
              "opens": "09:00"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Monday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Tuesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Wednesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Thursday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Friday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Saturday"
              ],
              "opens": "09:00"
            }
          ],
          "telephone": "01865 000002",
          "url": "https://en.wikipedia.org/wiki/Premier_Inn"
        },
        "provider": {
          "@type": "Organization",
          "@id": "https://localhost:5001/api/identifiers/sellers/1",
          "name": "Acme Fitness Ltd",
          "isOpenBookingAllowed": true,
          "sameAs": [
            "https://socialmedia.com/AcmeFitnessLtd"
          ],
          "taxMode": "https://openactive.io/TaxGross",
          "telephone": "04709 887275",
          "termsOfService": [
            {
              "@type": "PrivacyPolicy",
              "name": "Privacy Policy",
              "requiresExplicitConsent": false,
              "url": "https://example.com/privacy.html"
            }
          ],
          "url": "https://sandra.name"
        },
        "url": "https://www.example.com/facilities/2076"
      }
    },
    "maximumUses": 10,
    "offers": [
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      }
    ],
    "remainingUses": 9,
    "startDate": "2024-11-22T17:04:11+00:00",
    "endDate": "2024-11-22T18:04:11+00:00"
  }
}

Opportunity Feed extract for OrderItem 4 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Ffacility-uses%2F2078%2Findividual-facility-uses%2F1%2Fslots%2F20078?useCacheIfAvailable=true&expectedCapacity=9


Response status code: 200 OK. Responded in 17.248737ms.

{
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "Slot",
    "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078",
    "identifier": 20078,
    "duration": "PT1H",
    "facilityUse": {
      "@type": "IndividualFacilityUse",
      "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1",
      "name": "Court 1 on [OPEN BOOKING API TEST INTERFACE] Bookable Facility",
      "aggregateFacilityUse": {
        "@type": "FacilityUse",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2078",
        "identifier": 2078,
        "name": "[OPEN BOOKING API TEST INTERFACE] Bookable Facility",
        "facilityType": [
          {
            "@type": "Concept",
            "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
            "inScheme": "https://openactive.io/facility-types",
            "prefLabel": "Squash Court"
          }
        ],
        "location": {
          "@type": "Place",
          "@id": "https://example.com/place/1",
          "identifier": 1,
          "name": "Post-ercise Plaza",
          "description": "Sorting Out Your Fitness One Parcel Lift at a Time! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
          "address": {
            "@type": "PostalAddress",
            "addressCountry": "GB",
            "addressLocality": "Oxford",
            "addressRegion": "Oxfordshire",
            "postalCode": "OX1 1AA",
            "streetAddress": "Kings Mead House"
          },
          "amenityFeature": [
            {
              "@type": "ChangingFacilities",
              "name": "Changing Facilities",
              "value": true
            },
            {
              "@type": "Showers",
              "name": "Showers",
              "value": true
            },
            {
              "@type": "Lockers",
              "name": "Lockers",
              "value": true
            },
            {
              "@type": "Towels",
              "name": "Towels",
              "value": false
            },
            {
              "@type": "Creche",
              "name": "Creche",
              "value": false
            },
            {
              "@type": "Parking",
              "name": "Parking",
              "value": false
            }
          ],
          "geo": {
            "@type": "GeoCoordinates",
            "latitude": 51.7502,
            "longitude": -1.2674
          },
          "image": [
            {
              "@type": "ImageObject",
              "url": "https://upload.wikimedia.org/wikipedia/commons/e/e5/Oxford_StAldates_PostOffice.jpg"
            }
          ],
          "openingHoursSpecification": [
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Sunday"
              ],
              "opens": "09:00"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Monday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Tuesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Wednesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Thursday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Friday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Saturday"
              ],
              "opens": "09:00"
            }
          ],
          "telephone": "01865 000001",
          "url": "https://en.wikipedia.org/wiki/Post_Office_Limited"
        },
        "provider": {
          "@type": "Organization",
          "@id": "https://localhost:5001/api/identifiers/sellers/1",
          "name": "Acme Fitness Ltd",
          "isOpenBookingAllowed": true,
          "sameAs": [
            "https://socialmedia.com/AcmeFitnessLtd"
          ],
          "taxMode": "https://openactive.io/TaxGross",
          "telephone": "03599 052715",
          "termsOfService": [
            {
              "@type": "PrivacyPolicy",
              "name": "Privacy Policy",
              "requiresExplicitConsent": false,
              "url": "https://example.com/privacy.html"
            }
          ],
          "url": "https://dimitri.com"
        },
        "url": "https://www.example.com/facilities/2078"
      }
    },
    "maximumUses": 10,
    "offers": [
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 0,
        "priceCurrency": "GBP"
      }
    ],
    "remainingUses": 9,
    "startDate": "2024-11-22T17:04:11+00:00",
    "endDate": "2024-11-22T18:04:11+00:00"
  }
}

Opportunity Feed extract for OrderItem 5 Request

GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Ffacility-uses%2F2077%2Findividual-facility-uses%2F1%2Fslots%2F20077?useCacheIfAvailable=true&expectedCapacity=9


Response status code: 200 OK. Responded in 16.360624ms.

{
  "data": {
    "@context": [
      "https://openactive.io/"
    ],
    "@type": "Slot",
    "@id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077",
    "identifier": 20077,
    "duration": "PT1H",
    "facilityUse": {
      "@type": "IndividualFacilityUse",
      "@id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1",
      "name": "Court 1 on [OPEN BOOKING API TEST INTERFACE] Bookable Facility",
      "aggregateFacilityUse": {
        "@type": "FacilityUse",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2077",
        "identifier": 2077,
        "name": "GOLDEN: [OPEN BOOKING API TEST INTERFACE] Bookable Facility",
        "facilityType": [
          {
            "@type": "Concept",
            "@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
            "inScheme": "https://openactive.io/facility-types",
            "prefLabel": "Squash Court"
          }
        ],
        "location": {
          "@type": "Place",
          "@id": "https://example.com/place/2",
          "identifier": 2,
          "name": "Premier Lifters",
          "description": "Where your Fitness Goals are Always Inn-Sight. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
          "address": {
            "@type": "PostalAddress",
            "addressCountry": "GB",
            "addressLocality": "Oxford",
            "addressRegion": "Oxfordshire",
            "postalCode": "OX1 1BB",
            "streetAddress": "Greyfriars Court, Paradise Square"
          },
          "amenityFeature": [
            {
              "@type": "ChangingFacilities",
              "name": "Changing Facilities",
              "value": false
            },
            {
              "@type": "Showers",
              "name": "Showers",
              "value": false
            },
            {
              "@type": "Lockers",
              "name": "Lockers",
              "value": false
            },
            {
              "@type": "Towels",
              "name": "Towels",
              "value": true
            },
            {
              "@type": "Creche",
              "name": "Creche",
              "value": true
            },
            {
              "@type": "Parking",
              "name": "Parking",
              "value": true
            }
          ],
          "geo": {
            "@type": "GeoCoordinates",
            "latitude": 51.7504933,
            "longitude": -1.2620685
          },
          "image": [
            {
              "@type": "ImageObject",
              "url": "https://upload.wikimedia.org/wikipedia/commons/5/53/Cambridge_Orchard_Park_Premier_Inn.jpg"
            }
          ],
          "openingHoursSpecification": [
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Sunday"
              ],
              "opens": "09:00"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Monday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Tuesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Wednesday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Thursday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "21:30",
              "dayOfWeek": [
                "https://schema.org/Friday"
              ],
              "opens": "06:30"
            },
            {
              "@type": "OpeningHoursSpecification",
              "closes": "17:30",
              "dayOfWeek": [
                "https://schema.org/Saturday"
              ],
              "opens": "09:00"
            }
          ],
          "telephone": "01865 000002",
          "url": "https://en.wikipedia.org/wiki/Premier_Inn"
        },
        "provider": {
          "@type": "Organization",
          "@id": "https://localhost:5001/api/identifiers/sellers/1",
          "name": "Acme Fitness Ltd",
          "isOpenBookingAllowed": true,
          "sameAs": [
            "https://socialmedia.com/AcmeFitnessLtd"
          ],
          "taxMode": "https://openactive.io/TaxGross",
          "telephone": "09654 914040",
          "termsOfService": [
            {
              "@type": "PrivacyPolicy",
              "name": "Privacy Policy",
              "requiresExplicitConsent": false,
              "url": "https://example.com/privacy.html"
            }
          ],
          "url": "http://kenneth.org"
        },
        "url": "https://www.example.com/facilities/2077"
      }
    },
    "maximumUses": 10,
    "offers": [
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 14.99,
        "priceCurrency": "GBP"
      },
      {
        "@type": "Offer",
        "@id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077#/offers/0",
        "acceptedPaymentMethod": [
          "http://purl.org/goodrelations/v1#Cash",
          "http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
        ],
        "allowCustomerCancellationFullRefund": true,
        "price": 14.99,
        "priceCurrency": "GBP"
      }
    ],
    "remainingUses": 9,
    "startDate": "2024-11-22T17:04:11+00:00",
    "endDate": "2024-11-22T18:04:11+00:00"
  }
}

Specs

✅ Assert Opportunity Capacity (after B) >> validation of Opportunity Feed extract for OrderItem 0

Specs

Validations

✅ Assert Opportunity Capacity (after B) >> validation of Opportunity Feed extract for OrderItem 1

Specs

Validations

✅ Assert Opportunity Capacity (after B) >> validation of Opportunity Feed extract for OrderItem 2

Specs

Validations

✅ Assert Opportunity Capacity (after B) >> validation of Opportunity Feed extract for OrderItem 3

Specs

Validations

✅ Assert Opportunity Capacity (after B) >> validation of Opportunity Feed extract for OrderItem 4

Specs

Validations

✅ Assert Opportunity Capacity (after B) >> validation of Opportunity Feed extract for OrderItem 5

Specs

Validations

✅ Test Interface Action (test:ReplacementSimulateAction)

Orders (orders) Feed listen for '18ff8cc2-31a8-4e20-8516-ec0503b40ec5' change (auth: primary) Request

POST http://localhost:3000/order-listeners/orders/primary/18ff8cc2-31a8-4e20-8516-ec0503b40ec5

{}

Response status code: 200 OK. Responded in 3.857114ms.

{
  "headers": {
    "Accept": "application/json, application/vnd.openactive.booking+json; version=1",
    "Cache-Control": "max-age=0",
    "Authorization": "Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkIwNEY3QjkxREUzQjk0NzhDNjE4MzNGQjI0QUE1Q0RCIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE3MzIyMDgxNzIsImV4cCI6MTczMjIxMTc3MiwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiNDJhNWRiODktMTk4Ni00MzliLTk5MmUtYjBiY2ZjNzMyZDQyIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiNDJhNWRiODktMTk4Ni00MzliLTk5MmUtYjBiY2ZjNzMyZDQyIiwianRpIjoiMkEyOTYyODRCNzFCRDM2RDhDNEE2ODMxRDdDODkzOEYiLCJpYXQiOjE3MzIyMDgxNzIsInNjb3BlIjpbIm9wZW5hY3RpdmUtb3JkZXJzZmVlZCJdfQ.iz0ueN0c7JG1LHVlkkxFrip5-e078iUtl--buG6YwmeZ9qpZnlV7pEsnjcfDDNVX35mHIXFbITHpXly77YCeGs18DvQqeyw8dNaCI6Hfupz8xMLFwWL8-OVYr-dDJkoTW6qHMD2WxHfb_CUIl18bqZr8MGpQEVEOsQKZ144qA97aKENFAZPsyiwCLmTujPAiBg16b71gXbaNpaE_VWbo5V85jbPn3MftxoydxJUjkVXaVtvbnyIVXnHUsPlPWnzhFyvW1TdbtB2ciWx-AkoPHtolLsS60b4AO4xrOcn9Ru6mitAC8KFZM9HLYpRA7f9hqrZtOCqs8cLPX2RuBMQ3Sw"
  },
  "startingFeedPage": "https://localhost:5001/api/openbooking/orders-rpde?afterTimestamp=638678054597963137&afterId=22f35823-69aa-4676-ab39-e638aa4292a8",
  "message": "Listening for UUID: '18ff8cc2-31a8-4e20-8516-ec0503b40ec5' in feed: orders, for Booking Partner: primary from startingFeedPage using headers"
}

Call TestInterface Action of type: test:ReplacementSimulateAction Request

POST https://localhost:5001/api/openbooking/test-interface/actions

{
  "@context": [
    "https://openactive.io/",
    "https://openactive.io/test-interface"
  ],
  "@type": "test:ReplacementSimulateAction",
  "object": {
    "@type": "Order",
    "@id": "https://localhost:5001/api/openbooking/orders/18ff8cc2-31a8-4e20-8516-ec0503b40ec5"
  }
}

Response status code: 204 No Content. Responded in 67.15217ms.

Specs

✅ Orders Feed (after test:ReplacementSimulateAction)

Orders (orders) Feed collect for '18ff8cc2-31a8-4e20-8516-ec0503b40ec5' change (auth: primary) Request

GET http://localhost:3000/order-listeners/orders/primary/18ff8cc2-31a8-4e20-8516-ec0503b40ec5


Response status code: 200 OK. Responded in 2183.154429ms.

{
  "state": "updated",
  "kind": "Order",
  "id": "18ff8cc2-31a8-4e20-8516-ec0503b40ec5",
  "modified": "638678054710237493",
  "data": {
    "@context": [
      "https://openactive.io/",
      "https://openactive.io/ns-beta"
    ],
    "@type": "Order",
    "@id": "https://localhost:5001/api/openbooking/orders/18ff8cc2-31a8-4e20-8516-ec0503b40ec5",
    "identifier": "18ff8cc2-31a8-4e20-8516-ec0503b40ec5",
    "orderedItem": [
      {
        "@type": "OrderItem",
        "@id": "https://localhost:5001/api/openbooking/orders/18ff8cc2-31a8-4e20-8516-ec0503b40ec5#/orderedItems/369",
        "acceptedOffer": {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076#/offers/0",
          "price": 0,
          "priceCurrency": "GBP"
        },
        "accessCode": [
          {
            "@type": "PropertyValue",
            "name": "Pin Code",
            "description": "773379"
          }
        ],
        "accessPass": [
          {
            "@type": "Barcode",
            "text": "8202256828",
            "url": "https://via.placeholder.com/25x25/cccccc/9c9c9c.png",
            "beta:codeType": "code128"
          }
        ],
        "orderedItem": "https://localhost:5001/api/identifiers/facility-uses/2076/individual-facility-uses/1/slots/20076",
        "orderItemStatus": "https://openactive.io/OrderItemConfirmed"
      },
      {
        "@type": "OrderItem",
        "@id": "https://localhost:5001/api/openbooking/orders/18ff8cc2-31a8-4e20-8516-ec0503b40ec5#/orderedItems/371",
        "acceptedOffer": {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077#/offers/0",
          "price": 14.99,
          "priceCurrency": "GBP"
        },
        "accessCode": [
          {
            "@type": "PropertyValue",
            "name": "Pin Code",
            "description": "996916"
          }
        ],
        "accessPass": [
          {
            "@type": "Barcode",
            "text": "0957204970",
            "url": "https://via.placeholder.com/25x25/cccccc/9c9c9c.png",
            "beta:codeType": "code128"
          }
        ],
        "orderedItem": "https://localhost:5001/api/identifiers/facility-uses/2077/individual-facility-uses/1/slots/20077",
        "orderItemStatus": "https://openactive.io/OrderItemConfirmed"
      },
      {
        "@type": "OrderItem",
        "@id": "https://localhost:5001/api/openbooking/orders/18ff8cc2-31a8-4e20-8516-ec0503b40ec5#/orderedItems/370",
        "acceptedOffer": {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078#/offers/0",
          "price": 0,
          "priceCurrency": "GBP"
        },
        "accessCode": [
          {
            "@type": "PropertyValue",
            "name": "Pin Code",
            "description": "856579"
          }
        ],
        "accessPass": [
          {
            "@type": "Barcode",
            "text": "2440648183",
            "url": "https://via.placeholder.com/25x25/cccccc/9c9c9c.png",
            "beta:codeType": "code128"
          }
        ],
        "orderedItem": "https://localhost:5001/api/identifiers/facility-uses/2078/individual-facility-uses/1/slots/20078",
        "orderItemStatus": "https://openactive.io/OrderItemConfirmed"
      },
      {
        "@type": "OrderItem",
        "@id": "https://localhost:5001/api/openbooking/orders/18ff8cc2-31a8-4e20-8516-ec0503b40ec5#/orderedItems/366",
        "acceptedOffer": {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/1#/offers/0",
          "price": 14.99,
          "priceCurrency": "GBP"
        },
        "accessCode": [
          {
            "@type": "PropertyValue",
            "name": "Pin Code",
            "description": "372862"
          }
        ],
        "accessPass": [
          {
            "@type": "Barcode",
            "text": "2937359625",
            "url": "https://via.placeholder.com/25x25/cccccc/9c9c9c.png",
            "beta:codeType": "code128"
          }
        ],
        "orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/1/events/1",
        "orderItemStatus": "https://openactive.io/OrderItemConfirmed"
      },
      {
        "@type": "OrderItem",
        "@id": "https://localhost:5001/api/openbooking/orders/18ff8cc2-31a8-4e20-8516-ec0503b40ec5#/orderedItems/367",
        "acceptedOffer": {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/2060#/offers/0",
          "price": 14.99,
          "priceCurrency": "GBP"
        },
        "accessCode": [
          {
            "@type": "PropertyValue",
            "name": "Pin Code",
            "description": "294550"
          }
        ],
        "accessPass": [
          {
            "@type": "Barcode",
            "text": "7951537497",
            "url": "https://via.placeholder.com/25x25/cccccc/9c9c9c.png",
            "beta:codeType": "code128"
          }
        ],
        "orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/2060/events/20060",
        "orderItemStatus": "https://openactive.io/OrderItemConfirmed"
      },
      {
        "@type": "OrderItem",
        "@id": "https://localhost:5001/api/openbooking/orders/18ff8cc2-31a8-4e20-8516-ec0503b40ec5#/orderedItems/368",
        "acceptedOffer": {
          "@type": "Offer",
          "@id": "https://localhost:5001/api/identifiers/session-series/2061#/offers/0",
          "price": 0,
          "priceCurrency": "GBP"
        },
        "accessCode": [
          {
            "@type": "PropertyValue",
            "name": "Pin Code",
            "description": "839237"
          }
        ],
        "accessPass": [
          {
            "@type": "Barcode",
            "text": "4491261125",
            "url": "https://via.placeholder.com/25x25/cccccc/9c9c9c.png",
            "beta:codeType": "code128"
          }
        ],
        "orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/2061/events/20061",
        "orderItemStatus": "https://openactive.io/OrderItemConfirmed"
      }
    ],
    "totalPaymentDue": {
      "@type": "PriceSpecification",
      "openBookingPrepayment": "https://openactive.io/Required",
      "price": 44.97,
      "priceCurrency": "GBP"
    }
  }
}

Specs

✅ Orders Feed (after test:ReplacementSimulateAction) >> validation of OrderFeed

Specs

Validations