Skip Navigation

Point Redemption

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


Parameter Description Type Required
Guests/Payments/LoyaltyRedemption/@Points Applicable number of points used as payment. Response Only parameter. String No
Guests/Payments/LoyaltyRedemption/LoyaltyMembership/@MembershipID Membership of the loyalty program. String Yes
Guests/Payments/LoyaltyRedemption/LoyaltyMembership/@ProgramID Program ID for the loyalty program. String Yes
Guests/Payments/LoyaltyRedemption/LoyaltyMembership/@redemptionLimit Specifies the number of points that can be redeemed from the guests loyalty program account. Only applicapable for Partial-Point redemptions. Integer No
Guests/Payments/LoyaltyRedemption/LoyaltyMembership/@pointsOverage Specifies the number of points that is approved beyond the guests loyalty program account balance. Requires specialized hotel configuration. Integer No
Guests/Payments/@Role Specifies the role of a payment method.
Values: Alternate, Business, Personal, Primary, Secondary
String No
Guests/Payments/@Type Specifies the type of a payment method.
Values: CreditCard, LoyaltyPoints
String Yes


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.


Parameter Description Type
Guests/Payments/LoyaltyRedemption/LoyaltyMembership/@redemptionLimit Specifies 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
            }
        }
    }