|
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