3rd party member tickets
Through integration with 3rd party systems Vista can offer special ticket types to customers who happen to have accounts/memberships with the 3rd party. This system allows promotional and reward based ticket configuration to be done outside of Vista and applied at realtime.
In this scenario the customer provides a card number and the 3rd party provides the list of special tickets that currently can be purchased at that point in time.
Identifying member ticket types
The GetTicketsForSession endpoint will return the list of tickets available for a session. The IsThirdPartyMemberTicket
property will flag a ticket as a 3rd party ticket and the ThirdPartyMembershipName
will indicate the 3rd party system with which the ticket is integrated.
{
"ResponseCode": 0,
"ErrorDescription": null,
"Tickets": [
{
"CinemaId": "0000000001",
"TicketTypeCode": "0098",
"AreaCategoryCode": "0000000001",
"Description": "State Power Super Tuesday Ticket",
"IsThirdPartyMemberTicket": true,
"ThirdPartyMembershipName": "StatePower",
"PriceInCents": 500
}
]
}
Validating member card & ticket availablility
Card number and ticket availability will be valided when the ticket is added to the order which may suffice for simple 3rd party schemes.
If required though, a ValidateMemberTickets endpoint is available. This endpoint does specific validation and provides more detailed information required for the more complicated validations and approvals.
POST: /RESTTicketing.svc/order/validate/membertickets
{
"SessionId": "1234",
"UserSessionId": "a53ac319775849499dd04fd23a6c867b",
"CinemaId": "0001",
"TicketTypes": [
{
"TicketTypeCode": "0098",
"Qty": 3,
"ThirdPartyMemberScheme": {
"MemberCard": "93483089583",
"MemberDateOfBirth": "1967-05-16"
}
}
]
}
A requested ticket can be either be declined (ApprovedQty
= 0), partially approved (ApprovedQty
< requested quantity) or fully approved (ApprovedQty
= requested quantity).
The 3rd party may also change the price from the one returned in GetTicketsForSession with the ApprovedPriceInCents
property.
{
"MemberTicketApprovals": [
{
"TicketTypeCode": "0098",
"MemberProviderName": "StatePower",
"CardNumber": "93483089583",
"ApprovedPriceInCents": 600,
"ApprovedQty": 2
}
],
"Result": 0,
}
In this scenario even though the ticket was listed at 500 the 3rd party came back with a price of 600. The customer also requested 3 tickets but only 2 were approved.
Not all 3rd party systems will support the partial approval of quantity or price so clients should understand these expectations before building the member tickets UI.
Adding member tickets
Once validated (or if validation is not necessary based on rules of 3rd party) the tickets are added using the SetTickets or AddTickets endpoints.
POST: /orders/a53ac319775849499dd04fd23a6c867b/sessions/1234/set-tickets
{
"Tickets": [
{
"TicketDetails": {
"ticketTypeCode": "0098",
"thirdPartyMemberScheme": {
"memberCard": "93483089583",
"memberDateOfBirth": "1967-05-16"
},
},
}
]
}
Committing 3rd party tickets in 3rd party system
It is important to note that unlike voucher tickets or loyalty recognition tickets which also integrated with external systems, member ticket redemptions are committed at the 3rd Party System as soon as they are added to the order, not during order completion.
As such if any order is abandoned the customer may not be able to re-use the 3rd party ticket until the previous order was cancelled (which will reverse the commit in the 3rd party sytem).