> For the complete documentation index, see [llms.txt](https://knowledgebase.flaik.com/flaik-knowledge-base/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://knowledgebase.flaik.com/flaik-knowledge-base/for-it-specialists/3.-flaik-connect-api/pos-integration/resort-product-mappings.md).

# Resort Product Mappings

## Overview

Returns the configured POS-product → flaik-task mappings for a season. Use this to translate a POS product code (e.g. a Siriusware, RTP, or InTouch product) into the flaik task that a sale of that product should be associated with.

Three categories are returned in one response:

* **Private lesson products** — products that map to a private-lesson task. May also carry a default duration (consecutive days) for the booked lesson.
* **Group lesson products** — products that map to a group-lesson task.
* **Additional guest lesson products** — products used to add guests to existing lessons (e.g. additional siblings on a private lesson). These do not map to a task by themselves; they're add-ons.

A mapping with a `null` `mappedTaskId` is **unmapped** — the resort has the product configured but hasn't yet pointed it at a flaik task. Treat unmapped products as informational rather than actionable.

## Authentication

Include your access token in the Authorization header:

```http
Authorization: Bearer {access_token}
```

See the [Authentication Guide](https://knowledgebase.flaik.com/flaik-knowledge-base/for-it-specialists/3.-flaik-connect-api/overview/authentication) for details on obtaining access tokens.

## Endpoint

```http
GET {api-url}/api/posintegration/resort-mappings/{seasonId}
```

**Path Parameters**

| Parameter  | Type    | Required | Description                                                                                                                                                                    |
| ---------- | ------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `seasonId` | integer | Yes      | Season identifier — retrieve from the [Seasons](https://knowledgebase.flaik.com/flaik-knowledge-base/for-it-specialists/3.-flaik-connect-api/global-settings/seasons) endpoint |

**Query Parameters**

None.

**Example Request**

```http
GET {api-url}/api/posintegration/resort-mappings/17
Authorization: Bearer {access_token}
```

**Response Format**

```json
{
  "seasonId": 17,
  "privateLessonProducts": [
    {
      "id": 101,
      "resortProductId": 5501,
      "resortProductCode": "PVT-FULL-DAY",
      "resortProductName": "Private Lesson — Full Day",
      "mappedTaskId": 11,
      "mappedTaskName": "Private Full Day"
    },
    {
      "id": 102,
      "resortProductId": 5502,
      "resortProductCode": "PVT-HALF-DAY",
      "resortProductName": "Private Lesson — Half Day",
      "mappedTaskId": null,
      "mappedTaskName": null
    }
  ],
  "groupLessonProducts": [
    {
      "id": 201,
      "resortProductId": 5601,
      "resortProductCode": "GRP-3DAY",
      "resortProductName": "Group Lesson — 3 Day Camp",
      "mappedTaskId": 22,
      "mappedTaskName": "Group 3-Day Camp",
      "defaultConsecutiveDays": 3
    }
  ],
  "additionalGuestLessonProducts": [
    {
      "id": 301,
      "resortProductId": 5701,
      "resortProductCode": "ADD-GUEST",
      "resortProductName": "Additional Guest"
    }
  ]
}
```

**Top-Level Response Fields**

| Field                           | Type    | Description                                         |
| ------------------------------- | ------- | --------------------------------------------------- |
| `seasonId`                      | integer | The season the mappings apply to                    |
| `privateLessonProducts`         | array   | Private-lesson product mappings (see fields below)  |
| `groupLessonProducts`           | array   | Group-lesson product mappings (see fields below)    |
| `additionalGuestLessonProducts` | array   | Additional-guest product entries (see fields below) |

**Private Lesson Product Fields (`privateLessonProducts[]`)**

| Field               | Type    | Description                                                                             |
| ------------------- | ------- | --------------------------------------------------------------------------------------- |
| `id`                | integer | Mapping identifier (unique per resort × season)                                         |
| `resortProductId`   | integer | The POS product identifier as stored in Flaik                                           |
| `resortProductCode` | string  | The POS product code as it appears in the resort's POS system — empty string if not set |
| `resortProductName` | string  | The POS product display name — empty string if not set                                  |
| `mappedTaskId`      | integer | flaik task this product maps to, or `null` if unmapped                                  |
| `mappedTaskName`    | string  | flaik task display name, or `null` if unmapped                                          |

**Group Lesson Product Fields (`groupLessonProducts[]`)**

Same as Private Lesson, plus:

| Field                    | Type    | Description                                                                           |
| ------------------------ | ------- | ------------------------------------------------------------------------------------- |
| `defaultConsecutiveDays` | integer | Default duration in consecutive days for a booked lesson, or `null` if not configured |

**Additional Guest Product Fields (`additionalGuestLessonProducts[]`)**

| Field               | Type    | Description                                                                             |
| ------------------- | ------- | --------------------------------------------------------------------------------------- |
| `id`                | integer | Mapping identifier                                                                      |
| `resortProductId`   | integer | The POS product identifier as stored in flaik                                           |
| `resortProductCode` | string  | The POS product code as it appears in the resort's POS system — empty string if not set |
| `resortProductName` | string  | The POS product display name — empty string if not set                                  |

{% hint style="info" %}
Additional-guest products do not have a `mappedTaskId` — they ride on top of an existing private/group lesson booking and don't represent a standalone task.
{% endhint %}

## Error Responses

| HTTP Status | Description                                            |
| ----------- | ------------------------------------------------------ |
| `400`       | The supplied `seasonId` does not exist for this resort |
| `401`       | Missing or invalid access token                        |

Need help with POS mappings? Contact <resortsupport@flaik.com>.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://knowledgebase.flaik.com/flaik-knowledge-base/for-it-specialists/3.-flaik-connect-api/pos-integration/resort-product-mappings.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
