Completes an order and records completed (external) payments
Example Request for credit card payment
{
"payments": [
{
"paymentAmount": 22,
"cardPayment": {
"maskedCardNumber": "411111......1111",
"cardType": "VISA",
"cardExpiryMonth": "01",
"cardExpiryYear": "20"
}
}
]
}
Example Response:
{
"bookingId": "WHF4CJR",
"transactionId": "1234"
}
Example Request for non-credit card payment
{
"payments": [
{
"paymentAmount": 22
}
]
}
Example Response:
{
"bookingId": "WHF4CJR",
"transactionId": "1234"
}
Note
You must call the Set Customer Details endpoint with some combination of name, email address, and phone number prior to making this call.
Credit Card Numbers
Never send complete credit card numbers to the MX API. Always send the masked '6.4' version of the number.
cardPayment should only be supplied for credit card payments (examples of credit card and non-credit card payments are shown above). The maskedCardNumber of the cardPayment must be at least 15 characters long, padded with periods if required – for example, when passing the first 6 and last 4 characters of the card number use a format such as "411111.....1111".
The bookingId property on the response can be used to generate a barcode to allow the customer to collect the booking at the cinema site. You should contact the appropriate cinema chain to verify which barcode formats are supported by their barcode scanning hardware. QR Codes and Code 128 tend to be the more popular options for barcode format. Note that bookingIds may be reused over a period of time for a given site so should not be relied upon to be unique over long periods of time, however they are safe to be considered unique at a site level for ticketing purposes.
For Cinema Chains that have itemsOnlyOrdersEnabled set to true in Get Cinema Chains orders that contain only concession items and no tickets are supported.
For all other Cinema Chains, orders that contain only Items cannot be completed.
transactionId is only present in the response when the cinema chain has been configured within MX to expose this information. If present, transactionId is an identifier for the booking which will not be re-used within the scope of the site.
Timed-out Complete Order requests
In the case of a response indicating a remote cinema chain time out (HTTP Status Code 504) when attempting to complete an order, there is a possibility of the request actually completing successfully after the timeout has occurred due to potentially different timeout thresholds between the different tiers of cinema chain systems. As a result, if a 504 response is received when attempting to complete an order:
For cinema chains that have refunds / enabled set to true in Get Cinema Chains
- The request should not be re-tried.
- The order should be abandoned, and the end user taken through the order process again. Note that the seats selected in the timed-out order will not be available for re-selection until the order is automatically cleaned up.
- The MX platform will automatically check to see if the order was in fact completed by the underlying cinema chain and, if so, cancel and refund the order. This automated ‘checking and reversal’ process runs in the background and its state cannot be checked via the MX API.
For cinema chains that have refunds / enabled set to false in Get Cinema Chains
- Call Get Order for the applicable order.
- If the request to Get Order succeeds then it is safe to retry the complete order request.
- If the request to Get Order fails then it must be assumed that order was completed - you must contact the underlying cinema chain directly to arrange a cancellation as appropriate
License Requirements
MX Tickets