< Return to Summary | File Generated: Thu Apr 17 2025 12:11:55 GMT+0000 (Coordinated Universal Time)
Booking Flow: OpenBookingApprovalFlow
Opportunity Type: ScheduledSession
Feature: Cancellation / Customer Requested Cancellation (Implemented)
Test: Successful booking and cancellation.
A successful end to end booking including full Order cancellation, including checking the Orders Feed. Two cancellation requests are made to ensure that cancellation is atomic.
npm start -- --runInBand test/features/cancellation/customer-requested-cancellation/implemented/book-and-cancel-test.js
The OpenActive Reference Implementation test result for this test can be used as a reference to help with debugging.
⚠️ 26 passed with 0 failures, 110 warnings and 60 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#TestOpportunityBookableCancellable",
"test:testOpenBookingFlow": "https://openactive.io/test-interface#OpenBookingApprovalFlow"
}
Response status code: 200 OK. Responded in 5.302845ms.
{
"@context": "https://openactive.io/",
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1610/events/16097"
}
GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Fscheduled-sessions%2F1610%2Fevents%2F16097?useCacheIfAvailable=true
Response status code: 200 OK. Responded in 3.841396ms.
{
"data": {
"@context": [
"https://openactive.io/"
],
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1610/events/16097",
"startDate": "2025-04-20T23:23:25+00:00",
"endDate": "2025-04-21T01:23:25+00:00",
"superEvent": {
"@type": "SessionSeries",
"@id": "https://localhost:5001/api/identifiers/session-series/1610",
"identifier": 1610,
"name": "GOLDEN: Cotton Cycling",
"activity": [
{
"@type": "Concept",
"@id": "https://openactive.io/activity-list#4a19873e-118e-43f4-b86e-05acba8fb1de",
"inScheme": "https://openactive.io/activity-list",
"prefLabel": "Cycling"
}
],
"eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
"offers": [
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1610#/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"
],
"price": 13.84,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT17H33M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1610#/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"
],
"price": 13.84,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT17H33M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1610#/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"
],
"price": 13.84,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT17H33M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1610#/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"
],
"price": 13.84,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT17H33M"
}
],
"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": "00521 194440",
"termsOfService": [
{
"@type": "PrivacyPolicy",
"name": "Privacy Policy",
"requiresExplicitConsent": false,
"url": "https://example.com/privacy.html"
}
],
"url": "http://brock.biz"
},
"url": "https://www.example.com/sessions/1610"
},
"duration": "PT2H",
"maximumAttendeeCapacity": 35,
"remainingAttendeeCapacity": 35
}
}
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.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.PUT https://localhost:5001/api/openbooking/order-quote-templates/ced8ed84-7596-4978-9d62-4eeb260f319b
"application/vnd.openactive.booking+json; version=1""Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkIwNEY3QjkxREUzQjk0NzhDNjE4MzNGQjI0QUE1Q0RCIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE3NDQ4OTE0NzEsImV4cCI6MTc0NDg5NTA3MSwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiZGRkYzA4ZDMtOGM0MC00OGJjLWI0YjktNDVmZDMzMGUxYzZiIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiZGRkYzA4ZDMtOGM0MC00OGJjLWI0YjktNDVmZDMzMGUxYzZiIiwic3ViIjoiMTAwIiwiYXV0aF90aW1lIjoxNzQ0ODkxNDcxLCJpZHAiOiJsb2NhbCIsImh0dHBzOi8vb3BlbmFjdGl2ZS5pby9zZWxsZXJJZCI6Imh0dHBzOi8vbG9jYWxob3N0OjUwMDEvYXBpL2lkZW50aWZpZXJzL3NlbGxlcnMvMSIsImp0aSI6IjI3RjlDQkJBRDJGQjU2MTBCOUYxOTAyNUE0OUQ2RDlBIiwic2lkIjoiMUM5OTRDQUQzRUNGOTFDNUMyMDlFQURGREQ3RUIyMDMiLCJpYXQiOjE3NDQ4OTE0NzEsInNjb3BlIjpbIm9wZW5pZCIsIm9wZW5hY3RpdmUtb3BlbmJvb2tpbmciLCJvcGVuYWN0aXZlLWlkZW50aXR5Iiwib2ZmbGluZV9hY2Nlc3MiXSwiYW1yIjpbInB3ZCJdfQ.fEYu53J4oLtCgpKHxXbcGQeS0kGo7PzFZm5nk8nD2eZANay4vly7TPouFjWeuUU1bN6fnKR9Z5btivyyFjQ4s6D_k3ZZWXSCOaRhYMbd6wHwvyzpYgxXtuR_c8ALAwlnLrAb3zcNCer2HVM5bC5cCE_mS_xQxnjYx_qI9r8IzKZgbDVlhFJBND9IuTRmdbP99YNl16XM5GiHG8_Hh3oLM8l5tv3d6tI4en0xlWwL9jC2We-7yYXXLtIRenGGe4nG3jlf5mDT1gsIfzcSjxBpCtAQa7wlO03de9eGqcGdqEkOM9H9PO0oLnbbtUgyZy8P_3HNQWOwkRJgaVYB7kBuEw"{
"@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/1610#/offers/0",
"orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/1610/events/16097"
}
],
"payment": {
"@type": "Payment",
"name": "AcmeBroker Points",
"accountId": "SN1593",
"paymentProviderId": "STRIPE"
}
}
Response status code: 200 OK. Responded in 37.41705ms.
{
"@context": "https://openactive.io/",
"@type": "OrderQuote",
"@id": "https://localhost:5001/api/openbooking/order-quotes/ced8ed84-7596-4978-9d62-4eeb260f319b",
"lease": {
"@type": "Lease",
"leaseExpires": "2025-04-17T12:17: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/1610#/offers/0",
"allowCustomerCancellationFullRefund": true,
"latestCancellationBeforeStartDate": "P1DT16H",
"price": 13.84,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT17H33M"
},
"orderedItem": {
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1610/events/16097",
"startDate": "2025-04-20T23:23:25+00:00",
"endDate": "2025-04-21T01:23:25+00:00",
"superEvent": {
"@type": "SessionSeries",
"@id": "https://localhost:5001/api/identifiers/session-series/1610",
"name": "Cotton Cycling",
"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/1610"
},
"maximumAttendeeCapacity": 35,
"remainingAttendeeCapacity": 35
},
"position": 0,
"unitTaxSpecification": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 2.768,
"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": 13.84,
"priceCurrency": "GBP"
},
"totalPaymentTax": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 2.768,
"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.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%2F1610%2Fevents%2F16097?useCacheIfAvailable=true&expectedCapacity=34
Response status code: 200 OK. Responded in 735.021829ms.
{
"state": "updated",
"id": "https://localhost:5001/api/identifiers/scheduled-sessions/1610/events/16097",
"modified": "1744891953296",
"data": {
"@context": [
"https://openactive.io/"
],
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1610/events/16097",
"startDate": "2025-04-20T23:23:25+00:00",
"endDate": "2025-04-21T01:23:25+00:00",
"superEvent": {
"@type": "SessionSeries",
"@id": "https://localhost:5001/api/identifiers/session-series/1610",
"identifier": 1610,
"name": "GOLDEN: Cotton Cycling",
"activity": [
{
"@type": "Concept",
"@id": "https://openactive.io/activity-list#4a19873e-118e-43f4-b86e-05acba8fb1de",
"inScheme": "https://openactive.io/activity-list",
"prefLabel": "Cycling"
}
],
"eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
"offers": [
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1610#/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"
],
"price": 13.84,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT17H33M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1610#/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"
],
"price": 13.84,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT17H33M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1610#/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"
],
"price": 13.84,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT17H33M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1610#/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"
],
"price": 13.84,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT17H33M"
}
],
"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": "00521 194440",
"termsOfService": [
{
"@type": "PrivacyPolicy",
"name": "Privacy Policy",
"requiresExplicitConsent": false,
"url": "https://example.com/privacy.html"
}
],
"url": "http://brock.biz"
},
"url": "https://www.example.com/sessions/1610"
},
"duration": "PT2H",
"maximumAttendeeCapacity": 35,
"remainingAttendeeCapacity": 34
}
}
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.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.PUT https://localhost:5001/api/openbooking/order-quotes/ced8ed84-7596-4978-9d62-4eeb260f319b
"application/vnd.openactive.booking+json; version=1""Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkIwNEY3QjkxREUzQjk0NzhDNjE4MzNGQjI0QUE1Q0RCIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE3NDQ4OTE0NzEsImV4cCI6MTc0NDg5NTA3MSwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiZGRkYzA4ZDMtOGM0MC00OGJjLWI0YjktNDVmZDMzMGUxYzZiIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiZGRkYzA4ZDMtOGM0MC00OGJjLWI0YjktNDVmZDMzMGUxYzZiIiwic3ViIjoiMTAwIiwiYXV0aF90aW1lIjoxNzQ0ODkxNDcxLCJpZHAiOiJsb2NhbCIsImh0dHBzOi8vb3BlbmFjdGl2ZS5pby9zZWxsZXJJZCI6Imh0dHBzOi8vbG9jYWxob3N0OjUwMDEvYXBpL2lkZW50aWZpZXJzL3NlbGxlcnMvMSIsImp0aSI6IjI3RjlDQkJBRDJGQjU2MTBCOUYxOTAyNUE0OUQ2RDlBIiwic2lkIjoiMUM5OTRDQUQzRUNGOTFDNUMyMDlFQURGREQ3RUIyMDMiLCJpYXQiOjE3NDQ4OTE0NzEsInNjb3BlIjpbIm9wZW5pZCIsIm9wZW5hY3RpdmUtb3BlbmJvb2tpbmciLCJvcGVuYWN0aXZlLWlkZW50aXR5Iiwib2ZmbGluZV9hY2Nlc3MiXSwiYW1yIjpbInB3ZCJdfQ.fEYu53J4oLtCgpKHxXbcGQeS0kGo7PzFZm5nk8nD2eZANay4vly7TPouFjWeuUU1bN6fnKR9Z5btivyyFjQ4s6D_k3ZZWXSCOaRhYMbd6wHwvyzpYgxXtuR_c8ALAwlnLrAb3zcNCer2HVM5bC5cCE_mS_xQxnjYx_qI9r8IzKZgbDVlhFJBND9IuTRmdbP99YNl16XM5GiHG8_Hh3oLM8l5tv3d6tI4en0xlWwL9jC2We-7yYXXLtIRenGGe4nG3jlf5mDT1gsIfzcSjxBpCtAQa7wlO03de9eGqcGdqEkOM9H9PO0oLnbbtUgyZy8P_3HNQWOwkRJgaVYB7kBuEw"{
"@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]",
"telephone": "734.200.8090 x1152",
"givenName": "Powlowski",
"familyName": "Mable"
},
"orderedItem": [
{
"@type": "OrderItem",
"position": 0,
"acceptedOffer": "https://localhost:5001/api/identifiers/session-series/1610#/offers/0",
"orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/1610/events/16097"
}
],
"payment": {
"@type": "Payment",
"name": "AcmeBroker Points",
"accountId": "SN1593",
"paymentProviderId": "STRIPE"
}
}
Response status code: 200 OK. Responded in 37.784114ms.
{
"@context": "https://openactive.io/",
"@type": "OrderQuote",
"@id": "https://localhost:5001/api/openbooking/order-quotes/ced8ed84-7596-4978-9d62-4eeb260f319b",
"lease": {
"@type": "Lease",
"leaseExpires": "2025-04-17T12:17:33+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",
"email": "[email protected]",
"familyName": "Mable",
"givenName": "Powlowski",
"telephone": "734.200.8090 x1152"
},
"orderedItem": [
{
"@type": "OrderItem",
"acceptedOffer": {
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1610#/offers/0",
"allowCustomerCancellationFullRefund": true,
"latestCancellationBeforeStartDate": "P1DT16H",
"price": 13.84,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT17H33M"
},
"orderedItem": {
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1610/events/16097",
"startDate": "2025-04-20T23:23:25+00:00",
"endDate": "2025-04-21T01:23:25+00:00",
"superEvent": {
"@type": "SessionSeries",
"@id": "https://localhost:5001/api/identifiers/session-series/1610",
"name": "Cotton Cycling",
"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/1610"
},
"maximumAttendeeCapacity": 35,
"remainingAttendeeCapacity": 35
},
"position": 0,
"unitTaxSpecification": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 2.768,
"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": 13.84,
"priceCurrency": "GBP"
},
"totalPaymentTax": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 2.768,
"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.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%2F1610%2Fevents%2F16097?useCacheIfAvailable=true&expectedCapacity=34
Response status code: 200 OK. Responded in 4.140854ms.
{
"data": {
"@context": [
"https://openactive.io/"
],
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1610/events/16097",
"startDate": "2025-04-20T23:23:25+00:00",
"endDate": "2025-04-21T01:23:25+00:00",
"superEvent": {
"@type": "SessionSeries",
"@id": "https://localhost:5001/api/identifiers/session-series/1610",
"identifier": 1610,
"name": "GOLDEN: Cotton Cycling",
"activity": [
{
"@type": "Concept",
"@id": "https://openactive.io/activity-list#4a19873e-118e-43f4-b86e-05acba8fb1de",
"inScheme": "https://openactive.io/activity-list",
"prefLabel": "Cycling"
}
],
"eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
"offers": [
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1610#/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"
],
"price": 13.84,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT17H33M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1610#/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"
],
"price": 13.84,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT17H33M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1610#/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"
],
"price": 13.84,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT17H33M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1610#/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"
],
"price": 13.84,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT17H33M"
}
],
"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": "00521 194440",
"termsOfService": [
{
"@type": "PrivacyPolicy",
"name": "Privacy Policy",
"requiresExplicitConsent": false,
"url": "https://example.com/privacy.html"
}
],
"url": "http://brock.biz"
},
"url": "https://www.example.com/sessions/1610"
},
"duration": "PT2H",
"maximumAttendeeCapacity": 35,
"remainingAttendeeCapacity": 34
}
}
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.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.PUT https://localhost:5001/api/openbooking/order-proposals/ced8ed84-7596-4978-9d62-4eeb260f319b
"application/vnd.openactive.booking+json; version=1""Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkIwNEY3QjkxREUzQjk0NzhDNjE4MzNGQjI0QUE1Q0RCIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE3NDQ4OTE0NzEsImV4cCI6MTc0NDg5NTA3MSwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiZGRkYzA4ZDMtOGM0MC00OGJjLWI0YjktNDVmZDMzMGUxYzZiIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiZGRkYzA4ZDMtOGM0MC00OGJjLWI0YjktNDVmZDMzMGUxYzZiIiwic3ViIjoiMTAwIiwiYXV0aF90aW1lIjoxNzQ0ODkxNDcxLCJpZHAiOiJsb2NhbCIsImh0dHBzOi8vb3BlbmFjdGl2ZS5pby9zZWxsZXJJZCI6Imh0dHBzOi8vbG9jYWxob3N0OjUwMDEvYXBpL2lkZW50aWZpZXJzL3NlbGxlcnMvMSIsImp0aSI6IjI3RjlDQkJBRDJGQjU2MTBCOUYxOTAyNUE0OUQ2RDlBIiwic2lkIjoiMUM5OTRDQUQzRUNGOTFDNUMyMDlFQURGREQ3RUIyMDMiLCJpYXQiOjE3NDQ4OTE0NzEsInNjb3BlIjpbIm9wZW5pZCIsIm9wZW5hY3RpdmUtb3BlbmJvb2tpbmciLCJvcGVuYWN0aXZlLWlkZW50aXR5Iiwib2ZmbGluZV9hY2Nlc3MiXSwiYW1yIjpbInB3ZCJdfQ.fEYu53J4oLtCgpKHxXbcGQeS0kGo7PzFZm5nk8nD2eZANay4vly7TPouFjWeuUU1bN6fnKR9Z5btivyyFjQ4s6D_k3ZZWXSCOaRhYMbd6wHwvyzpYgxXtuR_c8ALAwlnLrAb3zcNCer2HVM5bC5cCE_mS_xQxnjYx_qI9r8IzKZgbDVlhFJBND9IuTRmdbP99YNl16XM5GiHG8_Hh3oLM8l5tv3d6tI4en0xlWwL9jC2We-7yYXXLtIRenGGe4nG3jlf5mDT1gsIfzcSjxBpCtAQa7wlO03de9eGqcGdqEkOM9H9PO0oLnbbtUgyZy8P_3HNQWOwkRJgaVYB7kBuEw"{
"@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]",
"telephone": "734.200.8090 x1152",
"givenName": "Powlowski",
"familyName": "Mable"
},
"orderedItem": [
{
"@type": "OrderItem",
"position": 0,
"acceptedOffer": "https://localhost:5001/api/identifiers/session-series/1610#/offers/0",
"orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/1610/events/16097"
}
],
"totalPaymentDue": {
"@type": "PriceSpecification",
"price": 13.84,
"priceCurrency": "GBP"
},
"payment": {
"@type": "Payment",
"identifier": "6fRqwSwES",
"name": "AcmeBroker Points",
"accountId": "SN1593",
"paymentProviderId": "STRIPE"
}
}
Response status code: 201 Created. Responded in 36.676896ms.
{
"@context": "https://openactive.io/",
"@type": "OrderProposal",
"@id": "https://localhost:5001/api/openbooking/order-proposals/ced8ed84-7596-4978-9d62-4eeb260f319b",
"orderProposalStatus": "https://openactive.io/AwaitingSellerConfirmation",
"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",
"email": "[email protected]",
"familyName": "Mable",
"givenName": "Powlowski",
"telephone": "734.200.8090 x1152"
},
"orderedItem": [
{
"@type": "OrderItem",
"@id": "https://localhost:5001/api/openbooking/orders/ced8ed84-7596-4978-9d62-4eeb260f319b#/orderedItems/436",
"acceptedOffer": {
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1610#/offers/0",
"allowCustomerCancellationFullRefund": true,
"latestCancellationBeforeStartDate": "P1DT16H",
"price": 13.84,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT17H33M"
},
"orderedItem": {
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1610/events/16097",
"startDate": "2025-04-20T23:23:25+00:00",
"endDate": "2025-04-21T01:23:25+00:00",
"superEvent": {
"@type": "SessionSeries",
"@id": "https://localhost:5001/api/identifiers/session-series/1610",
"name": "Cotton Cycling",
"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/1610"
}
},
"position": 0,
"unitTaxSpecification": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 2.768,
"priceCurrency": "GBP",
"rate": 0.2
}
]
}
],
"orderProposalVersion": "https://localhost:5001/api/openbooking/order-proposals/ced8ed84-7596-4978-9d62-4eeb260f319b/versions/46095fb8-ec44-4d77-8d8f-376199d23352",
"payment": {
"@type": "Payment",
"identifier": "6fRqwSwES",
"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": 13.84,
"priceCurrency": "GBP"
},
"totalPaymentTax": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 2.768,
"priceCurrency": "GBP",
"rate": 0.2
}
]
}
name is missing from Offer.ageRestriction is missing from Offer.eventStatus is missing from ScheduledSession.maximumAttendeeCapacity is missing from ScheduledSession.remainingAttendeeCapacity is missing from ScheduledSession.ageRange is missing from SessionSeries.genderRestriction is missing from SessionSeries.eventStatus is missing from SessionSeries.amenityFeature is missing from Place.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.POST http://localhost:3000/order-listeners/order-proposals/primary/ced8ed84-7596-4978-9d62-4eeb260f319b
{}
Response status code: 200 OK. Responded in 4.269936ms.
{
"headers": {
"Accept": "application/json, application/vnd.openactive.booking+json; version=1",
"Cache-Control": "max-age=0",
"Authorization": "Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkIwNEY3QjkxREUzQjk0NzhDNjE4MzNGQjI0QUE1Q0RCIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE3NDQ4OTE0NjgsImV4cCI6MTc0NDg5NTA2OCwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiZGRkYzA4ZDMtOGM0MC00OGJjLWI0YjktNDVmZDMzMGUxYzZiIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiZGRkYzA4ZDMtOGM0MC00OGJjLWI0YjktNDVmZDMzMGUxYzZiIiwianRpIjoiNTYwMUIwRDdDNURDMzg4RTRFNUFFNzY2MDZEODg0RUIiLCJpYXQiOjE3NDQ4OTE0NjgsInNjb3BlIjpbIm9wZW5hY3RpdmUtb3JkZXJzZmVlZCJdfQ.I8naHAowbYjsEu3p-qC-TrJdHUxBn4wUNHSi2bbJbJpj9j-bqpcN9yS2kBOR5Lt7TCuc4Ma52UqGCV2n95lOLXcfdpNK_lxgfWq1M2Lx-MRWPDwdi_t0_gPcmNsXh64hAvCU_Tpmt-TJus4K0xsv5j1s921bUPlunr68gGjVKpJnEF53hE-Ffk3_ZwXIGhDsljRPzMkg3pPwwVqR4wWdYYSik8Amlrdvbm6fvse_yAZwPV3Zo31FLiJYDFWDhjTBGFjkWFzWdcu5QvzngaXoq5MXGT1dzmavRwQk0DnIWk8SDWT7QvUzZgFRF5zSzjsqMzFTBiYOswZgifksuz2lGg"
},
"startingFeedPage": "https://localhost:5001/api/openbooking/order-proposals-rpde?afterTimestamp=638804887497330938&afterId=aa726bf6-2639-473b-9bd8-b21283506b74",
"message": "Listening for UUID: 'ced8ed84-7596-4978-9d62-4eeb260f319b' in feed: order-proposals, for Booking Partner: primary from startingFeedPage using headers"
}
POST https://localhost:5001/api/openbooking/test-interface/actions
"application/vnd.openactive.booking+json; version=1""Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkIwNEY3QjkxREUzQjk0NzhDNjE4MzNGQjI0QUE1Q0RCIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE3NDQ4OTE0NzEsImV4cCI6MTc0NDg5NTA3MSwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiZGRkYzA4ZDMtOGM0MC00OGJjLWI0YjktNDVmZDMzMGUxYzZiIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiZGRkYzA4ZDMtOGM0MC00OGJjLWI0YjktNDVmZDMzMGUxYzZiIiwic3ViIjoiMTAwIiwiYXV0aF90aW1lIjoxNzQ0ODkxNDcxLCJpZHAiOiJsb2NhbCIsImh0dHBzOi8vb3BlbmFjdGl2ZS5pby9zZWxsZXJJZCI6Imh0dHBzOi8vbG9jYWxob3N0OjUwMDEvYXBpL2lkZW50aWZpZXJzL3NlbGxlcnMvMSIsImp0aSI6IjI3RjlDQkJBRDJGQjU2MTBCOUYxOTAyNUE0OUQ2RDlBIiwic2lkIjoiMUM5OTRDQUQzRUNGOTFDNUMyMDlFQURGREQ3RUIyMDMiLCJpYXQiOjE3NDQ4OTE0NzEsInNjb3BlIjpbIm9wZW5pZCIsIm9wZW5hY3RpdmUtb3BlbmJvb2tpbmciLCJvcGVuYWN0aXZlLWlkZW50aXR5Iiwib2ZmbGluZV9hY2Nlc3MiXSwiYW1yIjpbInB3ZCJdfQ.fEYu53J4oLtCgpKHxXbcGQeS0kGo7PzFZm5nk8nD2eZANay4vly7TPouFjWeuUU1bN6fnKR9Z5btivyyFjQ4s6D_k3ZZWXSCOaRhYMbd6wHwvyzpYgxXtuR_c8ALAwlnLrAb3zcNCer2HVM5bC5cCE_mS_xQxnjYx_qI9r8IzKZgbDVlhFJBND9IuTRmdbP99YNl16XM5GiHG8_Hh3oLM8l5tv3d6tI4en0xlWwL9jC2We-7yYXXLtIRenGGe4nG3jlf5mDT1gsIfzcSjxBpCtAQa7wlO03de9eGqcGdqEkOM9H9PO0oLnbbtUgyZy8P_3HNQWOwkRJgaVYB7kBuEw"{
"@context": [
"https://openactive.io/",
"https://openactive.io/test-interface"
],
"@type": "test:SellerAcceptOrderProposalSimulateAction",
"object": {
"@type": "OrderProposal",
"@id": "https://localhost:5001/api/openbooking/order-proposals/ced8ed84-7596-4978-9d62-4eeb260f319b"
}
}
Response status code: 204 No Content. Responded in 16.671329ms.
GET http://localhost:3000/order-listeners/order-proposals/primary/ced8ed84-7596-4978-9d62-4eeb260f319b
Response status code: 200 OK. Responded in 2247.383356ms.
{
"state": "updated",
"kind": "Order",
"id": "ced8ed84-7596-4978-9d62-4eeb260f319b",
"modified": "638804887547253013",
"data": {
"@context": "https://openactive.io/",
"@type": "OrderProposal",
"@id": "https://localhost:5001/api/openbooking/order-proposals/ced8ed84-7596-4978-9d62-4eeb260f319b",
"identifier": "ced8ed84-7596-4978-9d62-4eeb260f319b",
"orderProposalStatus": "https://openactive.io/SellerAccepted",
"orderedItem": [
{
"@type": "OrderItem",
"@id": "https://localhost:5001/api/openbooking/orders/ced8ed84-7596-4978-9d62-4eeb260f319b#/orderedItems/436",
"acceptedOffer": {
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1610#/offers/0",
"price": 13.84,
"priceCurrency": "GBP"
},
"orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/1610/events/16097"
}
],
"orderProposalVersion": "https://localhost:5001/api/openbooking/order-proposals/ced8ed84-7596-4978-9d62-4eeb260f319b/versions/46095fb8-ec44-4d77-8d8f-376199d23352",
"totalPaymentDue": {
"@type": "PriceSpecification",
"openBookingPrepayment": "https://openactive.io/Required",
"price": 13.84,
"priceCurrency": "GBP"
}
}
}
name is missing from Offer.ageRestriction is missing from Offer.allowCustomerCancellationFullRefund is missing from Offer.POST http://localhost:3000/order-listeners/order-proposals/primary/ced8ed84-7596-4978-9d62-4eeb260f319b
{}
Response status code: 200 OK. Responded in 3.59892ms.
{
"headers": {
"Accept": "application/json, application/vnd.openactive.booking+json; version=1",
"Cache-Control": "max-age=0",
"Authorization": "Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkIwNEY3QjkxREUzQjk0NzhDNjE4MzNGQjI0QUE1Q0RCIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE3NDQ4OTE0NjgsImV4cCI6MTc0NDg5NTA2OCwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiZGRkYzA4ZDMtOGM0MC00OGJjLWI0YjktNDVmZDMzMGUxYzZiIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiZGRkYzA4ZDMtOGM0MC00OGJjLWI0YjktNDVmZDMzMGUxYzZiIiwianRpIjoiNTYwMUIwRDdDNURDMzg4RTRFNUFFNzY2MDZEODg0RUIiLCJpYXQiOjE3NDQ4OTE0NjgsInNjb3BlIjpbIm9wZW5hY3RpdmUtb3JkZXJzZmVlZCJdfQ.I8naHAowbYjsEu3p-qC-TrJdHUxBn4wUNHSi2bbJbJpj9j-bqpcN9yS2kBOR5Lt7TCuc4Ma52UqGCV2n95lOLXcfdpNK_lxgfWq1M2Lx-MRWPDwdi_t0_gPcmNsXh64hAvCU_Tpmt-TJus4K0xsv5j1s921bUPlunr68gGjVKpJnEF53hE-Ffk3_ZwXIGhDsljRPzMkg3pPwwVqR4wWdYYSik8Amlrdvbm6fvse_yAZwPV3Zo31FLiJYDFWDhjTBGFjkWFzWdcu5QvzngaXoq5MXGT1dzmavRwQk0DnIWk8SDWT7QvUzZgFRF5zSzjsqMzFTBiYOswZgifksuz2lGg"
},
"startingFeedPage": "https://localhost:5001/api/openbooking/order-proposals-rpde?afterTimestamp=638804887547253013&afterId=ced8ed84-7596-4978-9d62-4eeb260f319b",
"message": "Listening for UUID: 'ced8ed84-7596-4978-9d62-4eeb260f319b' in feed: order-proposals, for Booking Partner: primary from startingFeedPage using headers"
}
PUT https://localhost:5001/api/openbooking/orders/ced8ed84-7596-4978-9d62-4eeb260f319b
"application/vnd.openactive.booking+json; version=1""Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkIwNEY3QjkxREUzQjk0NzhDNjE4MzNGQjI0QUE1Q0RCIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE3NDQ4OTE0NzEsImV4cCI6MTc0NDg5NTA3MSwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiZGRkYzA4ZDMtOGM0MC00OGJjLWI0YjktNDVmZDMzMGUxYzZiIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiZGRkYzA4ZDMtOGM0MC00OGJjLWI0YjktNDVmZDMzMGUxYzZiIiwic3ViIjoiMTAwIiwiYXV0aF90aW1lIjoxNzQ0ODkxNDcxLCJpZHAiOiJsb2NhbCIsImh0dHBzOi8vb3BlbmFjdGl2ZS5pby9zZWxsZXJJZCI6Imh0dHBzOi8vbG9jYWxob3N0OjUwMDEvYXBpL2lkZW50aWZpZXJzL3NlbGxlcnMvMSIsImp0aSI6IjI3RjlDQkJBRDJGQjU2MTBCOUYxOTAyNUE0OUQ2RDlBIiwic2lkIjoiMUM5OTRDQUQzRUNGOTFDNUMyMDlFQURGREQ3RUIyMDMiLCJpYXQiOjE3NDQ4OTE0NzEsInNjb3BlIjpbIm9wZW5pZCIsIm9wZW5hY3RpdmUtb3BlbmJvb2tpbmciLCJvcGVuYWN0aXZlLWlkZW50aXR5Iiwib2ZmbGluZV9hY2Nlc3MiXSwiYW1yIjpbInB3ZCJdfQ.fEYu53J4oLtCgpKHxXbcGQeS0kGo7PzFZm5nk8nD2eZANay4vly7TPouFjWeuUU1bN6fnKR9Z5btivyyFjQ4s6D_k3ZZWXSCOaRhYMbd6wHwvyzpYgxXtuR_c8ALAwlnLrAb3zcNCer2HVM5bC5cCE_mS_xQxnjYx_qI9r8IzKZgbDVlhFJBND9IuTRmdbP99YNl16XM5GiHG8_Hh3oLM8l5tv3d6tI4en0xlWwL9jC2We-7yYXXLtIRenGGe4nG3jlf5mDT1gsIfzcSjxBpCtAQa7wlO03de9eGqcGdqEkOM9H9PO0oLnbbtUgyZy8P_3HNQWOwkRJgaVYB7kBuEw"{
"@context": "https://openactive.io/",
"@type": "Order",
"orderProposalVersion": "https://localhost:5001/api/openbooking/order-proposals/ced8ed84-7596-4978-9d62-4eeb260f319b/versions/46095fb8-ec44-4d77-8d8f-376199d23352",
"payment": {
"@type": "Payment",
"identifier": "6fRqwSwES",
"name": "AcmeBroker Points",
"accountId": "SN1593",
"paymentProviderId": "STRIPE"
}
}
Response status code: 201 Created. Responded in 32.008622ms.
{
"@context": "https://openactive.io/",
"@type": "Order",
"@id": "https://localhost:5001/api/openbooking/orders/ced8ed84-7596-4978-9d62-4eeb260f319b",
"identifier": "ced8ed84-7596-4978-9d62-4eeb260f319b",
"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",
"email": "[email protected]",
"familyName": "Mable",
"givenName": "Powlowski",
"telephone": "734.200.8090 x1152"
},
"orderedItem": [
{
"@type": "OrderItem",
"@id": "https://localhost:5001/api/openbooking/orders/ced8ed84-7596-4978-9d62-4eeb260f319b#/orderedItems/436",
"acceptedOffer": {
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1610#/offers/0",
"allowCustomerCancellationFullRefund": true,
"latestCancellationBeforeStartDate": "P1DT16H",
"price": 13.84,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT17H33M"
},
"accessChannel": {
"@type": "VirtualLocation",
"name": "Zoom Video Chat",
"description": "Please log into Zoom a few minutes before the event",
"accessCode": "6975572725",
"accessId": "3481047450"
},
"orderedItem": {
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1610/events/16097",
"startDate": "2025-04-20T23:23:25+00:00",
"endDate": "2025-04-21T01:23:25+00:00",
"superEvent": {
"@type": "SessionSeries",
"@id": "https://localhost:5001/api/identifiers/session-series/1610",
"name": "Cotton Cycling",
"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/1610"
},
"maximumAttendeeCapacity": 35,
"remainingAttendeeCapacity": 35
},
"orderItemStatus": "https://openactive.io/OrderItemConfirmed",
"unitTaxSpecification": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 2.768,
"priceCurrency": "GBP",
"rate": 0.2
}
]
}
],
"payment": {
"@type": "Payment",
"identifier": "6fRqwSwES",
"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": 13.84,
"priceCurrency": "GBP"
},
"totalPaymentTax": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 2.768,
"priceCurrency": "GBP",
"rate": 0.2
}
]
}
accessCode is missing from OrderItem.accessPass is missing from OrderItem.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.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/order-listeners/order-proposals/primary/ced8ed84-7596-4978-9d62-4eeb260f319b
Response status code: 200 OK. Responded in 1970.867972ms.
{
"state": "deleted",
"kind": "Order",
"id": "ced8ed84-7596-4978-9d62-4eeb260f319b",
"modified": "638804887570147994"
}
GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Fscheduled-sessions%2F1610%2Fevents%2F16097?useCacheIfAvailable=true&expectedCapacity=34
Response status code: 200 OK. Responded in 3.984919ms.
{
"data": {
"@context": [
"https://openactive.io/"
],
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1610/events/16097",
"startDate": "2025-04-20T23:23:25+00:00",
"endDate": "2025-04-21T01:23:25+00:00",
"superEvent": {
"@type": "SessionSeries",
"@id": "https://localhost:5001/api/identifiers/session-series/1610",
"identifier": 1610,
"name": "GOLDEN: Cotton Cycling",
"activity": [
{
"@type": "Concept",
"@id": "https://openactive.io/activity-list#4a19873e-118e-43f4-b86e-05acba8fb1de",
"inScheme": "https://openactive.io/activity-list",
"prefLabel": "Cycling"
}
],
"eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
"offers": [
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1610#/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"
],
"price": 13.84,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT17H33M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1610#/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"
],
"price": 13.84,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT17H33M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1610#/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"
],
"price": 13.84,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT17H33M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1610#/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"
],
"price": 13.84,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT17H33M"
}
],
"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": "00521 194440",
"termsOfService": [
{
"@type": "PrivacyPolicy",
"name": "Privacy Policy",
"requiresExplicitConsent": false,
"url": "https://example.com/privacy.html"
}
],
"url": "http://brock.biz"
},
"url": "https://www.example.com/sessions/1610"
},
"duration": "PT2H",
"maximumAttendeeCapacity": 35,
"remainingAttendeeCapacity": 34
}
}
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.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.POST http://localhost:3000/order-listeners/orders/primary/ced8ed84-7596-4978-9d62-4eeb260f319b
{}
Response status code: 200 OK. Responded in 7.049368ms.
{
"headers": {
"Accept": "application/json, application/vnd.openactive.booking+json; version=1",
"Cache-Control": "max-age=0",
"Authorization": "Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkIwNEY3QjkxREUzQjk0NzhDNjE4MzNGQjI0QUE1Q0RCIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE3NDQ4OTE0NjgsImV4cCI6MTc0NDg5NTA2OCwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiZGRkYzA4ZDMtOGM0MC00OGJjLWI0YjktNDVmZDMzMGUxYzZiIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiZGRkYzA4ZDMtOGM0MC00OGJjLWI0YjktNDVmZDMzMGUxYzZiIiwianRpIjoiNTYwMUIwRDdDNURDMzg4RTRFNUFFNzY2MDZEODg0RUIiLCJpYXQiOjE3NDQ4OTE0NjgsInNjb3BlIjpbIm9wZW5hY3RpdmUtb3JkZXJzZmVlZCJdfQ.I8naHAowbYjsEu3p-qC-TrJdHUxBn4wUNHSi2bbJbJpj9j-bqpcN9yS2kBOR5Lt7TCuc4Ma52UqGCV2n95lOLXcfdpNK_lxgfWq1M2Lx-MRWPDwdi_t0_gPcmNsXh64hAvCU_Tpmt-TJus4K0xsv5j1s921bUPlunr68gGjVKpJnEF53hE-Ffk3_ZwXIGhDsljRPzMkg3pPwwVqR4wWdYYSik8Amlrdvbm6fvse_yAZwPV3Zo31FLiJYDFWDhjTBGFjkWFzWdcu5QvzngaXoq5MXGT1dzmavRwQk0DnIWk8SDWT7QvUzZgFRF5zSzjsqMzFTBiYOswZgifksuz2lGg"
},
"startingFeedPage": "https://localhost:5001/api/openbooking/orders-rpde?afterTimestamp=638804887528784218&afterId=aa726bf6-2639-473b-9bd8-b21283506b74",
"message": "Listening for UUID: 'ced8ed84-7596-4978-9d62-4eeb260f319b' in feed: orders, for Booking Partner: primary from startingFeedPage using headers"
}
PATCH https://localhost:5001/api/openbooking/orders/ced8ed84-7596-4978-9d62-4eeb260f319b
"application/vnd.openactive.booking+json; version=1""Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkIwNEY3QjkxREUzQjk0NzhDNjE4MzNGQjI0QUE1Q0RCIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE3NDQ4OTE0NzEsImV4cCI6MTc0NDg5NTA3MSwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiZGRkYzA4ZDMtOGM0MC00OGJjLWI0YjktNDVmZDMzMGUxYzZiIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiZGRkYzA4ZDMtOGM0MC00OGJjLWI0YjktNDVmZDMzMGUxYzZiIiwic3ViIjoiMTAwIiwiYXV0aF90aW1lIjoxNzQ0ODkxNDcxLCJpZHAiOiJsb2NhbCIsImh0dHBzOi8vb3BlbmFjdGl2ZS5pby9zZWxsZXJJZCI6Imh0dHBzOi8vbG9jYWxob3N0OjUwMDEvYXBpL2lkZW50aWZpZXJzL3NlbGxlcnMvMSIsImp0aSI6IjI3RjlDQkJBRDJGQjU2MTBCOUYxOTAyNUE0OUQ2RDlBIiwic2lkIjoiMUM5OTRDQUQzRUNGOTFDNUMyMDlFQURGREQ3RUIyMDMiLCJpYXQiOjE3NDQ4OTE0NzEsInNjb3BlIjpbIm9wZW5pZCIsIm9wZW5hY3RpdmUtb3BlbmJvb2tpbmciLCJvcGVuYWN0aXZlLWlkZW50aXR5Iiwib2ZmbGluZV9hY2Nlc3MiXSwiYW1yIjpbInB3ZCJdfQ.fEYu53J4oLtCgpKHxXbcGQeS0kGo7PzFZm5nk8nD2eZANay4vly7TPouFjWeuUU1bN6fnKR9Z5btivyyFjQ4s6D_k3ZZWXSCOaRhYMbd6wHwvyzpYgxXtuR_c8ALAwlnLrAb3zcNCer2HVM5bC5cCE_mS_xQxnjYx_qI9r8IzKZgbDVlhFJBND9IuTRmdbP99YNl16XM5GiHG8_Hh3oLM8l5tv3d6tI4en0xlWwL9jC2We-7yYXXLtIRenGGe4nG3jlf5mDT1gsIfzcSjxBpCtAQa7wlO03de9eGqcGdqEkOM9H9PO0oLnbbtUgyZy8P_3HNQWOwkRJgaVYB7kBuEw"{
"@context": "https://openactive.io/",
"@type": "Order",
"orderedItem": [
{
"@type": "OrderItem",
"@id": "https://localhost:5001/api/openbooking/orders/ced8ed84-7596-4978-9d62-4eeb260f319b#/orderedItems/436",
"orderItemStatus": "https://openactive.io/CustomerCancelled"
}
]
}
Response status code: 204 No Content. Responded in 54.781211ms.
PATCH https://localhost:5001/api/openbooking/orders/ced8ed84-7596-4978-9d62-4eeb260f319b
"application/vnd.openactive.booking+json; version=1""Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkIwNEY3QjkxREUzQjk0NzhDNjE4MzNGQjI0QUE1Q0RCIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE3NDQ4OTE0NzEsImV4cCI6MTc0NDg5NTA3MSwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiZGRkYzA4ZDMtOGM0MC00OGJjLWI0YjktNDVmZDMzMGUxYzZiIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiZGRkYzA4ZDMtOGM0MC00OGJjLWI0YjktNDVmZDMzMGUxYzZiIiwic3ViIjoiMTAwIiwiYXV0aF90aW1lIjoxNzQ0ODkxNDcxLCJpZHAiOiJsb2NhbCIsImh0dHBzOi8vb3BlbmFjdGl2ZS5pby9zZWxsZXJJZCI6Imh0dHBzOi8vbG9jYWxob3N0OjUwMDEvYXBpL2lkZW50aWZpZXJzL3NlbGxlcnMvMSIsImp0aSI6IjI3RjlDQkJBRDJGQjU2MTBCOUYxOTAyNUE0OUQ2RDlBIiwic2lkIjoiMUM5OTRDQUQzRUNGOTFDNUMyMDlFQURGREQ3RUIyMDMiLCJpYXQiOjE3NDQ4OTE0NzEsInNjb3BlIjpbIm9wZW5pZCIsIm9wZW5hY3RpdmUtb3BlbmJvb2tpbmciLCJvcGVuYWN0aXZlLWlkZW50aXR5Iiwib2ZmbGluZV9hY2Nlc3MiXSwiYW1yIjpbInB3ZCJdfQ.fEYu53J4oLtCgpKHxXbcGQeS0kGo7PzFZm5nk8nD2eZANay4vly7TPouFjWeuUU1bN6fnKR9Z5btivyyFjQ4s6D_k3ZZWXSCOaRhYMbd6wHwvyzpYgxXtuR_c8ALAwlnLrAb3zcNCer2HVM5bC5cCE_mS_xQxnjYx_qI9r8IzKZgbDVlhFJBND9IuTRmdbP99YNl16XM5GiHG8_Hh3oLM8l5tv3d6tI4en0xlWwL9jC2We-7yYXXLtIRenGGe4nG3jlf5mDT1gsIfzcSjxBpCtAQa7wlO03de9eGqcGdqEkOM9H9PO0oLnbbtUgyZy8P_3HNQWOwkRJgaVYB7kBuEw"{
"@context": "https://openactive.io/",
"@type": "Order",
"orderedItem": [
{
"@type": "OrderItem",
"@id": "https://localhost:5001/api/openbooking/orders/ced8ed84-7596-4978-9d62-4eeb260f319b#/orderedItems/436",
"orderItemStatus": "https://openactive.io/CustomerCancelled"
}
]
}
Response status code: 204 No Content. Responded in 12.498208ms.
GET http://localhost:3000/order-listeners/orders/primary/ced8ed84-7596-4978-9d62-4eeb260f319b
Response status code: 200 OK. Responded in 2130.740845ms.
{
"state": "updated",
"kind": "Order",
"id": "ced8ed84-7596-4978-9d62-4eeb260f319b",
"modified": "638804887597397296",
"data": {
"@context": "https://openactive.io/",
"@type": "Order",
"@id": "https://localhost:5001/api/openbooking/orders/ced8ed84-7596-4978-9d62-4eeb260f319b",
"identifier": "ced8ed84-7596-4978-9d62-4eeb260f319b",
"orderedItem": [
{
"@type": "OrderItem",
"@id": "https://localhost:5001/api/openbooking/orders/ced8ed84-7596-4978-9d62-4eeb260f319b#/orderedItems/436",
"acceptedOffer": {
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1610#/offers/0",
"price": 13.84,
"priceCurrency": "GBP"
},
"accessChannel": {
"@type": "VirtualLocation",
"name": "Zoom Video Chat",
"description": "Please log into Zoom a few minutes before the event",
"accessCode": "6975572725",
"accessId": "3481047450",
"url": "http://nicolette.org/"
},
"orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/1610/events/16097",
"orderItemStatus": "https://openactive.io/CustomerCancelled"
}
],
"totalPaymentDue": {
"@type": "PriceSpecification",
"openBookingPrepayment": "https://openactive.io/Required",
"price": 0,
"priceCurrency": "GBP"
}
}
}
accessCode is missing from OrderItem.accessPass is missing from OrderItem.name is missing from Offer.ageRestriction is missing from Offer.allowCustomerCancellationFullRefund is missing from Offer.⚠️ $.eventStatus: Recommended property eventStatus is missing from ScheduledSession.
⚠️ $.leader: Recommended property leader is missing from ScheduledSession.
⚠️ $.url: Recommended property url is missing from ScheduledSession.
⚠️ $.superEvent.description: Recommended property description is missing from SessionSeries.
⚠️ $.superEvent.image: Recommended property image is missing from SessionSeries.
⚠️ $.superEvent.ageRange: Recommended property ageRange is missing from SessionSeries.
⚠️ $.superEvent.genderRestriction: Recommended property genderRestriction is missing from SessionSeries.
⚠️ $.superEvent.leader: Recommended property leader is missing from SessionSeries.
⚠️ $.superEvent.level: Recommended property level is missing from SessionSeries.
📝 $.genderRestriction: Data consumers will assume that there is no gender restriction when no valid genderRestriction is supplied on a ScheduledSession.
📝 $.ageRange: Data consumers will assume that the ageRange is 18+ when not specified.
📝 $.eventStatus: Data consumers will assume the eventStatus is scheduled if not specified or invalid.
📝 $.superEvent.genderRestriction: Data consumers will assume that there is no gender restriction when no valid genderRestriction is supplied on a SessionSeries.
📝 $.superEvent.ageRange: Data consumers will assume that the ageRange is 18+ when not specified.
📝 $.superEvent.eventStatus: Data consumers will assume the eventStatus is scheduled if not specified or invalid.
❔ $.superEvent.offers[0].ageRestriction.name: 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.
❔ $.superEvent.offers[1].ageRestriction.name: 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.
❔ $.superEvent.offers[2].ageRestriction.name: 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.
❔ $.superEvent.offers[3].ageRestriction.name: 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.
⚠️ $.eventStatus: Recommended property eventStatus is missing from ScheduledSession.
⚠️ $.leader: Recommended property leader is missing from ScheduledSession.
⚠️ $.url: Recommended property url is missing from ScheduledSession.
⚠️ $.superEvent.description: Recommended property description is missing from SessionSeries.
⚠️ $.superEvent.image: Recommended property image is missing from SessionSeries.
⚠️ $.superEvent.ageRange: Recommended property ageRange is missing from SessionSeries.
⚠️ $.superEvent.genderRestriction: Recommended property genderRestriction is missing from SessionSeries.
⚠️ $.superEvent.leader: Recommended property leader is missing from SessionSeries.
⚠️ $.superEvent.level: Recommended property level is missing from SessionSeries.
📝 $.genderRestriction: Data consumers will assume that there is no gender restriction when no valid genderRestriction is supplied on a ScheduledSession.
📝 $.ageRange: Data consumers will assume that the ageRange is 18+ when not specified.
📝 $.eventStatus: Data consumers will assume the eventStatus is scheduled if not specified or invalid.
📝 $.superEvent.genderRestriction: Data consumers will assume that there is no gender restriction when no valid genderRestriction is supplied on a SessionSeries.
📝 $.superEvent.ageRange: Data consumers will assume that the ageRange is 18+ when not specified.
📝 $.superEvent.eventStatus: Data consumers will assume the eventStatus is scheduled if not specified or invalid.
❔ $.superEvent.offers[0].ageRestriction.name: 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.
❔ $.superEvent.offers[1].ageRestriction.name: 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.
❔ $.superEvent.offers[2].ageRestriction.name: 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.
❔ $.superEvent.offers[3].ageRestriction.name: 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.
POST http://localhost:3000/order-listeners/orders/primary/ced8ed84-7596-4978-9d62-4eeb260f319b
{}
Response status code: 200 OK. Responded in 7.049368ms.
{
"headers": {
"Accept": "application/json, application/vnd.openactive.booking+json; version=1",
"Cache-Control": "max-age=0",
"Authorization": "Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkIwNEY3QjkxREUzQjk0NzhDNjE4MzNGQjI0QUE1Q0RCIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE3NDQ4OTE0NjgsImV4cCI6MTc0NDg5NTA2OCwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiZGRkYzA4ZDMtOGM0MC00OGJjLWI0YjktNDVmZDMzMGUxYzZiIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiZGRkYzA4ZDMtOGM0MC00OGJjLWI0YjktNDVmZDMzMGUxYzZiIiwianRpIjoiNTYwMUIwRDdDNURDMzg4RTRFNUFFNzY2MDZEODg0RUIiLCJpYXQiOjE3NDQ4OTE0NjgsInNjb3BlIjpbIm9wZW5hY3RpdmUtb3JkZXJzZmVlZCJdfQ.I8naHAowbYjsEu3p-qC-TrJdHUxBn4wUNHSi2bbJbJpj9j-bqpcN9yS2kBOR5Lt7TCuc4Ma52UqGCV2n95lOLXcfdpNK_lxgfWq1M2Lx-MRWPDwdi_t0_gPcmNsXh64hAvCU_Tpmt-TJus4K0xsv5j1s921bUPlunr68gGjVKpJnEF53hE-Ffk3_ZwXIGhDsljRPzMkg3pPwwVqR4wWdYYSik8Amlrdvbm6fvse_yAZwPV3Zo31FLiJYDFWDhjTBGFjkWFzWdcu5QvzngaXoq5MXGT1dzmavRwQk0DnIWk8SDWT7QvUzZgFRF5zSzjsqMzFTBiYOswZgifksuz2lGg"
},
"startingFeedPage": "https://localhost:5001/api/openbooking/orders-rpde?afterTimestamp=638804887528784218&afterId=aa726bf6-2639-473b-9bd8-b21283506b74",
"message": "Listening for UUID: 'ced8ed84-7596-4978-9d62-4eeb260f319b' in feed: orders, for Booking Partner: primary from startingFeedPage using headers"
}
PATCH https://localhost:5001/api/openbooking/orders/ced8ed84-7596-4978-9d62-4eeb260f319b
"application/vnd.openactive.booking+json; version=1""Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkIwNEY3QjkxREUzQjk0NzhDNjE4MzNGQjI0QUE1Q0RCIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE3NDQ4OTE0NzEsImV4cCI6MTc0NDg5NTA3MSwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiZGRkYzA4ZDMtOGM0MC00OGJjLWI0YjktNDVmZDMzMGUxYzZiIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiZGRkYzA4ZDMtOGM0MC00OGJjLWI0YjktNDVmZDMzMGUxYzZiIiwic3ViIjoiMTAwIiwiYXV0aF90aW1lIjoxNzQ0ODkxNDcxLCJpZHAiOiJsb2NhbCIsImh0dHBzOi8vb3BlbmFjdGl2ZS5pby9zZWxsZXJJZCI6Imh0dHBzOi8vbG9jYWxob3N0OjUwMDEvYXBpL2lkZW50aWZpZXJzL3NlbGxlcnMvMSIsImp0aSI6IjI3RjlDQkJBRDJGQjU2MTBCOUYxOTAyNUE0OUQ2RDlBIiwic2lkIjoiMUM5OTRDQUQzRUNGOTFDNUMyMDlFQURGREQ3RUIyMDMiLCJpYXQiOjE3NDQ4OTE0NzEsInNjb3BlIjpbIm9wZW5pZCIsIm9wZW5hY3RpdmUtb3BlbmJvb2tpbmciLCJvcGVuYWN0aXZlLWlkZW50aXR5Iiwib2ZmbGluZV9hY2Nlc3MiXSwiYW1yIjpbInB3ZCJdfQ.fEYu53J4oLtCgpKHxXbcGQeS0kGo7PzFZm5nk8nD2eZANay4vly7TPouFjWeuUU1bN6fnKR9Z5btivyyFjQ4s6D_k3ZZWXSCOaRhYMbd6wHwvyzpYgxXtuR_c8ALAwlnLrAb3zcNCer2HVM5bC5cCE_mS_xQxnjYx_qI9r8IzKZgbDVlhFJBND9IuTRmdbP99YNl16XM5GiHG8_Hh3oLM8l5tv3d6tI4en0xlWwL9jC2We-7yYXXLtIRenGGe4nG3jlf5mDT1gsIfzcSjxBpCtAQa7wlO03de9eGqcGdqEkOM9H9PO0oLnbbtUgyZy8P_3HNQWOwkRJgaVYB7kBuEw"{
"@context": "https://openactive.io/",
"@type": "Order",
"orderedItem": [
{
"@type": "OrderItem",
"@id": "https://localhost:5001/api/openbooking/orders/ced8ed84-7596-4978-9d62-4eeb260f319b#/orderedItems/436",
"orderItemStatus": "https://openactive.io/CustomerCancelled"
}
]
}
Response status code: 204 No Content. Responded in 54.781211ms.
PATCH https://localhost:5001/api/openbooking/orders/ced8ed84-7596-4978-9d62-4eeb260f319b
"application/vnd.openactive.booking+json; version=1""Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkIwNEY3QjkxREUzQjk0NzhDNjE4MzNGQjI0QUE1Q0RCIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE3NDQ4OTE0NzEsImV4cCI6MTc0NDg5NTA3MSwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiZGRkYzA4ZDMtOGM0MC00OGJjLWI0YjktNDVmZDMzMGUxYzZiIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiZGRkYzA4ZDMtOGM0MC00OGJjLWI0YjktNDVmZDMzMGUxYzZiIiwic3ViIjoiMTAwIiwiYXV0aF90aW1lIjoxNzQ0ODkxNDcxLCJpZHAiOiJsb2NhbCIsImh0dHBzOi8vb3BlbmFjdGl2ZS5pby9zZWxsZXJJZCI6Imh0dHBzOi8vbG9jYWxob3N0OjUwMDEvYXBpL2lkZW50aWZpZXJzL3NlbGxlcnMvMSIsImp0aSI6IjI3RjlDQkJBRDJGQjU2MTBCOUYxOTAyNUE0OUQ2RDlBIiwic2lkIjoiMUM5OTRDQUQzRUNGOTFDNUMyMDlFQURGREQ3RUIyMDMiLCJpYXQiOjE3NDQ4OTE0NzEsInNjb3BlIjpbIm9wZW5pZCIsIm9wZW5hY3RpdmUtb3BlbmJvb2tpbmciLCJvcGVuYWN0aXZlLWlkZW50aXR5Iiwib2ZmbGluZV9hY2Nlc3MiXSwiYW1yIjpbInB3ZCJdfQ.fEYu53J4oLtCgpKHxXbcGQeS0kGo7PzFZm5nk8nD2eZANay4vly7TPouFjWeuUU1bN6fnKR9Z5btivyyFjQ4s6D_k3ZZWXSCOaRhYMbd6wHwvyzpYgxXtuR_c8ALAwlnLrAb3zcNCer2HVM5bC5cCE_mS_xQxnjYx_qI9r8IzKZgbDVlhFJBND9IuTRmdbP99YNl16XM5GiHG8_Hh3oLM8l5tv3d6tI4en0xlWwL9jC2We-7yYXXLtIRenGGe4nG3jlf5mDT1gsIfzcSjxBpCtAQa7wlO03de9eGqcGdqEkOM9H9PO0oLnbbtUgyZy8P_3HNQWOwkRJgaVYB7kBuEw"{
"@context": "https://openactive.io/",
"@type": "Order",
"orderedItem": [
{
"@type": "OrderItem",
"@id": "https://localhost:5001/api/openbooking/orders/ced8ed84-7596-4978-9d62-4eeb260f319b#/orderedItems/436",
"orderItemStatus": "https://openactive.io/CustomerCancelled"
}
]
}
Response status code: 204 No Content. Responded in 12.498208ms.
⚠️ $.eventStatus: Recommended property eventStatus is missing from ScheduledSession.
⚠️ $.leader: Recommended property leader is missing from ScheduledSession.
⚠️ $.url: Recommended property url is missing from ScheduledSession.
⚠️ $.superEvent.description: Recommended property description is missing from SessionSeries.
⚠️ $.superEvent.image: Recommended property image is missing from SessionSeries.
⚠️ $.superEvent.ageRange: Recommended property ageRange is missing from SessionSeries.
⚠️ $.superEvent.genderRestriction: Recommended property genderRestriction is missing from SessionSeries.
⚠️ $.superEvent.leader: Recommended property leader is missing from SessionSeries.
⚠️ $.superEvent.level: Recommended property level is missing from SessionSeries.
📝 $.genderRestriction: Data consumers will assume that there is no gender restriction when no valid genderRestriction is supplied on a ScheduledSession.
📝 $.ageRange: Data consumers will assume that the ageRange is 18+ when not specified.
📝 $.eventStatus: Data consumers will assume the eventStatus is scheduled if not specified or invalid.
📝 $.superEvent.genderRestriction: Data consumers will assume that there is no gender restriction when no valid genderRestriction is supplied on a SessionSeries.
📝 $.superEvent.ageRange: Data consumers will assume that the ageRange is 18+ when not specified.
📝 $.superEvent.eventStatus: Data consumers will assume the eventStatus is scheduled if not specified or invalid.
❔ $.superEvent.offers[0].ageRestriction.name: 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.
❔ $.superEvent.offers[1].ageRestriction.name: 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.
❔ $.superEvent.offers[2].ageRestriction.name: 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.
❔ $.superEvent.offers[3].ageRestriction.name: 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.
⚠️ $.eventStatus: Recommended property eventStatus is missing from ScheduledSession.
⚠️ $.leader: Recommended property leader is missing from ScheduledSession.
⚠️ $.url: Recommended property url is missing from ScheduledSession.
⚠️ $.superEvent.description: Recommended property description is missing from SessionSeries.
⚠️ $.superEvent.image: Recommended property image is missing from SessionSeries.
⚠️ $.superEvent.ageRange: Recommended property ageRange is missing from SessionSeries.
⚠️ $.superEvent.genderRestriction: Recommended property genderRestriction is missing from SessionSeries.
⚠️ $.superEvent.leader: Recommended property leader is missing from SessionSeries.
⚠️ $.superEvent.level: Recommended property level is missing from SessionSeries.
📝 $.genderRestriction: Data consumers will assume that there is no gender restriction when no valid genderRestriction is supplied on a ScheduledSession.
📝 $.ageRange: Data consumers will assume that the ageRange is 18+ when not specified.
📝 $.eventStatus: Data consumers will assume the eventStatus is scheduled if not specified or invalid.
📝 $.superEvent.genderRestriction: Data consumers will assume that there is no gender restriction when no valid genderRestriction is supplied on a SessionSeries.
📝 $.superEvent.ageRange: Data consumers will assume that the ageRange is 18+ when not specified.
📝 $.superEvent.eventStatus: Data consumers will assume the eventStatus is scheduled if not specified or invalid.
❔ $.superEvent.offers[0].ageRestriction.name: 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.
❔ $.superEvent.offers[1].ageRestriction.name: 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.
❔ $.superEvent.offers[2].ageRestriction.name: 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.
❔ $.superEvent.offers[3].ageRestriction.name: 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.