Member card wallet

The member card wallet stores re-usable payment tokens against a member. This allows the member to select a previously made card without having to re-enter the card details.

  • Vista stores the card token provided by the payment provider in the wallet, NOT the card number
  • Member Card Wallet is only supported for Cinema Connector Payments and only for payment providers that support card tokens
  • The card wallet does not handle token expiry itself, an expired token will simply result in a declined payment and the customer will have to re-store the card.
  • All card wallet actions are only available if an active loyalty session exists against the userSessionId

Storing a card in the wallet

To store a card to the wallet the SaveCardToWallet flag must be set on the payment during CompleteOrder. The payment connector will return a token representing the card upon successful payment which is stored in Vista.

POST: /RESTTicketing.svc/order/payment

{
    "PerformPayment": true,
    "UserSessionId": "b47e5287860b9c906125343c8dab09c2",
    "CustomerName": "Bette Davis",
    "CustomerEmail": "bette.davis@hollywood.org",
    "PaymentInfo": {
        "CardNumber": "4111111111111111",
        "CardCVC": "123",
        "CardExpiryMonth": "05",
        "CardExpiryYear": "23",
        "CardType": "VISA",
        "PaymentValueCents": 1000,
        "SaveCardToWallet":true,
    }
}

Retrieving stored cards

Any stored cards for a member can be returned via the GetCardWallet endpoint. The CardType and MaskedCardNumber should be enough for the customer to recognise and choose appropriately.

POST: /RESTTicketing.svc/wallet

Request:

{
  "UserSessionId": "b47e5287860b9c906125343c8dab09c2"
}

Response:

{
    "ResultCode": 0,
    "Cards": [
        {
            "AccessToken": "3C18ACCF-956C-44E7-B30E-36D4BC75987F",
            "MaskedCardNumber": "............1111",
            "CardExpiry": "20201231",
            "CardType": "VISA"
        },
        {
            "AccessToken": "11e12ac6-e936-4d34-a515-0ee9a9e6843b",
            "MaskedCardNumber": "............5311",
            "CardExpiry": "20201125",
            "CardType": "MASTERCARD"
        }
    ]
}

Using stored cards

Using a stored card requires providing a token in the WalletAccessToken parameter of the CompleteOrder payment information in lieu of the actual card details.

POST: /RESTTicketing.svc/order/payment

Request:

{
    "PerformPayment": true,
    "UserSessionId": "b47e5287860b9c906125343c8dab09c2",
    "CustomerName": "Bette Davis",
    "CustomerEmail": "bette.davis@hollywood.org",
    "PaymentInfo": {
        "PaymentValueCents": 1000,
        "WalletAccessToken": "3C18ACCF-956C-44E7-B30E-36D4BC75987F"
    }
}

In the response the actual card used for the payment should be returned.

Response:

{
    "Result": 0,
    "VistaBookingId": "WR6R2FG",
    "PaymentInfoCollection": [
        {
            "CardNumber": "411111......1111",
            "CardType": "VISA",
            "CardExpiryMonth": "12",
            "CardExpiryYear": "2020",
            "PaymentValueCents": 1000,
            "PaymentTenderCategory": "CREDIT",
            "PaymentStatus": "P",
            "BillingValueCents": 1000,
            "CardBalance": 0
        }
    ]
}

Removing stored cards

Stored cards can be removed via the RemoveCardWallet endpoint

DELETE: /RESTTicketing.svc/wallet

Request:

{
  "UserSessionId": "b47e5287860b9c906125343c8dab09c2",
  "AccessToken": "3C18ACCF-956C-44E7-B30E-36D4BC75987F"
}