Skip to main content

Point Redemption

Requires an interface with a CRM provider and a loyalty program that supports point redemptions.

 

ParameterDescriptionTypeRequired
Guests/Payments/LoyaltyRedemption/@PointsApplicable number of points used as payment. Response Only parameter.StringNo
Guests/Payments/LoyaltyRedemption/LoyaltyMembership/@MembershipIDMembership of the loyalty program.StringYes
Guests/Payments/LoyaltyRedemption/LoyaltyMembership/@ProgramIDProgram ID for the loyalty program.StringYes
Guests/Payments/LoyaltyRedemption/LoyaltyMembership/@redemptionLimitSpecifies the number of points that can be redeemed from the guests loyalty program account. Only applicapable for Partial-Point redemptions.IntegerNo
Guests/Payments/LoyaltyRedemption/LoyaltyMembership/@pointsOverageSpecifies the number of points that is approved beyond the guests loyalty program account balance. Requires specialized hotel configuration.IntegerNo
Guests/Payments/@RoleSpecifies the role of a payment method. 
Values: Alternate, Business, Personal, Primary, Secondary
StringNo
Guests/Payments/@TypeSpecifies the type of a payment method. 
Values: CreditCard, LoyaltyPoints
StringYes

 

Points Only

Reservations that allow a guest to pay for the room rate using points and the taxes and fees using a credit card would include two payment methods, one for the cash portion and a second for point redemption.

 

Create Reservation (Partial)

Create a reservation with two payment methods and RoomStay/@redeemLoyalty=true to indicate this is a point redemption booking.

{
    "Guests": [{
        "Payments": [{
                "Type": "CreditCard",
                "PaymentCard": {
                    "CardCode": "VI",
                    "CardHolder": "Test Test",
                    "CardName": "Visa",
                    "CardNumber": "4444444444444444",
                    "CardSecurityCode": "123",
                    "ExpireDate": "1225"
                }
            },
            {
                "Role": "Alternate",
                "Type": "LoyaltyPoints",
                "LoyaltyRedemption": {
                    "LoyaltyMembership": {
                        "MembershipID": "987654321",
                        "ProgramID": "MyRewards"
                    }
                }
            }
        ]
    }],
    "RoomStay": {
        "StartDate": "2023-12-15",
        "EndDate": "2023-12-16",
        "GuestCount": [
            {
                "AgeQualifyingCode": "Adult",
                "NumGuests": 1
            }
        ],
        "NumRooms": 1,
        "Products": [
            {
                "Primary": true,
                "Product": {
                    "RateCode": "PointsOnly",
                    "RoomCode": "LUXQ"
                }
            }
        ],
        "redeemLoyalty": true
    },
    "status": "Confirmed"
}

 

Partial Points

Partial Points is a redemption option where a certain amount of points are deducted from the loyalty account of the guest and the remaining balance is paid with cash. This type of rate is only applicable for Points or Cash rates that the guest has selected to pay with points. Either the guest doesn't have enough points to cover the entire cost or they choose to pay fewer points and make up the difference in cash. This model allows a guest to choose the number of points to use up to their entire point balance.

For Example, A chain has configured a Points to USD conversion rate of 0.1 (10 points = $1). A guest performs a shop for a points or cash rate that costs 4,000 points or $400. The guest selects to pay with points but only has 2,000 points in their loyalty account. The system will allow the guest to pay for the rate with 2,000 points + $200 ( (4,000 points - 2,000 points) / 0.1 = $200).

Use redemptionLimit to communicate the number of points the guest would like to use for the reservation and the system will automatically calculate the remaining cash amount. The reservation should be created in a Booked status and then retrieved to obtain the system calculated cash amount. If the guest agrees to the cash amount then the reservation can be confirmed.

 

ParameterDescriptionType
Guests/Payments/LoyaltyRedemption/LoyaltyMembership/@redemptionLimitSpecifies the number of points that can be redeemed from the guest's loyalty program account for partial point redemption.Integer

 

Hotel Availability Response (Partial)

Response includes Amount=400 and Points=4000.

{
    "Product": {
        "Prices": {
            "Total": {
                "Price": {
                    "Fees": {...},
                    "Tax": {...},
                    "Total": {
                        "Amount": 400,
                        "AmountPayableNow": 400,
                        "AmountWithTaxesFees": 400,
                        "AmountWithInclusiveTaxes": 400
                    },
                    "Amount": 400,
                    "CurrencyCode": "USD",
                    "Points": 4000
                }
            },
            "TaxesFeesIncluded": false
        },
        "Rate": {
            "Code": "Points or Cash"
        },
        "Room": {
            "Code": "LUXQ"
        },
        "LoyaltyApplicable": true,
        "Ref": "Loyalty",
        "RefValue": "MyLoyalty"
    },
    "Available": true
}

 

Create Reservation (Partial)

Create a reservation with status=Booked and redemptionLimit=2000

{
    "Guests": [{
        "Payments": [{
                "Type": "CreditCard",
                "PaymentCard": {
                    "CardCode": "VI",
                    "CardHolder": "Test Test",
                    "CardName": "Visa",
                    "CardNumber": "4444444444444444",
                    "CardSecurityCode": "123",
                    "ExpireDate": "1225"
                }
            },
            {
                "Role": "Alternate",
                "Type": "LoyaltyPoints",
                "LoyaltyRedemption": {
                    "LoyaltyMembership": {
                        "MembershipID": "987654321",
                        "ProgramID": "MyRewards",
                        "redemptionLimit": 2000,
                    }
                }
            }
        ]
    }],
    "RoomStay": {
        "StartDate": "2023-12-15",
        "EndDate": "2023-12-16",
        "GuestCount": [
            {
                "AgeQualifyingCode": "Adult",
                "NumGuests": 1
            }
        ],
        "NumRooms": 1,
        "Products": [
            {
                "Primary": true,
                "Product": {
                    "RateCode": "PointsOrCash",
                    "RoomCode": "LUXQ"
                }
            }
        ],
        "redeemLoyalty": true
    },
    "status": "Booked"
}   
}

 

Retrieve Reservation (Partial)

Response includes Points=2000 and the system calculated TotalAmount=200.00

    "RoomPrices": {
        "TotalPrice": {
            "Price": {
                "Fees": {...},
                "Tax": {...},
                "CurrencyCode": "USD",
                "TotalAmountBeforeExchange": 400.0,
                "Points": 2000,
                "TaxesFeesIncluded": false,
                "TotalAmount": 200.0,
                "AmountPayableNow": 200.0,
                "TotalAmountWithInclusiveTaxesFees": 200.0,
                "TotalAmountIncludingTaxesFees": 200.0,
                "OriginalAmountIncludingTaxesAndFees": 400.0
            }
        }
    }