Update transactional item
const url = 'https://api.wink.travel/api/managing-entity/e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18/extranet/facility/room-type/6f9b4c8d-1e5a-4b3c-9d2e-8a7f0c1b5e43/transactional-item/b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47';const options = { method: 'PUT', headers: { 'If-Match': '', 'Wink-Version': '2.0', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: 'null'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://api.wink.travel/api/managing-entity/e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18/extranet/facility/room-type/6f9b4c8d-1e5a-4b3c-9d2e-8a7f0c1b5e43/transactional-item/b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47 \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --header 'If-Match: ' \ --header 'Wink-Version: 2.0' \ --data nullReplaces an existing transactional inventory item on a room type. Requires INVENTORY:WRITE.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Property identifier that owns the room type.
Example
e2c7b4d3-1a8f-4e9c-b5d6-3a9f0e7c2b18Room type identifier that owns the transactional item.
Example
6f9b4c8d-1e5a-4b3c-9d2e-8a7f0c1b5e43Transactional item identifier to update.
Example
b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47Header Parameters
Section titled “Header Parameters”The room type’s last-seen version, for optimistic concurrency. Optional; a stale value is rejected with 409. Accepts a bare version (3), a quoted entity-tag (“3”), W/“3”, or *.
Request Bodyrequired
Section titled “Request Bodyrequired”Updated transactional item definition.
Request payload for creating or updating a transactional inventory item (add-on) for a spa.
object
Unique transactional item identifier.
Internal name of the transactional item.
Example
1 hour spa sessionHow this item should be priced.
Example
PER_STAYBase price of booking this item.
object
Monetary amount value
Example
1250ISO 4217 currency code
Example
USDExample
{ "amount": 1250, "currency": "USD"}Discounted selling price. Set equal to basePrice if there is no discount.
object
Monetary amount value
Example
1250ISO 4217 currency code
Example
USDExample
{ "amount": 1250, "currency": "USD"}Minimum group size for this item.
Example
0Maximum group size for this item.
Example
10Example
{ "name": "1 hour spa session", "pricingType": "PER_STAY", "basePrice": { "amount": 1250, "currency": "USD" }, "discountedPrice": { "amount": 1250, "currency": "USD" }, "minPax": 0, "maxPax": 10}Responses
Section titled “Responses”Transactional item updated successfully; the updated room type is returned.
A lightweight projection of a room type, carrying all occupancy, bedroom configuration, pricing and classification details needed for availability and booking flows.
object
Unique identifier for this record.
Datetime this record was first created
Datetime this record was last updated
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.
Hotel identifier.
Indicates whether this inventory is featured. Use this flag as a way to signify that this inventory is special.
Indicate the type of lifestyle this inventory should be associated with.
Geo-location point where blocking takes place. Defaults to location of property.
object
Localized descriptions describing inventory.
Foundation class for storing multi-language content (names and descriptions) with content change detection throughout the Wink Platform.
object
Use as title or short text description
Longer text description
Indicate which language this description is written in.
Whether it was user or system generated.
The md5 hash of the name, description and language.
List of images / videos of blocking.
Multimedia that contains less information than Multimedia object
object
Document identifier
Use this identifier to communicate with Cloudinary.
Whether Cloudinary media is a VIDEO or IMAGE.
Currently ONLY using Cloudinary to store all image / video assets.
Sort allows you to control how you want to sort this record in a list of media records.
Media angle
Media width in pixels.
Media height in pixels.
Instead of deleting the media, choose to un-publish it instead for later re-use. Could be you keep seasonal images of the property.
Supported OTA specification PIC code. See OTA geoname data
Localized media captions to give user some context about where this media was taken.
Foundation class for storing multi-language content (names and descriptions) with content change detection throughout the Wink Platform.
object
Use as title or short text description
Longer text description
Indicate which language this description is written in.
Whether it was user or system generated.
The md5 hash of the name, description and language.
Associate this media with a specific lifestyle type. A user searching and filtering inventory based on lifestyles can be shown relevant media first.
Whether image has attribution properties
object
URL to contributor
Name of contributor
True if media width is greater or equal to height
Associate a contact person for this inventory (if applicable).
object
Contact first name
Contact last name
Contact E-mail
Contact secondary Email
Contact phone number
First and last name
Summary
Defaults to property address.
object
Address line 1
Address line 2
State
Postal / zip code
County
City name
Country
Country
Address 1, Address 2, City, State, Postal / Zip code, Country
Indicate whether sales channels receive commission for selling this inventory.
Internal name of inventory.
Supported OTA specification PRX code. See OTA geoname data
Use this property to sort an blocking in a list of activities.
Supported OTA specification AQC code. See OTA geoname data
Indicates if this inventory can be added to a booking or if it is read-only marketing material only.
Modify blocking availability with this flag.
Supported OTA specification PHY code. See OTA geoname data
Supported OTA specification SEC code. See OTA geoname data
Social network accounts for blocking (if applicable).
Social network
object
Type of social network.
URL or social network identifier to social network profile
Level of expensiveness.
Inventory-level recognition.
Recognition for the ancillary blocking.
object
Recognition identifier.
Recognition category.
Type of rating system the recognition operated on. This allows us to display the score properly.
The name of the entity that administers this recognition.
The actual award or rating received by the hotel facility.
Use this to let hotels indicate what the total score for this award is.
The date the award was received
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.
Provides the symbol used in the rating. Used in conjunction with the Rating.
Purchasable items for this inventory.
This is one bookable item that can stand alongside a restaurant / meeting room etc.
object
Unique transactional identifier
Internal name of transactional blocking.
Localized descriptions describing inventory.
Foundation class for storing multi-language content (names and descriptions) with content change detection throughout the Wink Platform.
object
Use as title or short text description
Longer text description
Indicate which language this description is written in.
Whether it was user or system generated.
The md5 hash of the name, description and language.
How this inventory item should be priced.
Base price of booking this inventory.
object
Monetary amount value
ISO 4217 currency code
If you are selling this inventory at a discount, indicate the discounted selling price. Leave empty if there is no discount.
object
Monetary amount value
ISO 4217 currency code
List of images / videos of item.
Multimedia that contains less information than Multimedia object
object
Document identifier
Use this identifier to communicate with Cloudinary.
Whether Cloudinary media is a VIDEO or IMAGE.
Currently ONLY using Cloudinary to store all image / video assets.
Sort allows you to control how you want to sort this record in a list of media records.
Media angle
Media width in pixels.
Media height in pixels.
Instead of deleting the media, choose to un-publish it instead for later re-use. Could be you keep seasonal images of the property.
Supported OTA specification PIC code. See OTA geoname data
Localized media captions to give user some context about where this media was taken.
Foundation class for storing multi-language content (names and descriptions) with content change detection throughout the Wink Platform.
object
Use as title or short text description
Longer text description
Indicate which language this description is written in.
Whether it was user or system generated.
The md5 hash of the name, description and language.
Associate this media with a specific lifestyle type. A user searching and filtering inventory based on lifestyles can be shown relevant media first.
Whether image has attribution properties
object
URL to contributor
Name of contributor
True if media width is greater or equal to height
Whether there is a limit to minimum group size.
Whether there is a limit to maximum group size.
Calculates the percent difference between basePrice and discountedPrice.
Calculates the percent difference between basePrice and discountedPrice.
Publish lifecycle state: DRAFT (incomplete, not announced) or PUBLISHED (complete/live).
Maximum number of guest allowed in a room type.
Minimum number of guests allowed in a room type.
Defines the number of rooms of this type
Non-smoking indicator
A room type can have more than one bed configuration.
A named bedroom layout configuration for a room type, containing one or more bedrooms each with their own bed setup.
object
Unique identifier for this bedroom configuration layout.
Human-readable name of this room layout configuration.
List of bedrooms within this configuration layout.
A single bedroom within a room type, specifying the bedroom type and its bed configuration.
object
Bedroom type classification (e.g., MASTER, QUEEN, JUNIOR, DORMITORY, BEDROOM_1…BEDROOM_10).
List of bed configurations for this bedroom. Each entry specifies a bed type and quantity.
A single bed type and its quantity within a bedroom, described using the OpenTravel bed type code.
object
OpenTravel bed type code (e.g., 1=Double, 2=Twin, 7=Queen, 8=King). See OTA geoname data.
Number of beds of this type in the room.
Number of square meters that defines the size of this room type.
Maximum number of adults allowed in a room type.
Maximum number of children allowed in a room type.
Number of bathrooms
Number of living rooms
Maximum number of rollaway beds allowed in this room type.
OpenTravel segment category code (e.g., 1=Moderate, 4=Standard, 8=Deluxe). See OTA geoname data
Floor number on which this room type is located.
OpenTravel room location type code (e.g., 1=Near Exit, 2=Close to Elevator, 3=Low Floor, 4=High Floor). See OTA geoname data
OpenTravel room view type code (e.g., 1=Ocean View, 2=Pool View, 3=Garden View). See OTA geoname data
Indicates that the room (suite) is a composite of smaller units.
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.
OpenTravel guest room info code (e.g., 1=Suite, 2=Standard, 12=Villa, 16=Bungalow). See OTA geoname data
OpenTravel architectural style code (e.g., 1=Modern, 2=Traditional, 3=Victorian). See OTA geoname data
Used to request or specify a gender assignment for a room. Note: Typically used by Hosteliers.
If TRUE, the room requires or has sharing available. Note: Typically used by Hosteliers.
Maximum number of cribs allowed in a room type.
OpenTravel room amenity codes (e.g., 1=Balcony, 7=Air Conditioning). See OTA geoname data
The number of pax the room price was meant for
The number of children the room price was meant for
Typical one night rate during regular remand period
object
Monetary amount value
ISO 4217 currency code
Typical one night rate in a distressed period
object
Monetary amount value
ISO 4217 currency code
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", "phoneNumber": "+12125551212", "fullName": "Alexandra Beaumont", }, "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", "maxOccupancy": 2, "minOccupancy": 1, "quantity": 40, "nonSmoking": true, "bedroomConfigurationList": [ { "identifier": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47", "name": "Master Suite Layout", "bedroomList": [ { "type": "MASTER", "bedList": [ { "bedTypeCode": "1", "quantity": 2 } ] } ] } ], "size": 55, "maxAdultOccupancy": 1, "maxChildOccupancy": 0, "bathroomCount": 0, "livingRoomCount": 0, "maxRollaways": 0, "roomCategory": "1", "floor": "3", "roomLocationCode": "1", "roomViewCode": "1", "composite": false, "compositeCount": 2, "roomClassificationCode": "1", "roomArchitectureCode": "1", "roomGender": "Female", "sharedRoomInd": false, "maxCribs": 1, "includedAdultOccupancy": 2, "includedChildOccupancy": 0, "baseRate": { "amount": 1250, "currency": "USD" }, "minRate": { "amount": 1250, "currency": "USD" }}Bad Request — missing or invalid request parameter or body
object
object
Example
Unauthorized — authentication is required or the session has expired
object
object
Example
Forbidden — authenticated but lacking the required permission or scope
object
object
Example
Not Found — the requested resource does not exist
object
object
Example
Method Not Allowed — the HTTP verb is not supported on this endpoint
object
object
Example
Conflict — the resource was modified by someone else since you read it; re-read it and retry with the new version
object
object
Example
Unsupported Media Type — use application/json
object
object
Example
Internal Server Error — an unexpected failure occurred on the server
object
object
Example
Service Unavailable — a downstream dependency is unreachable
