Creating Loyalty members

There are two ways you can create a new loyalty member:

  • create loyalty memberships within an order (to allow for paid memberships)
  • create loyalty memberships ndependently of an order

Order-independent memberships

The Create Member endpoint allows you to create a loyalty member instantly. When using this member, there's a large amount of data that you can associate with Loyalty members in the request. For the full list of parameters see the Swagger documentation.

POST: /RESTLoyalty.svc/member/create

Request:

{
    "SendSignUpConfirmationEmail" : true,
	"LoyaltyMember": {
		"Username": "jmcclane",
		"Password": "***********",
		"ClubId": "1",
		"Email": "jmcclane@nypd.gov",
		"FirstName": "John",
		"LastName": "McClane",
		"DateOfBirth": "1955-03-19",
		"Gender": "Male",
		"Address1": "2121 Avenue of the Stars",
		"Suburb": "Century City",
		"City": "Los Angeles",
		"State": "California",
		"Occupation": "Detective"
	}
}

Response:

{
    "Result": 0,
    "ErrorDescription": "",
    "SignUpConfirmationEmailSent": true
}

In-order memberships

If your system is configured to use membership packages, use the following endpoints to create loyalty members as part of an order.

Note: Tickets cannot be purchased in an order with a membership package activation.

Retrieve membership packages

Available loyalty membership packages can be retrieved either from a specific cinema, or from all cinemas.

To retrieve loyalty membership packages from a specific cinema:

GET: /loyalty//membership-packages

Response:

{
    "loyaltyMembershipPackages": [
        {
            "cinemaId": "0002",
            "name": "Gold Membership Package",
            "clubId": "2",
            "levelId": "4",
            "renewalPeriod": 1,
            "renewalPeriodUnit": "year",
            "activationData": {
                "id": "119",
                "priceInCents": 3500,
                "totalTaxInCents": 457,
                "description": "Loyalty Gold Membership Package",
                "descriptionTranslations": [],
                "extendedDescription": "",
                "extendedDescriptionTranslations": []
            },
            "renewalData": null
        },
        {
            "cinemaId": "0002",
            "name": "Standard Membership Package",
            "clubId": "2",
            "levelId": "1",
            "renewalPeriod": 1,
            "renewalPeriodUnit": "year",
            "activationData": {
                "id": "118",
                "priceInCents": 0,
                "totalTaxInCents": 0,
                "description": "Loyalty Standard Membership Package",
                "descriptionTranslations": [],
                "extendedDescription": "",
                "extendedDescriptionTranslations": []
            },
            "renewalData": null
        }
    ]
}

To retrieve loyalty membership packages from all cinemas:

GET: /loyalty/membership-packages

Response:

{
    "loyaltyMembershipPackages": [
        {
            "cinemaId": "0002",
            "name": "Gold Membership Package",
            "clubId": "2",
            "levelId": "4",
            "renewalPeriod": 1,
            "renewalPeriodUnit": "year",
            "activationData": {
                "id": "119",
                "priceInCents": 3500,
                "totalTaxInCents": 457,
                "description": "Loyalty Gold Membership Package",
                "descriptionTranslations": [],
                "extendedDescription": "",
                "extendedDescriptionTranslations": []
            },
            "renewalData": null
        },
        {
            "cinemaId": "0002",
            "name": "Standard Membership Package",
            "clubId": "2",
            "levelId": "1",
            "renewalPeriod": 1,
            "renewalPeriodUnit": "year",
            "activationData": {
                "id": "118",
                "priceInCents": 0,
                "totalTaxInCents": 0,
                "description": "Loyalty Standard Membership Package",
                "descriptionTranslations": [],
                "extendedDescription": "",
                "extendedDescriptionTranslations": []
            },
            "renewalData": null
        },
		{
            "cinemaId": "9999",
            "name": null,
            "clubId": null,
            "levelId": null,
            "renewalPeriod": null,
            "renewalPeriodUnit": null,
            "activationData": {
                "id": "120",
                "priceInCents": 3500,
                "totalTaxInCents": 457,
                "description": "Loyalty Generic Membership Package",
                "descriptionTranslations": [],
                "extendedDescription": "",
                "extendedDescriptionTranslations": []
            },
            "renewalData": null
        },
		{
            "cinemaId": "9999",
            "name": "Gold Membership Package",
            "clubId": "2",
            "levelId": "4",
            "renewalPeriod": 1,
            "renewalPeriodUnit": "year",
            "activationData": {
                "id": "119",
                "priceInCents": 3500,
                "totalTaxInCents": 457,
                "description": "Loyalty Gold Membership Package",
                "descriptionTranslations": [],
                "extendedDescription": "",
                "extendedDescriptionTranslations": []
            },
            "renewalData": null
        },
        {
            "cinemaId": "9999",
            "name": "Standard Membership Package",
            "clubId": "2",
            "levelId": "1",
            "renewalPeriod": 1,
            "renewalPeriodUnit": "year",
            "activationData": {
                "id": "118",
                "priceInCents": 0,
                "totalTaxInCents": 0,
                "description": "Loyalty Standard Membership Package",
                "descriptionTranslations": [],
                "extendedDescription": "",
                "extendedDescriptionTranslations": []
            },
            "renewalData": null
        }
    ]
}

