Swapping seats

Once a booking has been made, you can move one or more booked seats in a session using the SwapSeats endpoint.

This endpoint currently has the following restrictions:

  • Seats can only be swapped to those in the same session and the same area category
  • Seats booked in an unpaid booking cannot be swapped
  • Bookings with in-seat delivery configured cannot have their seats swapped
  • All tickets within a package must be swapped in one call
  • You cannot swap to seats already assigned to a booking

Before making a call to SwapSeats, call the GetSingleBooking to return tickets and associated seats, including any package-relationship, for a booking.

POST /RESTBooking.svc/booking

Response:

{
    "ResultCode": 0,
    "Booking": {
        "BookingNumber": 3638,
        "BookingId": "WPM8TS9",
        "VistaTransactionId": 3679,
        "TotalValueCents": 2000,
        "Tickets": [
            {
                "TicketTypeCode": "0001",
                "TicketSequenceNumber": 1,
                "SessionId": 35626,
                "PriceInCents": 1000,
                "Description": "Adult",
                "PackageGroupNumber": 1,
                "SeatRowId": "G",
                "SeatNumber": "16",
            },
            {
                "TicketTypeCode": "0001",
                "TicketSequenceNumber": 2,
                "SessionId": 35626,
                "PriceInCents": 1000,
                "Description": "Adult",
                "PackageGroupNumber": 2,
                "SeatRowId": "G",
                "SeatNumber": "17",
            }
        ]
    }
}

A single call to SwapSeats can move booked seats to other free seats in the session.

POST: /cinemas//bookings//swap-seats

{
  "swaps": [
    {
      "ticketSequenceNumber": 1,
      "newSeat": {
        "areaNumber": 2,
        "rowIndex": 5,
        "columnIndex": 11
      }
    },
    {
      "ticketSequenceNumber": 2,
      "newSeat": {
        "areaNumber": 2,
        "rowIndex": 5,
        "columnIndex": 12
      }
    }
  ]
}

If the specified seats are available and no other restrictions are encountered, a 200-level successful response will be returned. Consult the API Reference for details.