Ordering tickets
Each showtime has a collection of available ticket types that can be purchased. Use the GetTicketPricesForShowtime endpoint to load the available ticket types and prices for a showtime.
{
"ticketPrices": [
{
"ticketTypeId": "0000000003-0022",
"price": {
"valueIncludingTax": 19.5,
"valueExcludingTax": 16.24,
"tax": 3.26
},
"isDefault": true,
"bookingFee": null,
"restrictions": [],
"rewardId": null,
"voucherTypeCodes": [],
"thirdPartyMemberSchemeId": null,
"isShownAsPreviewWhenRestricted": false,
"displayPriority": 1,
"subscriptionId": null,
"discountId": null,
"discount": null
},
{
"ticketTypeId": "0000000003-0022",
"price": {
"valueIncludingTax": 9.75,
"valueExcludingTax": 8.12,
"tax": 1.63
},
"isDefault": false,
"bookingFee": null,
"restrictions": ["Discount"],
"rewardId": null,
"voucherTypeCodes": [],
"thirdPartyMemberSchemeId": null,
"isShownAsPreviewWhenRestricted": false,
"displayPriority": 1,
"subscriptionId": null,
"discountId": "0000000003-0000000004",
"discount": {
"calculation": {
"percentageOff": 50.0,
"type": "PercentageOff"
},
"amountSaved": {
"valueIncludingTax": 9.75,
"valueExcludingTax": 8.12,
"tax": 1.63
}
}
}
]
}Ticket types and prices
Each price returned in ticketPrices represents a potential price for a ticket. The price includes the
actual price of the ticket as well as details as to what special conditions (restrictions) are required for purchase.
The details of the ticket type itself (including the name, description, and areaCategoryId) are returned in the
relatedData section. This data should be combined with the pricing data to present the ticket selection interface.
Restrictions
The restrictions property of the price indicates a special requirement the patron must fulfil in order to be eligible
for the price. These restrictions are:
-
Member- patron must be an authenticated loyalty member. -
MemberReward- patron must be an authenticated loyalty member and have an associated reward against their membership. -
MemberSubscriptionCard- patron must be an authenticated loyalty member and have access to an active subscription. -
ThirdPartyMemberCard- patron must enter 3rd-party membership card details. -
Voucher- patron must enter a voucher barcode. -
Discount- discount identifier must be provided for the discounted price.
Clients must have custom handling for each restriction for users to be able to purchase the ticket for a specific price. If the client has not been built to handle a certain restriction, that restriction's price should be hidden from the interface until it can be implemented.
As well as hiding unsupported ticket prices, the client may disable/enable certain prices based on the currently-signed-in
Loyalty member, and/or any vouchers and cards the patron has applied to the order. The
isShownAsPreviewWhenRestricted property can be used to determine if a price is intended to be visible to a patron before they
qualify or only appear afterwards.
Clients may implement their own logic based on known ticket pricing configuration to automatically favour one ticket price over another or potentially even auto-select the ticket prices if appropriate.
Expected error responses
When submitting ticketing requests the errorCode property of the 400 response should be inspected for expected
validation scenarios. The following example describes that happens when the number of sets requested are not available for the showtime.
{
"errorCode": 10000,
"status": 400,
"title": "Seats unavailable",
"detail": "There are not enough seats available for requested tickets."
}Member tickets
-
When a price has a
Memberrestriction it means the ticket is only available to loyalty members. - The API will only accept orders for member tickets when the member authentication token/cookie is provided.
Member reward tickets
-
When a price has a
MemberRewardrestriction it means the ticket is only available to loyalty members. -
The
rewardIdproperty of the price must be checked against the available rewards returned from the member rewards endpoint. -
The
availableQuantityof the member's reward as well as thelimitPerOrderon the reward itself must be taken into account when presenting the amount of tickets available at this price.
Member subscription tickets
-
When a price has a
MemberSubscriptionCardrestriction it means the ticket is only available to loyalty members with access to an active subscription card. -
A member may have access to multiple subscription cards, as
member friends
may have shared their subscription with the member. Use the
GetMemberTicketRedemptionCards
endpoint to get the
MemberSubscriptionCardentities available to the authenticated member. -
The
subscriptionIdproperty of the price indicates the subscription required to purchase this ticket. - These tickets should be hidden/disabled until the patron has added their subscription card to the order via the AddTicketRedemptionCard endpoint.
Third-party member tickets
-
When a price has a
ThirdPartyMemberCardrestriction it means the ticket is only available if the patron provides their card details for the specified 3rd-party provider. -
The
thirdPartyMemberSchemeIdproperty of the ticket type indicates the 3rd-party schema the ticket is for. - Typically these tickets are hidden/disabled until the patron has added their 3rd party card to the order via the AddTicketRedemptionCard endpoint.
Voucher tickets
-
When a price has a
Voucherrestriction it means the ticket is only available if the patron provides a voucher code. -
The
voucherTypeCodesproperty of the price indicates which vouchers this ticket is available for. - Vouchers are added using the AddVoucher endpoint.
Discounted tickets
-
When a price has a
Discountrestriction it means the ticket is only available via a discount. -
The
discountIdproperty indicates the discount required to purchase this ticket price. -
The
discountproperty describes the actual amount to be saved by purchasing with the discount. -
Discount details are available in the
relatedDatasection of the response. - Discounts have their own set of restrictions which work similar to the ticket price restrictions
Discount restrictions
-
MemberReward(patron must be an authenticated loyalty member and have an associated reward against their membership).
NOTE
The Voucher and Availability restrictions do not currently apply to ticket price discounts.
Package tickets
Package tickets combine one or more individual tickets and food and beverage items into a single ticket which typically offers a saving.
Use cases include:
- A 'family pass' - two adult tickets and two child tickets for a discounted price.
- A 'two for one' package - two tickets for the price of one standard ticket.
- A 'food & drink' package - a ticket, popcorn, and drink combo.
{
"type": "Package",
"tickets": [
{
"ticketTypeId": "0000000003-0022",
"quantity": 2
},
{
"ticketTypeId": "0000000003-0024",
"quantity": 2
}
],
"items": [
{
"itemId": "0000000003-12",
"quantity": 1
}
],
"id": "0000000003-0059",
"description": {
"text": "Family Pass"
}
}The relatedData property of the ticket price response should include all the details of items and tickets within a
package needed to render the full details.
The package ticket is purchased in the same way as a normal ticket (using the SetShowtime endpoint) although with a potentially larger number of seat selections (one seat for each ticket included in the package).
{
"tickets": [
{
"ticketTypeId": "0000000003-0059"
}
],
"seats": ["1_7_11", "1_7_13", "1_7_14", "1_7_15"]
}NOTE
Food and beverage items purchased via a package ticket lack the full customisation options of regular items, meaning features such as item modifiers, parent sales items, and item comments are not supported.