# GetAllProducts

The `GetAllProducts` API retrieves **room-level product details** for a specific hotel property. It provides detailed rate plans, pricing, amenities, cancellation policies, and room selection keys required for booking.

This API is used **after selecting a property** from the `GetBestProperty` API to view all available rooms and pricing options.

***

#### **Endpoint**

```
POST [SD-Domain]/api/SmartDistribution/getproducts
```

***

#### **Headers**

| Header Name  | Value / Example  | Required | Description                           |
| ------------ | ---------------- | -------- | ------------------------------------- |
| Content-Type | application/json | Yes      | Indicates the request body is JSON    |
| apiKey       | RGKEY            | Yes      | API key provided by SmartDistribution |
| apiSecret    | SECRETL          | Yes      | API secret for authentication         |

***

#### &#x20;Request Payload (JSON)

```json
{
  "propertyID": "ChIJeXrzAF12NIQRzC1Cl0_AFsM",
  "checkin": "2025-07-24",
  "checkout": "2025-07-25",
  "Rooms": [
    {
      "numberOfRoom": 1,
      "adults": 2,
      "children": 1,
      "paxes": [
        {
          "type": "Child",
          "age": 8
        }
      ]
    }
  ],
  "echoToken": "mylC5mlCpx6Jn2jM"
}
```

***

### &#x20;Request Field Details

| Field        | Type          | Required | Description                                                                |
| ------------ | ------------- | -------- | -------------------------------------------------------------------------- |
| `propertyID` | string        | Yes      | Unique identifier for the property (e.g., get in getBestProperty response) |
| `checkin`    | string (date) | Yes      | Desired check-in date in YYYY-MM-DD format                                 |
| `checkout`   | string (date) | Yes      | Desired check-out date in YYYY-MM-DD format                                |
| `Rooms`      | array         | Yes      | List of room occupancy configurations                                      |

#### └─ Rooms Object

| Field          | Type    | Required | Description                                     |
| -------------- | ------- | -------- | ----------------------------------------------- |
| `numberOfRoom` | integer | Yes      | Number of rooms requested in this configuration |
| `adults`       | integer | Yes      | Number of adults in the room                    |
| `children`     | integer | Yes      | Number of children in the room                  |
| `paxes`        | array   | Yes      | Pax details (especially child age for pricing)  |

**└── Paxes Object**

| Field  | Type    | Required | Description                       |
| ------ | ------- | -------- | --------------------------------- |
| `type` | string  | Yes      | Guest type (Adult or Child)       |
| `age`  | integer | Yes      | Guest age (required for children) |

***

| Field       | Type   | Required | Description                                   |
| ----------- | ------ | -------- | --------------------------------------------- |
| `echoToken` | string | Optional | Optional request tracking token or session ID |

✅ **Successful Response Format**

```json
{
  "body": {
    "PropertyId": "HT123",
    "PropertyName": "Grand Hotel",
    "Description": "A luxury hotel near the beach",
    "Images": [
      "https://example.com/img1.jpg",
      "https://example.com/img2.jpg"
    ],
    "Currency": "USD",
    "HotelCode": "GH567",
    "Price": 199.99,
    "NumberOfRoom": 2,
    "Code": "P123",
    "CountryCode": "US",
    "CountryName": "United States",
    "StateCode": "CA",
    "StateName": "California",
    "DestinationCode": "LAX",
    "DestinationName": "Los Angeles",
    "ZoneCode": "Z001",
    "ZoneName": "Beach Zone",
    "Longitude": -118.2437,
    "Latitude": 34.0522,
    "CategoryCode": "CAT1",
    "CategoryName": "Luxury",
    "CategoryGroupCode": "GRP1",
    "CategoryGroupDesc": "Premium Group",
    "ChainCode": "CH123",
    "ChainName": "HotelChain",
    "AccomodationType": "Hotel",
    "AccMultiDesc": "Multi Description",
    "AccTypeDesc": "Hotel Type",
    "Address": "123 Beach Ave",
    "Street": "Beach Ave",
    "City": "Los Angeles",
    "PostalCode": "90001",
    "S2C": "Y",
    "Ranking": 5,
    "HotelSegments": [
      {
        "Code": "SEG1",
        "Name": "Family"
      }
    ],
    "HotelBoard": [
      {
        "Code": "BB",
        "Name": "Bed &amp; Breakfast"
      }
    ],
    "HotelFacility": [
      {
        "FacilityGroupName": "General",
        "FacilityInfo": [
          {
            "FacilityName": "WiFi",
            "FacilityDescription": "Free high-speed internet"
          }
        ]
      }
    ],
    "HotelAmenities": [
      "Pool",
      "Gym"
    ],
    "Products": [
      {
        "RoomCode": "RM001",
        "Name": "Deluxe Room",
        "NativeCurrency": "USD",
        "Rate": [
          {
            "rateKey": "RK123",
            "RateCode": "RC456",
            "rateType": "REF",
            "TotalPrice": "200.00",
            "allotment": 5,
            "rateCommentsId": "RCID789",
            "rateComments": "Non-refundable",
            "paymentType": "AT_WEB",
            "packaging": false,
            "boardCode": "BB",
            "boardName": "Bed &amp; Breakfast",
            "cancellationPolicies": [
              {
                "amount": "100.00",
                "from": "2025-07-20T00:00:00"
              }
            ],
            "taxes": {
              "taxes": [
                {
                  "included": true,
                  "amount": "20.00",
                  "currency": "USD"
                }
              ],
              "allIncluded": true
            },
            "rooms": 1,
            "adults": 2,
            "children": 1,
            "offers": [
              {
                "code": "OFF1",
                "name": "Early Bird",
                "amount": "10.00"
              }
            ]
          }
        ]
      }
    ]
  },
  "status": true,
  "description": null,
  "statusCode": 200
}
```

