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 ordersBookingMode 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
}
}