Card promotions

Card Promotions allow discounted tickets to be made available to customers who pay with a specific Card provider e.g. VISA or Mastercard.

Retrieving available card promotions

Connect will provide information on any promotions available for the specific session in the GetTicketsForSession call in the CardPaymentPromotions property.

GET: /RESTData.svc/cinemas//sessions//tickets

[{
    "CinemaId": "004",
    "TicketTypeCode": "0191",
    "AreaCategoryCode": "0000000001",
    "Description": "Visa Discount Ticket",
    "PriceInCents": 750,
    "IsCardPaymentPromotionTicket": true,
    "CardPaymentPromotions": [
        {
            "Id": "0000000035",
            "Name": "Visa",
            "Cards": [
                {
                    "CardDefinitionId": "VS00000001",
                    "CardType": "VISA",
                    "BrandName": "VISA",
                    "RangeStart": 400000,
                    "RangeEnd": 500000,
                    "SubBrandId": null,
                    "SubBrandName": "",
                    "SubBrandDigits": ""
                }
            ]
        }
    ]
}]

When returning the current order the available card promotions are also returned in the PromotionCards property.

GET: /orders/

{
    "Order": {
        "UserSessionId": "b47e5287860b9c906125343c8dab09c2",
        "CinemaId": "004",
        "TotalValueCents": 750,
        "TotalOrderCount": 1,
        "Sessions": [
            {
                "CinemaId": "004",
                "SessionId": 3107,
                "Tickets": [
                    {
                        "Id": "1",
                        "TicketTypeCode": "0191",
                        "PriceCents": 750,
                        "Description": "Visa Discount Ticket",
                        "SeatNumber": "10",
                        "SeatRowId": "P",
                        "DealPriceCents": 750
                    }
                ],
                "FilmTitle": "Casablanca",
                "ShowingRealDateTimeOffset": "2018-11-16T16:05:00.0000000+12:00"
            }
        ],       
        "HasCardPaymentPromotionTickets": true,
        "PromotionCards": [
            {
                "CardDefinitionId": "VS00000001",
                "CardType": "VISA",
                "BrandName": "VISA",
                "RangeStart": 400000,
                "RangeEnd": 500000,
                "SubBrandId": null,
                "SubBrandName": "",
                "SubBrandDigits": ""
            }
        ]
    }
}

Validating the card payment

In order to purchase the ticket the order must be paid with a matching card. This is validated by CompleteOrder which means both external payment and payment via cinema payment connector are supported. A specific error code is returned if this validation fails.

Ideally any payment user interface should also enforce this validation and provide appropriate feedback to customer before the CompleteOrder call is made.

Web Payment Module redirect payments offer no point to apply validation and are currently not compatible with card promotions.