Skip to content

Sandbox

POST
/api/managing-entity/{managingEntityIdentifier}/extranet/sandbox/booking
curl --request POST \
--url https://api.wink.travel/api/managing-entity/e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18/extranet/sandbox/booking \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Wink-Version: 2.0' \
--data '{ "query": { "channel": { "propertyIdentifier": "the-siam-residences", "subType": "HOTEL", "ownerIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51", "name": "The Siam Residences - Direct Channel" }, "roomConfigurations": [ { "adults": 2, "children": [ { "quantity": 2, "age": 7 } ], "quantity": 1 } ], "city": { "geoNameId": "1609350", "localeCode": "en", "continentCode": "AS", "continentName": "Asia", "countryIsoCode": "TH", "countryName": "Thailand", "cityName": "Bangkok", "timezone": "Asia/Bangkok", "subDivision1Code": "10", "subDivision1Name": "Bangkok", "subDivision2Code": "1001", "subDivision2Name": "Phra Nakhon" }, "country": { "geoNameId": "1609350", "continentCode": "AS", "continentName": "Asia", "countryIsoCode": "TH", "countryName": "Thailand" } }, "room": { "list": [ { "identifier": "travel-blocking-1", "name": "1 hour session", "descriptions": [ { "name": "Deluxe River View Suite", "description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.", "language": "en", "creator": "USER", "md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82" } ], "price": { "sourceToUserCurrencyQuote": { "source": "USD", "target": "THB", "exchangeRate": 33.5, "timestamp": 1705233000000 }, "sourceToInternalCurrencyQuote": { "source": "USD", "target": "THB", "exchangeRate": 33.5, "timestamp": 1705233000000 }, "userSpecifiedCurrencyBaseTotal": { "amount": 1250, "currency": "USD" }, "sourceBaseTotal": { "amount": 1250, "currency": "USD" }, "internalBaseTotal": { "amount": 1250, "currency": "USD" }, "userSpecifiedCurrencyPromotionalModifier": -40, "sourcePromotionalModifier": -40, "internalPromotionalModifier": -40, "userSpecifiedCurrencyPremiumModifier": 40, "sourcePremiumModifier": 40, "internalPremiumModifier": 40, "userSpecifiedCurrencyChannelModifier": -10, "sourceChannelModifier": -10, "internalChannelModifier": -10, "quantity": 1, "sourceTotal": { "amount": 1250, "currency": "USD" }, "internalTotal": { "amount": 1250, "currency": "USD" }, "userSpecifiedCurrencyTotal": { "amount": 1250, "currency": "USD" } }, "multimedias": [ { "multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51", "identifier": "the-siam-residences/lobby-entrance", "type": "IMAGE", "source": "CLOUDINARY", "sort": 10, "angle": null, "width": 2560, "height": 1600, "published": true, "category": "2", "descriptions": [ { "title": "Lobby Entrance", "description": "Elegant lobby of The Siam Residences", "language": "en" } ], "lifestyleType": null, "attribution": [], "isLandscape": true } ], "minPax": 2, "maxPax": 10, "offerDetails": [ { "description": "This is a longer description in the specified language.", "language": "en", "creator": "USER", "md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e" } ] } ], "commissionable": false, "commission": 0.1, "direct": true, "ratePlan": { "name": "BAR 1", "breakfast": false, "brunch": false, "lunch": false, "dinner": false, "allInclusive": false, "allInclusivePlusAlcohol": false, "earlyCheckInCharge": { "type": "PERCENTAGE", "percent": 0.25, "fixedAmount": { "amount": 1250, "currency": "USD" } }, "lateCheckOutCharge": { "type": "PERCENTAGE", "percent": 0.25, "fixedAmount": { "amount": 1250, "currency": "USD" } } }, "perkTypes": [ { "id": "PERK_GUARANTEED_UPGRADE", "guaranteed": true, "level": 3, "descriptions": [ { "language": "en", "name": "Guaranteed Room Upgrade", "description": "Guaranteed upgrade to the next available room category at check-in" } ], "sort": 5 } ], "price": { "userSpecifiedCurrencyBaseTotal": { "amount": 1250, "currency": "USD" }, "sourceBaseTotal": { "amount": 1250, "currency": "USD" }, "internalBaseTotal": { "amount": 1250, "currency": "USD" }, "sourceExtraPaxModifier": 15, "internalExtraPaxModifier": 15, "userSpecifiedCurrencyExtraPaxModifier": 15, "sourceExtraChildModifier": 15, "internalExtraChildModifier": 15, "userSpecifiedCurrencyExtraChildModifier": 15, "sourceSingleOccupantModifier": -15, "internalSingleOccupantModifier": -15, "userSpecifiedCurrencySingleOccupantModifier": -15, "sourcePromotionalModifier": -40, "internalPromotionalModifier": -40, "userSpecifiedCurrencyPromotionalModifier": -40, "sourcePremiumModifier": 40, "internalPremiumModifier": 40, "userSpecifiedCurrencyPremiumModifier": 40, "sourceChannelModifier": -10, "internalChannelModifier": -10, "userSpecifiedCurrencyChannelModifier": -10, "available": false, "sourceToUserCurrencyQuote": { "source": "USD", "target": "THB", "exchangeRate": 33.5, "timestamp": 1705233000000 }, "sourceToInternalCurrencyQuote": { "source": "USD", "target": "THB", "exchangeRate": 33.5, "timestamp": 1705233000000 }, "offerDetails": [ { "description": "This is a longer description in the specified language.", "language": "en", "creator": "USER", "md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e" } ], "list": [ { "sourceBaseRate": { "amount": 1250, "currency": "USD" }, "internalBaseRate": { "amount": 1250, "currency": "USD" }, "userSpecifiedCurrencyBaseRate": { "amount": 1250, "currency": "USD" }, "offerDetails": [ { "description": "This is a longer description in the specified language.", "language": "en", "creator": "USER", "md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e" } ], "rate": { "identifier": "5e8a3b7c-0d4f-4a2b-8c1d-9e6f2a0b4c73", "hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18", "rateSource": "TRAVELIKO", "ratePlanIdentifier": "5e8a3b7c-0d4f-4a2b-8c1d-9e6f2a0b4c73", "guestRoomIdentifier": "6f9b4c8d-1e5a-4b3c-9d2e-8a7f0c1b5e43", "rate": { "amount": 1250, "currency": "USD" }, "master": true, "closedOnArrival": false, "closedOnDeparture": false, "date": "2020-8-24", "quantity": 9, "minOccupancy": 1, "maxOccupancy": 2, "minLengthOfStay": 4, "maxLengthOfStay": 8, "singleOccupancyRateModifier": { "type": "PERCENTAGE", "percent": 0.25, "fixedAmount": { "amount": 1250, "currency": "USD" } }, "extraPaxRateModifier": { "type": "PERCENTAGE", "percent": 0.25, "fixedAmount": { "amount": 1250, "currency": "USD" } }, "extraChildRateModifier": { "type": "PERCENTAGE", "percent": 0.25, "fixedAmount": { "amount": 1250, "currency": "USD" } } }, "maxAdultOccupancy": 1, "maxChildOccupancy": 0, "includedAdultOccupancy": 2, "includedChildOccupancy": 0, "sourceToUserCurrencyQuote": { "source": "USD", "target": "THB", "exchangeRate": 33.5, "timestamp": 1705233000000 }, "sourceToInternalCurrencyQuote": { "source": "USD", "target": "THB", "exchangeRate": 33.5, "timestamp": 1705233000000 }, "financialBreakdown": { "displayPriceQuote": { "source": "USD", "target": "THB", "exchangeRate": 33.5, "timestamp": 1705233000000 }, "internalPriceQuote": { "source": "USD", "target": "THB", "exchangeRate": 33.5, "timestamp": 1705233000000 }, "beneficiaryList": [ { "accountIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69", "accountName": "The Siam Residences, Bangkok", "accountEmail": "[email protected]", "accountUrl": "https://trvl.as/the-siam-residences-bangkok", "amountDue": { "percent": 0.05 }, "sourceCurrency": "THB", "displayCurrency": "USD", "internalCurrency": "USD", "sourceAmount": 450, "displayAmount": 450, "internalAmount": 450, "sourceAmountRefundModifier": 45, "displayAmountRefundModifier": 45, "internalAmountRefundModifier": 45, "pendingRefunds": [ { "refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34", "sourceAmountRefundModifier": 45, "displayAmountRefundModifier": 45, "internalAmountRefundModifier": 45 } ], "netSourceAmount": 450, "netDisplayAmount": 450, "netInternalAmount": 450, "reconciled": false } ] }, "sourceTotal": { "amount": 1250, "currency": "USD" }, "internalTotal": { "amount": 1250, "currency": "USD" }, "userSpecifiedCurrencyTotal": { "amount": 1250, "currency": "USD" }, "sourceRate": { "amount": 1250, "currency": "USD" }, "userSpecifiedCurrencyRate": { "amount": 1250, "currency": "USD" }, "internalRate": { "amount": 1250, "currency": "USD" }, "beneficiaryList": [ { "accountIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69", "accountName": "The Siam Residences, Bangkok", "accountEmail": "[email protected]", "accountUrl": "https://trvl.as/the-siam-residences-bangkok", "amountDue": { "percent": 0.05 }, "sourceCurrency": "THB", "displayCurrency": "USD", "internalCurrency": "USD", "sourceAmount": 450, "displayAmount": 450, "internalAmount": 450, "sourceAmountRefundModifier": 45, "displayAmountRefundModifier": 45, "internalAmountRefundModifier": 45, "pendingRefunds": [ { "refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34", "sourceAmountRefundModifier": 45, "displayAmountRefundModifier": 45, "internalAmountRefundModifier": 45 } ], "netSourceAmount": 450, "netDisplayAmount": 450, "netInternalAmount": 450, "reconciled": false } ], "baseRate": { "amount": 1250, "currency": "USD" } } ], "userSpecifiedCurrencyTotal": { "amount": 1250, "currency": "USD" }, "sourceTotal": { "amount": 1250, "currency": "USD" }, "internalTotal": { "amount": 1250, "currency": "USD" }, "financialBreakdown": { "displayPriceQuote": { "source": "USD", "target": "THB", "exchangeRate": 33.5, "timestamp": 1705233000000 }, "internalPriceQuote": { "source": "USD", "target": "THB", "exchangeRate": 33.5, "timestamp": 1705233000000 }, "beneficiaryList": [ { "accountIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69", "accountName": "The Siam Residences, Bangkok", "accountEmail": "[email protected]", "accountUrl": "https://trvl.as/the-siam-residences-bangkok", "amountDue": { "percent": 0.05 }, "sourceCurrency": "THB", "displayCurrency": "USD", "internalCurrency": "USD", "sourceAmount": 450, "displayAmount": 450, "internalAmount": 450, "sourceAmountRefundModifier": 45, "displayAmountRefundModifier": 45, "internalAmountRefundModifier": 45, "pendingRefunds": [ { "refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34", "sourceAmountRefundModifier": 45, "displayAmountRefundModifier": 45, "internalAmountRefundModifier": 45 } ], "netSourceAmount": 450, "netDisplayAmount": 450, "netInternalAmount": 450, "reconciled": false } ] }, "userSpecifiedCurrencyAveragePricePerNight": { "amount": 1250, "currency": "USD" }, "internalAveragePricePerNight": { "amount": 1250, "currency": "USD" }, "sourceAveragePricePerNight": { "amount": 1250, "currency": "USD" }, "beneficiaryList": [ { "accountIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69", "accountName": "The Siam Residences, Bangkok", "accountEmail": "[email protected]", "accountUrl": "https://trvl.as/the-siam-residences-bangkok", "amountDue": { "percent": 0.05 }, "sourceCurrency": "THB", "displayCurrency": "USD", "internalCurrency": "USD", "sourceAmount": 450, "displayAmount": 450, "internalAmount": 450, "sourceAmountRefundModifier": 45, "displayAmountRefundModifier": 45, "internalAmountRefundModifier": 45, "pendingRefunds": [ { "refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34", "sourceAmountRefundModifier": 45, "displayAmountRefundModifier": 45, "internalAmountRefundModifier": 45 } ], "netSourceAmount": 450, "netDisplayAmount": 450, "netInternalAmount": 450, "reconciled": false } ] }, "extraCharges": { "items": [ { "ratePlanLevelFee": { "descriptions": [ { "description": "This is a longer description in the specified language.", "language": "en", "creator": "USER", "md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e" } ], "fixedAmount": 450, "type": "PER_DAY" }, "unitPrice": { "sourceToUserCurrencyQuote": { "source": "USD", "target": "THB", "exchangeRate": 33.5, "timestamp": 1705233000000 }, "sourceToInternalCurrencyQuote": { "source": "USD", "target": "THB", "exchangeRate": 33.5, "timestamp": 1705233000000 }, "userSpecifiedCurrencyBaseTotal": { "amount": 1250, "currency": "USD" }, "sourceBaseTotal": { "amount": 1250, "currency": "USD" }, "internalBaseTotal": { "amount": 1250, "currency": "USD" }, "userSpecifiedCurrencyPromotionalModifier": -40, "sourcePromotionalModifier": -40, "internalPromotionalModifier": -40, "userSpecifiedCurrencyPremiumModifier": 40, "sourcePremiumModifier": 40, "internalPremiumModifier": 40, "userSpecifiedCurrencyChannelModifier": -10, "sourceChannelModifier": -10, "internalChannelModifier": -10, "quantity": 1, "sourceTotal": { "amount": 1250, "currency": "USD" }, "internalTotal": { "amount": 1250, "currency": "USD" }, "userSpecifiedCurrencyTotal": { "amount": 1250, "currency": "USD" } }, "price": { "sourceToUserCurrencyQuote": { "source": "USD", "target": "THB", "exchangeRate": 33.5, "timestamp": 1705233000000 }, "sourceToInternalCurrencyQuote": { "source": "USD", "target": "THB", "exchangeRate": 33.5, "timestamp": 1705233000000 }, "userSpecifiedCurrencyBaseTotal": { "amount": 1250, "currency": "USD" }, "sourceBaseTotal": { "amount": 1250, "currency": "USD" }, "internalBaseTotal": { "amount": 1250, "currency": "USD" }, "userSpecifiedCurrencyPromotionalModifier": -40, "sourcePromotionalModifier": -40, "internalPromotionalModifier": -40, "userSpecifiedCurrencyPremiumModifier": 40, "sourcePremiumModifier": 40, "internalPremiumModifier": 40, "userSpecifiedCurrencyChannelModifier": -10, "sourceChannelModifier": -10, "internalChannelModifier": -10, "quantity": 1, "sourceTotal": { "amount": 1250, "currency": "USD" }, "internalTotal": { "amount": 1250, "currency": "USD" }, "userSpecifiedCurrencyTotal": { "amount": 1250, "currency": "USD" } } } ], "userSpecifiedCurrencyTotal": { "amount": 1250, "currency": "USD" }, "sourceTotal": { "amount": 1250, "currency": "USD" }, "internalTotal": { "amount": 1250, "currency": "USD" } }, "configuration": { "adults": 2, "children": [ { "quantity": 2, "age": 7 } ], "quantity": 1 }, "addOnOffers": [ { "addOn": { "id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47", "createdDate": "2026-01-14T09:30:00", "lastUpdate": "2026-02-03T16:45:12", "version": 3, "hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18", "featuredInd": false, "lifestyleType": "LIFESTYLE_HEALTH_FITNESS", "location": { "type": "POINT", "coordinates": [ 100.5581533, 13.7370197 ] }, "descriptions": [ { "name": "Deluxe River View Suite", "description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.", "language": "en", "creator": "USER", "md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82" } ], "multimedias": [ { "multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51", "identifier": "the-siam-residences/lobby-entrance", "type": "IMAGE", "source": "CLOUDINARY", "sort": 10, "angle": null, "width": 2560, "height": 1600, "published": true, "category": "2", "descriptions": [ { "title": "Lobby Entrance", "description": "Elegant lobby of The Siam Residences", "language": "en" } ], "lifestyleType": null, "attribution": [], "isLandscape": true } ], "contact": { "firstName": "Alexandra", "lastName": "Beaumont", "email": "[email protected]", "secondaryEmail": "[email protected]", "phoneNumber": "+12125551212", "fullName": "Alexandra Beaumont", "summary": "John Smith ([email protected] / +12125551212)" }, "address": { "address1": "234 Near da beach", "address2": "Pebble #5001", "state": "CA", "postalCode": "90210", "county": "Alameda county", "city": "Bangkok", "countryCode": "TH", "country": "United States", "fullAddress": "11 At home, Suite 3C, New York City, NY 10010, United States" }, "commissionable": true, "name": "Archery lesson", "proximityCode": "1", "sort": 1, "minAgeAppropriateCode": "1", "bookable": true, "active": true, "socials": [ { "type": "INSTAGRAM", "location": "https://www.instagram.com/thesiamresidences" } ], "pricePoint": "THREE", "recognitionList": [ { "identifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51", "category": "AWARD", "type": "PERCENT_RATING", "provider": "Michelin", "rating": 8.5, "maxRating": 10, "date": "2026-01-14", "officialAppointmentInd": true, "ratingSymbol": "*" } ], "transactionalInventoryList": [ { "identifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51", "name": "1 hour session", "descriptions": [ { "name": "Deluxe River View Suite", "description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.", "language": "en", "creator": "USER", "md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82" } ], "pricingType": "PER_NIGHT", "basePrice": { "amount": 1250, "currency": "USD" }, "discountedPrice": { "amount": 1250, "currency": "USD" }, "multimedias": [ { "multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51", "identifier": "the-siam-residences/lobby-entrance", "type": "IMAGE", "source": "CLOUDINARY", "sort": 10, "angle": null, "width": 2560, "height": 1600, "published": true, "category": "2", "descriptions": [ { "title": "Lobby Entrance", "description": "Elegant lobby of The Siam Residences", "language": "en" } ], "lifestyleType": null, "attribution": [], "isLandscape": true } ], "minPax": 2, "maxPax": 10, "percentPremium": 0.1, "percentDiscount": 0.1 } ], "publishStatus": "PUBLISHED", "applicableStart": "1970-1-1", "applicableEnd": "1970-12-1", "reservationRequiredInd": false, "opens": "09:00", "closes": "17:30", "daysOfWeek": { "mon": true, "tue": true, "wed": true, "thu": true, "fri": true, "sat": true, "sun": true, "disabled": true }, "numberOfUnits": 15, "mandatory": true, "ratePlan": { "id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47", "version": 3, "hotelIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69", "name": "Best Available Rate", "prepaid": false, "enabled": false, "breakfast": false, "brunch": false, "lunch": false, "dinner": false, "allInclusive": false, "allInclusivePlusAlcohol": false, "sellStartDate": "2026-01-15", "sellEndDate": "2026-12-31", "stayStartDate": "2026-01-15", "stayEndDate": "2026-12-31", "loyaltyPointsAccrue": false, "maxAdvanceBookingOffset": 180, "minAdvanceBookingOffset": 3, "minTotalOccupancy": 1, "maxTotalOccupancy": 4, "minLOS": 1, "maxLOS": 30, "minAge": 18, "maxAge": 65, "ratePlanLevelFees": [ { "descriptions": [ { "description": "This is a longer description in the specified language.", "language": "en", "creator": "USER", "md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e" } ], "fixedAmount": 450, "type": "PER_DAY" } ], "availableDaysOfWeek": { "mon": true, "tue": true, "wed": true, "thu": true, "fri": true, "sat": true, "sun": true, "disabled": true }, "arrivalDaysOfWeek": { "mon": true, "tue": true, "wed": true, "thu": true, "fri": true, "sat": true, "sun": true, "disabled": true }, "departureDaysOfWeek": { "mon": true, "tue": true, "wed": true, "thu": true, "fri": true, "sat": true, "sun": true, "disabled": true }, "requiredDaysOfWeek": { "mon": true, "tue": true, "wed": true, "thu": true, "fri": true, "sat": true, "sun": true, "disabled": true }, "earlyCheckInCharge": { "type": "PERCENTAGE", "percent": 0.25, "fixedAmount": { "amount": 1250, "currency": "USD" } }, "lateCheckOutCharge": { "type": "PERCENTAGE", "percent": 0.25, "fixedAmount": { "amount": 1250, "currency": "USD" } }, "cancellationPolicy": { "id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47", "version": 3, "hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18", "refundable": false, "advanceCancellationFreeOfCharge": "UNTIL_EIGHTEEN_HUNDRED_HOURS_ON_DAY_OF_ARRIVAL", "refundableCancellationCharge": "FIFTY_PERCENT", "noShowCharge": "SAME_AS_CANCELLATION_FEE", "nonRefundableCancellationCharge": "SEVENTY_PERCENT", "nonRefundableDeadline": "SEVEN_DAYS_BEFORE_ARRIVAL", "nonRefundableAfterDeadlineCancellationCharge": "ONE_HUNDRED_PERCENT", "createdDate": "2026-01-14T09:30:00", "lastUpdate": "2026-02-03T16:45:12" }, "cancellationPolicyExceptions": { "list": [ { "cancellationPolicyIdentifier": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47", "startDate": "2026-01-14", "endDate": "2026-12-31" } ] }, "singleOccupancyRateModifier": { "type": "PERCENTAGE", "percent": 0.25, "fixedAmount": { "amount": 1250, "currency": "USD" } }, "extraPaxRateModifier": { "type": "PERCENTAGE", "percent": 0.25, "fixedAmount": { "amount": 1250, "currency": "USD" } }, "extraChildRateModifier": { "type": "PERCENTAGE", "percent": 0.25, "fixedAmount": { "amount": 1250, "currency": "USD" } }, "createdDate": "2026-01-14T09:30:00", "lastUpdate": "2026-02-03T16:45:12" }, "dateRanges": [ { "startDate": "2020-12-24", "endDate": "2020-12-31" } ] }, "priceList": [ { "identifier": "travel-blocking-1", "name": "1 hour session", "descriptions": [ { "name": "Deluxe River View Suite", "description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.", "language": "en", "creator": "USER", "md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82" } ], "price": { "sourceToUserCurrencyQuote": { "source": "USD", "target": "THB", "exchangeRate": 33.5, "timestamp": 1705233000000 }, "sourceToInternalCurrencyQuote": { "source": "USD", "target": "THB", "exchangeRate": 33.5, "timestamp": 1705233000000 }, "userSpecifiedCurrencyBaseTotal": { "amount": 1250, "currency": "USD" }, "sourceBaseTotal": { "amount": 1250, "currency": "USD" }, "internalBaseTotal": { "amount": 1250, "currency": "USD" }, "userSpecifiedCurrencyPromotionalModifier": -40, "sourcePromotionalModifier": -40, "internalPromotionalModifier": -40, "userSpecifiedCurrencyPremiumModifier": 40, "sourcePremiumModifier": 40, "internalPremiumModifier": 40, "userSpecifiedCurrencyChannelModifier": -10, "sourceChannelModifier": -10, "internalChannelModifier": -10, "quantity": 1, "sourceTotal": { "amount": 1250, "currency": "USD" }, "internalTotal": { "amount": 1250, "currency": "USD" }, "userSpecifiedCurrencyTotal": { "amount": 1250, "currency": "USD" } }, "multimedias": [ { "multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51", "identifier": "the-siam-residences/lobby-entrance", "type": "IMAGE", "source": "CLOUDINARY", "sort": 10, "angle": null, "width": 2560, "height": 1600, "published": true, "category": "2", "descriptions": [ { "title": "Lobby Entrance", "description": "Elegant lobby of The Siam Residences", "language": "en" } ], "lifestyleType": null, "attribution": [], "isLandscape": true } ], "minPax": 2, "maxPax": 10, "offerDetails": [ { "description": "This is a longer description in the specified language.", "language": "en", "creator": "USER", "md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e" } ] } ], "commissionable": false, "commission": 0.1, "direct": true } ], "activeCancellationPolicy": { "id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47", "version": 3, "hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18", "refundable": false, "advanceCancellationFreeOfCharge": "UNTIL_EIGHTEEN_HUNDRED_HOURS_ON_DAY_OF_ARRIVAL", "refundableCancellationCharge": "FIFTY_PERCENT", "noShowCharge": "SAME_AS_CANCELLATION_FEE", "nonRefundableCancellationCharge": "SEVENTY_PERCENT", "nonRefundableDeadline": "SEVEN_DAYS_BEFORE_ARRIVAL", "nonRefundableAfterDeadlineCancellationCharge": "ONE_HUNDRED_PERCENT", "createdDate": "2026-01-14T09:30:00", "lastUpdate": "2026-02-03T16:45:12" }, "priceList": [ { "identifier": "travel-blocking-1", "name": "1 hour session", "descriptions": [ { "name": "Deluxe River View Suite", "description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.", "language": "en", "creator": "USER", "md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82" } ], "price": { "sourceToUserCurrencyQuote": { "source": "USD", "target": "THB", "exchangeRate": 33.5, "timestamp": 1705233000000 }, "sourceToInternalCurrencyQuote": { "source": "USD", "target": "THB", "exchangeRate": 33.5, "timestamp": 1705233000000 }, "userSpecifiedCurrencyBaseTotal": { "amount": 1250, "currency": "USD" }, "sourceBaseTotal": { "amount": 1250, "currency": "USD" }, "internalBaseTotal": { "amount": 1250, "currency": "USD" }, "userSpecifiedCurrencyPromotionalModifier": -40, "sourcePromotionalModifier": -40, "internalPromotionalModifier": -40, "userSpecifiedCurrencyPremiumModifier": 40, "sourcePremiumModifier": 40, "internalPremiumModifier": 40, "userSpecifiedCurrencyChannelModifier": -10, "sourceChannelModifier": -10, "internalChannelModifier": -10, "quantity": 1, "sourceTotal": { "amount": 1250, "currency": "USD" }, "internalTotal": { "amount": 1250, "currency": "USD" }, "userSpecifiedCurrencyTotal": { "amount": 1250, "currency": "USD" } }, "multimedias": [ { "multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51", "identifier": "the-siam-residences/lobby-entrance", "type": "IMAGE", "source": "CLOUDINARY", "sort": 10, "angle": null, "width": 2560, "height": 1600, "published": true, "category": "2", "descriptions": [ { "title": "Lobby Entrance", "description": "Elegant lobby of The Siam Residences", "language": "en" } ], "lifestyleType": null, "attribution": [], "isLandscape": true } ], "minPax": 2, "maxPax": 10, "offerDetails": [ { "description": "This is a longer description in the specified language.", "language": "en", "creator": "USER", "md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e" } ] } ], "sourceTotal": { "amount": 1250, "currency": "USD" }, "internalTotal": { "amount": 1250, "currency": "USD" }, "userSpecifiedCurrencyTotal": { "amount": 1250, "currency": "USD" } }, "notification": { "notifyProperty": false, "notifyChannelManager": false, "notifyBooker": false, "booker": { "userIdentifier": "c3a9f2e1-8b4d-4c7a-a1e2-5f0b6d9e2c84", "firstName": "Alexandra", "lastName": "Beaumont", "email": "[email protected]", "telephone": "+1 212 555 1212", "fullName": "Alexandra Beaumont" } } }'

Runs a sandbox booking so the property can verify a sales channel returns the expected rates and availability.

managingEntityIdentifier
required
string
""

Create test booking for property with this identifier

Example
e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18
Wink-Version
string
default: 2.0.0
Allowed values: 2.0

Sandbox booking details including the channel inventory identifier, occupancy, check-in/check-out dates and optional IP number for geo-pricing

Media typeapplication/json
object
query
required

Query object that was used to generate the room property

object
channel
required

Channel owner of inventory

object
propertyIdentifier
required
string
>= 1 characters
subType
required

Type of entity that manages, facilitates, or administers properties, bookings, or payments on the Wink Platform

string
Allowed values: TRIP_PAY FACILITATOR DIRECT APPLICATION HOTEL TRAVELIKO CORPORATE TRAVEL_AGENT INFLUENCER BLOGGER DESTINATION CHANNEL_MANAGER PROPERTY_MANAGEMENT_SYSTEM CENTRAL_RESERVATION_SYSTEM GOOGLE_HOTEL_API MANAGEMENT_COMPANY CHAIN BRAND EVENT_ORGANIZER OTHER
ownerIdentifier
string
name
required
string
>= 1 characters
Example
{
"propertyIdentifier": "the-siam-residences",
"subType": "HOTEL",
"ownerIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"name": "The Siam Residences - Direct Channel"
}
stayStartDate
required

Arrival date

string format: date
""
stayEndDate
required

Departure date

string format: date
""
roomConfigurations
required
Array<object>
>= 1 items

Desired room configuration

object
adults
required

Number of adult guests in this room type

integer format: int32
default: 1 >= 1
Example
2
children

Child guests in this room, with age groups

Array<object>

Child guest with age and quantity in a room configuration

object
quantity
required

Count of children of this age group in the room

integer format: int32
"" >= 1
Example
2
age
required

Age of each child in this group (years)

integer format: int32
""
Example
7
Example
{
"quantity": 2,
"age": 7
}
quantity

Number of identical rooms with this configuration

integer format: int32
default: 1 >= 1
Example
1
Example
{
"adults": 2,
"children": [
{
"quantity": 2,
"age": 7
}
],
"quantity": 1
}
currency
required

Display currency

string
"" >= 1 characters
bookingDate

The booking start date

string format: date
""
sellStartDate

The sell start date

string format: date
""
sellEndDate

The sell end date

string format: date
""
promotion

A promo code

string
""
city

A booker coming from a specific city

object
geoNameId
required

GeoNameLightweight identifiers taken from https://geonames.org.

string
"" >= 1 characters
Example
8798734
localeCode
required

Locale code

string
"" >= 1 characters /^[a-z]{2}(-[A-Z]{2})?$/
Example
en
continentCode
required

Continent code

string
"" >= 1 characters
Example
NA
continentName
required

Continent name

string
"" >= 1 characters
Example
North America
countryIsoCode
required

Country ISO code

string
"" >= 1 characters /^[A-Z]{2}$/
Example
US
countryName
required

Country name

string
"" >= 1 characters
Example
United States
cityName
required

City name

string
"" >= 1 characters
Example
New York
timezone
required

Timezone

string
"" >= 1 characters
Example
America/New_York
subDivision1Code

Sub-division 1 code

string
""
Example
NY
subDivision1Name

Sub-division 1 name

string
""
Example
NY
subDivision2Code

Sub-division 2 code

string
""
Example
Kings
subDivision2Name

Sub-division 2 name

string
""
Example
Kings County
Example
{
"geoNameId": "1609350",
"localeCode": "en",
"continentCode": "AS",
"continentName": "Asia",
"countryIsoCode": "TH",
"countryName": "Thailand",
"cityName": "Bangkok",
"timezone": "Asia/Bangkok",
"subDivision1Code": "10",
"subDivision1Name": "Bangkok",
"subDivision2Code": "1001",
"subDivision2Name": "Phra Nakhon"
}
country

A booker coming from a specific country

object
geoNameId

GeoNames identifier

string
""
Example
1609350
continentCode

Continent code (two-letter ISO)

string
""
Example
AS
continentName

Continent name

string
""
Example
Asia
countryIsoCode

Country ISO 3166-1 alpha-2 code

string
"" /^[A-Z]{2}$/
Example
TH
countryName

Country name

string
""
Example
Thailand
Example
{
"geoNameId": "1609350",
"continentCode": "AS",
"continentName": "Asia",
"countryIsoCode": "TH",
"countryName": "Thailand"
}
continent

A booker coming from a specific continent

string
""
ipNumber

A booker coming from a specific IP number

string
""
timezone

A booker coming from a specific timezone

string
""
latitude

A booker coming from a specific latitude

number format: double
""
longitude

A booker coming from a specific longitude

number format: double
""
Example
{
"channel": {
"propertyIdentifier": "the-siam-residences",
"subType": "HOTEL",
"ownerIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"name": "The Siam Residences - Direct Channel"
},
"roomConfigurations": [
{
"adults": 2,
"children": [
{
"quantity": 2,
"age": 7
}
],
"quantity": 1
}
],
"city": {
"geoNameId": "1609350",
"localeCode": "en",
"continentCode": "AS",
"continentName": "Asia",
"countryIsoCode": "TH",
"countryName": "Thailand",
"cityName": "Bangkok",
"timezone": "Asia/Bangkok",
"subDivision1Code": "10",
"subDivision1Name": "Bangkok",
"subDivision2Code": "1001",
"subDivision2Name": "Phra Nakhon"
},
"country": {
"geoNameId": "1609350",
"continentCode": "AS",
"continentName": "Asia",
"countryIsoCode": "TH",
"countryName": "Thailand"
}
}
room
required

The room we want to book

object
channelInventoryIdentifier
required

Sales channel inventory identifier

string
""
list
Array<object>

This is one localized bookable item that can stand alongside a restaurant / meeting room etc.

object
identifier
required

Unique transactional identifier

string format: uuid
"" >= 1 characters
Example
travel-blocking-1
name
required

Internal name of transactional blocking.

string
"" >= 1 characters
Example
1 hour session
descriptions
required

Localized descriptions describing inventory.

Array<object>
>= 1 items <= 2147483647 items

Foundation class for storing multi-language content (names and descriptions) with content change detection throughout the Wink Platform.

object
name
required

Use as title or short text description

string
""
Example
An example title
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
Example
This is a longer description in the specified language.
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
Example
en
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
Example
SYSTEM
md5ContentHash

The md5 hash of the name, description and language.

string
""
Example
d41d8cd98f00b204e9800998ecf8427e
hashMismatch
boolean
Example
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
pricingType
required

How this inventory item should be priced.

string
""
Allowed values: PER_STAY PER_DAY PER_NIGHT PER_USE PER_HOUR PER_PERSON PER_PERSON_PER_NIGHT PER_PERSON_PER_HOUR PER_ADULT PER_ADULT_PER_NIGHT PER_ADULT_PER_HOUR PER_CHILD PER_CHILD_PER_NIGHT PER_CHILD_PER_HOUR
price
required

Localized price

object
sourceToUserCurrencyQuote
required

Hotel to user currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
Example
USD
target
required

ISO 4217 target currency code

string
"" >= 1 characters
Example
THB
exchangeRate
required

Exchange rate from source to target currency

number
""
Example
33.5
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
Example
1705233000000
Example
{
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
}
sourceToInternalCurrencyQuote
required

Hotel to wink currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
Example
USD
target
required

ISO 4217 target currency code

string
"" >= 1 characters
Example
THB
exchangeRate
required

Exchange rate from source to target currency

number
""
Example
33.5
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
Example
1705233000000
Example
{
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
}
userSpecifiedCurrencyBaseTotal
required

Base total in user specified currency.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
sourceBaseTotal
required

Base total in hotel currency.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
internalBaseTotal
required

Base total in wink currency.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
userSpecifiedCurrencyPromotionalModifier

Promotional modifiers in user specified currency

number
""
Example
-40
sourcePromotionalModifier

Promotional modifiers in hotel currency

number
""
Example
-40
internalPromotionalModifier

Promotional modifiers in wink currency

number
""
Example
-40
userSpecifiedCurrencyPremiumModifier

Premium modifiers in user specified currency

number
""
Example
40
sourcePremiumModifier

Premium modifiers in hotel currency

number
""
Example
40
internalPremiumModifier

Premium modifiers in wink currency

number
""
Example
40
userSpecifiedCurrencyChannelModifier

Channel / Membership modifier in user specified currency

number
""
Example
-10
sourceChannelModifier

Channel / Membership modifier in hotel currency

number
""
Example
-10
internalChannelModifier

Channel / Membership modifier in wink currency

number
""
Example
-10
quantity

How many of this item is included in this price

integer format: int64
default: 1
promotionalDiscountPercent

Promotional discount percent

number
""
channelDiscountPercent

Channel discount percent

number
""
premiumPercent

Premium percent

number
""
hasChannelDiscount
boolean
hasPremium
boolean
hasPromotion
boolean
sourceTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
internalTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
userSpecifiedCurrencyTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
totalDiscountPercent
number
Example
{
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"userSpecifiedCurrencyBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"internalBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyPromotionalModifier": -40,
"sourcePromotionalModifier": -40,
"internalPromotionalModifier": -40,
"userSpecifiedCurrencyPremiumModifier": 40,
"sourcePremiumModifier": 40,
"internalPremiumModifier": 40,
"userSpecifiedCurrencyChannelModifier": -10,
"sourceChannelModifier": -10,
"internalChannelModifier": -10,
"quantity": 1,
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
}
}
multimedias
required

List of images / videos of item.

Array<object>

Multimedia that contains less information than Multimedia object

object
multimediaIdentifier
required

Document identifier

string format: uuid
"" >= 1 characters
Example
3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51
identifier
required

Use this identifier to communicate with Cloudinary.

string
"" >= 1 characters
Example
cloudinary-image-1
type
required

Whether Cloudinary media is a VIDEO or IMAGE.

string
""
Allowed values: IMAGE VIDEO AUDIO RAW
Example
IMAGE
source
required

Currently ONLY using Cloudinary to store all image / video assets.

string
default: CLOUDINARY
Allowed values: YOUTUBE CLOUDINARY
Example
CLOUDINARY
sort
required

Sort allows you to control how you want to sort this record in a list of media records.

integer format: int32
default: 999
Example
10
angle

Media angle

string
""
Example
-90
width
required

Media width in pixels.

integer format: int32
"" >= 1
Example
2560
height
required

Media height in pixels.

integer format: int32
"" >= 1
Example
1600
published

Instead of deleting the media, choose to un-publish it instead for later re-use. Could be you keep seasonal images of the property.

boolean
Example
true
category

Supported OTA specification PIC code. See OTA geoname data

string
""
Example
1
descriptions

Localized media captions to give user some context about where this media was taken.

Array<object>
""

Foundation class for storing multi-language content (names and descriptions) with content change detection throughout the Wink Platform.

object
name
required

Use as title or short text description

string
""
Example
An example title
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
Example
This is a longer description in the specified language.
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
Example
en
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
Example
SYSTEM
md5ContentHash

The md5 hash of the name, description and language.

string
""
Example
d41d8cd98f00b204e9800998ecf8427e
hashMismatch
boolean
Example
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
lifestyleType

Associate this media with a specific lifestyle type. A user searching and filtering inventory based on lifestyles can be shown relevant media first.

string
""
Allowed values: LIFESTYLE_HEALTH_FITNESS LIFESTYLE_RELAX LIFESTYLE_ADULT_ONLY LIFESTYLE_ADVENTURE LIFESTYLE_BUSINESS LIFESTYLE_LGBT LIFESTYLE_SINGLE_PARENT LIFESTYLE_SOLO_FEMALE LIFESTYLE_BEAUTY LIFESTYLE_FOODIE LIFESTYLE_FAMILY LIFESTYLE_ROMANCE LIFESTYLE_COUPLE LIFESTYLE_SOLO LIFESTYLE_BACKPACKER LIFESTYLE_SHOPPING LIFESTYLE_SPORTS LIFESTYLE_MOUNTAIN LIFESTYLE_BEACH LIFESTYLE_CITY LIFESTYLE_COUNTRY LIFESTYLE_CULTURE LIFESTYLE_ECO
Example
LIFESTYLE_HEALTH_FITNESS
attribution

Whether image has attribution properties

Array<object>
""
object
url

URL to contributor

string format: uri
""
Example
https://maps.google.com/maps/contrib/111628493169070103594
name
required

Name of contributor

string
"" >= 1 characters
Example
Samuel Adams
Example
{
"url": "https://maps.google.com/maps/contrib/111628493169070103594",
"name": "Samuel Adams"
}
isLandscape

True if media width is greater or equal to height

boolean
Example
true
Example
{
"multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"identifier": "the-siam-residences/lobby-entrance",
"type": "IMAGE",
"source": "CLOUDINARY",
"sort": 10,
"angle": null,
"width": 2560,
"height": 1600,
"published": true,
"category": "2",
"descriptions": [
{
"title": "Lobby Entrance",
"description": "Elegant lobby of The Siam Residences",
"language": "en"
}
],
"lifestyleType": null,
"attribution": [],
"isLandscape": true
}
minPax

Whether there is a limit to minimum group size.

integer format: int32
""
Example
2
maxPax

Whether there is a limit to maximum group size.

integer format: int32
""
Example
10
offerDetails

Localized offer details if rate plan discount applies.

Array<object>
""

Simplified localized description containing text content and its language code.

object
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
Example
This is a longer description in the specified language.
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
Example
en
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
Example
SYSTEM
md5ContentHash

The md5 hash of the name, description and language.

string
""
Example
d41d8cd98f00b204e9800998ecf8427e
hashMismatch
boolean
Example
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
promotion

If a package is linked to a rate plan the user could be entitled to a promotional discount if she enters a code. When this field is populated, it means the discount was applied to the package.

string
""
Example
{
"identifier": "travel-blocking-1",
"name": "1 hour session",
"descriptions": [
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
],
"price": {
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"userSpecifiedCurrencyBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"internalBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyPromotionalModifier": -40,
"sourcePromotionalModifier": -40,
"internalPromotionalModifier": -40,
"userSpecifiedCurrencyPremiumModifier": 40,
"sourcePremiumModifier": 40,
"internalPremiumModifier": 40,
"userSpecifiedCurrencyChannelModifier": -10,
"sourceChannelModifier": -10,
"internalChannelModifier": -10,
"quantity": 1,
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
}
},
"multimedias": [
{
"multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"identifier": "the-siam-residences/lobby-entrance",
"type": "IMAGE",
"source": "CLOUDINARY",
"sort": 10,
"angle": null,
"width": 2560,
"height": 1600,
"published": true,
"category": "2",
"descriptions": [
{
"title": "Lobby Entrance",
"description": "Elegant lobby of The Siam Residences",
"language": "en"
}
],
"lifestyleType": null,
"attribution": [],
"isLandscape": true
}
],
"minPax": 2,
"maxPax": 10,
"offerDetails": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
]
}
commissionable
required

Whether this package is commissionable based on the incoming sales channel.

boolean
commission
required

The commission percentage.

number format: float
""
Example
0.1
direct
required

Indicates whether the blocking from sales channel is direct or not. If you are a travel agent doing your own acquiring, this flag has to be true to make a booking.

boolean
Example
true
adults
required

The actual amount of adults as determined by the hotel’s policy

integer format: int32
""
children

The actual amount of children as determined by the hotel’s policy

integer format: int32
""
startDate
required

SimpleDateTimeItinerary startDate

string format: date
""
endDate
required

SimpleDateTimeItinerary endDate

string format: date
""
roomRateIdentifier
required

Specified master rate identifier

string
""
roomRateInternalName
required

Specified master rate internal name

string
""
ratePlan
required

Specified rate plan

object
identifier
required

Rate plan identifier

string format: uuid
"" >= 1 characters
name
required

Provides the name of the rate plan.

string
"" >= 1 characters
Example
BAR 1
breakfast
required

When true, indicates breakfast is included.

boolean
Example
false
brunch
required

When true, indicates brunch is included.

boolean
Example
false
lunch
required

When true, indicates lunch is included.

boolean
Example
false
dinner
required

When true, indicates dinner is included.

boolean
Example
false
allInclusive
required

Everything included except alcohol

boolean
Example
false
allInclusivePlusAlcohol
required

Everything included with alcohol

boolean
Example
false
earlyCheckInCharge
object
type
required

When the type is FIXED, fixedAmount is required. When the type is PERCENTAGE, percent is required.

string
""
Allowed values: FIXED PERCENTAGE
Example
PERCENTAGE
percent

A fraction between 0 and 1 (inclusive) representing a percentage of the total stay amount for an early check-in or late check-out, e.g. 0.25 for 25%. Direction (surcharge vs. discount) is determined by which field this charge is assigned to, not the sign of this value.

number format: float
"" <= 1
Example
0.25
fixedAmount

A localized amount, always non-negative. Direction (surcharge vs. discount) is determined by which field this charge is assigned to, not the sign of this value.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
Example
{
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
}
lateCheckOutCharge
object
type
required

When the type is FIXED, fixedAmount is required. When the type is PERCENTAGE, percent is required.

string
""
Allowed values: FIXED PERCENTAGE
Example
PERCENTAGE
percent

A fraction between 0 and 1 (inclusive) representing a percentage of the total stay amount for an early check-in or late check-out, e.g. 0.25 for 25%. Direction (surcharge vs. discount) is determined by which field this charge is assigned to, not the sign of this value.

number format: float
"" <= 1
Example
0.25
fixedAmount

A localized amount, always non-negative. Direction (surcharge vs. discount) is determined by which field this charge is assigned to, not the sign of this value.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
Example
{
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
}
Example
{
"name": "BAR 1",
"breakfast": false,
"brunch": false,
"lunch": false,
"dinner": false,
"allInclusive": false,
"allInclusivePlusAlcohol": false,
"earlyCheckInCharge": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"lateCheckOutCharge": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
}
}
perkTypes
Array<object>

Perks that accompany the master rate

object
id

Unique identifier for this record.

string format: uuid
""
Example
b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47
version

Optimistic-locking version. Echo this value back as an If-Match request header on a conditional update; the server responds 409 if the record changed in the meantime. Null when this projection has no backing versioned document, in which case no conditional update is possible.

integer | null format: int64
""
Example
3
guaranteed
required

Whether this perk is guaranteed to be provided or available on a best-effort basis. Guaranteed perks take priority in allocation.

boolean
Example
true
level
required

Platform tier/value assigned to this perk (0=standard, higher=premium). Used for internal prioritization and matching with rate tiers.

integer format: int32
""
Example
3
descriptions
required

Localized descriptions of this perk in multiple languages. Each element provides a name, description, and language code (e.g., ‘en’, ‘fr’, ‘de’).

Array<object>
>= 1 items

Foundation class for storing multi-language content (names and descriptions) with content change detection throughout the Wink Platform.

object
name
required

Use as title or short text description

string
""
Example
An example title
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
Example
This is a longer description in the specified language.
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
Example
en
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
Example
SYSTEM
md5ContentHash

The md5 hash of the name, description and language.

string
""
Example
d41d8cd98f00b204e9800998ecf8427e
hashMismatch
boolean
Example
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
sort
required

Display order when showing this perk in a list (ascending sort). Lower numbers appear first; 999 is reserved for disabled/unlisted perks.

integer format: int32
""
Example
5
createdDate

Datetime this record was first created

string | null format: date-time
""
Example
2026-01-14T09:30:00
lastUpdate

Datetime this record was last updated

string | null format: date-time
""
Example
2026-02-03T16:45:12
Example
{
"id": "PERK_GUARANTEED_UPGRADE",
"guaranteed": true,
"level": 3,
"descriptions": [
{
"language": "en",
"name": "Guaranteed Room Upgrade",
"description": "Guaranteed upgrade to the next available room category at check-in"
}
],
"sort": 5
}
price
required

Calculated price

object
userSpecifiedCurrencyBaseTotal

Base total in user specified currency.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
sourceBaseTotal

Base total in hotel’s currency.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
internalBaseTotal

Base total in wink currency.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
sourceExtraPaxModifier

Extra person modifier in hotel currency.

number
""
Example
15
internalExtraPaxModifier

Extra person modifier in wink currency

number
""
Example
15
userSpecifiedCurrencyExtraPaxModifier

Extra person modifier in user specified currency

number
""
Example
15
sourceExtraChildModifier

Extra child modifier in hotel currency

number
""
Example
15
internalExtraChildModifier

Extra child modifier in wink currency

number
""
Example
15
userSpecifiedCurrencyExtraChildModifier

Extra child modifier in user specified currcency

number
""
Example
15
sourceSingleOccupantModifier

Single occupant modifier in hotel currency

number
""
Example
-15
internalSingleOccupantModifier

Singe occupant modifier in wink currency

number
""
Example
-15
userSpecifiedCurrencySingleOccupantModifier

Single occupant modifier in user specified currency

number
""
Example
-15
sourcePromotionalModifier

Rate discount modifiers in hotel currency

number
""
Example
-40
internalPromotionalModifier

Rate discount modifiers in wink currency

number
""
Example
-40
userSpecifiedCurrencyPromotionalModifier

Rate discount modifiers in user specified currency

number
""
Example
-40
sourcePremiumModifier

Rate premiums modifiers in hotel currency

number
""
Example
40
internalPremiumModifier

Rate premiums modifiers in wink currency

number
""
Example
40
userSpecifiedCurrencyPremiumModifier

Rate premiums modifiers in user specified currency

number
""
Example
40
sourceChannelModifier

Channel / Membership modifier in hotel currency

number
""
Example
-10
internalChannelModifier

Channel / Membership modifier in wink currency

number
""
Example
-10
userSpecifiedCurrencyChannelModifier

Channel / Membership modifier in user specified currency

number
""
Example
-10
quantity

Quantity

integer format: int32
""
minOccupancy

Minimum occupancy

integer format: int32
""
maxOccupancy

Maximum occupancy

integer format: int32
""
rateSource

Source

string
""
promotionalDiscountPercent

Promotional discount percent

number
""
channelDiscountPercent

Chanel discount percent

number
""
premiumPercent

Premium percent

number
""
available

Available

boolean
sourceToUserCurrencyQuote

Hotel to user currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
Example
USD
target
required

ISO 4217 target currency code

string
"" >= 1 characters
Example
THB
exchangeRate
required

Exchange rate from source to target currency

number
""
Example
33.5
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
Example
1705233000000
Example
{
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
}
sourceToInternalCurrencyQuote

Hotel to wink currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
Example
USD
target
required

ISO 4217 target currency code

string
"" >= 1 characters
Example
THB
exchangeRate
required

Exchange rate from source to target currency

number
""
Example
33.5
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
Example
1705233000000
Example
{
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
}
offerDetails

Localized text of the discount

Array<object>

Simplified localized description containing text content and its language code.

object
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
Example
This is a longer description in the specified language.
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
Example
en
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
Example
SYSTEM
md5ContentHash

The md5 hash of the name, description and language.

string
""
Example
d41d8cd98f00b204e9800998ecf8427e
hashMismatch
boolean
Example
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
promotionalCodes

Promotional codes

Array<string>
list
Array<object>
object
sourceBaseRate

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
internalBaseRate

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
userSpecifiedCurrencyBaseRate

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
sourceExtraPaxModifier
number
internalExtraPaxModifier
number
userSpecifiedCurrencyExtraPaxModifier
number
sourceExtraChildModifier
number
internalExtraChildModifier
number
userSpecifiedCurrencyExtraChildModifier
number
sourceSingleOccupantModifier
number
internalSingleOccupantModifier
number
userSpecifiedCurrencySingleOccupantModifier
number
sourcePromotionalModifier
number
internalPromotionalModifier
number
userSpecifiedCurrencyPromotionalModifier
number
sourcePremiumModifier
number
internalPremiumModifier
number
userSpecifiedCurrencyPremiumModifier
number
sourceChannelModifier
number
internalChannelModifier
number
userSpecifiedCurrencyChannelModifier
number
available
boolean
isStartDate
boolean
isEndDate
boolean
isBetweenDate
boolean
isLastNight
boolean
offerDetails
Array<object>

Simplified localized description containing text content and its language code.

object
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
Example
This is a longer description in the specified language.
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
Example
en
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
Example
SYSTEM
md5ContentHash

The md5 hash of the name, description and language.

string
""
Example
d41d8cd98f00b204e9800998ecf8427e
hashMismatch
boolean
Example
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
hasModification
boolean
isBundledModifier
boolean
hasChannelDiscount
boolean
channelDiscountPercent
number
promotionalDiscountPercent
number
premiumPercent
number
promotion
string
adults
integer format: int32
children
integer format: int32
rate
required
object
identifier
required

Unique record identifier.

string
"" >= 1 characters
Example
5e8a3b7c-0d4f-4a2b-8c1d-9e6f2a0b4c73
hotelIdentifier
required

Owner of daily rate.

string format: uuid
"" >= 1 characters
Example
e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18
rateSource
required

Indicate where this rate originated from. Leave as TRAVELIKO unless you are a channel manager and responsible for the property’s rates externally of this platform.

string
default: TRAVELIKO >= 1 characters
Example
TRAVELIKO
ratePlanIdentifier
required

Rate plan associated with this daily rate.

string format: uuid
"" >= 1 characters
Example
5e8a3b7c-0d4f-4a2b-8c1d-9e6f2a0b4c73
guestRoomIdentifier
required

Guest room associated with this daily rate.

string format: uuid
"" >= 1 characters
Example
6f9b4c8d-1e5a-4b3c-9d2e-8a7f0c1b5e43
rate
required

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
master
required

This flag indicates whether this rate is available for this date.

boolean
default: true
Example
true
closedOnArrival
required

This flag indicates whether a guest can arrive at the property on this date.

boolean
Example
false
closedOnDeparture
required

This flag indicates whether a guest can leave the property on this date.

boolean
Example
false
date
required

The date this rate is applicable for.

string format: date
""
Example
2020-8-24
quantity

Amount of rooms available for this date.

integer format: int32
0
Example
9
minOccupancy
required

Minimum number of guests allowed in a room type.

integer format: int32
default: 1 >= 1
Example
1
maxOccupancy
required

Maximum number of guest allowed in a room type.

integer format: int32
default: 2 >= 1
Example
2
minLengthOfStay

Control the minimum length of stay at the day-level. This means that a guest arriving within this date range is required to stay at least these number of days in order to get this rate. Leave empty if you don’t want to update this property.

integer format: int32
default: -1
Example
4
maxLengthOfStay

Control the maximum length of stay at the day-level. This means that a guest arriving within this date range is required to stay no longer than these number of days in order to get this rate. Leave empty if you don’t want to update this property.

integer format: int32
default: -1
Example
8
singleOccupancyRateModifier
object
type
required

When the type is FIXED, fixedAmount is required. When the type is PERCENTAGE, percent is required.

string
""
Allowed values: FIXED PERCENTAGE
Example
PERCENTAGE
percent

A fraction between 0 and 1 (inclusive) representing a percentage of the total stay amount for an early check-in or late check-out, e.g. 0.25 for 25%. Direction (surcharge vs. discount) is determined by which field this charge is assigned to, not the sign of this value.

number format: float
"" <= 1
Example
0.25
fixedAmount

A localized amount, always non-negative. Direction (surcharge vs. discount) is determined by which field this charge is assigned to, not the sign of this value.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
Example
{
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
}
extraPaxRateModifier
object
type
required

When the type is FIXED, fixedAmount is required. When the type is PERCENTAGE, percent is required.

string
""
Allowed values: FIXED PERCENTAGE
Example
PERCENTAGE
percent

A fraction between 0 and 1 (inclusive) representing a percentage of the total stay amount for an early check-in or late check-out, e.g. 0.25 for 25%. Direction (surcharge vs. discount) is determined by which field this charge is assigned to, not the sign of this value.

number format: float
"" <= 1
Example
0.25
fixedAmount

A localized amount, always non-negative. Direction (surcharge vs. discount) is determined by which field this charge is assigned to, not the sign of this value.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
Example
{
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
}
extraChildRateModifier
object
type
required

When the type is FIXED, fixedAmount is required. When the type is PERCENTAGE, percent is required.

string
""
Allowed values: FIXED PERCENTAGE
Example
PERCENTAGE
percent

A fraction between 0 and 1 (inclusive) representing a percentage of the total stay amount for an early check-in or late check-out, e.g. 0.25 for 25%. Direction (surcharge vs. discount) is determined by which field this charge is assigned to, not the sign of this value.

number format: float
"" <= 1
Example
0.25
fixedAmount

A localized amount, always non-negative. Direction (surcharge vs. discount) is determined by which field this charge is assigned to, not the sign of this value.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
Example
{
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
}
Example
{
"identifier": "5e8a3b7c-0d4f-4a2b-8c1d-9e6f2a0b4c73",
"hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18",
"rateSource": "TRAVELIKO",
"ratePlanIdentifier": "5e8a3b7c-0d4f-4a2b-8c1d-9e6f2a0b4c73",
"guestRoomIdentifier": "6f9b4c8d-1e5a-4b3c-9d2e-8a7f0c1b5e43",
"rate": {
"amount": 1250,
"currency": "USD"
},
"master": true,
"closedOnArrival": false,
"closedOnDeparture": false,
"date": "2020-8-24",
"quantity": 9,
"minOccupancy": 1,
"maxOccupancy": 2,
"minLengthOfStay": 4,
"maxLengthOfStay": 8,
"singleOccupancyRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"extraPaxRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"extraChildRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
}
}
maxAdultOccupancy
required

Maximum number of adults allowed in a room type.

integer format: int32
default: 2 >= 1
Example
1
maxChildOccupancy
required

Maximum number of children allowed in a room type.

integer format: int32
0
Example
0
includedAdultOccupancy
required

The number of pax the room price was meant for

integer format: int32
default: 2
Example
2
includedChildOccupancy
required

The number of children the room price was meant for

integer format: int32
0
Example
0
sourceToUserCurrencyQuote
required

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
Example
USD
target
required

ISO 4217 target currency code

string
"" >= 1 characters
Example
THB
exchangeRate
required

Exchange rate from source to target currency

number
""
Example
33.5
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
Example
1705233000000
Example
{
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
}
sourceToInternalCurrencyQuote
required

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
Example
USD
target
required

ISO 4217 target currency code

string
"" >= 1 characters
Example
THB
exchangeRate
required

Exchange rate from source to target currency

number
""
Example
33.5
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
Example
1705233000000
Example
{
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
}
phantom
required
boolean
financialBreakdown
object
sourceCurrency
string
internalCurrency
string
displayCurrency
string
displayPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
Example
USD
target
required

ISO 4217 target currency code

string
"" >= 1 characters
Example
THB
exchangeRate
required

Exchange rate from source to target currency

number
""
Example
33.5
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
Example
1705233000000
Example
{
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
}
internalPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
Example
USD
target
required

ISO 4217 target currency code

string
"" >= 1 characters
Example
THB
exchangeRate
required

Exchange rate from source to target currency

number
""
Example
33.5
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
Example
1705233000000
Example
{
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
}
beneficiaryList
Array<object>

A beneficiary is a registered account entitled to a portion of booking funds. Funds are allocated by type (SALE, COMMISSION, PLATFORM_FEE, etc.) and tracked across source, display, and internal (platform) currencies. Refund modifiers record adjustments from cancellations.

object
accountIdentifier
required

Unique identifier of the beneficiary’s account in the TripPay system

string
"" >= 1 characters
Example
d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69
accountName
required

Display name of the beneficiary account (e.g. hotel, affiliate, or platform name)

string
"" >= 1 characters
Example
The Siam Residences, Bangkok
accountEmail
required

Contact email address for the beneficiary account

string format: email
"" >= 1 characters
accountUrl

Profile or dashboard URL for the beneficiary account

string
""
Example
https://trvl.as/the-siam-residences-bangkok
type
required

Category of the beneficiary: SALE (property), COMMISSION (affiliate), PLATFORM_FEE (Wink), TRIP_PAY (platform internal), or agency fees

string
""
Allowed values: TRIP_PAY PLATFORM_FEE COMMISSION AFFILIATE_AGENCY_FEE SUPPLIER_AGENCY_FEE SALE
amountDue

Charge rule: either a fixed percentage of the total stay or the remainder after other beneficiaries are deducted

object
type
required

PERCENTAGE: apply the percent field to the total booking price. REMAINDER: this beneficiary receives whatever is left after other beneficiaries are satisfied (typically used for the hotel).

string
""
Allowed values: PERCENTAGE REMAINDER
percent

The percentage value (0.0–1.0) to apply to the total booking amount when type=PERCENTAGE. For example, 0.050 = 5% of the booking price. Ignored when type=REMAINDER.

number
""
Example
0.05
Example
{
"percent": 0.05
}
sourceCurrency
required

ISO 4217 currency code for the originating source (supplier’s local currency, e.g. hotel in Thailand uses THB)

string
"" >= 1 characters
Example
THB
displayCurrency
required

ISO 4217 currency code for display to the user (e.g. booking shown in USD)

string
"" >= 1 characters
Example
USD
internalCurrency
required

ISO 4217 currency code for internal platform ledger (always USD)

string
"" >= 1 characters
Example
USD
sourceAmount
required

Gross amount owed to this beneficiary in source currency (before refunds)

number
""
Example
450
displayAmount
required

Gross amount owed to this beneficiary in display currency (before refunds)

number
""
Example
450
internalAmount
required

Gross amount owed to this beneficiary in internal currency (before refunds)

number
""
Example
450
sourceAmountRefundModifier
required

Cumulative refund reduction applied to sourceAmount (sum of all applied PendingRefunds)

number
""
Example
45
displayAmountRefundModifier
required

Cumulative refund reduction applied to displayAmount (sum of all applied PendingRefunds)

number
""
Example
45
internalAmountRefundModifier
required

Cumulative refund reduction applied to internalAmount (sum of all applied PendingRefunds)

number
""
Example
45
pendingRefunds
Array<object>

Pending refunds awaiting settlement. Once a refund transitions from PENDING to APPLIED, it moves out of this list and into the corresponding *AmountRefundModifier property

object
refundIdentifier
required

Unique identifier linking this pending refund to the parent booking’s refund record

string
"" >= 1 characters
Example
ref-d5b8a3c2-9e6f-4a1b-8d34
sourceAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s sourceAmount when applied

number
""
Example
45
displayAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s displayAmount when applied

number
""
Example
45
internalAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s internalAmount when applied

number
""
Example
45
Example
{
"refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34",
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45
}
netSourceAmount
required

Net amount owed in source currency (sourceAmount - sourceAmountRefundModifier)

number
""
Example
450
netDisplayAmount
required

Net amount owed in display currency (displayAmount - displayAmountRefundModifier)

number
""
Example
450
netInternalAmount
required

Net amount owed in internal currency (internalAmount - internalAmountRefundModifier)

number
""
Example
450
reconciled

Flag indicating whether net amounts have been transferred (disbursed) from TripPay to the beneficiary

boolean
Example
false
metadata

Additional key-value metadata for the beneficiary (e.g. bank details, supplier identifiers)

object
key
additional properties
string
Example
{
"accountIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"accountName": "The Siam Residences, Bangkok",
"accountEmail": "[email protected]",
"accountUrl": "https://trvl.as/the-siam-residences-bangkok",
"amountDue": {
"percent": 0.05
},
"sourceCurrency": "THB",
"displayCurrency": "USD",
"internalCurrency": "USD",
"sourceAmount": 450,
"displayAmount": 450,
"internalAmount": 450,
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45,
"pendingRefunds": [
{
"refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34",
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45
}
],
"netSourceAmount": 450,
"netDisplayAmount": 450,
"netInternalAmount": 450,
"reconciled": false
}
sourceAmount
number
internalAmount
number
displayAmount
number
sourceAmountRefundModifier
number
internalAmountRefundModifier
number
displayAmountRefundModifier
number
netSourceAmount
number
netInternalAmount
number
netDisplayAmount
number
commissionableTotalSourceAmount
number
commissionableTotalInternalAmount
number
commissionableTotalDisplayAmount
number
netCommissionableTotalSourceAmount
number
netCommissionableTotalInternalAmount
number
netCommissionableTotalDisplayAmount
number
totalFeesAndCommissionsSourceAmount
number
totalFeesAndCommissionsInternalAmount
number
totalFeesAndCommissionsDisplayAmount
number
netTotalFeesAndCommissionsSourceAmount
number
netTotalFeesAndCommissionsInternalAmount
number
netTotalFeesAndCommissionsDisplayAmount
number
totalFeesSourceAmount
number
totalFeesInternalAmount
number
totalFeesDisplayAmount
number
netTotalFeesSourceAmount
number
netTotalFeesInternalAmount
number
netTotalFeesDisplayAmount
number
totalPlatformFeeSourceAmount
number
totalPlatformFeeInternalAmount
number
totalPlatformFeeDisplayAmount
number
netTotalPlatformFeeSourceAmount
number
netTotalPlatformFeeInternalAmount
number
netTotalPlatformFeeDisplayAmount
number
totalPaymentProcessingFeeSourceAmount
number
totalPaymentProcessingFeeInternalAmount
number
totalPaymentProcessingFeeDisplayAmount
number
netTotalPaymentProcessingFeeSourceAmount
number
netTotalPaymentProcessingFeeInternalAmount
number
netTotalPaymentProcessingFeeDisplayAmount
number
totalSalesSourceAmount
number
totalSalesInternalAmount
number
totalSalesDisplayAmount
number
netTotalSalesSourceAmount
number
netTotalSalesInternalAmount
number
netTotalSalesDisplayAmount
number
totalAffiliateAgencyFeesSourceAmount
number
totalAffiliateAgencyFeesInternalAmount
number
totalAffiliateAgencyFeesDisplayAmount
number
netTotalAffiliateAgencyFeesSourceAmount
number
netTotalAffiliateAgencyFeesInternalAmount
number
netTotalAffiliateAgencyFeesDisplayAmount
number
totalSupplierAgencyFeesSourceAmount
number
totalSupplierAgencyFeesInternalAmount
number
totalSupplierAgencyFeesDisplayAmount
number
netTotalSupplierAgencyFeesSourceAmount
number
netTotalSupplierAgencyFeesInternalAmount
number
netTotalSupplierAgencyFeesDisplayAmount
number
netTotalCustomersSourceAmount
number
netTotalCustomersInternalAmount
number
netTotalCustomersDisplayAmount
number
metadata
object
key
additional properties
Example
{
"displayPriceQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"internalPriceQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"beneficiaryList": [
{
"accountIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"accountName": "The Siam Residences, Bangkok",
"accountEmail": "[email protected]",
"accountUrl": "https://trvl.as/the-siam-residences-bangkok",
"amountDue": {
"percent": 0.05
},
"sourceCurrency": "THB",
"displayCurrency": "USD",
"internalCurrency": "USD",
"sourceAmount": 450,
"displayAmount": 450,
"internalAmount": 450,
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45,
"pendingRefunds": [
{
"refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34",
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45
}
],
"netSourceAmount": 450,
"netDisplayAmount": 450,
"netInternalAmount": 450,
"reconciled": false
}
]
}
sourceTotal

Final per-night rate in hotel currency (base + modifiers). Computed at instantiation.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
internalTotal

Final per-night rate in wink currency (base + modifiers). Computed at instantiation.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
userSpecifiedCurrencyTotal

Final per-night rate in user specified currency (base + modifiers). Computed at instantiation.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
date
string format: date
startDate
boolean
lastNight
boolean
rateIdentifier
string
betweenDate
boolean
bundledModifier
boolean
closeOnDeparture
boolean
inventoryAvailable
boolean
masterAvailability
boolean
closeOnArrival
boolean
sourceRate

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
userSpecifiedCurrencyRate

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
internalRate

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
source
string
beneficiaryList
Array<object>

A beneficiary is a registered account entitled to a portion of booking funds. Funds are allocated by type (SALE, COMMISSION, PLATFORM_FEE, etc.) and tracked across source, display, and internal (platform) currencies. Refund modifiers record adjustments from cancellations.

object
accountIdentifier
required

Unique identifier of the beneficiary’s account in the TripPay system

string
"" >= 1 characters
Example
d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69
accountName
required

Display name of the beneficiary account (e.g. hotel, affiliate, or platform name)

string
"" >= 1 characters
Example
The Siam Residences, Bangkok
accountEmail
required

Contact email address for the beneficiary account

string format: email
"" >= 1 characters
accountUrl

Profile or dashboard URL for the beneficiary account

string
""
Example
https://trvl.as/the-siam-residences-bangkok
type
required

Category of the beneficiary: SALE (property), COMMISSION (affiliate), PLATFORM_FEE (Wink), TRIP_PAY (platform internal), or agency fees

string
""
Allowed values: TRIP_PAY PLATFORM_FEE COMMISSION AFFILIATE_AGENCY_FEE SUPPLIER_AGENCY_FEE SALE
amountDue

Charge rule: either a fixed percentage of the total stay or the remainder after other beneficiaries are deducted

object
type
required

PERCENTAGE: apply the percent field to the total booking price. REMAINDER: this beneficiary receives whatever is left after other beneficiaries are satisfied (typically used for the hotel).

string
""
Allowed values: PERCENTAGE REMAINDER
percent

The percentage value (0.0–1.0) to apply to the total booking amount when type=PERCENTAGE. For example, 0.050 = 5% of the booking price. Ignored when type=REMAINDER.

number
""
Example
0.05
Example
{
"percent": 0.05
}
sourceCurrency
required

ISO 4217 currency code for the originating source (supplier’s local currency, e.g. hotel in Thailand uses THB)

string
"" >= 1 characters
Example
THB
displayCurrency
required

ISO 4217 currency code for display to the user (e.g. booking shown in USD)

string
"" >= 1 characters
Example
USD
internalCurrency
required

ISO 4217 currency code for internal platform ledger (always USD)

string
"" >= 1 characters
Example
USD
sourceAmount
required

Gross amount owed to this beneficiary in source currency (before refunds)

number
""
Example
450
displayAmount
required

Gross amount owed to this beneficiary in display currency (before refunds)

number
""
Example
450
internalAmount
required

Gross amount owed to this beneficiary in internal currency (before refunds)

number
""
Example
450
sourceAmountRefundModifier
required

Cumulative refund reduction applied to sourceAmount (sum of all applied PendingRefunds)

number
""
Example
45
displayAmountRefundModifier
required

Cumulative refund reduction applied to displayAmount (sum of all applied PendingRefunds)

number
""
Example
45
internalAmountRefundModifier
required

Cumulative refund reduction applied to internalAmount (sum of all applied PendingRefunds)

number
""
Example
45
pendingRefunds
Array<object>

Pending refunds awaiting settlement. Once a refund transitions from PENDING to APPLIED, it moves out of this list and into the corresponding *AmountRefundModifier property

object
refundIdentifier
required

Unique identifier linking this pending refund to the parent booking’s refund record

string
"" >= 1 characters
Example
ref-d5b8a3c2-9e6f-4a1b-8d34
sourceAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s sourceAmount when applied

number
""
Example
45
displayAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s displayAmount when applied

number
""
Example
45
internalAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s internalAmount when applied

number
""
Example
45
Example
{
"refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34",
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45
}
netSourceAmount
required

Net amount owed in source currency (sourceAmount - sourceAmountRefundModifier)

number
""
Example
450
netDisplayAmount
required

Net amount owed in display currency (displayAmount - displayAmountRefundModifier)

number
""
Example
450
netInternalAmount
required

Net amount owed in internal currency (internalAmount - internalAmountRefundModifier)

number
""
Example
450
reconciled

Flag indicating whether net amounts have been transferred (disbursed) from TripPay to the beneficiary

boolean
Example
false
metadata

Additional key-value metadata for the beneficiary (e.g. bank details, supplier identifiers)

object
key
additional properties
string
Example
{
"accountIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"accountName": "The Siam Residences, Bangkok",
"accountEmail": "[email protected]",
"accountUrl": "https://trvl.as/the-siam-residences-bangkok",
"amountDue": {
"percent": 0.05
},
"sourceCurrency": "THB",
"displayCurrency": "USD",
"internalCurrency": "USD",
"sourceAmount": 450,
"displayAmount": 450,
"internalAmount": 450,
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45,
"pendingRefunds": [
{
"refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34",
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45
}
],
"netSourceAmount": 450,
"netDisplayAmount": 450,
"netInternalAmount": 450,
"reconciled": false
}
maxOccupancy
integer format: int32
minOccupancy
integer format: int32
minLOS
integer format: int32
maxLOS
integer format: int32
endDate
boolean
baseRate

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
totalDiscountPercent
number
quantity
integer format: int32
Example
{
"sourceBaseRate": {
"amount": 1250,
"currency": "USD"
},
"internalBaseRate": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyBaseRate": {
"amount": 1250,
"currency": "USD"
},
"offerDetails": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
],
"rate": {
"identifier": "5e8a3b7c-0d4f-4a2b-8c1d-9e6f2a0b4c73",
"hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18",
"rateSource": "TRAVELIKO",
"ratePlanIdentifier": "5e8a3b7c-0d4f-4a2b-8c1d-9e6f2a0b4c73",
"guestRoomIdentifier": "6f9b4c8d-1e5a-4b3c-9d2e-8a7f0c1b5e43",
"rate": {
"amount": 1250,
"currency": "USD"
},
"master": true,
"closedOnArrival": false,
"closedOnDeparture": false,
"date": "2020-8-24",
"quantity": 9,
"minOccupancy": 1,
"maxOccupancy": 2,
"minLengthOfStay": 4,
"maxLengthOfStay": 8,
"singleOccupancyRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"extraPaxRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"extraChildRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
}
},
"maxAdultOccupancy": 1,
"maxChildOccupancy": 0,
"includedAdultOccupancy": 2,
"includedChildOccupancy": 0,
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"financialBreakdown": {
"displayPriceQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"internalPriceQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"beneficiaryList": [
{
"accountIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"accountName": "The Siam Residences, Bangkok",
"accountEmail": "[email protected]",
"accountUrl": "https://trvl.as/the-siam-residences-bangkok",
"amountDue": {
"percent": 0.05
},
"sourceCurrency": "THB",
"displayCurrency": "USD",
"internalCurrency": "USD",
"sourceAmount": 450,
"displayAmount": 450,
"internalAmount": 450,
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45,
"pendingRefunds": [
{
"refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34",
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45
}
],
"netSourceAmount": 450,
"netDisplayAmount": 450,
"netInternalAmount": 450,
"reconciled": false
}
]
},
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceRate": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyRate": {
"amount": 1250,
"currency": "USD"
},
"internalRate": {
"amount": 1250,
"currency": "USD"
},
"beneficiaryList": [
{
"accountIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"accountName": "The Siam Residences, Bangkok",
"accountEmail": "[email protected]",
"accountUrl": "https://trvl.as/the-siam-residences-bangkok",
"amountDue": {
"percent": 0.05
},
"sourceCurrency": "THB",
"displayCurrency": "USD",
"internalCurrency": "USD",
"sourceAmount": 450,
"displayAmount": 450,
"internalAmount": 450,
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45,
"pendingRefunds": [
{
"refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34",
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45
}
],
"netSourceAmount": 450,
"netDisplayAmount": 450,
"netInternalAmount": 450,
"reconciled": false
}
],
"baseRate": {
"amount": 1250,
"currency": "USD"
}
}
userSpecifiedCurrencyTotal

User-defined currency final price.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
sourceTotal

Source currency final price.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
internalTotal

Internal currency final price.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
financialBreakdown
object
sourceCurrency
string
internalCurrency
string
displayCurrency
string
displayPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
Example
USD
target
required

ISO 4217 target currency code

string
"" >= 1 characters
Example
THB
exchangeRate
required

Exchange rate from source to target currency

number
""
Example
33.5
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
Example
1705233000000
Example
{
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
}
internalPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
Example
USD
target
required

ISO 4217 target currency code

string
"" >= 1 characters
Example
THB
exchangeRate
required

Exchange rate from source to target currency

number
""
Example
33.5
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
Example
1705233000000
Example
{
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
}
beneficiaryList
Array<object>

A beneficiary is a registered account entitled to a portion of booking funds. Funds are allocated by type (SALE, COMMISSION, PLATFORM_FEE, etc.) and tracked across source, display, and internal (platform) currencies. Refund modifiers record adjustments from cancellations.

object
accountIdentifier
required

Unique identifier of the beneficiary’s account in the TripPay system

string
"" >= 1 characters
Example
d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69
accountName
required

Display name of the beneficiary account (e.g. hotel, affiliate, or platform name)

string
"" >= 1 characters
Example
The Siam Residences, Bangkok
accountEmail
required

Contact email address for the beneficiary account

string format: email
"" >= 1 characters
accountUrl

Profile or dashboard URL for the beneficiary account

string
""
Example
https://trvl.as/the-siam-residences-bangkok
type
required

Category of the beneficiary: SALE (property), COMMISSION (affiliate), PLATFORM_FEE (Wink), TRIP_PAY (platform internal), or agency fees

string
""
Allowed values: TRIP_PAY PLATFORM_FEE COMMISSION AFFILIATE_AGENCY_FEE SUPPLIER_AGENCY_FEE SALE
amountDue

Charge rule: either a fixed percentage of the total stay or the remainder after other beneficiaries are deducted

object
type
required

PERCENTAGE: apply the percent field to the total booking price. REMAINDER: this beneficiary receives whatever is left after other beneficiaries are satisfied (typically used for the hotel).

string
""
Allowed values: PERCENTAGE REMAINDER
percent

The percentage value (0.0–1.0) to apply to the total booking amount when type=PERCENTAGE. For example, 0.050 = 5% of the booking price. Ignored when type=REMAINDER.

number
""
Example
0.05
Example
{
"percent": 0.05
}
sourceCurrency
required

ISO 4217 currency code for the originating source (supplier’s local currency, e.g. hotel in Thailand uses THB)

string
"" >= 1 characters
Example
THB
displayCurrency
required

ISO 4217 currency code for display to the user (e.g. booking shown in USD)

string
"" >= 1 characters
Example
USD
internalCurrency
required

ISO 4217 currency code for internal platform ledger (always USD)

string
"" >= 1 characters
Example
USD
sourceAmount
required

Gross amount owed to this beneficiary in source currency (before refunds)

number
""
Example
450
displayAmount
required

Gross amount owed to this beneficiary in display currency (before refunds)

number
""
Example
450
internalAmount
required

Gross amount owed to this beneficiary in internal currency (before refunds)

number
""
Example
450
sourceAmountRefundModifier
required

Cumulative refund reduction applied to sourceAmount (sum of all applied PendingRefunds)

number
""
Example
45
displayAmountRefundModifier
required

Cumulative refund reduction applied to displayAmount (sum of all applied PendingRefunds)

number
""
Example
45
internalAmountRefundModifier
required

Cumulative refund reduction applied to internalAmount (sum of all applied PendingRefunds)

number
""
Example
45
pendingRefunds
Array<object>

Pending refunds awaiting settlement. Once a refund transitions from PENDING to APPLIED, it moves out of this list and into the corresponding *AmountRefundModifier property

object
refundIdentifier
required

Unique identifier linking this pending refund to the parent booking’s refund record

string
"" >= 1 characters
Example
ref-d5b8a3c2-9e6f-4a1b-8d34
sourceAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s sourceAmount when applied

number
""
Example
45
displayAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s displayAmount when applied

number
""
Example
45
internalAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s internalAmount when applied

number
""
Example
45
Example
{
"refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34",
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45
}
netSourceAmount
required

Net amount owed in source currency (sourceAmount - sourceAmountRefundModifier)

number
""
Example
450
netDisplayAmount
required

Net amount owed in display currency (displayAmount - displayAmountRefundModifier)

number
""
Example
450
netInternalAmount
required

Net amount owed in internal currency (internalAmount - internalAmountRefundModifier)

number
""
Example
450
reconciled

Flag indicating whether net amounts have been transferred (disbursed) from TripPay to the beneficiary

boolean
Example
false
metadata

Additional key-value metadata for the beneficiary (e.g. bank details, supplier identifiers)

object
key
additional properties
string
Example
{
"accountIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"accountName": "The Siam Residences, Bangkok",
"accountEmail": "[email protected]",
"accountUrl": "https://trvl.as/the-siam-residences-bangkok",
"amountDue": {
"percent": 0.05
},
"sourceCurrency": "THB",
"displayCurrency": "USD",
"internalCurrency": "USD",
"sourceAmount": 450,
"displayAmount": 450,
"internalAmount": 450,
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45,
"pendingRefunds": [
{
"refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34",
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45
}
],
"netSourceAmount": 450,
"netDisplayAmount": 450,
"netInternalAmount": 450,
"reconciled": false
}
sourceAmount
number
internalAmount
number
displayAmount
number
sourceAmountRefundModifier
number
internalAmountRefundModifier
number
displayAmountRefundModifier
number
netSourceAmount
number
netInternalAmount
number
netDisplayAmount
number
commissionableTotalSourceAmount
number
commissionableTotalInternalAmount
number
commissionableTotalDisplayAmount
number
netCommissionableTotalSourceAmount
number
netCommissionableTotalInternalAmount
number
netCommissionableTotalDisplayAmount
number
totalFeesAndCommissionsSourceAmount
number
totalFeesAndCommissionsInternalAmount
number
totalFeesAndCommissionsDisplayAmount
number
netTotalFeesAndCommissionsSourceAmount
number
netTotalFeesAndCommissionsInternalAmount
number
netTotalFeesAndCommissionsDisplayAmount
number
totalFeesSourceAmount
number
totalFeesInternalAmount
number
totalFeesDisplayAmount
number
netTotalFeesSourceAmount
number
netTotalFeesInternalAmount
number
netTotalFeesDisplayAmount
number
totalPlatformFeeSourceAmount
number
totalPlatformFeeInternalAmount
number
totalPlatformFeeDisplayAmount
number
netTotalPlatformFeeSourceAmount
number
netTotalPlatformFeeInternalAmount
number
netTotalPlatformFeeDisplayAmount
number
totalPaymentProcessingFeeSourceAmount
number
totalPaymentProcessingFeeInternalAmount
number
totalPaymentProcessingFeeDisplayAmount
number
netTotalPaymentProcessingFeeSourceAmount
number
netTotalPaymentProcessingFeeInternalAmount
number
netTotalPaymentProcessingFeeDisplayAmount
number
totalSalesSourceAmount
number
totalSalesInternalAmount
number
totalSalesDisplayAmount
number
netTotalSalesSourceAmount
number
netTotalSalesInternalAmount
number
netTotalSalesDisplayAmount
number
totalAffiliateAgencyFeesSourceAmount
number
totalAffiliateAgencyFeesInternalAmount
number
totalAffiliateAgencyFeesDisplayAmount
number
netTotalAffiliateAgencyFeesSourceAmount
number
netTotalAffiliateAgencyFeesInternalAmount
number
netTotalAffiliateAgencyFeesDisplayAmount
number
totalSupplierAgencyFeesSourceAmount
number
totalSupplierAgencyFeesInternalAmount
number
totalSupplierAgencyFeesDisplayAmount
number
netTotalSupplierAgencyFeesSourceAmount
number
netTotalSupplierAgencyFeesInternalAmount
number
netTotalSupplierAgencyFeesDisplayAmount
number
netTotalCustomersSourceAmount
number
netTotalCustomersInternalAmount
number
netTotalCustomersDisplayAmount
number
metadata
object
key
additional properties
Example
{
"displayPriceQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"internalPriceQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"beneficiaryList": [
{
"accountIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"accountName": "The Siam Residences, Bangkok",
"accountEmail": "[email protected]",
"accountUrl": "https://trvl.as/the-siam-residences-bangkok",
"amountDue": {
"percent": 0.05
},
"sourceCurrency": "THB",
"displayCurrency": "USD",
"internalCurrency": "USD",
"sourceAmount": 450,
"displayAmount": 450,
"internalAmount": 450,
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45,
"pendingRefunds": [
{
"refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34",
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45
}
],
"netSourceAmount": 450,
"netDisplayAmount": 450,
"netInternalAmount": 450,
"reconciled": false
}
]
}
userSpecifiedCurrencyAveragePricePerNight

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
internalAveragePricePerNight

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
sourceAveragePricePerNight

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
beneficiaryList
Array<object>

A beneficiary is a registered account entitled to a portion of booking funds. Funds are allocated by type (SALE, COMMISSION, PLATFORM_FEE, etc.) and tracked across source, display, and internal (platform) currencies. Refund modifiers record adjustments from cancellations.

object
accountIdentifier
required

Unique identifier of the beneficiary’s account in the TripPay system

string
"" >= 1 characters
Example
d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69
accountName
required

Display name of the beneficiary account (e.g. hotel, affiliate, or platform name)

string
"" >= 1 characters
Example
The Siam Residences, Bangkok
accountEmail
required

Contact email address for the beneficiary account

string format: email
"" >= 1 characters
accountUrl

Profile or dashboard URL for the beneficiary account

string
""
Example
https://trvl.as/the-siam-residences-bangkok
type
required

Category of the beneficiary: SALE (property), COMMISSION (affiliate), PLATFORM_FEE (Wink), TRIP_PAY (platform internal), or agency fees

string
""
Allowed values: TRIP_PAY PLATFORM_FEE COMMISSION AFFILIATE_AGENCY_FEE SUPPLIER_AGENCY_FEE SALE
amountDue

Charge rule: either a fixed percentage of the total stay or the remainder after other beneficiaries are deducted

object
type
required

PERCENTAGE: apply the percent field to the total booking price. REMAINDER: this beneficiary receives whatever is left after other beneficiaries are satisfied (typically used for the hotel).

string
""
Allowed values: PERCENTAGE REMAINDER
percent

The percentage value (0.0–1.0) to apply to the total booking amount when type=PERCENTAGE. For example, 0.050 = 5% of the booking price. Ignored when type=REMAINDER.

number
""
Example
0.05
Example
{
"percent": 0.05
}
sourceCurrency
required

ISO 4217 currency code for the originating source (supplier’s local currency, e.g. hotel in Thailand uses THB)

string
"" >= 1 characters
Example
THB
displayCurrency
required

ISO 4217 currency code for display to the user (e.g. booking shown in USD)

string
"" >= 1 characters
Example
USD
internalCurrency
required

ISO 4217 currency code for internal platform ledger (always USD)

string
"" >= 1 characters
Example
USD
sourceAmount
required

Gross amount owed to this beneficiary in source currency (before refunds)

number
""
Example
450
displayAmount
required

Gross amount owed to this beneficiary in display currency (before refunds)

number
""
Example
450
internalAmount
required

Gross amount owed to this beneficiary in internal currency (before refunds)

number
""
Example
450
sourceAmountRefundModifier
required

Cumulative refund reduction applied to sourceAmount (sum of all applied PendingRefunds)

number
""
Example
45
displayAmountRefundModifier
required

Cumulative refund reduction applied to displayAmount (sum of all applied PendingRefunds)

number
""
Example
45
internalAmountRefundModifier
required

Cumulative refund reduction applied to internalAmount (sum of all applied PendingRefunds)

number
""
Example
45
pendingRefunds
Array<object>

Pending refunds awaiting settlement. Once a refund transitions from PENDING to APPLIED, it moves out of this list and into the corresponding *AmountRefundModifier property

object
refundIdentifier
required

Unique identifier linking this pending refund to the parent booking’s refund record

string
"" >= 1 characters
Example
ref-d5b8a3c2-9e6f-4a1b-8d34
sourceAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s sourceAmount when applied

number
""
Example
45
displayAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s displayAmount when applied

number
""
Example
45
internalAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s internalAmount when applied

number
""
Example
45
Example
{
"refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34",
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45
}
netSourceAmount
required

Net amount owed in source currency (sourceAmount - sourceAmountRefundModifier)

number
""
Example
450
netDisplayAmount
required

Net amount owed in display currency (displayAmount - displayAmountRefundModifier)

number
""
Example
450
netInternalAmount
required

Net amount owed in internal currency (internalAmount - internalAmountRefundModifier)

number
""
Example
450
reconciled

Flag indicating whether net amounts have been transferred (disbursed) from TripPay to the beneficiary

boolean
Example
false
metadata

Additional key-value metadata for the beneficiary (e.g. bank details, supplier identifiers)

object
key
additional properties
string
Example
{
"accountIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"accountName": "The Siam Residences, Bangkok",
"accountEmail": "[email protected]",
"accountUrl": "https://trvl.as/the-siam-residences-bangkok",
"amountDue": {
"percent": 0.05
},
"sourceCurrency": "THB",
"displayCurrency": "USD",
"internalCurrency": "USD",
"sourceAmount": 450,
"displayAmount": 450,
"internalAmount": 450,
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45,
"pendingRefunds": [
{
"refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34",
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45
}
],
"netSourceAmount": 450,
"netDisplayAmount": 450,
"netInternalAmount": 450,
"reconciled": false
}
totalDiscountPercent
number
Example
{
"userSpecifiedCurrencyBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"internalBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceExtraPaxModifier": 15,
"internalExtraPaxModifier": 15,
"userSpecifiedCurrencyExtraPaxModifier": 15,
"sourceExtraChildModifier": 15,
"internalExtraChildModifier": 15,
"userSpecifiedCurrencyExtraChildModifier": 15,
"sourceSingleOccupantModifier": -15,
"internalSingleOccupantModifier": -15,
"userSpecifiedCurrencySingleOccupantModifier": -15,
"sourcePromotionalModifier": -40,
"internalPromotionalModifier": -40,
"userSpecifiedCurrencyPromotionalModifier": -40,
"sourcePremiumModifier": 40,
"internalPremiumModifier": 40,
"userSpecifiedCurrencyPremiumModifier": 40,
"sourceChannelModifier": -10,
"internalChannelModifier": -10,
"userSpecifiedCurrencyChannelModifier": -10,
"available": false,
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"offerDetails": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
],
"list": [
{
"sourceBaseRate": {
"amount": 1250,
"currency": "USD"
},
"internalBaseRate": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyBaseRate": {
"amount": 1250,
"currency": "USD"
},
"offerDetails": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
],
"rate": {
"identifier": "5e8a3b7c-0d4f-4a2b-8c1d-9e6f2a0b4c73",
"hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18",
"rateSource": "TRAVELIKO",
"ratePlanIdentifier": "5e8a3b7c-0d4f-4a2b-8c1d-9e6f2a0b4c73",
"guestRoomIdentifier": "6f9b4c8d-1e5a-4b3c-9d2e-8a7f0c1b5e43",
"rate": {
"amount": 1250,
"currency": "USD"
},
"master": true,
"closedOnArrival": false,
"closedOnDeparture": false,
"date": "2020-8-24",
"quantity": 9,
"minOccupancy": 1,
"maxOccupancy": 2,
"minLengthOfStay": 4,
"maxLengthOfStay": 8,
"singleOccupancyRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"extraPaxRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"extraChildRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
}
},
"maxAdultOccupancy": 1,
"maxChildOccupancy": 0,
"includedAdultOccupancy": 2,
"includedChildOccupancy": 0,
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"financialBreakdown": {
"displayPriceQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"internalPriceQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"beneficiaryList": [
{
"accountIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"accountName": "The Siam Residences, Bangkok",
"accountEmail": "[email protected]",
"accountUrl": "https://trvl.as/the-siam-residences-bangkok",
"amountDue": {
"percent": 0.05
},
"sourceCurrency": "THB",
"displayCurrency": "USD",
"internalCurrency": "USD",
"sourceAmount": 450,
"displayAmount": 450,
"internalAmount": 450,
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45,
"pendingRefunds": [
{
"refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34",
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45
}
],
"netSourceAmount": 450,
"netDisplayAmount": 450,
"netInternalAmount": 450,
"reconciled": false
}
]
},
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceRate": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyRate": {
"amount": 1250,
"currency": "USD"
},
"internalRate": {
"amount": 1250,
"currency": "USD"
},
"beneficiaryList": [
{
"accountIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"accountName": "The Siam Residences, Bangkok",
"accountEmail": "[email protected]",
"accountUrl": "https://trvl.as/the-siam-residences-bangkok",
"amountDue": {
"percent": 0.05
},
"sourceCurrency": "THB",
"displayCurrency": "USD",
"internalCurrency": "USD",
"sourceAmount": 450,
"displayAmount": 450,
"internalAmount": 450,
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45,
"pendingRefunds": [
{
"refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34",
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45
}
],
"netSourceAmount": 450,
"netDisplayAmount": 450,
"netInternalAmount": 450,
"reconciled": false
}
],
"baseRate": {
"amount": 1250,
"currency": "USD"
}
}
],
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"financialBreakdown": {
"displayPriceQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"internalPriceQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"beneficiaryList": [
{
"accountIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"accountName": "The Siam Residences, Bangkok",
"accountEmail": "[email protected]",
"accountUrl": "https://trvl.as/the-siam-residences-bangkok",
"amountDue": {
"percent": 0.05
},
"sourceCurrency": "THB",
"displayCurrency": "USD",
"internalCurrency": "USD",
"sourceAmount": 450,
"displayAmount": 450,
"internalAmount": 450,
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45,
"pendingRefunds": [
{
"refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34",
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45
}
],
"netSourceAmount": 450,
"netDisplayAmount": 450,
"netInternalAmount": 450,
"reconciled": false
}
]
},
"userSpecifiedCurrencyAveragePricePerNight": {
"amount": 1250,
"currency": "USD"
},
"internalAveragePricePerNight": {
"amount": 1250,
"currency": "USD"
},
"sourceAveragePricePerNight": {
"amount": 1250,
"currency": "USD"
},
"beneficiaryList": [
{
"accountIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"accountName": "The Siam Residences, Bangkok",
"accountEmail": "[email protected]",
"accountUrl": "https://trvl.as/the-siam-residences-bangkok",
"amountDue": {
"percent": 0.05
},
"sourceCurrency": "THB",
"displayCurrency": "USD",
"internalCurrency": "USD",
"sourceAmount": 450,
"displayAmount": 450,
"internalAmount": 450,
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45,
"pendingRefunds": [
{
"refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34",
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45
}
],
"netSourceAmount": 450,
"netDisplayAmount": 450,
"netInternalAmount": 450,
"reconciled": false
}
]
}
extraCharges

Per rate plan level extra charges with localized prices

object
items
Items

List of extra charges that applies to the rate plan.

Array<object>
""
object
ratePlanLevelFee

What the guest is paying extra for

object
descriptions
required

Localized descriptions of this fee in multiple languages. At least one entry in English is required.

Array<object>
"" >= 1 items

Simplified localized description containing text content and its language code.

object
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
Example
This is a longer description in the specified language.
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
Example
en
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
Example
SYSTEM
md5ContentHash

The md5 hash of the name, description and language.

string
""
Example
d41d8cd98f00b204e9800998ecf8427e
hashMismatch
boolean
Example
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
fixedAmount
required

The fixed fee amount in the property’s local currency.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
type
required

How this fee is charged: per day, per stay, per person per day, or per person per stay.

string
""
Allowed values: PER_DAY PER_STAY PER_PERSON_PER_DAY PER_PERSON_PER_STAY
Example
PER_DAY
Example
{
"descriptions": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
],
"fixedAmount": 450,
"type": "PER_DAY"
}
unitPrice

The localized unit price of the extra charge

object
sourceToUserCurrencyQuote
required

Hotel to user currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
Example
USD
target
required

ISO 4217 target currency code

string
"" >= 1 characters
Example
THB
exchangeRate
required

Exchange rate from source to target currency

number
""
Example
33.5
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
Example
1705233000000
Example
{
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
}
sourceToInternalCurrencyQuote
required

Hotel to wink currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
Example
USD
target
required

ISO 4217 target currency code

string
"" >= 1 characters
Example
THB
exchangeRate
required

Exchange rate from source to target currency

number
""
Example
33.5
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
Example
1705233000000
Example
{
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
}
userSpecifiedCurrencyBaseTotal
required

Base total in user specified currency.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
sourceBaseTotal
required

Base total in hotel currency.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
internalBaseTotal
required

Base total in wink currency.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
userSpecifiedCurrencyPromotionalModifier

Promotional modifiers in user specified currency

number
""
Example
-40
sourcePromotionalModifier

Promotional modifiers in hotel currency

number
""
Example
-40
internalPromotionalModifier

Promotional modifiers in wink currency

number
""
Example
-40
userSpecifiedCurrencyPremiumModifier

Premium modifiers in user specified currency

number
""
Example
40
sourcePremiumModifier

Premium modifiers in hotel currency

number
""
Example
40
internalPremiumModifier

Premium modifiers in wink currency

number
""
Example
40
userSpecifiedCurrencyChannelModifier

Channel / Membership modifier in user specified currency

number
""
Example
-10
sourceChannelModifier

Channel / Membership modifier in hotel currency

number
""
Example
-10
internalChannelModifier

Channel / Membership modifier in wink currency

number
""
Example
-10
quantity

How many of this item is included in this price

integer format: int64
default: 1
promotionalDiscountPercent

Promotional discount percent

number
""
channelDiscountPercent

Channel discount percent

number
""
premiumPercent

Premium percent

number
""
hasChannelDiscount
boolean
hasPremium
boolean
hasPromotion
boolean
sourceTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
internalTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
userSpecifiedCurrencyTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
totalDiscountPercent
number
Example
{
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"userSpecifiedCurrencyBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"internalBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyPromotionalModifier": -40,
"sourcePromotionalModifier": -40,
"internalPromotionalModifier": -40,
"userSpecifiedCurrencyPremiumModifier": 40,
"sourcePremiumModifier": 40,
"internalPremiumModifier": 40,
"userSpecifiedCurrencyChannelModifier": -10,
"sourceChannelModifier": -10,
"internalChannelModifier": -10,
"quantity": 1,
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
}
}
price

The localized price of the extra charge

object
sourceToUserCurrencyQuote
required

Hotel to user currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
Example
USD
target
required

ISO 4217 target currency code

string
"" >= 1 characters
Example
THB
exchangeRate
required

Exchange rate from source to target currency

number
""
Example
33.5
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
Example
1705233000000
Example
{
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
}
sourceToInternalCurrencyQuote
required

Hotel to wink currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
Example
USD
target
required

ISO 4217 target currency code

string
"" >= 1 characters
Example
THB
exchangeRate
required

Exchange rate from source to target currency

number
""
Example
33.5
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
Example
1705233000000
Example
{
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
}
userSpecifiedCurrencyBaseTotal
required

Base total in user specified currency.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
sourceBaseTotal
required

Base total in hotel currency.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
internalBaseTotal
required

Base total in wink currency.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
userSpecifiedCurrencyPromotionalModifier

Promotional modifiers in user specified currency

number
""
Example
-40
sourcePromotionalModifier

Promotional modifiers in hotel currency

number
""
Example
-40
internalPromotionalModifier

Promotional modifiers in wink currency

number
""
Example
-40
userSpecifiedCurrencyPremiumModifier

Premium modifiers in user specified currency

number
""
Example
40
sourcePremiumModifier

Premium modifiers in hotel currency

number
""
Example
40
internalPremiumModifier

Premium modifiers in wink currency

number
""
Example
40
userSpecifiedCurrencyChannelModifier

Channel / Membership modifier in user specified currency

number
""
Example
-10
sourceChannelModifier

Channel / Membership modifier in hotel currency

number
""
Example
-10
internalChannelModifier

Channel / Membership modifier in wink currency

number
""
Example
-10
quantity

How many of this item is included in this price

integer format: int64
default: 1
promotionalDiscountPercent

Promotional discount percent

number
""
channelDiscountPercent

Channel discount percent

number
""
premiumPercent

Premium percent

number
""
hasChannelDiscount
boolean
hasPremium
boolean
hasPromotion
boolean
sourceTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
internalTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
userSpecifiedCurrencyTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
totalDiscountPercent
number
Example
{
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"userSpecifiedCurrencyBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"internalBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyPromotionalModifier": -40,
"sourcePromotionalModifier": -40,
"internalPromotionalModifier": -40,
"userSpecifiedCurrencyPremiumModifier": 40,
"sourcePremiumModifier": 40,
"internalPremiumModifier": 40,
"userSpecifiedCurrencyChannelModifier": -10,
"sourceChannelModifier": -10,
"internalChannelModifier": -10,
"quantity": 1,
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
}
}
Example
{
"ratePlanLevelFee": {
"descriptions": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
],
"fixedAmount": 450,
"type": "PER_DAY"
},
"unitPrice": {
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"userSpecifiedCurrencyBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"internalBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyPromotionalModifier": -40,
"sourcePromotionalModifier": -40,
"internalPromotionalModifier": -40,
"userSpecifiedCurrencyPremiumModifier": 40,
"sourcePremiumModifier": 40,
"internalPremiumModifier": 40,
"userSpecifiedCurrencyChannelModifier": -10,
"sourceChannelModifier": -10,
"internalChannelModifier": -10,
"quantity": 1,
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
}
},
"price": {
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"userSpecifiedCurrencyBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"internalBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyPromotionalModifier": -40,
"sourcePromotionalModifier": -40,
"internalPromotionalModifier": -40,
"userSpecifiedCurrencyPremiumModifier": 40,
"sourcePremiumModifier": 40,
"internalPremiumModifier": 40,
"userSpecifiedCurrencyChannelModifier": -10,
"sourceChannelModifier": -10,
"internalChannelModifier": -10,
"quantity": 1,
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
}
}
}
userSpecifiedCurrencyTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
sourceTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
internalTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
Example
{
"items": [
{
"ratePlanLevelFee": {
"descriptions": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
],
"fixedAmount": 450,
"type": "PER_DAY"
},
"unitPrice": {
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"userSpecifiedCurrencyBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"internalBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyPromotionalModifier": -40,
"sourcePromotionalModifier": -40,
"internalPromotionalModifier": -40,
"userSpecifiedCurrencyPremiumModifier": 40,
"sourcePremiumModifier": 40,
"internalPremiumModifier": 40,
"userSpecifiedCurrencyChannelModifier": -10,
"sourceChannelModifier": -10,
"internalChannelModifier": -10,
"quantity": 1,
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
}
},
"price": {
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"userSpecifiedCurrencyBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"internalBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyPromotionalModifier": -40,
"sourcePromotionalModifier": -40,
"internalPromotionalModifier": -40,
"userSpecifiedCurrencyPremiumModifier": 40,
"sourcePremiumModifier": 40,
"internalPremiumModifier": 40,
"userSpecifiedCurrencyChannelModifier": -10,
"sourceChannelModifier": -10,
"internalChannelModifier": -10,
"quantity": 1,
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
}
}
}
],
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
}
}
configuration
required

The selected room configuration that created this record

object
adults
required

Number of adult guests in this room type

integer format: int32
default: 1 >= 1
Example
2
children

Child guests in this room, with age groups

Array<object>

Child guest with age and quantity in a room configuration

object
quantity
required

Count of children of this age group in the room

integer format: int32
"" >= 1
Example
2
age
required

Age of each child in this group (years)

integer format: int32
""
Example
7
Example
{
"quantity": 2,
"age": 7
}
quantity

Number of identical rooms with this configuration

integer format: int32
default: 1 >= 1
Example
1
Example
{
"adults": 2,
"children": [
{
"quantity": 2,
"age": 7
}
],
"quantity": 1
}
addOnOffers
Array<object>

Add-ons that are available with this room configuration

object
addOn
required

The original add-on record created by the property.

object
id
required

Unique identifier for this record.

string format: uuid
"" >= 1 characters
Example
b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47
createdDate

Datetime this record was first created

string | null format: date-time
""
Example
2026-01-14T09:30:00
lastUpdate

Datetime this record was last updated

string | null format: date-time
""
Example
2026-02-03T16:45:12
version

Optimistic-locking version. Echo this value back as an If-Match request header on a conditional update; the server responds 409 if the record changed in the meantime. Null when this projection has no backing versioned document, in which case no conditional update is possible.

integer | null format: int64
""
Example
3
hotelIdentifier
required

Hotel identifier.

string format: uuid
"" >= 1 characters
Example
e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18
featuredInd
required

Indicates whether this inventory is featured. Use this flag as a way to signify that this inventory is special.

boolean
Example
false
lifestyleType

Indicate the type of lifestyle this inventory should be associated with.

string
""
Allowed values: LIFESTYLE_HEALTH_FITNESS LIFESTYLE_RELAX LIFESTYLE_ADULT_ONLY LIFESTYLE_ADVENTURE LIFESTYLE_BUSINESS LIFESTYLE_LGBT LIFESTYLE_SINGLE_PARENT LIFESTYLE_SOLO_FEMALE LIFESTYLE_BEAUTY LIFESTYLE_FOODIE LIFESTYLE_FAMILY LIFESTYLE_ROMANCE LIFESTYLE_COUPLE LIFESTYLE_SOLO LIFESTYLE_BACKPACKER LIFESTYLE_SHOPPING LIFESTYLE_SPORTS LIFESTYLE_MOUNTAIN LIFESTYLE_BEACH LIFESTYLE_CITY LIFESTYLE_COUNTRY LIFESTYLE_CULTURE LIFESTYLE_ECO
Example
LIFESTYLE_HEALTH_FITNESS
location
required

Geo-location point where blocking takes place. Defaults to location of property.

object
x
number format: double
y
number format: double
type
string
coordinates
Array<number>
Example
{
"type": "POINT",
"coordinates": [
100.5581533,
13.7370197
]
}
descriptions
required

Localized descriptions describing inventory.

Array<object>
>= 1 items

Foundation class for storing multi-language content (names and descriptions) with content change detection throughout the Wink Platform.

object
name
required

Use as title or short text description

string
""
Example
An example title
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
Example
This is a longer description in the specified language.
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
Example
en
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
Example
SYSTEM
md5ContentHash

The md5 hash of the name, description and language.

string
""
Example
d41d8cd98f00b204e9800998ecf8427e
hashMismatch
boolean
Example
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
multimedias
required

List of images / videos of blocking.

Array<object>
>= 1 items

Multimedia that contains less information than Multimedia object

object
multimediaIdentifier
required

Document identifier

string format: uuid
"" >= 1 characters
Example
3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51
identifier
required

Use this identifier to communicate with Cloudinary.

string
"" >= 1 characters
Example
cloudinary-image-1
type
required

Whether Cloudinary media is a VIDEO or IMAGE.

string
""
Allowed values: IMAGE VIDEO AUDIO RAW
Example
IMAGE
source
required

Currently ONLY using Cloudinary to store all image / video assets.

string
default: CLOUDINARY
Allowed values: YOUTUBE CLOUDINARY
Example
CLOUDINARY
sort
required

Sort allows you to control how you want to sort this record in a list of media records.

integer format: int32
default: 999
Example
10
angle

Media angle

string
""
Example
-90
width
required

Media width in pixels.

integer format: int32
"" >= 1
Example
2560
height
required

Media height in pixels.

integer format: int32
"" >= 1
Example
1600
published

Instead of deleting the media, choose to un-publish it instead for later re-use. Could be you keep seasonal images of the property.

boolean
Example
true
category

Supported OTA specification PIC code. See OTA geoname data

string
""
Example
1
descriptions

Localized media captions to give user some context about where this media was taken.

Array<object>
""

Foundation class for storing multi-language content (names and descriptions) with content change detection throughout the Wink Platform.

object
name
required

Use as title or short text description

string
""
Example
An example title
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
Example
This is a longer description in the specified language.
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
Example
en
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
Example
SYSTEM
md5ContentHash

The md5 hash of the name, description and language.

string
""
Example
d41d8cd98f00b204e9800998ecf8427e
hashMismatch
boolean
Example
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
lifestyleType

Associate this media with a specific lifestyle type. A user searching and filtering inventory based on lifestyles can be shown relevant media first.

string
""
Allowed values: LIFESTYLE_HEALTH_FITNESS LIFESTYLE_RELAX LIFESTYLE_ADULT_ONLY LIFESTYLE_ADVENTURE LIFESTYLE_BUSINESS LIFESTYLE_LGBT LIFESTYLE_SINGLE_PARENT LIFESTYLE_SOLO_FEMALE LIFESTYLE_BEAUTY LIFESTYLE_FOODIE LIFESTYLE_FAMILY LIFESTYLE_ROMANCE LIFESTYLE_COUPLE LIFESTYLE_SOLO LIFESTYLE_BACKPACKER LIFESTYLE_SHOPPING LIFESTYLE_SPORTS LIFESTYLE_MOUNTAIN LIFESTYLE_BEACH LIFESTYLE_CITY LIFESTYLE_COUNTRY LIFESTYLE_CULTURE LIFESTYLE_ECO
Example
LIFESTYLE_HEALTH_FITNESS
attribution

Whether image has attribution properties

Array<object>
""
object
url

URL to contributor

string format: uri
""
Example
https://maps.google.com/maps/contrib/111628493169070103594
name
required

Name of contributor

string
"" >= 1 characters
Example
Samuel Adams
Example
{
"url": "https://maps.google.com/maps/contrib/111628493169070103594",
"name": "Samuel Adams"
}
isLandscape

True if media width is greater or equal to height

boolean
Example
true
Example
{
"multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"identifier": "the-siam-residences/lobby-entrance",
"type": "IMAGE",
"source": "CLOUDINARY",
"sort": 10,
"angle": null,
"width": 2560,
"height": 1600,
"published": true,
"category": "2",
"descriptions": [
{
"title": "Lobby Entrance",
"description": "Elegant lobby of The Siam Residences",
"language": "en"
}
],
"lifestyleType": null,
"attribution": [],
"isLandscape": true
}
contact
required

Associate a contact person for this inventory (if applicable).

object
firstName

Contact first name

string
""
Example
Alexandra
lastName

Contact last name

string
""
Example
Beaumont
email

Contact E-mail

string format: email
""
secondaryEmail

Contact secondary Email

string format: email
""
phoneNumber

Contact phone number

string
"" /^\+?[1-9]\d{1,14}$/
Example
+12125551212
fullName

First and last name

string
""
Example
Alexandra Beaumont
summary

Summary

string
""
Example
John Smith ([email protected] / +12125551212)
Example
{
"firstName": "Alexandra",
"lastName": "Beaumont",
"email": "[email protected]",
"secondaryEmail": "[email protected]",
"phoneNumber": "+12125551212",
"fullName": "Alexandra Beaumont",
"summary": "John Smith ([email protected] / +12125551212)"
}
address
required

Defaults to property address.

object
address1

Address line 1

string
""
Example
234 Near da beach
address2

Address line 2

string
""
Example
Pebble #5001
state

State

string
""
Example
CA
postalCode

Postal / zip code

string
""
Example
90210
county

County

string
""
Example
Alameda county
city

City name

string
""
Example
Bangkok
countryCode

Country

string
"" /^[A-Z]{2}$/
Example
TH
country

Country

string
""
Example
United States
fullAddress

Address 1, Address 2, City, State, Postal / Zip code, Country

string
""
Example
11 At home, Suite 3C, New York City, NY 10010, United States
Example
{
"address1": "234 Near da beach",
"address2": "Pebble #5001",
"state": "CA",
"postalCode": "90210",
"county": "Alameda county",
"city": "Bangkok",
"countryCode": "TH",
"country": "United States",
"fullAddress": "11 At home, Suite 3C, New York City, NY 10010, United States"
}
commissionable
required

Indicate whether sales channels receive commission for selling this inventory.

boolean
default: true
Example
true
name
required

Internal name of inventory.

string
"" >= 1 characters
Example
Archery lesson
proximityCode
required

Supported OTA specification PRX code. See OTA geoname data

string
""
Example
1
sort

Use this property to sort an blocking in a list of activities.

integer format: int32
""
Example
1
minAgeAppropriateCode

Supported OTA specification AQC code. See OTA geoname data

string
""
Example
1
bookable
required

Indicates if this inventory can be added to a booking or if it is read-only marketing material only.

boolean
default: true
Example
true
active
required

Modify blocking availability with this flag.

boolean
default: true
Example
true
disabilityFeatures

Supported OTA specification PHY code. See OTA geoname data

Array<string>
securityFeatures

Supported OTA specification SEC code. See OTA geoname data

Array<string>
socials

Social network accounts for blocking (if applicable).

Array<object>

Social network

object
type

Type of social network.

string
""
Allowed values: FACEBOOK INSTAGRAM SKYPE TRIP_ADVISOR TWITTER GOOGLE_PLUS WHATSAPP LINE WECHAT VIBER SNAPCHAT WEIBO RENREN WEBSITE QQ TIKTOK
Example
INSTAGRAM
location

URL or social network identifier to social network profile

string
""
Example
https://www.instagram.com/thesiamresidences
Example
{
"type": "INSTAGRAM",
"location": "https://www.instagram.com/thesiamresidences"
}
pricePoint
required

Level of expensiveness.

string
default: THREE
Allowed values: HALF ONE ONE_HALF TWO TWO_HALF THREE THREE_HALF FOUR FOUR_HALF FIVE
Example
THREE
recognitionList

Inventory-level recognition.

Array<object>

Recognition for the ancillary blocking.

object
identifier
required

Recognition identifier.

string format: uuid
"" >= 1 characters
Example
3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51
category
required

Recognition category.

string
""
Allowed values: THIRD_PARTY_REVIEW PUBLICATION AWARD
Example
AWARD
type
required

Type of rating system the recognition operated on. This allows us to display the score properly.

string
""
Allowed values: STAR_RATING NUMERIC_RATING PERCENT_RATING
Example
PERCENT_RATING
provider
required

The name of the entity that administers this recognition.

string
"" >= 1 characters
Example
Michelin
rating
required

The actual award or rating received by the hotel facility.

number format: float
""
Example
8.5
maxRating
required

Use this to let hotels indicate what the total score for this award is.

number format: float
""
Example
10
date

The date the award was received

string format: date
""
Example
2020-10-24
officialAppointmentInd

When true, this indicates the property has received official permission from the award provider to use the rating in publications and marketing materials; when false this permission has not been granted.

boolean
Example
true
ratingSymbol

Provides the symbol used in the rating. Used in conjunction with the Rating.

string
""
Example
*
Example
{
"identifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"category": "AWARD",
"type": "PERCENT_RATING",
"provider": "Michelin",
"rating": 8.5,
"maxRating": 10,
"date": "2026-01-14",
"officialAppointmentInd": true,
"ratingSymbol": "*"
}
transactionalInventoryList

Purchasable items for this inventory.

Array<object>

This is one bookable item that can stand alongside a restaurant / meeting room etc.

object
identifier
required

Unique transactional identifier

string format: uuid
"" >= 1 characters
Example
3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51
name
required

Internal name of transactional blocking.

string
"" >= 1 characters
Example
1 hour session
descriptions
required

Localized descriptions describing inventory.

Array<object>
>= 1 items <= 2147483647 items

Foundation class for storing multi-language content (names and descriptions) with content change detection throughout the Wink Platform.

object
name
required

Use as title or short text description

string
""
Example
An example title
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
Example
This is a longer description in the specified language.
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
Example
en
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
Example
SYSTEM
md5ContentHash

The md5 hash of the name, description and language.

string
""
Example
d41d8cd98f00b204e9800998ecf8427e
hashMismatch
boolean
Example
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
pricingType
required

How this inventory item should be priced.

string
""
Allowed values: PER_STAY PER_DAY PER_NIGHT PER_USE PER_HOUR PER_PERSON PER_PERSON_PER_NIGHT PER_PERSON_PER_HOUR PER_ADULT PER_ADULT_PER_NIGHT PER_ADULT_PER_HOUR PER_CHILD PER_CHILD_PER_NIGHT PER_CHILD_PER_HOUR
Example
PER_NIGHT
basePrice
required

Base price of booking this inventory.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
discountedPrice
required

If you are selling this inventory at a discount, indicate the discounted selling price. Leave empty if there is no discount.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
multimedias

List of images / videos of item.

Array<object>

Multimedia that contains less information than Multimedia object

object
multimediaIdentifier
required

Document identifier

string format: uuid
"" >= 1 characters
Example
3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51
identifier
required

Use this identifier to communicate with Cloudinary.

string
"" >= 1 characters
Example
cloudinary-image-1
type
required

Whether Cloudinary media is a VIDEO or IMAGE.

string
""
Allowed values: IMAGE VIDEO AUDIO RAW
Example
IMAGE
source
required

Currently ONLY using Cloudinary to store all image / video assets.

string
default: CLOUDINARY
Allowed values: YOUTUBE CLOUDINARY
Example
CLOUDINARY
sort
required

Sort allows you to control how you want to sort this record in a list of media records.

integer format: int32
default: 999
Example
10
angle

Media angle

string
""
Example
-90
width
required

Media width in pixels.

integer format: int32
"" >= 1
Example
2560
height
required

Media height in pixels.

integer format: int32
"" >= 1
Example
1600
published

Instead of deleting the media, choose to un-publish it instead for later re-use. Could be you keep seasonal images of the property.

boolean
Example
true
category

Supported OTA specification PIC code. See OTA geoname data

string
""
Example
1
descriptions

Localized media captions to give user some context about where this media was taken.

Array<object>
""

Foundation class for storing multi-language content (names and descriptions) with content change detection throughout the Wink Platform.

object
name
required

Use as title or short text description

string
""
Example
An example title
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
Example
This is a longer description in the specified language.
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
Example
en
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
Example
SYSTEM
md5ContentHash

The md5 hash of the name, description and language.

string
""
Example
d41d8cd98f00b204e9800998ecf8427e
hashMismatch
boolean
Example
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
lifestyleType

Associate this media with a specific lifestyle type. A user searching and filtering inventory based on lifestyles can be shown relevant media first.

string
""
Allowed values: LIFESTYLE_HEALTH_FITNESS LIFESTYLE_RELAX LIFESTYLE_ADULT_ONLY LIFESTYLE_ADVENTURE LIFESTYLE_BUSINESS LIFESTYLE_LGBT LIFESTYLE_SINGLE_PARENT LIFESTYLE_SOLO_FEMALE LIFESTYLE_BEAUTY LIFESTYLE_FOODIE LIFESTYLE_FAMILY LIFESTYLE_ROMANCE LIFESTYLE_COUPLE LIFESTYLE_SOLO LIFESTYLE_BACKPACKER LIFESTYLE_SHOPPING LIFESTYLE_SPORTS LIFESTYLE_MOUNTAIN LIFESTYLE_BEACH LIFESTYLE_CITY LIFESTYLE_COUNTRY LIFESTYLE_CULTURE LIFESTYLE_ECO
Example
LIFESTYLE_HEALTH_FITNESS
attribution

Whether image has attribution properties

Array<object>
""
object
url

URL to contributor

string format: uri
""
Example
https://maps.google.com/maps/contrib/111628493169070103594
name
required

Name of contributor

string
"" >= 1 characters
Example
Samuel Adams
Example
{
"url": "https://maps.google.com/maps/contrib/111628493169070103594",
"name": "Samuel Adams"
}
isLandscape

True if media width is greater or equal to height

boolean
Example
true
Example
{
"multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"identifier": "the-siam-residences/lobby-entrance",
"type": "IMAGE",
"source": "CLOUDINARY",
"sort": 10,
"angle": null,
"width": 2560,
"height": 1600,
"published": true,
"category": "2",
"descriptions": [
{
"title": "Lobby Entrance",
"description": "Elegant lobby of The Siam Residences",
"language": "en"
}
],
"lifestyleType": null,
"attribution": [],
"isLandscape": true
}
minPax

Whether there is a limit to minimum group size.

integer format: int32
""
Example
2
maxPax

Whether there is a limit to maximum group size.

integer format: int32
""
Example
10
percentPremium

Calculates the percent difference between basePrice and discountedPrice.

number
""
Example
0.1
percentDiscount

Calculates the percent difference between basePrice and discountedPrice.

number
""
Example
0.1
Example
{
"identifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"name": "1 hour session",
"descriptions": [
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
],
"pricingType": "PER_NIGHT",
"basePrice": {
"amount": 1250,
"currency": "USD"
},
"discountedPrice": {
"amount": 1250,
"currency": "USD"
},
"multimedias": [
{
"multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"identifier": "the-siam-residences/lobby-entrance",
"type": "IMAGE",
"source": "CLOUDINARY",
"sort": 10,
"angle": null,
"width": 2560,
"height": 1600,
"published": true,
"category": "2",
"descriptions": [
{
"title": "Lobby Entrance",
"description": "Elegant lobby of The Siam Residences",
"language": "en"
}
],
"lifestyleType": null,
"attribution": [],
"isLandscape": true
}
],
"minPax": 2,
"maxPax": 10,
"percentPremium": 0.1,
"percentDiscount": 0.1
}
publishStatus

Publish lifecycle state: DRAFT (incomplete, not announced) or PUBLISHED (complete/live).

string
""
Allowed values: DRAFT PUBLISHED
Example
PUBLISHED
applicableStart

Start month and day or date for which the attraction (e.g. the start of a season) is available. This date property signifies that the blocking is recurring and / or seasonal. If the date is in the past, only day and month will be used to infer seasonality. If the date is a future date, it will be interpreted as a starting date.

string format: date
""
Example
1970-1-1
applicableEnd

End month and day or date for which the attraction (e.g. the start of a season) is available. This date property signifies that the blocking is recurring and / or seasonal. If the date is in the past, only day and month will be used to infer seasonality. If the date is a future date, it will be interpreted as a ending date.

string format: date
""
Example
1970-12-1
reservationRequiredInd

Indicates whether a reservation is required to participate in this inventory.

boolean
Example
false
opens

Opening time of blocking (if applicable). Leave empty if blocking is always available.

string
""
Example
09:00
closes

Closing time of blocking (if applicable). Leave empty if blocking is always available.

string
""
Example
17:30
daysOfWeek

Indicate which days this inventory is open.

object
mon

Set to true to enable Monday.

boolean
Example
true
tue

Set to true to enable Tuesday.

boolean
Example
true
wed

Set to true to enable Wednesday.

boolean
Example
true
thu

Set to true to enable Thursday.

boolean
Example
true
fri

Set to true to enable Friday.

boolean
Example
true
sat

Set to true to enable Saturday.

boolean
Example
true
sun

Set to true to enable Sunday.

boolean
Example
true
disabled

Convenience property to quickly determine if this existing object has any active days enabled.

boolean
Example
true
Example
{
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
}
numberOfUnits
required

Total number of add-ons available to purchase.

integer format: int32
0
Example
15
mandatory
required

Make this add-on mandatory for all guests by enabling this flag.

boolean
Example
true
ratePlan

An optional rate plan can be applied to the add-on. The rate plan can help to create availability restrictions.

object
id
required

Unique identifier for this record.

string format: uuid
"" >= 1 characters
Example
b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47
version

Optimistic-locking version. Echo this value back as an If-Match request header on a conditional update; the server responds 409 if the record changed in the meantime. Null when this projection has no backing versioned document, in which case no conditional update is possible.

integer | null format: int64
""
Example
3
hotelIdentifier
required

The property (managing entity) that owns this rate plan.

string format: uuid
"" >= 1 characters
Example
d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69
name
required

A descriptive name for this rate plan, such as ‘Best Available Rate’, ‘Non-Refundable’, or ‘Corporate Rate’.

string
"" >= 1 characters
Example
Best Available Rate
prepaid
required

When true, indicates if the rate is a prepaid rate.

boolean
Example
false
enabled
required

Whether rate plan is active or not.

boolean
Example
false
breakfast
required

When true, indicates breakfast is included.

boolean
Example
false
brunch
required

When true, indicates brunch is included.

boolean
Example
false
lunch
required

When true, indicates lunch is included.

boolean
Example
false
dinner
required

When true, indicates dinner is included.

boolean
Example
false
allInclusive
required

Everything included except alcohol

boolean
Example
false
allInclusivePlusAlcohol
required

Everything included with alcohol

boolean
Example
false
sellStartDate

The date on which this rate plan becomes available for booking. If both sellStartDate and sellEndDate are set, the rate can only be sold within that date range.

string format: date
""
Example
2026-01-15
sellEndDate

The date on which this rate plan is no longer available for booking. If both sellStartDate and sellEndDate are set, the rate can only be sold within that date range.

string format: date
""
Example
2026-12-31
stayStartDate

The earliest date a guest can check in to use this rate plan. If both stayStartDate and stayEndDate are set, the rate can only be used for stays within that date range.

string format: date
""
Example
2026-01-15
stayEndDate

The latest date a guest can check in to use this rate plan. If both stayStartDate and stayEndDate are set, the rate can only be used for stays within that date range.

string format: date
""
Example
2026-12-31
loyaltyPointsAccrue

When true, guests earn loyalty points toward the property’s loyalty program with this rate plan. When false, this rate plan does not accrue points.

boolean
Example
false
maxAdvanceBookingOffset

Maximum number of days in advance a guest may book this rate plan. For example, 180 allows bookings up to 6 months ahead.

integer format: int32
""
Example
180
minAdvanceBookingOffset

Minimum number of days in advance a guest must book this rate plan. For example, 3 requires booking at least 3 days before arrival.

integer format: int32
""
Example
3
minTotalOccupancy

Minimum number of guests required to qualify for this rate plan.

integer format: int32
""
Example
1
maxTotalOccupancy

Maximum number of guests allowed under this rate plan.

integer format: int32
""
Example
4
minLOS

Minimum consecutive nights required for a booking under this rate plan. For example, 2 requires a minimum 2-night stay.

integer format: int32
""
Example
1
maxLOS

Maximum consecutive nights allowed for a booking under this rate plan. For example, 30 caps bookings at 30 nights.

integer format: int32
""
Example
30
minAge

Minimum guest age required to book this rate plan, typically used for senior discounts or adult-only rates.

integer format: int32
""
Example
18
maxAge

Maximum guest age allowed for this rate plan, typically used for family or age-restricted rates.

integer format: int32
""
Example
65
ratePlanLevelFees

Additional fees applied to this rate plan, such as resort facilities fees, parking fees, or cleaning charges. Fees can be charged per day, per stay, per person, or combinations thereof.

Array<object>

An additional fee attached to a rate plan, such as a resort facility fee, cleaning fee, or parking fee. The fee amount and how it is charged (per day, per stay, per person, etc.) are defined per fee entry.

object
descriptions
required

Localized descriptions of this fee in multiple languages. At least one entry in English is required.

Array<object>
"" >= 1 items

Simplified localized description containing text content and its language code.

object
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
Example
This is a longer description in the specified language.
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
Example
en
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
Example
SYSTEM
md5ContentHash

The md5 hash of the name, description and language.

string
""
Example
d41d8cd98f00b204e9800998ecf8427e
hashMismatch
boolean
Example
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
fixedAmount
required

The fixed fee amount in the property’s local currency.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
type
required

How this fee is charged: per day, per stay, per person per day, or per person per stay.

string
""
Allowed values: PER_DAY PER_STAY PER_PERSON_PER_DAY PER_PERSON_PER_STAY
Example
PER_DAY
Example
{
"descriptions": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
],
"fixedAmount": 450,
"type": "PER_DAY"
}
availableDaysOfWeek

Days of the week when this rate plan is available for booking. If null, the rate plan is available on all days.

object
mon

Set to true to enable Monday.

boolean
Example
true
tue

Set to true to enable Tuesday.

boolean
Example
true
wed

Set to true to enable Wednesday.

boolean
Example
true
thu

Set to true to enable Thursday.

boolean
Example
true
fri

Set to true to enable Friday.

boolean
Example
true
sat

Set to true to enable Saturday.

boolean
Example
true
sun

Set to true to enable Sunday.

boolean
Example
true
disabled

Convenience property to quickly determine if this existing object has any active days enabled.

boolean
Example
true
Example
{
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
}
arrivalDaysOfWeek

Days of the week on which guests are allowed to check in. If null, arrivals are permitted on any day.

object
mon

Set to true to enable Monday.

boolean
Example
true
tue

Set to true to enable Tuesday.

boolean
Example
true
wed

Set to true to enable Wednesday.

boolean
Example
true
thu

Set to true to enable Thursday.

boolean
Example
true
fri

Set to true to enable Friday.

boolean
Example
true
sat

Set to true to enable Saturday.

boolean
Example
true
sun

Set to true to enable Sunday.

boolean
Example
true
disabled

Convenience property to quickly determine if this existing object has any active days enabled.

boolean
Example
true
Example
{
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
}
departureDaysOfWeek

Days of the week on which guests are allowed to check out. If null, departures are permitted on any day.

object
mon

Set to true to enable Monday.

boolean
Example
true
tue

Set to true to enable Tuesday.

boolean
Example
true
wed

Set to true to enable Wednesday.

boolean
Example
true
thu

Set to true to enable Thursday.

boolean
Example
true
fri

Set to true to enable Friday.

boolean
Example
true
sat

Set to true to enable Saturday.

boolean
Example
true
sun

Set to true to enable Sunday.

boolean
Example
true
disabled

Convenience property to quickly determine if this existing object has any active days enabled.

boolean
Example
true
Example
{
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
}
requiredDaysOfWeek

Days of the week on which at least one night must fall within the stay. Useful for rates requiring weekend stays or specific weekday requirements. If null, no specific day-of-week stay requirements apply.

object
mon

Set to true to enable Monday.

boolean
Example
true
tue

Set to true to enable Tuesday.

boolean
Example
true
wed

Set to true to enable Wednesday.

boolean
Example
true
thu

Set to true to enable Thursday.

boolean
Example
true
fri

Set to true to enable Friday.

boolean
Example
true
sat

Set to true to enable Saturday.

boolean
Example
true
sun

Set to true to enable Sunday.

boolean
Example
true
disabled

Convenience property to quickly determine if this existing object has any active days enabled.

boolean
Example
true
Example
{
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
}
earlyCheckInCharge

A pricing modifier for guests checking in early. May include a surcharge or credit. If null, no early check-in charge applies.

object
type
required

When the type is FIXED, fixedAmount is required. When the type is PERCENTAGE, percent is required.

string
""
Allowed values: FIXED PERCENTAGE
Example
PERCENTAGE
percent

A fraction between 0 and 1 (inclusive) representing a percentage of the total stay amount for an early check-in or late check-out, e.g. 0.25 for 25%. Direction (surcharge vs. discount) is determined by which field this charge is assigned to, not the sign of this value.

number format: float
"" <= 1
Example
0.25
fixedAmount

A localized amount, always non-negative. Direction (surcharge vs. discount) is determined by which field this charge is assigned to, not the sign of this value.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
Example
{
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
}
lateCheckOutCharge

A pricing modifier for guests staying late after standard checkout time. May include a surcharge or credit. If null, no late check-out charge applies.

object
type
required

When the type is FIXED, fixedAmount is required. When the type is PERCENTAGE, percent is required.

string
""
Allowed values: FIXED PERCENTAGE
Example
PERCENTAGE
percent

A fraction between 0 and 1 (inclusive) representing a percentage of the total stay amount for an early check-in or late check-out, e.g. 0.25 for 25%. Direction (surcharge vs. discount) is determined by which field this charge is assigned to, not the sign of this value.

number format: float
"" <= 1
Example
0.25
fixedAmount

A localized amount, always non-negative. Direction (surcharge vs. discount) is determined by which field this charge is assigned to, not the sign of this value.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
Example
{
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
}
cancellationPolicy

The cancellation policy that governs refunds and cancellations for this rate plan.

object
id
required

Unique identifier for this record.

string format: uuid
""
Example
b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47
version

Optimistic-locking version. Echo this value back as an If-Match request header on a conditional update; the server responds 409 if the record changed in the meantime. Null when this projection has no backing versioned document, in which case no conditional update is possible.

integer | null format: int64
""
Example
3
hotelIdentifier
required

Property this cancellation is associated with

string format: uuid
""
Example
e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18
refundable
required

Whether this cancellation policy is refundable or not

boolean
Example
false
advanceCancellationFreeOfCharge

When the cancellation policy is refundable, this flag can be set and indicates there is more rules involved than just a no-questions-asked refundable.

string
""
Allowed values: UNTIL_EIGHTEEN_HUNDRED_HOURS_ON_DAY_OF_ARRIVAL UNTIL_FOURTEEN_HUNDRED_HOURS_ON_DAY_OF_ARRIVAL ONE_DAY_BEFORE_ARRIVAL TWO_DAYS_BEFORE_ARRIVAL THREE_DAYS_BEFORE_ARRIVAL FIVE_DAYS_BEFORE_ARRIVAL SEVEN_DAYS_BEFORE_ARRIVAL FOURTEEN_DAYS_BEFORE_ARRIVAL TWENTYONE_DAYS_BEFORE_ARRIVAL THIRTY_DAYS_BEFORE_ARRIVAL FOURTY_TWO_DAYS_BEFORE_ARRIVAL SIXTY_DAYS_BEFORE_ARRIVAL
Example
UNTIL_EIGHTEEN_HUNDRED_HOURS_ON_DAY_OF_ARRIVAL
refundableCancellationCharge

If advanceCancellationFreeOfCharge rules is not honored, this property explains what the guest will be charged.

string
""
Allowed values: FIRST_NIGHT THIRTY_PERCENT FIFTY_PERCENT SIXTY_PERCENT SEVENTY_PERCENT NINENTY_PERCENT ONE_HUNDRED_PERCENT
Example
FIFTY_PERCENT
noShowCharge

In case the ‘Refundable cancellation charge’ is set, a different no show charge can be applied.

string
""
Allowed values: SAME_AS_CANCELLATION_FEE ONE_HUNDRED_PERCENT_OF_TOTAL_CHARGE
Example
SAME_AS_CANCELLATION_FEE
nonRefundableCancellationCharge

When the cancellation policy is non-refundable, this flag can be set and indicates there is more rules involved to calculate what the guest will owe in case of a cancellation.

string
""
Allowed values: FIRST_NIGHT TEN_PERCENT THIRTY_PERCENT FIFTY_PERCENT SEVENTY_PERCENT
Example
SEVENTY_PERCENT
nonRefundableDeadline

The non-refundable charge might can have a deadline. If that deadline passes, the guest might be charged more.

string
""
Allowed values: ONE_DAY_BEFORE_ARRIVAL TWO_DAYS_BEFORE_ARRIVAL THREE_DAYS_BEFORE_ARRIVAL FIVE_DAYS_BEFORE_ARRIVAL SEVEN_DAYS_BEFORE_ARRIVAL FOURTEEN_DAYS_BEFORE_ARRIVAL TWENTYONE_DAYS_BEFORE_ARRIVAL THIRTY_DAYS_BEFORE_ARRIVAL FOURTY_TWO_DAYS_BEFORE_ARRIVAL SIXTY_DAYS_BEFORE_ARRIVAL
Example
SEVEN_DAYS_BEFORE_ARRIVAL
nonRefundableAfterDeadlineCancellationCharge

If the guest does not honor the non-refundable deadline rule, this charge dictates what she owes after the deadline passes.

string
""
Allowed values: FIRST_NIGHT TEN_PERCENT THIRTY_PERCENT FIFTY_PERCENT SEVENTY_PERCENT ONE_HUNDRED_PERCENT
Example
ONE_HUNDRED_PERCENT
createdDate

Datetime this record was first created

string | null format: date-time
""
Example
2026-01-14T09:30:00
lastUpdate

Datetime this record was last updated

string | null format: date-time
""
Example
2026-02-03T16:45:12
policyCode
string
Example
{
"id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"version": 3,
"hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18",
"refundable": false,
"advanceCancellationFreeOfCharge": "UNTIL_EIGHTEEN_HUNDRED_HOURS_ON_DAY_OF_ARRIVAL",
"refundableCancellationCharge": "FIFTY_PERCENT",
"noShowCharge": "SAME_AS_CANCELLATION_FEE",
"nonRefundableCancellationCharge": "SEVENTY_PERCENT",
"nonRefundableDeadline": "SEVEN_DAYS_BEFORE_ARRIVAL",
"nonRefundableAfterDeadlineCancellationCharge": "ONE_HUNDRED_PERCENT",
"createdDate": "2026-01-14T09:30:00",
"lastUpdate": "2026-02-03T16:45:12"
}
cancellationPolicyExceptions

Optional overrides of the cancellation policy for specific date ranges. Allows a property to apply different cancellation terms during peak seasons, events, or special periods. Leave null for no date-specific exceptions.

object
list
required

List of cancellation policy exceptions

Array<object>
>= 1 items
object
cancellationPolicyIdentifier
required

Cancellation policy identifier

string format: uuid
"" >= 1 characters
Example
b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47
cancellationPolicy
required

Cancellation policy details for this exception

object
id
string
hotelIdentifier
string
refundable
boolean
advanceCancellationFreeOfCharge

Advance notice window within which a cancellation is free of charge

string
Allowed values: UNTIL_EIGHTEEN_HUNDRED_HOURS_ON_DAY_OF_ARRIVAL UNTIL_FOURTEEN_HUNDRED_HOURS_ON_DAY_OF_ARRIVAL ONE_DAY_BEFORE_ARRIVAL TWO_DAYS_BEFORE_ARRIVAL THREE_DAYS_BEFORE_ARRIVAL FIVE_DAYS_BEFORE_ARRIVAL SEVEN_DAYS_BEFORE_ARRIVAL FOURTEEN_DAYS_BEFORE_ARRIVAL TWENTYONE_DAYS_BEFORE_ARRIVAL THIRTY_DAYS_BEFORE_ARRIVAL FOURTY_TWO_DAYS_BEFORE_ARRIVAL SIXTY_DAYS_BEFORE_ARRIVAL
refundableCancellationCharge

Charge retained when a refundable booking is cancelled

string
Allowed values: FIRST_NIGHT THIRTY_PERCENT FIFTY_PERCENT SIXTY_PERCENT SEVENTY_PERCENT NINENTY_PERCENT ONE_HUNDRED_PERCENT
noShowCharge

Fee structure applied when a guest fails to show up without cancelling

string
Allowed values: SAME_AS_CANCELLATION_FEE ONE_HUNDRED_PERCENT_OF_TOTAL_CHARGE
nonRefundableCancellationCharge

Charge applied for cancelling a non-refundable rate

string
Allowed values: FIRST_NIGHT TEN_PERCENT THIRTY_PERCENT FIFTY_PERCENT SEVENTY_PERCENT
nonRefundableDeadline

Deadline before arrival after which a booking becomes non-refundable

string
Allowed values: ONE_DAY_BEFORE_ARRIVAL TWO_DAYS_BEFORE_ARRIVAL THREE_DAYS_BEFORE_ARRIVAL FIVE_DAYS_BEFORE_ARRIVAL SEVEN_DAYS_BEFORE_ARRIVAL FOURTEEN_DAYS_BEFORE_ARRIVAL TWENTYONE_DAYS_BEFORE_ARRIVAL THIRTY_DAYS_BEFORE_ARRIVAL FOURTY_TWO_DAYS_BEFORE_ARRIVAL SIXTY_DAYS_BEFORE_ARRIVAL
nonRefundableAfterDeadlineCancellationCharge

Penalty charge applied when a non-refundable booking is cancelled after the deadline

string
Allowed values: FIRST_NIGHT TEN_PERCENT THIRTY_PERCENT FIFTY_PERCENT SEVENTY_PERCENT ONE_HUNDRED_PERCENT
startDate
required

Start date for when this cancellation policy should start to override the default cancellation policy.

string format: date
""
Example
2026-01-14
endDate
required

End date for when this cancellation policy should end overriding the default cancellation policy.

string format: date
""
Example
2026-12-31
Example
{
"cancellationPolicyIdentifier": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"startDate": "2026-01-14",
"endDate": "2026-12-31"
}
Example
{
"list": [
{
"cancellationPolicyIdentifier": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"startDate": "2026-01-14",
"endDate": "2026-12-31"
}
]
}
singleOccupancyRateModifier

A pricing modifier applied when a single guest books this rate plan. For example, a 10% discount for solo travelers. If null, no single occupancy adjustment applies.

object
type
required

When the type is FIXED, fixedAmount is required. When the type is PERCENTAGE, percent is required.

string
""
Allowed values: FIXED PERCENTAGE
Example
PERCENTAGE
percent

A fraction between 0 and 1 (inclusive) representing a percentage of the total stay amount for an early check-in or late check-out, e.g. 0.25 for 25%. Direction (surcharge vs. discount) is determined by which field this charge is assigned to, not the sign of this value.

number format: float
"" <= 1
Example
0.25
fixedAmount

A localized amount, always non-negative. Direction (surcharge vs. discount) is determined by which field this charge is assigned to, not the sign of this value.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
Example
{
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
}
extraPaxRateModifier

A pricing modifier applied for each additional adult guest beyond the base occupancy. For example, a per-person surcharge for extra occupants. If null, no extra adult adjustment applies.

object
type
required

When the type is FIXED, fixedAmount is required. When the type is PERCENTAGE, percent is required.

string
""
Allowed values: FIXED PERCENTAGE
Example
PERCENTAGE
percent

A fraction between 0 and 1 (inclusive) representing a percentage of the total stay amount for an early check-in or late check-out, e.g. 0.25 for 25%. Direction (surcharge vs. discount) is determined by which field this charge is assigned to, not the sign of this value.

number format: float
"" <= 1
Example
0.25
fixedAmount

A localized amount, always non-negative. Direction (surcharge vs. discount) is determined by which field this charge is assigned to, not the sign of this value.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
Example
{
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
}
extraChildRateModifier

A pricing modifier applied for each additional child guest. Typically used for child discounts or family rate adjustments. If null, no extra child adjustment applies.

object
type
required

When the type is FIXED, fixedAmount is required. When the type is PERCENTAGE, percent is required.

string
""
Allowed values: FIXED PERCENTAGE
Example
PERCENTAGE
percent

A fraction between 0 and 1 (inclusive) representing a percentage of the total stay amount for an early check-in or late check-out, e.g. 0.25 for 25%. Direction (surcharge vs. discount) is determined by which field this charge is assigned to, not the sign of this value.

number format: float
"" <= 1
Example
0.25
fixedAmount

A localized amount, always non-negative. Direction (surcharge vs. discount) is determined by which field this charge is assigned to, not the sign of this value.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
Example
{
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
}
createdDate

Datetime this record was first created

string | null format: date-time
""
Example
2026-01-14T09:30:00
lastUpdate

Datetime this record was last updated

string | null format: date-time
""
Example
2026-02-03T16:45:12
Example
{
"id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"version": 3,
"hotelIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"name": "Best Available Rate",
"prepaid": false,
"enabled": false,
"breakfast": false,
"brunch": false,
"lunch": false,
"dinner": false,
"allInclusive": false,
"allInclusivePlusAlcohol": false,
"sellStartDate": "2026-01-15",
"sellEndDate": "2026-12-31",
"stayStartDate": "2026-01-15",
"stayEndDate": "2026-12-31",
"loyaltyPointsAccrue": false,
"maxAdvanceBookingOffset": 180,
"minAdvanceBookingOffset": 3,
"minTotalOccupancy": 1,
"maxTotalOccupancy": 4,
"minLOS": 1,
"maxLOS": 30,
"minAge": 18,
"maxAge": 65,
"ratePlanLevelFees": [
{
"descriptions": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
],
"fixedAmount": 450,
"type": "PER_DAY"
}
],
"availableDaysOfWeek": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
},
"arrivalDaysOfWeek": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
},
"departureDaysOfWeek": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
},
"requiredDaysOfWeek": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
},
"earlyCheckInCharge": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"lateCheckOutCharge": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"cancellationPolicy": {
"id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"version": 3,
"hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18",
"refundable": false,
"advanceCancellationFreeOfCharge": "UNTIL_EIGHTEEN_HUNDRED_HOURS_ON_DAY_OF_ARRIVAL",
"refundableCancellationCharge": "FIFTY_PERCENT",
"noShowCharge": "SAME_AS_CANCELLATION_FEE",
"nonRefundableCancellationCharge": "SEVENTY_PERCENT",
"nonRefundableDeadline": "SEVEN_DAYS_BEFORE_ARRIVAL",
"nonRefundableAfterDeadlineCancellationCharge": "ONE_HUNDRED_PERCENT",
"createdDate": "2026-01-14T09:30:00",
"lastUpdate": "2026-02-03T16:45:12"
},
"cancellationPolicyExceptions": {
"list": [
{
"cancellationPolicyIdentifier": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"startDate": "2026-01-14",
"endDate": "2026-12-31"
}
]
},
"singleOccupancyRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"extraPaxRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"extraChildRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"createdDate": "2026-01-14T09:30:00",
"lastUpdate": "2026-02-03T16:45:12"
}
dateRanges

Optional list of date ranges restricting add-on availability to specific periods. Mutually exclusive with ratePlan.

Array<object>
object
startDate
required

Retrieve data range starting with and including this start date

string format: date
""
Example
2020-12-24
endDate
required

Retrieve data range ending with and including this end date

string format: date
""
Example
2020-12-31
Example
{
"startDate": "2020-12-24",
"endDate": "2020-12-31"
}
Example
{
"id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"createdDate": "2026-01-14T09:30:00",
"lastUpdate": "2026-02-03T16:45:12",
"version": 3,
"hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18",
"featuredInd": false,
"lifestyleType": "LIFESTYLE_HEALTH_FITNESS",
"location": {
"type": "POINT",
"coordinates": [
100.5581533,
13.7370197
]
},
"descriptions": [
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
],
"multimedias": [
{
"multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"identifier": "the-siam-residences/lobby-entrance",
"type": "IMAGE",
"source": "CLOUDINARY",
"sort": 10,
"angle": null,
"width": 2560,
"height": 1600,
"published": true,
"category": "2",
"descriptions": [
{
"title": "Lobby Entrance",
"description": "Elegant lobby of The Siam Residences",
"language": "en"
}
],
"lifestyleType": null,
"attribution": [],
"isLandscape": true
}
],
"contact": {
"firstName": "Alexandra",
"lastName": "Beaumont",
"email": "[email protected]",
"secondaryEmail": "[email protected]",
"phoneNumber": "+12125551212",
"fullName": "Alexandra Beaumont",
"summary": "John Smith ([email protected] / +12125551212)"
},
"address": {
"address1": "234 Near da beach",
"address2": "Pebble #5001",
"state": "CA",
"postalCode": "90210",
"county": "Alameda county",
"city": "Bangkok",
"countryCode": "TH",
"country": "United States",
"fullAddress": "11 At home, Suite 3C, New York City, NY 10010, United States"
},
"commissionable": true,
"name": "Archery lesson",
"proximityCode": "1",
"sort": 1,
"minAgeAppropriateCode": "1",
"bookable": true,
"active": true,
"socials": [
{
"type": "INSTAGRAM",
"location": "https://www.instagram.com/thesiamresidences"
}
],
"pricePoint": "THREE",
"recognitionList": [
{
"identifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"category": "AWARD",
"type": "PERCENT_RATING",
"provider": "Michelin",
"rating": 8.5,
"maxRating": 10,
"date": "2026-01-14",
"officialAppointmentInd": true,
"ratingSymbol": "*"
}
],
"transactionalInventoryList": [
{
"identifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"name": "1 hour session",
"descriptions": [
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
],
"pricingType": "PER_NIGHT",
"basePrice": {
"amount": 1250,
"currency": "USD"
},
"discountedPrice": {
"amount": 1250,
"currency": "USD"
},
"multimedias": [
{
"multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"identifier": "the-siam-residences/lobby-entrance",
"type": "IMAGE",
"source": "CLOUDINARY",
"sort": 10,
"angle": null,
"width": 2560,
"height": 1600,
"published": true,
"category": "2",
"descriptions": [
{
"title": "Lobby Entrance",
"description": "Elegant lobby of The Siam Residences",
"language": "en"
}
],
"lifestyleType": null,
"attribution": [],
"isLandscape": true
}
],
"minPax": 2,
"maxPax": 10,
"percentPremium": 0.1,
"percentDiscount": 0.1
}
],
"publishStatus": "PUBLISHED",
"applicableStart": "1970-1-1",
"applicableEnd": "1970-12-1",
"reservationRequiredInd": false,
"opens": "09:00",
"closes": "17:30",
"daysOfWeek": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
},
"numberOfUnits": 15,
"mandatory": true,
"ratePlan": {
"id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"version": 3,
"hotelIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"name": "Best Available Rate",
"prepaid": false,
"enabled": false,
"breakfast": false,
"brunch": false,
"lunch": false,
"dinner": false,
"allInclusive": false,
"allInclusivePlusAlcohol": false,
"sellStartDate": "2026-01-15",
"sellEndDate": "2026-12-31",
"stayStartDate": "2026-01-15",
"stayEndDate": "2026-12-31",
"loyaltyPointsAccrue": false,
"maxAdvanceBookingOffset": 180,
"minAdvanceBookingOffset": 3,
"minTotalOccupancy": 1,
"maxTotalOccupancy": 4,
"minLOS": 1,
"maxLOS": 30,
"minAge": 18,
"maxAge": 65,
"ratePlanLevelFees": [
{
"descriptions": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
],
"fixedAmount": 450,
"type": "PER_DAY"
}
],
"availableDaysOfWeek": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
},
"arrivalDaysOfWeek": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
},
"departureDaysOfWeek": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
},
"requiredDaysOfWeek": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
},
"earlyCheckInCharge": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"lateCheckOutCharge": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"cancellationPolicy": {
"id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"version": 3,
"hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18",
"refundable": false,
"advanceCancellationFreeOfCharge": "UNTIL_EIGHTEEN_HUNDRED_HOURS_ON_DAY_OF_ARRIVAL",
"refundableCancellationCharge": "FIFTY_PERCENT",
"noShowCharge": "SAME_AS_CANCELLATION_FEE",
"nonRefundableCancellationCharge": "SEVENTY_PERCENT",
"nonRefundableDeadline": "SEVEN_DAYS_BEFORE_ARRIVAL",
"nonRefundableAfterDeadlineCancellationCharge": "ONE_HUNDRED_PERCENT",
"createdDate": "2026-01-14T09:30:00",
"lastUpdate": "2026-02-03T16:45:12"
},
"cancellationPolicyExceptions": {
"list": [
{
"cancellationPolicyIdentifier": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"startDate": "2026-01-14",
"endDate": "2026-12-31"
}
]
},
"singleOccupancyRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"extraPaxRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"extraChildRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"createdDate": "2026-01-14T09:30:00",
"lastUpdate": "2026-02-03T16:45:12"
},
"dateRanges": [
{
"startDate": "2020-12-24",
"endDate": "2020-12-31"
}
]
}
priceList
Array<object>

Localized transactional blocking

object
identifier
required

Unique transactional identifier

string format: uuid
"" >= 1 characters
Example
travel-blocking-1
name
required

Internal name of transactional blocking.

string
"" >= 1 characters
Example
1 hour session
descriptions
required

Localized descriptions describing inventory.

Array<object>
>= 1 items <= 2147483647 items

Foundation class for storing multi-language content (names and descriptions) with content change detection throughout the Wink Platform.

object
name
required

Use as title or short text description

string
""
Example
An example title
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
Example
This is a longer description in the specified language.
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
Example
en
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
Example
SYSTEM
md5ContentHash

The md5 hash of the name, description and language.

string
""
Example
d41d8cd98f00b204e9800998ecf8427e
hashMismatch
boolean
Example
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
pricingType
required

How this inventory item should be priced.

string
""
Allowed values: PER_STAY PER_DAY PER_NIGHT PER_USE PER_HOUR PER_PERSON PER_PERSON_PER_NIGHT PER_PERSON_PER_HOUR PER_ADULT PER_ADULT_PER_NIGHT PER_ADULT_PER_HOUR PER_CHILD PER_CHILD_PER_NIGHT PER_CHILD_PER_HOUR
price
required

Localized price

object
sourceToUserCurrencyQuote
required

Hotel to user currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
Example
USD
target
required

ISO 4217 target currency code

string
"" >= 1 characters
Example
THB
exchangeRate
required

Exchange rate from source to target currency

number
""
Example
33.5
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
Example
1705233000000
Example
{
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
}
sourceToInternalCurrencyQuote
required

Hotel to wink currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
Example
USD
target
required

ISO 4217 target currency code

string
"" >= 1 characters
Example
THB
exchangeRate
required

Exchange rate from source to target currency

number
""
Example
33.5
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
Example
1705233000000
Example
{
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
}
userSpecifiedCurrencyBaseTotal
required

Base total in user specified currency.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
sourceBaseTotal
required

Base total in hotel currency.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
internalBaseTotal
required

Base total in wink currency.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
userSpecifiedCurrencyPromotionalModifier

Promotional modifiers in user specified currency

number
""
Example
-40
sourcePromotionalModifier

Promotional modifiers in hotel currency

number
""
Example
-40
internalPromotionalModifier

Promotional modifiers in wink currency

number
""
Example
-40
userSpecifiedCurrencyPremiumModifier

Premium modifiers in user specified currency

number
""
Example
40
sourcePremiumModifier

Premium modifiers in hotel currency

number
""
Example
40
internalPremiumModifier

Premium modifiers in wink currency

number
""
Example
40
userSpecifiedCurrencyChannelModifier

Channel / Membership modifier in user specified currency

number
""
Example
-10
sourceChannelModifier

Channel / Membership modifier in hotel currency

number
""
Example
-10
internalChannelModifier

Channel / Membership modifier in wink currency

number
""
Example
-10
quantity

How many of this item is included in this price

integer format: int64
default: 1
promotionalDiscountPercent

Promotional discount percent

number
""
channelDiscountPercent

Channel discount percent

number
""
premiumPercent

Premium percent

number
""
hasChannelDiscount
boolean
hasPremium
boolean
hasPromotion
boolean
sourceTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
internalTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
userSpecifiedCurrencyTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
totalDiscountPercent
number
Example
{
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"userSpecifiedCurrencyBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"internalBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyPromotionalModifier": -40,
"sourcePromotionalModifier": -40,
"internalPromotionalModifier": -40,
"userSpecifiedCurrencyPremiumModifier": 40,
"sourcePremiumModifier": 40,
"internalPremiumModifier": 40,
"userSpecifiedCurrencyChannelModifier": -10,
"sourceChannelModifier": -10,
"internalChannelModifier": -10,
"quantity": 1,
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
}
}
multimedias
required

List of images / videos of item.

Array<object>

Multimedia that contains less information than Multimedia object

object
multimediaIdentifier
required

Document identifier

string format: uuid
"" >= 1 characters
Example
3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51
identifier
required

Use this identifier to communicate with Cloudinary.

string
"" >= 1 characters
Example
cloudinary-image-1
type
required

Whether Cloudinary media is a VIDEO or IMAGE.

string
""
Allowed values: IMAGE VIDEO AUDIO RAW
Example
IMAGE
source
required

Currently ONLY using Cloudinary to store all image / video assets.

string
default: CLOUDINARY
Allowed values: YOUTUBE CLOUDINARY
Example
CLOUDINARY
sort
required

Sort allows you to control how you want to sort this record in a list of media records.

integer format: int32
default: 999
Example
10
angle

Media angle

string
""
Example
-90
width
required

Media width in pixels.

integer format: int32
"" >= 1
Example
2560
height
required

Media height in pixels.

integer format: int32
"" >= 1
Example
1600
published

Instead of deleting the media, choose to un-publish it instead for later re-use. Could be you keep seasonal images of the property.

boolean
Example
true
category

Supported OTA specification PIC code. See OTA geoname data

string
""
Example
1
descriptions

Localized media captions to give user some context about where this media was taken.

Array<object>
""

Foundation class for storing multi-language content (names and descriptions) with content change detection throughout the Wink Platform.

object
name
required

Use as title or short text description

string
""
Example
An example title
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
Example
This is a longer description in the specified language.
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
Example
en
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
Example
SYSTEM
md5ContentHash

The md5 hash of the name, description and language.

string
""
Example
d41d8cd98f00b204e9800998ecf8427e
hashMismatch
boolean
Example
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
lifestyleType

Associate this media with a specific lifestyle type. A user searching and filtering inventory based on lifestyles can be shown relevant media first.

string
""
Allowed values: LIFESTYLE_HEALTH_FITNESS LIFESTYLE_RELAX LIFESTYLE_ADULT_ONLY LIFESTYLE_ADVENTURE LIFESTYLE_BUSINESS LIFESTYLE_LGBT LIFESTYLE_SINGLE_PARENT LIFESTYLE_SOLO_FEMALE LIFESTYLE_BEAUTY LIFESTYLE_FOODIE LIFESTYLE_FAMILY LIFESTYLE_ROMANCE LIFESTYLE_COUPLE LIFESTYLE_SOLO LIFESTYLE_BACKPACKER LIFESTYLE_SHOPPING LIFESTYLE_SPORTS LIFESTYLE_MOUNTAIN LIFESTYLE_BEACH LIFESTYLE_CITY LIFESTYLE_COUNTRY LIFESTYLE_CULTURE LIFESTYLE_ECO
Example
LIFESTYLE_HEALTH_FITNESS
attribution

Whether image has attribution properties

Array<object>
""
object
url

URL to contributor

string format: uri
""
Example
https://maps.google.com/maps/contrib/111628493169070103594
name
required

Name of contributor

string
"" >= 1 characters
Example
Samuel Adams
Example
{
"url": "https://maps.google.com/maps/contrib/111628493169070103594",
"name": "Samuel Adams"
}
isLandscape

True if media width is greater or equal to height

boolean
Example
true
Example
{
"multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"identifier": "the-siam-residences/lobby-entrance",
"type": "IMAGE",
"source": "CLOUDINARY",
"sort": 10,
"angle": null,
"width": 2560,
"height": 1600,
"published": true,
"category": "2",
"descriptions": [
{
"title": "Lobby Entrance",
"description": "Elegant lobby of The Siam Residences",
"language": "en"
}
],
"lifestyleType": null,
"attribution": [],
"isLandscape": true
}
minPax

Whether there is a limit to minimum group size.

integer format: int32
""
Example
2
maxPax

Whether there is a limit to maximum group size.

integer format: int32
""
Example
10
offerDetails

Localized offer details if rate plan discount applies.

Array<object>
""

Simplified localized description containing text content and its language code.

object
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
Example
This is a longer description in the specified language.
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
Example
en
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
Example
SYSTEM
md5ContentHash

The md5 hash of the name, description and language.

string
""
Example
d41d8cd98f00b204e9800998ecf8427e
hashMismatch
boolean
Example
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
promotion

If a package is linked to a rate plan the user could be entitled to a promotional discount if she enters a code. When this field is populated, it means the discount was applied to the package.

string
""
Example
{
"identifier": "travel-blocking-1",
"name": "1 hour session",
"descriptions": [
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
],
"price": {
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"userSpecifiedCurrencyBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"internalBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyPromotionalModifier": -40,
"sourcePromotionalModifier": -40,
"internalPromotionalModifier": -40,
"userSpecifiedCurrencyPremiumModifier": 40,
"sourcePremiumModifier": 40,
"internalPremiumModifier": 40,
"userSpecifiedCurrencyChannelModifier": -10,
"sourceChannelModifier": -10,
"internalChannelModifier": -10,
"quantity": 1,
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
}
},
"multimedias": [
{
"multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"identifier": "the-siam-residences/lobby-entrance",
"type": "IMAGE",
"source": "CLOUDINARY",
"sort": 10,
"angle": null,
"width": 2560,
"height": 1600,
"published": true,
"category": "2",
"descriptions": [
{
"title": "Lobby Entrance",
"description": "Elegant lobby of The Siam Residences",
"language": "en"
}
],
"lifestyleType": null,
"attribution": [],
"isLandscape": true
}
],
"minPax": 2,
"maxPax": 10,
"offerDetails": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
]
}
channelInventoryIdentifier

Channel inventory identifier referencing this record.

string format: uuid
""
commissionable

Whether this package is commissionable based on the incoming sales channel.

boolean
commission

The commission percentage.

number format: float
""
Example
0.1
direct
required

Indicates whether the blocking from sales channel is direct or not. If you are a travel agent doing your own acquiring, this flag has to be true to make a booking.

boolean
Example
true
Example
{
"addOn": {
"id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"createdDate": "2026-01-14T09:30:00",
"lastUpdate": "2026-02-03T16:45:12",
"version": 3,
"hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18",
"featuredInd": false,
"lifestyleType": "LIFESTYLE_HEALTH_FITNESS",
"location": {
"type": "POINT",
"coordinates": [
100.5581533,
13.7370197
]
},
"descriptions": [
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
],
"multimedias": [
{
"multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"identifier": "the-siam-residences/lobby-entrance",
"type": "IMAGE",
"source": "CLOUDINARY",
"sort": 10,
"angle": null,
"width": 2560,
"height": 1600,
"published": true,
"category": "2",
"descriptions": [
{
"title": "Lobby Entrance",
"description": "Elegant lobby of The Siam Residences",
"language": "en"
}
],
"lifestyleType": null,
"attribution": [],
"isLandscape": true
}
],
"contact": {
"firstName": "Alexandra",
"lastName": "Beaumont",
"email": "[email protected]",
"secondaryEmail": "[email protected]",
"phoneNumber": "+12125551212",
"fullName": "Alexandra Beaumont",
"summary": "John Smith ([email protected] / +12125551212)"
},
"address": {
"address1": "234 Near da beach",
"address2": "Pebble #5001",
"state": "CA",
"postalCode": "90210",
"county": "Alameda county",
"city": "Bangkok",
"countryCode": "TH",
"country": "United States",
"fullAddress": "11 At home, Suite 3C, New York City, NY 10010, United States"
},
"commissionable": true,
"name": "Archery lesson",
"proximityCode": "1",
"sort": 1,
"minAgeAppropriateCode": "1",
"bookable": true,
"active": true,
"socials": [
{
"type": "INSTAGRAM",
"location": "https://www.instagram.com/thesiamresidences"
}
],
"pricePoint": "THREE",
"recognitionList": [
{
"identifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"category": "AWARD",
"type": "PERCENT_RATING",
"provider": "Michelin",
"rating": 8.5,
"maxRating": 10,
"date": "2026-01-14",
"officialAppointmentInd": true,
"ratingSymbol": "*"
}
],
"transactionalInventoryList": [
{
"identifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"name": "1 hour session",
"descriptions": [
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
],
"pricingType": "PER_NIGHT",
"basePrice": {
"amount": 1250,
"currency": "USD"
},
"discountedPrice": {
"amount": 1250,
"currency": "USD"
},
"multimedias": [
{
"multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"identifier": "the-siam-residences/lobby-entrance",
"type": "IMAGE",
"source": "CLOUDINARY",
"sort": 10,
"angle": null,
"width": 2560,
"height": 1600,
"published": true,
"category": "2",
"descriptions": [
{
"title": "Lobby Entrance",
"description": "Elegant lobby of The Siam Residences",
"language": "en"
}
],
"lifestyleType": null,
"attribution": [],
"isLandscape": true
}
],
"minPax": 2,
"maxPax": 10,
"percentPremium": 0.1,
"percentDiscount": 0.1
}
],
"publishStatus": "PUBLISHED",
"applicableStart": "1970-1-1",
"applicableEnd": "1970-12-1",
"reservationRequiredInd": false,
"opens": "09:00",
"closes": "17:30",
"daysOfWeek": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
},
"numberOfUnits": 15,
"mandatory": true,
"ratePlan": {
"id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"version": 3,
"hotelIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"name": "Best Available Rate",
"prepaid": false,
"enabled": false,
"breakfast": false,
"brunch": false,
"lunch": false,
"dinner": false,
"allInclusive": false,
"allInclusivePlusAlcohol": false,
"sellStartDate": "2026-01-15",
"sellEndDate": "2026-12-31",
"stayStartDate": "2026-01-15",
"stayEndDate": "2026-12-31",
"loyaltyPointsAccrue": false,
"maxAdvanceBookingOffset": 180,
"minAdvanceBookingOffset": 3,
"minTotalOccupancy": 1,
"maxTotalOccupancy": 4,
"minLOS": 1,
"maxLOS": 30,
"minAge": 18,
"maxAge": 65,
"ratePlanLevelFees": [
{
"descriptions": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
],
"fixedAmount": 450,
"type": "PER_DAY"
}
],
"availableDaysOfWeek": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
},
"arrivalDaysOfWeek": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
},
"departureDaysOfWeek": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
},
"requiredDaysOfWeek": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
},
"earlyCheckInCharge": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"lateCheckOutCharge": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"cancellationPolicy": {
"id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"version": 3,
"hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18",
"refundable": false,
"advanceCancellationFreeOfCharge": "UNTIL_EIGHTEEN_HUNDRED_HOURS_ON_DAY_OF_ARRIVAL",
"refundableCancellationCharge": "FIFTY_PERCENT",
"noShowCharge": "SAME_AS_CANCELLATION_FEE",
"nonRefundableCancellationCharge": "SEVENTY_PERCENT",
"nonRefundableDeadline": "SEVEN_DAYS_BEFORE_ARRIVAL",
"nonRefundableAfterDeadlineCancellationCharge": "ONE_HUNDRED_PERCENT",
"createdDate": "2026-01-14T09:30:00",
"lastUpdate": "2026-02-03T16:45:12"
},
"cancellationPolicyExceptions": {
"list": [
{
"cancellationPolicyIdentifier": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"startDate": "2026-01-14",
"endDate": "2026-12-31"
}
]
},
"singleOccupancyRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"extraPaxRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"extraChildRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"createdDate": "2026-01-14T09:30:00",
"lastUpdate": "2026-02-03T16:45:12"
},
"dateRanges": [
{
"startDate": "2020-12-24",
"endDate": "2020-12-31"
}
]
},
"priceList": [
{
"identifier": "travel-blocking-1",
"name": "1 hour session",
"descriptions": [
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
],
"price": {
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"userSpecifiedCurrencyBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"internalBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyPromotionalModifier": -40,
"sourcePromotionalModifier": -40,
"internalPromotionalModifier": -40,
"userSpecifiedCurrencyPremiumModifier": 40,
"sourcePremiumModifier": 40,
"internalPremiumModifier": 40,
"userSpecifiedCurrencyChannelModifier": -10,
"sourceChannelModifier": -10,
"internalChannelModifier": -10,
"quantity": 1,
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
}
},
"multimedias": [
{
"multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"identifier": "the-siam-residences/lobby-entrance",
"type": "IMAGE",
"source": "CLOUDINARY",
"sort": 10,
"angle": null,
"width": 2560,
"height": 1600,
"published": true,
"category": "2",
"descriptions": [
{
"title": "Lobby Entrance",
"description": "Elegant lobby of The Siam Residences",
"language": "en"
}
],
"lifestyleType": null,
"attribution": [],
"isLandscape": true
}
],
"minPax": 2,
"maxPax": 10,
"offerDetails": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
]
}
],
"commissionable": false,
"commission": 0.1,
"direct": true
}
perkValue

The combined value of these perkTypes

integer format: int32
""
activeCancellationPolicy
required

The active / selected cancellation policy for this room configuration

object
id
required

Unique identifier for this record.

string format: uuid
""
Example
b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47
version

Optimistic-locking version. Echo this value back as an If-Match request header on a conditional update; the server responds 409 if the record changed in the meantime. Null when this projection has no backing versioned document, in which case no conditional update is possible.

integer | null format: int64
""
Example
3
hotelIdentifier
required

Property this cancellation is associated with

string format: uuid
""
Example
e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18
refundable
required

Whether this cancellation policy is refundable or not

boolean
Example
false
advanceCancellationFreeOfCharge

When the cancellation policy is refundable, this flag can be set and indicates there is more rules involved than just a no-questions-asked refundable.

string
""
Allowed values: UNTIL_EIGHTEEN_HUNDRED_HOURS_ON_DAY_OF_ARRIVAL UNTIL_FOURTEEN_HUNDRED_HOURS_ON_DAY_OF_ARRIVAL ONE_DAY_BEFORE_ARRIVAL TWO_DAYS_BEFORE_ARRIVAL THREE_DAYS_BEFORE_ARRIVAL FIVE_DAYS_BEFORE_ARRIVAL SEVEN_DAYS_BEFORE_ARRIVAL FOURTEEN_DAYS_BEFORE_ARRIVAL TWENTYONE_DAYS_BEFORE_ARRIVAL THIRTY_DAYS_BEFORE_ARRIVAL FOURTY_TWO_DAYS_BEFORE_ARRIVAL SIXTY_DAYS_BEFORE_ARRIVAL
Example
UNTIL_EIGHTEEN_HUNDRED_HOURS_ON_DAY_OF_ARRIVAL
refundableCancellationCharge

If advanceCancellationFreeOfCharge rules is not honored, this property explains what the guest will be charged.

string
""
Allowed values: FIRST_NIGHT THIRTY_PERCENT FIFTY_PERCENT SIXTY_PERCENT SEVENTY_PERCENT NINENTY_PERCENT ONE_HUNDRED_PERCENT
Example
FIFTY_PERCENT
noShowCharge

In case the ‘Refundable cancellation charge’ is set, a different no show charge can be applied.

string
""
Allowed values: SAME_AS_CANCELLATION_FEE ONE_HUNDRED_PERCENT_OF_TOTAL_CHARGE
Example
SAME_AS_CANCELLATION_FEE
nonRefundableCancellationCharge

When the cancellation policy is non-refundable, this flag can be set and indicates there is more rules involved to calculate what the guest will owe in case of a cancellation.

string
""
Allowed values: FIRST_NIGHT TEN_PERCENT THIRTY_PERCENT FIFTY_PERCENT SEVENTY_PERCENT
Example
SEVENTY_PERCENT
nonRefundableDeadline

The non-refundable charge might can have a deadline. If that deadline passes, the guest might be charged more.

string
""
Allowed values: ONE_DAY_BEFORE_ARRIVAL TWO_DAYS_BEFORE_ARRIVAL THREE_DAYS_BEFORE_ARRIVAL FIVE_DAYS_BEFORE_ARRIVAL SEVEN_DAYS_BEFORE_ARRIVAL FOURTEEN_DAYS_BEFORE_ARRIVAL TWENTYONE_DAYS_BEFORE_ARRIVAL THIRTY_DAYS_BEFORE_ARRIVAL FOURTY_TWO_DAYS_BEFORE_ARRIVAL SIXTY_DAYS_BEFORE_ARRIVAL
Example
SEVEN_DAYS_BEFORE_ARRIVAL
nonRefundableAfterDeadlineCancellationCharge

If the guest does not honor the non-refundable deadline rule, this charge dictates what she owes after the deadline passes.

string
""
Allowed values: FIRST_NIGHT TEN_PERCENT THIRTY_PERCENT FIFTY_PERCENT SEVENTY_PERCENT ONE_HUNDRED_PERCENT
Example
ONE_HUNDRED_PERCENT
createdDate

Datetime this record was first created

string | null format: date-time
""
Example
2026-01-14T09:30:00
lastUpdate

Datetime this record was last updated

string | null format: date-time
""
Example
2026-02-03T16:45:12
policyCode
string
Example
{
"id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"version": 3,
"hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18",
"refundable": false,
"advanceCancellationFreeOfCharge": "UNTIL_EIGHTEEN_HUNDRED_HOURS_ON_DAY_OF_ARRIVAL",
"refundableCancellationCharge": "FIFTY_PERCENT",
"noShowCharge": "SAME_AS_CANCELLATION_FEE",
"nonRefundableCancellationCharge": "SEVENTY_PERCENT",
"nonRefundableDeadline": "SEVEN_DAYS_BEFORE_ARRIVAL",
"nonRefundableAfterDeadlineCancellationCharge": "ONE_HUNDRED_PERCENT",
"createdDate": "2026-01-14T09:30:00",
"lastUpdate": "2026-02-03T16:45:12"
}
roomNights
required

Number of nights the guests will be staying

integer format: int32
""
priceList
Array<object>

Localized transactional blocking

object
identifier
required

Unique transactional identifier

string format: uuid
"" >= 1 characters
Example
travel-blocking-1
name
required

Internal name of transactional blocking.

string
"" >= 1 characters
Example
1 hour session
descriptions
required

Localized descriptions describing inventory.

Array<object>
>= 1 items <= 2147483647 items

Foundation class for storing multi-language content (names and descriptions) with content change detection throughout the Wink Platform.

object
name
required

Use as title or short text description

string
""
Example
An example title
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
Example
This is a longer description in the specified language.
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
Example
en
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
Example
SYSTEM
md5ContentHash

The md5 hash of the name, description and language.

string
""
Example
d41d8cd98f00b204e9800998ecf8427e
hashMismatch
boolean
Example
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
pricingType
required

How this inventory item should be priced.

string
""
Allowed values: PER_STAY PER_DAY PER_NIGHT PER_USE PER_HOUR PER_PERSON PER_PERSON_PER_NIGHT PER_PERSON_PER_HOUR PER_ADULT PER_ADULT_PER_NIGHT PER_ADULT_PER_HOUR PER_CHILD PER_CHILD_PER_NIGHT PER_CHILD_PER_HOUR
price
required

Localized price

object
sourceToUserCurrencyQuote
required

Hotel to user currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
Example
USD
target
required

ISO 4217 target currency code

string
"" >= 1 characters
Example
THB
exchangeRate
required

Exchange rate from source to target currency

number
""
Example
33.5
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
Example
1705233000000
Example
{
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
}
sourceToInternalCurrencyQuote
required

Hotel to wink currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
Example
USD
target
required

ISO 4217 target currency code

string
"" >= 1 characters
Example
THB
exchangeRate
required

Exchange rate from source to target currency

number
""
Example
33.5
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
Example
1705233000000
Example
{
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
}
userSpecifiedCurrencyBaseTotal
required

Base total in user specified currency.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
sourceBaseTotal
required

Base total in hotel currency.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
internalBaseTotal
required

Base total in wink currency.

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
userSpecifiedCurrencyPromotionalModifier

Promotional modifiers in user specified currency

number
""
Example
-40
sourcePromotionalModifier

Promotional modifiers in hotel currency

number
""
Example
-40
internalPromotionalModifier

Promotional modifiers in wink currency

number
""
Example
-40
userSpecifiedCurrencyPremiumModifier

Premium modifiers in user specified currency

number
""
Example
40
sourcePremiumModifier

Premium modifiers in hotel currency

number
""
Example
40
internalPremiumModifier

Premium modifiers in wink currency

number
""
Example
40
userSpecifiedCurrencyChannelModifier

Channel / Membership modifier in user specified currency

number
""
Example
-10
sourceChannelModifier

Channel / Membership modifier in hotel currency

number
""
Example
-10
internalChannelModifier

Channel / Membership modifier in wink currency

number
""
Example
-10
quantity

How many of this item is included in this price

integer format: int64
default: 1
promotionalDiscountPercent

Promotional discount percent

number
""
channelDiscountPercent

Channel discount percent

number
""
premiumPercent

Premium percent

number
""
hasChannelDiscount
boolean
hasPremium
boolean
hasPromotion
boolean
sourceTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
internalTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
userSpecifiedCurrencyTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
totalDiscountPercent
number
Example
{
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"userSpecifiedCurrencyBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"internalBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyPromotionalModifier": -40,
"sourcePromotionalModifier": -40,
"internalPromotionalModifier": -40,
"userSpecifiedCurrencyPremiumModifier": 40,
"sourcePremiumModifier": 40,
"internalPremiumModifier": 40,
"userSpecifiedCurrencyChannelModifier": -10,
"sourceChannelModifier": -10,
"internalChannelModifier": -10,
"quantity": 1,
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
}
}
multimedias
required

List of images / videos of item.

Array<object>

Multimedia that contains less information than Multimedia object

object
multimediaIdentifier
required

Document identifier

string format: uuid
"" >= 1 characters
Example
3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51
identifier
required

Use this identifier to communicate with Cloudinary.

string
"" >= 1 characters
Example
cloudinary-image-1
type
required

Whether Cloudinary media is a VIDEO or IMAGE.

string
""
Allowed values: IMAGE VIDEO AUDIO RAW
Example
IMAGE
source
required

Currently ONLY using Cloudinary to store all image / video assets.

string
default: CLOUDINARY
Allowed values: YOUTUBE CLOUDINARY
Example
CLOUDINARY
sort
required

Sort allows you to control how you want to sort this record in a list of media records.

integer format: int32
default: 999
Example
10
angle

Media angle

string
""
Example
-90
width
required

Media width in pixels.

integer format: int32
"" >= 1
Example
2560
height
required

Media height in pixels.

integer format: int32
"" >= 1
Example
1600
published

Instead of deleting the media, choose to un-publish it instead for later re-use. Could be you keep seasonal images of the property.

boolean
Example
true
category

Supported OTA specification PIC code. See OTA geoname data

string
""
Example
1
descriptions

Localized media captions to give user some context about where this media was taken.

Array<object>
""

Foundation class for storing multi-language content (names and descriptions) with content change detection throughout the Wink Platform.

object
name
required

Use as title or short text description

string
""
Example
An example title
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
Example
This is a longer description in the specified language.
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
Example
en
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
Example
SYSTEM
md5ContentHash

The md5 hash of the name, description and language.

string
""
Example
d41d8cd98f00b204e9800998ecf8427e
hashMismatch
boolean
Example
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
lifestyleType

Associate this media with a specific lifestyle type. A user searching and filtering inventory based on lifestyles can be shown relevant media first.

string
""
Allowed values: LIFESTYLE_HEALTH_FITNESS LIFESTYLE_RELAX LIFESTYLE_ADULT_ONLY LIFESTYLE_ADVENTURE LIFESTYLE_BUSINESS LIFESTYLE_LGBT LIFESTYLE_SINGLE_PARENT LIFESTYLE_SOLO_FEMALE LIFESTYLE_BEAUTY LIFESTYLE_FOODIE LIFESTYLE_FAMILY LIFESTYLE_ROMANCE LIFESTYLE_COUPLE LIFESTYLE_SOLO LIFESTYLE_BACKPACKER LIFESTYLE_SHOPPING LIFESTYLE_SPORTS LIFESTYLE_MOUNTAIN LIFESTYLE_BEACH LIFESTYLE_CITY LIFESTYLE_COUNTRY LIFESTYLE_CULTURE LIFESTYLE_ECO
Example
LIFESTYLE_HEALTH_FITNESS
attribution

Whether image has attribution properties

Array<object>
""
object
url

URL to contributor

string format: uri
""
Example
https://maps.google.com/maps/contrib/111628493169070103594
name
required

Name of contributor

string
"" >= 1 characters
Example
Samuel Adams
Example
{
"url": "https://maps.google.com/maps/contrib/111628493169070103594",
"name": "Samuel Adams"
}
isLandscape

True if media width is greater or equal to height

boolean
Example
true
Example
{
"multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"identifier": "the-siam-residences/lobby-entrance",
"type": "IMAGE",
"source": "CLOUDINARY",
"sort": 10,
"angle": null,
"width": 2560,
"height": 1600,
"published": true,
"category": "2",
"descriptions": [
{
"title": "Lobby Entrance",
"description": "Elegant lobby of The Siam Residences",
"language": "en"
}
],
"lifestyleType": null,
"attribution": [],
"isLandscape": true
}
minPax

Whether there is a limit to minimum group size.

integer format: int32
""
Example
2
maxPax

Whether there is a limit to maximum group size.

integer format: int32
""
Example
10
offerDetails

Localized offer details if rate plan discount applies.

Array<object>
""

Simplified localized description containing text content and its language code.

object
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
Example
This is a longer description in the specified language.
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
Example
en
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
Example
SYSTEM
md5ContentHash

The md5 hash of the name, description and language.

string
""
Example
d41d8cd98f00b204e9800998ecf8427e
hashMismatch
boolean
Example
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
promotion

If a package is linked to a rate plan the user could be entitled to a promotional discount if she enters a code. When this field is populated, it means the discount was applied to the package.

string
""
Example
{
"identifier": "travel-blocking-1",
"name": "1 hour session",
"descriptions": [
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
],
"price": {
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"userSpecifiedCurrencyBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"internalBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyPromotionalModifier": -40,
"sourcePromotionalModifier": -40,
"internalPromotionalModifier": -40,
"userSpecifiedCurrencyPremiumModifier": 40,
"sourcePremiumModifier": 40,
"internalPremiumModifier": 40,
"userSpecifiedCurrencyChannelModifier": -10,
"sourceChannelModifier": -10,
"internalChannelModifier": -10,
"quantity": 1,
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
}
},
"multimedias": [
{
"multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"identifier": "the-siam-residences/lobby-entrance",
"type": "IMAGE",
"source": "CLOUDINARY",
"sort": 10,
"angle": null,
"width": 2560,
"height": 1600,
"published": true,
"category": "2",
"descriptions": [
{
"title": "Lobby Entrance",
"description": "Elegant lobby of The Siam Residences",
"language": "en"
}
],
"lifestyleType": null,
"attribution": [],
"isLandscape": true
}
],
"minPax": 2,
"maxPax": 10,
"offerDetails": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
]
}
available
boolean
rateSource
string
sourceTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
internalTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
userSpecifiedCurrencyTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
Example
1250
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
Example
USD
Example
{
"amount": 1250,
"currency": "USD"
}
Example
{
"list": [
{
"identifier": "travel-blocking-1",
"name": "1 hour session",
"descriptions": [
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
],
"price": {
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"userSpecifiedCurrencyBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"internalBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyPromotionalModifier": -40,
"sourcePromotionalModifier": -40,
"internalPromotionalModifier": -40,
"userSpecifiedCurrencyPremiumModifier": 40,
"sourcePremiumModifier": 40,
"internalPremiumModifier": 40,
"userSpecifiedCurrencyChannelModifier": -10,
"sourceChannelModifier": -10,
"internalChannelModifier": -10,
"quantity": 1,
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
}
},
"multimedias": [
{
"multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"identifier": "the-siam-residences/lobby-entrance",
"type": "IMAGE",
"source": "CLOUDINARY",
"sort": 10,
"angle": null,
"width": 2560,
"height": 1600,
"published": true,
"category": "2",
"descriptions": [
{
"title": "Lobby Entrance",
"description": "Elegant lobby of The Siam Residences",
"language": "en"
}
],
"lifestyleType": null,
"attribution": [],
"isLandscape": true
}
],
"minPax": 2,
"maxPax": 10,
"offerDetails": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
]
}
],
"commissionable": false,
"commission": 0.1,
"direct": true,
"ratePlan": {
"name": "BAR 1",
"breakfast": false,
"brunch": false,
"lunch": false,
"dinner": false,
"allInclusive": false,
"allInclusivePlusAlcohol": false,
"earlyCheckInCharge": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"lateCheckOutCharge": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
}
},
"perkTypes": [
{
"id": "PERK_GUARANTEED_UPGRADE",
"guaranteed": true,
"level": 3,
"descriptions": [
{
"language": "en",
"name": "Guaranteed Room Upgrade",
"description": "Guaranteed upgrade to the next available room category at check-in"
}
],
"sort": 5
}
],
"price": {
"userSpecifiedCurrencyBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"internalBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceExtraPaxModifier": 15,
"internalExtraPaxModifier": 15,
"userSpecifiedCurrencyExtraPaxModifier": 15,
"sourceExtraChildModifier": 15,
"internalExtraChildModifier": 15,
"userSpecifiedCurrencyExtraChildModifier": 15,
"sourceSingleOccupantModifier": -15,
"internalSingleOccupantModifier": -15,
"userSpecifiedCurrencySingleOccupantModifier": -15,
"sourcePromotionalModifier": -40,
"internalPromotionalModifier": -40,
"userSpecifiedCurrencyPromotionalModifier": -40,
"sourcePremiumModifier": 40,
"internalPremiumModifier": 40,
"userSpecifiedCurrencyPremiumModifier": 40,
"sourceChannelModifier": -10,
"internalChannelModifier": -10,
"userSpecifiedCurrencyChannelModifier": -10,
"available": false,
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"offerDetails": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
],
"list": [
{
"sourceBaseRate": {
"amount": 1250,
"currency": "USD"
},
"internalBaseRate": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyBaseRate": {
"amount": 1250,
"currency": "USD"
},
"offerDetails": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
],
"rate": {
"identifier": "5e8a3b7c-0d4f-4a2b-8c1d-9e6f2a0b4c73",
"hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18",
"rateSource": "TRAVELIKO",
"ratePlanIdentifier": "5e8a3b7c-0d4f-4a2b-8c1d-9e6f2a0b4c73",
"guestRoomIdentifier": "6f9b4c8d-1e5a-4b3c-9d2e-8a7f0c1b5e43",
"rate": {
"amount": 1250,
"currency": "USD"
},
"master": true,
"closedOnArrival": false,
"closedOnDeparture": false,
"date": "2020-8-24",
"quantity": 9,
"minOccupancy": 1,
"maxOccupancy": 2,
"minLengthOfStay": 4,
"maxLengthOfStay": 8,
"singleOccupancyRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"extraPaxRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"extraChildRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
}
},
"maxAdultOccupancy": 1,
"maxChildOccupancy": 0,
"includedAdultOccupancy": 2,
"includedChildOccupancy": 0,
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"financialBreakdown": {
"displayPriceQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"internalPriceQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"beneficiaryList": [
{
"accountIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"accountName": "The Siam Residences, Bangkok",
"accountEmail": "[email protected]",
"accountUrl": "https://trvl.as/the-siam-residences-bangkok",
"amountDue": {
"percent": 0.05
},
"sourceCurrency": "THB",
"displayCurrency": "USD",
"internalCurrency": "USD",
"sourceAmount": 450,
"displayAmount": 450,
"internalAmount": 450,
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45,
"pendingRefunds": [
{
"refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34",
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45
}
],
"netSourceAmount": 450,
"netDisplayAmount": 450,
"netInternalAmount": 450,
"reconciled": false
}
]
},
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceRate": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyRate": {
"amount": 1250,
"currency": "USD"
},
"internalRate": {
"amount": 1250,
"currency": "USD"
},
"beneficiaryList": [
{
"accountIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"accountName": "The Siam Residences, Bangkok",
"accountEmail": "[email protected]",
"accountUrl": "https://trvl.as/the-siam-residences-bangkok",
"amountDue": {
"percent": 0.05
},
"sourceCurrency": "THB",
"displayCurrency": "USD",
"internalCurrency": "USD",
"sourceAmount": 450,
"displayAmount": 450,
"internalAmount": 450,
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45,
"pendingRefunds": [
{
"refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34",
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45
}
],
"netSourceAmount": 450,
"netDisplayAmount": 450,
"netInternalAmount": 450,
"reconciled": false
}
],
"baseRate": {
"amount": 1250,
"currency": "USD"
}
}
],
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"financialBreakdown": {
"displayPriceQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"internalPriceQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"beneficiaryList": [
{
"accountIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"accountName": "The Siam Residences, Bangkok",
"accountEmail": "[email protected]",
"accountUrl": "https://trvl.as/the-siam-residences-bangkok",
"amountDue": {
"percent": 0.05
},
"sourceCurrency": "THB",
"displayCurrency": "USD",
"internalCurrency": "USD",
"sourceAmount": 450,
"displayAmount": 450,
"internalAmount": 450,
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45,
"pendingRefunds": [
{
"refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34",
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45
}
],
"netSourceAmount": 450,
"netDisplayAmount": 450,
"netInternalAmount": 450,
"reconciled": false
}
]
},
"userSpecifiedCurrencyAveragePricePerNight": {
"amount": 1250,
"currency": "USD"
},
"internalAveragePricePerNight": {
"amount": 1250,
"currency": "USD"
},
"sourceAveragePricePerNight": {
"amount": 1250,
"currency": "USD"
},
"beneficiaryList": [
{
"accountIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"accountName": "The Siam Residences, Bangkok",
"accountEmail": "[email protected]",
"accountUrl": "https://trvl.as/the-siam-residences-bangkok",
"amountDue": {
"percent": 0.05
},
"sourceCurrency": "THB",
"displayCurrency": "USD",
"internalCurrency": "USD",
"sourceAmount": 450,
"displayAmount": 450,
"internalAmount": 450,
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45,
"pendingRefunds": [
{
"refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34",
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45
}
],
"netSourceAmount": 450,
"netDisplayAmount": 450,
"netInternalAmount": 450,
"reconciled": false
}
]
},
"extraCharges": {
"items": [
{
"ratePlanLevelFee": {
"descriptions": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
],
"fixedAmount": 450,
"type": "PER_DAY"
},
"unitPrice": {
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"userSpecifiedCurrencyBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"internalBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyPromotionalModifier": -40,
"sourcePromotionalModifier": -40,
"internalPromotionalModifier": -40,
"userSpecifiedCurrencyPremiumModifier": 40,
"sourcePremiumModifier": 40,
"internalPremiumModifier": 40,
"userSpecifiedCurrencyChannelModifier": -10,
"sourceChannelModifier": -10,
"internalChannelModifier": -10,
"quantity": 1,
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
}
},
"price": {
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"userSpecifiedCurrencyBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"internalBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyPromotionalModifier": -40,
"sourcePromotionalModifier": -40,
"internalPromotionalModifier": -40,
"userSpecifiedCurrencyPremiumModifier": 40,
"sourcePremiumModifier": 40,
"internalPremiumModifier": 40,
"userSpecifiedCurrencyChannelModifier": -10,
"sourceChannelModifier": -10,
"internalChannelModifier": -10,
"quantity": 1,
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
}
}
}
],
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
}
},
"configuration": {
"adults": 2,
"children": [
{
"quantity": 2,
"age": 7
}
],
"quantity": 1
},
"addOnOffers": [
{
"addOn": {
"id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"createdDate": "2026-01-14T09:30:00",
"lastUpdate": "2026-02-03T16:45:12",
"version": 3,
"hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18",
"featuredInd": false,
"lifestyleType": "LIFESTYLE_HEALTH_FITNESS",
"location": {
"type": "POINT",
"coordinates": [
100.5581533,
13.7370197
]
},
"descriptions": [
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
],
"multimedias": [
{
"multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"identifier": "the-siam-residences/lobby-entrance",
"type": "IMAGE",
"source": "CLOUDINARY",
"sort": 10,
"angle": null,
"width": 2560,
"height": 1600,
"published": true,
"category": "2",
"descriptions": [
{
"title": "Lobby Entrance",
"description": "Elegant lobby of The Siam Residences",
"language": "en"
}
],
"lifestyleType": null,
"attribution": [],
"isLandscape": true
}
],
"contact": {
"firstName": "Alexandra",
"lastName": "Beaumont",
"email": "[email protected]",
"secondaryEmail": "[email protected]",
"phoneNumber": "+12125551212",
"fullName": "Alexandra Beaumont",
"summary": "John Smith ([email protected] / +12125551212)"
},
"address": {
"address1": "234 Near da beach",
"address2": "Pebble #5001",
"state": "CA",
"postalCode": "90210",
"county": "Alameda county",
"city": "Bangkok",
"countryCode": "TH",
"country": "United States",
"fullAddress": "11 At home, Suite 3C, New York City, NY 10010, United States"
},
"commissionable": true,
"name": "Archery lesson",
"proximityCode": "1",
"sort": 1,
"minAgeAppropriateCode": "1",
"bookable": true,
"active": true,
"socials": [
{
"type": "INSTAGRAM",
"location": "https://www.instagram.com/thesiamresidences"
}
],
"pricePoint": "THREE",
"recognitionList": [
{
"identifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"category": "AWARD",
"type": "PERCENT_RATING",
"provider": "Michelin",
"rating": 8.5,
"maxRating": 10,
"date": "2026-01-14",
"officialAppointmentInd": true,
"ratingSymbol": "*"
}
],
"transactionalInventoryList": [
{
"identifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"name": "1 hour session",
"descriptions": [
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
],
"pricingType": "PER_NIGHT",
"basePrice": {
"amount": 1250,
"currency": "USD"
},
"discountedPrice": {
"amount": 1250,
"currency": "USD"
},
"multimedias": [
{
"multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"identifier": "the-siam-residences/lobby-entrance",
"type": "IMAGE",
"source": "CLOUDINARY",
"sort": 10,
"angle": null,
"width": 2560,
"height": 1600,
"published": true,
"category": "2",
"descriptions": [
{
"title": "Lobby Entrance",
"description": "Elegant lobby of The Siam Residences",
"language": "en"
}
],
"lifestyleType": null,
"attribution": [],
"isLandscape": true
}
],
"minPax": 2,
"maxPax": 10,
"percentPremium": 0.1,
"percentDiscount": 0.1
}
],
"publishStatus": "PUBLISHED",
"applicableStart": "1970-1-1",
"applicableEnd": "1970-12-1",
"reservationRequiredInd": false,
"opens": "09:00",
"closes": "17:30",
"daysOfWeek": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
},
"numberOfUnits": 15,
"mandatory": true,
"ratePlan": {
"id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"version": 3,
"hotelIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"name": "Best Available Rate",
"prepaid": false,
"enabled": false,
"breakfast": false,
"brunch": false,
"lunch": false,
"dinner": false,
"allInclusive": false,
"allInclusivePlusAlcohol": false,
"sellStartDate": "2026-01-15",
"sellEndDate": "2026-12-31",
"stayStartDate": "2026-01-15",
"stayEndDate": "2026-12-31",
"loyaltyPointsAccrue": false,
"maxAdvanceBookingOffset": 180,
"minAdvanceBookingOffset": 3,
"minTotalOccupancy": 1,
"maxTotalOccupancy": 4,
"minLOS": 1,
"maxLOS": 30,
"minAge": 18,
"maxAge": 65,
"ratePlanLevelFees": [
{
"descriptions": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
],
"fixedAmount": 450,
"type": "PER_DAY"
}
],
"availableDaysOfWeek": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
},
"arrivalDaysOfWeek": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
},
"departureDaysOfWeek": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
},
"requiredDaysOfWeek": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
},
"earlyCheckInCharge": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"lateCheckOutCharge": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"cancellationPolicy": {
"id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"version": 3,
"hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18",
"refundable": false,
"advanceCancellationFreeOfCharge": "UNTIL_EIGHTEEN_HUNDRED_HOURS_ON_DAY_OF_ARRIVAL",
"refundableCancellationCharge": "FIFTY_PERCENT",
"noShowCharge": "SAME_AS_CANCELLATION_FEE",
"nonRefundableCancellationCharge": "SEVENTY_PERCENT",
"nonRefundableDeadline": "SEVEN_DAYS_BEFORE_ARRIVAL",
"nonRefundableAfterDeadlineCancellationCharge": "ONE_HUNDRED_PERCENT",
"createdDate": "2026-01-14T09:30:00",
"lastUpdate": "2026-02-03T16:45:12"
},
"cancellationPolicyExceptions": {
"list": [
{
"cancellationPolicyIdentifier": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"startDate": "2026-01-14",
"endDate": "2026-12-31"
}
]
},
"singleOccupancyRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"extraPaxRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"extraChildRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"createdDate": "2026-01-14T09:30:00",
"lastUpdate": "2026-02-03T16:45:12"
},
"dateRanges": [
{
"startDate": "2020-12-24",
"endDate": "2020-12-31"
}
]
},
"priceList": [
{
"identifier": "travel-blocking-1",
"name": "1 hour session",
"descriptions": [
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
],
"price": {
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"userSpecifiedCurrencyBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"internalBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyPromotionalModifier": -40,
"sourcePromotionalModifier": -40,
"internalPromotionalModifier": -40,
"userSpecifiedCurrencyPremiumModifier": 40,
"sourcePremiumModifier": 40,
"internalPremiumModifier": 40,
"userSpecifiedCurrencyChannelModifier": -10,
"sourceChannelModifier": -10,
"internalChannelModifier": -10,
"quantity": 1,
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
}
},
"multimedias": [
{
"multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"identifier": "the-siam-residences/lobby-entrance",
"type": "IMAGE",
"source": "CLOUDINARY",
"sort": 10,
"angle": null,
"width": 2560,
"height": 1600,
"published": true,
"category": "2",
"descriptions": [
{
"title": "Lobby Entrance",
"description": "Elegant lobby of The Siam Residences",
"language": "en"
}
],
"lifestyleType": null,
"attribution": [],
"isLandscape": true
}
],
"minPax": 2,
"maxPax": 10,
"offerDetails": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
]
}
],
"commissionable": false,
"commission": 0.1,
"direct": true
}
],
"activeCancellationPolicy": {
"id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"version": 3,
"hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18",
"refundable": false,
"advanceCancellationFreeOfCharge": "UNTIL_EIGHTEEN_HUNDRED_HOURS_ON_DAY_OF_ARRIVAL",
"refundableCancellationCharge": "FIFTY_PERCENT",
"noShowCharge": "SAME_AS_CANCELLATION_FEE",
"nonRefundableCancellationCharge": "SEVENTY_PERCENT",
"nonRefundableDeadline": "SEVEN_DAYS_BEFORE_ARRIVAL",
"nonRefundableAfterDeadlineCancellationCharge": "ONE_HUNDRED_PERCENT",
"createdDate": "2026-01-14T09:30:00",
"lastUpdate": "2026-02-03T16:45:12"
},
"priceList": [
{
"identifier": "travel-blocking-1",
"name": "1 hour session",
"descriptions": [
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
],
"price": {
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"userSpecifiedCurrencyBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"internalBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyPromotionalModifier": -40,
"sourcePromotionalModifier": -40,
"internalPromotionalModifier": -40,
"userSpecifiedCurrencyPremiumModifier": 40,
"sourcePremiumModifier": 40,
"internalPremiumModifier": 40,
"userSpecifiedCurrencyChannelModifier": -10,
"sourceChannelModifier": -10,
"internalChannelModifier": -10,
"quantity": 1,
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
}
},
"multimedias": [
{
"multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"identifier": "the-siam-residences/lobby-entrance",
"type": "IMAGE",
"source": "CLOUDINARY",
"sort": 10,
"angle": null,
"width": 2560,
"height": 1600,
"published": true,
"category": "2",
"descriptions": [
{
"title": "Lobby Entrance",
"description": "Elegant lobby of The Siam Residences",
"language": "en"
}
],
"lifestyleType": null,
"attribution": [],
"isLandscape": true
}
],
"minPax": 2,
"maxPax": 10,
"offerDetails": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
]
}
],
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
}
}
quantity

Number of rooms

integer format: int32
""
notification
required

Notification options

object
notifyProperty

Whether to notify property of booking

boolean
notifyChannelManager

Whether to notify channel manager of booking

boolean
notifyBooker

Whether to notify booker of booking

boolean
booker

Whether to notify booker of booking

object
userIdentifier

User identifier

string format: uuid
""
Example
c3a9f2e1-8b4d-4c7a-a1e2-5f0b6d9e2c84
firstName
required

First name

string
"" >= 1 characters
Example
Alexandra
lastName
required

Last name

string
"" >= 1 characters
Example
Beaumont
email
required

Email

string format: email
"" >= 1 characters
telephone

Telephone

string
"" /^\+?[1-9]\d{1,14}$/
Example
+1 212 555 1212
fullName

Full name

string
""
Example
Alexandra Beaumont
Example
{
"userIdentifier": "c3a9f2e1-8b4d-4c7a-a1e2-5f0b6d9e2c84",
"firstName": "Alexandra",
"lastName": "Beaumont",
"email": "[email protected]",
"telephone": "+1 212 555 1212",
"fullName": "Alexandra Beaumont"
}
Example
{
"notifyProperty": false,
"notifyChannelManager": false,
"notifyBooker": false,
"booker": {
"userIdentifier": "c3a9f2e1-8b4d-4c7a-a1e2-5f0b6d9e2c84",
"firstName": "Alexandra",
"lastName": "Beaumont",
"email": "[email protected]",
"telephone": "+1 212 555 1212",
"fullName": "Alexandra Beaumont"
}
}
Example
{
"query": {
"channel": {
"propertyIdentifier": "the-siam-residences",
"subType": "HOTEL",
"ownerIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"name": "The Siam Residences - Direct Channel"
},
"roomConfigurations": [
{
"adults": 2,
"children": [
{
"quantity": 2,
"age": 7
}
],
"quantity": 1
}
],
"city": {
"geoNameId": "1609350",
"localeCode": "en",
"continentCode": "AS",
"continentName": "Asia",
"countryIsoCode": "TH",
"countryName": "Thailand",
"cityName": "Bangkok",
"timezone": "Asia/Bangkok",
"subDivision1Code": "10",
"subDivision1Name": "Bangkok",
"subDivision2Code": "1001",
"subDivision2Name": "Phra Nakhon"
},
"country": {
"geoNameId": "1609350",
"continentCode": "AS",
"continentName": "Asia",
"countryIsoCode": "TH",
"countryName": "Thailand"
}
},
"room": {
"list": [
{
"identifier": "travel-blocking-1",
"name": "1 hour session",
"descriptions": [
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
],
"price": {
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"userSpecifiedCurrencyBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"internalBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyPromotionalModifier": -40,
"sourcePromotionalModifier": -40,
"internalPromotionalModifier": -40,
"userSpecifiedCurrencyPremiumModifier": 40,
"sourcePremiumModifier": 40,
"internalPremiumModifier": 40,
"userSpecifiedCurrencyChannelModifier": -10,
"sourceChannelModifier": -10,
"internalChannelModifier": -10,
"quantity": 1,
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
}
},
"multimedias": [
{
"multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"identifier": "the-siam-residences/lobby-entrance",
"type": "IMAGE",
"source": "CLOUDINARY",
"sort": 10,
"angle": null,
"width": 2560,
"height": 1600,
"published": true,
"category": "2",
"descriptions": [
{
"title": "Lobby Entrance",
"description": "Elegant lobby of The Siam Residences",
"language": "en"
}
],
"lifestyleType": null,
"attribution": [],
"isLandscape": true
}
],
"minPax": 2,
"maxPax": 10,
"offerDetails": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
]
}
],
"commissionable": false,
"commission": 0.1,
"direct": true,
"ratePlan": {
"name": "BAR 1",
"breakfast": false,
"brunch": false,
"lunch": false,
"dinner": false,
"allInclusive": false,
"allInclusivePlusAlcohol": false,
"earlyCheckInCharge": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"lateCheckOutCharge": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
}
},
"perkTypes": [
{
"id": "PERK_GUARANTEED_UPGRADE",
"guaranteed": true,
"level": 3,
"descriptions": [
{
"language": "en",
"name": "Guaranteed Room Upgrade",
"description": "Guaranteed upgrade to the next available room category at check-in"
}
],
"sort": 5
}
],
"price": {
"userSpecifiedCurrencyBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"internalBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceExtraPaxModifier": 15,
"internalExtraPaxModifier": 15,
"userSpecifiedCurrencyExtraPaxModifier": 15,
"sourceExtraChildModifier": 15,
"internalExtraChildModifier": 15,
"userSpecifiedCurrencyExtraChildModifier": 15,
"sourceSingleOccupantModifier": -15,
"internalSingleOccupantModifier": -15,
"userSpecifiedCurrencySingleOccupantModifier": -15,
"sourcePromotionalModifier": -40,
"internalPromotionalModifier": -40,
"userSpecifiedCurrencyPromotionalModifier": -40,
"sourcePremiumModifier": 40,
"internalPremiumModifier": 40,
"userSpecifiedCurrencyPremiumModifier": 40,
"sourceChannelModifier": -10,
"internalChannelModifier": -10,
"userSpecifiedCurrencyChannelModifier": -10,
"available": false,
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"offerDetails": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
],
"list": [
{
"sourceBaseRate": {
"amount": 1250,
"currency": "USD"
},
"internalBaseRate": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyBaseRate": {
"amount": 1250,
"currency": "USD"
},
"offerDetails": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
],
"rate": {
"identifier": "5e8a3b7c-0d4f-4a2b-8c1d-9e6f2a0b4c73",
"hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18",
"rateSource": "TRAVELIKO",
"ratePlanIdentifier": "5e8a3b7c-0d4f-4a2b-8c1d-9e6f2a0b4c73",
"guestRoomIdentifier": "6f9b4c8d-1e5a-4b3c-9d2e-8a7f0c1b5e43",
"rate": {
"amount": 1250,
"currency": "USD"
},
"master": true,
"closedOnArrival": false,
"closedOnDeparture": false,
"date": "2020-8-24",
"quantity": 9,
"minOccupancy": 1,
"maxOccupancy": 2,
"minLengthOfStay": 4,
"maxLengthOfStay": 8,
"singleOccupancyRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"extraPaxRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"extraChildRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
}
},
"maxAdultOccupancy": 1,
"maxChildOccupancy": 0,
"includedAdultOccupancy": 2,
"includedChildOccupancy": 0,
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"financialBreakdown": {
"displayPriceQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"internalPriceQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"beneficiaryList": [
{
"accountIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"accountName": "The Siam Residences, Bangkok",
"accountEmail": "[email protected]",
"accountUrl": "https://trvl.as/the-siam-residences-bangkok",
"amountDue": {
"percent": 0.05
},
"sourceCurrency": "THB",
"displayCurrency": "USD",
"internalCurrency": "USD",
"sourceAmount": 450,
"displayAmount": 450,
"internalAmount": 450,
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45,
"pendingRefunds": [
{
"refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34",
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45
}
],
"netSourceAmount": 450,
"netDisplayAmount": 450,
"netInternalAmount": 450,
"reconciled": false
}
]
},
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceRate": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyRate": {
"amount": 1250,
"currency": "USD"
},
"internalRate": {
"amount": 1250,
"currency": "USD"
},
"beneficiaryList": [
{
"accountIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"accountName": "The Siam Residences, Bangkok",
"accountEmail": "[email protected]",
"accountUrl": "https://trvl.as/the-siam-residences-bangkok",
"amountDue": {
"percent": 0.05
},
"sourceCurrency": "THB",
"displayCurrency": "USD",
"internalCurrency": "USD",
"sourceAmount": 450,
"displayAmount": 450,
"internalAmount": 450,
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45,
"pendingRefunds": [
{
"refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34",
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45
}
],
"netSourceAmount": 450,
"netDisplayAmount": 450,
"netInternalAmount": 450,
"reconciled": false
}
],
"baseRate": {
"amount": 1250,
"currency": "USD"
}
}
],
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"financialBreakdown": {
"displayPriceQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"internalPriceQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"beneficiaryList": [
{
"accountIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"accountName": "The Siam Residences, Bangkok",
"accountEmail": "[email protected]",
"accountUrl": "https://trvl.as/the-siam-residences-bangkok",
"amountDue": {
"percent": 0.05
},
"sourceCurrency": "THB",
"displayCurrency": "USD",
"internalCurrency": "USD",
"sourceAmount": 450,
"displayAmount": 450,
"internalAmount": 450,
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45,
"pendingRefunds": [
{
"refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34",
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45
}
],
"netSourceAmount": 450,
"netDisplayAmount": 450,
"netInternalAmount": 450,
"reconciled": false
}
]
},
"userSpecifiedCurrencyAveragePricePerNight": {
"amount": 1250,
"currency": "USD"
},
"internalAveragePricePerNight": {
"amount": 1250,
"currency": "USD"
},
"sourceAveragePricePerNight": {
"amount": 1250,
"currency": "USD"
},
"beneficiaryList": [
{
"accountIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"accountName": "The Siam Residences, Bangkok",
"accountEmail": "[email protected]",
"accountUrl": "https://trvl.as/the-siam-residences-bangkok",
"amountDue": {
"percent": 0.05
},
"sourceCurrency": "THB",
"displayCurrency": "USD",
"internalCurrency": "USD",
"sourceAmount": 450,
"displayAmount": 450,
"internalAmount": 450,
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45,
"pendingRefunds": [
{
"refundIdentifier": "ref-d5b8a3c2-9e6f-4a1b-8d34",
"sourceAmountRefundModifier": 45,
"displayAmountRefundModifier": 45,
"internalAmountRefundModifier": 45
}
],
"netSourceAmount": 450,
"netDisplayAmount": 450,
"netInternalAmount": 450,
"reconciled": false
}
]
},
"extraCharges": {
"items": [
{
"ratePlanLevelFee": {
"descriptions": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
],
"fixedAmount": 450,
"type": "PER_DAY"
},
"unitPrice": {
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"userSpecifiedCurrencyBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"internalBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyPromotionalModifier": -40,
"sourcePromotionalModifier": -40,
"internalPromotionalModifier": -40,
"userSpecifiedCurrencyPremiumModifier": 40,
"sourcePremiumModifier": 40,
"internalPremiumModifier": 40,
"userSpecifiedCurrencyChannelModifier": -10,
"sourceChannelModifier": -10,
"internalChannelModifier": -10,
"quantity": 1,
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
}
},
"price": {
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"userSpecifiedCurrencyBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"internalBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyPromotionalModifier": -40,
"sourcePromotionalModifier": -40,
"internalPromotionalModifier": -40,
"userSpecifiedCurrencyPremiumModifier": 40,
"sourcePremiumModifier": 40,
"internalPremiumModifier": 40,
"userSpecifiedCurrencyChannelModifier": -10,
"sourceChannelModifier": -10,
"internalChannelModifier": -10,
"quantity": 1,
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
}
}
}
],
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
}
},
"configuration": {
"adults": 2,
"children": [
{
"quantity": 2,
"age": 7
}
],
"quantity": 1
},
"addOnOffers": [
{
"addOn": {
"id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"createdDate": "2026-01-14T09:30:00",
"lastUpdate": "2026-02-03T16:45:12",
"version": 3,
"hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18",
"featuredInd": false,
"lifestyleType": "LIFESTYLE_HEALTH_FITNESS",
"location": {
"type": "POINT",
"coordinates": [
100.5581533,
13.7370197
]
},
"descriptions": [
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
],
"multimedias": [
{
"multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"identifier": "the-siam-residences/lobby-entrance",
"type": "IMAGE",
"source": "CLOUDINARY",
"sort": 10,
"angle": null,
"width": 2560,
"height": 1600,
"published": true,
"category": "2",
"descriptions": [
{
"title": "Lobby Entrance",
"description": "Elegant lobby of The Siam Residences",
"language": "en"
}
],
"lifestyleType": null,
"attribution": [],
"isLandscape": true
}
],
"contact": {
"firstName": "Alexandra",
"lastName": "Beaumont",
"email": "[email protected]",
"secondaryEmail": "[email protected]",
"phoneNumber": "+12125551212",
"fullName": "Alexandra Beaumont",
"summary": "John Smith ([email protected] / +12125551212)"
},
"address": {
"address1": "234 Near da beach",
"address2": "Pebble #5001",
"state": "CA",
"postalCode": "90210",
"county": "Alameda county",
"city": "Bangkok",
"countryCode": "TH",
"country": "United States",
"fullAddress": "11 At home, Suite 3C, New York City, NY 10010, United States"
},
"commissionable": true,
"name": "Archery lesson",
"proximityCode": "1",
"sort": 1,
"minAgeAppropriateCode": "1",
"bookable": true,
"active": true,
"socials": [
{
"type": "INSTAGRAM",
"location": "https://www.instagram.com/thesiamresidences"
}
],
"pricePoint": "THREE",
"recognitionList": [
{
"identifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"category": "AWARD",
"type": "PERCENT_RATING",
"provider": "Michelin",
"rating": 8.5,
"maxRating": 10,
"date": "2026-01-14",
"officialAppointmentInd": true,
"ratingSymbol": "*"
}
],
"transactionalInventoryList": [
{
"identifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"name": "1 hour session",
"descriptions": [
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
],
"pricingType": "PER_NIGHT",
"basePrice": {
"amount": 1250,
"currency": "USD"
},
"discountedPrice": {
"amount": 1250,
"currency": "USD"
},
"multimedias": [
{
"multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"identifier": "the-siam-residences/lobby-entrance",
"type": "IMAGE",
"source": "CLOUDINARY",
"sort": 10,
"angle": null,
"width": 2560,
"height": 1600,
"published": true,
"category": "2",
"descriptions": [
{
"title": "Lobby Entrance",
"description": "Elegant lobby of The Siam Residences",
"language": "en"
}
],
"lifestyleType": null,
"attribution": [],
"isLandscape": true
}
],
"minPax": 2,
"maxPax": 10,
"percentPremium": 0.1,
"percentDiscount": 0.1
}
],
"publishStatus": "PUBLISHED",
"applicableStart": "1970-1-1",
"applicableEnd": "1970-12-1",
"reservationRequiredInd": false,
"opens": "09:00",
"closes": "17:30",
"daysOfWeek": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
},
"numberOfUnits": 15,
"mandatory": true,
"ratePlan": {
"id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"version": 3,
"hotelIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"name": "Best Available Rate",
"prepaid": false,
"enabled": false,
"breakfast": false,
"brunch": false,
"lunch": false,
"dinner": false,
"allInclusive": false,
"allInclusivePlusAlcohol": false,
"sellStartDate": "2026-01-15",
"sellEndDate": "2026-12-31",
"stayStartDate": "2026-01-15",
"stayEndDate": "2026-12-31",
"loyaltyPointsAccrue": false,
"maxAdvanceBookingOffset": 180,
"minAdvanceBookingOffset": 3,
"minTotalOccupancy": 1,
"maxTotalOccupancy": 4,
"minLOS": 1,
"maxLOS": 30,
"minAge": 18,
"maxAge": 65,
"ratePlanLevelFees": [
{
"descriptions": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
],
"fixedAmount": 450,
"type": "PER_DAY"
}
],
"availableDaysOfWeek": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
},
"arrivalDaysOfWeek": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
},
"departureDaysOfWeek": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
},
"requiredDaysOfWeek": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true,
"disabled": true
},
"earlyCheckInCharge": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"lateCheckOutCharge": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"cancellationPolicy": {
"id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"version": 3,
"hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18",
"refundable": false,
"advanceCancellationFreeOfCharge": "UNTIL_EIGHTEEN_HUNDRED_HOURS_ON_DAY_OF_ARRIVAL",
"refundableCancellationCharge": "FIFTY_PERCENT",
"noShowCharge": "SAME_AS_CANCELLATION_FEE",
"nonRefundableCancellationCharge": "SEVENTY_PERCENT",
"nonRefundableDeadline": "SEVEN_DAYS_BEFORE_ARRIVAL",
"nonRefundableAfterDeadlineCancellationCharge": "ONE_HUNDRED_PERCENT",
"createdDate": "2026-01-14T09:30:00",
"lastUpdate": "2026-02-03T16:45:12"
},
"cancellationPolicyExceptions": {
"list": [
{
"cancellationPolicyIdentifier": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"startDate": "2026-01-14",
"endDate": "2026-12-31"
}
]
},
"singleOccupancyRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"extraPaxRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"extraChildRateModifier": {
"type": "PERCENTAGE",
"percent": 0.25,
"fixedAmount": {
"amount": 1250,
"currency": "USD"
}
},
"createdDate": "2026-01-14T09:30:00",
"lastUpdate": "2026-02-03T16:45:12"
},
"dateRanges": [
{
"startDate": "2020-12-24",
"endDate": "2020-12-31"
}
]
},
"priceList": [
{
"identifier": "travel-blocking-1",
"name": "1 hour session",
"descriptions": [
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
],
"price": {
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"userSpecifiedCurrencyBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"internalBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyPromotionalModifier": -40,
"sourcePromotionalModifier": -40,
"internalPromotionalModifier": -40,
"userSpecifiedCurrencyPremiumModifier": 40,
"sourcePremiumModifier": 40,
"internalPremiumModifier": 40,
"userSpecifiedCurrencyChannelModifier": -10,
"sourceChannelModifier": -10,
"internalChannelModifier": -10,
"quantity": 1,
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
}
},
"multimedias": [
{
"multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"identifier": "the-siam-residences/lobby-entrance",
"type": "IMAGE",
"source": "CLOUDINARY",
"sort": 10,
"angle": null,
"width": 2560,
"height": 1600,
"published": true,
"category": "2",
"descriptions": [
{
"title": "Lobby Entrance",
"description": "Elegant lobby of The Siam Residences",
"language": "en"
}
],
"lifestyleType": null,
"attribution": [],
"isLandscape": true
}
],
"minPax": 2,
"maxPax": 10,
"offerDetails": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
]
}
],
"commissionable": false,
"commission": 0.1,
"direct": true
}
],
"activeCancellationPolicy": {
"id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47",
"version": 3,
"hotelIdentifier": "e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18",
"refundable": false,
"advanceCancellationFreeOfCharge": "UNTIL_EIGHTEEN_HUNDRED_HOURS_ON_DAY_OF_ARRIVAL",
"refundableCancellationCharge": "FIFTY_PERCENT",
"noShowCharge": "SAME_AS_CANCELLATION_FEE",
"nonRefundableCancellationCharge": "SEVENTY_PERCENT",
"nonRefundableDeadline": "SEVEN_DAYS_BEFORE_ARRIVAL",
"nonRefundableAfterDeadlineCancellationCharge": "ONE_HUNDRED_PERCENT",
"createdDate": "2026-01-14T09:30:00",
"lastUpdate": "2026-02-03T16:45:12"
},
"priceList": [
{
"identifier": "travel-blocking-1",
"name": "1 hour session",
"descriptions": [
{
"name": "Deluxe River View Suite",
"description": "Spacious suite with floor-to-ceiling windows overlooking the Chao Phraya River, featuring a king-size bed, private balcony, and marble bathroom.",
"language": "en",
"creator": "USER",
"md5ContentHash": "a3f1c8e2d74b60912a5c3e9b1d7f4e82"
}
],
"price": {
"sourceToUserCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"sourceToInternalCurrencyQuote": {
"source": "USD",
"target": "THB",
"exchangeRate": 33.5,
"timestamp": 1705233000000
},
"userSpecifiedCurrencyBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"sourceBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"internalBaseTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyPromotionalModifier": -40,
"sourcePromotionalModifier": -40,
"internalPromotionalModifier": -40,
"userSpecifiedCurrencyPremiumModifier": 40,
"sourcePremiumModifier": 40,
"internalPremiumModifier": 40,
"userSpecifiedCurrencyChannelModifier": -10,
"sourceChannelModifier": -10,
"internalChannelModifier": -10,
"quantity": 1,
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
}
},
"multimedias": [
{
"multimediaIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51",
"identifier": "the-siam-residences/lobby-entrance",
"type": "IMAGE",
"source": "CLOUDINARY",
"sort": 10,
"angle": null,
"width": 2560,
"height": 1600,
"published": true,
"category": "2",
"descriptions": [
{
"title": "Lobby Entrance",
"description": "Elegant lobby of The Siam Residences",
"language": "en"
}
],
"lifestyleType": null,
"attribution": [],
"isLandscape": true
}
],
"minPax": 2,
"maxPax": 10,
"offerDetails": [
{
"description": "This is a longer description in the specified language.",
"language": "en",
"creator": "USER",
"md5ContentHash": "d41d8cd98f00b204e9800998ecf8427e"
}
]
}
],
"sourceTotal": {
"amount": 1250,
"currency": "USD"
},
"internalTotal": {
"amount": 1250,
"currency": "USD"
},
"userSpecifiedCurrencyTotal": {
"amount": 1250,
"currency": "USD"
}
},
"notification": {
"notifyProperty": false,
"notifyChannelManager": false,
"notifyBooker": false,
"booker": {
"userIdentifier": "c3a9f2e1-8b4d-4c7a-a1e2-5f0b6d9e2c84",
"firstName": "Alexandra",
"lastName": "Beaumont",
"email": "[email protected]",
"telephone": "+1 212 555 1212",
"fullName": "Alexandra Beaumont"
}
}
}

Sandbox booking created and returned

Media typeapplication/json

Lightweight, read-only projection of a booking, used by cross-domain consumers (channel managers, caldav, reporting, accounting, email templating, analytics) and every booking-web/booking-mcp surface.

object
id

Unique identifier for this record.

string format: uuid
""
createdDate

Datetime this record was first created

string | null format: date-time
""
lastUpdate

Datetime this record was last updated

string | null format: date-time
""
version

Optimistic-locking version. Echo this value back as an If-Match request header on a conditional update; the server responds 409 if the record changed in the meantime. Null when this projection has no backing versioned document, in which case no conditional update is possible.

integer | null format: int64
""
bookingCode

User-friendly booking confirmation code.

string
""
comment

Free-form comment, used internally and by some channel managers.

string
""
specialRequests

Free-form special requests text.

string
""
sourceCurrency

Source (supplier) currency code.

string
""
creation

The kind of booking (normal, test, etc.) — used to derive rate source.

string
""
Allowed values: NORMAL TEST FAILED
bookingStatus

Booking lifecycle status.

string
""
Allowed values: INITIALIZED TEST_PAYMENT_SUCCEEDED PAYMENT_SUCCEEDED PAYMENT_FAILED FAILED CANCELLED PARTIALLY_REFUNDED FULLY_REFUNDED
hotel

The property this booking belongs to.

object
hotelIdentifier

Unique hotel record identifier.

string format: uuid
""
lastUpdate

Timestamp of the last update to this property aggregate record.

string format: date-time
""
name

Hotel trade name

string
""
localName

Hotel local name if different from the trade name or if it is the local language.

string
""
chain

Name of hotel chain if applicable.

string
""
brand

Name of hotel brand

string
""
urlName

Unique URL-friendly name slug of hotel

string
"" /^[a-z0-9][a-z0-9-]*[a-z0-9]$/
uniqueId
required

Event shorter name

string
"" >= 1 characters
starRating

Official or self-designated property star rating. Note that in some regions there are 6-star hotels. They are the same as 5-star hotels everywhere else.

integer format: int32
"" <= 6
bookings

Number of bookings for this property on the wink.travel platform.

integer format: int64
0
aggregateReviewRating

Aggregate score based on all current user reviews.

number format: float
default: 0.0
location

Geo-location

object
x
number format: double
y
number format: double
type
string
coordinates
Array<number>
descriptions

Short and long welcome text

Array<object>
""

Foundation class for storing multi-language content (names and descriptions) with content change detection throughout the Wink Platform.

object
name
required

Use as title or short text description

string
""
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
md5ContentHash

The md5 hash of the name, description and language.

string
""
hashMismatch
boolean
aggregateGreendexRating

Aggregate Green Index score if the property has answered our questionnaire available in the Extranet.

number format: float
default: 0.0
lifestyleTypes
Array<string>
Allowed values: LIFESTYLE_HEALTH_FITNESS LIFESTYLE_RELAX LIFESTYLE_ADULT_ONLY LIFESTYLE_ADVENTURE LIFESTYLE_BUSINESS LIFESTYLE_LGBT LIFESTYLE_SINGLE_PARENT LIFESTYLE_SOLO_FEMALE LIFESTYLE_BEAUTY LIFESTYLE_FOODIE LIFESTYLE_FAMILY LIFESTYLE_ROMANCE LIFESTYLE_COUPLE LIFESTYLE_SOLO LIFESTYLE_BACKPACKER LIFESTYLE_SHOPPING LIFESTYLE_SPORTS LIFESTYLE_MOUNTAIN LIFESTYLE_BEACH LIFESTYLE_CITY LIFESTYLE_COUNTRY LIFESTYLE_CULTURE LIFESTYLE_ECO
totalReviews

Count of total reviews left by users at this property.

integer format: int32
0
reservations

Contact details for reservations desk

object
firstName

Contact first name

string
""
lastName

Contact last name

string
""
email

Contact E-mail

string format: email
""
secondaryEmail

Contact secondary Email

string format: email
""
phoneNumber

Contact phone number

string
"" /^\+?[1-9]\d{1,14}$/
fullName

First and last name

string
""
summary

Summary

string
""
socials

Property’s social network accounts

Array<object>
""

Social network

object
type

Type of social network.

string
""
Allowed values: FACEBOOK INSTAGRAM SKYPE TRIP_ADVISOR TWITTER GOOGLE_PLUS WHATSAPP LINE WECHAT VIBER SNAPCHAT WEIBO RENREN WEBSITE QQ TIKTOK
location

URL or social network identifier to social network profile

string
""
images

Property images.

Array<object>
""

Multimedia that contains less information than Multimedia object

object
multimediaIdentifier
required

Document identifier

string format: uuid
"" >= 1 characters
identifier
required

Use this identifier to communicate with Cloudinary.

string
"" >= 1 characters
type
required

Whether Cloudinary media is a VIDEO or IMAGE.

string
""
Allowed values: IMAGE VIDEO AUDIO RAW
source
required

Currently ONLY using Cloudinary to store all image / video assets.

string
default: CLOUDINARY
Allowed values: YOUTUBE CLOUDINARY
sort
required

Sort allows you to control how you want to sort this record in a list of media records.

integer format: int32
default: 999
angle

Media angle

string
""
width
required

Media width in pixels.

integer format: int32
"" >= 1
height
required

Media height in pixels.

integer format: int32
"" >= 1
published

Instead of deleting the media, choose to un-publish it instead for later re-use. Could be you keep seasonal images of the property.

boolean
category

Supported OTA specification PIC code. See OTA geoname data

string
""
descriptions

Localized media captions to give user some context about where this media was taken.

Array<object>
""

Foundation class for storing multi-language content (names and descriptions) with content change detection throughout the Wink Platform.

object
name
required

Use as title or short text description

string
""
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
md5ContentHash

The md5 hash of the name, description and language.

string
""
hashMismatch
boolean
lifestyleType

Associate this media with a specific lifestyle type. A user searching and filtering inventory based on lifestyles can be shown relevant media first.

string
""
Allowed values: LIFESTYLE_HEALTH_FITNESS LIFESTYLE_RELAX LIFESTYLE_ADULT_ONLY LIFESTYLE_ADVENTURE LIFESTYLE_BUSINESS LIFESTYLE_LGBT LIFESTYLE_SINGLE_PARENT LIFESTYLE_SOLO_FEMALE LIFESTYLE_BEAUTY LIFESTYLE_FOODIE LIFESTYLE_FAMILY LIFESTYLE_ROMANCE LIFESTYLE_COUPLE LIFESTYLE_SOLO LIFESTYLE_BACKPACKER LIFESTYLE_SHOPPING LIFESTYLE_SPORTS LIFESTYLE_MOUNTAIN LIFESTYLE_BEACH LIFESTYLE_CITY LIFESTYLE_COUNTRY LIFESTYLE_CULTURE LIFESTYLE_ECO
attribution

Whether image has attribution properties

Array<object>
""
object
url

URL to contributor

string format: uri
""
name
required

Name of contributor

string
"" >= 1 characters
isLandscape

True if media width is greater or equal to height

boolean
videos

Property videos.

Array<object>
""

Multimedia that contains less information than Multimedia object

object
multimediaIdentifier
required

Document identifier

string format: uuid
"" >= 1 characters
identifier
required

Use this identifier to communicate with Cloudinary.

string
"" >= 1 characters
type
required

Whether Cloudinary media is a VIDEO or IMAGE.

string
""
Allowed values: IMAGE VIDEO AUDIO RAW
source
required

Currently ONLY using Cloudinary to store all image / video assets.

string
default: CLOUDINARY
Allowed values: YOUTUBE CLOUDINARY
sort
required

Sort allows you to control how you want to sort this record in a list of media records.

integer format: int32
default: 999
angle

Media angle

string
""
width
required

Media width in pixels.

integer format: int32
"" >= 1
height
required

Media height in pixels.

integer format: int32
"" >= 1
published

Instead of deleting the media, choose to un-publish it instead for later re-use. Could be you keep seasonal images of the property.

boolean
category

Supported OTA specification PIC code. See OTA geoname data

string
""
descriptions

Localized media captions to give user some context about where this media was taken.

Array<object>
""

Foundation class for storing multi-language content (names and descriptions) with content change detection throughout the Wink Platform.

object
name
required

Use as title or short text description

string
""
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
md5ContentHash

The md5 hash of the name, description and language.

string
""
hashMismatch
boolean
lifestyleType

Associate this media with a specific lifestyle type. A user searching and filtering inventory based on lifestyles can be shown relevant media first.

string
""
Allowed values: LIFESTYLE_HEALTH_FITNESS LIFESTYLE_RELAX LIFESTYLE_ADULT_ONLY LIFESTYLE_ADVENTURE LIFESTYLE_BUSINESS LIFESTYLE_LGBT LIFESTYLE_SINGLE_PARENT LIFESTYLE_SOLO_FEMALE LIFESTYLE_BEAUTY LIFESTYLE_FOODIE LIFESTYLE_FAMILY LIFESTYLE_ROMANCE LIFESTYLE_COUPLE LIFESTYLE_SOLO LIFESTYLE_BACKPACKER LIFESTYLE_SHOPPING LIFESTYLE_SPORTS LIFESTYLE_MOUNTAIN LIFESTYLE_BEACH LIFESTYLE_CITY LIFESTYLE_COUNTRY LIFESTYLE_CULTURE LIFESTYLE_ECO
attribution

Whether image has attribution properties

Array<object>
""
object
url

URL to contributor

string format: uri
""
name
required

Name of contributor

string
"" >= 1 characters
isLandscape

True if media width is greater or equal to height

boolean
policy

Basic property policy record.

object
childrenAllowed
required

Indicates whether property allows children

boolean
childrenMinimumAge

When a property allows children, it can also indicate what the minimum age is for children to be allowed.

integer format: int32
""
internetAvailability
required

Indicates the availability of internet on the property.

string
""
Allowed values: YES NO YES_PAID
internetConnectionType

Indicates how guests can access the Internet on the property.

string
""
Allowed values: WIFI CABLE
internetConnectionLocation

Indicates where internet is available in and around the property.

string
""
Allowed values: ENTIRE_PROPERTY PUBLIC_AREAS ALL_ROOMS SOME_ROOMS BUSINESS_CENTER
parkingAvailability
required

Indicates whether parking is available at the property.

string
""
Allowed values: YES NO YES_PAID
parkingAccess

Indicates what type of parking is available at the property.

string
""
Allowed values: PRIVATE PUBLIC
petsAllowed
required

Indicates whether pets are allowed on the property. Note: There are thousand different kinds of pets. Just because the property allows small dogs does not mean the guest can bring a python. Always best to check with property.

boolean
petMaxWeightInKilos

If pets are allowed, property can further limit on weight.

integer format: int32
""
petCharge

If pets are allowed, property can tell travelers if there is a charge applicable for the pet.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
checkOutTime
required

When the guest has to check out.

string
"" >= 1 characters
checkInTime
required

When the guest can check in.

string
"" >= 1 characters
thirdPartyReviews

Array of awards and third party reviews given to property by certified / non-certified providers.

Array<object>
""

Recognition for the ancillary blocking.

object
identifier
required

Recognition identifier.

string format: uuid
"" >= 1 characters
category
required

Recognition category.

string
""
Allowed values: THIRD_PARTY_REVIEW PUBLICATION AWARD
type
required

Type of rating system the recognition operated on. This allows us to display the score properly.

string
""
Allowed values: STAR_RATING NUMERIC_RATING PERCENT_RATING
provider
required

The name of the entity that administers this recognition.

string
"" >= 1 characters
rating
required

The actual award or rating received by the hotel facility.

number format: float
""
maxRating
required

Use this to let hotels indicate what the total score for this award is.

number format: float
""
date

The date the award was received

string format: date
""
officialAppointmentInd

When true, this indicates the property has received official permission from the award provider to use the rating in publications and marketing materials; when false this permission has not been granted.

boolean
ratingSymbol

Provides the symbol used in the rating. Used in conjunction with the Rating.

string
""
attractions

Number of attractions property has listed on its profile.

integer format: int32
0
activities

Number of activites property has listed on its profile.

integer format: int32
0
places

Number of places property has listed on its profile.

integer format: int32
0
restaurants

Number of restaurants property has on its profile.

integer format: int32
0
meetingRooms

Number of meeting rooms property has on its profile.

integer format: int32
0
spas

Number of spas property has on its profile.

integer format: int32
0
addOns

Number of add-ons property has on its profile.

integer format: int32
0
generalManager

General manager of the property.

object
name
required

Name of GM currently managing the property.

string
""
image

Profile image of the general manager.

object
multimediaIdentifier
required

Document identifier

string format: uuid
"" >= 1 characters
identifier
required

Use this identifier to communicate with Cloudinary.

string
"" >= 1 characters
type
required

Whether Cloudinary media is a VIDEO or IMAGE.

string
""
Allowed values: IMAGE VIDEO AUDIO RAW
source
required

Currently ONLY using Cloudinary to store all image / video assets.

string
default: CLOUDINARY
Allowed values: YOUTUBE CLOUDINARY
sort
required

Sort allows you to control how you want to sort this record in a list of media records.

integer format: int32
default: 999
angle

Media angle

string
""
width
required

Media width in pixels.

integer format: int32
"" >= 1
height
required

Media height in pixels.

integer format: int32
"" >= 1
published

Instead of deleting the media, choose to un-publish it instead for later re-use. Could be you keep seasonal images of the property.

boolean
category

Supported OTA specification PIC code. See OTA geoname data

string
""
descriptions

Localized media captions to give user some context about where this media was taken.

Array<object>
""

Foundation class for storing multi-language content (names and descriptions) with content change detection throughout the Wink Platform.

object
name
required

Use as title or short text description

string
""
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
md5ContentHash

The md5 hash of the name, description and language.

string
""
hashMismatch
boolean
lifestyleType

Associate this media with a specific lifestyle type. A user searching and filtering inventory based on lifestyles can be shown relevant media first.

string
""
Allowed values: LIFESTYLE_HEALTH_FITNESS LIFESTYLE_RELAX LIFESTYLE_ADULT_ONLY LIFESTYLE_ADVENTURE LIFESTYLE_BUSINESS LIFESTYLE_LGBT LIFESTYLE_SINGLE_PARENT LIFESTYLE_SOLO_FEMALE LIFESTYLE_BEAUTY LIFESTYLE_FOODIE LIFESTYLE_FAMILY LIFESTYLE_ROMANCE LIFESTYLE_COUPLE LIFESTYLE_SOLO LIFESTYLE_BACKPACKER LIFESTYLE_SHOPPING LIFESTYLE_SPORTS LIFESTYLE_MOUNTAIN LIFESTYLE_BEACH LIFESTYLE_CITY LIFESTYLE_COUNTRY LIFESTYLE_CULTURE LIFESTYLE_ECO
attribution

Whether image has attribution properties

Array<object>
""
object
url

URL to contributor

string format: uri
""
name
required

Name of contributor

string
"" >= 1 characters
isLandscape

True if media width is greater or equal to height

boolean
descriptions

Localized welcome message from GM.

Array<object>

Simplified localized description containing text content and its language code.

object
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
md5ContentHash

The md5 hash of the name, description and language.

string
""
hashMismatch
boolean
locationCategory

Supported OTA specification LOC code. See OTA geoname data

string
""
segmentCategory

Supported OTA specification SEG code. See OTA geoname data

string
""
hotelCategory

Supported OTA specification PCT code. See OTA geoname data

string
""
architecturalStyle

Supported OTA specification ARC code. See OTA geoname data

string
""
whenBuilt

Year the property was constructed.

string
""
currencyCode

Currency code for property.

string
"" /^[A-Z]{3}$/
score

Demand score (0-100) derived from booking volume and review rating. Recomputed monthly; used to rank properties in search results.

integer format: int32
0
hotelAmenityCodes

Supported OTA specification HAC code. See OTA geoname data

Array<string>
""
propertyAccessibilityCodes

Supported OTA specification PHY code. See OTA geoname data

Array<string>
""
propertySecurityCodes

Supported OTA specification SEC code. See OTA geoname data

Array<string>
""
numberOfRooms

Number of rooms / keys for this property.

integer format: int32
0
city

City location

object
geoNameId

GeoName identifier

string
""
type

GeoNameLightweight type

string
""
Allowed values: CITY ISLAND OTHER
name

Name of city

string
""
urlName

Url name

string
"" /^[a-z0-9][a-z0-9-]*[a-z0-9]$/
asciiName

Ascii name of city

string
""
location

Coordinate points of the city

object
x
number format: double
y
number format: double
type
string
coordinates
Array<number>
featureCode

GeoNames specific feature code identifying the place type (e.g. PPL=populated place, PPLC=national capital, ISL=island)

string
""
countryCode

ISO 3166-1 alpha-2 country code for the country this location belongs to

string
"" /^[A-Z]{2}$/
timezone

IANA timezone identifier for the location

string
""
country

Country

object
iso

ISO code

string
""
name

Country name

string
""
capital

Country capital

string
""
continent

Continent code

string
""
currencyCode

Currency code

string
"" /^[A-Z]{3}$/
currencyName

Currency name

string
""
geoNameId

Country GeoNames identifier

string
""
subCountry

Country sub division

object
name

Sub-country name

string
""
asciiName

Sub-country ascii name

string
""
geoNameId

Sub-country GeoNames identifier

string
""
subSubCountry

Country sub sub division

object
name

Official name of the county or district in its local script

string
""
asciiName

ASCII-transliterated name of the county or district, safe for URLs and sorting

string
""
geoNameId

GeoNames.org unique identifier for this subdivision

string
""
address

Property address.

object
address1

Address line 1

string
""
address2

Address line 2

string
""
state

State

string
""
postalCode

Postal / zip code

string
""
county

County

string
""
city

City name

string
""
countryCode

Country

string
"" /^[A-Z]{2}$/
country

Country

string
""
fullAddress

Address 1, Address 2, City, State, Postal / Zip code, Country

string
""
available

Whether property is available

boolean
roomStay

Booking-time room stay snapshot (occupancy, dates, price, room/rate-plan).

object
room
required

Guest room details.

object
id
required

Unique identifier for this record.

string format: uuid
"" >= 1 characters
createdDate

Datetime this record was first created

string | null format: date-time
""
lastUpdate

Datetime this record was last updated

string | null format: date-time
""
version

Optimistic-locking version. Echo this value back as an If-Match request header on a conditional update; the server responds 409 if the record changed in the meantime. Null when this projection has no backing versioned document, in which case no conditional update is possible.

integer | null format: int64
""
hotelIdentifier
required

Hotel identifier.

string format: uuid
"" >= 1 characters
featuredInd
required

Indicates whether this inventory is featured. Use this flag as a way to signify that this inventory is special.

boolean
lifestyleType

Indicate the type of lifestyle this inventory should be associated with.

string
""
Allowed values: LIFESTYLE_HEALTH_FITNESS LIFESTYLE_RELAX LIFESTYLE_ADULT_ONLY LIFESTYLE_ADVENTURE LIFESTYLE_BUSINESS LIFESTYLE_LGBT LIFESTYLE_SINGLE_PARENT LIFESTYLE_SOLO_FEMALE LIFESTYLE_BEAUTY LIFESTYLE_FOODIE LIFESTYLE_FAMILY LIFESTYLE_ROMANCE LIFESTYLE_COUPLE LIFESTYLE_SOLO LIFESTYLE_BACKPACKER LIFESTYLE_SHOPPING LIFESTYLE_SPORTS LIFESTYLE_MOUNTAIN LIFESTYLE_BEACH LIFESTYLE_CITY LIFESTYLE_COUNTRY LIFESTYLE_CULTURE LIFESTYLE_ECO
location
required

Geo-location point where blocking takes place. Defaults to location of property.

object
x
number format: double
y
number format: double
type
string
coordinates
Array<number>
descriptions
required

Localized descriptions describing inventory.

Array<object>
>= 1 items

Foundation class for storing multi-language content (names and descriptions) with content change detection throughout the Wink Platform.

object
name
required

Use as title or short text description

string
""
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
md5ContentHash

The md5 hash of the name, description and language.

string
""
hashMismatch
boolean
multimedias
required

List of images / videos of blocking.

Array<object>
>= 1 items

Multimedia that contains less information than Multimedia object

object
multimediaIdentifier
required

Document identifier

string format: uuid
"" >= 1 characters
identifier
required

Use this identifier to communicate with Cloudinary.

string
"" >= 1 characters
type
required

Whether Cloudinary media is a VIDEO or IMAGE.

string
""
Allowed values: IMAGE VIDEO AUDIO RAW
source
required

Currently ONLY using Cloudinary to store all image / video assets.

string
default: CLOUDINARY
Allowed values: YOUTUBE CLOUDINARY
sort
required

Sort allows you to control how you want to sort this record in a list of media records.

integer format: int32
default: 999
angle

Media angle

string
""
width
required

Media width in pixels.

integer format: int32
"" >= 1
height
required

Media height in pixels.

integer format: int32
"" >= 1
published

Instead of deleting the media, choose to un-publish it instead for later re-use. Could be you keep seasonal images of the property.

boolean
category

Supported OTA specification PIC code. See OTA geoname data

string
""
descriptions

Localized media captions to give user some context about where this media was taken.

Array<object>
""

Foundation class for storing multi-language content (names and descriptions) with content change detection throughout the Wink Platform.

object
name
required

Use as title or short text description

string
""
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
md5ContentHash

The md5 hash of the name, description and language.

string
""
hashMismatch
boolean
lifestyleType

Associate this media with a specific lifestyle type. A user searching and filtering inventory based on lifestyles can be shown relevant media first.

string
""
Allowed values: LIFESTYLE_HEALTH_FITNESS LIFESTYLE_RELAX LIFESTYLE_ADULT_ONLY LIFESTYLE_ADVENTURE LIFESTYLE_BUSINESS LIFESTYLE_LGBT LIFESTYLE_SINGLE_PARENT LIFESTYLE_SOLO_FEMALE LIFESTYLE_BEAUTY LIFESTYLE_FOODIE LIFESTYLE_FAMILY LIFESTYLE_ROMANCE LIFESTYLE_COUPLE LIFESTYLE_SOLO LIFESTYLE_BACKPACKER LIFESTYLE_SHOPPING LIFESTYLE_SPORTS LIFESTYLE_MOUNTAIN LIFESTYLE_BEACH LIFESTYLE_CITY LIFESTYLE_COUNTRY LIFESTYLE_CULTURE LIFESTYLE_ECO
attribution

Whether image has attribution properties

Array<object>
""
object
url

URL to contributor

string format: uri
""
name
required

Name of contributor

string
"" >= 1 characters
isLandscape

True if media width is greater or equal to height

boolean
contact
required

Associate a contact person for this inventory (if applicable).

object
firstName

Contact first name

string
""
lastName

Contact last name

string
""
email

Contact E-mail

string format: email
""
secondaryEmail

Contact secondary Email

string format: email
""
phoneNumber

Contact phone number

string
"" /^\+?[1-9]\d{1,14}$/
fullName

First and last name

string
""
summary

Summary

string
""
address
required

Defaults to property address.

object
address1

Address line 1

string
""
address2

Address line 2

string
""
state

State

string
""
postalCode

Postal / zip code

string
""
county

County

string
""
city

City name

string
""
countryCode

Country

string
"" /^[A-Z]{2}$/
country

Country

string
""
fullAddress

Address 1, Address 2, City, State, Postal / Zip code, Country

string
""
commissionable
required

Indicate whether sales channels receive commission for selling this inventory.

boolean
default: true
name
required

Internal name of inventory.

string
"" >= 1 characters
proximityCode
required

Supported OTA specification PRX code. See OTA geoname data

string
""
sort

Use this property to sort an blocking in a list of activities.

integer format: int32
""
minAgeAppropriateCode

Supported OTA specification AQC code. See OTA geoname data

string
""
bookable
required

Indicates if this inventory can be added to a booking or if it is read-only marketing material only.

boolean
default: true
active
required

Modify blocking availability with this flag.

boolean
default: true
disabilityFeatures

Supported OTA specification PHY code. See OTA geoname data

Array<string>
securityFeatures

Supported OTA specification SEC code. See OTA geoname data

Array<string>
socials

Social network accounts for blocking (if applicable).

Array<object>

Social network

object
type

Type of social network.

string
""
Allowed values: FACEBOOK INSTAGRAM SKYPE TRIP_ADVISOR TWITTER GOOGLE_PLUS WHATSAPP LINE WECHAT VIBER SNAPCHAT WEIBO RENREN WEBSITE QQ TIKTOK
location

URL or social network identifier to social network profile

string
""
pricePoint
required

Level of expensiveness.

string
default: THREE
Allowed values: HALF ONE ONE_HALF TWO TWO_HALF THREE THREE_HALF FOUR FOUR_HALF FIVE
recognitionList

Inventory-level recognition.

Array<object>

Recognition for the ancillary blocking.

object
identifier
required

Recognition identifier.

string format: uuid
"" >= 1 characters
category
required

Recognition category.

string
""
Allowed values: THIRD_PARTY_REVIEW PUBLICATION AWARD
type
required

Type of rating system the recognition operated on. This allows us to display the score properly.

string
""
Allowed values: STAR_RATING NUMERIC_RATING PERCENT_RATING
provider
required

The name of the entity that administers this recognition.

string
"" >= 1 characters
rating
required

The actual award or rating received by the hotel facility.

number format: float
""
maxRating
required

Use this to let hotels indicate what the total score for this award is.

number format: float
""
date

The date the award was received

string format: date
""
officialAppointmentInd

When true, this indicates the property has received official permission from the award provider to use the rating in publications and marketing materials; when false this permission has not been granted.

boolean
ratingSymbol

Provides the symbol used in the rating. Used in conjunction with the Rating.

string
""
transactionalInventoryList

Purchasable items for this inventory.

Array<object>

This is one bookable item that can stand alongside a restaurant / meeting room etc.

object
identifier
required

Unique transactional identifier

string format: uuid
"" >= 1 characters
name
required

Internal name of transactional blocking.

string
"" >= 1 characters
descriptions
required

Localized descriptions describing inventory.

Array<object>
>= 1 items <= 2147483647 items

Foundation class for storing multi-language content (names and descriptions) with content change detection throughout the Wink Platform.

object
name
required

Use as title or short text description

string
""
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
md5ContentHash

The md5 hash of the name, description and language.

string
""
hashMismatch
boolean
pricingType
required

How this inventory item should be priced.

string
""
Allowed values: PER_STAY PER_DAY PER_NIGHT PER_USE PER_HOUR PER_PERSON PER_PERSON_PER_NIGHT PER_PERSON_PER_HOUR PER_ADULT PER_ADULT_PER_NIGHT PER_ADULT_PER_HOUR PER_CHILD PER_CHILD_PER_NIGHT PER_CHILD_PER_HOUR
basePrice
required

Base price of booking this inventory.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
discountedPrice
required

If you are selling this inventory at a discount, indicate the discounted selling price. Leave empty if there is no discount.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
multimedias

List of images / videos of item.

Array<object>

Multimedia that contains less information than Multimedia object

object
multimediaIdentifier
required

Document identifier

string format: uuid
"" >= 1 characters
identifier
required

Use this identifier to communicate with Cloudinary.

string
"" >= 1 characters
type
required

Whether Cloudinary media is a VIDEO or IMAGE.

string
""
Allowed values: IMAGE VIDEO AUDIO RAW
source
required

Currently ONLY using Cloudinary to store all image / video assets.

string
default: CLOUDINARY
Allowed values: YOUTUBE CLOUDINARY
sort
required

Sort allows you to control how you want to sort this record in a list of media records.

integer format: int32
default: 999
angle

Media angle

string
""
width
required

Media width in pixels.

integer format: int32
"" >= 1
height
required

Media height in pixels.

integer format: int32
"" >= 1
published

Instead of deleting the media, choose to un-publish it instead for later re-use. Could be you keep seasonal images of the property.

boolean
category

Supported OTA specification PIC code. See OTA geoname data

string
""
descriptions

Localized media captions to give user some context about where this media was taken.

Array<object>
""

Foundation class for storing multi-language content (names and descriptions) with content change detection throughout the Wink Platform.

object
name
required

Use as title or short text description

string
""
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
md5ContentHash

The md5 hash of the name, description and language.

string
""
hashMismatch
boolean
lifestyleType

Associate this media with a specific lifestyle type. A user searching and filtering inventory based on lifestyles can be shown relevant media first.

string
""
Allowed values: LIFESTYLE_HEALTH_FITNESS LIFESTYLE_RELAX LIFESTYLE_ADULT_ONLY LIFESTYLE_ADVENTURE LIFESTYLE_BUSINESS LIFESTYLE_LGBT LIFESTYLE_SINGLE_PARENT LIFESTYLE_SOLO_FEMALE LIFESTYLE_BEAUTY LIFESTYLE_FOODIE LIFESTYLE_FAMILY LIFESTYLE_ROMANCE LIFESTYLE_COUPLE LIFESTYLE_SOLO LIFESTYLE_BACKPACKER LIFESTYLE_SHOPPING LIFESTYLE_SPORTS LIFESTYLE_MOUNTAIN LIFESTYLE_BEACH LIFESTYLE_CITY LIFESTYLE_COUNTRY LIFESTYLE_CULTURE LIFESTYLE_ECO
attribution

Whether image has attribution properties

Array<object>
""
object
url

URL to contributor

string format: uri
""
name
required

Name of contributor

string
"" >= 1 characters
isLandscape

True if media width is greater or equal to height

boolean
minPax

Whether there is a limit to minimum group size.

integer format: int32
""
maxPax

Whether there is a limit to maximum group size.

integer format: int32
""
percentPremium

Calculates the percent difference between basePrice and discountedPrice.

number
""
percentDiscount

Calculates the percent difference between basePrice and discountedPrice.

number
""
publishStatus

Publish lifecycle state: DRAFT (incomplete, not announced) or PUBLISHED (complete/live).

string
""
Allowed values: DRAFT PUBLISHED
maxOccupancy
required

Maximum number of guest allowed in a room type.

integer format: int32
default: 2 >= 1
minOccupancy
required

Minimum number of guests allowed in a room type.

integer format: int32
default: 1 >= 1
quantity
required

Defines the number of rooms of this type

integer format: int32
"" >= 1
nonSmoking
required

Non-smoking indicator

boolean
bedroomConfigurationList
required

A room type can have more than one bed configuration.

Array<object>
>= 1 items

A named bedroom layout configuration for a room type, containing one or more bedrooms each with their own bed setup.

object
identifier
required

Unique identifier for this bedroom configuration layout.

string format: uuid
"" >= 1 characters
name
required

Human-readable name of this room layout configuration.

string
"" >= 1 characters
bedroomList
required

List of bedrooms within this configuration layout.

Array<object>
>= 1 items

A single bedroom within a room type, specifying the bedroom type and its bed configuration.

object
type
required

Bedroom type classification (e.g., MASTER, QUEEN, JUNIOR, DORMITORY, BEDROOM_1…BEDROOM_10).

string
""
Allowed values: MASTER QUEEN JUNIOR DORMITORY BEDROOM_1 BEDROOM_2 BEDROOM_3 BEDROOM_4 BEDROOM_5 BEDROOM_6 BEDROOM_7 BEDROOM_8 BEDROOM_9 BEDROOM_10
bedList
required

List of bed configurations for this bedroom. Each entry specifies a bed type and quantity.

Array<object>
>= 1 items

A single bed type and its quantity within a bedroom, described using the OpenTravel bed type code.

object
bedTypeCode
required

OpenTravel bed type code (e.g., 1=Double, 2=Twin, 7=Queen, 8=King). See OTA geoname data.

string
"" >= 1 characters
quantity
required

Number of beds of this type in the room.

integer format: int32
"" >= 1
size
required

Number of square meters that defines the size of this room type.

number format: float
"" >= 1
maxAdultOccupancy
required

Maximum number of adults allowed in a room type.

integer format: int32
default: 2 >= 1
maxChildOccupancy
required

Maximum number of children allowed in a room type.

integer format: int32
0
bathroomCount
required

Number of bathrooms

integer format: int32
default: 1
livingRoomCount
required

Number of living rooms

integer format: int32
default: 1
maxRollaways
required

Maximum number of rollaway beds allowed in this room type.

integer format: int32
0
roomCategory
required

OpenTravel segment category code (e.g., 1=Moderate, 4=Standard, 8=Deluxe). See OTA geoname data

string
"" >= 1 characters
floor

Floor number on which this room type is located.

string
""
roomLocationCode
required

OpenTravel room location type code (e.g., 1=Near Exit, 2=Close to Elevator, 3=Low Floor, 4=High Floor). See OTA geoname data

string
"" >= 1 characters
roomViewCode
required

OpenTravel room view type code (e.g., 1=Ocean View, 2=Pool View, 3=Garden View). See OTA geoname data

string
"" >= 1 characters
composite
required

Indicates that the room (suite) is a composite of smaller units.

boolean
compositeCount
required

Number of rooms of this room type that makes up a larger unit (composite) such as a two bedroom suite could be comprised of two king rooms plus other room types. A 0 means disabled.

integer format: int32
0
roomClassificationCode
required

OpenTravel guest room info code (e.g., 1=Suite, 2=Standard, 12=Villa, 16=Bungalow). See OTA geoname data

string
"" >= 1 characters
roomArchitectureCode
required

OpenTravel architectural style code (e.g., 1=Modern, 2=Traditional, 3=Victorian). See OTA geoname data

string
"" >= 1 characters
roomGender

Used to request or specify a gender assignment for a room. Note: Typically used by Hosteliers.

string
default: Unknown
Allowed values: Male Female MaleAndFemale Unknown
sharedRoomInd
required

If TRUE, the room requires or has sharing available. Note: Typically used by Hosteliers.

boolean
maxCribs
required

Maximum number of cribs allowed in a room type.

integer format: int32
0
amenities

OpenTravel room amenity codes (e.g., 1=Balcony, 7=Air Conditioning). See OTA geoname data

Array<string>
includedAdultOccupancy
required

The number of pax the room price was meant for

integer format: int32
default: 2
includedChildOccupancy
required

The number of children the room price was meant for

integer format: int32
0
baseRate
required

Typical one night rate during regular remand period

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
minRate
required

Typical one night rate in a distressed period

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
bedroomConfiguration

Desired bedroom layout

object
identifier
required

Unique identifier for this bedroom configuration layout.

string format: uuid
"" >= 1 characters
name
required

Human-readable name of this room layout configuration.

string
"" >= 1 characters
bedroomList
required

List of bedrooms within this configuration layout.

Array<object>
>= 1 items

A single bedroom within a room type, specifying the bedroom type and its bed configuration.

object
type
required

Bedroom type classification (e.g., MASTER, QUEEN, JUNIOR, DORMITORY, BEDROOM_1…BEDROOM_10).

string
""
Allowed values: MASTER QUEEN JUNIOR DORMITORY BEDROOM_1 BEDROOM_2 BEDROOM_3 BEDROOM_4 BEDROOM_5 BEDROOM_6 BEDROOM_7 BEDROOM_8 BEDROOM_9 BEDROOM_10
bedList
required

List of bed configurations for this bedroom. Each entry specifies a bed type and quantity.

Array<object>
>= 1 items

A single bed type and its quantity within a bedroom, described using the OpenTravel bed type code.

object
bedTypeCode
required

OpenTravel bed type code (e.g., 1=Double, 2=Twin, 7=Queen, 8=King). See OTA geoname data.

string
"" >= 1 characters
quantity
required

Number of beds of this type in the room.

integer format: int32
"" >= 1
adults
required

The actual amount of adults as determined by the hotel’s policy.

integer format: int32
default: 2
children
required

The actual amount of children as determined by the hotel’s policy.

integer format: int32
0
quantity

Number of identical rooms of this type. Display only — the money-bearing quantity lives on price (BookingStayRateLightweight).

integer format: int32
default: 1
price
required

Price details. Already quantity-scaled — its totals and breakdown represent all booked rooms.

object
userSpecifiedCurrencyBaseTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
sourceBaseTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalBaseTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
sourceExtraPaxModifier
number
internalExtraPaxModifier
number
userSpecifiedCurrencyExtraPaxModifier
number
sourceExtraChildModifier
number
internalExtraChildModifier
number
userSpecifiedCurrencyExtraChildModifier
number
sourceSingleOccupantModifier
number
internalSingleOccupantModifier
number
userSpecifiedCurrencySingleOccupantModifier
number
sourcePromotionalModifier
number
internalPromotionalModifier
number
userSpecifiedCurrencyPromotionalModifier
number
sourcePremiumModifier
number
internalPremiumModifier
number
userSpecifiedCurrencyPremiumModifier
number
sourceChannelModifier
number
internalChannelModifier
number
userSpecifiedCurrencyChannelModifier
number
quantity

Number of identical rooms booked of this type. The one money-bearing quantity.

integer format: int32
default: 1
minOccupancy
integer format: int32
maxOccupancy
integer format: int32
rateSource
string
promotionalDiscountPercent
number
channelDiscountPercent
number
premiumPercent
number
available
boolean
sourceToUserCurrencyQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
sourceToInternalCurrencyQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
offerDetails
Array<object>

Simplified localized description containing text content and its language code.

object
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
md5ContentHash

The md5 hash of the name, description and language.

string
""
hashMismatch
boolean
promotionalCodes
Array<string>
list
Array<object>

Booking-time snapshot of a single night’s rate, capturing per-room and total figures in source, internal, and user-display currencies.

object
date

The date this night’s rate applies to.

string format: date
""
rateIdentifier

Source daily rate identifier.

string format: uuid
""
ratePlanIdentifier

Rate plan identifier this night was priced from.

string format: uuid
""
guestRoomIdentifier

Guest room identifier this night was priced from.

string format: uuid
""
rateSource

Origin of the rate (WINK, EXELY, etc.).

string
""
sourceBaseRate

Per-room base (rack) rate for the night in hotel currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalBaseRate

Per-room base (rack) rate for the night in wink currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyBaseRate

Per-room base (rack) rate for the night in user specified currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
sourceRate

Per-room net rate for the night in hotel currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalRate

Per-room net rate for the night in wink currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyRate

Per-room net rate for the night in user specified currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
quantity

Number of identical rooms booked of this type.

integer format: int32
default: 1
sourceTotal

Net rate for the night across all rooms (per-room rate x quantity) in hotel currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalTotal

Net rate for the night across all rooms (per-room rate x quantity) in wink currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyTotal

Net rate for the night across all rooms (per-room rate x quantity) in user specified currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
promotionalDiscountPercent

Promotional discount percent applied to the night.

number
""
channelDiscountPercent

Channel / membership discount percent applied to the night.

number
""
premiumPercent

Premium percent applied to the night.

number
""
offerDetails

Localized descriptions of the discounts / offers applied to the night.

Array<object>
""

Simplified localized description containing text content and its language code.

object
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
md5ContentHash

The md5 hash of the name, description and language.

string
""
hashMismatch
boolean
isStartDate

Whether this night is the check-in date.

boolean
isEndDate

Whether this night is the check-out date (not charged).

boolean
isLastNight

Whether this night is the last charged night.

boolean
adults

Adults staying.

integer format: int32
""
children

Children staying.

integer format: int32
""
sourceToUserCurrencyQuote

Hotel to user currency exchange rate for the night.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
sourceToInternalCurrencyQuote

Hotel to wink currency exchange rate for the night.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
financialBreakdown

Per-night, quantity-scaled financial breakdown (beneficiary split).

object
sourceCurrency
string
internalCurrency
string
displayCurrency
string
displayPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
internalPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
beneficiaryList
Array<object>

A beneficiary is a registered account entitled to a portion of booking funds. Funds are allocated by type (SALE, COMMISSION, PLATFORM_FEE, etc.) and tracked across source, display, and internal (platform) currencies. Refund modifiers record adjustments from cancellations.

object
accountIdentifier
required

Unique identifier of the beneficiary’s account in the TripPay system

string
"" >= 1 characters
accountName
required

Display name of the beneficiary account (e.g. hotel, affiliate, or platform name)

string
"" >= 1 characters
accountEmail
required

Contact email address for the beneficiary account

string format: email
"" >= 1 characters
accountUrl

Profile or dashboard URL for the beneficiary account

string
""
type
required

Category of the beneficiary: SALE (property), COMMISSION (affiliate), PLATFORM_FEE (Wink), TRIP_PAY (platform internal), or agency fees

string
""
Allowed values: TRIP_PAY PLATFORM_FEE COMMISSION AFFILIATE_AGENCY_FEE SUPPLIER_AGENCY_FEE SALE
amountDue

Charge rule: either a fixed percentage of the total stay or the remainder after other beneficiaries are deducted

object
type
required

PERCENTAGE: apply the percent field to the total booking price. REMAINDER: this beneficiary receives whatever is left after other beneficiaries are satisfied (typically used for the hotel).

string
""
Allowed values: PERCENTAGE REMAINDER
percent

The percentage value (0.0–1.0) to apply to the total booking amount when type=PERCENTAGE. For example, 0.050 = 5% of the booking price. Ignored when type=REMAINDER.

number
""
sourceCurrency
required

ISO 4217 currency code for the originating source (supplier’s local currency, e.g. hotel in Thailand uses THB)

string
"" >= 1 characters
displayCurrency
required

ISO 4217 currency code for display to the user (e.g. booking shown in USD)

string
"" >= 1 characters
internalCurrency
required

ISO 4217 currency code for internal platform ledger (always USD)

string
"" >= 1 characters
sourceAmount
required

Gross amount owed to this beneficiary in source currency (before refunds)

number
""
displayAmount
required

Gross amount owed to this beneficiary in display currency (before refunds)

number
""
internalAmount
required

Gross amount owed to this beneficiary in internal currency (before refunds)

number
""
sourceAmountRefundModifier
required

Cumulative refund reduction applied to sourceAmount (sum of all applied PendingRefunds)

number
""
displayAmountRefundModifier
required

Cumulative refund reduction applied to displayAmount (sum of all applied PendingRefunds)

number
""
internalAmountRefundModifier
required

Cumulative refund reduction applied to internalAmount (sum of all applied PendingRefunds)

number
""
pendingRefunds
Array<object>

Pending refunds awaiting settlement. Once a refund transitions from PENDING to APPLIED, it moves out of this list and into the corresponding *AmountRefundModifier property

object
refundIdentifier
required

Unique identifier linking this pending refund to the parent booking’s refund record

string
"" >= 1 characters
sourceAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s sourceAmount when applied

number
""
displayAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s displayAmount when applied

number
""
internalAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s internalAmount when applied

number
""
netSourceAmount
required

Net amount owed in source currency (sourceAmount - sourceAmountRefundModifier)

number
""
netDisplayAmount
required

Net amount owed in display currency (displayAmount - displayAmountRefundModifier)

number
""
netInternalAmount
required

Net amount owed in internal currency (internalAmount - internalAmountRefundModifier)

number
""
reconciled

Flag indicating whether net amounts have been transferred (disbursed) from TripPay to the beneficiary

boolean
metadata

Additional key-value metadata for the beneficiary (e.g. bank details, supplier identifiers)

object
key
additional properties
string
sourceAmount
number
internalAmount
number
displayAmount
number
sourceAmountRefundModifier
number
internalAmountRefundModifier
number
displayAmountRefundModifier
number
netSourceAmount
number
netInternalAmount
number
netDisplayAmount
number
commissionableTotalSourceAmount
number
commissionableTotalInternalAmount
number
commissionableTotalDisplayAmount
number
netCommissionableTotalSourceAmount
number
netCommissionableTotalInternalAmount
number
netCommissionableTotalDisplayAmount
number
totalFeesAndCommissionsSourceAmount
number
totalFeesAndCommissionsInternalAmount
number
totalFeesAndCommissionsDisplayAmount
number
netTotalFeesAndCommissionsSourceAmount
number
netTotalFeesAndCommissionsInternalAmount
number
netTotalFeesAndCommissionsDisplayAmount
number
totalFeesSourceAmount
number
totalFeesInternalAmount
number
totalFeesDisplayAmount
number
netTotalFeesSourceAmount
number
netTotalFeesInternalAmount
number
netTotalFeesDisplayAmount
number
totalPlatformFeeSourceAmount
number
totalPlatformFeeInternalAmount
number
totalPlatformFeeDisplayAmount
number
netTotalPlatformFeeSourceAmount
number
netTotalPlatformFeeInternalAmount
number
netTotalPlatformFeeDisplayAmount
number
totalPaymentProcessingFeeSourceAmount
number
totalPaymentProcessingFeeInternalAmount
number
totalPaymentProcessingFeeDisplayAmount
number
netTotalPaymentProcessingFeeSourceAmount
number
netTotalPaymentProcessingFeeInternalAmount
number
netTotalPaymentProcessingFeeDisplayAmount
number
totalSalesSourceAmount
number
totalSalesInternalAmount
number
totalSalesDisplayAmount
number
netTotalSalesSourceAmount
number
netTotalSalesInternalAmount
number
netTotalSalesDisplayAmount
number
totalAffiliateAgencyFeesSourceAmount
number
totalAffiliateAgencyFeesInternalAmount
number
totalAffiliateAgencyFeesDisplayAmount
number
netTotalAffiliateAgencyFeesSourceAmount
number
netTotalAffiliateAgencyFeesInternalAmount
number
netTotalAffiliateAgencyFeesDisplayAmount
number
totalSupplierAgencyFeesSourceAmount
number
totalSupplierAgencyFeesInternalAmount
number
totalSupplierAgencyFeesDisplayAmount
number
netTotalSupplierAgencyFeesSourceAmount
number
netTotalSupplierAgencyFeesInternalAmount
number
netTotalSupplierAgencyFeesDisplayAmount
number
netTotalCustomersSourceAmount
number
netTotalCustomersInternalAmount
number
netTotalCustomersDisplayAmount
number
metadata
object
key
additional properties
startDate
boolean
lastNight
boolean
endDate
boolean
userSpecifiedCurrencyTotal

Stay total in user specified currency (per-room x quantity).

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
sourceTotal

Stay total in hotel currency (per-room x quantity).

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalTotal

Stay total in wink currency (per-room x quantity).

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
financialBreakdown
object
sourceCurrency
string
internalCurrency
string
displayCurrency
string
displayPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
internalPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
beneficiaryList
Array<object>

A beneficiary is a registered account entitled to a portion of booking funds. Funds are allocated by type (SALE, COMMISSION, PLATFORM_FEE, etc.) and tracked across source, display, and internal (platform) currencies. Refund modifiers record adjustments from cancellations.

object
accountIdentifier
required

Unique identifier of the beneficiary’s account in the TripPay system

string
"" >= 1 characters
accountName
required

Display name of the beneficiary account (e.g. hotel, affiliate, or platform name)

string
"" >= 1 characters
accountEmail
required

Contact email address for the beneficiary account

string format: email
"" >= 1 characters
accountUrl

Profile or dashboard URL for the beneficiary account

string
""
type
required

Category of the beneficiary: SALE (property), COMMISSION (affiliate), PLATFORM_FEE (Wink), TRIP_PAY (platform internal), or agency fees

string
""
Allowed values: TRIP_PAY PLATFORM_FEE COMMISSION AFFILIATE_AGENCY_FEE SUPPLIER_AGENCY_FEE SALE
amountDue

Charge rule: either a fixed percentage of the total stay or the remainder after other beneficiaries are deducted

object
type
required

PERCENTAGE: apply the percent field to the total booking price. REMAINDER: this beneficiary receives whatever is left after other beneficiaries are satisfied (typically used for the hotel).

string
""
Allowed values: PERCENTAGE REMAINDER
percent

The percentage value (0.0–1.0) to apply to the total booking amount when type=PERCENTAGE. For example, 0.050 = 5% of the booking price. Ignored when type=REMAINDER.

number
""
sourceCurrency
required

ISO 4217 currency code for the originating source (supplier’s local currency, e.g. hotel in Thailand uses THB)

string
"" >= 1 characters
displayCurrency
required

ISO 4217 currency code for display to the user (e.g. booking shown in USD)

string
"" >= 1 characters
internalCurrency
required

ISO 4217 currency code for internal platform ledger (always USD)

string
"" >= 1 characters
sourceAmount
required

Gross amount owed to this beneficiary in source currency (before refunds)

number
""
displayAmount
required

Gross amount owed to this beneficiary in display currency (before refunds)

number
""
internalAmount
required

Gross amount owed to this beneficiary in internal currency (before refunds)

number
""
sourceAmountRefundModifier
required

Cumulative refund reduction applied to sourceAmount (sum of all applied PendingRefunds)

number
""
displayAmountRefundModifier
required

Cumulative refund reduction applied to displayAmount (sum of all applied PendingRefunds)

number
""
internalAmountRefundModifier
required

Cumulative refund reduction applied to internalAmount (sum of all applied PendingRefunds)

number
""
pendingRefunds
Array<object>

Pending refunds awaiting settlement. Once a refund transitions from PENDING to APPLIED, it moves out of this list and into the corresponding *AmountRefundModifier property

object
refundIdentifier
required

Unique identifier linking this pending refund to the parent booking’s refund record

string
"" >= 1 characters
sourceAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s sourceAmount when applied

number
""
displayAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s displayAmount when applied

number
""
internalAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s internalAmount when applied

number
""
netSourceAmount
required

Net amount owed in source currency (sourceAmount - sourceAmountRefundModifier)

number
""
netDisplayAmount
required

Net amount owed in display currency (displayAmount - displayAmountRefundModifier)

number
""
netInternalAmount
required

Net amount owed in internal currency (internalAmount - internalAmountRefundModifier)

number
""
reconciled

Flag indicating whether net amounts have been transferred (disbursed) from TripPay to the beneficiary

boolean
metadata

Additional key-value metadata for the beneficiary (e.g. bank details, supplier identifiers)

object
key
additional properties
string
sourceAmount
number
internalAmount
number
displayAmount
number
sourceAmountRefundModifier
number
internalAmountRefundModifier
number
displayAmountRefundModifier
number
netSourceAmount
number
netInternalAmount
number
netDisplayAmount
number
commissionableTotalSourceAmount
number
commissionableTotalInternalAmount
number
commissionableTotalDisplayAmount
number
netCommissionableTotalSourceAmount
number
netCommissionableTotalInternalAmount
number
netCommissionableTotalDisplayAmount
number
totalFeesAndCommissionsSourceAmount
number
totalFeesAndCommissionsInternalAmount
number
totalFeesAndCommissionsDisplayAmount
number
netTotalFeesAndCommissionsSourceAmount
number
netTotalFeesAndCommissionsInternalAmount
number
netTotalFeesAndCommissionsDisplayAmount
number
totalFeesSourceAmount
number
totalFeesInternalAmount
number
totalFeesDisplayAmount
number
netTotalFeesSourceAmount
number
netTotalFeesInternalAmount
number
netTotalFeesDisplayAmount
number
totalPlatformFeeSourceAmount
number
totalPlatformFeeInternalAmount
number
totalPlatformFeeDisplayAmount
number
netTotalPlatformFeeSourceAmount
number
netTotalPlatformFeeInternalAmount
number
netTotalPlatformFeeDisplayAmount
number
totalPaymentProcessingFeeSourceAmount
number
totalPaymentProcessingFeeInternalAmount
number
totalPaymentProcessingFeeDisplayAmount
number
netTotalPaymentProcessingFeeSourceAmount
number
netTotalPaymentProcessingFeeInternalAmount
number
netTotalPaymentProcessingFeeDisplayAmount
number
totalSalesSourceAmount
number
totalSalesInternalAmount
number
totalSalesDisplayAmount
number
netTotalSalesSourceAmount
number
netTotalSalesInternalAmount
number
netTotalSalesDisplayAmount
number
totalAffiliateAgencyFeesSourceAmount
number
totalAffiliateAgencyFeesInternalAmount
number
totalAffiliateAgencyFeesDisplayAmount
number
netTotalAffiliateAgencyFeesSourceAmount
number
netTotalAffiliateAgencyFeesInternalAmount
number
netTotalAffiliateAgencyFeesDisplayAmount
number
totalSupplierAgencyFeesSourceAmount
number
totalSupplierAgencyFeesInternalAmount
number
totalSupplierAgencyFeesDisplayAmount
number
netTotalSupplierAgencyFeesSourceAmount
number
netTotalSupplierAgencyFeesInternalAmount
number
netTotalSupplierAgencyFeesDisplayAmount
number
netTotalCustomersSourceAmount
number
netTotalCustomersInternalAmount
number
netTotalCustomersDisplayAmount
number
metadata
object
key
additional properties
beneficiaryList
Array<object>

A beneficiary is a registered account entitled to a portion of booking funds. Funds are allocated by type (SALE, COMMISSION, PLATFORM_FEE, etc.) and tracked across source, display, and internal (platform) currencies. Refund modifiers record adjustments from cancellations.

object
accountIdentifier
required

Unique identifier of the beneficiary’s account in the TripPay system

string
"" >= 1 characters
accountName
required

Display name of the beneficiary account (e.g. hotel, affiliate, or platform name)

string
"" >= 1 characters
accountEmail
required

Contact email address for the beneficiary account

string format: email
"" >= 1 characters
accountUrl

Profile or dashboard URL for the beneficiary account

string
""
type
required

Category of the beneficiary: SALE (property), COMMISSION (affiliate), PLATFORM_FEE (Wink), TRIP_PAY (platform internal), or agency fees

string
""
Allowed values: TRIP_PAY PLATFORM_FEE COMMISSION AFFILIATE_AGENCY_FEE SUPPLIER_AGENCY_FEE SALE
amountDue

Charge rule: either a fixed percentage of the total stay or the remainder after other beneficiaries are deducted

object
type
required

PERCENTAGE: apply the percent field to the total booking price. REMAINDER: this beneficiary receives whatever is left after other beneficiaries are satisfied (typically used for the hotel).

string
""
Allowed values: PERCENTAGE REMAINDER
percent

The percentage value (0.0–1.0) to apply to the total booking amount when type=PERCENTAGE. For example, 0.050 = 5% of the booking price. Ignored when type=REMAINDER.

number
""
sourceCurrency
required

ISO 4217 currency code for the originating source (supplier’s local currency, e.g. hotel in Thailand uses THB)

string
"" >= 1 characters
displayCurrency
required

ISO 4217 currency code for display to the user (e.g. booking shown in USD)

string
"" >= 1 characters
internalCurrency
required

ISO 4217 currency code for internal platform ledger (always USD)

string
"" >= 1 characters
sourceAmount
required

Gross amount owed to this beneficiary in source currency (before refunds)

number
""
displayAmount
required

Gross amount owed to this beneficiary in display currency (before refunds)

number
""
internalAmount
required

Gross amount owed to this beneficiary in internal currency (before refunds)

number
""
sourceAmountRefundModifier
required

Cumulative refund reduction applied to sourceAmount (sum of all applied PendingRefunds)

number
""
displayAmountRefundModifier
required

Cumulative refund reduction applied to displayAmount (sum of all applied PendingRefunds)

number
""
internalAmountRefundModifier
required

Cumulative refund reduction applied to internalAmount (sum of all applied PendingRefunds)

number
""
pendingRefunds
Array<object>

Pending refunds awaiting settlement. Once a refund transitions from PENDING to APPLIED, it moves out of this list and into the corresponding *AmountRefundModifier property

object
refundIdentifier
required

Unique identifier linking this pending refund to the parent booking’s refund record

string
"" >= 1 characters
sourceAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s sourceAmount when applied

number
""
displayAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s displayAmount when applied

number
""
internalAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s internalAmount when applied

number
""
netSourceAmount
required

Net amount owed in source currency (sourceAmount - sourceAmountRefundModifier)

number
""
netDisplayAmount
required

Net amount owed in display currency (displayAmount - displayAmountRefundModifier)

number
""
netInternalAmount
required

Net amount owed in internal currency (internalAmount - internalAmountRefundModifier)

number
""
reconciled

Flag indicating whether net amounts have been transferred (disbursed) from TripPay to the beneficiary

boolean
metadata

Additional key-value metadata for the beneficiary (e.g. bank details, supplier identifiers)

object
key
additional properties
string
totalDiscountPercent
number
roomRateIdentifier
required

Master rate identifier

string format: uuid
"" >= 1 characters
roomRateInternalName
required

Master rate internal name

string
"" >= 1 characters
ratePlan
required

Rate plan used for this stay

object
identifier
required

Rate plan identifier

string format: uuid
"" >= 1 characters
name
required

Provides the name of the rate plan.

string
"" >= 1 characters
breakfast
required

When true, indicates breakfast is included.

boolean
brunch
required

When true, indicates brunch is included.

boolean
lunch
required

When true, indicates lunch is included.

boolean
dinner
required

When true, indicates dinner is included.

boolean
allInclusive
required

Everything included except alcohol

boolean
allInclusivePlusAlcohol
required

Everything included with alcohol

boolean
earlyCheckInCharge
object
type
required

When the type is FIXED, fixedAmount is required. When the type is PERCENTAGE, percent is required.

string
""
Allowed values: FIXED PERCENTAGE
percent

A fraction between 0 and 1 (inclusive) representing a percentage of the total stay amount for an early check-in or late check-out, e.g. 0.25 for 25%. Direction (surcharge vs. discount) is determined by which field this charge is assigned to, not the sign of this value.

number format: float
"" <= 1
fixedAmount

A localized amount, always non-negative. Direction (surcharge vs. discount) is determined by which field this charge is assigned to, not the sign of this value.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
lateCheckOutCharge
object
type
required

When the type is FIXED, fixedAmount is required. When the type is PERCENTAGE, percent is required.

string
""
Allowed values: FIXED PERCENTAGE
percent

A fraction between 0 and 1 (inclusive) representing a percentage of the total stay amount for an early check-in or late check-out, e.g. 0.25 for 25%. Direction (surcharge vs. discount) is determined by which field this charge is assigned to, not the sign of this value.

number format: float
"" <= 1
fixedAmount

A localized amount, always non-negative. Direction (surcharge vs. discount) is determined by which field this charge is assigned to, not the sign of this value.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
perkTypes

List of perks that came with the master rate

Array<object>
""

Lightweight projection of a platform perk for use in public-facing APIs, search results, and rate configuration, omitting internal admin fields.

object
id

Unique identifier for this record.

string format: uuid
""
version

Optimistic-locking version. Echo this value back as an If-Match request header on a conditional update; the server responds 409 if the record changed in the meantime. Null when this projection has no backing versioned document, in which case no conditional update is possible.

integer | null format: int64
""
guaranteed
required

Whether this perk is guaranteed to be provided or available on a best-effort basis. Guaranteed perks take priority in allocation.

boolean
level
required

Platform tier/value assigned to this perk (0=standard, higher=premium). Used for internal prioritization and matching with rate tiers.

integer format: int32
""
descriptions
required

Localized descriptions of this perk in multiple languages. Each element provides a name, description, and language code (e.g., ‘en’, ‘fr’, ‘de’).

Array<object>
>= 1 items

Foundation class for storing multi-language content (names and descriptions) with content change detection throughout the Wink Platform.

object
name
required

Use as title or short text description

string
""
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
md5ContentHash

The md5 hash of the name, description and language.

string
""
hashMismatch
boolean
sort
required

Display order when showing this perk in a list (ascending sort). Lower numbers appear first; 999 is reserved for disabled/unlisted perks.

integer format: int32
""
createdDate

Datetime this record was first created

string | null format: date-time
""
lastUpdate

Datetime this record was last updated

string | null format: date-time
""
extraCharges

Rate plan-level extra charges

object
items
Items

List of extra charges that applies to the rate plan.

Array<object>
""
object
ratePlanLevelFee

What the guest is paying extra for

object
descriptions
required

Localized descriptions of this fee in multiple languages. At least one entry in English is required.

Array<object>
"" >= 1 items

Simplified localized description containing text content and its language code.

object
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
md5ContentHash

The md5 hash of the name, description and language.

string
""
hashMismatch
boolean
fixedAmount
required

The fixed fee amount in the property’s local currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
type
required

How this fee is charged: per day, per stay, per person per day, or per person per stay.

string
""
Allowed values: PER_DAY PER_STAY PER_PERSON_PER_DAY PER_PERSON_PER_STAY
unitPrice

The localized unit price of the extra charge

object
sourceToUserCurrencyQuote
required

Hotel to user currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
sourceToInternalCurrencyQuote
required

Hotel to wink currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
userSpecifiedCurrencyBaseTotal
required

Base total in user specified currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
sourceBaseTotal
required

Base total in hotel currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalBaseTotal
required

Base total in wink currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyPromotionalModifier

Promotional modifiers in user specified currency

number
""
sourcePromotionalModifier

Promotional modifiers in hotel currency

number
""
internalPromotionalModifier

Promotional modifiers in wink currency

number
""
userSpecifiedCurrencyPremiumModifier

Premium modifiers in user specified currency

number
""
sourcePremiumModifier

Premium modifiers in hotel currency

number
""
internalPremiumModifier

Premium modifiers in wink currency

number
""
userSpecifiedCurrencyChannelModifier

Channel / Membership modifier in user specified currency

number
""
sourceChannelModifier

Channel / Membership modifier in hotel currency

number
""
internalChannelModifier

Channel / Membership modifier in wink currency

number
""
quantity

How many of this item is included in this price

integer format: int64
default: 1
promotionalDiscountPercent

Promotional discount percent

number
""
channelDiscountPercent

Channel discount percent

number
""
premiumPercent

Premium percent

number
""
hasChannelDiscount
boolean
hasPremium
boolean
hasPromotion
boolean
sourceTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
totalDiscountPercent
number
price

The localized price of the extra charge

object
sourceToUserCurrencyQuote
required

Hotel to user currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
sourceToInternalCurrencyQuote
required

Hotel to wink currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
userSpecifiedCurrencyBaseTotal
required

Base total in user specified currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
sourceBaseTotal
required

Base total in hotel currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalBaseTotal
required

Base total in wink currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyPromotionalModifier

Promotional modifiers in user specified currency

number
""
sourcePromotionalModifier

Promotional modifiers in hotel currency

number
""
internalPromotionalModifier

Promotional modifiers in wink currency

number
""
userSpecifiedCurrencyPremiumModifier

Premium modifiers in user specified currency

number
""
sourcePremiumModifier

Premium modifiers in hotel currency

number
""
internalPremiumModifier

Premium modifiers in wink currency

number
""
userSpecifiedCurrencyChannelModifier

Channel / Membership modifier in user specified currency

number
""
sourceChannelModifier

Channel / Membership modifier in hotel currency

number
""
internalChannelModifier

Channel / Membership modifier in wink currency

number
""
quantity

How many of this item is included in this price

integer format: int64
default: 1
promotionalDiscountPercent

Promotional discount percent

number
""
channelDiscountPercent

Channel discount percent

number
""
premiumPercent

Premium percent

number
""
hasChannelDiscount
boolean
hasPremium
boolean
hasPromotion
boolean
sourceTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
totalDiscountPercent
number
userSpecifiedCurrencyTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
sourceTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
activeCancellationPolicy

Active cancellation policy resolved at booking time.

object
id
required

Unique identifier for this record.

string format: uuid
""
version

Optimistic-locking version. Echo this value back as an If-Match request header on a conditional update; the server responds 409 if the record changed in the meantime. Null when this projection has no backing versioned document, in which case no conditional update is possible.

integer | null format: int64
""
hotelIdentifier
required

Property this cancellation is associated with

string format: uuid
""
refundable
required

Whether this cancellation policy is refundable or not

boolean
advanceCancellationFreeOfCharge

When the cancellation policy is refundable, this flag can be set and indicates there is more rules involved than just a no-questions-asked refundable.

string
""
Allowed values: UNTIL_EIGHTEEN_HUNDRED_HOURS_ON_DAY_OF_ARRIVAL UNTIL_FOURTEEN_HUNDRED_HOURS_ON_DAY_OF_ARRIVAL ONE_DAY_BEFORE_ARRIVAL TWO_DAYS_BEFORE_ARRIVAL THREE_DAYS_BEFORE_ARRIVAL FIVE_DAYS_BEFORE_ARRIVAL SEVEN_DAYS_BEFORE_ARRIVAL FOURTEEN_DAYS_BEFORE_ARRIVAL TWENTYONE_DAYS_BEFORE_ARRIVAL THIRTY_DAYS_BEFORE_ARRIVAL FOURTY_TWO_DAYS_BEFORE_ARRIVAL SIXTY_DAYS_BEFORE_ARRIVAL
refundableCancellationCharge

If advanceCancellationFreeOfCharge rules is not honored, this property explains what the guest will be charged.

string
""
Allowed values: FIRST_NIGHT THIRTY_PERCENT FIFTY_PERCENT SIXTY_PERCENT SEVENTY_PERCENT NINENTY_PERCENT ONE_HUNDRED_PERCENT
noShowCharge

In case the ‘Refundable cancellation charge’ is set, a different no show charge can be applied.

string
""
Allowed values: SAME_AS_CANCELLATION_FEE ONE_HUNDRED_PERCENT_OF_TOTAL_CHARGE
nonRefundableCancellationCharge

When the cancellation policy is non-refundable, this flag can be set and indicates there is more rules involved to calculate what the guest will owe in case of a cancellation.

string
""
Allowed values: FIRST_NIGHT TEN_PERCENT THIRTY_PERCENT FIFTY_PERCENT SEVENTY_PERCENT
nonRefundableDeadline

The non-refundable charge might can have a deadline. If that deadline passes, the guest might be charged more.

string
""
Allowed values: ONE_DAY_BEFORE_ARRIVAL TWO_DAYS_BEFORE_ARRIVAL THREE_DAYS_BEFORE_ARRIVAL FIVE_DAYS_BEFORE_ARRIVAL SEVEN_DAYS_BEFORE_ARRIVAL FOURTEEN_DAYS_BEFORE_ARRIVAL TWENTYONE_DAYS_BEFORE_ARRIVAL THIRTY_DAYS_BEFORE_ARRIVAL FOURTY_TWO_DAYS_BEFORE_ARRIVAL SIXTY_DAYS_BEFORE_ARRIVAL
nonRefundableAfterDeadlineCancellationCharge

If the guest does not honor the non-refundable deadline rule, this charge dictates what she owes after the deadline passes.

string
""
Allowed values: FIRST_NIGHT TEN_PERCENT THIRTY_PERCENT FIFTY_PERCENT SEVENTY_PERCENT ONE_HUNDRED_PERCENT
createdDate

Datetime this record was first created

string | null format: date-time
""
lastUpdate

Datetime this record was last updated

string | null format: date-time
""
policyCode
string
ancillaryList

Ancillary services attached to this room stay.

Array<object>
""
object
identifier
required

Ancillary identifier

string format: uuid
"" >= 1 characters
hotelIdentifier
required

Hotel identifier

string format: uuid
"" >= 1 characters
typeIdentifier
required

Travel inventory identifier

string format: uuid
"" >= 1 characters
transactionalTravelInventoryIdentifier
required

Travel inventory identifier

string format: uuid
"" >= 1 characters
name
required

Name of inventory

string
"" >= 1 characters
pricingType
required

Pricing type

string
""
Allowed values: PER_STAY PER_DAY PER_NIGHT PER_USE PER_HOUR PER_PERSON PER_PERSON_PER_NIGHT PER_PERSON_PER_HOUR PER_ADULT PER_ADULT_PER_NIGHT PER_ADULT_PER_HOUR PER_CHILD PER_CHILD_PER_NIGHT PER_CHILD_PER_HOUR
type
required

Inventory type

string
""
Allowed values: ROOM_TYPE_ANCILLARY ADD_ON MEETING_ROOM SPA RESTAURANT ACTIVITY ATTRACTION PLACE
price
required

Pricing information for this ancillary.

object
sourceToUserCurrencyQuote
required

Hotel to user currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
sourceToInternalCurrencyQuote
required

Hotel to wink currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
userSpecifiedCurrencyBaseTotal
required

Base total in user specified currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
sourceBaseTotal
required

Base total in hotel currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalBaseTotal
required

Base total in wink currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyPromotionalModifier

Promotional modifiers in user specified currency

number
""
sourcePromotionalModifier

Promotional modifiers in hotel currency

number
""
internalPromotionalModifier

Promotional modifiers in wink currency

number
""
userSpecifiedCurrencyPremiumModifier

Premium modifiers in user specified currency

number
""
sourcePremiumModifier

Premium modifiers in hotel currency

number
""
internalPremiumModifier

Premium modifiers in wink currency

number
""
userSpecifiedCurrencyChannelModifier

Channel / Membership modifier in user specified currency

number
""
sourceChannelModifier

Channel / Membership modifier in hotel currency

number
""
internalChannelModifier

Channel / Membership modifier in wink currency

number
""
quantity

How many of this item is included in this price

integer format: int64
default: 1
promotionalDiscountPercent

Promotional discount percent

number
""
channelDiscountPercent

Channel discount percent

number
""
premiumPercent

Premium percent

number
""
hasChannelDiscount
boolean
hasPremium
boolean
hasPromotion
boolean
sourceTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
totalDiscountPercent
number
startDate

Date start time when reservation was made for. Optional — null for ancillaries with no specific schedule (e.g. PER_STAY/PER_USE items).

string format: date-time
""
endDate

Date end time when reservation was made for. Optional — null for ancillaries with no specific schedule (e.g. PER_STAY/PER_USE items).

string format: date-time
""
attendees
required

Number of guests that are part of this reservation.

integer format: int32
default: 1
imageIdentifier
required

Cloudinary image identifier

string
"" >= 1 characters
imageUrl
required

Absolute URL to image of inventory

string
"" >= 1 characters
localizedName
required

Name of travel inventory in traveler language (if available). Defaults to English.

string
"" >= 1 characters
localizedDescription
required

Description of travel inventory in traveler language (if available). Defaults to English.

string
"" >= 1 characters
contact
required

Travel blocking contact (if applicable)

object
firstName

Contact first name

string
""
lastName

Contact last name

string
""
email

Contact E-mail

string format: email
""
secondaryEmail

Contact secondary Email

string format: email
""
phoneNumber

Contact phone number

string
"" /^\+?[1-9]\d{1,14}$/
fullName

First and last name

string
""
summary

Summary

string
""
address
required

Travel blocking address (if applicable)

object
address1

Address line 1

string
""
address2

Address line 2

string
""
state

State

string
""
postalCode

Postal / zip code

string
""
county

County

string
""
city

City name

string
""
countryCode

Country

string
"" /^[A-Z]{2}$/
country

Country

string
""
fullAddress

Address 1, Address 2, City, State, Postal / Zip code, Country

string
""
commissionable
required
boolean
mandatory
required
boolean
commission
required
number format: float
financialBreakdown
object
sourceCurrency
string
internalCurrency
string
displayCurrency
string
displayPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
internalPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
beneficiaryList
Array<object>

A beneficiary is a registered account entitled to a portion of booking funds. Funds are allocated by type (SALE, COMMISSION, PLATFORM_FEE, etc.) and tracked across source, display, and internal (platform) currencies. Refund modifiers record adjustments from cancellations.

object
accountIdentifier
required

Unique identifier of the beneficiary’s account in the TripPay system

string
"" >= 1 characters
accountName
required

Display name of the beneficiary account (e.g. hotel, affiliate, or platform name)

string
"" >= 1 characters
accountEmail
required

Contact email address for the beneficiary account

string format: email
"" >= 1 characters
accountUrl

Profile or dashboard URL for the beneficiary account

string
""
type
required

Category of the beneficiary: SALE (property), COMMISSION (affiliate), PLATFORM_FEE (Wink), TRIP_PAY (platform internal), or agency fees

string
""
Allowed values: TRIP_PAY PLATFORM_FEE COMMISSION AFFILIATE_AGENCY_FEE SUPPLIER_AGENCY_FEE SALE
amountDue

Charge rule: either a fixed percentage of the total stay or the remainder after other beneficiaries are deducted

object
type
required

PERCENTAGE: apply the percent field to the total booking price. REMAINDER: this beneficiary receives whatever is left after other beneficiaries are satisfied (typically used for the hotel).

string
""
Allowed values: PERCENTAGE REMAINDER
percent

The percentage value (0.0–1.0) to apply to the total booking amount when type=PERCENTAGE. For example, 0.050 = 5% of the booking price. Ignored when type=REMAINDER.

number
""
sourceCurrency
required

ISO 4217 currency code for the originating source (supplier’s local currency, e.g. hotel in Thailand uses THB)

string
"" >= 1 characters
displayCurrency
required

ISO 4217 currency code for display to the user (e.g. booking shown in USD)

string
"" >= 1 characters
internalCurrency
required

ISO 4217 currency code for internal platform ledger (always USD)

string
"" >= 1 characters
sourceAmount
required

Gross amount owed to this beneficiary in source currency (before refunds)

number
""
displayAmount
required

Gross amount owed to this beneficiary in display currency (before refunds)

number
""
internalAmount
required

Gross amount owed to this beneficiary in internal currency (before refunds)

number
""
sourceAmountRefundModifier
required

Cumulative refund reduction applied to sourceAmount (sum of all applied PendingRefunds)

number
""
displayAmountRefundModifier
required

Cumulative refund reduction applied to displayAmount (sum of all applied PendingRefunds)

number
""
internalAmountRefundModifier
required

Cumulative refund reduction applied to internalAmount (sum of all applied PendingRefunds)

number
""
pendingRefunds
Array<object>

Pending refunds awaiting settlement. Once a refund transitions from PENDING to APPLIED, it moves out of this list and into the corresponding *AmountRefundModifier property

object
refundIdentifier
required

Unique identifier linking this pending refund to the parent booking’s refund record

string
"" >= 1 characters
sourceAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s sourceAmount when applied

number
""
displayAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s displayAmount when applied

number
""
internalAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s internalAmount when applied

number
""
netSourceAmount
required

Net amount owed in source currency (sourceAmount - sourceAmountRefundModifier)

number
""
netDisplayAmount
required

Net amount owed in display currency (displayAmount - displayAmountRefundModifier)

number
""
netInternalAmount
required

Net amount owed in internal currency (internalAmount - internalAmountRefundModifier)

number
""
reconciled

Flag indicating whether net amounts have been transferred (disbursed) from TripPay to the beneficiary

boolean
metadata

Additional key-value metadata for the beneficiary (e.g. bank details, supplier identifiers)

object
key
additional properties
string
sourceAmount
number
internalAmount
number
displayAmount
number
sourceAmountRefundModifier
number
internalAmountRefundModifier
number
displayAmountRefundModifier
number
netSourceAmount
number
netInternalAmount
number
netDisplayAmount
number
commissionableTotalSourceAmount
number
commissionableTotalInternalAmount
number
commissionableTotalDisplayAmount
number
netCommissionableTotalSourceAmount
number
netCommissionableTotalInternalAmount
number
netCommissionableTotalDisplayAmount
number
totalFeesAndCommissionsSourceAmount
number
totalFeesAndCommissionsInternalAmount
number
totalFeesAndCommissionsDisplayAmount
number
netTotalFeesAndCommissionsSourceAmount
number
netTotalFeesAndCommissionsInternalAmount
number
netTotalFeesAndCommissionsDisplayAmount
number
totalFeesSourceAmount
number
totalFeesInternalAmount
number
totalFeesDisplayAmount
number
netTotalFeesSourceAmount
number
netTotalFeesInternalAmount
number
netTotalFeesDisplayAmount
number
totalPlatformFeeSourceAmount
number
totalPlatformFeeInternalAmount
number
totalPlatformFeeDisplayAmount
number
netTotalPlatformFeeSourceAmount
number
netTotalPlatformFeeInternalAmount
number
netTotalPlatformFeeDisplayAmount
number
totalPaymentProcessingFeeSourceAmount
number
totalPaymentProcessingFeeInternalAmount
number
totalPaymentProcessingFeeDisplayAmount
number
netTotalPaymentProcessingFeeSourceAmount
number
netTotalPaymentProcessingFeeInternalAmount
number
netTotalPaymentProcessingFeeDisplayAmount
number
totalSalesSourceAmount
number
totalSalesInternalAmount
number
totalSalesDisplayAmount
number
netTotalSalesSourceAmount
number
netTotalSalesInternalAmount
number
netTotalSalesDisplayAmount
number
totalAffiliateAgencyFeesSourceAmount
number
totalAffiliateAgencyFeesInternalAmount
number
totalAffiliateAgencyFeesDisplayAmount
number
netTotalAffiliateAgencyFeesSourceAmount
number
netTotalAffiliateAgencyFeesInternalAmount
number
netTotalAffiliateAgencyFeesDisplayAmount
number
totalSupplierAgencyFeesSourceAmount
number
totalSupplierAgencyFeesInternalAmount
number
totalSupplierAgencyFeesDisplayAmount
number
netTotalSupplierAgencyFeesSourceAmount
number
netTotalSupplierAgencyFeesInternalAmount
number
netTotalSupplierAgencyFeesDisplayAmount
number
netTotalCustomersSourceAmount
number
netTotalCustomersInternalAmount
number
netTotalCustomersDisplayAmount
number
metadata
object
key
additional properties
roomImageUrl

Absolute URL of room image

string format: uri
""
financialBreakdown
object
sourceCurrency
string
internalCurrency
string
displayCurrency
string
displayPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
internalPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
beneficiaryList
Array<object>

A beneficiary is a registered account entitled to a portion of booking funds. Funds are allocated by type (SALE, COMMISSION, PLATFORM_FEE, etc.) and tracked across source, display, and internal (platform) currencies. Refund modifiers record adjustments from cancellations.

object
accountIdentifier
required

Unique identifier of the beneficiary’s account in the TripPay system

string
"" >= 1 characters
accountName
required

Display name of the beneficiary account (e.g. hotel, affiliate, or platform name)

string
"" >= 1 characters
accountEmail
required

Contact email address for the beneficiary account

string format: email
"" >= 1 characters
accountUrl

Profile or dashboard URL for the beneficiary account

string
""
type
required

Category of the beneficiary: SALE (property), COMMISSION (affiliate), PLATFORM_FEE (Wink), TRIP_PAY (platform internal), or agency fees

string
""
Allowed values: TRIP_PAY PLATFORM_FEE COMMISSION AFFILIATE_AGENCY_FEE SUPPLIER_AGENCY_FEE SALE
amountDue

Charge rule: either a fixed percentage of the total stay or the remainder after other beneficiaries are deducted

object
type
required

PERCENTAGE: apply the percent field to the total booking price. REMAINDER: this beneficiary receives whatever is left after other beneficiaries are satisfied (typically used for the hotel).

string
""
Allowed values: PERCENTAGE REMAINDER
percent

The percentage value (0.0–1.0) to apply to the total booking amount when type=PERCENTAGE. For example, 0.050 = 5% of the booking price. Ignored when type=REMAINDER.

number
""
sourceCurrency
required

ISO 4217 currency code for the originating source (supplier’s local currency, e.g. hotel in Thailand uses THB)

string
"" >= 1 characters
displayCurrency
required

ISO 4217 currency code for display to the user (e.g. booking shown in USD)

string
"" >= 1 characters
internalCurrency
required

ISO 4217 currency code for internal platform ledger (always USD)

string
"" >= 1 characters
sourceAmount
required

Gross amount owed to this beneficiary in source currency (before refunds)

number
""
displayAmount
required

Gross amount owed to this beneficiary in display currency (before refunds)

number
""
internalAmount
required

Gross amount owed to this beneficiary in internal currency (before refunds)

number
""
sourceAmountRefundModifier
required

Cumulative refund reduction applied to sourceAmount (sum of all applied PendingRefunds)

number
""
displayAmountRefundModifier
required

Cumulative refund reduction applied to displayAmount (sum of all applied PendingRefunds)

number
""
internalAmountRefundModifier
required

Cumulative refund reduction applied to internalAmount (sum of all applied PendingRefunds)

number
""
pendingRefunds
Array<object>

Pending refunds awaiting settlement. Once a refund transitions from PENDING to APPLIED, it moves out of this list and into the corresponding *AmountRefundModifier property

object
refundIdentifier
required

Unique identifier linking this pending refund to the parent booking’s refund record

string
"" >= 1 characters
sourceAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s sourceAmount when applied

number
""
displayAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s displayAmount when applied

number
""
internalAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s internalAmount when applied

number
""
netSourceAmount
required

Net amount owed in source currency (sourceAmount - sourceAmountRefundModifier)

number
""
netDisplayAmount
required

Net amount owed in display currency (displayAmount - displayAmountRefundModifier)

number
""
netInternalAmount
required

Net amount owed in internal currency (internalAmount - internalAmountRefundModifier)

number
""
reconciled

Flag indicating whether net amounts have been transferred (disbursed) from TripPay to the beneficiary

boolean
metadata

Additional key-value metadata for the beneficiary (e.g. bank details, supplier identifiers)

object
key
additional properties
string
sourceAmount
number
internalAmount
number
displayAmount
number
sourceAmountRefundModifier
number
internalAmountRefundModifier
number
displayAmountRefundModifier
number
netSourceAmount
number
netInternalAmount
number
netDisplayAmount
number
commissionableTotalSourceAmount
number
commissionableTotalInternalAmount
number
commissionableTotalDisplayAmount
number
netCommissionableTotalSourceAmount
number
netCommissionableTotalInternalAmount
number
netCommissionableTotalDisplayAmount
number
totalFeesAndCommissionsSourceAmount
number
totalFeesAndCommissionsInternalAmount
number
totalFeesAndCommissionsDisplayAmount
number
netTotalFeesAndCommissionsSourceAmount
number
netTotalFeesAndCommissionsInternalAmount
number
netTotalFeesAndCommissionsDisplayAmount
number
totalFeesSourceAmount
number
totalFeesInternalAmount
number
totalFeesDisplayAmount
number
netTotalFeesSourceAmount
number
netTotalFeesInternalAmount
number
netTotalFeesDisplayAmount
number
totalPlatformFeeSourceAmount
number
totalPlatformFeeInternalAmount
number
totalPlatformFeeDisplayAmount
number
netTotalPlatformFeeSourceAmount
number
netTotalPlatformFeeInternalAmount
number
netTotalPlatformFeeDisplayAmount
number
totalPaymentProcessingFeeSourceAmount
number
totalPaymentProcessingFeeInternalAmount
number
totalPaymentProcessingFeeDisplayAmount
number
netTotalPaymentProcessingFeeSourceAmount
number
netTotalPaymentProcessingFeeInternalAmount
number
netTotalPaymentProcessingFeeDisplayAmount
number
totalSalesSourceAmount
number
totalSalesInternalAmount
number
totalSalesDisplayAmount
number
netTotalSalesSourceAmount
number
netTotalSalesInternalAmount
number
netTotalSalesDisplayAmount
number
totalAffiliateAgencyFeesSourceAmount
number
totalAffiliateAgencyFeesInternalAmount
number
totalAffiliateAgencyFeesDisplayAmount
number
netTotalAffiliateAgencyFeesSourceAmount
number
netTotalAffiliateAgencyFeesInternalAmount
number
netTotalAffiliateAgencyFeesDisplayAmount
number
totalSupplierAgencyFeesSourceAmount
number
totalSupplierAgencyFeesInternalAmount
number
totalSupplierAgencyFeesDisplayAmount
number
netTotalSupplierAgencyFeesSourceAmount
number
netTotalSupplierAgencyFeesInternalAmount
number
netTotalSupplierAgencyFeesDisplayAmount
number
netTotalCustomersSourceAmount
number
netTotalCustomersInternalAmount
number
netTotalCustomersDisplayAmount
number
metadata
object
key
additional properties
guestUser

Guest assigned to this room stay (lead occupant).

object
userIdentifier

User identifier

string format: uuid
""
firstName
required

First name

string
"" >= 1 characters
lastName
required

Last name

string
"" >= 1 characters
email
required

Email

string format: email
"" >= 1 characters
telephone

Telephone

string
"" /^\+?[1-9]\d{1,14}$/
profile

Optional profile record

object
id

Unique identifier for this record.

string format: uuid
""
createdDate

Datetime this record was first created

string | null format: date-time
""
lastUpdate

Datetime this record was last updated

string | null format: date-time
""
version

Optimistic-locking version. Echo this value back as an If-Match request header on a conditional update; the server responds 409 if the record changed in the meantime. Null when this projection has no backing versioned document, in which case no conditional update is possible.

integer | null format: int64
""
profileIdentifier
required

Profile identifier

string format: uuid
"" >= 1 characters
userIdentifier
required

User identifier

string format: uuid
"" >= 1 characters
share
required

Indicates whether the user wants to share this profile of themselves with hotel(s)

boolean
user
required

User details

object
firstName

User first name

string
""
lastName

User last name

string
""
email

User email address

string format: email
""
phone

User phone number

string
"" /^\+?[1-9]\d{1,14}$/
profilePictureUrl

Profile picture URL

string format: uri
""
fullName

Full name

string
""
personal
required

Detailed customer information for this profile

object
gender

Identifies the gender of the customer.

string
""
Allowed values: MALE FEMALE OTHER
birthDate

Date of birth in ISO 8601 format

string format: date
""
maritalStatus

Marital status of the traveler

string
""
Allowed values: ANNULLED COHABITATING DIVORCED ENGAGED MARRIED SEPARATED SINGLE WIDOWED UNKNOWN
childQuantity

Number of children

integer format: int32
""
citizenship

Country of citizenship

string
""
address1

Primary address line

string
""
address2

Secondary address line

string
""
city

City name

string
""
state

State or province

string
""
postalCode

Postal code

string
""
country

Country code (ISO 3166-1 alpha-2)

string
"" /^[A-Z]{2}$/
preferredCurrency

Preferred currency for monetary values (ISO 4217 code)

string
"" /^[A-Z]{3}$/
language

Primary language (ISO 639-1 code)

string
"" /^[a-z]{2}(-[A-Z]{2})?$/
contactPerson
Array<object>

Array of emergency contact information for the customer

object
firstName

Contact first name

string
""
lastName

Contact last name

string
""
email

Contact E-mail

string format: email
""
secondaryEmail

Contact secondary Email

string format: email
""
phoneNumber

Contact phone number

string
"" /^\+?[1-9]\d{1,14}$/
fullName

First and last name

string
""
summary

Summary

string
""
physChallName
Array<string>
petInfo
Array<object>

Array of customer’s pets

object
name
required

Pet name

string
"" >= 1 characters
type
required

Pet type

string
"" >= 1 characters
preferences
required

Customer preferences

object
propertyLocationPref

Preferred hotel property locations

string
""
propertyTypePref

Preferred hotel property types

string
""
hotelChainPref

Preferred hotel chain name

string
""
propertyAmenityPref

Preferred hotel property amenities

Array<string>
recreationSrvcPref

Preferred recreation services

Array<string>
businessSrvcPref

Preferred business services

Array<string>
securityFeaturePref

Preferred security features

Array<string>
physChalFeaturePref

Preferred accessibility features

Array<string>
""
smokingAllowed

Preference for smoking allowed rooms

boolean
roomLocationPref

Preferred hotel room locations

string
""
bedTypePref

Preferred hotel bed type

string
""
foodSrvcPref

Preferred food service facilities

string
""
roomAmenityPref

Preferred hotel room amenities

Array<string>
guestType

Guest type classification

string
""
mealPref

Meal preference

string
""
cuisinePref

Cuisine preference

string
""
interestPref

Interest preferences

Array<string>
beveragePref

Beverage preferences

Array<string>
foodPref

Food preferences

Array<string>
allergies

Known allergies

Array<string>
petsPref

Pet-friendly preferences

Array<string>
fullName

Full name

string
""
startDate
required

Check-in date

string format: date
""
endDate
required

Check-out date

string format: date
""
guests
integer format: int32
beneficiaryList
Array<object>

A beneficiary is a registered account entitled to a portion of booking funds. Funds are allocated by type (SALE, COMMISSION, PLATFORM_FEE, etc.) and tracked across source, display, and internal (platform) currencies. Refund modifiers record adjustments from cancellations.

object
accountIdentifier
required

Unique identifier of the beneficiary’s account in the TripPay system

string
"" >= 1 characters
accountName
required

Display name of the beneficiary account (e.g. hotel, affiliate, or platform name)

string
"" >= 1 characters
accountEmail
required

Contact email address for the beneficiary account

string format: email
"" >= 1 characters
accountUrl

Profile or dashboard URL for the beneficiary account

string
""
type
required

Category of the beneficiary: SALE (property), COMMISSION (affiliate), PLATFORM_FEE (Wink), TRIP_PAY (platform internal), or agency fees

string
""
Allowed values: TRIP_PAY PLATFORM_FEE COMMISSION AFFILIATE_AGENCY_FEE SUPPLIER_AGENCY_FEE SALE
amountDue

Charge rule: either a fixed percentage of the total stay or the remainder after other beneficiaries are deducted

object
type
required

PERCENTAGE: apply the percent field to the total booking price. REMAINDER: this beneficiary receives whatever is left after other beneficiaries are satisfied (typically used for the hotel).

string
""
Allowed values: PERCENTAGE REMAINDER
percent

The percentage value (0.0–1.0) to apply to the total booking amount when type=PERCENTAGE. For example, 0.050 = 5% of the booking price. Ignored when type=REMAINDER.

number
""
sourceCurrency
required

ISO 4217 currency code for the originating source (supplier’s local currency, e.g. hotel in Thailand uses THB)

string
"" >= 1 characters
displayCurrency
required

ISO 4217 currency code for display to the user (e.g. booking shown in USD)

string
"" >= 1 characters
internalCurrency
required

ISO 4217 currency code for internal platform ledger (always USD)

string
"" >= 1 characters
sourceAmount
required

Gross amount owed to this beneficiary in source currency (before refunds)

number
""
displayAmount
required

Gross amount owed to this beneficiary in display currency (before refunds)

number
""
internalAmount
required

Gross amount owed to this beneficiary in internal currency (before refunds)

number
""
sourceAmountRefundModifier
required

Cumulative refund reduction applied to sourceAmount (sum of all applied PendingRefunds)

number
""
displayAmountRefundModifier
required

Cumulative refund reduction applied to displayAmount (sum of all applied PendingRefunds)

number
""
internalAmountRefundModifier
required

Cumulative refund reduction applied to internalAmount (sum of all applied PendingRefunds)

number
""
pendingRefunds
Array<object>

Pending refunds awaiting settlement. Once a refund transitions from PENDING to APPLIED, it moves out of this list and into the corresponding *AmountRefundModifier property

object
refundIdentifier
required

Unique identifier linking this pending refund to the parent booking’s refund record

string
"" >= 1 characters
sourceAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s sourceAmount when applied

number
""
displayAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s displayAmount when applied

number
""
internalAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s internalAmount when applied

number
""
netSourceAmount
required

Net amount owed in source currency (sourceAmount - sourceAmountRefundModifier)

number
""
netDisplayAmount
required

Net amount owed in display currency (displayAmount - displayAmountRefundModifier)

number
""
netInternalAmount
required

Net amount owed in internal currency (internalAmount - internalAmountRefundModifier)

number
""
reconciled

Flag indicating whether net amounts have been transferred (disbursed) from TripPay to the beneficiary

boolean
metadata

Additional key-value metadata for the beneficiary (e.g. bank details, supplier identifiers)

object
key
additional properties
string
roomNights
integer format: int64
rateSource
string
sourceTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
booker

The user who made the booking (may be an agent, not the traveler — see getGuestUser()).

object
userIdentifier

User identifier

string format: uuid
""
firstName
required

First name

string
"" >= 1 characters
lastName
required

Last name

string
"" >= 1 characters
email
required

Email

string format: email
"" >= 1 characters
telephone

Telephone

string
"" /^\+?[1-9]\d{1,14}$/
fullName

Full name

string
""
customization

The customization/branding context this booking was made under.

object
id
required

Unique identifier for this record.

string format: uuid
""
version

Optimistic-locking version. Echo this value back as an If-Match request header on a conditional update; the server responds 409 if the record changed in the meantime. Null when this projection has no backing versioned document, in which case no conditional update is possible.

integer | null format: int64
""
name
required

Engine configuration name

string
"" >= 1 characters
userIdentifier
required

Authenticated user identifier

string format: uuid
""
ownerIdentifier
required

Engine configuration record creator identifier

string format: uuid
""
ownerName
required

Name of company owner.

string
""
subType
required

Sales channel sub-type.

string
""
Allowed values: TRIP_PAY FACILITATOR DIRECT APPLICATION HOTEL TRAVELIKO CORPORATE TRAVEL_AGENT INFLUENCER BLOGGER DESTINATION CHANNEL_MANAGER PROPERTY_MANAGEMENT_SYSTEM CENTRAL_RESERVATION_SYSTEM GOOGLE_HOTEL_API MANAGEMENT_COMPANY CHAIN BRAND EVENT_ORGANIZER OTHER
defaultCurrency

Control which currency your users see prices in initially.

string
default: USD /^[A-Z]{3}$/
defaultLanguage

Control which language your users see text in initially.

string
default: en /^[a-z]{2}(-[A-Z]{2})?$/
defaultLifestyle

Control which lifestyle contextx your users see initially.

string
""
Allowed values: LIFESTYLE_HEALTH_FITNESS LIFESTYLE_RELAX LIFESTYLE_ADULT_ONLY LIFESTYLE_ADVENTURE LIFESTYLE_BUSINESS LIFESTYLE_LGBT LIFESTYLE_SINGLE_PARENT LIFESTYLE_SOLO_FEMALE LIFESTYLE_BEAUTY LIFESTYLE_FOODIE LIFESTYLE_FAMILY LIFESTYLE_ROMANCE LIFESTYLE_COUPLE LIFESTYLE_SOLO LIFESTYLE_BACKPACKER LIFESTYLE_SHOPPING LIFESTYLE_SPORTS LIFESTYLE_MOUNTAIN LIFESTYLE_BEACH LIFESTYLE_CITY LIFESTYLE_COUNTRY LIFESTYLE_CULTURE LIFESTYLE_ECO
logos

Customize booking confirmation emails by adding a custom logo to your configuration.

Array<object>

Multimedia that contains less information than Multimedia object

object
multimediaIdentifier
required

Document identifier

string format: uuid
"" >= 1 characters
identifier
required

Use this identifier to communicate with Cloudinary.

string
"" >= 1 characters
type
required

Whether Cloudinary media is a VIDEO or IMAGE.

string
""
Allowed values: IMAGE VIDEO AUDIO RAW
source
required

Currently ONLY using Cloudinary to store all image / video assets.

string
default: CLOUDINARY
Allowed values: YOUTUBE CLOUDINARY
sort
required

Sort allows you to control how you want to sort this record in a list of media records.

integer format: int32
default: 999
angle

Media angle

string
""
width
required

Media width in pixels.

integer format: int32
"" >= 1
height
required

Media height in pixels.

integer format: int32
"" >= 1
published

Instead of deleting the media, choose to un-publish it instead for later re-use. Could be you keep seasonal images of the property.

boolean
category

Supported OTA specification PIC code. See OTA geoname data

string
""
descriptions

Localized media captions to give user some context about where this media was taken.

Array<object>
""

Foundation class for storing multi-language content (names and descriptions) with content change detection throughout the Wink Platform.

object
name
required

Use as title or short text description

string
""
description
required

Longer text description

string
"" >= 1 characters <= 2147483647 characters
language
required

Indicate which language this description is written in.

string
default: en >= 2 characters <= 2 characters /^[a-z]{2}(-[A-Z]{2})?$/
creator

Whether it was user or system generated.

string
default: USER
Allowed values: SYSTEM USER
md5ContentHash

The md5 hash of the name, description and language.

string
""
hashMismatch
boolean
lifestyleType

Associate this media with a specific lifestyle type. A user searching and filtering inventory based on lifestyles can be shown relevant media first.

string
""
Allowed values: LIFESTYLE_HEALTH_FITNESS LIFESTYLE_RELAX LIFESTYLE_ADULT_ONLY LIFESTYLE_ADVENTURE LIFESTYLE_BUSINESS LIFESTYLE_LGBT LIFESTYLE_SINGLE_PARENT LIFESTYLE_SOLO_FEMALE LIFESTYLE_BEAUTY LIFESTYLE_FOODIE LIFESTYLE_FAMILY LIFESTYLE_ROMANCE LIFESTYLE_COUPLE LIFESTYLE_SOLO LIFESTYLE_BACKPACKER LIFESTYLE_SHOPPING LIFESTYLE_SPORTS LIFESTYLE_MOUNTAIN LIFESTYLE_BEACH LIFESTYLE_CITY LIFESTYLE_COUNTRY LIFESTYLE_CULTURE LIFESTYLE_ECO
attribution

Whether image has attribution properties

Array<object>
""
object
url

URL to contributor

string format: uri
""
name
required

Name of contributor

string
"" >= 1 characters
isLandscape

True if media width is greater or equal to height

boolean
hostedBookingEngineUrl

If you are self-hosting our booking customization, let us know where it is hosted. Note: This url needs to be secured with SSL.

string format: uri
default: https://book.wink.travel
selfHosted

Flag to indicate you are self-hosting our booking customization and not using our default booking customization url.

boolean
themeColors

Choose how you want our web components to look and more closely match with your own site style.

object
primary

Primary color

string
default: #dc3545
secondary

Secondary color

string
default: #6c757d
success

Success color

string
default: #28a745
danger

Danger color

string
default: #dc3545
warning

Warning color

string
default: #ffc107
info

Info color

string
default: #17a2b8
light

Light color

string
default: #f8f9fa
dark

Dark color

string
default: #343a40
body

Body color

string
default: #212529
muted

Muted color

string
default: #6c757d
white

White color

string
default: #ffffff
cardLayout

Choose how you large you want our web component cards to be.

string
default: VERTICAL
Allowed values: HORIZONTAL VERTICAL
layout

Choose how you want our web component cards laid out.

string
default: INFORMATIONAL
Allowed values: INFORMATIONAL TRANSACTIONAL
cardDesign

Choose the card design to use on our web component cards.

string
default: DEFAULT
Allowed values: DEFAULT
numberOfAdvanceDays

You can control the initial itinerary date used to retrieve travel inventory prices. You can do it in one of two ways: 1. Dynamically set the date by indicating how long and how many days in advance (this field), of today’s date, you want to display prices for. 2. Set a fixed date to display prices for. Option 1 is the most shared. Option 2 is for when you want to create a new customization and apply it to a specific event that occurs on a specific date. If you don’t use either of these options, the itinerary will default to today’s date with one night stay. ONLY populate this field if you want to control the itinerary date. Also, leave startDate and endDate empty.

integer format: int32
""
numberOfStayDays

You can control the initial itinerary date used to retrieve travel inventory prices. You can do it in one of two ways: 1. Dynamically set the date by indicating how long (this field) and how many days in advance, of today’s date, you want to display prices for. 2. Set a fixed date to display prices for. Option 1 is the most shared. Option 2 is for when you want to create a new customization and apply it to a specific event that occurs on a specific date. If you don’t use either of these options, the itinerary will default to today’s date with one night stay. ONLY populate this field if you want to control the itinerary date. Also, leave startDate and endDate empty.

integer format: int32
""
startDate

Set a fixed itinerary start date. ONLY populate this field if you want to fix the itinerary date. Also, leave numberOfAdvanceDays and numberOfStayDays empty.

string format: date
""
endDate

Set a fixed itinerary end date ONLY populate this field if you want to fix the itinerary date. Also, leave numberOfAdvanceDays and numberOfStayDays empty.

string format: date
""
roomConfigurations

Control how many adults / children will be staying and how many rooms. Defaults to: One room, two adults.

Array<object>

Room occupancy and guest composition for a single or multiple identical rooms

object
adults
required

Number of adult guests in this room type

integer format: int32
default: 1 >= 1
children

Child guests in this room, with age groups

Array<object>

Child guest with age and quantity in a room configuration

object
quantity
required

Count of children of this age group in the room

integer format: int32
"" >= 1
age
required

Age of each child in this group (years)

integer format: int32
""
quantity

Number of identical rooms with this configuration

integer format: int32
default: 1 >= 1
useDays

If true, we use numberOfAdvanceDays / numberOfStayDays properties - false, we use startDate / endDate

boolean
promotionalCodes

If you’ve received special promotional codes from suppliers to give to your audience, you can choose to bake these code directly into the price by entering them here.

Array<string>
sendBookingNotificationEmailsToProperty

An integrator can choose to disable outgoing emails to properties because they want to do that themselves.

boolean
default: true
sendBookingNotificationEmailsToBooker

An integrator can choose to disable outgoing emails to users because they want to do that themselves.

boolean
default: true
sendBookingNotificationEmailsToChannelManager

An integrator can choose to disable notifying the property’s channel manager. Note: This should ONLY be done for testing.

boolean
default: true
wcBookClickAction

Action to complete once a user clicks on the CTA button on inventory.

string
""
Allowed values: FORWARD_TO_IBE IBE_MODAL
city

GeoNames have been created at https://geonames.org and contain geographical destinations we use as geoname data to associate travel inventory with a location.

object
geoNameId

GeoName identifier

string
""
type

GeoNameLightweight type

string
""
Allowed values: CITY ISLAND OTHER
name

Name of city

string
""
urlName

Url name

string
"" /^[a-z0-9][a-z0-9-]*[a-z0-9]$/
asciiName

Ascii name of city

string
""
location

Coordinate points of the city

object
x
number format: double
y
number format: double
type
string
coordinates
Array<number>
featureCode

GeoNames specific feature code identifying the place type (e.g. PPL=populated place, PPLC=national capital, ISL=island)

string
""
countryCode

ISO 3166-1 alpha-2 country code for the country this location belongs to

string
"" /^[A-Z]{2}$/
timezone

IANA timezone identifier for the location

string
""
country

Country

object
iso

ISO code

string
""
name

Country name

string
""
capital

Country capital

string
""
continent

Continent code

string
""
currencyCode

Currency code

string
"" /^[A-Z]{3}$/
currencyName

Currency name

string
""
geoNameId

Country GeoNames identifier

string
""
subCountry

Country sub division

object
name

Sub-country name

string
""
asciiName

Sub-country ascii name

string
""
geoNameId

Sub-country GeoNames identifier

string
""
subSubCountry

Country sub sub division

object
name

Official name of the county or district in its local script

string
""
asciiName

ASCII-transliterated name of the county or district, safe for URLs and sorting

string
""
geoNameId

GeoNames.org unique identifier for this subdivision

string
""
showUnavailableCard

Show unavailable inventory card when inventory not currently for sale. Otherwise, it displays a normal card but without the price.

boolean
showRankings

Whether to display rankings (lifestyle, eco score and reviews) on hotel landing page.

boolean
showSearch

This feature flag controls whether to let a user move away from the hotel landing page using search.

boolean
trackingPixels

Tracking pixels and web beacons for analytics and conversion tracking.

Array<object>

Tracking pixel or web beacon configuration that fires on specified booking events for analytics and conversion tracking

object
identifier
required

Unique identifier for this tracking pixel

string format: uuid
"" >= 1 characters
name
required

User-friendly name for this tracking pixel

string
"" >= 1 characters
type
required

Type of tracking pixel delivery mechanism

string
""
Allowed values: JAVASCRIPT IMAGE
provider
required

Tracking pixel provider

string
""
Allowed values: FACEBOOK GOOGLE_ADS GOOGLE_ANALYTICS TIKTOK LINKEDIN PINTEREST SNAPCHAT TWITTER SOJOURN CUSTOM
consentCategory
required

Consent category for GDPR/CCPA compliance

string
""
Allowed values: STRICTLY_NECESSARY FUNCTIONAL ANALYTICS MARKETING
enabled

Whether this tracking pixel is currently active

boolean
default: true
pixelId

Provider-specific pixel ID (e.g., Facebook Pixel ID, Google Ads Conversion ID)

string
""
accessToken

Optional access token for providers that require authentication

string
""
customScript

Custom JavaScript code for CUSTOM provider type. Will be injected into the page.

string
""
customImageUrl

Custom image URL for IMAGE type pixels. Will be loaded as a 1x1 tracking pixel.

string format: uri
""
pageTypes

Page types where this pixel should fire. Empty list or containing ALL means fire on all pages.

Array<string>
Allowed values: ALL LANDING_PAGE SEARCH_RESULTS ROOM_SELECTION CHECKOUT CONFIRMATION
triggers

Event triggers that cause this pixel to fire, with optional custom parameters.

Array<object>

Defines a booking funnel event that causes a tracking pixel to fire, together with optional custom key-value parameters sent with the event

object
eventType
required

The event type that triggers this pixel

string
""
Allowed values: PAGE_VIEW SEARCH VIEW_CONTENT ADD_TO_CART INITIATE_CHECKOUT ADD_PAYMENT_INFO PURCHASE LEAD SIGN_UP
parameters

Custom key-value parameters to include with the event

Array<object>

Key-value parameter passed with a tracking pixel event; values may be static strings or runtime placeholders such as {booking.total}

object
key
required

Parameter name (e.g., ‘currency’, ‘value’, ‘content_id’)

string
"" >= 1 characters
value
required

Parameter value. Can be a static value or a placeholder like ‘{booking.total}’

string
"" >= 1 characters
fontId

Custom font for the booking engine. Null means use the system default.

string
""
Allowed values: UI_SANS_SERIF UI_SERIF PLAYFAIR_DISPLAY LIBRE_BASKERVILLE CORMORANT_GARAMOND JOSEFIN_SANS RALEWAY LORA SPACE_GROTESK DM_SERIF_DISPLAY OUTFIT CRIMSON_PRO CINZEL BODONI_MODA EB_GARAMOND ITALIANA FORUM TENOR_SANS GILDA_DISPLAY MARCELLUS
googleAnalyticsMeasurementId

Your GA4 Measurement ID (G-XXXXXXX). Configured client-side via gtag; the purchase event fires on the thank-you page, not server-side.

string
""
googleTagManagerContainerId

If you want to track analytics and you have a GTM Container ID, enter it here. Treated as a black box and loaded client-side; the container’s own tags decide what fires.

string
""
primary

Indicates whether this configuration is primary. A primary configuration cannot be removed.

boolean
createdDate

Datetime this record was first created

string | null format: date-time
""
lastUpdate

Datetime this record was last updated

string | null format: date-time
""
cancellation

Cancellation details, present only when the booking is cancelled.

object
cancelledOn
required

When the booking was cancelled.

string format: date-time
""
cancellerType
required

Who cancelled the booking.

string
""
Allowed values: HOTEL GUEST ADMIN AGENT ACQUIRER SALES_CHANNEL SYSTEM
cancellationType

The cancellation policy type that was applied.

string
""
Allowed values: DUPLICATE CANCELLATION NO_SHOW CC_INVALID CC_INSUFFICIENT DISCRETIONARY
cancellerUserIdentifier

User identifier of the person who cancelled.

string format: uuid
""
cancelReason

Human-readable reason for cancellation.

string
""
groupRefundNotified

True when the traveler refund for this booking is notified once at the group level (a single aggregated trippay_payment_refund email). The Stripe refund-settlement webhook reads this to suppress the per-booking traveler refund email and avoid duplicates.

boolean
refund

Refund details, present only when a refund has been issued.

object
identifier
required

Unique refund identifier.

string format: uuid
"" >= 1 characters
stripeRefundId

Stripe Refund ID.

string
""
sourceAmount
required

Refund amount in source (supplier/hotel) currency.

number
""
internalAmount
required

Refund amount in internal (USD/capture) currency.

number
""
displayAmount
required

Refund amount in display (user) currency.

number
""
description
required

Human-readable description.

string
"" >= 1 characters
reason
required

Reason for the refund.

string
""
Allowed values: DUPLICATE FRAUDULENT REQUESTED_BY_CUSTOMER GUEST_COMPLAINT GUEST_BOOKED_INCORRECT_DATE GUEST_SICK OVERBOOKING EMERGENCY FLIGHT_CANCELLED DEATH_IN_FAMILY OTHER EXPIRED_UNCAPTURED_CHARGE AVAILABILITY_CHECK_FAILED
status
required

Current status of this refund.

string
""
Allowed values: PENDING SUCCEEDED CANCELED REQUIRES_ACTION FAILED
requestor
required

Who requested the refund.

string
""
Allowed values: BY_SUPPLIER BY_ADMIN BY_STRIPE BY_SYSTEM BY_AGENT BY_GUEST
createdDate
required

When the refund was created.

string format: date-time
""
processedDate

When the refund was processed by Stripe.

string format: date-time
""
receiptUrl

Stripe receipt URL for the refund.

string format: uri
""
stripeRefundFee

Stripe refund processing fee in internal (capture) currency, captured asynchronously via webhook from balance_transaction.fee.

number
""
cancelOnRefund

Whether the booking should be cancelled when this refund is approved. Applied at admin-approval time, not at request time.

string
""
Allowed values: NONE CANCEL_ON_SUCCESSFUL_REFUND CANCEL_REGARDLESS
response

Wink admin’s response to the refund request. Kept separate from description so the admin’s reply never overwrites the requester’s (traveler/hotel) original text.

string
""
reportingDailyRateList

Per-day reporting rate breakdown, pre-computed from the raw entity’s derived getReportingDailyRateList().

Array<object>
""

Reporting data for a single night of a booking stay, including base, gross, and net amounts for accounting purposes.

object
date

The rate date.

string format: date
""
baseAmount

The rate given to us by channel manager / CRS / PMS.

number
""
grossAmount

The derived amount based on promotions, member discounts etc within our platform.

number
""
netAmount

The gross amount minus fees and commissions.

number
""
netAmountWithRefund

The net amount minus potential refund. Null if booking contains no refund.

number
""
currency

The currency for these amounts.

string
""
netTotalSalesSourceAmount

Net total sales amount in source currency, summed across SALE-type beneficiaries; null when not resolvable.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
netSourceAmount

Net amount in source currency from the financial breakdown; null when not resolvable.

number
""
netTotalFeesAndCommissionsSourceAmount

Net total of platform/processing fees and commissions in source currency; null when not resolvable.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
hasAdditionalCharges

Whether this booking has rate-plan-level extra charges.

boolean
detailedAdditionalChargesSourceTotals

Human-readable summary of additional charges, pre-computed from the raw entity’s derived getter.

string
""
paymentVendorSpecific

Vendor-specific payment metadata (payment method type, wallet type, etc.).

object
key
additional properties
string
selectedRoomConfigurationChildAges

Explicit per-child ages captured on the user’s selected room configuration at booking time, when present (channel-manager-omnibees fallback data); empty when not present.

Array<integer>
""
groupIdentifier

UUID grouping multiple bookings made together in a single multi-room transaction.

string
""
emailHeaderLogoUrl

Full URL of the property logo, optimized for emails.

string
""
logoIdentifier

Cloudinary identifier for the property logo, for potential reuse.

string
""
hotelImageUrl

Absolute URL of the property’s featured image.

string
""
staticMapImageUrl

Google Maps static image URL for email display.

string
""
staticMapUrl

Google Maps interactive URL for click-through.

string
""
earlyCheckInCharge

Fixed fee for early check-in, if applicable.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
lateCheckOutCharge

Fixed fee for late checkout, if applicable.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
earlyCheckInChargePercent

Percentage of first night charged for early check-in (alternative to fixed fee).

number format: float
""
lateCheckOutChargePercent

Percentage of first night charged for late checkout (alternative to fixed fee).

number format: float
""
stripePaymentIntentId

Stripe PaymentIntent identifier for this booking’s payment, when paid via Stripe.

string
""
paymentType

How this booking was paid for (Stripe, agent, etc.).

string
""
Allowed values: STRIPE AGENT
originalFeesInPercent

Original platform fee percentage at booking time.

number
""
originalCommissionsInPercent

Original commission percentage at booking time.

number
""
originalSupplierAgencyFeesInPercent

Original supplier agency fee percentage at booking time.

number
""
totalFeesAndCommissionsInPercent

Total fees and commissions percentage.

number
""
totalFeesAndCommissionsInPercentWithRefund

Total fees and commissions percentage, adjusted for any refund.

number
""
totalCommissionsInPercentWithRefund

Total commissions percentage, adjusted for any refund.

number
""
totalPaymentProcessingFeeInPercent

Total payment-processing fee percentage.

number
""
totalPaymentProcessingFeeInPercentWithRefund

Total payment-processing fee percentage, adjusted for any refund.

number
""
totalPlatformFeeInPercentWithRefund

Total platform fee percentage, adjusted for any refund.

number
""
financialBreakdown

Full financial breakdown (beneficiaries, per-type amounts, currencies).

object
sourceCurrency
string
internalCurrency
string
displayCurrency
string
displayPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
internalPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
beneficiaryList
Array<object>

A beneficiary is a registered account entitled to a portion of booking funds. Funds are allocated by type (SALE, COMMISSION, PLATFORM_FEE, etc.) and tracked across source, display, and internal (platform) currencies. Refund modifiers record adjustments from cancellations.

object
accountIdentifier
required

Unique identifier of the beneficiary’s account in the TripPay system

string
"" >= 1 characters
accountName
required

Display name of the beneficiary account (e.g. hotel, affiliate, or platform name)

string
"" >= 1 characters
accountEmail
required

Contact email address for the beneficiary account

string format: email
"" >= 1 characters
accountUrl

Profile or dashboard URL for the beneficiary account

string
""
type
required

Category of the beneficiary: SALE (property), COMMISSION (affiliate), PLATFORM_FEE (Wink), TRIP_PAY (platform internal), or agency fees

string
""
Allowed values: TRIP_PAY PLATFORM_FEE COMMISSION AFFILIATE_AGENCY_FEE SUPPLIER_AGENCY_FEE SALE
amountDue

Charge rule: either a fixed percentage of the total stay or the remainder after other beneficiaries are deducted

object
type
required

PERCENTAGE: apply the percent field to the total booking price. REMAINDER: this beneficiary receives whatever is left after other beneficiaries are satisfied (typically used for the hotel).

string
""
Allowed values: PERCENTAGE REMAINDER
percent

The percentage value (0.0–1.0) to apply to the total booking amount when type=PERCENTAGE. For example, 0.050 = 5% of the booking price. Ignored when type=REMAINDER.

number
""
sourceCurrency
required

ISO 4217 currency code for the originating source (supplier’s local currency, e.g. hotel in Thailand uses THB)

string
"" >= 1 characters
displayCurrency
required

ISO 4217 currency code for display to the user (e.g. booking shown in USD)

string
"" >= 1 characters
internalCurrency
required

ISO 4217 currency code for internal platform ledger (always USD)

string
"" >= 1 characters
sourceAmount
required

Gross amount owed to this beneficiary in source currency (before refunds)

number
""
displayAmount
required

Gross amount owed to this beneficiary in display currency (before refunds)

number
""
internalAmount
required

Gross amount owed to this beneficiary in internal currency (before refunds)

number
""
sourceAmountRefundModifier
required

Cumulative refund reduction applied to sourceAmount (sum of all applied PendingRefunds)

number
""
displayAmountRefundModifier
required

Cumulative refund reduction applied to displayAmount (sum of all applied PendingRefunds)

number
""
internalAmountRefundModifier
required

Cumulative refund reduction applied to internalAmount (sum of all applied PendingRefunds)

number
""
pendingRefunds
Array<object>

Pending refunds awaiting settlement. Once a refund transitions from PENDING to APPLIED, it moves out of this list and into the corresponding *AmountRefundModifier property

object
refundIdentifier
required

Unique identifier linking this pending refund to the parent booking’s refund record

string
"" >= 1 characters
sourceAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s sourceAmount when applied

number
""
displayAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s displayAmount when applied

number
""
internalAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s internalAmount when applied

number
""
netSourceAmount
required

Net amount owed in source currency (sourceAmount - sourceAmountRefundModifier)

number
""
netDisplayAmount
required

Net amount owed in display currency (displayAmount - displayAmountRefundModifier)

number
""
netInternalAmount
required

Net amount owed in internal currency (internalAmount - internalAmountRefundModifier)

number
""
reconciled

Flag indicating whether net amounts have been transferred (disbursed) from TripPay to the beneficiary

boolean
metadata

Additional key-value metadata for the beneficiary (e.g. bank details, supplier identifiers)

object
key
additional properties
string
sourceAmount
number
internalAmount
number
displayAmount
number
sourceAmountRefundModifier
number
internalAmountRefundModifier
number
displayAmountRefundModifier
number
netSourceAmount
number
netInternalAmount
number
netDisplayAmount
number
commissionableTotalSourceAmount
number
commissionableTotalInternalAmount
number
commissionableTotalDisplayAmount
number
netCommissionableTotalSourceAmount
number
netCommissionableTotalInternalAmount
number
netCommissionableTotalDisplayAmount
number
totalFeesAndCommissionsSourceAmount
number
totalFeesAndCommissionsInternalAmount
number
totalFeesAndCommissionsDisplayAmount
number
netTotalFeesAndCommissionsSourceAmount
number
netTotalFeesAndCommissionsInternalAmount
number
netTotalFeesAndCommissionsDisplayAmount
number
totalFeesSourceAmount
number
totalFeesInternalAmount
number
totalFeesDisplayAmount
number
netTotalFeesSourceAmount
number
netTotalFeesInternalAmount
number
netTotalFeesDisplayAmount
number
totalPlatformFeeSourceAmount
number
totalPlatformFeeInternalAmount
number
totalPlatformFeeDisplayAmount
number
netTotalPlatformFeeSourceAmount
number
netTotalPlatformFeeInternalAmount
number
netTotalPlatformFeeDisplayAmount
number
totalPaymentProcessingFeeSourceAmount
number
totalPaymentProcessingFeeInternalAmount
number
totalPaymentProcessingFeeDisplayAmount
number
netTotalPaymentProcessingFeeSourceAmount
number
netTotalPaymentProcessingFeeInternalAmount
number
netTotalPaymentProcessingFeeDisplayAmount
number
totalSalesSourceAmount
number
totalSalesInternalAmount
number
totalSalesDisplayAmount
number
netTotalSalesSourceAmount
number
netTotalSalesInternalAmount
number
netTotalSalesDisplayAmount
number
totalAffiliateAgencyFeesSourceAmount
number
totalAffiliateAgencyFeesInternalAmount
number
totalAffiliateAgencyFeesDisplayAmount
number
netTotalAffiliateAgencyFeesSourceAmount
number
netTotalAffiliateAgencyFeesInternalAmount
number
netTotalAffiliateAgencyFeesDisplayAmount
number
totalSupplierAgencyFeesSourceAmount
number
totalSupplierAgencyFeesInternalAmount
number
totalSupplierAgencyFeesDisplayAmount
number
netTotalSupplierAgencyFeesSourceAmount
number
netTotalSupplierAgencyFeesInternalAmount
number
netTotalSupplierAgencyFeesDisplayAmount
number
netTotalCustomersSourceAmount
number
netTotalCustomersInternalAmount
number
netTotalCustomersDisplayAmount
number
metadata
object
key
additional properties
paymentDetails

Payment vendor/transaction metadata (transaction identifier, self-acquiring/self-disbursing flags, vendor-specific data).

object
vendor
required

Name of acquiring vendor

string
""
Allowed values: STRIPE AGENT REVOLUT TEST
sessionIdentifier
required

Unique session id from the vendor.

string
"" >= 1 characters
transactionIdentifier
required

Unique transaction id from the vendor.

string
"" >= 1 characters
customerIdentifier
required

Unique customer id from the vendor.

string
"" >= 1 characters
chargeIdentifier

Unique charge id from the vendor.

string
""
agentInvoicedDate

The date/time the invoice was generated

string format: date-time
""
agentInvoiceIdentifier

The specific invoice this booking was registered on

string
""
fees
Array<object>

Fees associated with this booking.

object
identifier
required

Unique system ID.

string
"" >= 1 characters
fee
required

Fee amount

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
type
required

Type of fee

string
""
Allowed values: ACQUIRING FX TAX
description
required

Withdrawal fee description

string
"" >= 1 characters
vendorSpecific
required

Vendor specific values that are returned in a successful response

object
key
additional properties
string
selfAcquires

Whether the booking’s travel agent acquires (collects) the guest payment themselves, outside Wink/TripPay. Snapshot of the agent’s setting at booking time.

boolean
selfDisburses

Whether the booking’s travel agent disburses funds to the supplier themselves, outside Wink/TripPay. Snapshot of the agent’s setting at booking time. When self-acquires AND self-disburses are both true, the SALE and COMMISSION amounts never touch Wink’s ledger and are not withdrawable.

boolean
userSession

Device/location/referrer/itinerary snapshot captured at booking time.

object
itinerary
required

Dates and travel info.

object
startDate
required

Start date of itinerary

string format: date
""
endDate

Optional end date. If endDate is empty, nights needs to be present. If both are present, nights will take precedence.

string format: date
""
nights

Optional number of nights. If nights is empty, endDate needs to be present. If both are present, nights will take precedence.

integer format: int32
""
items

Room configurations

Array<object>

Room Configuration

object
adults
required

Number of adults

integer format: int32
default: 1
children

Children configurations

Array<object>

Child configuration

object
quantity

Number of children

integer format: int32
""
age

Age of children

integer format: int32
""
hours

Number of hours between start and end dates. Used for itineraries that require bookings that occur within hours and not days. E.g. Meeting room reservation.

integer format: int64
""
children

How many total children for this stay

integer format: int32
""
rooms

How many total rooms for this stay

integer format: int32
""
guests

How many total guests for this stay

integer format: int32
""
language

User’s language preference

string
"" /^[a-z]{2}(-[A-Z]{2})?$/
currency

User’s currency preference

string
"" /^[A-Z]{3}$/
promotionalCodes
Array<string>
selectedRoomConfigurationIndex

User can pass the current room configuration index to retrieve rates specifically for that room configuration.

integer format: int32
""
lifestyle

The preferred user lifestyle.

string
""
Allowed values: LIFESTYLE_HEALTH_FITNESS LIFESTYLE_RELAX LIFESTYLE_ADULT_ONLY LIFESTYLE_ADVENTURE LIFESTYLE_BUSINESS LIFESTYLE_LGBT LIFESTYLE_SINGLE_PARENT LIFESTYLE_SOLO_FEMALE LIFESTYLE_BEAUTY LIFESTYLE_FOODIE LIFESTYLE_FAMILY LIFESTYLE_ROMANCE LIFESTYLE_COUPLE LIFESTYLE_SOLO LIFESTYLE_BACKPACKER LIFESTYLE_SHOPPING LIFESTYLE_SPORTS LIFESTYLE_MOUNTAIN LIFESTYLE_BEACH LIFESTYLE_CITY LIFESTYLE_COUNTRY LIFESTYLE_CULTURE LIFESTYLE_ECO
reportingAncillaryList

Per-ancillary reporting accounting details, pre-computed from the raw entity’s derived getReportingAncillaryList().

Array<object>
""

Reporting data for a single ancillary booking, including gross and net amounts in the property’s source currency.

object
name

Full name of ancillary in English.

string
""
grossAmount

The gross amount.

number
""
netAmount

The gross amount minus fees and commissions.

number
""
netAmountWithRefund

The gross amount minus fees and commissions.

number
""
currency

The currency for these amounts.

string
"" /^[A-Z]{3}$/
review

The guest’s review of the stay, present only after the guest has submitted one.

object
id

Unique identifier for this record.

string format: uuid
""
version

Optimistic-locking version. Echo this value back as an If-Match request header on a conditional update; the server responds 409 if the record changed in the meantime. Null when this projection has no backing versioned document, in which case no conditional update is possible.

integer | null format: int64
""
bookingIdentifier

Booking identifier this review is associated with.

string format: uuid
""
hotelIdentifier

Property (hotel) identifier this review is for.

string format: uuid
""
user

Guest who submitted the review.

object
userIdentifier

User identifier

string format: uuid
""
firstName

Guest’s first name.

string
""
lastName

Guest’s last name.

string
""
email

Guest’s email address.

string format: email
""
telephone

Guest’s phone number.

string
"" /^\+?[1-9]\d{1,14}$/
fullName

Guest’s full name.

string
""
reviewDate

Date and time the review was submitted.

string format: date-time
""
averageScore

Average rating across all question answers (0-10 scale).

number format: double
""
answers

Guest’s answers to each review question with their scores.

Array<object>

A guest’s recorded answer to a single review question, including the score and question metadata.

object
questionIdentifier
required

Review question identifier that this answer responds to.

string format: uuid
"" >= 1 characters
category
required

Category of the question (e.g., COMFORT, SERVICE, VALUE).

string
""
Allowed values: COMFORT CONDITION SERVICE ENVIRONMENT FACILITIES LOCATION LIFESTYLE VALUE FOOD ROOM
sort
required

Display order of this answer within the review.

integer format: int32
""
value
required

Guest’s numeric rating for this question on a 0-10 scale.

integer format: int32
""
messageFromGuest

Private feedback message from guest to hotel manager. Not publicly displayed.

string
""
responseFromHotel

Hotel’s public response to the guest review.

string
""
imageIdentifier

Cloudinary image identifier for guest’s photo from their stay.

string
""
text

Guest’s written review text.

string
""
approvedText

Hotel has approved this review text for public display on their profile.

boolean
approvedImage

Hotel has approved the guest’s photo for public display on their profile.

boolean
likes

User identifiers who ‘liked’ this review.

Array<string>
roomNumber

Guest’s room number during their stay.

string
""
roomRating

Guest’s personal rating of their room on a 0-10 scale.

integer format: int32
""
responded

Hotel has submitted a response to this review.

boolean
createdDate

Datetime this record was first created

string | null format: date-time
""
lastUpdate

Datetime this record was last updated

string | null format: date-time
""
serverUrl

The URL the booking occurred on.

string
""
socials

List of all social network accounts the property has for the traveler to get in touch.

Array<object>
""

Social network

object
type

Type of social network.

string
""
Allowed values: FACEBOOK INSTAGRAM SKYPE TRIP_ADVISOR TWITTER GOOGLE_PLUS WHATSAPP LINE WECHAT VIBER SNAPCHAT WEIBO RENREN WEBSITE QQ TIKTOK
location

URL or social network identifier to social network profile

string
""
metadata

Place to store related data.

object
key
additional properties
payoutList
Array<object>

List of payouts disbursed to beneficiaries.

object
identifier
required

Unique payout identifier.

string format: uuid
"" >= 1 characters
accountIdentifier
required

Account identifier of the beneficiary receiving funds.

string format: uuid
"" >= 1 characters
accountName
required

Account name of the beneficiary.

string
"" >= 1 characters
beneficiaryType
required

Beneficiary type (SALE, COMMISSION, TRIP_PAY, etc.).

string
"" >= 1 characters
sourceAmount
required

Payout amount in source currency.

number
""
internalAmount
required

Payout amount in internal (USD) currency.

number
""
displayAmount
required

Payout amount in display currency.

number
""
status
required

Payout status (PENDING, COMPLETED, FAILED).

string
"" >= 1 characters
processedDate

When the payout was processed.

string format: date-time
""
withdrawalId

External withdrawal/transfer ID from payment processor.

string
""
statusHistory
Array<object>

Audit trail of status transitions.

object
fromStatus
required

Status before the transition.

string
""
Allowed values: INITIALIZED TEST_PAYMENT_SUCCEEDED PAYMENT_SUCCEEDED PAYMENT_FAILED FAILED CANCELLED PARTIALLY_REFUNDED FULLY_REFUNDED
toStatus
required

Status after the transition.

string
""
Allowed values: INITIALIZED TEST_PAYMENT_SUCCEEDED PAYMENT_SUCCEEDED PAYMENT_FAILED FAILED CANCELLED PARTIALLY_REFUNDED FULLY_REFUNDED
timestamp
required

When the transition occurred.

string format: date-time
""
actor

Who or what triggered the transition.

string
""
reason

Human-readable reason for the transition.

string
""
originalAffiliateAgencyFeesInPercent

Original affiliate agency fee percentage at booking time.

number
""
totalFeesInPercent

Total platform + payment-processing fee percentage.

number
""
totalFeesInPercentWithRefund

Total platform + payment-processing fee percentage, adjusted for any refund.

number
""
totalPlatformFeeInPercent

Platform (Wink) fee percentage only, as a fraction of gross.

number
""
totalCommissionsInPercent

Total commissions percentage.

number
""
totalTokensEarned

Total loyalty tokens earned for this booking.

integer format: int64
""
fundsAvailableDate

Date the booking’s funds become available to the supplier.

string format: date
""
fundsProcessed

Whether all funds have been processed for this booking.

boolean
fundsAddedToLedger

Whether funds have been recorded in the supplier’s ledger.

boolean
reportingExtraChargeList
Array<object>

Displays extra charge accounting details, pre-computed from the raw entity’s derived getReportingExtraChargeList().

object
name

Name of the extra charge.

string
""
description

Description of the extra charge.

string
""
grossAmount

Gross amount of the extra charge.

number
""
netAmount

Net amount after fees and commissions.

number
""
netAmountWithRefund

Net amount minus any refund. Null if no refund applies.

number
""
currency

Currency code for these amounts.

string
"" /^[A-Z]{3}$/
cancelled
boolean
agentPayment
boolean
guestUser

Guest user associated with a booking, optionally linked to a Wink platform profile

object
userIdentifier

User identifier

string format: uuid
""
firstName
required

First name

string
"" >= 1 characters
lastName
required

Last name

string
"" >= 1 characters
email
required

Email

string format: email
"" >= 1 characters
telephone

Telephone

string
"" /^\+?[1-9]\d{1,14}$/
profile

Optional profile record

object
id

Unique identifier for this record.

string format: uuid
""
createdDate

Datetime this record was first created

string | null format: date-time
""
lastUpdate

Datetime this record was last updated

string | null format: date-time
""
version

Optimistic-locking version. Echo this value back as an If-Match request header on a conditional update; the server responds 409 if the record changed in the meantime. Null when this projection has no backing versioned document, in which case no conditional update is possible.

integer | null format: int64
""
profileIdentifier
required

Profile identifier

string format: uuid
"" >= 1 characters
userIdentifier
required

User identifier

string format: uuid
"" >= 1 characters
share
required

Indicates whether the user wants to share this profile of themselves with hotel(s)

boolean
user
required

User details

object
firstName

User first name

string
""
lastName

User last name

string
""
email

User email address

string format: email
""
phone

User phone number

string
"" /^\+?[1-9]\d{1,14}$/
profilePictureUrl

Profile picture URL

string format: uri
""
fullName

Full name

string
""
personal
required

Detailed customer information for this profile

object
gender

Identifies the gender of the customer.

string
""
Allowed values: MALE FEMALE OTHER
birthDate

Date of birth in ISO 8601 format

string format: date
""
maritalStatus

Marital status of the traveler

string
""
Allowed values: ANNULLED COHABITATING DIVORCED ENGAGED MARRIED SEPARATED SINGLE WIDOWED UNKNOWN
childQuantity

Number of children

integer format: int32
""
citizenship

Country of citizenship

string
""
address1

Primary address line

string
""
address2

Secondary address line

string
""
city

City name

string
""
state

State or province

string
""
postalCode

Postal code

string
""
country

Country code (ISO 3166-1 alpha-2)

string
"" /^[A-Z]{2}$/
preferredCurrency

Preferred currency for monetary values (ISO 4217 code)

string
"" /^[A-Z]{3}$/
language

Primary language (ISO 639-1 code)

string
"" /^[a-z]{2}(-[A-Z]{2})?$/
contactPerson
Array<object>

Array of emergency contact information for the customer

object
firstName

Contact first name

string
""
lastName

Contact last name

string
""
email

Contact E-mail

string format: email
""
secondaryEmail

Contact secondary Email

string format: email
""
phoneNumber

Contact phone number

string
"" /^\+?[1-9]\d{1,14}$/
fullName

First and last name

string
""
summary

Summary

string
""
physChallName
Array<string>
petInfo
Array<object>

Array of customer’s pets

object
name
required

Pet name

string
"" >= 1 characters
type
required

Pet type

string
"" >= 1 characters
preferences
required

Customer preferences

object
propertyLocationPref

Preferred hotel property locations

string
""
propertyTypePref

Preferred hotel property types

string
""
hotelChainPref

Preferred hotel chain name

string
""
propertyAmenityPref

Preferred hotel property amenities

Array<string>
recreationSrvcPref

Preferred recreation services

Array<string>
businessSrvcPref

Preferred business services

Array<string>
securityFeaturePref

Preferred security features

Array<string>
physChalFeaturePref

Preferred accessibility features

Array<string>
""
smokingAllowed

Preference for smoking allowed rooms

boolean
roomLocationPref

Preferred hotel room locations

string
""
bedTypePref

Preferred hotel bed type

string
""
foodSrvcPref

Preferred food service facilities

string
""
roomAmenityPref

Preferred hotel room amenities

Array<string>
guestType

Guest type classification

string
""
mealPref

Meal preference

string
""
cuisinePref

Cuisine preference

string
""
interestPref

Interest preferences

Array<string>
beveragePref

Beverage preferences

Array<string>
foodPref

Food preferences

Array<string>
allergies

Known allergies

Array<string>
petsPref

Pet-friendly preferences

Array<string>
fullName

Full name

string
""
ancillaryList
Array<object>
object
identifier
required

Ancillary identifier

string format: uuid
"" >= 1 characters
hotelIdentifier
required

Hotel identifier

string format: uuid
"" >= 1 characters
typeIdentifier
required

Travel inventory identifier

string format: uuid
"" >= 1 characters
transactionalTravelInventoryIdentifier
required

Travel inventory identifier

string format: uuid
"" >= 1 characters
name
required

Name of inventory

string
"" >= 1 characters
pricingType
required

Pricing type

string
""
Allowed values: PER_STAY PER_DAY PER_NIGHT PER_USE PER_HOUR PER_PERSON PER_PERSON_PER_NIGHT PER_PERSON_PER_HOUR PER_ADULT PER_ADULT_PER_NIGHT PER_ADULT_PER_HOUR PER_CHILD PER_CHILD_PER_NIGHT PER_CHILD_PER_HOUR
type
required

Inventory type

string
""
Allowed values: ROOM_TYPE_ANCILLARY ADD_ON MEETING_ROOM SPA RESTAURANT ACTIVITY ATTRACTION PLACE
price
required

Pricing information for this ancillary.

object
sourceToUserCurrencyQuote
required

Hotel to user currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
sourceToInternalCurrencyQuote
required

Hotel to wink currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
userSpecifiedCurrencyBaseTotal
required

Base total in user specified currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
sourceBaseTotal
required

Base total in hotel currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalBaseTotal
required

Base total in wink currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyPromotionalModifier

Promotional modifiers in user specified currency

number
""
sourcePromotionalModifier

Promotional modifiers in hotel currency

number
""
internalPromotionalModifier

Promotional modifiers in wink currency

number
""
userSpecifiedCurrencyPremiumModifier

Premium modifiers in user specified currency

number
""
sourcePremiumModifier

Premium modifiers in hotel currency

number
""
internalPremiumModifier

Premium modifiers in wink currency

number
""
userSpecifiedCurrencyChannelModifier

Channel / Membership modifier in user specified currency

number
""
sourceChannelModifier

Channel / Membership modifier in hotel currency

number
""
internalChannelModifier

Channel / Membership modifier in wink currency

number
""
quantity

How many of this item is included in this price

integer format: int64
default: 1
promotionalDiscountPercent

Promotional discount percent

number
""
channelDiscountPercent

Channel discount percent

number
""
premiumPercent

Premium percent

number
""
hasChannelDiscount
boolean
hasPremium
boolean
hasPromotion
boolean
sourceTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
totalDiscountPercent
number
startDate

Date start time when reservation was made for. Optional — null for ancillaries with no specific schedule (e.g. PER_STAY/PER_USE items).

string format: date-time
""
endDate

Date end time when reservation was made for. Optional — null for ancillaries with no specific schedule (e.g. PER_STAY/PER_USE items).

string format: date-time
""
attendees
required

Number of guests that are part of this reservation.

integer format: int32
default: 1
imageIdentifier
required

Cloudinary image identifier

string
"" >= 1 characters
imageUrl
required

Absolute URL to image of inventory

string
"" >= 1 characters
localizedName
required

Name of travel inventory in traveler language (if available). Defaults to English.

string
"" >= 1 characters
localizedDescription
required

Description of travel inventory in traveler language (if available). Defaults to English.

string
"" >= 1 characters
contact
required

Travel blocking contact (if applicable)

object
firstName

Contact first name

string
""
lastName

Contact last name

string
""
email

Contact E-mail

string format: email
""
secondaryEmail

Contact secondary Email

string format: email
""
phoneNumber

Contact phone number

string
"" /^\+?[1-9]\d{1,14}$/
fullName

First and last name

string
""
summary

Summary

string
""
address
required

Travel blocking address (if applicable)

object
address1

Address line 1

string
""
address2

Address line 2

string
""
state

State

string
""
postalCode

Postal / zip code

string
""
county

County

string
""
city

City name

string
""
countryCode

Country

string
"" /^[A-Z]{2}$/
country

Country

string
""
fullAddress

Address 1, Address 2, City, State, Postal / Zip code, Country

string
""
commissionable
required
boolean
mandatory
required
boolean
commission
required
number format: float
financialBreakdown
object
sourceCurrency
string
internalCurrency
string
displayCurrency
string
displayPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
internalPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
beneficiaryList
Array<object>

A beneficiary is a registered account entitled to a portion of booking funds. Funds are allocated by type (SALE, COMMISSION, PLATFORM_FEE, etc.) and tracked across source, display, and internal (platform) currencies. Refund modifiers record adjustments from cancellations.

object
accountIdentifier
required

Unique identifier of the beneficiary’s account in the TripPay system

string
"" >= 1 characters
accountName
required

Display name of the beneficiary account (e.g. hotel, affiliate, or platform name)

string
"" >= 1 characters
accountEmail
required

Contact email address for the beneficiary account

string format: email
"" >= 1 characters
accountUrl

Profile or dashboard URL for the beneficiary account

string
""
type
required

Category of the beneficiary: SALE (property), COMMISSION (affiliate), PLATFORM_FEE (Wink), TRIP_PAY (platform internal), or agency fees

string
""
Allowed values: TRIP_PAY PLATFORM_FEE COMMISSION AFFILIATE_AGENCY_FEE SUPPLIER_AGENCY_FEE SALE
amountDue

Charge rule: either a fixed percentage of the total stay or the remainder after other beneficiaries are deducted

object
type
required

PERCENTAGE: apply the percent field to the total booking price. REMAINDER: this beneficiary receives whatever is left after other beneficiaries are satisfied (typically used for the hotel).

string
""
Allowed values: PERCENTAGE REMAINDER
percent

The percentage value (0.0–1.0) to apply to the total booking amount when type=PERCENTAGE. For example, 0.050 = 5% of the booking price. Ignored when type=REMAINDER.

number
""
sourceCurrency
required

ISO 4217 currency code for the originating source (supplier’s local currency, e.g. hotel in Thailand uses THB)

string
"" >= 1 characters
displayCurrency
required

ISO 4217 currency code for display to the user (e.g. booking shown in USD)

string
"" >= 1 characters
internalCurrency
required

ISO 4217 currency code for internal platform ledger (always USD)

string
"" >= 1 characters
sourceAmount
required

Gross amount owed to this beneficiary in source currency (before refunds)

number
""
displayAmount
required

Gross amount owed to this beneficiary in display currency (before refunds)

number
""
internalAmount
required

Gross amount owed to this beneficiary in internal currency (before refunds)

number
""
sourceAmountRefundModifier
required

Cumulative refund reduction applied to sourceAmount (sum of all applied PendingRefunds)

number
""
displayAmountRefundModifier
required

Cumulative refund reduction applied to displayAmount (sum of all applied PendingRefunds)

number
""
internalAmountRefundModifier
required

Cumulative refund reduction applied to internalAmount (sum of all applied PendingRefunds)

number
""
pendingRefunds
Array<object>

Pending refunds awaiting settlement. Once a refund transitions from PENDING to APPLIED, it moves out of this list and into the corresponding *AmountRefundModifier property

object
refundIdentifier
required

Unique identifier linking this pending refund to the parent booking’s refund record

string
"" >= 1 characters
sourceAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s sourceAmount when applied

number
""
displayAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s displayAmount when applied

number
""
internalAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s internalAmount when applied

number
""
netSourceAmount
required

Net amount owed in source currency (sourceAmount - sourceAmountRefundModifier)

number
""
netDisplayAmount
required

Net amount owed in display currency (displayAmount - displayAmountRefundModifier)

number
""
netInternalAmount
required

Net amount owed in internal currency (internalAmount - internalAmountRefundModifier)

number
""
reconciled

Flag indicating whether net amounts have been transferred (disbursed) from TripPay to the beneficiary

boolean
metadata

Additional key-value metadata for the beneficiary (e.g. bank details, supplier identifiers)

object
key
additional properties
string
sourceAmount
number
internalAmount
number
displayAmount
number
sourceAmountRefundModifier
number
internalAmountRefundModifier
number
displayAmountRefundModifier
number
netSourceAmount
number
netInternalAmount
number
netDisplayAmount
number
commissionableTotalSourceAmount
number
commissionableTotalInternalAmount
number
commissionableTotalDisplayAmount
number
netCommissionableTotalSourceAmount
number
netCommissionableTotalInternalAmount
number
netCommissionableTotalDisplayAmount
number
totalFeesAndCommissionsSourceAmount
number
totalFeesAndCommissionsInternalAmount
number
totalFeesAndCommissionsDisplayAmount
number
netTotalFeesAndCommissionsSourceAmount
number
netTotalFeesAndCommissionsInternalAmount
number
netTotalFeesAndCommissionsDisplayAmount
number
totalFeesSourceAmount
number
totalFeesInternalAmount
number
totalFeesDisplayAmount
number
netTotalFeesSourceAmount
number
netTotalFeesInternalAmount
number
netTotalFeesDisplayAmount
number
totalPlatformFeeSourceAmount
number
totalPlatformFeeInternalAmount
number
totalPlatformFeeDisplayAmount
number
netTotalPlatformFeeSourceAmount
number
netTotalPlatformFeeInternalAmount
number
netTotalPlatformFeeDisplayAmount
number
totalPaymentProcessingFeeSourceAmount
number
totalPaymentProcessingFeeInternalAmount
number
totalPaymentProcessingFeeDisplayAmount
number
netTotalPaymentProcessingFeeSourceAmount
number
netTotalPaymentProcessingFeeInternalAmount
number
netTotalPaymentProcessingFeeDisplayAmount
number
totalSalesSourceAmount
number
totalSalesInternalAmount
number
totalSalesDisplayAmount
number
netTotalSalesSourceAmount
number
netTotalSalesInternalAmount
number
netTotalSalesDisplayAmount
number
totalAffiliateAgencyFeesSourceAmount
number
totalAffiliateAgencyFeesInternalAmount
number
totalAffiliateAgencyFeesDisplayAmount
number
netTotalAffiliateAgencyFeesSourceAmount
number
netTotalAffiliateAgencyFeesInternalAmount
number
netTotalAffiliateAgencyFeesDisplayAmount
number
totalSupplierAgencyFeesSourceAmount
number
totalSupplierAgencyFeesInternalAmount
number
totalSupplierAgencyFeesDisplayAmount
number
netTotalSupplierAgencyFeesSourceAmount
number
netTotalSupplierAgencyFeesInternalAmount
number
netTotalSupplierAgencyFeesDisplayAmount
number
netTotalCustomersSourceAmount
number
netTotalCustomersInternalAmount
number
netTotalCustomersDisplayAmount
number
metadata
object
key
additional properties
roomImageUrl
string
netDisplayAmount
number
netTotalSalesSourceAmountOrZero

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
netSourceAmountOrZero
number
hasRefunds
boolean
paymentVendor

Third-party vendor integrated with the Wink platform for payment acquiring or disbursement

string
Allowed values: STRIPE AGENT REVOLUT TEST
bookingContractIdentifier
string
grossSourceAmount
number
totalSalesSourceAmount

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
totalPlatformFeeSourceAmount

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
totalPaymentProcessingFeeSourceAmount

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
commissionableSourceAmount

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
totalAffiliateAgencyFeesSourceAmount

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
totalSupplierAgencyFeesSourceAmount

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
cancelReason
string
cancelledOn
string format: date-time
paymentTransactionIdentifier
string
beneficiaryList
Array<object>

A beneficiary is a registered account entitled to a portion of booking funds. Funds are allocated by type (SALE, COMMISSION, PLATFORM_FEE, etc.) and tracked across source, display, and internal (platform) currencies. Refund modifiers record adjustments from cancellations.

object
accountIdentifier
required

Unique identifier of the beneficiary’s account in the TripPay system

string
"" >= 1 characters
accountName
required

Display name of the beneficiary account (e.g. hotel, affiliate, or platform name)

string
"" >= 1 characters
accountEmail
required

Contact email address for the beneficiary account

string format: email
"" >= 1 characters
accountUrl

Profile or dashboard URL for the beneficiary account

string
""
type
required

Category of the beneficiary: SALE (property), COMMISSION (affiliate), PLATFORM_FEE (Wink), TRIP_PAY (platform internal), or agency fees

string
""
Allowed values: TRIP_PAY PLATFORM_FEE COMMISSION AFFILIATE_AGENCY_FEE SUPPLIER_AGENCY_FEE SALE
amountDue

Charge rule: either a fixed percentage of the total stay or the remainder after other beneficiaries are deducted

object
type
required

PERCENTAGE: apply the percent field to the total booking price. REMAINDER: this beneficiary receives whatever is left after other beneficiaries are satisfied (typically used for the hotel).

string
""
Allowed values: PERCENTAGE REMAINDER
percent

The percentage value (0.0–1.0) to apply to the total booking amount when type=PERCENTAGE. For example, 0.050 = 5% of the booking price. Ignored when type=REMAINDER.

number
""
sourceCurrency
required

ISO 4217 currency code for the originating source (supplier’s local currency, e.g. hotel in Thailand uses THB)

string
"" >= 1 characters
displayCurrency
required

ISO 4217 currency code for display to the user (e.g. booking shown in USD)

string
"" >= 1 characters
internalCurrency
required

ISO 4217 currency code for internal platform ledger (always USD)

string
"" >= 1 characters
sourceAmount
required

Gross amount owed to this beneficiary in source currency (before refunds)

number
""
displayAmount
required

Gross amount owed to this beneficiary in display currency (before refunds)

number
""
internalAmount
required

Gross amount owed to this beneficiary in internal currency (before refunds)

number
""
sourceAmountRefundModifier
required

Cumulative refund reduction applied to sourceAmount (sum of all applied PendingRefunds)

number
""
displayAmountRefundModifier
required

Cumulative refund reduction applied to displayAmount (sum of all applied PendingRefunds)

number
""
internalAmountRefundModifier
required

Cumulative refund reduction applied to internalAmount (sum of all applied PendingRefunds)

number
""
pendingRefunds
Array<object>

Pending refunds awaiting settlement. Once a refund transitions from PENDING to APPLIED, it moves out of this list and into the corresponding *AmountRefundModifier property

object
refundIdentifier
required

Unique identifier linking this pending refund to the parent booking’s refund record

string
"" >= 1 characters
sourceAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s sourceAmount when applied

number
""
displayAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s displayAmount when applied

number
""
internalAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s internalAmount when applied

number
""
netSourceAmount
required

Net amount owed in source currency (sourceAmount - sourceAmountRefundModifier)

number
""
netDisplayAmount
required

Net amount owed in display currency (displayAmount - displayAmountRefundModifier)

number
""
netInternalAmount
required

Net amount owed in internal currency (internalAmount - internalAmountRefundModifier)

number
""
reconciled

Flag indicating whether net amounts have been transferred (disbursed) from TripPay to the beneficiary

boolean
metadata

Additional key-value metadata for the beneficiary (e.g. bank details, supplier identifiers)

object
key
additional properties
string
cancellationType

Reason category for a booking cancellation

string
Allowed values: DUPLICATE CANCELLATION NO_SHOW CC_INVALID CC_INSUFFICIENT DISCRETIONARY
cancellable

Whether the booking can still be voluntarily cancelled (no later than the arrival day).

boolean
meetingRooms
Array<object>
object
identifier
required

Ancillary identifier

string format: uuid
"" >= 1 characters
hotelIdentifier
required

Hotel identifier

string format: uuid
"" >= 1 characters
typeIdentifier
required

Travel inventory identifier

string format: uuid
"" >= 1 characters
transactionalTravelInventoryIdentifier
required

Travel inventory identifier

string format: uuid
"" >= 1 characters
name
required

Name of inventory

string
"" >= 1 characters
pricingType
required

Pricing type

string
""
Allowed values: PER_STAY PER_DAY PER_NIGHT PER_USE PER_HOUR PER_PERSON PER_PERSON_PER_NIGHT PER_PERSON_PER_HOUR PER_ADULT PER_ADULT_PER_NIGHT PER_ADULT_PER_HOUR PER_CHILD PER_CHILD_PER_NIGHT PER_CHILD_PER_HOUR
type
required

Inventory type

string
""
Allowed values: ROOM_TYPE_ANCILLARY ADD_ON MEETING_ROOM SPA RESTAURANT ACTIVITY ATTRACTION PLACE
price
required

Pricing information for this ancillary.

object
sourceToUserCurrencyQuote
required

Hotel to user currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
sourceToInternalCurrencyQuote
required

Hotel to wink currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
userSpecifiedCurrencyBaseTotal
required

Base total in user specified currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
sourceBaseTotal
required

Base total in hotel currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalBaseTotal
required

Base total in wink currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyPromotionalModifier

Promotional modifiers in user specified currency

number
""
sourcePromotionalModifier

Promotional modifiers in hotel currency

number
""
internalPromotionalModifier

Promotional modifiers in wink currency

number
""
userSpecifiedCurrencyPremiumModifier

Premium modifiers in user specified currency

number
""
sourcePremiumModifier

Premium modifiers in hotel currency

number
""
internalPremiumModifier

Premium modifiers in wink currency

number
""
userSpecifiedCurrencyChannelModifier

Channel / Membership modifier in user specified currency

number
""
sourceChannelModifier

Channel / Membership modifier in hotel currency

number
""
internalChannelModifier

Channel / Membership modifier in wink currency

number
""
quantity

How many of this item is included in this price

integer format: int64
default: 1
promotionalDiscountPercent

Promotional discount percent

number
""
channelDiscountPercent

Channel discount percent

number
""
premiumPercent

Premium percent

number
""
hasChannelDiscount
boolean
hasPremium
boolean
hasPromotion
boolean
sourceTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
totalDiscountPercent
number
startDate

Date start time when reservation was made for. Optional — null for ancillaries with no specific schedule (e.g. PER_STAY/PER_USE items).

string format: date-time
""
endDate

Date end time when reservation was made for. Optional — null for ancillaries with no specific schedule (e.g. PER_STAY/PER_USE items).

string format: date-time
""
attendees
required

Number of guests that are part of this reservation.

integer format: int32
default: 1
imageIdentifier
required

Cloudinary image identifier

string
"" >= 1 characters
imageUrl
required

Absolute URL to image of inventory

string
"" >= 1 characters
localizedName
required

Name of travel inventory in traveler language (if available). Defaults to English.

string
"" >= 1 characters
localizedDescription
required

Description of travel inventory in traveler language (if available). Defaults to English.

string
"" >= 1 characters
contact
required

Travel blocking contact (if applicable)

object
firstName

Contact first name

string
""
lastName

Contact last name

string
""
email

Contact E-mail

string format: email
""
secondaryEmail

Contact secondary Email

string format: email
""
phoneNumber

Contact phone number

string
"" /^\+?[1-9]\d{1,14}$/
fullName

First and last name

string
""
summary

Summary

string
""
address
required

Travel blocking address (if applicable)

object
address1

Address line 1

string
""
address2

Address line 2

string
""
state

State

string
""
postalCode

Postal / zip code

string
""
county

County

string
""
city

City name

string
""
countryCode

Country

string
"" /^[A-Z]{2}$/
country

Country

string
""
fullAddress

Address 1, Address 2, City, State, Postal / Zip code, Country

string
""
commissionable
required
boolean
mandatory
required
boolean
commission
required
number format: float
financialBreakdown
object
sourceCurrency
string
internalCurrency
string
displayCurrency
string
displayPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
internalPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
beneficiaryList
Array<object>

A beneficiary is a registered account entitled to a portion of booking funds. Funds are allocated by type (SALE, COMMISSION, PLATFORM_FEE, etc.) and tracked across source, display, and internal (platform) currencies. Refund modifiers record adjustments from cancellations.

object
accountIdentifier
required

Unique identifier of the beneficiary’s account in the TripPay system

string
"" >= 1 characters
accountName
required

Display name of the beneficiary account (e.g. hotel, affiliate, or platform name)

string
"" >= 1 characters
accountEmail
required

Contact email address for the beneficiary account

string format: email
"" >= 1 characters
accountUrl

Profile or dashboard URL for the beneficiary account

string
""
type
required

Category of the beneficiary: SALE (property), COMMISSION (affiliate), PLATFORM_FEE (Wink), TRIP_PAY (platform internal), or agency fees

string
""
Allowed values: TRIP_PAY PLATFORM_FEE COMMISSION AFFILIATE_AGENCY_FEE SUPPLIER_AGENCY_FEE SALE
amountDue

Charge rule: either a fixed percentage of the total stay or the remainder after other beneficiaries are deducted

object
type
required

PERCENTAGE: apply the percent field to the total booking price. REMAINDER: this beneficiary receives whatever is left after other beneficiaries are satisfied (typically used for the hotel).

string
""
Allowed values: PERCENTAGE REMAINDER
percent

The percentage value (0.0–1.0) to apply to the total booking amount when type=PERCENTAGE. For example, 0.050 = 5% of the booking price. Ignored when type=REMAINDER.

number
""
sourceCurrency
required

ISO 4217 currency code for the originating source (supplier’s local currency, e.g. hotel in Thailand uses THB)

string
"" >= 1 characters
displayCurrency
required

ISO 4217 currency code for display to the user (e.g. booking shown in USD)

string
"" >= 1 characters
internalCurrency
required

ISO 4217 currency code for internal platform ledger (always USD)

string
"" >= 1 characters
sourceAmount
required

Gross amount owed to this beneficiary in source currency (before refunds)

number
""
displayAmount
required

Gross amount owed to this beneficiary in display currency (before refunds)

number
""
internalAmount
required

Gross amount owed to this beneficiary in internal currency (before refunds)

number
""
sourceAmountRefundModifier
required

Cumulative refund reduction applied to sourceAmount (sum of all applied PendingRefunds)

number
""
displayAmountRefundModifier
required

Cumulative refund reduction applied to displayAmount (sum of all applied PendingRefunds)

number
""
internalAmountRefundModifier
required

Cumulative refund reduction applied to internalAmount (sum of all applied PendingRefunds)

number
""
pendingRefunds
Array<object>

Pending refunds awaiting settlement. Once a refund transitions from PENDING to APPLIED, it moves out of this list and into the corresponding *AmountRefundModifier property

object
refundIdentifier
required

Unique identifier linking this pending refund to the parent booking’s refund record

string
"" >= 1 characters
sourceAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s sourceAmount when applied

number
""
displayAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s displayAmount when applied

number
""
internalAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s internalAmount when applied

number
""
netSourceAmount
required

Net amount owed in source currency (sourceAmount - sourceAmountRefundModifier)

number
""
netDisplayAmount
required

Net amount owed in display currency (displayAmount - displayAmountRefundModifier)

number
""
netInternalAmount
required

Net amount owed in internal currency (internalAmount - internalAmountRefundModifier)

number
""
reconciled

Flag indicating whether net amounts have been transferred (disbursed) from TripPay to the beneficiary

boolean
metadata

Additional key-value metadata for the beneficiary (e.g. bank details, supplier identifiers)

object
key
additional properties
string
sourceAmount
number
internalAmount
number
displayAmount
number
sourceAmountRefundModifier
number
internalAmountRefundModifier
number
displayAmountRefundModifier
number
netSourceAmount
number
netInternalAmount
number
netDisplayAmount
number
commissionableTotalSourceAmount
number
commissionableTotalInternalAmount
number
commissionableTotalDisplayAmount
number
netCommissionableTotalSourceAmount
number
netCommissionableTotalInternalAmount
number
netCommissionableTotalDisplayAmount
number
totalFeesAndCommissionsSourceAmount
number
totalFeesAndCommissionsInternalAmount
number
totalFeesAndCommissionsDisplayAmount
number
netTotalFeesAndCommissionsSourceAmount
number
netTotalFeesAndCommissionsInternalAmount
number
netTotalFeesAndCommissionsDisplayAmount
number
totalFeesSourceAmount
number
totalFeesInternalAmount
number
totalFeesDisplayAmount
number
netTotalFeesSourceAmount
number
netTotalFeesInternalAmount
number
netTotalFeesDisplayAmount
number
totalPlatformFeeSourceAmount
number
totalPlatformFeeInternalAmount
number
totalPlatformFeeDisplayAmount
number
netTotalPlatformFeeSourceAmount
number
netTotalPlatformFeeInternalAmount
number
netTotalPlatformFeeDisplayAmount
number
totalPaymentProcessingFeeSourceAmount
number
totalPaymentProcessingFeeInternalAmount
number
totalPaymentProcessingFeeDisplayAmount
number
netTotalPaymentProcessingFeeSourceAmount
number
netTotalPaymentProcessingFeeInternalAmount
number
netTotalPaymentProcessingFeeDisplayAmount
number
totalSalesSourceAmount
number
totalSalesInternalAmount
number
totalSalesDisplayAmount
number
netTotalSalesSourceAmount
number
netTotalSalesInternalAmount
number
netTotalSalesDisplayAmount
number
totalAffiliateAgencyFeesSourceAmount
number
totalAffiliateAgencyFeesInternalAmount
number
totalAffiliateAgencyFeesDisplayAmount
number
netTotalAffiliateAgencyFeesSourceAmount
number
netTotalAffiliateAgencyFeesInternalAmount
number
netTotalAffiliateAgencyFeesDisplayAmount
number
totalSupplierAgencyFeesSourceAmount
number
totalSupplierAgencyFeesInternalAmount
number
totalSupplierAgencyFeesDisplayAmount
number
netTotalSupplierAgencyFeesSourceAmount
number
netTotalSupplierAgencyFeesInternalAmount
number
netTotalSupplierAgencyFeesDisplayAmount
number
netTotalCustomersSourceAmount
number
netTotalCustomersInternalAmount
number
netTotalCustomersDisplayAmount
number
metadata
object
key
additional properties
restaurants
Array<object>
object
identifier
required

Ancillary identifier

string format: uuid
"" >= 1 characters
hotelIdentifier
required

Hotel identifier

string format: uuid
"" >= 1 characters
typeIdentifier
required

Travel inventory identifier

string format: uuid
"" >= 1 characters
transactionalTravelInventoryIdentifier
required

Travel inventory identifier

string format: uuid
"" >= 1 characters
name
required

Name of inventory

string
"" >= 1 characters
pricingType
required

Pricing type

string
""
Allowed values: PER_STAY PER_DAY PER_NIGHT PER_USE PER_HOUR PER_PERSON PER_PERSON_PER_NIGHT PER_PERSON_PER_HOUR PER_ADULT PER_ADULT_PER_NIGHT PER_ADULT_PER_HOUR PER_CHILD PER_CHILD_PER_NIGHT PER_CHILD_PER_HOUR
type
required

Inventory type

string
""
Allowed values: ROOM_TYPE_ANCILLARY ADD_ON MEETING_ROOM SPA RESTAURANT ACTIVITY ATTRACTION PLACE
price
required

Pricing information for this ancillary.

object
sourceToUserCurrencyQuote
required

Hotel to user currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
sourceToInternalCurrencyQuote
required

Hotel to wink currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
userSpecifiedCurrencyBaseTotal
required

Base total in user specified currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
sourceBaseTotal
required

Base total in hotel currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalBaseTotal
required

Base total in wink currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyPromotionalModifier

Promotional modifiers in user specified currency

number
""
sourcePromotionalModifier

Promotional modifiers in hotel currency

number
""
internalPromotionalModifier

Promotional modifiers in wink currency

number
""
userSpecifiedCurrencyPremiumModifier

Premium modifiers in user specified currency

number
""
sourcePremiumModifier

Premium modifiers in hotel currency

number
""
internalPremiumModifier

Premium modifiers in wink currency

number
""
userSpecifiedCurrencyChannelModifier

Channel / Membership modifier in user specified currency

number
""
sourceChannelModifier

Channel / Membership modifier in hotel currency

number
""
internalChannelModifier

Channel / Membership modifier in wink currency

number
""
quantity

How many of this item is included in this price

integer format: int64
default: 1
promotionalDiscountPercent

Promotional discount percent

number
""
channelDiscountPercent

Channel discount percent

number
""
premiumPercent

Premium percent

number
""
hasChannelDiscount
boolean
hasPremium
boolean
hasPromotion
boolean
sourceTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
totalDiscountPercent
number
startDate

Date start time when reservation was made for. Optional — null for ancillaries with no specific schedule (e.g. PER_STAY/PER_USE items).

string format: date-time
""
endDate

Date end time when reservation was made for. Optional — null for ancillaries with no specific schedule (e.g. PER_STAY/PER_USE items).

string format: date-time
""
attendees
required

Number of guests that are part of this reservation.

integer format: int32
default: 1
imageIdentifier
required

Cloudinary image identifier

string
"" >= 1 characters
imageUrl
required

Absolute URL to image of inventory

string
"" >= 1 characters
localizedName
required

Name of travel inventory in traveler language (if available). Defaults to English.

string
"" >= 1 characters
localizedDescription
required

Description of travel inventory in traveler language (if available). Defaults to English.

string
"" >= 1 characters
contact
required

Travel blocking contact (if applicable)

object
firstName

Contact first name

string
""
lastName

Contact last name

string
""
email

Contact E-mail

string format: email
""
secondaryEmail

Contact secondary Email

string format: email
""
phoneNumber

Contact phone number

string
"" /^\+?[1-9]\d{1,14}$/
fullName

First and last name

string
""
summary

Summary

string
""
address
required

Travel blocking address (if applicable)

object
address1

Address line 1

string
""
address2

Address line 2

string
""
state

State

string
""
postalCode

Postal / zip code

string
""
county

County

string
""
city

City name

string
""
countryCode

Country

string
"" /^[A-Z]{2}$/
country

Country

string
""
fullAddress

Address 1, Address 2, City, State, Postal / Zip code, Country

string
""
commissionable
required
boolean
mandatory
required
boolean
commission
required
number format: float
financialBreakdown
object
sourceCurrency
string
internalCurrency
string
displayCurrency
string
displayPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
internalPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
beneficiaryList
Array<object>

A beneficiary is a registered account entitled to a portion of booking funds. Funds are allocated by type (SALE, COMMISSION, PLATFORM_FEE, etc.) and tracked across source, display, and internal (platform) currencies. Refund modifiers record adjustments from cancellations.

object
accountIdentifier
required

Unique identifier of the beneficiary’s account in the TripPay system

string
"" >= 1 characters
accountName
required

Display name of the beneficiary account (e.g. hotel, affiliate, or platform name)

string
"" >= 1 characters
accountEmail
required

Contact email address for the beneficiary account

string format: email
"" >= 1 characters
accountUrl

Profile or dashboard URL for the beneficiary account

string
""
type
required

Category of the beneficiary: SALE (property), COMMISSION (affiliate), PLATFORM_FEE (Wink), TRIP_PAY (platform internal), or agency fees

string
""
Allowed values: TRIP_PAY PLATFORM_FEE COMMISSION AFFILIATE_AGENCY_FEE SUPPLIER_AGENCY_FEE SALE
amountDue

Charge rule: either a fixed percentage of the total stay or the remainder after other beneficiaries are deducted

object
type
required

PERCENTAGE: apply the percent field to the total booking price. REMAINDER: this beneficiary receives whatever is left after other beneficiaries are satisfied (typically used for the hotel).

string
""
Allowed values: PERCENTAGE REMAINDER
percent

The percentage value (0.0–1.0) to apply to the total booking amount when type=PERCENTAGE. For example, 0.050 = 5% of the booking price. Ignored when type=REMAINDER.

number
""
sourceCurrency
required

ISO 4217 currency code for the originating source (supplier’s local currency, e.g. hotel in Thailand uses THB)

string
"" >= 1 characters
displayCurrency
required

ISO 4217 currency code for display to the user (e.g. booking shown in USD)

string
"" >= 1 characters
internalCurrency
required

ISO 4217 currency code for internal platform ledger (always USD)

string
"" >= 1 characters
sourceAmount
required

Gross amount owed to this beneficiary in source currency (before refunds)

number
""
displayAmount
required

Gross amount owed to this beneficiary in display currency (before refunds)

number
""
internalAmount
required

Gross amount owed to this beneficiary in internal currency (before refunds)

number
""
sourceAmountRefundModifier
required

Cumulative refund reduction applied to sourceAmount (sum of all applied PendingRefunds)

number
""
displayAmountRefundModifier
required

Cumulative refund reduction applied to displayAmount (sum of all applied PendingRefunds)

number
""
internalAmountRefundModifier
required

Cumulative refund reduction applied to internalAmount (sum of all applied PendingRefunds)

number
""
pendingRefunds
Array<object>

Pending refunds awaiting settlement. Once a refund transitions from PENDING to APPLIED, it moves out of this list and into the corresponding *AmountRefundModifier property

object
refundIdentifier
required

Unique identifier linking this pending refund to the parent booking’s refund record

string
"" >= 1 characters
sourceAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s sourceAmount when applied

number
""
displayAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s displayAmount when applied

number
""
internalAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s internalAmount when applied

number
""
netSourceAmount
required

Net amount owed in source currency (sourceAmount - sourceAmountRefundModifier)

number
""
netDisplayAmount
required

Net amount owed in display currency (displayAmount - displayAmountRefundModifier)

number
""
netInternalAmount
required

Net amount owed in internal currency (internalAmount - internalAmountRefundModifier)

number
""
reconciled

Flag indicating whether net amounts have been transferred (disbursed) from TripPay to the beneficiary

boolean
metadata

Additional key-value metadata for the beneficiary (e.g. bank details, supplier identifiers)

object
key
additional properties
string
sourceAmount
number
internalAmount
number
displayAmount
number
sourceAmountRefundModifier
number
internalAmountRefundModifier
number
displayAmountRefundModifier
number
netSourceAmount
number
netInternalAmount
number
netDisplayAmount
number
commissionableTotalSourceAmount
number
commissionableTotalInternalAmount
number
commissionableTotalDisplayAmount
number
netCommissionableTotalSourceAmount
number
netCommissionableTotalInternalAmount
number
netCommissionableTotalDisplayAmount
number
totalFeesAndCommissionsSourceAmount
number
totalFeesAndCommissionsInternalAmount
number
totalFeesAndCommissionsDisplayAmount
number
netTotalFeesAndCommissionsSourceAmount
number
netTotalFeesAndCommissionsInternalAmount
number
netTotalFeesAndCommissionsDisplayAmount
number
totalFeesSourceAmount
number
totalFeesInternalAmount
number
totalFeesDisplayAmount
number
netTotalFeesSourceAmount
number
netTotalFeesInternalAmount
number
netTotalFeesDisplayAmount
number
totalPlatformFeeSourceAmount
number
totalPlatformFeeInternalAmount
number
totalPlatformFeeDisplayAmount
number
netTotalPlatformFeeSourceAmount
number
netTotalPlatformFeeInternalAmount
number
netTotalPlatformFeeDisplayAmount
number
totalPaymentProcessingFeeSourceAmount
number
totalPaymentProcessingFeeInternalAmount
number
totalPaymentProcessingFeeDisplayAmount
number
netTotalPaymentProcessingFeeSourceAmount
number
netTotalPaymentProcessingFeeInternalAmount
number
netTotalPaymentProcessingFeeDisplayAmount
number
totalSalesSourceAmount
number
totalSalesInternalAmount
number
totalSalesDisplayAmount
number
netTotalSalesSourceAmount
number
netTotalSalesInternalAmount
number
netTotalSalesDisplayAmount
number
totalAffiliateAgencyFeesSourceAmount
number
totalAffiliateAgencyFeesInternalAmount
number
totalAffiliateAgencyFeesDisplayAmount
number
netTotalAffiliateAgencyFeesSourceAmount
number
netTotalAffiliateAgencyFeesInternalAmount
number
netTotalAffiliateAgencyFeesDisplayAmount
number
totalSupplierAgencyFeesSourceAmount
number
totalSupplierAgencyFeesInternalAmount
number
totalSupplierAgencyFeesDisplayAmount
number
netTotalSupplierAgencyFeesSourceAmount
number
netTotalSupplierAgencyFeesInternalAmount
number
netTotalSupplierAgencyFeesDisplayAmount
number
netTotalCustomersSourceAmount
number
netTotalCustomersInternalAmount
number
netTotalCustomersDisplayAmount
number
metadata
object
key
additional properties
spas
Array<object>
object
identifier
required

Ancillary identifier

string format: uuid
"" >= 1 characters
hotelIdentifier
required

Hotel identifier

string format: uuid
"" >= 1 characters
typeIdentifier
required

Travel inventory identifier

string format: uuid
"" >= 1 characters
transactionalTravelInventoryIdentifier
required

Travel inventory identifier

string format: uuid
"" >= 1 characters
name
required

Name of inventory

string
"" >= 1 characters
pricingType
required

Pricing type

string
""
Allowed values: PER_STAY PER_DAY PER_NIGHT PER_USE PER_HOUR PER_PERSON PER_PERSON_PER_NIGHT PER_PERSON_PER_HOUR PER_ADULT PER_ADULT_PER_NIGHT PER_ADULT_PER_HOUR PER_CHILD PER_CHILD_PER_NIGHT PER_CHILD_PER_HOUR
type
required

Inventory type

string
""
Allowed values: ROOM_TYPE_ANCILLARY ADD_ON MEETING_ROOM SPA RESTAURANT ACTIVITY ATTRACTION PLACE
price
required

Pricing information for this ancillary.

object
sourceToUserCurrencyQuote
required

Hotel to user currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
sourceToInternalCurrencyQuote
required

Hotel to wink currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
userSpecifiedCurrencyBaseTotal
required

Base total in user specified currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
sourceBaseTotal
required

Base total in hotel currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalBaseTotal
required

Base total in wink currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyPromotionalModifier

Promotional modifiers in user specified currency

number
""
sourcePromotionalModifier

Promotional modifiers in hotel currency

number
""
internalPromotionalModifier

Promotional modifiers in wink currency

number
""
userSpecifiedCurrencyPremiumModifier

Premium modifiers in user specified currency

number
""
sourcePremiumModifier

Premium modifiers in hotel currency

number
""
internalPremiumModifier

Premium modifiers in wink currency

number
""
userSpecifiedCurrencyChannelModifier

Channel / Membership modifier in user specified currency

number
""
sourceChannelModifier

Channel / Membership modifier in hotel currency

number
""
internalChannelModifier

Channel / Membership modifier in wink currency

number
""
quantity

How many of this item is included in this price

integer format: int64
default: 1
promotionalDiscountPercent

Promotional discount percent

number
""
channelDiscountPercent

Channel discount percent

number
""
premiumPercent

Premium percent

number
""
hasChannelDiscount
boolean
hasPremium
boolean
hasPromotion
boolean
sourceTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
totalDiscountPercent
number
startDate

Date start time when reservation was made for. Optional — null for ancillaries with no specific schedule (e.g. PER_STAY/PER_USE items).

string format: date-time
""
endDate

Date end time when reservation was made for. Optional — null for ancillaries with no specific schedule (e.g. PER_STAY/PER_USE items).

string format: date-time
""
attendees
required

Number of guests that are part of this reservation.

integer format: int32
default: 1
imageIdentifier
required

Cloudinary image identifier

string
"" >= 1 characters
imageUrl
required

Absolute URL to image of inventory

string
"" >= 1 characters
localizedName
required

Name of travel inventory in traveler language (if available). Defaults to English.

string
"" >= 1 characters
localizedDescription
required

Description of travel inventory in traveler language (if available). Defaults to English.

string
"" >= 1 characters
contact
required

Travel blocking contact (if applicable)

object
firstName

Contact first name

string
""
lastName

Contact last name

string
""
email

Contact E-mail

string format: email
""
secondaryEmail

Contact secondary Email

string format: email
""
phoneNumber

Contact phone number

string
"" /^\+?[1-9]\d{1,14}$/
fullName

First and last name

string
""
summary

Summary

string
""
address
required

Travel blocking address (if applicable)

object
address1

Address line 1

string
""
address2

Address line 2

string
""
state

State

string
""
postalCode

Postal / zip code

string
""
county

County

string
""
city

City name

string
""
countryCode

Country

string
"" /^[A-Z]{2}$/
country

Country

string
""
fullAddress

Address 1, Address 2, City, State, Postal / Zip code, Country

string
""
commissionable
required
boolean
mandatory
required
boolean
commission
required
number format: float
financialBreakdown
object
sourceCurrency
string
internalCurrency
string
displayCurrency
string
displayPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
internalPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
beneficiaryList
Array<object>

A beneficiary is a registered account entitled to a portion of booking funds. Funds are allocated by type (SALE, COMMISSION, PLATFORM_FEE, etc.) and tracked across source, display, and internal (platform) currencies. Refund modifiers record adjustments from cancellations.

object
accountIdentifier
required

Unique identifier of the beneficiary’s account in the TripPay system

string
"" >= 1 characters
accountName
required

Display name of the beneficiary account (e.g. hotel, affiliate, or platform name)

string
"" >= 1 characters
accountEmail
required

Contact email address for the beneficiary account

string format: email
"" >= 1 characters
accountUrl

Profile or dashboard URL for the beneficiary account

string
""
type
required

Category of the beneficiary: SALE (property), COMMISSION (affiliate), PLATFORM_FEE (Wink), TRIP_PAY (platform internal), or agency fees

string
""
Allowed values: TRIP_PAY PLATFORM_FEE COMMISSION AFFILIATE_AGENCY_FEE SUPPLIER_AGENCY_FEE SALE
amountDue

Charge rule: either a fixed percentage of the total stay or the remainder after other beneficiaries are deducted

object
type
required

PERCENTAGE: apply the percent field to the total booking price. REMAINDER: this beneficiary receives whatever is left after other beneficiaries are satisfied (typically used for the hotel).

string
""
Allowed values: PERCENTAGE REMAINDER
percent

The percentage value (0.0–1.0) to apply to the total booking amount when type=PERCENTAGE. For example, 0.050 = 5% of the booking price. Ignored when type=REMAINDER.

number
""
sourceCurrency
required

ISO 4217 currency code for the originating source (supplier’s local currency, e.g. hotel in Thailand uses THB)

string
"" >= 1 characters
displayCurrency
required

ISO 4217 currency code for display to the user (e.g. booking shown in USD)

string
"" >= 1 characters
internalCurrency
required

ISO 4217 currency code for internal platform ledger (always USD)

string
"" >= 1 characters
sourceAmount
required

Gross amount owed to this beneficiary in source currency (before refunds)

number
""
displayAmount
required

Gross amount owed to this beneficiary in display currency (before refunds)

number
""
internalAmount
required

Gross amount owed to this beneficiary in internal currency (before refunds)

number
""
sourceAmountRefundModifier
required

Cumulative refund reduction applied to sourceAmount (sum of all applied PendingRefunds)

number
""
displayAmountRefundModifier
required

Cumulative refund reduction applied to displayAmount (sum of all applied PendingRefunds)

number
""
internalAmountRefundModifier
required

Cumulative refund reduction applied to internalAmount (sum of all applied PendingRefunds)

number
""
pendingRefunds
Array<object>

Pending refunds awaiting settlement. Once a refund transitions from PENDING to APPLIED, it moves out of this list and into the corresponding *AmountRefundModifier property

object
refundIdentifier
required

Unique identifier linking this pending refund to the parent booking’s refund record

string
"" >= 1 characters
sourceAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s sourceAmount when applied

number
""
displayAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s displayAmount when applied

number
""
internalAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s internalAmount when applied

number
""
netSourceAmount
required

Net amount owed in source currency (sourceAmount - sourceAmountRefundModifier)

number
""
netDisplayAmount
required

Net amount owed in display currency (displayAmount - displayAmountRefundModifier)

number
""
netInternalAmount
required

Net amount owed in internal currency (internalAmount - internalAmountRefundModifier)

number
""
reconciled

Flag indicating whether net amounts have been transferred (disbursed) from TripPay to the beneficiary

boolean
metadata

Additional key-value metadata for the beneficiary (e.g. bank details, supplier identifiers)

object
key
additional properties
string
sourceAmount
number
internalAmount
number
displayAmount
number
sourceAmountRefundModifier
number
internalAmountRefundModifier
number
displayAmountRefundModifier
number
netSourceAmount
number
netInternalAmount
number
netDisplayAmount
number
commissionableTotalSourceAmount
number
commissionableTotalInternalAmount
number
commissionableTotalDisplayAmount
number
netCommissionableTotalSourceAmount
number
netCommissionableTotalInternalAmount
number
netCommissionableTotalDisplayAmount
number
totalFeesAndCommissionsSourceAmount
number
totalFeesAndCommissionsInternalAmount
number
totalFeesAndCommissionsDisplayAmount
number
netTotalFeesAndCommissionsSourceAmount
number
netTotalFeesAndCommissionsInternalAmount
number
netTotalFeesAndCommissionsDisplayAmount
number
totalFeesSourceAmount
number
totalFeesInternalAmount
number
totalFeesDisplayAmount
number
netTotalFeesSourceAmount
number
netTotalFeesInternalAmount
number
netTotalFeesDisplayAmount
number
totalPlatformFeeSourceAmount
number
totalPlatformFeeInternalAmount
number
totalPlatformFeeDisplayAmount
number
netTotalPlatformFeeSourceAmount
number
netTotalPlatformFeeInternalAmount
number
netTotalPlatformFeeDisplayAmount
number
totalPaymentProcessingFeeSourceAmount
number
totalPaymentProcessingFeeInternalAmount
number
totalPaymentProcessingFeeDisplayAmount
number
netTotalPaymentProcessingFeeSourceAmount
number
netTotalPaymentProcessingFeeInternalAmount
number
netTotalPaymentProcessingFeeDisplayAmount
number
totalSalesSourceAmount
number
totalSalesInternalAmount
number
totalSalesDisplayAmount
number
netTotalSalesSourceAmount
number
netTotalSalesInternalAmount
number
netTotalSalesDisplayAmount
number
totalAffiliateAgencyFeesSourceAmount
number
totalAffiliateAgencyFeesInternalAmount
number
totalAffiliateAgencyFeesDisplayAmount
number
netTotalAffiliateAgencyFeesSourceAmount
number
netTotalAffiliateAgencyFeesInternalAmount
number
netTotalAffiliateAgencyFeesDisplayAmount
number
totalSupplierAgencyFeesSourceAmount
number
totalSupplierAgencyFeesInternalAmount
number
totalSupplierAgencyFeesDisplayAmount
number
netTotalSupplierAgencyFeesSourceAmount
number
netTotalSupplierAgencyFeesInternalAmount
number
netTotalSupplierAgencyFeesDisplayAmount
number
netTotalCustomersSourceAmount
number
netTotalCustomersInternalAmount
number
netTotalCustomersDisplayAmount
number
metadata
object
key
additional properties
activities
Array<object>
object
identifier
required

Ancillary identifier

string format: uuid
"" >= 1 characters
hotelIdentifier
required

Hotel identifier

string format: uuid
"" >= 1 characters
typeIdentifier
required

Travel inventory identifier

string format: uuid
"" >= 1 characters
transactionalTravelInventoryIdentifier
required

Travel inventory identifier

string format: uuid
"" >= 1 characters
name
required

Name of inventory

string
"" >= 1 characters
pricingType
required

Pricing type

string
""
Allowed values: PER_STAY PER_DAY PER_NIGHT PER_USE PER_HOUR PER_PERSON PER_PERSON_PER_NIGHT PER_PERSON_PER_HOUR PER_ADULT PER_ADULT_PER_NIGHT PER_ADULT_PER_HOUR PER_CHILD PER_CHILD_PER_NIGHT PER_CHILD_PER_HOUR
type
required

Inventory type

string
""
Allowed values: ROOM_TYPE_ANCILLARY ADD_ON MEETING_ROOM SPA RESTAURANT ACTIVITY ATTRACTION PLACE
price
required

Pricing information for this ancillary.

object
sourceToUserCurrencyQuote
required

Hotel to user currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
sourceToInternalCurrencyQuote
required

Hotel to wink currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
userSpecifiedCurrencyBaseTotal
required

Base total in user specified currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
sourceBaseTotal
required

Base total in hotel currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalBaseTotal
required

Base total in wink currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyPromotionalModifier

Promotional modifiers in user specified currency

number
""
sourcePromotionalModifier

Promotional modifiers in hotel currency

number
""
internalPromotionalModifier

Promotional modifiers in wink currency

number
""
userSpecifiedCurrencyPremiumModifier

Premium modifiers in user specified currency

number
""
sourcePremiumModifier

Premium modifiers in hotel currency

number
""
internalPremiumModifier

Premium modifiers in wink currency

number
""
userSpecifiedCurrencyChannelModifier

Channel / Membership modifier in user specified currency

number
""
sourceChannelModifier

Channel / Membership modifier in hotel currency

number
""
internalChannelModifier

Channel / Membership modifier in wink currency

number
""
quantity

How many of this item is included in this price

integer format: int64
default: 1
promotionalDiscountPercent

Promotional discount percent

number
""
channelDiscountPercent

Channel discount percent

number
""
premiumPercent

Premium percent

number
""
hasChannelDiscount
boolean
hasPremium
boolean
hasPromotion
boolean
sourceTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
totalDiscountPercent
number
startDate

Date start time when reservation was made for. Optional — null for ancillaries with no specific schedule (e.g. PER_STAY/PER_USE items).

string format: date-time
""
endDate

Date end time when reservation was made for. Optional — null for ancillaries with no specific schedule (e.g. PER_STAY/PER_USE items).

string format: date-time
""
attendees
required

Number of guests that are part of this reservation.

integer format: int32
default: 1
imageIdentifier
required

Cloudinary image identifier

string
"" >= 1 characters
imageUrl
required

Absolute URL to image of inventory

string
"" >= 1 characters
localizedName
required

Name of travel inventory in traveler language (if available). Defaults to English.

string
"" >= 1 characters
localizedDescription
required

Description of travel inventory in traveler language (if available). Defaults to English.

string
"" >= 1 characters
contact
required

Travel blocking contact (if applicable)

object
firstName

Contact first name

string
""
lastName

Contact last name

string
""
email

Contact E-mail

string format: email
""
secondaryEmail

Contact secondary Email

string format: email
""
phoneNumber

Contact phone number

string
"" /^\+?[1-9]\d{1,14}$/
fullName

First and last name

string
""
summary

Summary

string
""
address
required

Travel blocking address (if applicable)

object
address1

Address line 1

string
""
address2

Address line 2

string
""
state

State

string
""
postalCode

Postal / zip code

string
""
county

County

string
""
city

City name

string
""
countryCode

Country

string
"" /^[A-Z]{2}$/
country

Country

string
""
fullAddress

Address 1, Address 2, City, State, Postal / Zip code, Country

string
""
commissionable
required
boolean
mandatory
required
boolean
commission
required
number format: float
financialBreakdown
object
sourceCurrency
string
internalCurrency
string
displayCurrency
string
displayPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
internalPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
beneficiaryList
Array<object>

A beneficiary is a registered account entitled to a portion of booking funds. Funds are allocated by type (SALE, COMMISSION, PLATFORM_FEE, etc.) and tracked across source, display, and internal (platform) currencies. Refund modifiers record adjustments from cancellations.

object
accountIdentifier
required

Unique identifier of the beneficiary’s account in the TripPay system

string
"" >= 1 characters
accountName
required

Display name of the beneficiary account (e.g. hotel, affiliate, or platform name)

string
"" >= 1 characters
accountEmail
required

Contact email address for the beneficiary account

string format: email
"" >= 1 characters
accountUrl

Profile or dashboard URL for the beneficiary account

string
""
type
required

Category of the beneficiary: SALE (property), COMMISSION (affiliate), PLATFORM_FEE (Wink), TRIP_PAY (platform internal), or agency fees

string
""
Allowed values: TRIP_PAY PLATFORM_FEE COMMISSION AFFILIATE_AGENCY_FEE SUPPLIER_AGENCY_FEE SALE
amountDue

Charge rule: either a fixed percentage of the total stay or the remainder after other beneficiaries are deducted

object
type
required

PERCENTAGE: apply the percent field to the total booking price. REMAINDER: this beneficiary receives whatever is left after other beneficiaries are satisfied (typically used for the hotel).

string
""
Allowed values: PERCENTAGE REMAINDER
percent

The percentage value (0.0–1.0) to apply to the total booking amount when type=PERCENTAGE. For example, 0.050 = 5% of the booking price. Ignored when type=REMAINDER.

number
""
sourceCurrency
required

ISO 4217 currency code for the originating source (supplier’s local currency, e.g. hotel in Thailand uses THB)

string
"" >= 1 characters
displayCurrency
required

ISO 4217 currency code for display to the user (e.g. booking shown in USD)

string
"" >= 1 characters
internalCurrency
required

ISO 4217 currency code for internal platform ledger (always USD)

string
"" >= 1 characters
sourceAmount
required

Gross amount owed to this beneficiary in source currency (before refunds)

number
""
displayAmount
required

Gross amount owed to this beneficiary in display currency (before refunds)

number
""
internalAmount
required

Gross amount owed to this beneficiary in internal currency (before refunds)

number
""
sourceAmountRefundModifier
required

Cumulative refund reduction applied to sourceAmount (sum of all applied PendingRefunds)

number
""
displayAmountRefundModifier
required

Cumulative refund reduction applied to displayAmount (sum of all applied PendingRefunds)

number
""
internalAmountRefundModifier
required

Cumulative refund reduction applied to internalAmount (sum of all applied PendingRefunds)

number
""
pendingRefunds
Array<object>

Pending refunds awaiting settlement. Once a refund transitions from PENDING to APPLIED, it moves out of this list and into the corresponding *AmountRefundModifier property

object
refundIdentifier
required

Unique identifier linking this pending refund to the parent booking’s refund record

string
"" >= 1 characters
sourceAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s sourceAmount when applied

number
""
displayAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s displayAmount when applied

number
""
internalAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s internalAmount when applied

number
""
netSourceAmount
required

Net amount owed in source currency (sourceAmount - sourceAmountRefundModifier)

number
""
netDisplayAmount
required

Net amount owed in display currency (displayAmount - displayAmountRefundModifier)

number
""
netInternalAmount
required

Net amount owed in internal currency (internalAmount - internalAmountRefundModifier)

number
""
reconciled

Flag indicating whether net amounts have been transferred (disbursed) from TripPay to the beneficiary

boolean
metadata

Additional key-value metadata for the beneficiary (e.g. bank details, supplier identifiers)

object
key
additional properties
string
sourceAmount
number
internalAmount
number
displayAmount
number
sourceAmountRefundModifier
number
internalAmountRefundModifier
number
displayAmountRefundModifier
number
netSourceAmount
number
netInternalAmount
number
netDisplayAmount
number
commissionableTotalSourceAmount
number
commissionableTotalInternalAmount
number
commissionableTotalDisplayAmount
number
netCommissionableTotalSourceAmount
number
netCommissionableTotalInternalAmount
number
netCommissionableTotalDisplayAmount
number
totalFeesAndCommissionsSourceAmount
number
totalFeesAndCommissionsInternalAmount
number
totalFeesAndCommissionsDisplayAmount
number
netTotalFeesAndCommissionsSourceAmount
number
netTotalFeesAndCommissionsInternalAmount
number
netTotalFeesAndCommissionsDisplayAmount
number
totalFeesSourceAmount
number
totalFeesInternalAmount
number
totalFeesDisplayAmount
number
netTotalFeesSourceAmount
number
netTotalFeesInternalAmount
number
netTotalFeesDisplayAmount
number
totalPlatformFeeSourceAmount
number
totalPlatformFeeInternalAmount
number
totalPlatformFeeDisplayAmount
number
netTotalPlatformFeeSourceAmount
number
netTotalPlatformFeeInternalAmount
number
netTotalPlatformFeeDisplayAmount
number
totalPaymentProcessingFeeSourceAmount
number
totalPaymentProcessingFeeInternalAmount
number
totalPaymentProcessingFeeDisplayAmount
number
netTotalPaymentProcessingFeeSourceAmount
number
netTotalPaymentProcessingFeeInternalAmount
number
netTotalPaymentProcessingFeeDisplayAmount
number
totalSalesSourceAmount
number
totalSalesInternalAmount
number
totalSalesDisplayAmount
number
netTotalSalesSourceAmount
number
netTotalSalesInternalAmount
number
netTotalSalesDisplayAmount
number
totalAffiliateAgencyFeesSourceAmount
number
totalAffiliateAgencyFeesInternalAmount
number
totalAffiliateAgencyFeesDisplayAmount
number
netTotalAffiliateAgencyFeesSourceAmount
number
netTotalAffiliateAgencyFeesInternalAmount
number
netTotalAffiliateAgencyFeesDisplayAmount
number
totalSupplierAgencyFeesSourceAmount
number
totalSupplierAgencyFeesInternalAmount
number
totalSupplierAgencyFeesDisplayAmount
number
netTotalSupplierAgencyFeesSourceAmount
number
netTotalSupplierAgencyFeesInternalAmount
number
netTotalSupplierAgencyFeesDisplayAmount
number
netTotalCustomersSourceAmount
number
netTotalCustomersInternalAmount
number
netTotalCustomersDisplayAmount
number
metadata
object
key
additional properties
attractions
Array<object>
object
identifier
required

Ancillary identifier

string format: uuid
"" >= 1 characters
hotelIdentifier
required

Hotel identifier

string format: uuid
"" >= 1 characters
typeIdentifier
required

Travel inventory identifier

string format: uuid
"" >= 1 characters
transactionalTravelInventoryIdentifier
required

Travel inventory identifier

string format: uuid
"" >= 1 characters
name
required

Name of inventory

string
"" >= 1 characters
pricingType
required

Pricing type

string
""
Allowed values: PER_STAY PER_DAY PER_NIGHT PER_USE PER_HOUR PER_PERSON PER_PERSON_PER_NIGHT PER_PERSON_PER_HOUR PER_ADULT PER_ADULT_PER_NIGHT PER_ADULT_PER_HOUR PER_CHILD PER_CHILD_PER_NIGHT PER_CHILD_PER_HOUR
type
required

Inventory type

string
""
Allowed values: ROOM_TYPE_ANCILLARY ADD_ON MEETING_ROOM SPA RESTAURANT ACTIVITY ATTRACTION PLACE
price
required

Pricing information for this ancillary.

object
sourceToUserCurrencyQuote
required

Hotel to user currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
sourceToInternalCurrencyQuote
required

Hotel to wink currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
userSpecifiedCurrencyBaseTotal
required

Base total in user specified currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
sourceBaseTotal
required

Base total in hotel currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalBaseTotal
required

Base total in wink currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyPromotionalModifier

Promotional modifiers in user specified currency

number
""
sourcePromotionalModifier

Promotional modifiers in hotel currency

number
""
internalPromotionalModifier

Promotional modifiers in wink currency

number
""
userSpecifiedCurrencyPremiumModifier

Premium modifiers in user specified currency

number
""
sourcePremiumModifier

Premium modifiers in hotel currency

number
""
internalPremiumModifier

Premium modifiers in wink currency

number
""
userSpecifiedCurrencyChannelModifier

Channel / Membership modifier in user specified currency

number
""
sourceChannelModifier

Channel / Membership modifier in hotel currency

number
""
internalChannelModifier

Channel / Membership modifier in wink currency

number
""
quantity

How many of this item is included in this price

integer format: int64
default: 1
promotionalDiscountPercent

Promotional discount percent

number
""
channelDiscountPercent

Channel discount percent

number
""
premiumPercent

Premium percent

number
""
hasChannelDiscount
boolean
hasPremium
boolean
hasPromotion
boolean
sourceTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
totalDiscountPercent
number
startDate

Date start time when reservation was made for. Optional — null for ancillaries with no specific schedule (e.g. PER_STAY/PER_USE items).

string format: date-time
""
endDate

Date end time when reservation was made for. Optional — null for ancillaries with no specific schedule (e.g. PER_STAY/PER_USE items).

string format: date-time
""
attendees
required

Number of guests that are part of this reservation.

integer format: int32
default: 1
imageIdentifier
required

Cloudinary image identifier

string
"" >= 1 characters
imageUrl
required

Absolute URL to image of inventory

string
"" >= 1 characters
localizedName
required

Name of travel inventory in traveler language (if available). Defaults to English.

string
"" >= 1 characters
localizedDescription
required

Description of travel inventory in traveler language (if available). Defaults to English.

string
"" >= 1 characters
contact
required

Travel blocking contact (if applicable)

object
firstName

Contact first name

string
""
lastName

Contact last name

string
""
email

Contact E-mail

string format: email
""
secondaryEmail

Contact secondary Email

string format: email
""
phoneNumber

Contact phone number

string
"" /^\+?[1-9]\d{1,14}$/
fullName

First and last name

string
""
summary

Summary

string
""
address
required

Travel blocking address (if applicable)

object
address1

Address line 1

string
""
address2

Address line 2

string
""
state

State

string
""
postalCode

Postal / zip code

string
""
county

County

string
""
city

City name

string
""
countryCode

Country

string
"" /^[A-Z]{2}$/
country

Country

string
""
fullAddress

Address 1, Address 2, City, State, Postal / Zip code, Country

string
""
commissionable
required
boolean
mandatory
required
boolean
commission
required
number format: float
financialBreakdown
object
sourceCurrency
string
internalCurrency
string
displayCurrency
string
displayPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
internalPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
beneficiaryList
Array<object>

A beneficiary is a registered account entitled to a portion of booking funds. Funds are allocated by type (SALE, COMMISSION, PLATFORM_FEE, etc.) and tracked across source, display, and internal (platform) currencies. Refund modifiers record adjustments from cancellations.

object
accountIdentifier
required

Unique identifier of the beneficiary’s account in the TripPay system

string
"" >= 1 characters
accountName
required

Display name of the beneficiary account (e.g. hotel, affiliate, or platform name)

string
"" >= 1 characters
accountEmail
required

Contact email address for the beneficiary account

string format: email
"" >= 1 characters
accountUrl

Profile or dashboard URL for the beneficiary account

string
""
type
required

Category of the beneficiary: SALE (property), COMMISSION (affiliate), PLATFORM_FEE (Wink), TRIP_PAY (platform internal), or agency fees

string
""
Allowed values: TRIP_PAY PLATFORM_FEE COMMISSION AFFILIATE_AGENCY_FEE SUPPLIER_AGENCY_FEE SALE
amountDue

Charge rule: either a fixed percentage of the total stay or the remainder after other beneficiaries are deducted

object
type
required

PERCENTAGE: apply the percent field to the total booking price. REMAINDER: this beneficiary receives whatever is left after other beneficiaries are satisfied (typically used for the hotel).

string
""
Allowed values: PERCENTAGE REMAINDER
percent

The percentage value (0.0–1.0) to apply to the total booking amount when type=PERCENTAGE. For example, 0.050 = 5% of the booking price. Ignored when type=REMAINDER.

number
""
sourceCurrency
required

ISO 4217 currency code for the originating source (supplier’s local currency, e.g. hotel in Thailand uses THB)

string
"" >= 1 characters
displayCurrency
required

ISO 4217 currency code for display to the user (e.g. booking shown in USD)

string
"" >= 1 characters
internalCurrency
required

ISO 4217 currency code for internal platform ledger (always USD)

string
"" >= 1 characters
sourceAmount
required

Gross amount owed to this beneficiary in source currency (before refunds)

number
""
displayAmount
required

Gross amount owed to this beneficiary in display currency (before refunds)

number
""
internalAmount
required

Gross amount owed to this beneficiary in internal currency (before refunds)

number
""
sourceAmountRefundModifier
required

Cumulative refund reduction applied to sourceAmount (sum of all applied PendingRefunds)

number
""
displayAmountRefundModifier
required

Cumulative refund reduction applied to displayAmount (sum of all applied PendingRefunds)

number
""
internalAmountRefundModifier
required

Cumulative refund reduction applied to internalAmount (sum of all applied PendingRefunds)

number
""
pendingRefunds
Array<object>

Pending refunds awaiting settlement. Once a refund transitions from PENDING to APPLIED, it moves out of this list and into the corresponding *AmountRefundModifier property

object
refundIdentifier
required

Unique identifier linking this pending refund to the parent booking’s refund record

string
"" >= 1 characters
sourceAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s sourceAmount when applied

number
""
displayAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s displayAmount when applied

number
""
internalAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s internalAmount when applied

number
""
netSourceAmount
required

Net amount owed in source currency (sourceAmount - sourceAmountRefundModifier)

number
""
netDisplayAmount
required

Net amount owed in display currency (displayAmount - displayAmountRefundModifier)

number
""
netInternalAmount
required

Net amount owed in internal currency (internalAmount - internalAmountRefundModifier)

number
""
reconciled

Flag indicating whether net amounts have been transferred (disbursed) from TripPay to the beneficiary

boolean
metadata

Additional key-value metadata for the beneficiary (e.g. bank details, supplier identifiers)

object
key
additional properties
string
sourceAmount
number
internalAmount
number
displayAmount
number
sourceAmountRefundModifier
number
internalAmountRefundModifier
number
displayAmountRefundModifier
number
netSourceAmount
number
netInternalAmount
number
netDisplayAmount
number
commissionableTotalSourceAmount
number
commissionableTotalInternalAmount
number
commissionableTotalDisplayAmount
number
netCommissionableTotalSourceAmount
number
netCommissionableTotalInternalAmount
number
netCommissionableTotalDisplayAmount
number
totalFeesAndCommissionsSourceAmount
number
totalFeesAndCommissionsInternalAmount
number
totalFeesAndCommissionsDisplayAmount
number
netTotalFeesAndCommissionsSourceAmount
number
netTotalFeesAndCommissionsInternalAmount
number
netTotalFeesAndCommissionsDisplayAmount
number
totalFeesSourceAmount
number
totalFeesInternalAmount
number
totalFeesDisplayAmount
number
netTotalFeesSourceAmount
number
netTotalFeesInternalAmount
number
netTotalFeesDisplayAmount
number
totalPlatformFeeSourceAmount
number
totalPlatformFeeInternalAmount
number
totalPlatformFeeDisplayAmount
number
netTotalPlatformFeeSourceAmount
number
netTotalPlatformFeeInternalAmount
number
netTotalPlatformFeeDisplayAmount
number
totalPaymentProcessingFeeSourceAmount
number
totalPaymentProcessingFeeInternalAmount
number
totalPaymentProcessingFeeDisplayAmount
number
netTotalPaymentProcessingFeeSourceAmount
number
netTotalPaymentProcessingFeeInternalAmount
number
netTotalPaymentProcessingFeeDisplayAmount
number
totalSalesSourceAmount
number
totalSalesInternalAmount
number
totalSalesDisplayAmount
number
netTotalSalesSourceAmount
number
netTotalSalesInternalAmount
number
netTotalSalesDisplayAmount
number
totalAffiliateAgencyFeesSourceAmount
number
totalAffiliateAgencyFeesInternalAmount
number
totalAffiliateAgencyFeesDisplayAmount
number
netTotalAffiliateAgencyFeesSourceAmount
number
netTotalAffiliateAgencyFeesInternalAmount
number
netTotalAffiliateAgencyFeesDisplayAmount
number
totalSupplierAgencyFeesSourceAmount
number
totalSupplierAgencyFeesInternalAmount
number
totalSupplierAgencyFeesDisplayAmount
number
netTotalSupplierAgencyFeesSourceAmount
number
netTotalSupplierAgencyFeesInternalAmount
number
netTotalSupplierAgencyFeesDisplayAmount
number
netTotalCustomersSourceAmount
number
netTotalCustomersInternalAmount
number
netTotalCustomersDisplayAmount
number
metadata
object
key
additional properties
places
Array<object>
object
identifier
required

Ancillary identifier

string format: uuid
"" >= 1 characters
hotelIdentifier
required

Hotel identifier

string format: uuid
"" >= 1 characters
typeIdentifier
required

Travel inventory identifier

string format: uuid
"" >= 1 characters
transactionalTravelInventoryIdentifier
required

Travel inventory identifier

string format: uuid
"" >= 1 characters
name
required

Name of inventory

string
"" >= 1 characters
pricingType
required

Pricing type

string
""
Allowed values: PER_STAY PER_DAY PER_NIGHT PER_USE PER_HOUR PER_PERSON PER_PERSON_PER_NIGHT PER_PERSON_PER_HOUR PER_ADULT PER_ADULT_PER_NIGHT PER_ADULT_PER_HOUR PER_CHILD PER_CHILD_PER_NIGHT PER_CHILD_PER_HOUR
type
required

Inventory type

string
""
Allowed values: ROOM_TYPE_ANCILLARY ADD_ON MEETING_ROOM SPA RESTAURANT ACTIVITY ATTRACTION PLACE
price
required

Pricing information for this ancillary.

object
sourceToUserCurrencyQuote
required

Hotel to user currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
sourceToInternalCurrencyQuote
required

Hotel to wink currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
userSpecifiedCurrencyBaseTotal
required

Base total in user specified currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
sourceBaseTotal
required

Base total in hotel currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalBaseTotal
required

Base total in wink currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyPromotionalModifier

Promotional modifiers in user specified currency

number
""
sourcePromotionalModifier

Promotional modifiers in hotel currency

number
""
internalPromotionalModifier

Promotional modifiers in wink currency

number
""
userSpecifiedCurrencyPremiumModifier

Premium modifiers in user specified currency

number
""
sourcePremiumModifier

Premium modifiers in hotel currency

number
""
internalPremiumModifier

Premium modifiers in wink currency

number
""
userSpecifiedCurrencyChannelModifier

Channel / Membership modifier in user specified currency

number
""
sourceChannelModifier

Channel / Membership modifier in hotel currency

number
""
internalChannelModifier

Channel / Membership modifier in wink currency

number
""
quantity

How many of this item is included in this price

integer format: int64
default: 1
promotionalDiscountPercent

Promotional discount percent

number
""
channelDiscountPercent

Channel discount percent

number
""
premiumPercent

Premium percent

number
""
hasChannelDiscount
boolean
hasPremium
boolean
hasPromotion
boolean
sourceTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
totalDiscountPercent
number
startDate

Date start time when reservation was made for. Optional — null for ancillaries with no specific schedule (e.g. PER_STAY/PER_USE items).

string format: date-time
""
endDate

Date end time when reservation was made for. Optional — null for ancillaries with no specific schedule (e.g. PER_STAY/PER_USE items).

string format: date-time
""
attendees
required

Number of guests that are part of this reservation.

integer format: int32
default: 1
imageIdentifier
required

Cloudinary image identifier

string
"" >= 1 characters
imageUrl
required

Absolute URL to image of inventory

string
"" >= 1 characters
localizedName
required

Name of travel inventory in traveler language (if available). Defaults to English.

string
"" >= 1 characters
localizedDescription
required

Description of travel inventory in traveler language (if available). Defaults to English.

string
"" >= 1 characters
contact
required

Travel blocking contact (if applicable)

object
firstName

Contact first name

string
""
lastName

Contact last name

string
""
email

Contact E-mail

string format: email
""
secondaryEmail

Contact secondary Email

string format: email
""
phoneNumber

Contact phone number

string
"" /^\+?[1-9]\d{1,14}$/
fullName

First and last name

string
""
summary

Summary

string
""
address
required

Travel blocking address (if applicable)

object
address1

Address line 1

string
""
address2

Address line 2

string
""
state

State

string
""
postalCode

Postal / zip code

string
""
county

County

string
""
city

City name

string
""
countryCode

Country

string
"" /^[A-Z]{2}$/
country

Country

string
""
fullAddress

Address 1, Address 2, City, State, Postal / Zip code, Country

string
""
commissionable
required
boolean
mandatory
required
boolean
commission
required
number format: float
financialBreakdown
object
sourceCurrency
string
internalCurrency
string
displayCurrency
string
displayPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
internalPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
beneficiaryList
Array<object>

A beneficiary is a registered account entitled to a portion of booking funds. Funds are allocated by type (SALE, COMMISSION, PLATFORM_FEE, etc.) and tracked across source, display, and internal (platform) currencies. Refund modifiers record adjustments from cancellations.

object
accountIdentifier
required

Unique identifier of the beneficiary’s account in the TripPay system

string
"" >= 1 characters
accountName
required

Display name of the beneficiary account (e.g. hotel, affiliate, or platform name)

string
"" >= 1 characters
accountEmail
required

Contact email address for the beneficiary account

string format: email
"" >= 1 characters
accountUrl

Profile or dashboard URL for the beneficiary account

string
""
type
required

Category of the beneficiary: SALE (property), COMMISSION (affiliate), PLATFORM_FEE (Wink), TRIP_PAY (platform internal), or agency fees

string
""
Allowed values: TRIP_PAY PLATFORM_FEE COMMISSION AFFILIATE_AGENCY_FEE SUPPLIER_AGENCY_FEE SALE
amountDue

Charge rule: either a fixed percentage of the total stay or the remainder after other beneficiaries are deducted

object
type
required

PERCENTAGE: apply the percent field to the total booking price. REMAINDER: this beneficiary receives whatever is left after other beneficiaries are satisfied (typically used for the hotel).

string
""
Allowed values: PERCENTAGE REMAINDER
percent

The percentage value (0.0–1.0) to apply to the total booking amount when type=PERCENTAGE. For example, 0.050 = 5% of the booking price. Ignored when type=REMAINDER.

number
""
sourceCurrency
required

ISO 4217 currency code for the originating source (supplier’s local currency, e.g. hotel in Thailand uses THB)

string
"" >= 1 characters
displayCurrency
required

ISO 4217 currency code for display to the user (e.g. booking shown in USD)

string
"" >= 1 characters
internalCurrency
required

ISO 4217 currency code for internal platform ledger (always USD)

string
"" >= 1 characters
sourceAmount
required

Gross amount owed to this beneficiary in source currency (before refunds)

number
""
displayAmount
required

Gross amount owed to this beneficiary in display currency (before refunds)

number
""
internalAmount
required

Gross amount owed to this beneficiary in internal currency (before refunds)

number
""
sourceAmountRefundModifier
required

Cumulative refund reduction applied to sourceAmount (sum of all applied PendingRefunds)

number
""
displayAmountRefundModifier
required

Cumulative refund reduction applied to displayAmount (sum of all applied PendingRefunds)

number
""
internalAmountRefundModifier
required

Cumulative refund reduction applied to internalAmount (sum of all applied PendingRefunds)

number
""
pendingRefunds
Array<object>

Pending refunds awaiting settlement. Once a refund transitions from PENDING to APPLIED, it moves out of this list and into the corresponding *AmountRefundModifier property

object
refundIdentifier
required

Unique identifier linking this pending refund to the parent booking’s refund record

string
"" >= 1 characters
sourceAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s sourceAmount when applied

number
""
displayAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s displayAmount when applied

number
""
internalAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s internalAmount when applied

number
""
netSourceAmount
required

Net amount owed in source currency (sourceAmount - sourceAmountRefundModifier)

number
""
netDisplayAmount
required

Net amount owed in display currency (displayAmount - displayAmountRefundModifier)

number
""
netInternalAmount
required

Net amount owed in internal currency (internalAmount - internalAmountRefundModifier)

number
""
reconciled

Flag indicating whether net amounts have been transferred (disbursed) from TripPay to the beneficiary

boolean
metadata

Additional key-value metadata for the beneficiary (e.g. bank details, supplier identifiers)

object
key
additional properties
string
sourceAmount
number
internalAmount
number
displayAmount
number
sourceAmountRefundModifier
number
internalAmountRefundModifier
number
displayAmountRefundModifier
number
netSourceAmount
number
netInternalAmount
number
netDisplayAmount
number
commissionableTotalSourceAmount
number
commissionableTotalInternalAmount
number
commissionableTotalDisplayAmount
number
netCommissionableTotalSourceAmount
number
netCommissionableTotalInternalAmount
number
netCommissionableTotalDisplayAmount
number
totalFeesAndCommissionsSourceAmount
number
totalFeesAndCommissionsInternalAmount
number
totalFeesAndCommissionsDisplayAmount
number
netTotalFeesAndCommissionsSourceAmount
number
netTotalFeesAndCommissionsInternalAmount
number
netTotalFeesAndCommissionsDisplayAmount
number
totalFeesSourceAmount
number
totalFeesInternalAmount
number
totalFeesDisplayAmount
number
netTotalFeesSourceAmount
number
netTotalFeesInternalAmount
number
netTotalFeesDisplayAmount
number
totalPlatformFeeSourceAmount
number
totalPlatformFeeInternalAmount
number
totalPlatformFeeDisplayAmount
number
netTotalPlatformFeeSourceAmount
number
netTotalPlatformFeeInternalAmount
number
netTotalPlatformFeeDisplayAmount
number
totalPaymentProcessingFeeSourceAmount
number
totalPaymentProcessingFeeInternalAmount
number
totalPaymentProcessingFeeDisplayAmount
number
netTotalPaymentProcessingFeeSourceAmount
number
netTotalPaymentProcessingFeeInternalAmount
number
netTotalPaymentProcessingFeeDisplayAmount
number
totalSalesSourceAmount
number
totalSalesInternalAmount
number
totalSalesDisplayAmount
number
netTotalSalesSourceAmount
number
netTotalSalesInternalAmount
number
netTotalSalesDisplayAmount
number
totalAffiliateAgencyFeesSourceAmount
number
totalAffiliateAgencyFeesInternalAmount
number
totalAffiliateAgencyFeesDisplayAmount
number
netTotalAffiliateAgencyFeesSourceAmount
number
netTotalAffiliateAgencyFeesInternalAmount
number
netTotalAffiliateAgencyFeesDisplayAmount
number
totalSupplierAgencyFeesSourceAmount
number
totalSupplierAgencyFeesInternalAmount
number
totalSupplierAgencyFeesDisplayAmount
number
netTotalSupplierAgencyFeesSourceAmount
number
netTotalSupplierAgencyFeesInternalAmount
number
netTotalSupplierAgencyFeesDisplayAmount
number
netTotalCustomersSourceAmount
number
netTotalCustomersInternalAmount
number
netTotalCustomersDisplayAmount
number
metadata
object
key
additional properties
roomTypeAncillaries
Array<object>
object
identifier
required

Ancillary identifier

string format: uuid
"" >= 1 characters
hotelIdentifier
required

Hotel identifier

string format: uuid
"" >= 1 characters
typeIdentifier
required

Travel inventory identifier

string format: uuid
"" >= 1 characters
transactionalTravelInventoryIdentifier
required

Travel inventory identifier

string format: uuid
"" >= 1 characters
name
required

Name of inventory

string
"" >= 1 characters
pricingType
required

Pricing type

string
""
Allowed values: PER_STAY PER_DAY PER_NIGHT PER_USE PER_HOUR PER_PERSON PER_PERSON_PER_NIGHT PER_PERSON_PER_HOUR PER_ADULT PER_ADULT_PER_NIGHT PER_ADULT_PER_HOUR PER_CHILD PER_CHILD_PER_NIGHT PER_CHILD_PER_HOUR
type
required

Inventory type

string
""
Allowed values: ROOM_TYPE_ANCILLARY ADD_ON MEETING_ROOM SPA RESTAURANT ACTIVITY ATTRACTION PLACE
price
required

Pricing information for this ancillary.

object
sourceToUserCurrencyQuote
required

Hotel to user currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
sourceToInternalCurrencyQuote
required

Hotel to wink currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
userSpecifiedCurrencyBaseTotal
required

Base total in user specified currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
sourceBaseTotal
required

Base total in hotel currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalBaseTotal
required

Base total in wink currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyPromotionalModifier

Promotional modifiers in user specified currency

number
""
sourcePromotionalModifier

Promotional modifiers in hotel currency

number
""
internalPromotionalModifier

Promotional modifiers in wink currency

number
""
userSpecifiedCurrencyPremiumModifier

Premium modifiers in user specified currency

number
""
sourcePremiumModifier

Premium modifiers in hotel currency

number
""
internalPremiumModifier

Premium modifiers in wink currency

number
""
userSpecifiedCurrencyChannelModifier

Channel / Membership modifier in user specified currency

number
""
sourceChannelModifier

Channel / Membership modifier in hotel currency

number
""
internalChannelModifier

Channel / Membership modifier in wink currency

number
""
quantity

How many of this item is included in this price

integer format: int64
default: 1
promotionalDiscountPercent

Promotional discount percent

number
""
channelDiscountPercent

Channel discount percent

number
""
premiumPercent

Premium percent

number
""
hasChannelDiscount
boolean
hasPremium
boolean
hasPromotion
boolean
sourceTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
totalDiscountPercent
number
startDate

Date start time when reservation was made for. Optional — null for ancillaries with no specific schedule (e.g. PER_STAY/PER_USE items).

string format: date-time
""
endDate

Date end time when reservation was made for. Optional — null for ancillaries with no specific schedule (e.g. PER_STAY/PER_USE items).

string format: date-time
""
attendees
required

Number of guests that are part of this reservation.

integer format: int32
default: 1
imageIdentifier
required

Cloudinary image identifier

string
"" >= 1 characters
imageUrl
required

Absolute URL to image of inventory

string
"" >= 1 characters
localizedName
required

Name of travel inventory in traveler language (if available). Defaults to English.

string
"" >= 1 characters
localizedDescription
required

Description of travel inventory in traveler language (if available). Defaults to English.

string
"" >= 1 characters
contact
required

Travel blocking contact (if applicable)

object
firstName

Contact first name

string
""
lastName

Contact last name

string
""
email

Contact E-mail

string format: email
""
secondaryEmail

Contact secondary Email

string format: email
""
phoneNumber

Contact phone number

string
"" /^\+?[1-9]\d{1,14}$/
fullName

First and last name

string
""
summary

Summary

string
""
address
required

Travel blocking address (if applicable)

object
address1

Address line 1

string
""
address2

Address line 2

string
""
state

State

string
""
postalCode

Postal / zip code

string
""
county

County

string
""
city

City name

string
""
countryCode

Country

string
"" /^[A-Z]{2}$/
country

Country

string
""
fullAddress

Address 1, Address 2, City, State, Postal / Zip code, Country

string
""
commissionable
required
boolean
mandatory
required
boolean
commission
required
number format: float
financialBreakdown
object
sourceCurrency
string
internalCurrency
string
displayCurrency
string
displayPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
internalPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
beneficiaryList
Array<object>

A beneficiary is a registered account entitled to a portion of booking funds. Funds are allocated by type (SALE, COMMISSION, PLATFORM_FEE, etc.) and tracked across source, display, and internal (platform) currencies. Refund modifiers record adjustments from cancellations.

object
accountIdentifier
required

Unique identifier of the beneficiary’s account in the TripPay system

string
"" >= 1 characters
accountName
required

Display name of the beneficiary account (e.g. hotel, affiliate, or platform name)

string
"" >= 1 characters
accountEmail
required

Contact email address for the beneficiary account

string format: email
"" >= 1 characters
accountUrl

Profile or dashboard URL for the beneficiary account

string
""
type
required

Category of the beneficiary: SALE (property), COMMISSION (affiliate), PLATFORM_FEE (Wink), TRIP_PAY (platform internal), or agency fees

string
""
Allowed values: TRIP_PAY PLATFORM_FEE COMMISSION AFFILIATE_AGENCY_FEE SUPPLIER_AGENCY_FEE SALE
amountDue

Charge rule: either a fixed percentage of the total stay or the remainder after other beneficiaries are deducted

object
type
required

PERCENTAGE: apply the percent field to the total booking price. REMAINDER: this beneficiary receives whatever is left after other beneficiaries are satisfied (typically used for the hotel).

string
""
Allowed values: PERCENTAGE REMAINDER
percent

The percentage value (0.0–1.0) to apply to the total booking amount when type=PERCENTAGE. For example, 0.050 = 5% of the booking price. Ignored when type=REMAINDER.

number
""
sourceCurrency
required

ISO 4217 currency code for the originating source (supplier’s local currency, e.g. hotel in Thailand uses THB)

string
"" >= 1 characters
displayCurrency
required

ISO 4217 currency code for display to the user (e.g. booking shown in USD)

string
"" >= 1 characters
internalCurrency
required

ISO 4217 currency code for internal platform ledger (always USD)

string
"" >= 1 characters
sourceAmount
required

Gross amount owed to this beneficiary in source currency (before refunds)

number
""
displayAmount
required

Gross amount owed to this beneficiary in display currency (before refunds)

number
""
internalAmount
required

Gross amount owed to this beneficiary in internal currency (before refunds)

number
""
sourceAmountRefundModifier
required

Cumulative refund reduction applied to sourceAmount (sum of all applied PendingRefunds)

number
""
displayAmountRefundModifier
required

Cumulative refund reduction applied to displayAmount (sum of all applied PendingRefunds)

number
""
internalAmountRefundModifier
required

Cumulative refund reduction applied to internalAmount (sum of all applied PendingRefunds)

number
""
pendingRefunds
Array<object>

Pending refunds awaiting settlement. Once a refund transitions from PENDING to APPLIED, it moves out of this list and into the corresponding *AmountRefundModifier property

object
refundIdentifier
required

Unique identifier linking this pending refund to the parent booking’s refund record

string
"" >= 1 characters
sourceAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s sourceAmount when applied

number
""
displayAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s displayAmount when applied

number
""
internalAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s internalAmount when applied

number
""
netSourceAmount
required

Net amount owed in source currency (sourceAmount - sourceAmountRefundModifier)

number
""
netDisplayAmount
required

Net amount owed in display currency (displayAmount - displayAmountRefundModifier)

number
""
netInternalAmount
required

Net amount owed in internal currency (internalAmount - internalAmountRefundModifier)

number
""
reconciled

Flag indicating whether net amounts have been transferred (disbursed) from TripPay to the beneficiary

boolean
metadata

Additional key-value metadata for the beneficiary (e.g. bank details, supplier identifiers)

object
key
additional properties
string
sourceAmount
number
internalAmount
number
displayAmount
number
sourceAmountRefundModifier
number
internalAmountRefundModifier
number
displayAmountRefundModifier
number
netSourceAmount
number
netInternalAmount
number
netDisplayAmount
number
commissionableTotalSourceAmount
number
commissionableTotalInternalAmount
number
commissionableTotalDisplayAmount
number
netCommissionableTotalSourceAmount
number
netCommissionableTotalInternalAmount
number
netCommissionableTotalDisplayAmount
number
totalFeesAndCommissionsSourceAmount
number
totalFeesAndCommissionsInternalAmount
number
totalFeesAndCommissionsDisplayAmount
number
netTotalFeesAndCommissionsSourceAmount
number
netTotalFeesAndCommissionsInternalAmount
number
netTotalFeesAndCommissionsDisplayAmount
number
totalFeesSourceAmount
number
totalFeesInternalAmount
number
totalFeesDisplayAmount
number
netTotalFeesSourceAmount
number
netTotalFeesInternalAmount
number
netTotalFeesDisplayAmount
number
totalPlatformFeeSourceAmount
number
totalPlatformFeeInternalAmount
number
totalPlatformFeeDisplayAmount
number
netTotalPlatformFeeSourceAmount
number
netTotalPlatformFeeInternalAmount
number
netTotalPlatformFeeDisplayAmount
number
totalPaymentProcessingFeeSourceAmount
number
totalPaymentProcessingFeeInternalAmount
number
totalPaymentProcessingFeeDisplayAmount
number
netTotalPaymentProcessingFeeSourceAmount
number
netTotalPaymentProcessingFeeInternalAmount
number
netTotalPaymentProcessingFeeDisplayAmount
number
totalSalesSourceAmount
number
totalSalesInternalAmount
number
totalSalesDisplayAmount
number
netTotalSalesSourceAmount
number
netTotalSalesInternalAmount
number
netTotalSalesDisplayAmount
number
totalAffiliateAgencyFeesSourceAmount
number
totalAffiliateAgencyFeesInternalAmount
number
totalAffiliateAgencyFeesDisplayAmount
number
netTotalAffiliateAgencyFeesSourceAmount
number
netTotalAffiliateAgencyFeesInternalAmount
number
netTotalAffiliateAgencyFeesDisplayAmount
number
totalSupplierAgencyFeesSourceAmount
number
totalSupplierAgencyFeesInternalAmount
number
totalSupplierAgencyFeesDisplayAmount
number
netTotalSupplierAgencyFeesSourceAmount
number
netTotalSupplierAgencyFeesInternalAmount
number
netTotalSupplierAgencyFeesDisplayAmount
number
netTotalCustomersSourceAmount
number
netTotalCustomersInternalAmount
number
netTotalCustomersDisplayAmount
number
metadata
object
key
additional properties
addOns
Array<object>
object
identifier
required

Ancillary identifier

string format: uuid
"" >= 1 characters
hotelIdentifier
required

Hotel identifier

string format: uuid
"" >= 1 characters
typeIdentifier
required

Travel inventory identifier

string format: uuid
"" >= 1 characters
transactionalTravelInventoryIdentifier
required

Travel inventory identifier

string format: uuid
"" >= 1 characters
name
required

Name of inventory

string
"" >= 1 characters
pricingType
required

Pricing type

string
""
Allowed values: PER_STAY PER_DAY PER_NIGHT PER_USE PER_HOUR PER_PERSON PER_PERSON_PER_NIGHT PER_PERSON_PER_HOUR PER_ADULT PER_ADULT_PER_NIGHT PER_ADULT_PER_HOUR PER_CHILD PER_CHILD_PER_NIGHT PER_CHILD_PER_HOUR
type
required

Inventory type

string
""
Allowed values: ROOM_TYPE_ANCILLARY ADD_ON MEETING_ROOM SPA RESTAURANT ACTIVITY ATTRACTION PLACE
price
required

Pricing information for this ancillary.

object
sourceToUserCurrencyQuote
required

Hotel to user currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
sourceToInternalCurrencyQuote
required

Hotel to wink currency exchange rate.

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
userSpecifiedCurrencyBaseTotal
required

Base total in user specified currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
sourceBaseTotal
required

Base total in hotel currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalBaseTotal
required

Base total in wink currency.

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyPromotionalModifier

Promotional modifiers in user specified currency

number
""
sourcePromotionalModifier

Promotional modifiers in hotel currency

number
""
internalPromotionalModifier

Promotional modifiers in wink currency

number
""
userSpecifiedCurrencyPremiumModifier

Premium modifiers in user specified currency

number
""
sourcePremiumModifier

Premium modifiers in hotel currency

number
""
internalPremiumModifier

Premium modifiers in wink currency

number
""
userSpecifiedCurrencyChannelModifier

Channel / Membership modifier in user specified currency

number
""
sourceChannelModifier

Channel / Membership modifier in hotel currency

number
""
internalChannelModifier

Channel / Membership modifier in wink currency

number
""
quantity

How many of this item is included in this price

integer format: int64
default: 1
promotionalDiscountPercent

Promotional discount percent

number
""
channelDiscountPercent

Channel discount percent

number
""
premiumPercent

Premium percent

number
""
hasChannelDiscount
boolean
hasPremium
boolean
hasPromotion
boolean
sourceTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
internalTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
userSpecifiedCurrencyTotal

Monetary amount with an associated ISO 4217 currency code, used at API boundaries where JSON-friendly serialization is needed

object
amount
required

Monetary amount value

number
""
currency
required

ISO 4217 currency code

string
"" >= 1 characters /^[A-Z]{3}$/
totalDiscountPercent
number
startDate

Date start time when reservation was made for. Optional — null for ancillaries with no specific schedule (e.g. PER_STAY/PER_USE items).

string format: date-time
""
endDate

Date end time when reservation was made for. Optional — null for ancillaries with no specific schedule (e.g. PER_STAY/PER_USE items).

string format: date-time
""
attendees
required

Number of guests that are part of this reservation.

integer format: int32
default: 1
imageIdentifier
required

Cloudinary image identifier

string
"" >= 1 characters
imageUrl
required

Absolute URL to image of inventory

string
"" >= 1 characters
localizedName
required

Name of travel inventory in traveler language (if available). Defaults to English.

string
"" >= 1 characters
localizedDescription
required

Description of travel inventory in traveler language (if available). Defaults to English.

string
"" >= 1 characters
contact
required

Travel blocking contact (if applicable)

object
firstName

Contact first name

string
""
lastName

Contact last name

string
""
email

Contact E-mail

string format: email
""
secondaryEmail

Contact secondary Email

string format: email
""
phoneNumber

Contact phone number

string
"" /^\+?[1-9]\d{1,14}$/
fullName

First and last name

string
""
summary

Summary

string
""
address
required

Travel blocking address (if applicable)

object
address1

Address line 1

string
""
address2

Address line 2

string
""
state

State

string
""
postalCode

Postal / zip code

string
""
county

County

string
""
city

City name

string
""
countryCode

Country

string
"" /^[A-Z]{2}$/
country

Country

string
""
fullAddress

Address 1, Address 2, City, State, Postal / Zip code, Country

string
""
commissionable
required
boolean
mandatory
required
boolean
commission
required
number format: float
financialBreakdown
object
sourceCurrency
string
internalCurrency
string
displayCurrency
string
displayPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
internalPriceQuote

Lightweight representation of an exchange rate quote between a source and target currency pair

object
source
required

ISO 4217 source currency code

string
"" >= 1 characters
target
required

ISO 4217 target currency code

string
"" >= 1 characters
exchangeRate
required

Exchange rate from source to target currency

number
""
timestamp
required

Unix epoch milliseconds when the quote was recorded

integer format: int64
""
beneficiaryList
Array<object>

A beneficiary is a registered account entitled to a portion of booking funds. Funds are allocated by type (SALE, COMMISSION, PLATFORM_FEE, etc.) and tracked across source, display, and internal (platform) currencies. Refund modifiers record adjustments from cancellations.

object
accountIdentifier
required

Unique identifier of the beneficiary’s account in the TripPay system

string
"" >= 1 characters
accountName
required

Display name of the beneficiary account (e.g. hotel, affiliate, or platform name)

string
"" >= 1 characters
accountEmail
required

Contact email address for the beneficiary account

string format: email
"" >= 1 characters
accountUrl

Profile or dashboard URL for the beneficiary account

string
""
type
required

Category of the beneficiary: SALE (property), COMMISSION (affiliate), PLATFORM_FEE (Wink), TRIP_PAY (platform internal), or agency fees

string
""
Allowed values: TRIP_PAY PLATFORM_FEE COMMISSION AFFILIATE_AGENCY_FEE SUPPLIER_AGENCY_FEE SALE
amountDue

Charge rule: either a fixed percentage of the total stay or the remainder after other beneficiaries are deducted

object
type
required

PERCENTAGE: apply the percent field to the total booking price. REMAINDER: this beneficiary receives whatever is left after other beneficiaries are satisfied (typically used for the hotel).

string
""
Allowed values: PERCENTAGE REMAINDER
percent

The percentage value (0.0–1.0) to apply to the total booking amount when type=PERCENTAGE. For example, 0.050 = 5% of the booking price. Ignored when type=REMAINDER.

number
""
sourceCurrency
required

ISO 4217 currency code for the originating source (supplier’s local currency, e.g. hotel in Thailand uses THB)

string
"" >= 1 characters
displayCurrency
required

ISO 4217 currency code for display to the user (e.g. booking shown in USD)

string
"" >= 1 characters
internalCurrency
required

ISO 4217 currency code for internal platform ledger (always USD)

string
"" >= 1 characters
sourceAmount
required

Gross amount owed to this beneficiary in source currency (before refunds)

number
""
displayAmount
required

Gross amount owed to this beneficiary in display currency (before refunds)

number
""
internalAmount
required

Gross amount owed to this beneficiary in internal currency (before refunds)

number
""
sourceAmountRefundModifier
required

Cumulative refund reduction applied to sourceAmount (sum of all applied PendingRefunds)

number
""
displayAmountRefundModifier
required

Cumulative refund reduction applied to displayAmount (sum of all applied PendingRefunds)

number
""
internalAmountRefundModifier
required

Cumulative refund reduction applied to internalAmount (sum of all applied PendingRefunds)

number
""
pendingRefunds
Array<object>

Pending refunds awaiting settlement. Once a refund transitions from PENDING to APPLIED, it moves out of this list and into the corresponding *AmountRefundModifier property

object
refundIdentifier
required

Unique identifier linking this pending refund to the parent booking’s refund record

string
"" >= 1 characters
sourceAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s sourceAmount when applied

number
""
displayAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s displayAmount when applied

number
""
internalAmountRefundModifier
required

Refund amount to be deducted from the beneficiary’s internalAmount when applied

number
""
netSourceAmount
required

Net amount owed in source currency (sourceAmount - sourceAmountRefundModifier)

number
""
netDisplayAmount
required

Net amount owed in display currency (displayAmount - displayAmountRefundModifier)

number
""
netInternalAmount
required

Net amount owed in internal currency (internalAmount - internalAmountRefundModifier)

number
""
reconciled

Flag indicating whether net amounts have been transferred (disbursed) from TripPay to the beneficiary

boolean
metadata

Additional key-value metadata for the beneficiary (e.g. bank details, supplier identifiers)

object
key
additional properties
string
sourceAmount
number
internalAmount
number
displayAmount
number
sourceAmountRefundModifier
number
internalAmountRefundModifier
number
displayAmountRefundModifier
number
netSourceAmount
number
netInternalAmount
number
netDisplayAmount
number
commissionableTotalSourceAmount
number
commissionableTotalInternalAmount
number
commissionableTotalDisplayAmount
number
netCommissionableTotalSourceAmount
number
netCommissionableTotalInternalAmount
number
netCommissionableTotalDisplayAmount
number
totalFeesAndCommissionsSourceAmount
number
totalFeesAndCommissionsInternalAmount
number
totalFeesAndCommissionsDisplayAmount
number
netTotalFeesAndCommissionsSourceAmount
number
netTotalFeesAndCommissionsInternalAmount
number
netTotalFeesAndCommissionsDisplayAmount
number
totalFeesSourceAmount
number
totalFeesInternalAmount
number
totalFeesDisplayAmount
number
netTotalFeesSourceAmount
number
netTotalFeesInternalAmount
number
netTotalFeesDisplayAmount
number
totalPlatformFeeSourceAmount
number
totalPlatformFeeInternalAmount
number
totalPlatformFeeDisplayAmount
number
netTotalPlatformFeeSourceAmount
number
netTotalPlatformFeeInternalAmount
number
netTotalPlatformFeeDisplayAmount
number
totalPaymentProcessingFeeSourceAmount
number
totalPaymentProcessingFeeInternalAmount
number
totalPaymentProcessingFeeDisplayAmount
number
netTotalPaymentProcessingFeeSourceAmount
number
netTotalPaymentProcessingFeeInternalAmount
number
netTotalPaymentProcessingFeeDisplayAmount
number
totalSalesSourceAmount
number
totalSalesInternalAmount
number
totalSalesDisplayAmount
number
netTotalSalesSourceAmount
number
netTotalSalesInternalAmount
number
netTotalSalesDisplayAmount
number
totalAffiliateAgencyFeesSourceAmount
number
totalAffiliateAgencyFeesInternalAmount
number
totalAffiliateAgencyFeesDisplayAmount
number
netTotalAffiliateAgencyFeesSourceAmount
number
netTotalAffiliateAgencyFeesInternalAmount
number
netTotalAffiliateAgencyFeesDisplayAmount
number
totalSupplierAgencyFeesSourceAmount
number
totalSupplierAgencyFeesInternalAmount
number
totalSupplierAgencyFeesDisplayAmount
number
netTotalSupplierAgencyFeesSourceAmount
number
netTotalSupplierAgencyFeesInternalAmount
number
netTotalSupplierAgencyFeesDisplayAmount
number
netTotalCustomersSourceAmount
number
netTotalCustomersInternalAmount
number
netTotalCustomersDisplayAmount
number
metadata
object
key
additional properties
rateSource
string
displayCurrency
string
agentSelfManaged
boolean
key
additional properties
""
Example

Bad Request — missing or invalid request parameter or body

Media typeapplication/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Unauthorized — authentication is required or the session has expired

Media typeapplication/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Forbidden — authenticated but lacking the required permission or scope

Media typeapplication/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Not Found — the requested resource does not exist

Media typeapplication/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Method Not Allowed — the HTTP verb is not supported on this endpoint

Media typeapplication/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Conflict — the resource was modified by someone else since you read it; re-read it and retry with the new version

Media typeapplication/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Unsupported Media Type — use application/json

Media typeapplication/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Internal Server Error — an unexpected failure occurred on the server

Media typeapplication/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Service Unavailable — a downstream dependency is unreachable

Media typeapplication/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example