Select membership package

To specify which membership package will be purchased, use the ID returned in the activationData of a membership package.

Note: An order will have to be created prior to selecting a membership package. See the Creating Orders Overview.

POST: /orders//set-loyalty-membership-package-activation

Request:

{
	"id": "119",
	"memberData": {
		"username": "jmcclane",
		"password": "***********",
		"email": "jmcclane@nypd.gov",
		"firstName": "John",
		"lastName": "McClane",
		"dateOfBirth": "1955-03-19",
		"gender": "Male",
		"address1": "2121 Avenue of the Stars",
		"suburb": "Century City",
		"city": "Los Angeles",
		"state": "California",
		"occupation": "Detective"
	}
}

Response:

{
    "order": {
        "cinemaId": "9999",
        "userSessionId": "579498b1666d41b5b94a98038d9f6e23",
        "orderTotalValueInCents": 3500,
        "taxTotalValueInCents": 457,
        "bookingFeeTotalValueInCents": 0,
        "bookingFeeTaxTotalValueInCents": 0,
        "loyaltyPointsTotalCost": [],
        "sessions": [],
        "concessions": [],
        "loyaltyMembershipPackageActivation": {
            "id": "1",
            "membershipPackageId": "119",
            "description": "Loyalty Gold Membership Package",
            "finalPriceInCents": 3500,
            "originalPriceInCents": 3500,
            "totalTaxInCents": 457,
            "dealDefinitionId": null,
            "dealDescription": null,
            "dealSequence": null
        },
        "loyaltyIntegratedGiftCardActivation": null,
        "appliedGiftCards": [],
        "appliedLoyaltyPointsPayments": null,
        "loyaltyPointsPayableValueInCents": 0,
        "expiryDateUtc": "2018-03-12T00:22:08.0310956Z",
        "hasCardPaymentPromotionTickets": false,
        "promotionCards": []
    },
    "suggestedDeals": []
}

If the clubId of a loyaltyMembershipPackages is null, then the client may select which club they wish the member to be assigned to. The desired clubId must then be specified in the memberData of the Set Loyalty Membership Package request.

If you want to replace the current membership package, a subsequent call to Set Loyalty Membership Package will replace the currently set package.

POST: /orders//set-loyalty-membership-package-activation

Request:

{
	"id": "120",
	"memberData": {
		"username": "jmcclane",
		"password": "***********",
		"clubId": "1",
		"email": "jmcclane@nypd.gov",
		"firstName": "John",
		"lastName": "McClane",
		"dateOfBirth": "1955-03-19",
		"gender": "Male",
		"address1": "2121 Avenue of the Stars",
		"suburb": "Century City",
		"city": "Los Angeles",
		"state": "California",
		"occupation": "Detective"
	}
}

Response:

{
    "order": {
        "cinemaId": "9999",
        "userSessionId": "579498b1666d41b5b94a98038d9f6e23",
        "orderTotalValueInCents": 3500,
        "taxTotalValueInCents": 457,
        "bookingFeeTotalValueInCents": 0,
        "bookingFeeTaxTotalValueInCents": 0,
        "loyaltyPointsTotalCost": [],
        "sessions": [],
        "concessions": [],
        "loyaltyMembershipPackageActivation": {
            "id": "1",
            "membershipPackageId": "120",
            "description": "Loyalty Generic Membership Package",
            "finalPriceInCents": 3500,
            "originalPriceInCents": 3500,
            "totalTaxInCents": 457,
            "dealDefinitionId": null,
            "dealDescription": null,
            "dealSequence": null
        },
        "loyaltyIntegratedGiftCardActivation": null,
        "appliedGiftCards": [],
        "appliedLoyaltyPointsPayments": null,
        "loyaltyPointsPayableValueInCents": 0,
        "expiryDateUtc": "2018-03-12T00:22:08.0310956Z",
        "hasCardPaymentPromotionTickets": false,
        "promotionCards": []
    },
    "suggestedDeals": []
}

Completing purchase

When the order is completed (see Completing Orders), the new loyalty member will be created.

Removing membership packages

If you want to remove the membership package from the current order, you can call Remove Loyalty Membership Package

DELETE: /orders//remove-loyalty-membership-package-activation

Response:

{
    "order": {
        "cinemaId": "9999",
        "userSessionId": "579498b1666d41b5b94a98038d9f6e23",
        "orderTotalValueInCents": 0,
        "taxTotalValueInCents": 0,
        "bookingFeeTotalValueInCents": 0,
        "bookingFeeTaxTotalValueInCents": 0,
        "loyaltyPointsTotalCost": [],
        "sessions": [],
        "concessions": [],
        "loyaltyMembershipPackageActivation": null,
        "loyaltyIntegratedGiftCardActivation": null,
        "appliedGiftCards": [],
        "appliedLoyaltyPointsPayments": null,
        "loyaltyPointsPayableValueInCents": 0,
        "expiryDateUtc": "2018-03-12T02:16:48.1679069Z",
        "hasCardPaymentPromotionTickets": false,
        "promotionCards": []
    },
    "suggestedDeals": []
}