Making unpaid bookings

An Unpaid Booking in Connect refers to orders that the customer will pay for later, rather than as part of the initial order process. Typically the customer will pay for the order when they pick it up at cinema, however it it can be paid for online and converted to a paid booking.

Using the unpaid booking modes

In order to create an Unpaid Booking the BookingMode of the order must be set to one of the unpaid booking modes during the ordering process. The modes are as follows:

  • BookingMode 1 (Unpaid) indicates that the customer intends to pay at a later date. If the customer has not picked up the tickets before a certain date (configurable at cinema- usually X minutes before session) the order may be cancelled and seats made available to other orders
  • BookingMode 3 (Confrmed Unpaid) indicates that the customer intents to pay at a later date however the customer's seats WILL NOT be re-assigned if not picked up by the specific date and can be used as a reward/benefit for the customer over the standard unpaid booking

These modes are available to set on the following endpoints:

  • AddTickets
  • SetTickets
  • AddConcessions
  • CompleteOrder
  • GetOrder

POST: /RESTTicketing.svc/order/tickets

{
    "UserSessionId": "a53ac319775849499dd04fd23a6c867b",
    "CinemaId": "0001",
    "SessionId": "345312",
    "TicketTypes": [
    {
        "TicketTypeCode": "0001",
        "Qty": 2
    }   ],
    "BookingMode": 1
}

The GetOrder call which will change the booking mode and return the order and pricing based on the specified mode.

POST: /RESTTicketing.svc/order

{
  "UserSessionId": "a53ac319775849499dd04fd23a6c867b",
  "ProcessOrderValue": true,
  "BookingMode": 1
}

Setting the BookingMode not only tells Connect that the order intended to be completed without payment but it can also affect the booking fees incurred for the order.

Completing an unpaid booking order

Completing an order as an unpaid booking is much the same as a standard order.

Note that in the CompleteOrder call PaymentInfo data must be provided and PerformPayment is set to false. This payment info is recorded solely to aid in finding and collecting the booking at POS.

POST: /RESTTicketing.svc/order/payment

Request:

{
    "PerformPayment": false,
    "UserSessionId": "a53ac319775849499dd04fd23a6c867b",
    "CustomerName": "Victor",
    "CustomerEmail": "victor.lazlo@email.com",
    "BookingMode": 1,
    "PaymentInfo": {
        "CardNumber": "411111......1111",
        "PaymentValueCents": 1875
    }
}

Response:

{
    "CinemaID": "0001",
    "ExtendedResultCode": 0,
    "HistoryID": "11351",
    "PaymentInfoCollection": [
        {
        "CardNumber": "411111......1111",
        "PaymentValueCents": 1875
        }
    ],
    "Result": 0,
    "VistaBookingId": "WKM5579",
    "VistaBookingNumber": "3735",
    "VistaTransNumber": "0"
}

Upon retrieving the booking via the GetBooking endpoint the IsPaid property should be false confirming the booking is unpaid.

POST: /RESTBooking.svc/booking

Response:

{
    "ResultCode": 0,
    "Booking": {
        "BookingNumber": 3735,
        "BookingId": "WKM5579",
        "VistaTransactionId": 0,
        "TotalValueCents": 1875,
        "IsPaid": false,
        "Payments": [],
        "PaymentsRefunded": [],
        "IsConfirmedUnpaidBooking": false,
    }
}

Updating unpaid bookings

Once an unpaid booking is made a special endpoint UpdateUnpaidBooking may be used to update certain values on the booking including changing the BookingMode from Unpaid to ConfirmedUnpaid

POST: /RESTBooking.svc/booking/unpaid/update

{
  "BookingNumber": 3735,
  "CinemaId": "0001",
  "BookingUpdate": {
    "BookingNotes": "Customer rang up saying they would be late",
    "IsConfirmedUnpaidBooking": true
  }
}