Skip to main content

Board Code Catalog

Every availability option carries two board codes:

FieldMeaning
boardCodeThe normalized code, translated from the supplier's value into the catalog below.
providerBoardCodeThe supplier's own code, exactly as we received it.

Read boardCode to group and filter by meal plan, and providerBoardCode when you need to tell apart two options that normalize to the same code.

Catalog

The codes are Spanish acronyms, because the normalized vocabulary predates the English API (SA = solo alojamiento, AD = alojamiento y desayuno, and so on). The Spanish column is included so the acronyms are readable, not because the API ever returns Spanish text.

CodeNameSpanish régimen
SARoom onlySolo alojamiento
ADBed and breakfastAlojamiento y desayuno
DAAmerican breakfastDesayuno americano
DCContinental breakfastDesayuno continental
DEScottish breakfastDesayuno escocés
DIEnglish breakfastDesayuno inglés
DIRIrish breakfastDesayuno irlandés
BRBrunchBrunch
SCOLunch onlySolo comida
SCDinner onlySolo cena
MPHalf boardMedia pensión
MPZHalf board with lunchMedia pensión con comida
MPBHalf board with drinksMedia pensión con bebidas
MPAVHalf board with water and wineMedia pensión con agua y vino
MLHalf board plusMedia pensión plus
PCFull boardPensión completa
PCBFull board with drinksPensión completa con bebidas
PCAVFull board with water and winePensión completa con agua y vino
PCPFull board plusPensión completa plus
TIAll inclusiveTodo incluido
TLAll inclusive softTodo incluido light
TPAll inclusive plusTodo incluido plus
TRAll inclusive premiumTodo incluido premium
TIIAll inclusive imperialTodo incluido imperial
TOAll inclusive goldTodo incluido gold
DSNEYDisney meal planPlan de comidas Disney
DSNEYKDisney quick serviceDisney quick service
SC is dinner, not self catering

SC means dinner only. A supplier code of SC usually means self catering, and it normalizes to SA (room only). So a supplier's SC and our SC are different meal plans — always translate through the mapping instead of comparing the two strings.

Codes outside this table can still appear. The catalog also holds entries that reached it before anyone could name them, either harvested from a supplier we had no mapping for yet, or inherited from a legacy load: 1M, 2, ADMP, AM, DPLL, DT, FBFB, FROB, MDL, MPA, MPP, ON, SAG, SP, and TS. Treat them as opaque and fall back to boardName or providerBoardCode for display.

They stay unnamed because nobody has assigned an English description yet: some arrive on an availability response without a matching entry in that supplier's published board catalog (hobv2 DT / TS), others are legacy base codes that several providers still map into. Naming one means asking the supplier or reading their board content, not inferring from the letters — the same code means different plans across suppliers (TS is all inclusive plus for one connection and unknown for another). Numeric meal types are not opaque in the same way: a connection that publishes an ordinal table (for example 1331 breakfast through 1336 all inclusive) is named from that table and folded into this catalog.

Why several options share one code

The translation is many-to-one, and the collapse is heavy at the top of the table. Around 70 distinct supplier codes normalize to SA, and around 60 to AD. A single hotel can legitimately return several options that all read SA while differing in the supplier's own wording:

[
{ "boardCode": "SA", "providerBoardCode": "RO", "boardName": "Room only" },
{ "boardCode": "SA", "providerBoardCode": "SC", "boardName": "Self catering" },
{ "boardCode": "SA", "providerBoardCode": "RO12", "boardName": "Room only, no refund" }
]

This is expected: those are three different supplier products with the same meal plan. If your UI shows them as three identical rows, differentiate on providerBoardCode or boardName rather than on boardCode.

The vocabulary depends on the connection

Not every connection speaks the catalog above. Two modes are in use:

ModeWhat boardCode containsConnections
NormalizedCatalog codes (SA, AD, MP, …)Most connections, resolved from the mapping database, plus mtx from a static list
PassthroughThe supplier's own code, untranslatedConnections configured to mirror codes, e.g. t10, stn

So RO and SA can both appear across connections and mean room only, and BB and AD can both mean bed and breakfast. If you aggregate across connections, normalize those pairs on your side until every connection is migrated.

On a passthrough connection, boardName is the reliable field: stn, for example, publishes over 500 boards with hotel-specific meanings (Half Board (Boxed Breakfast), Iftar, Full Board (Incl. Light Excursions)) that no catalog code captures without losing what the supplier actually sells. Read the code for filtering and grouping, and the name for display.

Filtering by board

resultFilters.boardCodes matches boardCode case-insensitively and falls back to providerBoardCode when the normalized code is empty, so a filter written against either vocabulary works:

{
"criteria": {
"resultFilters": {
"boardCodes": ["AD", "MP"]
}
}
}

See Result filters for how it composes with the other filters.

Next Steps