***

### &#x20;Body Object Details

| Field             | Type      | Description                      |
| ----------------- | --------- | -------------------------------- |
| PropertyId        | string    | Unique property identifier       |
| PropertyName      | string    | Hotel name                       |
| Description       | string    | Description of the hotel         |
| Images            | string\[] | List of image URLs               |
| HotelCode         | string    | Internal hotel code              |
| CountryCode       | string    | Country ISO code                 |
| CountryName       | string    | Full country name                |
| StateCode         | string    | State/province code              |
| StateName         | string    | Full state/province name         |
| DestinationnCode  | string    | Destination code (airport/city)  |
| DestinationName   | string    | Destination name                 |
| ZoneCode          | string    | Zone identifier                  |
| ZoneName          | string    | Zone name                        |
| Longitude         | number    | Longitude coordinates            |
| Latitude          | number    | Latitude coordinates             |
| CategoryCode      | string    | Category code (e.g., luxury)     |
| CategoryName      | string    | Category name                    |
| CategoryGroupCode | string    | Grouping for hotel categories    |
| CategoryGroupDesc | string    | Group description                |
| ChainCode         | string    | Hotel chain code                 |
| ChainName         | string    | Hotel chain name                 |
| AccomodationType  | string    | Hotel type (e.g., Hotel, Resort) |
| AccMultiDesc      | string    | Multilingual description         |
| AccTypeDesc       | string    | Type description (display)       |
| Address           | string    | Full address                     |
| Street            | string    | Street address                   |
| City              | string    | City name                        |
| PostalCode        | string    | ZIP/postal code                  |
| S2C               | string    | Search-to-contract flag          |
| Ranking           | integer   | Star or rank rating              |
| HotelSegments     | array     | List of hotel segment objects    |
| HotelBoard        | array     | List of board options            |
| HotelFacility     | array     | Grouped list of facilities       |
| HotelAmenities    | string\[] | Simple amenities list            |
| Products          | array     | Available rooms with rates       |

***

### 🛏️ Products \[] Object Fields

| Field          | Type          | Description                          |
| -------------- | ------------- | ------------------------------------ |
| roomCode       | string        | Unique room code (e.g., TWN.DX)      |
| name           | string        | Room name (e.g., TWIN DELUXE)        |
| nativeCurrency | string        | Currency for rate prices (e.g., EUR) |
| rate           | array of Rate | List of available rate plans         |

***

### 💰 Rate \[] Object Fields

| Field                | Type                        | Description                                                 |
| -------------------- | --------------------------- | ----------------------------------------------------------- |
| rateKey              | string                      | Unique identifier for rate selection                        |
| RateCode             | string                      | Rate plan code (e.g., NOR)                                  |
| rateType             | string                      | Type of rate (e.g., RECHECK)                                |
| TotalPrice           | string                      | Total price for the stay (string format, in nativeCurrency) |
| allotment            | integer                     | Number of rooms available under this rate                   |
| rateCommentsId       | string/null                 | Reference to external rate comment                          |
| rateComments         | string/null                 | Full text of rate comment                                   |
| paymentType          | string                      | Payment method (e.g., AT\_WEB)                              |
| packaging            | boolean                     | If the rate includes a package (true/false)                 |
| boardCode            | string                      | Board type code (e.g., RO = Room Only)                      |
| boardName            | string                      | Description of the board (e.g., ROOM ONLY)                  |
| cancellationPolicies | array of CancellationPolicy | Applicable cancellation conditions                          |
| taxes                | Object                      | Tax info                                                    |
| rooms                | integer                     | Number of rooms                                             |
| adults               | integer                     | Number of adults                                            |
| children             | integer                     | Number of children                                          |
| offers               | object/null                 | Special offer details                                       |

***

### ❌ cancelPolicy Object

| Field  | Type                  | Description                                        |
| ------ | --------------------- | -------------------------------------------------- |
| amount | string                | Amount charged for cancellation                    |
| from   | string (ISO DateTime) | When the cancellation fee applies (timezone-aware) |

***

### 🧾 taxes Object

| Field       | Type    | Description                |
| ----------- | ------- | -------------------------- |
| taxes       | array   | List of tax breakdowns     |
| allIncluded | boolean | Whether all taxes included |

***

### 🧮 taxes Array

| Field          | Type    | Description               |
| -------------- | ------- | ------------------------- |
| included       | boolean | Included in total price   |
| amount         | string  | Tax amount                |
| currency       | string  | Currency code (e.g., USD) |
| clientAmount   | string  | Client-view tax amount    |
| clientCurrency | string  | Client currency code      |

***

### 🏨 Additional Hotel Fields from body

| Field          | Type           | Description                      |
| -------------- | -------------- | -------------------------------- |
| HotelSegments  | Array\[object] | Same as GetBestProperty Response |
| HotelBoard     | Array\[object] | Same as GetBestProperty Response |
| HotelFacility  | Array\[object] | Same as GetBestProperty Response |
| HotelAmenities | Array\[string] | Same as GetBestProperty Response |

***

### 📝 Notes

* Some fields like categoryCode, address, ranking, zoneName, etc. may return null if unavailable.
* Use roomSelectionKey when proceeding to CreateReservation.
* roomTypes\[] may have one or many room configurations with different prices or board types.

<br>
