< Return to Summary | File Generated: Thu Nov 21 2024 17:46:09 GMT+0000 (Coordinated Universal Time)
Booking Flow: OpenBookingApprovalFlow
Opportunity Type: Multiple
Feature: Payment / prepayment required (Implemented)
Test: Unsuccessful booking without payment property
An unsuccessful end to end booking for a non-free opportunity, failing due to missing payment
property.
npm start -- --runInBand test/features/payment/prepayment-required/implemented/opportunity-paid-no-payment-error-test.js
The OpenActive Reference Implementation test result for this test can be used as a reference to help with debugging.
⚠️ 20 passed with 0 failures, 118 warnings and 30 suggestions
POST http://localhost:3000/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#TestOpportunityBookableNonFreePrepaymentRequired",
"test:testOpenBookingFlow": "https://openactive.io/test-interface#OpenBookingApprovalFlow"
}
Response status code: 200 OK. Responded in 8.05256ms.
{
"@context": "https://openactive.io/",
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1307/events/13067"
}
POST http://localhost:3000/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#TestOpportunityBookableNonFreePrepaymentRequired",
"test:testOpenBookingFlow": "https://openactive.io/test-interface#OpenBookingApprovalFlow"
}
Response status code: 200 OK. Responded in 7.090583ms.
{
"@context": "https://openactive.io/",
"@type": "Slot",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3/slots/14504"
}
GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Fscheduled-sessions%2F1307%2Fevents%2F13067?useCacheIfAvailable=true
Response status code: 200 OK. Responded in 5.486408ms.
{
"data": {
"@context": [
"https://openactive.io/"
],
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1307/events/13067",
"startDate": "2024-12-01T06:26:42+00:00",
"endDate": "2024-12-01T10:14:42+00:00",
"superEvent": {
"@type": "SessionSeries",
"@id": "https://localhost:5001/api/identifiers/session-series/1307",
"identifier": 1307,
"name": "GOLDEN: Fresh Walking",
"activity": [
{
"@type": "Concept",
"@id": "https://openactive.io/activity-list#95092977-5a20-4d6e-b312-8fddabe71544",
"inScheme": "https://openactive.io/activity-list",
"prefLabel": "Walking"
}
],
"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/1307#/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,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Required",
"price": 18,
"priceCurrency": "GBP"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1307#/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,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Required",
"price": 18,
"priceCurrency": "GBP"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1307#/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,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Required",
"price": 18,
"priceCurrency": "GBP"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1307#/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,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Required",
"price": 18,
"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": "02751 621814",
"termsOfService": [
{
"@type": "PrivacyPolicy",
"name": "Privacy Policy",
"requiresExplicitConsent": false,
"url": "https://example.com/privacy.html"
}
],
"url": "http://ezekiel.name"
},
"url": "https://www.example.com/sessions/1307"
},
"duration": "PT3H48M",
"maximumAttendeeCapacity": 45,
"remainingAttendeeCapacity": 45
}
}
GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Ffacility-uses%2F1451%2Findividual-facility-uses%2F3%2Fslots%2F14504?useCacheIfAvailable=true
Response status code: 200 OK. Responded in 4.891416ms.
{
"data": {
"@context": [
"https://openactive.io/"
],
"@type": "Slot",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3/slots/14504",
"identifier": 14504,
"duration": "PT2H28M",
"facilityUse": {
"@type": "IndividualFacilityUse",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3",
"name": "Court 3 at Fresh Cricket Net",
"aggregateFacilityUse": {
"@type": "FacilityUse",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451",
"identifier": 1451,
"name": "GOLDEN: Fresh Cricket Net",
"facilityType": [
{
"@type": "Concept",
"@id": "https://openactive.io/facility-types#2d333183-6a6d-4a95-aad4-c5699f705b14",
"inScheme": "https://openactive.io/facility-types",
"prefLabel": "Cricket Net"
}
],
"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": "03503 432213",
"termsOfService": [
{
"@type": "PrivacyPolicy",
"name": "Privacy Policy",
"requiresExplicitConsent": false,
"url": "https://example.com/privacy.html"
}
],
"url": "https://zora.biz"
},
"url": "https://www.example.com/facilities/1451"
}
},
"maximumUses": 1,
"offers": [
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3/slots/14504#/offers/0",
"acceptedPaymentMethod": [
"http://purl.org/goodrelations/v1#Cash",
"http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
],
"allowCustomerCancellationFullRefund": false,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Required",
"price": 1.74,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P10DT3H12M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3/slots/14504#/offers/0",
"acceptedPaymentMethod": [
"http://purl.org/goodrelations/v1#Cash",
"http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
],
"allowCustomerCancellationFullRefund": false,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Required",
"price": 1.74,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P10DT3H12M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3/slots/14504#/offers/0",
"acceptedPaymentMethod": [
"http://purl.org/goodrelations/v1#Cash",
"http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
],
"allowCustomerCancellationFullRefund": false,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Required",
"price": 1.74,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P10DT3H12M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3/slots/14504#/offers/0",
"acceptedPaymentMethod": [
"http://purl.org/goodrelations/v1#Cash",
"http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
],
"allowCustomerCancellationFullRefund": false,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Required",
"price": 1.74,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P10DT3H12M"
}
],
"remainingUses": 1,
"startDate": "2024-11-27T18:08:42+00:00",
"endDate": "2024-11-27T20:36:42+00:00"
}
}
eventStatus
is missing from ScheduledSession
.leader
is missing from ScheduledSession
.url
is missing from ScheduledSession
.description
is missing from SessionSeries
.image
is missing from SessionSeries
.ageRange
is missing from SessionSeries
.genderRestriction
is missing from SessionSeries
.leader
is missing from SessionSeries
.level
is missing from SessionSeries
.amenityFeature
is missing from Place
.genderRestriction
is supplied on a ScheduledSession
.ageRange
is 18+ when not specified.eventStatus
is scheduled if not specified or invalid.genderRestriction
is supplied on a SessionSeries
.ageRange
is 18+ when not specified.eventStatus
is scheduled if not specified or invalid.schema:name
is declared in schema.org but this validator is not yet capable of checking whether they have the right format or values. You should refer to the schema.org documentation for schema:name for additional guidance.schema:name
is declared in schema.org but this validator is not yet capable of checking whether they have the right format or values. You should refer to the schema.org documentation for schema:name for additional guidance.schema:name
is declared in schema.org but this validator is not yet capable of checking whether they have the right format or values. You should refer to the schema.org documentation for schema:name for additional guidance.schema:name
is declared in schema.org but this validator is not yet capable of checking whether they have the right format or values. You should refer to the schema.org documentation for schema:name for additional guidance.description
is missing from IndividualFacilityUse
.image
is missing from IndividualFacilityUse
.hoursAvailable
is missing from IndividualFacilityUse
.description
is missing from FacilityUse
.image
is missing from FacilityUse
.hoursAvailable
is missing from FacilityUse
.offers
is missing from FacilityUse
.name
is missing from Offer
.ageRestriction
is missing from Offer
.name
is missing from Offer
.ageRestriction
is missing from Offer
.name
is missing from Offer
.ageRestriction
is missing from Offer
.name
is missing from Offer
.ageRestriction
is missing from Offer
.PUT https://localhost:5001/api/openbooking/order-quote-templates/05a6a3ef-f191-448f-ad85-fdd9453b1666
"application/vnd.openactive.booking+json; version=1"
"Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkIwNEY3QjkxREUzQjk0NzhDNjE4MzNGQjI0QUE1Q0RCIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE3MzIyMDk2NDYsImV4cCI6MTczMjIxMzI0NiwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiOGE3NjY2YTEtN2ZlYi00MjVkLTk1NjktYzBmNjE1NDFkOTVjIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiOGE3NjY2YTEtN2ZlYi00MjVkLTk1NjktYzBmNjE1NDFkOTVjIiwic3ViIjoiMTAwIiwiYXV0aF90aW1lIjoxNzMyMjA5NjQ1LCJpZHAiOiJsb2NhbCIsImh0dHBzOi8vb3BlbmFjdGl2ZS5pby9zZWxsZXJJZCI6Imh0dHBzOi8vbG9jYWxob3N0OjUwMDEvYXBpL2lkZW50aWZpZXJzL3NlbGxlcnMvMSIsImp0aSI6IjE4OEU5QzZCMzU1MzBCOTMxOTdBRUVGNTdDRTQwNjVGIiwic2lkIjoiMUJDNDAzNTU5RDNCNDZGMjMxMUVDRkFGNzgyNEFEQ0EiLCJpYXQiOjE3MzIyMDk2NDYsInNjb3BlIjpbIm9wZW5pZCIsIm9wZW5hY3RpdmUtb3BlbmJvb2tpbmciLCJvcGVuYWN0aXZlLWlkZW50aXR5Iiwib2ZmbGluZV9hY2Nlc3MiXSwiYW1yIjpbInB3ZCJdfQ.XnFNCTra9y2IXi3N740CSnROyKTwVJzbtliAI5KsdLByBlyv6MUgKvGMGeVQlwLtrwQbqTfkgqvTtIim-eH4wAnQSngRxMqSX3YJCnyJeEynlqJ0Th5TNK380PhyASCysnJWu0MXePNXwI9S0pJtZaUojhHS6tCda8uP6k-5LgnaejbCXHf2YdW4vAcO7czFZ5sc-sTzlPzlsEESUNUYyttsKyOQ6uaiJqqvJ4M3GTGX0eHgLnkRdaoF5hOA341JevIWXwT__RkO-kgpvBV-yy9fzbCz197QNk7-X5fRfKP0MZRIJq9DrHyWzzB2rWZC5qLg8Lk0Skef1OghWt45xg"
{
"@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/1307#/offers/0",
"orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/1307/events/13067"
},
{
"@type": "OrderItem",
"position": 1,
"acceptedOffer": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3/slots/14504#/offers/0",
"orderedItem": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3/slots/14504"
}
],
"payment": {
"@type": "Payment",
"name": "AcmeBroker Points",
"accountId": "SN1593",
"paymentProviderId": "STRIPE"
}
}
Response status code: 200 OK. Responded in 387.885628ms.
{
"@context": "https://openactive.io/",
"@type": "OrderQuote",
"@id": "https://localhost:5001/api/openbooking/order-quotes/05a6a3ef-f191-448f-ad85-fdd9453b1666",
"lease": {
"@type": "Lease",
"leaseExpires": "2024-11-21T17:51:31+00:00"
},
"orderRequiresApproval": true,
"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/1307#/offers/0",
"allowCustomerCancellationFullRefund": true,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingPrepayment": "https://openactive.io/Required",
"price": 18,
"priceCurrency": "GBP"
},
"orderedItem": {
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1307/events/13067",
"startDate": "2024-12-01T06:26:42+00:00",
"endDate": "2024-12-01T10:14:42+00:00",
"superEvent": {
"@type": "SessionSeries",
"@id": "https://localhost:5001/api/identifiers/session-series/1307",
"name": "Fresh Walking",
"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/1307"
},
"maximumAttendeeCapacity": 45,
"remainingAttendeeCapacity": 45
},
"position": 0,
"unitTaxSpecification": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 3.6,
"priceCurrency": "GBP",
"rate": 0.2
}
]
},
{
"@type": "OrderItem",
"acceptedOffer": {
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3/slots/14504#/offers/0",
"allowCustomerCancellationFullRefund": false,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingPrepayment": "https://openactive.io/Required",
"price": 1.74,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P10DT3H12M"
},
"orderedItem": {
"@type": "Slot",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3/slots/14504",
"facilityUse": {
"@type": "IndividualFacilityUse",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3",
"aggregateFacilityUse": {
"@type": "FacilityUse",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451",
"name": "Fresh Cricket Net",
"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/1451"
},
"name": "Court 3 at Fresh Cricket Net"
},
"maximumUses": 1,
"remainingUses": 1,
"startDate": "2024-11-27T18:08:42+00:00",
"endDate": "2024-11-27T20:36:42+00:00"
},
"position": 1,
"unitTaxSpecification": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 0.348,
"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": 19.74,
"priceCurrency": "GBP"
},
"totalPaymentTax": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 3.948,
"priceCurrency": "GBP",
"rate": 0.2
}
]
}
name
is missing from Offer
.ageRestriction
is missing from Offer
.eventStatus
is missing from ScheduledSession
.ageRange
is missing from SessionSeries
.genderRestriction
is missing from SessionSeries
.eventStatus
is missing from SessionSeries
.amenityFeature
is missing from Place
.name
is missing from Offer
.ageRestriction
is missing from Offer
.duration
is missing from Slot
.description
is missing from IndividualFacilityUse
.image
is missing from IndividualFacilityUse
.hoursAvailable
is missing from IndividualFacilityUse
.description
is missing from FacilityUse
.image
is missing from FacilityUse
.hoursAvailable
is missing from FacilityUse
.offers
is missing from FacilityUse
.email
is missing from Organization
.url
is missing from Organization
.logo
is missing from Organization
.vatID
is missing from Organization
.genderRestriction
is supplied on a ScheduledSession
.ageRange
is 18+ when not specified.eventStatus
is scheduled if not specified or invalid.genderRestriction
is supplied on a SessionSeries
.ageRange
is 18+ when not specified.eventStatus
is scheduled if not specified or invalid.GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Fscheduled-sessions%2F1307%2Fevents%2F13067?useCacheIfAvailable=true&expectedCapacity=44
Response status code: 200 OK. Responded in 561.891608ms.
{
"state": "updated",
"id": "https://localhost:5001/api/identifiers/scheduled-sessions/1307/events/13067",
"modified": "1732211193994",
"data": {
"@context": [
"https://openactive.io/"
],
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1307/events/13067",
"startDate": "2024-12-01T06:26:42+00:00",
"endDate": "2024-12-01T10:14:42+00:00",
"superEvent": {
"@type": "SessionSeries",
"@id": "https://localhost:5001/api/identifiers/session-series/1307",
"identifier": 1307,
"name": "GOLDEN: Fresh Walking",
"activity": [
{
"@type": "Concept",
"@id": "https://openactive.io/activity-list#95092977-5a20-4d6e-b312-8fddabe71544",
"inScheme": "https://openactive.io/activity-list",
"prefLabel": "Walking"
}
],
"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/1307#/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,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Required",
"price": 18,
"priceCurrency": "GBP"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1307#/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,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Required",
"price": 18,
"priceCurrency": "GBP"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1307#/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,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Required",
"price": 18,
"priceCurrency": "GBP"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1307#/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,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Required",
"price": 18,
"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": "02751 621814",
"termsOfService": [
{
"@type": "PrivacyPolicy",
"name": "Privacy Policy",
"requiresExplicitConsent": false,
"url": "https://example.com/privacy.html"
}
],
"url": "http://ezekiel.name"
},
"url": "https://www.example.com/sessions/1307"
},
"duration": "PT3H48M",
"maximumAttendeeCapacity": 45,
"remainingAttendeeCapacity": 44
}
}
GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Ffacility-uses%2F1451%2Findividual-facility-uses%2F3%2Fslots%2F14504?useCacheIfAvailable=true&expectedCapacity=0
Response status code: 200 OK. Responded in 158.444588ms.
{
"state": "updated",
"id": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3/slots/14504",
"modified": "1732211193589",
"data": {
"@context": [
"https://openactive.io/"
],
"@type": "Slot",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3/slots/14504",
"identifier": 14504,
"duration": "PT2H28M",
"facilityUse": {
"@type": "IndividualFacilityUse",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3",
"name": "Court 3 at Fresh Cricket Net",
"aggregateFacilityUse": {
"@type": "FacilityUse",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451",
"identifier": 1451,
"name": "GOLDEN: Fresh Cricket Net",
"facilityType": [
{
"@type": "Concept",
"@id": "https://openactive.io/facility-types#2d333183-6a6d-4a95-aad4-c5699f705b14",
"inScheme": "https://openactive.io/facility-types",
"prefLabel": "Cricket Net"
}
],
"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": "03503 432213",
"termsOfService": [
{
"@type": "PrivacyPolicy",
"name": "Privacy Policy",
"requiresExplicitConsent": false,
"url": "https://example.com/privacy.html"
}
],
"url": "https://zora.biz"
},
"url": "https://www.example.com/facilities/1451"
}
},
"maximumUses": 1,
"offers": [
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3/slots/14504#/offers/0",
"acceptedPaymentMethod": [
"http://purl.org/goodrelations/v1#Cash",
"http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
],
"allowCustomerCancellationFullRefund": false,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Required",
"price": 1.74,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P10DT3H12M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3/slots/14504#/offers/0",
"acceptedPaymentMethod": [
"http://purl.org/goodrelations/v1#Cash",
"http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
],
"allowCustomerCancellationFullRefund": false,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Required",
"price": 1.74,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P10DT3H12M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3/slots/14504#/offers/0",
"acceptedPaymentMethod": [
"http://purl.org/goodrelations/v1#Cash",
"http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
],
"allowCustomerCancellationFullRefund": false,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Required",
"price": 1.74,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P10DT3H12M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3/slots/14504#/offers/0",
"acceptedPaymentMethod": [
"http://purl.org/goodrelations/v1#Cash",
"http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
],
"allowCustomerCancellationFullRefund": false,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Required",
"price": 1.74,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P10DT3H12M"
}
],
"remainingUses": 0,
"startDate": "2024-11-27T18:08:42+00:00",
"endDate": "2024-11-27T20:36:42+00:00"
}
}
totalPaymentDue.openBookingPrepayment
'https://openactive.io/Required
'eventStatus
is missing from ScheduledSession
.leader
is missing from ScheduledSession
.url
is missing from ScheduledSession
.description
is missing from SessionSeries
.image
is missing from SessionSeries
.ageRange
is missing from SessionSeries
.genderRestriction
is missing from SessionSeries
.leader
is missing from SessionSeries
.level
is missing from SessionSeries
.amenityFeature
is missing from Place
.genderRestriction
is supplied on a ScheduledSession
.ageRange
is 18+ when not specified.eventStatus
is scheduled if not specified or invalid.genderRestriction
is supplied on a SessionSeries
.ageRange
is 18+ when not specified.eventStatus
is scheduled if not specified or invalid.schema:name
is declared in schema.org but this validator is not yet capable of checking whether they have the right format or values. You should refer to the schema.org documentation for schema:name for additional guidance.schema:name
is declared in schema.org but this validator is not yet capable of checking whether they have the right format or values. You should refer to the schema.org documentation for schema:name for additional guidance.schema:name
is declared in schema.org but this validator is not yet capable of checking whether they have the right format or values. You should refer to the schema.org documentation for schema:name for additional guidance.schema:name
is declared in schema.org but this validator is not yet capable of checking whether they have the right format or values. You should refer to the schema.org documentation for schema:name for additional guidance.description
is missing from IndividualFacilityUse
.image
is missing from IndividualFacilityUse
.hoursAvailable
is missing from IndividualFacilityUse
.description
is missing from FacilityUse
.image
is missing from FacilityUse
.hoursAvailable
is missing from FacilityUse
.offers
is missing from FacilityUse
.name
is missing from Offer
.ageRestriction
is missing from Offer
.name
is missing from Offer
.ageRestriction
is missing from Offer
.name
is missing from Offer
.ageRestriction
is missing from Offer
.name
is missing from Offer
.ageRestriction
is missing from Offer
.PUT https://localhost:5001/api/openbooking/order-quotes/05a6a3ef-f191-448f-ad85-fdd9453b1666
"application/vnd.openactive.booking+json; version=1"
"Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkIwNEY3QjkxREUzQjk0NzhDNjE4MzNGQjI0QUE1Q0RCIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE3MzIyMDk2NDYsImV4cCI6MTczMjIxMzI0NiwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiOGE3NjY2YTEtN2ZlYi00MjVkLTk1NjktYzBmNjE1NDFkOTVjIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiOGE3NjY2YTEtN2ZlYi00MjVkLTk1NjktYzBmNjE1NDFkOTVjIiwic3ViIjoiMTAwIiwiYXV0aF90aW1lIjoxNzMyMjA5NjQ1LCJpZHAiOiJsb2NhbCIsImh0dHBzOi8vb3BlbmFjdGl2ZS5pby9zZWxsZXJJZCI6Imh0dHBzOi8vbG9jYWxob3N0OjUwMDEvYXBpL2lkZW50aWZpZXJzL3NlbGxlcnMvMSIsImp0aSI6IjE4OEU5QzZCMzU1MzBCOTMxOTdBRUVGNTdDRTQwNjVGIiwic2lkIjoiMUJDNDAzNTU5RDNCNDZGMjMxMUVDRkFGNzgyNEFEQ0EiLCJpYXQiOjE3MzIyMDk2NDYsInNjb3BlIjpbIm9wZW5pZCIsIm9wZW5hY3RpdmUtb3BlbmJvb2tpbmciLCJvcGVuYWN0aXZlLWlkZW50aXR5Iiwib2ZmbGluZV9hY2Nlc3MiXSwiYW1yIjpbInB3ZCJdfQ.XnFNCTra9y2IXi3N740CSnROyKTwVJzbtliAI5KsdLByBlyv6MUgKvGMGeVQlwLtrwQbqTfkgqvTtIim-eH4wAnQSngRxMqSX3YJCnyJeEynlqJ0Th5TNK380PhyASCysnJWu0MXePNXwI9S0pJtZaUojhHS6tCda8uP6k-5LgnaejbCXHf2YdW4vAcO7czFZ5sc-sTzlPzlsEESUNUYyttsKyOQ6uaiJqqvJ4M3GTGX0eHgLnkRdaoF5hOA341JevIWXwT__RkO-kgpvBV-yy9fzbCz197QNk7-X5fRfKP0MZRIJq9DrHyWzzB2rWZC5qLg8Lk0Skef1OghWt45xg"
{
"@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]",
"givenName": "Prohaska",
"familyName": "Trycia",
"identifier": "cabaf7ad-8c33-4588-a52a-575735335676"
},
"orderedItem": [
{
"@type": "OrderItem",
"position": 0,
"acceptedOffer": "https://localhost:5001/api/identifiers/session-series/1307#/offers/0",
"orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/1307/events/13067"
},
{
"@type": "OrderItem",
"position": 1,
"acceptedOffer": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3/slots/14504#/offers/0",
"orderedItem": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3/slots/14504"
}
],
"payment": {
"@type": "Payment",
"name": "AcmeBroker Points",
"accountId": "SN1593",
"paymentProviderId": "STRIPE"
}
}
Response status code: 200 OK. Responded in 304.545363ms.
{
"@context": "https://openactive.io/",
"@type": "OrderQuote",
"@id": "https://localhost:5001/api/openbooking/order-quotes/05a6a3ef-f191-448f-ad85-fdd9453b1666",
"lease": {
"@type": "Lease",
"leaseExpires": "2024-11-21T17:51:34+00:00"
},
"orderRequiresApproval": true,
"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": "cabaf7ad-8c33-4588-a52a-575735335676",
"email": "[email protected]",
"familyName": "Trycia",
"givenName": "Prohaska"
},
"orderedItem": [
{
"@type": "OrderItem",
"acceptedOffer": {
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1307#/offers/0",
"allowCustomerCancellationFullRefund": true,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingPrepayment": "https://openactive.io/Required",
"price": 18,
"priceCurrency": "GBP"
},
"orderedItem": {
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1307/events/13067",
"startDate": "2024-12-01T06:26:42+00:00",
"endDate": "2024-12-01T10:14:42+00:00",
"superEvent": {
"@type": "SessionSeries",
"@id": "https://localhost:5001/api/identifiers/session-series/1307",
"name": "Fresh Walking",
"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/1307"
},
"maximumAttendeeCapacity": 45,
"remainingAttendeeCapacity": 45
},
"position": 0,
"unitTaxSpecification": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 3.6,
"priceCurrency": "GBP",
"rate": 0.2
}
]
},
{
"@type": "OrderItem",
"acceptedOffer": {
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3/slots/14504#/offers/0",
"allowCustomerCancellationFullRefund": false,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingPrepayment": "https://openactive.io/Required",
"price": 1.74,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P10DT3H12M"
},
"orderedItem": {
"@type": "Slot",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3/slots/14504",
"facilityUse": {
"@type": "IndividualFacilityUse",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3",
"aggregateFacilityUse": {
"@type": "FacilityUse",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451",
"name": "Fresh Cricket Net",
"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/1451"
},
"name": "Court 3 at Fresh Cricket Net"
},
"maximumUses": 1,
"remainingUses": 1,
"startDate": "2024-11-27T18:08:42+00:00",
"endDate": "2024-11-27T20:36:42+00:00"
},
"position": 1,
"unitTaxSpecification": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 0.348,
"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": 19.74,
"priceCurrency": "GBP"
},
"totalPaymentTax": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 3.948,
"priceCurrency": "GBP",
"rate": 0.2
}
]
}
name
is missing from Offer
.ageRestriction
is missing from Offer
.eventStatus
is missing from ScheduledSession
.ageRange
is missing from SessionSeries
.genderRestriction
is missing from SessionSeries
.eventStatus
is missing from SessionSeries
.amenityFeature
is missing from Place
.name
is missing from Offer
.ageRestriction
is missing from Offer
.duration
is missing from Slot
.description
is missing from IndividualFacilityUse
.image
is missing from IndividualFacilityUse
.hoursAvailable
is missing from IndividualFacilityUse
.description
is missing from FacilityUse
.image
is missing from FacilityUse
.hoursAvailable
is missing from FacilityUse
.offers
is missing from FacilityUse
.email
is missing from Organization
.url
is missing from Organization
.logo
is missing from Organization
.vatID
is missing from Organization
.genderRestriction
is supplied on a ScheduledSession
.ageRange
is 18+ when not specified.eventStatus
is scheduled if not specified or invalid.genderRestriction
is supplied on a SessionSeries
.ageRange
is 18+ when not specified.eventStatus
is scheduled if not specified or invalid.GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Fscheduled-sessions%2F1307%2Fevents%2F13067?useCacheIfAvailable=true&expectedCapacity=44
Response status code: 200 OK. Responded in 6.937898ms.
{
"data": {
"@context": [
"https://openactive.io/"
],
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1307/events/13067",
"startDate": "2024-12-01T06:26:42+00:00",
"endDate": "2024-12-01T10:14:42+00:00",
"superEvent": {
"@type": "SessionSeries",
"@id": "https://localhost:5001/api/identifiers/session-series/1307",
"identifier": 1307,
"name": "GOLDEN: Fresh Walking",
"activity": [
{
"@type": "Concept",
"@id": "https://openactive.io/activity-list#95092977-5a20-4d6e-b312-8fddabe71544",
"inScheme": "https://openactive.io/activity-list",
"prefLabel": "Walking"
}
],
"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/1307#/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,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Required",
"price": 18,
"priceCurrency": "GBP"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1307#/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,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Required",
"price": 18,
"priceCurrency": "GBP"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1307#/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,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Required",
"price": 18,
"priceCurrency": "GBP"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1307#/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,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Required",
"price": 18,
"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": "02751 621814",
"termsOfService": [
{
"@type": "PrivacyPolicy",
"name": "Privacy Policy",
"requiresExplicitConsent": false,
"url": "https://example.com/privacy.html"
}
],
"url": "http://ezekiel.name"
},
"url": "https://www.example.com/sessions/1307"
},
"duration": "PT3H48M",
"maximumAttendeeCapacity": 45,
"remainingAttendeeCapacity": 44
}
}
GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Ffacility-uses%2F1451%2Findividual-facility-uses%2F3%2Fslots%2F14504?useCacheIfAvailable=true&expectedCapacity=0
Response status code: 200 OK. Responded in 7.501449ms.
{
"data": {
"@context": [
"https://openactive.io/"
],
"@type": "Slot",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3/slots/14504",
"identifier": 14504,
"duration": "PT2H28M",
"facilityUse": {
"@type": "IndividualFacilityUse",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3",
"name": "Court 3 at Fresh Cricket Net",
"aggregateFacilityUse": {
"@type": "FacilityUse",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451",
"identifier": 1451,
"name": "GOLDEN: Fresh Cricket Net",
"facilityType": [
{
"@type": "Concept",
"@id": "https://openactive.io/facility-types#2d333183-6a6d-4a95-aad4-c5699f705b14",
"inScheme": "https://openactive.io/facility-types",
"prefLabel": "Cricket Net"
}
],
"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": "03503 432213",
"termsOfService": [
{
"@type": "PrivacyPolicy",
"name": "Privacy Policy",
"requiresExplicitConsent": false,
"url": "https://example.com/privacy.html"
}
],
"url": "https://zora.biz"
},
"url": "https://www.example.com/facilities/1451"
}
},
"maximumUses": 1,
"offers": [
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3/slots/14504#/offers/0",
"acceptedPaymentMethod": [
"http://purl.org/goodrelations/v1#Cash",
"http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
],
"allowCustomerCancellationFullRefund": false,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Required",
"price": 1.74,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P10DT3H12M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3/slots/14504#/offers/0",
"acceptedPaymentMethod": [
"http://purl.org/goodrelations/v1#Cash",
"http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
],
"allowCustomerCancellationFullRefund": false,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Required",
"price": 1.74,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P10DT3H12M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3/slots/14504#/offers/0",
"acceptedPaymentMethod": [
"http://purl.org/goodrelations/v1#Cash",
"http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
],
"allowCustomerCancellationFullRefund": false,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Required",
"price": 1.74,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P10DT3H12M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3/slots/14504#/offers/0",
"acceptedPaymentMethod": [
"http://purl.org/goodrelations/v1#Cash",
"http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
],
"allowCustomerCancellationFullRefund": false,
"latestCancellationBeforeStartDate": "P1DT16H",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Required",
"price": 1.74,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P10DT3H12M"
}
],
"remainingUses": 0,
"startDate": "2024-11-27T18:08:42+00:00",
"endDate": "2024-11-27T20:36:42+00:00"
}
}
totalPaymentDue.openBookingPrepayment
'https://openactive.io/Required
'eventStatus
is missing from ScheduledSession
.leader
is missing from ScheduledSession
.url
is missing from ScheduledSession
.description
is missing from SessionSeries
.image
is missing from SessionSeries
.ageRange
is missing from SessionSeries
.genderRestriction
is missing from SessionSeries
.leader
is missing from SessionSeries
.level
is missing from SessionSeries
.amenityFeature
is missing from Place
.genderRestriction
is supplied on a ScheduledSession
.ageRange
is 18+ when not specified.eventStatus
is scheduled if not specified or invalid.genderRestriction
is supplied on a SessionSeries
.ageRange
is 18+ when not specified.eventStatus
is scheduled if not specified or invalid.schema:name
is declared in schema.org but this validator is not yet capable of checking whether they have the right format or values. You should refer to the schema.org documentation for schema:name for additional guidance.schema:name
is declared in schema.org but this validator is not yet capable of checking whether they have the right format or values. You should refer to the schema.org documentation for schema:name for additional guidance.schema:name
is declared in schema.org but this validator is not yet capable of checking whether they have the right format or values. You should refer to the schema.org documentation for schema:name for additional guidance.schema:name
is declared in schema.org but this validator is not yet capable of checking whether they have the right format or values. You should refer to the schema.org documentation for schema:name for additional guidance.description
is missing from IndividualFacilityUse
.image
is missing from IndividualFacilityUse
.hoursAvailable
is missing from IndividualFacilityUse
.description
is missing from FacilityUse
.image
is missing from FacilityUse
.hoursAvailable
is missing from FacilityUse
.offers
is missing from FacilityUse
.name
is missing from Offer
.ageRestriction
is missing from Offer
.name
is missing from Offer
.ageRestriction
is missing from Offer
.name
is missing from Offer
.ageRestriction
is missing from Offer
.name
is missing from Offer
.ageRestriction
is missing from Offer
.PUT https://localhost:5001/api/openbooking/order-proposals/05a6a3ef-f191-448f-ad85-fdd9453b1666
"application/vnd.openactive.booking+json; version=1"
"Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkIwNEY3QjkxREUzQjk0NzhDNjE4MzNGQjI0QUE1Q0RCIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE3MzIyMDk2NDYsImV4cCI6MTczMjIxMzI0NiwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiOGE3NjY2YTEtN2ZlYi00MjVkLTk1NjktYzBmNjE1NDFkOTVjIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiOGE3NjY2YTEtN2ZlYi00MjVkLTk1NjktYzBmNjE1NDFkOTVjIiwic3ViIjoiMTAwIiwiYXV0aF90aW1lIjoxNzMyMjA5NjQ1LCJpZHAiOiJsb2NhbCIsImh0dHBzOi8vb3BlbmFjdGl2ZS5pby9zZWxsZXJJZCI6Imh0dHBzOi8vbG9jYWxob3N0OjUwMDEvYXBpL2lkZW50aWZpZXJzL3NlbGxlcnMvMSIsImp0aSI6IjE4OEU5QzZCMzU1MzBCOTMxOTdBRUVGNTdDRTQwNjVGIiwic2lkIjoiMUJDNDAzNTU5RDNCNDZGMjMxMUVDRkFGNzgyNEFEQ0EiLCJpYXQiOjE3MzIyMDk2NDYsInNjb3BlIjpbIm9wZW5pZCIsIm9wZW5hY3RpdmUtb3BlbmJvb2tpbmciLCJvcGVuYWN0aXZlLWlkZW50aXR5Iiwib2ZmbGluZV9hY2Nlc3MiXSwiYW1yIjpbInB3ZCJdfQ.XnFNCTra9y2IXi3N740CSnROyKTwVJzbtliAI5KsdLByBlyv6MUgKvGMGeVQlwLtrwQbqTfkgqvTtIim-eH4wAnQSngRxMqSX3YJCnyJeEynlqJ0Th5TNK380PhyASCysnJWu0MXePNXwI9S0pJtZaUojhHS6tCda8uP6k-5LgnaejbCXHf2YdW4vAcO7czFZ5sc-sTzlPzlsEESUNUYyttsKyOQ6uaiJqqvJ4M3GTGX0eHgLnkRdaoF5hOA341JevIWXwT__RkO-kgpvBV-yy9fzbCz197QNk7-X5fRfKP0MZRIJq9DrHyWzzB2rWZC5qLg8Lk0Skef1OghWt45xg"
{
"@context": "https://openactive.io/",
"@type": "OrderProposal",
"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]",
"givenName": "Prohaska",
"familyName": "Trycia",
"identifier": "cabaf7ad-8c33-4588-a52a-575735335676"
},
"orderedItem": [
{
"@type": "OrderItem",
"position": 0,
"acceptedOffer": "https://localhost:5001/api/identifiers/session-series/1307#/offers/0",
"orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/1307/events/13067"
},
{
"@type": "OrderItem",
"position": 1,
"acceptedOffer": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3/slots/14504#/offers/0",
"orderedItem": "https://localhost:5001/api/identifiers/facility-uses/1451/individual-facility-uses/3/slots/14504"
}
],
"totalPaymentDue": {
"@type": "PriceSpecification",
"price": 19.74,
"priceCurrency": "GBP"
}
}
Response status code: 400 Bad Request. Responded in 395.957614ms.
{
"@context": "https://openactive.io/",
"@type": "MissingPaymentDetailsError",
"name": "The 'payment' property of the 'Order' is absent when it is expected to be provided.",
"statusCode": 400,
"description": "Orders with prepayment must have nonzero price."
}
"@type": "MissingPaymentDetailsError"
with status code 400
instance
is missing from MissingPaymentDetailsError
.