| Field | Required | Notes |
|---|---|---|
roomRates | Yes | Must contain at least one room. |
index | Yes | Must be unique within the request. Results are returned against this value. |
roomName | Yes | The supplier room name, as the supplier gave it to you. |
provider | Yes | Must be a name from the master provider list, and your account must be entitled to it. |
providerHotelId | Yes | The supplier's own identifier for the property. |
code | No | Not rejected when missing, but strongly recommended. Send the room code, not the rate plan code. |
description | No | Frequently carries bedding, view and occupancy detail that the room name omits. |
beds, view, boardBasis, refundability | No | Used as supporting evidence where present. |
attributes | No | Structured room features. See the value rules below. |
HasBalcony and hasbalcony behave identically. Attribute values are not free text. Only four values are recognised, case insensitively:| Value sent | Effect |
|---|---|
Yes or Allowed | The attribute is applied. |
No or NotAllowed | The negative form of the attribute is applied, where one exists. |
| Anything else | Silently ignored. |
true, 1, Y, enabled and an empty string all fall into the last row. They are not rejected and no warning is returned. They simply have no effect, and the room is mapped as though you had never sent the attribute at all."Yes " with a trailing space falls into the same last row. Trim your values before you send them.No value is ignored rather than rejected. Negative forms are also less complete than positive ones, and a few are spelled differently from their positive counterpart, so verify that a No value has taken effect rather than assuming it. Use the master room attributes endpoint for the list of keys that are recognised, bearing in mind that it returns the master list with any attributes your account ignores already removed.MappedOcccupancy, with three letter c characters. Any integration that corrects that spelling on ingest, or that assumes the obvious spelling, silently reads an empty column. Match header strings exactly in both directions, and check your header row against the input template linked in the File Based Room Mapping (Offline) section before every upload.NON_ENGLISH_CONTENT_DETECTED. Treat that warning as a quality signal rather than noise. Much of the normalisation is skipped for that content and the room category falls back to the room name as a whole, so grouping is markedly less reliable than it is for English content. Send the culture header for one of the supported languages listed on the References page, and review any group that carries this warning.Standard Room is not itself penalised, but it carries no distinguishing detail, so it gives the service nothing to group on.matchScore starts at 100 and subtracts penalties for missing or conflicting evidence. cfs continues from that figure and subtracts a further set of softer penalties, so cfs is always at or below matchScore for the same rate.matchScore floors at 60. cfs floors at 65 in production. A value at the floor therefore means "at or below that figure" rather than exactly it.