< Return to Summary | File Generated: Fri Jan 31 2025 11:29:08 GMT+0000 (Coordinated Universal Time)
Booking Flow: OpenBookingSimpleFlow
Opportunity Type: IndividualFacilityUseSlot
Feature: Payment / prepayment optional (Implemented)
Test: IncompletePaymentDetailsError must be returned in the case that payment identifier
is not supplied
An unsuccessful end to end booking, because identifier
is missing in the payment
property in B request.
npm start -- --runInBand test/features/payment/prepayment-optional/implemented/opportunity-paid-incomplete-payment-details-test.js
The OpenActive Reference Implementation test result for this test can be used as a reference to help with debugging.
⚠️ 14 passed with 0 failures, 56 warnings and 0 suggestions
POST http://localhost:3000/test-interface/datasets/uat-ci/opportunities
{
"@type": "Slot",
"facilityUse": {
"@type": "IndividualFacilityUse",
"provider": {
"@type": "Organization",
"@id": "https://localhost:5001/api/identifiers/sellers/1"
}
},
"@context": [
"https://openactive.io/",
"https://openactive.io/test-interface"
],
"test:testOpportunityCriteria": "https://openactive.io/test-interface#TestOpportunityBookableNonFreePrepaymentOptional",
"test:testOpenBookingFlow": "https://openactive.io/test-interface#OpenBookingSimpleFlow"
}
Response status code: 200 OK. Responded in 19.394428ms.
{
"@context": "https://openactive.io/",
"@type": "Slot",
"@id": "https://localhost:5001/api/identifiers/facility-uses/338/individual-facility-uses/8/slots/3379"
}
GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Ffacility-uses%2F338%2Findividual-facility-uses%2F8%2Fslots%2F3379?useCacheIfAvailable=true
Response status code: 200 OK. Responded in 9.032084ms.
{
"data": {
"@context": [
"https://openactive.io/"
],
"@type": "Slot",
"@id": "https://localhost:5001/api/identifiers/facility-uses/338/individual-facility-uses/8/slots/3379",
"identifier": 3379,
"duration": "PT3H26M",
"facilityUse": {
"@type": "IndividualFacilityUse",
"@id": "https://localhost:5001/api/identifiers/facility-uses/338/individual-facility-uses/8",
"name": "Court 8 at Concrete Cricket Net",
"aggregateFacilityUse": {
"@type": "FacilityUse",
"@id": "https://localhost:5001/api/identifiers/facility-uses/338",
"identifier": 338,
"name": "Concrete Cricket Net",
"facilityType": [
{
"@type": "Concept",
"@id": "https://openactive.io/facility-types#2d333183-6a6d-4a95-aad4-c5699f705b14",
"inScheme": "https://openactive.io/facility-types",
"prefLabel": "Cricket Net"
}
],
"location": {
"@type": "Place",
"@id": "https://example.com/place/1",
"identifier": 1,
"name": "Post-ercise Plaza",
"description": "Sorting Out Your Fitness One Parcel Lift at a Time! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
"address": {
"@type": "PostalAddress",
"addressCountry": "GB",
"addressLocality": "Oxford",
"addressRegion": "Oxfordshire",
"postalCode": "OX1 1AA",
"streetAddress": "Kings Mead House"
},
"amenityFeature": [
{
"@type": "ChangingFacilities",
"name": "Changing Facilities",
"value": true
},
{
"@type": "Showers",
"name": "Showers",
"value": true
},
{
"@type": "Lockers",
"name": "Lockers",
"value": true
},
{
"@type": "Towels",
"name": "Towels",
"value": false
},
{
"@type": "Creche",
"name": "Creche",
"value": false
},
{
"@type": "Parking",
"name": "Parking",
"value": false
}
],
"geo": {
"@type": "GeoCoordinates",
"latitude": 51.7502,
"longitude": -1.2674
},
"image": [
{
"@type": "ImageObject",
"url": "https://upload.wikimedia.org/wikipedia/commons/e/e5/Oxford_StAldates_PostOffice.jpg"
}
],
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"closes": "17:30",
"dayOfWeek": [
"https://schema.org/Sunday"
],
"opens": "09:00"
},
{
"@type": "OpeningHoursSpecification",
"closes": "21:30",
"dayOfWeek": [
"https://schema.org/Monday"
],
"opens": "06:30"
},
{
"@type": "OpeningHoursSpecification",
"closes": "21:30",
"dayOfWeek": [
"https://schema.org/Tuesday"
],
"opens": "06:30"
},
{
"@type": "OpeningHoursSpecification",
"closes": "21:30",
"dayOfWeek": [
"https://schema.org/Wednesday"
],
"opens": "06:30"
},
{
"@type": "OpeningHoursSpecification",
"closes": "21:30",
"dayOfWeek": [
"https://schema.org/Thursday"
],
"opens": "06:30"
},
{
"@type": "OpeningHoursSpecification",
"closes": "21:30",
"dayOfWeek": [
"https://schema.org/Friday"
],
"opens": "06:30"
},
{
"@type": "OpeningHoursSpecification",
"closes": "17:30",
"dayOfWeek": [
"https://schema.org/Saturday"
],
"opens": "09:00"
}
],
"telephone": "01865 000001",
"url": "https://en.wikipedia.org/wiki/Post_Office_Limited"
},
"provider": {
"@type": "Organization",
"@id": "https://localhost:5001/api/identifiers/sellers/1",
"name": "Acme Fitness Ltd",
"isOpenBookingAllowed": true,
"sameAs": [
"https://socialmedia.com/AcmeFitnessLtd"
],
"taxMode": "https://openactive.io/TaxGross",
"telephone": "08930 793393",
"termsOfService": [
{
"@type": "PrivacyPolicy",
"name": "Privacy Policy",
"requiresExplicitConsent": false,
"url": "https://example.com/privacy.html"
}
],
"url": "https://alec.net"
},
"url": "https://www.example.com/facilities/338"
}
},
"maximumUses": 1,
"offers": [
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/facility-uses/338/individual-facility-uses/8/slots/3379#/offers/0",
"acceptedPaymentMethod": [
"http://purl.org/goodrelations/v1#Cash",
"http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
],
"allowCustomerCancellationFullRefund": true,
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 13.03,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P11DT6H42M"
}
],
"remainingUses": 1,
"startDate": "2025-02-02T17:12:56+00:00",
"endDate": "2025-02-02T20:38:56+00:00"
}
}
description
is missing from IndividualFacilityUse
.image
is missing from IndividualFacilityUse
.hoursAvailable
is missing from IndividualFacilityUse
.description
is missing from FacilityUse
.image
is missing from FacilityUse
.hoursAvailable
is missing from FacilityUse
.offers
is missing from FacilityUse
.name
is missing from Offer
.ageRestriction
is missing from Offer
.PUT https://localhost:5001/api/openbooking/order-quote-templates/2ca16ed3-abe9-455d-bf0e-eca13db2052e
"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/facility-uses/338/individual-facility-uses/8/slots/3379#/offers/0",
"orderedItem": "https://localhost:5001/api/identifiers/facility-uses/338/individual-facility-uses/8/slots/3379"
}
],
"payment": {
"@type": "Payment",
"name": "AcmeBroker Points",
"accountId": "SN1593",
"paymentProviderId": "STRIPE"
}
}
Response status code: 200 OK. Responded in 422.30362ms.
{
"@context": "https://openactive.io/",
"@type": "OrderQuote",
"@id": "https://localhost:5001/api/openbooking/order-quotes/2ca16ed3-abe9-455d-bf0e-eca13db2052e",
"lease": {
"@type": "Lease",
"leaseExpires": "2025-01-31T11:34:17+00:00"
},
"orderRequiresApproval": false,
"bookingService": {
"@type": "BookingService",
"name": "Acme booking system",
"termsOfService": [
{
"@type": "PrivacyPolicy",
"name": "Privacy Policy",
"requiresExplicitConsent": false,
"url": "https://example.com/privacy.html"
}
],
"url": "https://example.com"
},
"broker": {
"@type": "Organization",
"name": "MyFitnessApp",
"url": "https://myfitnessapp.example.com"
},
"brokerRole": "https://openactive.io/AgentBroker",
"orderedItem": [
{
"@type": "OrderItem",
"acceptedOffer": {
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/facility-uses/338/individual-facility-uses/8/slots/3379#/offers/0",
"allowCustomerCancellationFullRefund": true,
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 13.03,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P11DT6H42M"
},
"orderedItem": {
"@type": "Slot",
"@id": "https://localhost:5001/api/identifiers/facility-uses/338/individual-facility-uses/8/slots/3379",
"facilityUse": {
"@type": "IndividualFacilityUse",
"@id": "https://localhost:5001/api/identifiers/facility-uses/338/individual-facility-uses/8",
"aggregateFacilityUse": {
"@type": "FacilityUse",
"@id": "https://localhost:5001/api/identifiers/facility-uses/338",
"name": "Concrete Cricket Net",
"facilityType": [
{
"@type": "Concept",
"@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
"inScheme": "https://openactive.io/facility-types",
"prefLabel": "Squash Court"
}
],
"location": {
"@type": "Place",
"@id": "https://example.com/place/1",
"identifier": 1,
"name": "Post-ercise Plaza",
"description": "Sorting Out Your Fitness One Parcel Lift at a Time! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
"address": {
"@type": "PostalAddress",
"addressCountry": "GB",
"addressLocality": "Oxford",
"addressRegion": "Oxfordshire",
"postalCode": "OX1 1AA",
"streetAddress": "Kings Mead House"
},
"amenityFeature": [
{
"@type": "ChangingFacilities",
"name": "Changing Facilities",
"value": true
},
{
"@type": "Showers",
"name": "Showers",
"value": true
},
{
"@type": "Lockers",
"name": "Lockers",
"value": true
},
{
"@type": "Towels",
"name": "Towels",
"value": false
},
{
"@type": "Creche",
"name": "Creche",
"value": false
},
{
"@type": "Parking",
"name": "Parking",
"value": false
}
],
"geo": {
"@type": "GeoCoordinates",
"latitude": 51.7502,
"longitude": -1.2674
},
"image": [
{
"@type": "ImageObject",
"url": "https://upload.wikimedia.org/wikipedia/commons/e/e5/Oxford_StAldates_PostOffice.jpg"
}
],
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"closes": "17:30",
"dayOfWeek": [
"https://schema.org/Sunday"
],
"opens": "09:00"
},
{
"@type": "OpeningHoursSpecification",
"closes": "21:30",
"dayOfWeek": [
"https://schema.org/Monday"
],
"opens": "06:30"
},
{
"@type": "OpeningHoursSpecification",
"closes": "21:30",
"dayOfWeek": [
"https://schema.org/Tuesday"
],
"opens": "06:30"
},
{
"@type": "OpeningHoursSpecification",
"closes": "21:30",
"dayOfWeek": [
"https://schema.org/Wednesday"
],
"opens": "06:30"
},
{
"@type": "OpeningHoursSpecification",
"closes": "21:30",
"dayOfWeek": [
"https://schema.org/Thursday"
],
"opens": "06:30"
},
{
"@type": "OpeningHoursSpecification",
"closes": "21:30",
"dayOfWeek": [
"https://schema.org/Friday"
],
"opens": "06:30"
},
{
"@type": "OpeningHoursSpecification",
"closes": "17:30",
"dayOfWeek": [
"https://schema.org/Saturday"
],
"opens": "09:00"
}
],
"telephone": "01865 000001",
"url": "https://en.wikipedia.org/wiki/Post_Office_Limited"
},
"url": "https://example.com/events/338"
},
"name": "Court 8 at Concrete Cricket Net"
},
"maximumUses": 1,
"remainingUses": 1,
"startDate": "2025-02-02T17:12:56+00:00",
"endDate": "2025-02-02T20:38:56+00:00"
},
"position": 0,
"unitTaxSpecification": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 2.606,
"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": 13.03,
"priceCurrency": "GBP"
},
"totalPaymentTax": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 2.606,
"priceCurrency": "GBP",
"rate": 0.2
}
]
}
name
is missing from Offer
.ageRestriction
is missing from Offer
.duration
is missing from Slot
.description
is missing from IndividualFacilityUse
.image
is missing from IndividualFacilityUse
.hoursAvailable
is missing from IndividualFacilityUse
.description
is missing from FacilityUse
.image
is missing from FacilityUse
.hoursAvailable
is missing from FacilityUse
.offers
is missing from FacilityUse
.email
is missing from Organization
.url
is missing from Organization
.logo
is missing from Organization
.vatID
is missing from Organization
.GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Ffacility-uses%2F338%2Findividual-facility-uses%2F8%2Fslots%2F3379?useCacheIfAvailable=true&expectedCapacity=0
Response status code: 200 OK. Responded in 920.337488ms.
{
"state": "updated",
"id": "https://localhost:5001/api/identifiers/facility-uses/338/individual-facility-uses/8/slots/3379",
"modified": "1738322959588",
"data": {
"@context": [
"https://openactive.io/"
],
"@type": "Slot",
"@id": "https://localhost:5001/api/identifiers/facility-uses/338/individual-facility-uses/8/slots/3379",
"identifier": 3379,
"duration": "PT3H26M",
"facilityUse": {
"@type": "IndividualFacilityUse",
"@id": "https://localhost:5001/api/identifiers/facility-uses/338/individual-facility-uses/8",
"name": "Court 8 at Concrete Cricket Net",
"aggregateFacilityUse": {
"@type": "FacilityUse",
"@id": "https://localhost:5001/api/identifiers/facility-uses/338",
"identifier": 338,
"name": "Concrete Cricket Net",
"facilityType": [
{
"@type": "Concept",
"@id": "https://openactive.io/facility-types#2d333183-6a6d-4a95-aad4-c5699f705b14",
"inScheme": "https://openactive.io/facility-types",
"prefLabel": "Cricket Net"
}
],
"location": {
"@type": "Place",
"@id": "https://example.com/place/1",
"identifier": 1,
"name": "Post-ercise Plaza",
"description": "Sorting Out Your Fitness One Parcel Lift at a Time! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
"address": {
"@type": "PostalAddress",
"addressCountry": "GB",
"addressLocality": "Oxford",
"addressRegion": "Oxfordshire",
"postalCode": "OX1 1AA",
"streetAddress": "Kings Mead House"
},
"amenityFeature": [
{
"@type": "ChangingFacilities",
"name": "Changing Facilities",
"value": true
},
{
"@type": "Showers",
"name": "Showers",
"value": true
},
{
"@type": "Lockers",
"name": "Lockers",
"value": true
},
{
"@type": "Towels",
"name": "Towels",
"value": false
},
{
"@type": "Creche",
"name": "Creche",
"value": false
},
{
"@type": "Parking",
"name": "Parking",
"value": false
}
],
"geo": {
"@type": "GeoCoordinates",
"latitude": 51.7502,
"longitude": -1.2674
},
"image": [
{
"@type": "ImageObject",
"url": "https://upload.wikimedia.org/wikipedia/commons/e/e5/Oxford_StAldates_PostOffice.jpg"
}
],
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"closes": "17:30",
"dayOfWeek": [
"https://schema.org/Sunday"
],
"opens": "09:00"
},
{
"@type": "OpeningHoursSpecification",
"closes": "21:30",
"dayOfWeek": [
"https://schema.org/Monday"
],
"opens": "06:30"
},
{
"@type": "OpeningHoursSpecification",
"closes": "21:30",
"dayOfWeek": [
"https://schema.org/Tuesday"
],
"opens": "06:30"
},
{
"@type": "OpeningHoursSpecification",
"closes": "21:30",
"dayOfWeek": [
"https://schema.org/Wednesday"
],
"opens": "06:30"
},
{
"@type": "OpeningHoursSpecification",
"closes": "21:30",
"dayOfWeek": [
"https://schema.org/Thursday"
],
"opens": "06:30"
},
{
"@type": "OpeningHoursSpecification",
"closes": "21:30",
"dayOfWeek": [
"https://schema.org/Friday"
],
"opens": "06:30"
},
{
"@type": "OpeningHoursSpecification",
"closes": "17:30",
"dayOfWeek": [
"https://schema.org/Saturday"
],
"opens": "09:00"
}
],
"telephone": "01865 000001",
"url": "https://en.wikipedia.org/wiki/Post_Office_Limited"
},
"provider": {
"@type": "Organization",
"@id": "https://localhost:5001/api/identifiers/sellers/1",
"name": "Acme Fitness Ltd",
"isOpenBookingAllowed": true,
"sameAs": [
"https://socialmedia.com/AcmeFitnessLtd"
],
"taxMode": "https://openactive.io/TaxGross",
"telephone": "08930 793393",
"termsOfService": [
{
"@type": "PrivacyPolicy",
"name": "Privacy Policy",
"requiresExplicitConsent": false,
"url": "https://example.com/privacy.html"
}
],
"url": "https://alec.net"
},
"url": "https://www.example.com/facilities/338"
}
},
"maximumUses": 1,
"offers": [
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/facility-uses/338/individual-facility-uses/8/slots/3379#/offers/0",
"acceptedPaymentMethod": [
"http://purl.org/goodrelations/v1#Cash",
"http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
],
"allowCustomerCancellationFullRefund": true,
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 13.03,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P11DT6H42M"
}
],
"remainingUses": 0,
"startDate": "2025-02-02T17:12:56+00:00",
"endDate": "2025-02-02T20:38:56+00:00"
}
}
totalPaymentDue.openBookingPrepayment
'https://openactive.io/Optional
'description
is missing from IndividualFacilityUse
.image
is missing from IndividualFacilityUse
.hoursAvailable
is missing from IndividualFacilityUse
.description
is missing from FacilityUse
.image
is missing from FacilityUse
.hoursAvailable
is missing from FacilityUse
.offers
is missing from FacilityUse
.name
is missing from Offer
.ageRestriction
is missing from Offer
.PUT https://localhost:5001/api/openbooking/order-quotes/2ca16ed3-abe9-455d-bf0e-eca13db2052e
"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": "369-414-4324"
},
"orderedItem": [
{
"@type": "OrderItem",
"position": 0,
"acceptedOffer": "https://localhost:5001/api/identifiers/facility-uses/338/individual-facility-uses/8/slots/3379#/offers/0",
"orderedItem": "https://localhost:5001/api/identifiers/facility-uses/338/individual-facility-uses/8/slots/3379"
}
],
"payment": {
"@type": "Payment",
"name": "AcmeBroker Points",
"accountId": "SN1593",
"paymentProviderId": "STRIPE"
}
}
Response status code: 200 OK. Responded in 305.009155ms.
{
"@context": "https://openactive.io/",
"@type": "OrderQuote",
"@id": "https://localhost:5001/api/openbooking/order-quotes/2ca16ed3-abe9-455d-bf0e-eca13db2052e",
"lease": {
"@type": "Lease",
"leaseExpires": "2025-01-31T11:34:18+00:00"
},
"orderRequiresApproval": false,
"bookingService": {
"@type": "BookingService",
"name": "Acme booking system",
"termsOfService": [
{
"@type": "PrivacyPolicy",
"name": "Privacy Policy",
"requiresExplicitConsent": false,
"url": "https://example.com/privacy.html"
}
],
"url": "https://example.com"
},
"broker": {
"@type": "Organization",
"name": "MyFitnessApp",
"url": "https://myfitnessapp.example.com"
},
"brokerRole": "https://openactive.io/AgentBroker",
"customer": {
"@type": "Person",
"email": "[email protected]",
"telephone": "369-414-4324"
},
"orderedItem": [
{
"@type": "OrderItem",
"acceptedOffer": {
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/facility-uses/338/individual-facility-uses/8/slots/3379#/offers/0",
"allowCustomerCancellationFullRefund": true,
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 13.03,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P11DT6H42M"
},
"orderedItem": {
"@type": "Slot",
"@id": "https://localhost:5001/api/identifiers/facility-uses/338/individual-facility-uses/8/slots/3379",
"facilityUse": {
"@type": "IndividualFacilityUse",
"@id": "https://localhost:5001/api/identifiers/facility-uses/338/individual-facility-uses/8",
"aggregateFacilityUse": {
"@type": "FacilityUse",
"@id": "https://localhost:5001/api/identifiers/facility-uses/338",
"name": "Concrete Cricket Net",
"facilityType": [
{
"@type": "Concept",
"@id": "https://openactive.io/facility-types#a1f82b7a-1258-4d9a-8dc5-bfc2ae961651",
"inScheme": "https://openactive.io/facility-types",
"prefLabel": "Squash Court"
}
],
"location": {
"@type": "Place",
"@id": "https://example.com/place/1",
"identifier": 1,
"name": "Post-ercise Plaza",
"description": "Sorting Out Your Fitness One Parcel Lift at a Time! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
"address": {
"@type": "PostalAddress",
"addressCountry": "GB",
"addressLocality": "Oxford",
"addressRegion": "Oxfordshire",
"postalCode": "OX1 1AA",
"streetAddress": "Kings Mead House"
},
"amenityFeature": [
{
"@type": "ChangingFacilities",
"name": "Changing Facilities",
"value": true
},
{
"@type": "Showers",
"name": "Showers",
"value": true
},
{
"@type": "Lockers",
"name": "Lockers",
"value": true
},
{
"@type": "Towels",
"name": "Towels",
"value": false
},
{
"@type": "Creche",
"name": "Creche",
"value": false
},
{
"@type": "Parking",
"name": "Parking",
"value": false
}
],
"geo": {
"@type": "GeoCoordinates",
"latitude": 51.7502,
"longitude": -1.2674
},
"image": [
{
"@type": "ImageObject",
"url": "https://upload.wikimedia.org/wikipedia/commons/e/e5/Oxford_StAldates_PostOffice.jpg"
}
],
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"closes": "17:30",
"dayOfWeek": [
"https://schema.org/Sunday"
],
"opens": "09:00"
},
{
"@type": "OpeningHoursSpecification",
"closes": "21:30",
"dayOfWeek": [
"https://schema.org/Monday"
],
"opens": "06:30"
},
{
"@type": "OpeningHoursSpecification",
"closes": "21:30",
"dayOfWeek": [
"https://schema.org/Tuesday"
],
"opens": "06:30"
},
{
"@type": "OpeningHoursSpecification",
"closes": "21:30",
"dayOfWeek": [
"https://schema.org/Wednesday"
],
"opens": "06:30"
},
{
"@type": "OpeningHoursSpecification",
"closes": "21:30",
"dayOfWeek": [
"https://schema.org/Thursday"
],
"opens": "06:30"
},
{
"@type": "OpeningHoursSpecification",
"closes": "21:30",
"dayOfWeek": [
"https://schema.org/Friday"
],
"opens": "06:30"
},
{
"@type": "OpeningHoursSpecification",
"closes": "17:30",
"dayOfWeek": [
"https://schema.org/Saturday"
],
"opens": "09:00"
}
],
"telephone": "01865 000001",
"url": "https://en.wikipedia.org/wiki/Post_Office_Limited"
},
"url": "https://example.com/events/338"
},
"name": "Court 8 at Concrete Cricket Net"
},
"maximumUses": 1,
"remainingUses": 1,
"startDate": "2025-02-02T17:12:56+00:00",
"endDate": "2025-02-02T20:38:56+00:00"
},
"position": 0,
"unitTaxSpecification": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 2.606,
"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": 13.03,
"priceCurrency": "GBP"
},
"totalPaymentTax": [
{
"@type": "TaxChargeSpecification",
"name": "VAT at 20%",
"price": 2.606,
"priceCurrency": "GBP",
"rate": 0.2
}
]
}
name
is missing from Offer
.ageRestriction
is missing from Offer
.duration
is missing from Slot
.description
is missing from IndividualFacilityUse
.image
is missing from IndividualFacilityUse
.hoursAvailable
is missing from IndividualFacilityUse
.description
is missing from FacilityUse
.image
is missing from FacilityUse
.hoursAvailable
is missing from FacilityUse
.offers
is missing from FacilityUse
.email
is missing from Organization
.url
is missing from Organization
.logo
is missing from Organization
.vatID
is missing from Organization
.GET http://localhost:3000/opportunity/https%3A%2F%2Flocalhost%3A5001%2Fapi%2Fidentifiers%2Ffacility-uses%2F338%2Findividual-facility-uses%2F8%2Fslots%2F3379?useCacheIfAvailable=true&expectedCapacity=0
Response status code: 200 OK. Responded in 32.950235ms.
{
"data": {
"@context": [
"https://openactive.io/"
],
"@type": "Slot",
"@id": "https://localhost:5001/api/identifiers/facility-uses/338/individual-facility-uses/8/slots/3379",
"identifier": 3379,
"duration": "PT3H26M",
"facilityUse": {
"@type": "IndividualFacilityUse",
"@id": "https://localhost:5001/api/identifiers/facility-uses/338/individual-facility-uses/8",
"name": "Court 8 at Concrete Cricket Net",
"aggregateFacilityUse": {
"@type": "FacilityUse",
"@id": "https://localhost:5001/api/identifiers/facility-uses/338",
"identifier": 338,
"name": "Concrete Cricket Net",
"facilityType": [
{
"@type": "Concept",
"@id": "https://openactive.io/facility-types#2d333183-6a6d-4a95-aad4-c5699f705b14",
"inScheme": "https://openactive.io/facility-types",
"prefLabel": "Cricket Net"
}
],
"location": {
"@type": "Place",
"@id": "https://example.com/place/1",
"identifier": 1,
"name": "Post-ercise Plaza",
"description": "Sorting Out Your Fitness One Parcel Lift at a Time! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
"address": {
"@type": "PostalAddress",
"addressCountry": "GB",
"addressLocality": "Oxford",
"addressRegion": "Oxfordshire",
"postalCode": "OX1 1AA",
"streetAddress": "Kings Mead House"
},
"amenityFeature": [
{
"@type": "ChangingFacilities",
"name": "Changing Facilities",
"value": true
},
{
"@type": "Showers",
"name": "Showers",
"value": true
},
{
"@type": "Lockers",
"name": "Lockers",
"value": true
},
{
"@type": "Towels",
"name": "Towels",
"value": false
},
{
"@type": "Creche",
"name": "Creche",
"value": false
},
{
"@type": "Parking",
"name": "Parking",
"value": false
}
],
"geo": {
"@type": "GeoCoordinates",
"latitude": 51.7502,
"longitude": -1.2674
},
"image": [
{
"@type": "ImageObject",
"url": "https://upload.wikimedia.org/wikipedia/commons/e/e5/Oxford_StAldates_PostOffice.jpg"
}
],
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"closes": "17:30",
"dayOfWeek": [
"https://schema.org/Sunday"
],
"opens": "09:00"
},
{
"@type": "OpeningHoursSpecification",
"closes": "21:30",
"dayOfWeek": [
"https://schema.org/Monday"
],
"opens": "06:30"
},
{
"@type": "OpeningHoursSpecification",
"closes": "21:30",
"dayOfWeek": [
"https://schema.org/Tuesday"
],
"opens": "06:30"
},
{
"@type": "OpeningHoursSpecification",
"closes": "21:30",
"dayOfWeek": [
"https://schema.org/Wednesday"
],
"opens": "06:30"
},
{
"@type": "OpeningHoursSpecification",
"closes": "21:30",
"dayOfWeek": [
"https://schema.org/Thursday"
],
"opens": "06:30"
},
{
"@type": "OpeningHoursSpecification",
"closes": "21:30",
"dayOfWeek": [
"https://schema.org/Friday"
],
"opens": "06:30"
},
{
"@type": "OpeningHoursSpecification",
"closes": "17:30",
"dayOfWeek": [
"https://schema.org/Saturday"
],
"opens": "09:00"
}
],
"telephone": "01865 000001",
"url": "https://en.wikipedia.org/wiki/Post_Office_Limited"
},
"provider": {
"@type": "Organization",
"@id": "https://localhost:5001/api/identifiers/sellers/1",
"name": "Acme Fitness Ltd",
"isOpenBookingAllowed": true,
"sameAs": [
"https://socialmedia.com/AcmeFitnessLtd"
],
"taxMode": "https://openactive.io/TaxGross",
"telephone": "08930 793393",
"termsOfService": [
{
"@type": "PrivacyPolicy",
"name": "Privacy Policy",
"requiresExplicitConsent": false,
"url": "https://example.com/privacy.html"
}
],
"url": "https://alec.net"
},
"url": "https://www.example.com/facilities/338"
}
},
"maximumUses": 1,
"offers": [
{
"@type": "Offer",
"@id": "https://localhost:5001/api/identifiers/facility-uses/338/individual-facility-uses/8/slots/3379#/offers/0",
"acceptedPaymentMethod": [
"http://purl.org/goodrelations/v1#Cash",
"http://purl.org/goodrelations/v1#PaymentMethodCreditCard"
],
"allowCustomerCancellationFullRefund": true,
"openBookingPrepayment": "https://openactive.io/Optional",
"price": 13.03,
"priceCurrency": "GBP",
"validFromBeforeStartDate": "P11DT6H42M"
}
],
"remainingUses": 0,
"startDate": "2025-02-02T17:12:56+00:00",
"endDate": "2025-02-02T20:38:56+00:00"
}
}
totalPaymentDue.openBookingPrepayment
'https://openactive.io/Optional
'description
is missing from IndividualFacilityUse
.image
is missing from IndividualFacilityUse
.hoursAvailable
is missing from IndividualFacilityUse
.description
is missing from FacilityUse
.image
is missing from FacilityUse
.hoursAvailable
is missing from FacilityUse
.offers
is missing from FacilityUse
.name
is missing from Offer
.ageRestriction
is missing from Offer
.PUT https://localhost:5001/api/openbooking/orders/2ca16ed3-abe9-455d-bf0e-eca13db2052e
"application/vnd.openactive.booking+json; version=1"
"Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkIwNEY3QjkxREUzQjk0NzhDNjE4MzNGQjI0QUE1Q0RCIiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE3MzgzMjE0NDAsImV4cCI6MTczODMyNTA0MCwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NTAwMyIsImF1ZCI6Im9wZW5ib29raW5nIiwiY2xpZW50X2lkIjoiNWQ4ODNlMzAtMzRjYi00ZGZiLThhMGEtOGI0M2E0MGM1OTIwIiwiaHR0cHM6Ly9vcGVuYWN0aXZlLmlvL2NsaWVudElkIjoiNWQ4ODNlMzAtMzRjYi00ZGZiLThhMGEtOGI0M2E0MGM1OTIwIiwic3ViIjoiMTAwIiwiYXV0aF90aW1lIjoxNzM4MzIxNDM5LCJpZHAiOiJsb2NhbCIsImh0dHBzOi8vb3BlbmFjdGl2ZS5pby9zZWxsZXJJZCI6Imh0dHBzOi8vbG9jYWxob3N0OjUwMDEvYXBpL2lkZW50aWZpZXJzL3NlbGxlcnMvMSIsImp0aSI6Ijg3QUYxRjZCNDBBRjc4RDFGRTVBNUY2RDAwNDFBMUM2Iiwic2lkIjoiMEY1RTJGRjQxNDkyNUVBRTAzRTEyNkZCOEIxREUyMUYiLCJpYXQiOjE3MzgzMjE0NDAsInNjb3BlIjpbIm9wZW5pZCIsIm9wZW5hY3RpdmUtb3BlbmJvb2tpbmciLCJvcGVuYWN0aXZlLWlkZW50aXR5Iiwib2ZmbGluZV9hY2Nlc3MiXSwiYW1yIjpbInB3ZCJdfQ.cWPv2tg2JWBAhUL9-TGTBs-vBMg9tqWZz-AqpY8UbDyzFCqWAXDKvZsOxQ1VpF1vUooezUuboWDNXNSphlbCGRhcUNv59ON6CnkOfCzk5UGpdZJ6ZW5t3Kc_KXo5EWmtq5pM5NW4I37unmXRFRMEuvyMRho7VHYLSWFPb3Yt0Xc4E5IFu7glsqAfDXn3IVP891AtbDz2iwpOhjvPvJwu805QUOgRkoWl-0rg179AKa0v1woLPO6P5WCGOmvW91drLElzYwPgRBKVwXDCzJPdbts4jOQPxCBecyv9gkDKikETd5ETbP0pRWDU2J1r3S9EHWPv_uxksjg2AB4dVdVIbw"
{
"@context": "https://openactive.io/",
"@type": "Order",
"brokerRole": "https://openactive.io/AgentBroker",
"broker": {
"@type": "Organization",
"name": "MyFitnessApp",
"url": "https://myfitnessapp.example.com",
"description": "A fitness app for all the community",
"logo": {
"@type": "ImageObject",
"url": "http://data.myfitnessapp.org.uk/images/logo.png"
},
"address": {
"@type": "PostalAddress",
"streetAddress": "Alan Peacock Way",
"addressLocality": "Village East",
"addressRegion": "Middlesbrough",
"postalCode": "TS4 3AE",
"addressCountry": "GB"
}
},
"seller": "https://localhost:5001/api/identifiers/sellers/1",
"customer": {
"@type": "Person",
"email": "[email protected]",
"telephone": "369-414-4324"
},
"orderedItem": [
{
"@type": "OrderItem",
"position": 0,
"acceptedOffer": "https://localhost:5001/api/identifiers/facility-uses/338/individual-facility-uses/8/slots/3379#/offers/0",
"orderedItem": "https://localhost:5001/api/identifiers/facility-uses/338/individual-facility-uses/8/slots/3379"
}
],
"totalPaymentDue": {
"@type": "PriceSpecification",
"price": 13.03,
"priceCurrency": "GBP"
},
"payment": {
"@type": "Payment",
"name": "AcmeBroker Points",
"accountId": "SN1593",
"paymentProviderId": "STRIPE"
}
}
Response status code: 400 Bad Request. Responded in 222.167303ms.
{
"@context": "https://openactive.io/",
"@type": "IncompletePaymentDetailsError",
"name": "The 'payment' property of the 'Order' does not include 'identifier'.",
"statusCode": 400,
"description": "Payment must contain identifier for paid Order."
}
"@type": "IncompletePaymentDetailsError"
with status code 400
instance
is missing from IncompletePaymentDetailsError
.