Breadcrumb
- Reservation Services
- Create Reservation
- Use Cases
- Payment Methods
- Point Redemption
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
}
}
}