< Return to Summary | File Generated: Fri Jan 31 2025 11:09:14 GMT+0000 (Coordinated Universal Time)
Booking Flow: OpenBookingApprovalFlow
Opportunity Type: ScheduledSession
Feature: Approval Flow / Proposal Amendment - Amend an opportunity using an OrderProposal (Implemented)
Test: Successful booking using the Booking Flow with Approval, creating an amendment
A successful end to end booking, via Booking Flow with Approval, of an opportunity, creating an amendment.
npm start -- --runInBand test/features/approval/proposal-amendment/implemented/proposal-amendment-book-test.js
The OpenActive Reference Implementation test result for this test can be used as a reference to help with debugging.
⚠️ 27 passed with 0 failures, 97 warnings and 54 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#TestOpportunityBookableWithNegotiation",
"test:testOpenBookingFlow": "https://openactive.io/test-interface#OpenBookingApprovalFlow"
}
Response status code: 200 OK. Responded in 79.901396ms.
{
"@context": "https://openactive.io/",
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1658/events/16572"
}
GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Fscheduled-sessions%2F1658%2Fevents%2F16572?useCacheIfAvailable=true
Response status code: 200 OK. Responded in 10.31068ms.
{
"data": {
"@context": [
"https://openactive.io/"
],
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1658/events/16572",
"startDate": "2025-02-04T07:53:56+00:00",
"endDate": "2025-02-04T11:21:56+00:00",
"superEvent": {
"@type": "SessionSeries",
"@id": "https://localhost:5001/api/identifiers/session-series/1658",
"identifier": 1658,
"name": "GOLDEN: Soft Zumba",
"activity": [
{
"@type": "Concept",
"@id": "https://openactive.io/activity-list#78503fa2-ed24-4a80-a224-e2e94581d8a8",
"inScheme": "https://openactive.io/activity-list",
"prefLabel": "Zumba®"
}
],
"eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
"offers": [
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
}
],
"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": "07472 067840",
"termsOfService": [
{
"@type": "PrivacyPolicy",
"name": "Privacy Policy",
"requiresExplicitConsent": false,
"url": "https://example.com/privacy.html"
}
],
"url": "http://maryam.info"
},
"url": "https://www.example.com/sessions/1658"
},
"duration": "PT3H28M",
"maximumAttendeeCapacity": 10,
"remainingAttendeeCapacity": 10
}
}
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/90c1b3e0-886b-4cdc-a438-81562c12d55d
"application/vnd.openactive.booking+json; version=1"
"Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkIwNEY3QjkxREUzQjk0NzhDNjE4MzNGQjI0QUE1Q0RCIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE3MzgzMjE0NDAsImV4cCI6MTczODMyNTA0MCwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiNWQ4ODNlMzAtMzRjYi00ZGZiLThhMGEtOGI0M2E0MGM1OTIwIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiNWQ4ODNlMzAtMzRjYi00ZGZiLThhMGEtOGI0M2E0MGM1OTIwIiwic3ViIjoiMTAwIiwiYXV0aF90aW1lIjoxNzM4MzIxNDM5LCJpZHAiOiJsb2NhbCIsImh0dHBzOi8vb3BlbmFjdGl2ZS5pby9zZWxsZXJJZCI6Imh0dHBzOi8vbG9jYWxob3N0OjUwMDEvYXBpL2lkZW50aWZpZXJzL3NlbGxlcnMvMSIsImp0aSI6Ijg3QUYxRjZCNDBBRjc4RDFGRTVBNUY2RDAwNDFBMUM2Iiwic2lkIjoiMEY1RTJGRjQxNDkyNUVBRTAzRTEyNkZCOEIxREUyMUYiLCJpYXQiOjE3MzgzMjE0NDAsInNjb3BlIjpbIm9wZW5pZCIsIm9wZW5hY3RpdmUtb3BlbmJvb2tpbmciLCJvcGVuYWN0aXZlLWlkZW50aXR5Iiwib2ZmbGluZV9hY2Nlc3MiXSwiYW1yIjpbInB3ZCJdfQ.cWPv2tg2JWBAhUL9-TGTBs-vBMg9tqWZz-AqpY8UbDyzFCqWAXDKvZsOxQ1VpF1vUooezUuboWDNXNSphlbCGRhcUNv59ON6CnkOfCzk5UGpdZJ6ZW5t3Kc_KXo5EWmtq5pM5NW4I37unmXRFRMEuvyMRho7VHYLSWFPb3Yt0Xc4E5IFu7glsqAfDXn3IVP891AtbDz2iwpOhjvPvJwu805QUOgRkoWl-0rg179AKa0v1woLPO6P5WCGOmvW91drLElzYwPgRBKVwXDCzJPdbts4jOQPxCBecyv9gkDKikETd5ETbP0pRWDU2J1r3S9EHWPv_uxksjg2AB4dVdVIbw"
{
"@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/1658#/offers/0",
"orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/1658/events/16572"
}
],
"payment": {
"@type": "Payment",
"name": "AcmeBroker Points",
"accountId": "SN1593",
"paymentProviderId": "STRIPE"
}
}
Response status code: 200 OK. Responded in 197.836455ms.
{
"@context": "https://openactive.io/",
"@type": "OrderQuote",
"@id": "https://localhost:5001/api/openbooking/order-quotes/90c1b3e0-886b-4cdc-a438-81562c12d55d",
"lease": {
"@type": "Lease",
"leaseExpires": "2025-01-31T11:14:17+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/1658#/offers/0",
"allowCustomerCancellationFullRefund": true,
"latestCancellationBeforeStartDate": "P1D",
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
},
"orderedItem": {
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1658/events/16572",
"startDate": "2025-02-04T07:53:56+00:00",
"endDate": "2025-02-04T11:21:56+00:00",
"superEvent": {
"@type": "SessionSeries",
"@id": "https://localhost:5001/api/identifiers/session-series/1658",
"name": "Soft Zumba",
"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/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/1658"
},
"maximumAttendeeCapacity": 10,
"remainingAttendeeCapacity": 10
},
"position": 0,
"unitTaxSpecification": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 1.474,
"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/Optional",
"price": 7.37,
"priceCurrency": "GBP"
},
"totalPaymentTax": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 1.474,
"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
.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%2F1658%2Fevents%2F16572?useCacheIfAvailable=true&expectedCapacity=9
Response status code: 200 OK. Responded in 417.179941ms.
{
"state": "updated",
"id": "https://localhost:5001/api/identifiers/scheduled-sessions/1658/events/16572",
"modified": "1738321758867",
"data": {
"@context": [
"https://openactive.io/"
],
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1658/events/16572",
"startDate": "2025-02-04T07:53:56+00:00",
"endDate": "2025-02-04T11:21:56+00:00",
"superEvent": {
"@type": "SessionSeries",
"@id": "https://localhost:5001/api/identifiers/session-series/1658",
"identifier": 1658,
"name": "GOLDEN: Soft Zumba",
"activity": [
{
"@type": "Concept",
"@id": "https://openactive.io/activity-list#78503fa2-ed24-4a80-a224-e2e94581d8a8",
"inScheme": "https://openactive.io/activity-list",
"prefLabel": "Zumba®"
}
],
"eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
"offers": [
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
}
],
"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": "07472 067840",
"termsOfService": [
{
"@type": "PrivacyPolicy",
"name": "Privacy Policy",
"requiresExplicitConsent": false,
"url": "https://example.com/privacy.html"
}
],
"url": "http://maryam.info"
},
"url": "https://www.example.com/sessions/1658"
},
"duration": "PT3H28M",
"maximumAttendeeCapacity": 10,
"remainingAttendeeCapacity": 9
}
}
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/90c1b3e0-886b-4cdc-a438-81562c12d55d
"application/vnd.openactive.booking+json; version=1"
"Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkIwNEY3QjkxREUzQjk0NzhDNjE4MzNGQjI0QUE1Q0RCIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE3MzgzMjE0NDAsImV4cCI6MTczODMyNTA0MCwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiNWQ4ODNlMzAtMzRjYi00ZGZiLThhMGEtOGI0M2E0MGM1OTIwIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiNWQ4ODNlMzAtMzRjYi00ZGZiLThhMGEtOGI0M2E0MGM1OTIwIiwic3ViIjoiMTAwIiwiYXV0aF90aW1lIjoxNzM4MzIxNDM5LCJpZHAiOiJsb2NhbCIsImh0dHBzOi8vb3BlbmFjdGl2ZS5pby9zZWxsZXJJZCI6Imh0dHBzOi8vbG9jYWxob3N0OjUwMDEvYXBpL2lkZW50aWZpZXJzL3NlbGxlcnMvMSIsImp0aSI6Ijg3QUYxRjZCNDBBRjc4RDFGRTVBNUY2RDAwNDFBMUM2Iiwic2lkIjoiMEY1RTJGRjQxNDkyNUVBRTAzRTEyNkZCOEIxREUyMUYiLCJpYXQiOjE3MzgzMjE0NDAsInNjb3BlIjpbIm9wZW5pZCIsIm9wZW5hY3RpdmUtb3BlbmJvb2tpbmciLCJvcGVuYWN0aXZlLWlkZW50aXR5Iiwib2ZmbGluZV9hY2Nlc3MiXSwiYW1yIjpbInB3ZCJdfQ.cWPv2tg2JWBAhUL9-TGTBs-vBMg9tqWZz-AqpY8UbDyzFCqWAXDKvZsOxQ1VpF1vUooezUuboWDNXNSphlbCGRhcUNv59ON6CnkOfCzk5UGpdZJ6ZW5t3Kc_KXo5EWmtq5pM5NW4I37unmXRFRMEuvyMRho7VHYLSWFPb3Yt0Xc4E5IFu7glsqAfDXn3IVP891AtbDz2iwpOhjvPvJwu805QUOgRkoWl-0rg179AKa0v1woLPO6P5WCGOmvW91drLElzYwPgRBKVwXDCzJPdbts4jOQPxCBecyv9gkDKikETd5ETbP0pRWDU2J1r3S9EHWPv_uxksjg2AB4dVdVIbw"
{
"@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": "(220) 215-4536 x40864",
"givenName": "Sanford",
"familyName": "Osborne"
},
"orderedItem": [
{
"@type": "OrderItem",
"position": 0,
"acceptedOffer": "https://localhost:5001/api/identifiers/session-series/1658#/offers/0",
"orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/1658/events/16572"
}
],
"payment": {
"@type": "Payment",
"name": "AcmeBroker Points",
"accountId": "SN1593",
"paymentProviderId": "STRIPE"
}
}
Response status code: 200 OK. Responded in 44.631193ms.
{
"@context": "https://openactive.io/",
"@type": "OrderQuote",
"@id": "https://localhost:5001/api/openbooking/order-quotes/90c1b3e0-886b-4cdc-a438-81562c12d55d",
"lease": {
"@type": "Lease",
"leaseExpires": "2025-01-31T11:14:19+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": "Osborne",
"givenName": "Sanford",
"telephone": "(220) 215-4536 x40864"
},
"orderedItem": [
{
"@type": "OrderItem",
"acceptedOffer": {
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/offers/0",
"allowCustomerCancellationFullRefund": true,
"latestCancellationBeforeStartDate": "P1D",
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
},
"orderedItem": {
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1658/events/16572",
"startDate": "2025-02-04T07:53:56+00:00",
"endDate": "2025-02-04T11:21:56+00:00",
"superEvent": {
"@type": "SessionSeries",
"@id": "https://localhost:5001/api/identifiers/session-series/1658",
"name": "Soft Zumba",
"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/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/1658"
},
"maximumAttendeeCapacity": 10,
"remainingAttendeeCapacity": 10
},
"position": 0,
"unitTaxSpecification": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 1.474,
"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/Optional",
"price": 7.37,
"priceCurrency": "GBP"
},
"totalPaymentTax": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 1.474,
"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
.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%2F1658%2Fevents%2F16572?useCacheIfAvailable=true&expectedCapacity=9
Response status code: 200 OK. Responded in 4.880643ms.
{
"data": {
"@context": [
"https://openactive.io/"
],
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1658/events/16572",
"startDate": "2025-02-04T07:53:56+00:00",
"endDate": "2025-02-04T11:21:56+00:00",
"superEvent": {
"@type": "SessionSeries",
"@id": "https://localhost:5001/api/identifiers/session-series/1658",
"identifier": 1658,
"name": "GOLDEN: Soft Zumba",
"activity": [
{
"@type": "Concept",
"@id": "https://openactive.io/activity-list#78503fa2-ed24-4a80-a224-e2e94581d8a8",
"inScheme": "https://openactive.io/activity-list",
"prefLabel": "Zumba®"
}
],
"eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
"offers": [
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
}
],
"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": "07472 067840",
"termsOfService": [
{
"@type": "PrivacyPolicy",
"name": "Privacy Policy",
"requiresExplicitConsent": false,
"url": "https://example.com/privacy.html"
}
],
"url": "http://maryam.info"
},
"url": "https://www.example.com/sessions/1658"
},
"duration": "PT3H28M",
"maximumAttendeeCapacity": 10,
"remainingAttendeeCapacity": 9
}
}
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/90c1b3e0-886b-4cdc-a438-81562c12d55d
"application/vnd.openactive.booking+json; version=1"
"Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkIwNEY3QjkxREUzQjk0NzhDNjE4MzNGQjI0QUE1Q0RCIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE3MzgzMjE0NDAsImV4cCI6MTczODMyNTA0MCwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiNWQ4ODNlMzAtMzRjYi00ZGZiLThhMGEtOGI0M2E0MGM1OTIwIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiNWQ4ODNlMzAtMzRjYi00ZGZiLThhMGEtOGI0M2E0MGM1OTIwIiwic3ViIjoiMTAwIiwiYXV0aF90aW1lIjoxNzM4MzIxNDM5LCJpZHAiOiJsb2NhbCIsImh0dHBzOi8vb3BlbmFjdGl2ZS5pby9zZWxsZXJJZCI6Imh0dHBzOi8vbG9jYWxob3N0OjUwMDEvYXBpL2lkZW50aWZpZXJzL3NlbGxlcnMvMSIsImp0aSI6Ijg3QUYxRjZCNDBBRjc4RDFGRTVBNUY2RDAwNDFBMUM2Iiwic2lkIjoiMEY1RTJGRjQxNDkyNUVBRTAzRTEyNkZCOEIxREUyMUYiLCJpYXQiOjE3MzgzMjE0NDAsInNjb3BlIjpbIm9wZW5pZCIsIm9wZW5hY3RpdmUtb3BlbmJvb2tpbmciLCJvcGVuYWN0aXZlLWlkZW50aXR5Iiwib2ZmbGluZV9hY2Nlc3MiXSwiYW1yIjpbInB3ZCJdfQ.cWPv2tg2JWBAhUL9-TGTBs-vBMg9tqWZz-AqpY8UbDyzFCqWAXDKvZsOxQ1VpF1vUooezUuboWDNXNSphlbCGRhcUNv59ON6CnkOfCzk5UGpdZJ6ZW5t3Kc_KXo5EWmtq5pM5NW4I37unmXRFRMEuvyMRho7VHYLSWFPb3Yt0Xc4E5IFu7glsqAfDXn3IVP891AtbDz2iwpOhjvPvJwu805QUOgRkoWl-0rg179AKa0v1woLPO6P5WCGOmvW91drLElzYwPgRBKVwXDCzJPdbts4jOQPxCBecyv9gkDKikETd5ETbP0pRWDU2J1r3S9EHWPv_uxksjg2AB4dVdVIbw"
{
"@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": "(220) 215-4536 x40864",
"givenName": "Sanford",
"familyName": "Osborne"
},
"orderedItem": [
{
"@type": "OrderItem",
"position": 0,
"acceptedOffer": "https://localhost:5001/api/identifiers/session-series/1658#/offers/0",
"orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/1658/events/16572"
}
],
"totalPaymentDue": {
"@type": "PriceSpecification",
"price": 7.37,
"priceCurrency": "GBP"
},
"payment": {
"@type": "Payment",
"identifier": "1cXNbQ4cq",
"name": "AcmeBroker Points",
"accountId": "SN1593",
"paymentProviderId": "STRIPE"
}
}
Response status code: 201 Created. Responded in 151.436047ms.
{
"@context": "https://openactive.io/",
"@type": "OrderProposal",
"@id": "https://localhost:5001/api/openbooking/order-proposals/90c1b3e0-886b-4cdc-a438-81562c12d55d",
"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": "Osborne",
"givenName": "Sanford",
"telephone": "(220) 215-4536 x40864"
},
"orderedItem": [
{
"@type": "OrderItem",
"@id": "https://localhost:5001/api/openbooking/orders/90c1b3e0-886b-4cdc-a438-81562c12d55d#/orderedItems/10",
"acceptedOffer": {
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/offers/0",
"allowCustomerCancellationFullRefund": true,
"latestCancellationBeforeStartDate": "P1D",
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
},
"orderedItem": {
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1658/events/16572",
"startDate": "2025-02-04T07:53:56+00:00",
"endDate": "2025-02-04T11:21:56+00:00",
"superEvent": {
"@type": "SessionSeries",
"@id": "https://localhost:5001/api/identifiers/session-series/1658",
"name": "Soft Zumba",
"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/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/1658"
}
},
"position": 0,
"unitTaxSpecification": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 1.474,
"priceCurrency": "GBP",
"rate": 0.2
}
]
}
],
"orderProposalVersion": "https://localhost:5001/api/openbooking/order-proposals/90c1b3e0-886b-4cdc-a438-81562c12d55d/versions/aa5905fb-265b-4864-ab85-6bed849071e9",
"payment": {
"@type": "Payment",
"identifier": "1cXNbQ4cq",
"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/Optional",
"price": 7.37,
"priceCurrency": "GBP"
},
"totalPaymentTax": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 1.474,
"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
.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/90c1b3e0-886b-4cdc-a438-81562c12d55d
{}
Response status code: 200 OK. Responded in 23.965643ms.
{
"headers": {
"Accept": "application/json, application/vnd.openactive.booking+json; version=1",
"Cache-Control": "max-age=0",
"Authorization": "Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkIwNEY3QjkxREUzQjk0NzhDNjE4MzNGQjI0QUE1Q0RCIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE3MzgzMjE0MzgsImV4cCI6MTczODMyNTAzOCwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiNWQ4ODNlMzAtMzRjYi00ZGZiLThhMGEtOGI0M2E0MGM1OTIwIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiNWQ4ODNlMzAtMzRjYi00ZGZiLThhMGEtOGI0M2E0MGM1OTIwIiwianRpIjoiRDgyQzlDRkFCNDY4NUExRUZBOTI4RTZGRTk1ODdGQjgiLCJpYXQiOjE3MzgzMjE0MzgsInNjb3BlIjpbIm9wZW5hY3RpdmUtb3JkZXJzZmVlZCJdfQ.UKISQd5IBJrrjlHk_dbvnlUUkT8AGYP8BsioJb7fbyl9bldSpLM5qNIH9LsJaIZObymymPsYJEuBSaf5BJx8q0Vh3eQOHMwWuakK6Zn_V4HQQOx9hKO_BRqhF8Km8Xkkwybr225QpYIBCsySfgbRicctkyjsmlkUmV0rSLcAmpFkXcNcCrAz9D6Ir5Pi2YmrQIeWqbnmT-iP4Cz9XA_SIaQ7RqXGoxrYZI7snZGCyvlQecY3gMFLBjw65yz3bn6Lmthx2OMHN9OUFhLMximRU9XGNHsQtpTBamAkE79MfhX1httze_jjYeYWLwgH_EfVPmJgEvk7qm5rfKpFt5Di1g"
},
"startingFeedPage": "https://localhost:5001/api/openbooking/order-proposals-rpde",
"message": "Listening for UUID: '90c1b3e0-886b-4cdc-a438-81562c12d55d' 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.eyJuYmYiOjE3MzgzMjE0NDAsImV4cCI6MTczODMyNTA0MCwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiNWQ4ODNlMzAtMzRjYi00ZGZiLThhMGEtOGI0M2E0MGM1OTIwIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiNWQ4ODNlMzAtMzRjYi00ZGZiLThhMGEtOGI0M2E0MGM1OTIwIiwic3ViIjoiMTAwIiwiYXV0aF90aW1lIjoxNzM4MzIxNDM5LCJpZHAiOiJsb2NhbCIsImh0dHBzOi8vb3BlbmFjdGl2ZS5pby9zZWxsZXJJZCI6Imh0dHBzOi8vbG9jYWxob3N0OjUwMDEvYXBpL2lkZW50aWZpZXJzL3NlbGxlcnMvMSIsImp0aSI6Ijg3QUYxRjZCNDBBRjc4RDFGRTVBNUY2RDAwNDFBMUM2Iiwic2lkIjoiMEY1RTJGRjQxNDkyNUVBRTAzRTEyNkZCOEIxREUyMUYiLCJpYXQiOjE3MzgzMjE0NDAsInNjb3BlIjpbIm9wZW5pZCIsIm9wZW5hY3RpdmUtb3BlbmJvb2tpbmciLCJvcGVuYWN0aXZlLWlkZW50aXR5Iiwib2ZmbGluZV9hY2Nlc3MiXSwiYW1yIjpbInB3ZCJdfQ.cWPv2tg2JWBAhUL9-TGTBs-vBMg9tqWZz-AqpY8UbDyzFCqWAXDKvZsOxQ1VpF1vUooezUuboWDNXNSphlbCGRhcUNv59ON6CnkOfCzk5UGpdZJ6ZW5t3Kc_KXo5EWmtq5pM5NW4I37unmXRFRMEuvyMRho7VHYLSWFPb3Yt0Xc4E5IFu7glsqAfDXn3IVP891AtbDz2iwpOhjvPvJwu805QUOgRkoWl-0rg179AKa0v1woLPO6P5WCGOmvW91drLElzYwPgRBKVwXDCzJPdbts4jOQPxCBecyv9gkDKikETd5ETbP0pRWDU2J1r3S9EHWPv_uxksjg2AB4dVdVIbw"
{
"@context": [
"https://openactive.io/",
"https://openactive.io/test-interface"
],
"@type": "test:SellerAmendOrderProposalSimulateAction",
"object": {
"@type": "OrderProposal",
"@id": "https://localhost:5001/api/openbooking/order-proposals/90c1b3e0-886b-4cdc-a438-81562c12d55d"
}
}
Response status code: 204 No Content. Responded in 70.634102ms.
GET http://localhost:3000/order-listeners/order-proposals/primary/90c1b3e0-886b-4cdc-a438-81562c12d55d
Response status code: 200 OK. Responded in 2323.349311ms.
{
"state": "updated",
"kind": "Order",
"id": "90c1b3e0-886b-4cdc-a438-81562c12d55d",
"modified": "638739185608743332",
"data": {
"@context": "https://openactive.io/",
"@type": "OrderProposal",
"@id": "https://localhost:5001/api/openbooking/order-proposals/90c1b3e0-886b-4cdc-a438-81562c12d55d",
"identifier": "90c1b3e0-886b-4cdc-a438-81562c12d55d",
"orderProposalStatus": "https://openactive.io/AwaitingSellerConfirmation",
"orderedItem": [
{
"@type": "OrderItem",
"@id": "https://localhost:5001/api/openbooking/orders/90c1b3e0-886b-4cdc-a438-81562c12d55d#/orderedItems/10",
"acceptedOffer": {
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/offers/0",
"price": 7.37,
"priceCurrency": "GBP"
},
"orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/1658/events/16572"
}
],
"orderProposalVersion": "https://localhost:5001/api/openbooking/order-proposals/90c1b3e0-886b-4cdc-a438-81562c12d55d/versions/b5d34068-17c6-49e2-9f50-63ff1e7d06e3",
"totalPaymentDue": {
"@type": "PriceSpecification",
"openBookingPrepayment": "https://openactive.io/Required",
"price": 7.37,
"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/90c1b3e0-886b-4cdc-a438-81562c12d55d
{}
Response status code: 200 OK. Responded in 16.11677ms.
{
"headers": {
"Accept": "application/json, application/vnd.openactive.booking+json; version=1",
"Cache-Control": "max-age=0",
"Authorization": "Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkIwNEY3QjkxREUzQjk0NzhDNjE4MzNGQjI0QUE1Q0RCIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE3MzgzMjE0MzgsImV4cCI6MTczODMyNTAzOCwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiNWQ4ODNlMzAtMzRjYi00ZGZiLThhMGEtOGI0M2E0MGM1OTIwIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiNWQ4ODNlMzAtMzRjYi00ZGZiLThhMGEtOGI0M2E0MGM1OTIwIiwianRpIjoiRDgyQzlDRkFCNDY4NUExRUZBOTI4RTZGRTk1ODdGQjgiLCJpYXQiOjE3MzgzMjE0MzgsInNjb3BlIjpbIm9wZW5hY3RpdmUtb3JkZXJzZmVlZCJdfQ.UKISQd5IBJrrjlHk_dbvnlUUkT8AGYP8BsioJb7fbyl9bldSpLM5qNIH9LsJaIZObymymPsYJEuBSaf5BJx8q0Vh3eQOHMwWuakK6Zn_V4HQQOx9hKO_BRqhF8Km8Xkkwybr225QpYIBCsySfgbRicctkyjsmlkUmV0rSLcAmpFkXcNcCrAz9D6Ir5Pi2YmrQIeWqbnmT-iP4Cz9XA_SIaQ7RqXGoxrYZI7snZGCyvlQecY3gMFLBjw65yz3bn6Lmthx2OMHN9OUFhLMximRU9XGNHsQtpTBamAkE79MfhX1httze_jjYeYWLwgH_EfVPmJgEvk7qm5rfKpFt5Di1g"
},
"startingFeedPage": "https://localhost:5001/api/openbooking/order-proposals-rpde?afterTimestamp=638739185608743332&afterId=90c1b3e0-886b-4cdc-a438-81562c12d55d",
"message": "Listening for UUID: '90c1b3e0-886b-4cdc-a438-81562c12d55d' 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.eyJuYmYiOjE3MzgzMjE0NDAsImV4cCI6MTczODMyNTA0MCwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiNWQ4ODNlMzAtMzRjYi00ZGZiLThhMGEtOGI0M2E0MGM1OTIwIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiNWQ4ODNlMzAtMzRjYi00ZGZiLThhMGEtOGI0M2E0MGM1OTIwIiwic3ViIjoiMTAwIiwiYXV0aF90aW1lIjoxNzM4MzIxNDM5LCJpZHAiOiJsb2NhbCIsImh0dHBzOi8vb3BlbmFjdGl2ZS5pby9zZWxsZXJJZCI6Imh0dHBzOi8vbG9jYWxob3N0OjUwMDEvYXBpL2lkZW50aWZpZXJzL3NlbGxlcnMvMSIsImp0aSI6Ijg3QUYxRjZCNDBBRjc4RDFGRTVBNUY2RDAwNDFBMUM2Iiwic2lkIjoiMEY1RTJGRjQxNDkyNUVBRTAzRTEyNkZCOEIxREUyMUYiLCJpYXQiOjE3MzgzMjE0NDAsInNjb3BlIjpbIm9wZW5pZCIsIm9wZW5hY3RpdmUtb3BlbmJvb2tpbmciLCJvcGVuYWN0aXZlLWlkZW50aXR5Iiwib2ZmbGluZV9hY2Nlc3MiXSwiYW1yIjpbInB3ZCJdfQ.cWPv2tg2JWBAhUL9-TGTBs-vBMg9tqWZz-AqpY8UbDyzFCqWAXDKvZsOxQ1VpF1vUooezUuboWDNXNSphlbCGRhcUNv59ON6CnkOfCzk5UGpdZJ6ZW5t3Kc_KXo5EWmtq5pM5NW4I37unmXRFRMEuvyMRho7VHYLSWFPb3Yt0Xc4E5IFu7glsqAfDXn3IVP891AtbDz2iwpOhjvPvJwu805QUOgRkoWl-0rg179AKa0v1woLPO6P5WCGOmvW91drLElzYwPgRBKVwXDCzJPdbts4jOQPxCBecyv9gkDKikETd5ETbP0pRWDU2J1r3S9EHWPv_uxksjg2AB4dVdVIbw"
{
"@context": [
"https://openactive.io/",
"https://openactive.io/test-interface"
],
"@type": "test:SellerAcceptOrderProposalSimulateAction",
"object": {
"@type": "OrderProposal",
"@id": "https://localhost:5001/api/openbooking/order-proposals/90c1b3e0-886b-4cdc-a438-81562c12d55d"
}
}
Response status code: 204 No Content. Responded in 31.444201ms.
GET http://localhost:3000/order-listeners/order-proposals/primary/90c1b3e0-886b-4cdc-a438-81562c12d55d
Response status code: 200 OK. Responded in 2499.467202ms.
{
"state": "updated",
"kind": "Order",
"id": "90c1b3e0-886b-4cdc-a438-81562c12d55d",
"modified": "638739185632696166",
"data": {
"@context": "https://openactive.io/",
"@type": "OrderProposal",
"@id": "https://localhost:5001/api/openbooking/order-proposals/90c1b3e0-886b-4cdc-a438-81562c12d55d",
"identifier": "90c1b3e0-886b-4cdc-a438-81562c12d55d",
"orderProposalStatus": "https://openactive.io/SellerAccepted",
"orderedItem": [
{
"@type": "OrderItem",
"@id": "https://localhost:5001/api/openbooking/orders/90c1b3e0-886b-4cdc-a438-81562c12d55d#/orderedItems/10",
"acceptedOffer": {
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/offers/0",
"price": 7.37,
"priceCurrency": "GBP"
},
"orderedItem": "https://localhost:5001/api/identifiers/scheduled-sessions/1658/events/16572"
}
],
"orderProposalVersion": "https://localhost:5001/api/openbooking/order-proposals/90c1b3e0-886b-4cdc-a438-81562c12d55d/versions/b5d34068-17c6-49e2-9f50-63ff1e7d06e3",
"totalPaymentDue": {
"@type": "PriceSpecification",
"openBookingPrepayment": "https://openactive.io/Required",
"price": 7.37,
"priceCurrency": "GBP"
}
}
}
name
is missing from Offer
.ageRestriction
is missing from Offer
.allowCustomerCancellationFullRefund
is missing from Offer
.PUT https://localhost:5001/api/openbooking/orders/90c1b3e0-886b-4cdc-a438-81562c12d55d
"application/vnd.openactive.booking+json; version=1"
"Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkIwNEY3QjkxREUzQjk0NzhDNjE4MzNGQjI0QUE1Q0RCIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE3MzgzMjE0NDAsImV4cCI6MTczODMyNTA0MCwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiNWQ4ODNlMzAtMzRjYi00ZGZiLThhMGEtOGI0M2E0MGM1OTIwIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiNWQ4ODNlMzAtMzRjYi00ZGZiLThhMGEtOGI0M2E0MGM1OTIwIiwic3ViIjoiMTAwIiwiYXV0aF90aW1lIjoxNzM4MzIxNDM5LCJpZHAiOiJsb2NhbCIsImh0dHBzOi8vb3BlbmFjdGl2ZS5pby9zZWxsZXJJZCI6Imh0dHBzOi8vbG9jYWxob3N0OjUwMDEvYXBpL2lkZW50aWZpZXJzL3NlbGxlcnMvMSIsImp0aSI6Ijg3QUYxRjZCNDBBRjc4RDFGRTVBNUY2RDAwNDFBMUM2Iiwic2lkIjoiMEY1RTJGRjQxNDkyNUVBRTAzRTEyNkZCOEIxREUyMUYiLCJpYXQiOjE3MzgzMjE0NDAsInNjb3BlIjpbIm9wZW5pZCIsIm9wZW5hY3RpdmUtb3BlbmJvb2tpbmciLCJvcGVuYWN0aXZlLWlkZW50aXR5Iiwib2ZmbGluZV9hY2Nlc3MiXSwiYW1yIjpbInB3ZCJdfQ.cWPv2tg2JWBAhUL9-TGTBs-vBMg9tqWZz-AqpY8UbDyzFCqWAXDKvZsOxQ1VpF1vUooezUuboWDNXNSphlbCGRhcUNv59ON6CnkOfCzk5UGpdZJ6ZW5t3Kc_KXo5EWmtq5pM5NW4I37unmXRFRMEuvyMRho7VHYLSWFPb3Yt0Xc4E5IFu7glsqAfDXn3IVP891AtbDz2iwpOhjvPvJwu805QUOgRkoWl-0rg179AKa0v1woLPO6P5WCGOmvW91drLElzYwPgRBKVwXDCzJPdbts4jOQPxCBecyv9gkDKikETd5ETbP0pRWDU2J1r3S9EHWPv_uxksjg2AB4dVdVIbw"
{
"@context": "https://openactive.io/",
"@type": "Order",
"orderProposalVersion": "https://localhost:5001/api/openbooking/order-proposals/90c1b3e0-886b-4cdc-a438-81562c12d55d/versions/aa5905fb-265b-4864-ab85-6bed849071e9",
"payment": {
"@type": "Payment",
"identifier": "1cXNbQ4cq",
"name": "AcmeBroker Points",
"accountId": "SN1593",
"paymentProviderId": "STRIPE"
}
}
Response status code: 500 Internal Server Error. Responded in 47.112455ms.
{
"@context": "https://openactive.io/",
"@type": "OrderProposalVersionOutdatedError",
"name": "B failed due to a newer version of the 'OrderProposal' existing than that specified by the Broker in 'orderProposalVersion'.",
"statusCode": 500
}
PUT https://localhost:5001/api/openbooking/orders/90c1b3e0-886b-4cdc-a438-81562c12d55d
"application/vnd.openactive.booking+json; version=1"
"Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkIwNEY3QjkxREUzQjk0NzhDNjE4MzNGQjI0QUE1Q0RCIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE3MzgzMjE0NDAsImV4cCI6MTczODMyNTA0MCwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiNWQ4ODNlMzAtMzRjYi00ZGZiLThhMGEtOGI0M2E0MGM1OTIwIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiNWQ4ODNlMzAtMzRjYi00ZGZiLThhMGEtOGI0M2E0MGM1OTIwIiwic3ViIjoiMTAwIiwiYXV0aF90aW1lIjoxNzM4MzIxNDM5LCJpZHAiOiJsb2NhbCIsImh0dHBzOi8vb3BlbmFjdGl2ZS5pby9zZWxsZXJJZCI6Imh0dHBzOi8vbG9jYWxob3N0OjUwMDEvYXBpL2lkZW50aWZpZXJzL3NlbGxlcnMvMSIsImp0aSI6Ijg3QUYxRjZCNDBBRjc4RDFGRTVBNUY2RDAwNDFBMUM2Iiwic2lkIjoiMEY1RTJGRjQxNDkyNUVBRTAzRTEyNkZCOEIxREUyMUYiLCJpYXQiOjE3MzgzMjE0NDAsInNjb3BlIjpbIm9wZW5pZCIsIm9wZW5hY3RpdmUtb3BlbmJvb2tpbmciLCJvcGVuYWN0aXZlLWlkZW50aXR5Iiwib2ZmbGluZV9hY2Nlc3MiXSwiYW1yIjpbInB3ZCJdfQ.cWPv2tg2JWBAhUL9-TGTBs-vBMg9tqWZz-AqpY8UbDyzFCqWAXDKvZsOxQ1VpF1vUooezUuboWDNXNSphlbCGRhcUNv59ON6CnkOfCzk5UGpdZJ6ZW5t3Kc_KXo5EWmtq5pM5NW4I37unmXRFRMEuvyMRho7VHYLSWFPb3Yt0Xc4E5IFu7glsqAfDXn3IVP891AtbDz2iwpOhjvPvJwu805QUOgRkoWl-0rg179AKa0v1woLPO6P5WCGOmvW91drLElzYwPgRBKVwXDCzJPdbts4jOQPxCBecyv9gkDKikETd5ETbP0pRWDU2J1r3S9EHWPv_uxksjg2AB4dVdVIbw"
{
"@context": "https://openactive.io/",
"@type": "Order",
"orderProposalVersion": "https://localhost:5001/api/openbooking/order-proposals/90c1b3e0-886b-4cdc-a438-81562c12d55d/versions/b5d34068-17c6-49e2-9f50-63ff1e7d06e3",
"payment": {
"@type": "Payment",
"identifier": "1cXNbQ4cq",
"name": "AcmeBroker Points",
"accountId": "SN1593",
"paymentProviderId": "STRIPE"
}
}
Response status code: 201 Created. Responded in 67.702755ms.
{
"@context": "https://openactive.io/",
"@type": "Order",
"@id": "https://localhost:5001/api/openbooking/orders/90c1b3e0-886b-4cdc-a438-81562c12d55d",
"identifier": "90c1b3e0-886b-4cdc-a438-81562c12d55d",
"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": "Osborne",
"givenName": "Sanford",
"telephone": "(220) 215-4536 x40864"
},
"orderedItem": [
{
"@type": "OrderItem",
"@id": "https://localhost:5001/api/openbooking/orders/90c1b3e0-886b-4cdc-a438-81562c12d55d#/orderedItems/10",
"acceptedOffer": {
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/offers/0",
"allowCustomerCancellationFullRefund": true,
"latestCancellationBeforeStartDate": "P1D",
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
},
"accessChannel": {
"@type": "VirtualLocation",
"name": "Zoom Video Chat",
"description": "Please log into Zoom a few minutes before the event",
"accessCode": "0158067059",
"accessId": "2771480022"
},
"orderedItem": {
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1658/events/16572",
"startDate": "2025-02-04T07:53:56+00:00",
"endDate": "2025-02-04T11:21:56+00:00",
"superEvent": {
"@type": "SessionSeries",
"@id": "https://localhost:5001/api/identifiers/session-series/1658",
"name": "Soft Zumba",
"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/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/1658"
},
"maximumAttendeeCapacity": 10,
"remainingAttendeeCapacity": 10
},
"orderItemStatus": "https://openactive.io/OrderItemConfirmed",
"unitTaxSpecification": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 1.474,
"priceCurrency": "GBP",
"rate": 0.2
}
]
}
],
"payment": {
"@type": "Payment",
"identifier": "1cXNbQ4cq",
"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/Optional",
"price": 7.37,
"priceCurrency": "GBP"
},
"totalPaymentTax": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 1.474,
"priceCurrency": "GBP",
"rate": 0.2
}
]
}
⚠️ $.description: Recommended property description
is missing from OrderProposalVersionOutdatedError
.
⚠️ $.instance: Recommended property instance
is missing from OrderProposalVersionOutdatedError
.
⚠️ $.orderedItem[0].accessCode: Recommended property accessCode
is missing from OrderItem
.
⚠️ $.orderedItem[0].accessPass: Recommended property accessPass
is missing from OrderItem
.
⚠️ $.orderedItem[0].acceptedOffer.name: Recommended property name
is missing from Offer
.
⚠️ $.orderedItem[0].acceptedOffer.ageRestriction: Recommended property ageRestriction
is missing from Offer
.
⚠️ $.orderedItem[0].orderedItem.eventStatus: Recommended property eventStatus
is missing from ScheduledSession
.
⚠️ $.orderedItem[0].orderedItem.superEvent.ageRange: Recommended property ageRange
is missing from SessionSeries
.
⚠️ $.orderedItem[0].orderedItem.superEvent.genderRestriction: Recommended property genderRestriction
is missing from SessionSeries
.
⚠️ $.orderedItem[0].orderedItem.superEvent.eventStatus: Recommended property eventStatus
is missing from SessionSeries
.
⚠️ $.seller.email: Recommended property email
is missing from Organization
.
⚠️ $.seller.url: Recommended property url
is missing from Organization
.
⚠️ $.seller.logo: Recommended property logo
is missing from Organization
.
⚠️ $.seller.vatID: Recommended property vatID
is missing from Organization
.
📝 $.orderedItem[0].orderedItem.genderRestriction: Data consumers will assume that there is no gender restriction when no valid genderRestriction
is supplied on a ScheduledSession
.
📝 $.orderedItem[0].orderedItem.ageRange: Data consumers will assume that the ageRange
is 18+ when not specified.
📝 $.orderedItem[0].orderedItem.eventStatus: Data consumers will assume the eventStatus
is scheduled if not specified or invalid.
📝 $.orderedItem[0].orderedItem.superEvent.genderRestriction: Data consumers will assume that there is no gender restriction when no valid genderRestriction
is supplied on a SessionSeries
.
📝 $.orderedItem[0].orderedItem.superEvent.ageRange: Data consumers will assume that the ageRange
is 18+ when not specified.
📝 $.orderedItem[0].orderedItem.superEvent.eventStatus: Data consumers will assume the eventStatus
is scheduled if not specified or invalid.
GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Fscheduled-sessions%2F1658%2Fevents%2F16572?useCacheIfAvailable=true&expectedCapacity=9
Response status code: 200 OK. Responded in 4.566191ms.
{
"data": {
"@context": [
"https://openactive.io/"
],
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1658/events/16572",
"startDate": "2025-02-04T07:53:56+00:00",
"endDate": "2025-02-04T11:21:56+00:00",
"superEvent": {
"@type": "SessionSeries",
"@id": "https://localhost:5001/api/identifiers/session-series/1658",
"identifier": 1658,
"name": "GOLDEN: Soft Zumba",
"activity": [
{
"@type": "Concept",
"@id": "https://openactive.io/activity-list#78503fa2-ed24-4a80-a224-e2e94581d8a8",
"inScheme": "https://openactive.io/activity-list",
"prefLabel": "Zumba®"
}
],
"eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
"offers": [
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
}
],
"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": "07472 067840",
"termsOfService": [
{
"@type": "PrivacyPolicy",
"name": "Privacy Policy",
"requiresExplicitConsent": false,
"url": "https://example.com/privacy.html"
}
],
"url": "http://maryam.info"
},
"url": "https://www.example.com/sessions/1658"
},
"duration": "PT3H28M",
"maximumAttendeeCapacity": 10,
"remainingAttendeeCapacity": 9
}
}
GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Fscheduled-sessions%2F1658%2Fevents%2F16572?useCacheIfAvailable=true&expectedCapacity=9
Response status code: 200 OK. Responded in 5.514843ms.
{
"data": {
"@context": [
"https://openactive.io/"
],
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1658/events/16572",
"startDate": "2025-02-04T07:53:56+00:00",
"endDate": "2025-02-04T11:21:56+00:00",
"superEvent": {
"@type": "SessionSeries",
"@id": "https://localhost:5001/api/identifiers/session-series/1658",
"identifier": 1658,
"name": "GOLDEN: Soft Zumba",
"activity": [
{
"@type": "Concept",
"@id": "https://openactive.io/activity-list#78503fa2-ed24-4a80-a224-e2e94581d8a8",
"inScheme": "https://openactive.io/activity-list",
"prefLabel": "Zumba®"
}
],
"eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
"offers": [
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
}
],
"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": "07472 067840",
"termsOfService": [
{
"@type": "PrivacyPolicy",
"name": "Privacy Policy",
"requiresExplicitConsent": false,
"url": "https://example.com/privacy.html"
}
],
"url": "http://maryam.info"
},
"url": "https://www.example.com/sessions/1658"
},
"duration": "PT3H28M",
"maximumAttendeeCapacity": 10,
"remainingAttendeeCapacity": 9
}
}
"@type": "OrderProposalVersionOutdatedError"
with status code 500
⚠️ $.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.
PUT https://localhost:5001/api/openbooking/orders/90c1b3e0-886b-4cdc-a438-81562c12d55d
"application/vnd.openactive.booking+json; version=1"
"Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkIwNEY3QjkxREUzQjk0NzhDNjE4MzNGQjI0QUE1Q0RCIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE3MzgzMjE0NDAsImV4cCI6MTczODMyNTA0MCwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiNWQ4ODNlMzAtMzRjYi00ZGZiLThhMGEtOGI0M2E0MGM1OTIwIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiNWQ4ODNlMzAtMzRjYi00ZGZiLThhMGEtOGI0M2E0MGM1OTIwIiwic3ViIjoiMTAwIiwiYXV0aF90aW1lIjoxNzM4MzIxNDM5LCJpZHAiOiJsb2NhbCIsImh0dHBzOi8vb3BlbmFjdGl2ZS5pby9zZWxsZXJJZCI6Imh0dHBzOi8vbG9jYWxob3N0OjUwMDEvYXBpL2lkZW50aWZpZXJzL3NlbGxlcnMvMSIsImp0aSI6Ijg3QUYxRjZCNDBBRjc4RDFGRTVBNUY2RDAwNDFBMUM2Iiwic2lkIjoiMEY1RTJGRjQxNDkyNUVBRTAzRTEyNkZCOEIxREUyMUYiLCJpYXQiOjE3MzgzMjE0NDAsInNjb3BlIjpbIm9wZW5pZCIsIm9wZW5hY3RpdmUtb3BlbmJvb2tpbmciLCJvcGVuYWN0aXZlLWlkZW50aXR5Iiwib2ZmbGluZV9hY2Nlc3MiXSwiYW1yIjpbInB3ZCJdfQ.cWPv2tg2JWBAhUL9-TGTBs-vBMg9tqWZz-AqpY8UbDyzFCqWAXDKvZsOxQ1VpF1vUooezUuboWDNXNSphlbCGRhcUNv59ON6CnkOfCzk5UGpdZJ6ZW5t3Kc_KXo5EWmtq5pM5NW4I37unmXRFRMEuvyMRho7VHYLSWFPb3Yt0Xc4E5IFu7glsqAfDXn3IVP891AtbDz2iwpOhjvPvJwu805QUOgRkoWl-0rg179AKa0v1woLPO6P5WCGOmvW91drLElzYwPgRBKVwXDCzJPdbts4jOQPxCBecyv9gkDKikETd5ETbP0pRWDU2J1r3S9EHWPv_uxksjg2AB4dVdVIbw"
{
"@context": "https://openactive.io/",
"@type": "Order",
"orderProposalVersion": "https://localhost:5001/api/openbooking/order-proposals/90c1b3e0-886b-4cdc-a438-81562c12d55d/versions/aa5905fb-265b-4864-ab85-6bed849071e9",
"payment": {
"@type": "Payment",
"identifier": "1cXNbQ4cq",
"name": "AcmeBroker Points",
"accountId": "SN1593",
"paymentProviderId": "STRIPE"
}
}
Response status code: 500 Internal Server Error. Responded in 47.112455ms.
{
"@context": "https://openactive.io/",
"@type": "OrderProposalVersionOutdatedError",
"name": "B failed due to a newer version of the 'OrderProposal' existing than that specified by the Broker in 'orderProposalVersion'.",
"statusCode": 500
}
PUT https://localhost:5001/api/openbooking/orders/90c1b3e0-886b-4cdc-a438-81562c12d55d
"application/vnd.openactive.booking+json; version=1"
"Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkIwNEY3QjkxREUzQjk0NzhDNjE4MzNGQjI0QUE1Q0RCIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE3MzgzMjE0NDAsImV4cCI6MTczODMyNTA0MCwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiNWQ4ODNlMzAtMzRjYi00ZGZiLThhMGEtOGI0M2E0MGM1OTIwIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiNWQ4ODNlMzAtMzRjYi00ZGZiLThhMGEtOGI0M2E0MGM1OTIwIiwic3ViIjoiMTAwIiwiYXV0aF90aW1lIjoxNzM4MzIxNDM5LCJpZHAiOiJsb2NhbCIsImh0dHBzOi8vb3BlbmFjdGl2ZS5pby9zZWxsZXJJZCI6Imh0dHBzOi8vbG9jYWxob3N0OjUwMDEvYXBpL2lkZW50aWZpZXJzL3NlbGxlcnMvMSIsImp0aSI6Ijg3QUYxRjZCNDBBRjc4RDFGRTVBNUY2RDAwNDFBMUM2Iiwic2lkIjoiMEY1RTJGRjQxNDkyNUVBRTAzRTEyNkZCOEIxREUyMUYiLCJpYXQiOjE3MzgzMjE0NDAsInNjb3BlIjpbIm9wZW5pZCIsIm9wZW5hY3RpdmUtb3BlbmJvb2tpbmciLCJvcGVuYWN0aXZlLWlkZW50aXR5Iiwib2ZmbGluZV9hY2Nlc3MiXSwiYW1yIjpbInB3ZCJdfQ.cWPv2tg2JWBAhUL9-TGTBs-vBMg9tqWZz-AqpY8UbDyzFCqWAXDKvZsOxQ1VpF1vUooezUuboWDNXNSphlbCGRhcUNv59ON6CnkOfCzk5UGpdZJ6ZW5t3Kc_KXo5EWmtq5pM5NW4I37unmXRFRMEuvyMRho7VHYLSWFPb3Yt0Xc4E5IFu7glsqAfDXn3IVP891AtbDz2iwpOhjvPvJwu805QUOgRkoWl-0rg179AKa0v1woLPO6P5WCGOmvW91drLElzYwPgRBKVwXDCzJPdbts4jOQPxCBecyv9gkDKikETd5ETbP0pRWDU2J1r3S9EHWPv_uxksjg2AB4dVdVIbw"
{
"@context": "https://openactive.io/",
"@type": "Order",
"orderProposalVersion": "https://localhost:5001/api/openbooking/order-proposals/90c1b3e0-886b-4cdc-a438-81562c12d55d/versions/b5d34068-17c6-49e2-9f50-63ff1e7d06e3",
"payment": {
"@type": "Payment",
"identifier": "1cXNbQ4cq",
"name": "AcmeBroker Points",
"accountId": "SN1593",
"paymentProviderId": "STRIPE"
}
}
Response status code: 201 Created. Responded in 67.702755ms.
{
"@context": "https://openactive.io/",
"@type": "Order",
"@id": "https://localhost:5001/api/openbooking/orders/90c1b3e0-886b-4cdc-a438-81562c12d55d",
"identifier": "90c1b3e0-886b-4cdc-a438-81562c12d55d",
"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": "Osborne",
"givenName": "Sanford",
"telephone": "(220) 215-4536 x40864"
},
"orderedItem": [
{
"@type": "OrderItem",
"@id": "https://localhost:5001/api/openbooking/orders/90c1b3e0-886b-4cdc-a438-81562c12d55d#/orderedItems/10",
"acceptedOffer": {
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/offers/0",
"allowCustomerCancellationFullRefund": true,
"latestCancellationBeforeStartDate": "P1D",
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
},
"accessChannel": {
"@type": "VirtualLocation",
"name": "Zoom Video Chat",
"description": "Please log into Zoom a few minutes before the event",
"accessCode": "0158067059",
"accessId": "2771480022"
},
"orderedItem": {
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1658/events/16572",
"startDate": "2025-02-04T07:53:56+00:00",
"endDate": "2025-02-04T11:21:56+00:00",
"superEvent": {
"@type": "SessionSeries",
"@id": "https://localhost:5001/api/identifiers/session-series/1658",
"name": "Soft Zumba",
"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/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/1658"
},
"maximumAttendeeCapacity": 10,
"remainingAttendeeCapacity": 10
},
"orderItemStatus": "https://openactive.io/OrderItemConfirmed",
"unitTaxSpecification": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 1.474,
"priceCurrency": "GBP",
"rate": 0.2
}
]
}
],
"payment": {
"@type": "Payment",
"identifier": "1cXNbQ4cq",
"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/Optional",
"price": 7.37,
"priceCurrency": "GBP"
},
"totalPaymentTax": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 1.474,
"priceCurrency": "GBP",
"rate": 0.2
}
]
}
⚠️ $.description: Recommended property description
is missing from OrderProposalVersionOutdatedError
.
⚠️ $.instance: Recommended property instance
is missing from OrderProposalVersionOutdatedError
.
⚠️ $.orderedItem[0].accessCode: Recommended property accessCode
is missing from OrderItem
.
⚠️ $.orderedItem[0].accessPass: Recommended property accessPass
is missing from OrderItem
.
⚠️ $.orderedItem[0].acceptedOffer.name: Recommended property name
is missing from Offer
.
⚠️ $.orderedItem[0].acceptedOffer.ageRestriction: Recommended property ageRestriction
is missing from Offer
.
⚠️ $.orderedItem[0].orderedItem.eventStatus: Recommended property eventStatus
is missing from ScheduledSession
.
⚠️ $.orderedItem[0].orderedItem.superEvent.ageRange: Recommended property ageRange
is missing from SessionSeries
.
⚠️ $.orderedItem[0].orderedItem.superEvent.genderRestriction: Recommended property genderRestriction
is missing from SessionSeries
.
⚠️ $.orderedItem[0].orderedItem.superEvent.eventStatus: Recommended property eventStatus
is missing from SessionSeries
.
⚠️ $.seller.email: Recommended property email
is missing from Organization
.
⚠️ $.seller.url: Recommended property url
is missing from Organization
.
⚠️ $.seller.logo: Recommended property logo
is missing from Organization
.
⚠️ $.seller.vatID: Recommended property vatID
is missing from Organization
.
📝 $.orderedItem[0].orderedItem.genderRestriction: Data consumers will assume that there is no gender restriction when no valid genderRestriction
is supplied on a ScheduledSession
.
📝 $.orderedItem[0].orderedItem.ageRange: Data consumers will assume that the ageRange
is 18+ when not specified.
📝 $.orderedItem[0].orderedItem.eventStatus: Data consumers will assume the eventStatus
is scheduled if not specified or invalid.
📝 $.orderedItem[0].orderedItem.superEvent.genderRestriction: Data consumers will assume that there is no gender restriction when no valid genderRestriction
is supplied on a SessionSeries
.
📝 $.orderedItem[0].orderedItem.superEvent.ageRange: Data consumers will assume that the ageRange
is 18+ when not specified.
📝 $.orderedItem[0].orderedItem.superEvent.eventStatus: Data consumers will assume the eventStatus
is scheduled if not specified or invalid.
GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Fscheduled-sessions%2F1658%2Fevents%2F16572?useCacheIfAvailable=true&expectedCapacity=9
Response status code: 200 OK. Responded in 4.566191ms.
{
"data": {
"@context": [
"https://openactive.io/"
],
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1658/events/16572",
"startDate": "2025-02-04T07:53:56+00:00",
"endDate": "2025-02-04T11:21:56+00:00",
"superEvent": {
"@type": "SessionSeries",
"@id": "https://localhost:5001/api/identifiers/session-series/1658",
"identifier": 1658,
"name": "GOLDEN: Soft Zumba",
"activity": [
{
"@type": "Concept",
"@id": "https://openactive.io/activity-list#78503fa2-ed24-4a80-a224-e2e94581d8a8",
"inScheme": "https://openactive.io/activity-list",
"prefLabel": "Zumba®"
}
],
"eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
"offers": [
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
}
],
"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": "07472 067840",
"termsOfService": [
{
"@type": "PrivacyPolicy",
"name": "Privacy Policy",
"requiresExplicitConsent": false,
"url": "https://example.com/privacy.html"
}
],
"url": "http://maryam.info"
},
"url": "https://www.example.com/sessions/1658"
},
"duration": "PT3H28M",
"maximumAttendeeCapacity": 10,
"remainingAttendeeCapacity": 9
}
}
GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Fscheduled-sessions%2F1658%2Fevents%2F16572?useCacheIfAvailable=true&expectedCapacity=9
Response status code: 200 OK. Responded in 5.514843ms.
{
"data": {
"@context": [
"https://openactive.io/"
],
"@type": "ScheduledSession",
"@id": "https://localhost:5001/api/identifiers/scheduled-sessions/1658/events/16572",
"startDate": "2025-02-04T07:53:56+00:00",
"endDate": "2025-02-04T11:21:56+00:00",
"superEvent": {
"@type": "SessionSeries",
"@id": "https://localhost:5001/api/identifiers/session-series/1658",
"identifier": 1658,
"name": "GOLDEN: Soft Zumba",
"activity": [
{
"@type": "Concept",
"@id": "https://openactive.io/activity-list#78503fa2-ed24-4a80-a224-e2e94581d8a8",
"inScheme": "https://openactive.io/activity-list",
"prefLabel": "Zumba®"
}
],
"eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
"offers": [
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
},
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/session-series/1658#/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": "P1D",
"openBookingFlowRequirement": [
"https://openactive.io/OpenBookingApproval",
"https://openactive.io/OpenBookingNegotiation"
],
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 7.37,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P13DT23H8M"
}
],
"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": "07472 067840",
"termsOfService": [
{
"@type": "PrivacyPolicy",
"name": "Privacy Policy",
"requiresExplicitConsent": false,
"url": "https://example.com/privacy.html"
}
],
"url": "http://maryam.info"
},
"url": "https://www.example.com/sessions/1658"
},
"duration": "PT3H28M",
"maximumAttendeeCapacity": 10,
"remainingAttendeeCapacity": 9
}
}
"@type": "OrderProposalVersionOutdatedError"
with status code 500
⚠️ $.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.