|
300 | 300 | that have previously been identified and discussed with the OpenActive |
301 | 301 | community. |
302 | 302 |
|
303 | | -The focus of the initial versions of this specification will be on the simplest use cases that will support making bookings on behalf of users. This core functionality includes: |
| 303 | +The focus of the initial versions of this specification will be on the simplest use cases that will support making bookings on behalf of users. |
| 304 | + |
| 305 | +The core functionality includes: |
304 | 306 |
|
305 | 307 | * __Guest checkout__ – making a booking on behalf of a <a>Customer</a> who is assumed to be unknown to the <a>Booking System</a> and <a>Seller</a>, and who does not expect a persistent account to be created for them with the <a>Seller</a>. |
306 | 308 | * __Pricing and availability__ – checking the price and current availabilty of an event or for the use of a facility. |
307 | | -* __Leasing__ – temporarily reserving spaces for a user to attend an event or |
308 | | -make use of a facility, whilst placing a booking |
309 | | -* __Booking__ – placing and viewing bookings, and where necessary, confirming |
310 | | -receipt of payment from users |
| 309 | +* __Booking__ – recording bookings in the <a>Booking System</a>. |
311 | 310 | * __Tax__ – tax calculation by the <a>Booking System</a> exposed to the <a>Broker</a>. |
312 | | -* __Multiple order items__ - handling bookings for multiple events ("shopping carts") and for groups of users |
313 | | -* __Child booking__ - booking on behalf of a child |
314 | | -* __Dynamic pricing__ – allowing the <a>Broker</a> to vary pricing, where agreed with the <a>Seller</a> |
315 | | -* __Booking approval__ – optional approval for <a>Booking Systems</a> that support or require approval for bookings |
316 | | -* __Cancellation__ – <a>Customer</a> and <a>Seller</a> initiated cancellation |
317 | | -* __Access control__ - text, images and barcodes that can be used by the <a>Customer</a> to access the activity |
| 311 | +* __Multiple order items__ - handling bookings for multiple events ("shopping carts") and for groups of users. |
| 312 | +* __Child booking__ - booking on behalf of a child. |
| 313 | +* __Dynamic pricing__ – allowing the <a>Broker</a> to vary pricing, where agreed with the <a>Seller</a>. |
| 314 | +* __Cancellation__ – <a>Customer</a> and <a>Seller</a> initiated cancellation . |
| 315 | +* __Access control__ - text, images and barcodes that can be used by the <a>Customer</a> to access the activity. |
| 316 | + |
| 317 | +Additional optional functionality includes: |
| 318 | + |
| 319 | +* __Leasing__ – temporarily reserving spaces for a user to attend an event or |
| 320 | +make use of a facility, whilst placing a booking. |
| 321 | +* __Booking approval__ – optional approval for <a>Booking Systems</a> that support or require approval for bookings. |
| 322 | + |
318 | 323 |
|
319 | 324 | ### Out of Scope in this version |
320 | 325 |
|
|
1138 | 1143 |
|
1139 | 1144 | <div class="issue" data-number="95"></div> |
1140 | 1145 |
|
1141 | | -## Extension point for including payments |
1142 | | - |
1143 | | -In some limited circumstances it might also be desirable for an Open Booking API to act as a facade over a <a>Booking System</a>, Payment Processor, and Invoicing systems. For these circumstances the specification allows the API defined here to be extended via additional OPTIONAL properties in the `Payment` type used in `B` in a custom namespace, to facilitate a full payment. |
1144 | | - |
1145 | | -<pre class="example" title="Example of Payment extension point"> |
1146 | | - "payment": { |
1147 | | - "type": "Payment", |
1148 | | - "identifier": "12345678ABCD", |
1149 | | - "paymentMethod": "stripe:StripePayment", |
1150 | | - "stripe:token": "tok_KPte7942xySKBKyrBu11yEpf" |
1151 | | - }, |
1152 | | -</pre> |
1153 | | - |
1154 | | -Note that due to the variety of business models available in the OpenActive ecosystem, conformance to this specification requires that the use of any native payment functionality in the <a>Booking System</a> be optional, and the <a>Booking System</a> MUST always accept a lack of `paymentMethod` as indication of an external <a>Payment Processor</a> being used. To maximise flexibility of this extension point, `identifier` and `name` within `Payment` are NOT REQUIRED if `paymentMethod` is specified. |
1155 | | - |
1156 | 1146 |
|
1157 | 1147 | ## Access control |
1158 | 1148 |
|
1159 | | -For opportunities based at locations that have access control, it is RECOMMENDED that `OrderItem` include unique access control data within `accessCode` and `accessToken`. An `accessCode` SHOULD be provided for manual use in the event that an `accessToken` fails. |
| 1149 | +For opportunities based at locations that have access control, it is REQUIRED that `OrderItem` include unique access control data within `accessCode` and `accessToken`. An `accessCode` SHOULD be provided for manual use in the event that an `accessToken` fails. |
1160 | 1150 |
|
1161 | 1151 | ### Text-based access control |
1162 | 1152 |
|
|
1213 | 1203 | ], |
1214 | 1204 | </pre> |
1215 | 1205 |
|
| 1206 | + |
| 1207 | +## Extension point for including payments |
| 1208 | + |
| 1209 | +In some limited circumstances it might also be desirable for an Open Booking API to act as a facade over a <a>Booking System</a>, Payment Processor, and Invoicing systems. For these circumstances the specification allows the API defined here to be extended via additional OPTIONAL properties in the `Payment` type used in `B` in a custom namespace, to facilitate a full payment. |
| 1210 | + |
| 1211 | +<pre class="example" title="Example of Payment extension point"> |
| 1212 | + "payment": { |
| 1213 | + "type": "Payment", |
| 1214 | + "identifier": "12345678ABCD", |
| 1215 | + "paymentMethod": "stripe:StripePayment", |
| 1216 | + "stripe:token": "tok_KPte7942xySKBKyrBu11yEpf" |
| 1217 | + }, |
| 1218 | +</pre> |
| 1219 | + |
| 1220 | +Note that due to the variety of business models available in the OpenActive ecosystem, conformance to this specification requires that the use of any native payment functionality in the <a>Booking System</a> be optional, and the <a>Booking System</a> MUST always accept a lack of `paymentMethod` as indication of an external <a>Payment Processor</a> being used. To maximise flexibility of this extension point, `identifier` and `name` within `Payment` are NOT REQUIRED if `paymentMethod` is specified. |
| 1221 | + |
1216 | 1222 | </section> |
1217 | 1223 |
|
1218 | 1224 |
|
|
0 commit comments