# Quick Start

Channels Plus connects your booking channel with SiteMinder's distribution platform. Through Channels Plus, your channel can search for available properties, retrieve room and rate details, and manage bookings.

**API components:**

* **Properties**: Search and retrieve property details
* **Property**: Availability, pricing, and room configuration
* **Reservations**: Create, modify, and cancel reservations
* **Deals**: Negotiate competitive rates with properties

{% hint style="success" %}
Explore all components in the [API Overview](/channels-plus-api/guides/api-overview.md).
{% endhint %}

***

## Before You Begin

### Partnership Required

Access to Channels Plus requires an active partnership agreement with SiteMinder. Once your agreement is in place, you will receive your test environment details.

<a href="https://www.siteminder.com/integrations/apply-now/" class="button primary">Become a SiteMinder Partner</a>

{% hint style="info" %}
**You don't need to wait for your test environment to start development.** You can begin building and testing immediately. See [Make Your First Call](#make-your-first-call) below or explore requests directly in the [Postman](#explore-with-postman) collection.
{% endhint %}

### What You'll Receive from SiteMinder

SiteMinder will provide the following to get you started:

<table><thead><tr><th width="171.01336669921875">Item</th><th>Details</th></tr></thead><tbody><tr><td>REST endpoint</td><td><a href="https://tpi-channel-api.preprod.smchannelsplus.com">https://tpi-channel-api.preprod.smchannelsplus.com</a></td></tr><tr><td>Partner Portal</td><td>Access to generate your <code>API ID</code> and <code>API Key</code>, and to create Deals</td></tr></tbody></table>

## Set Up Your Environment

### Authentication

Channels Plus uses **channel-level authentication** — two headers on every request (`API ID` and `API Key`), both generated from the Partner Portal.

```bash
--header 'x-sm-api-id: YOUR_API_ID' \
--header 'x-sm-api-key: YOUR_API_KEY'
```

{% hint style="warning" %}
Keep your `API ID` and `API Key` private. Never expose them in front-end or client-side code. This API is for server-to-server use only.
{% endhint %}

### API Specification File

**REST (OpenAPI)**

* **Channels Plus** — [download YAML](https://openapi.gitbook.com/o/qrJuVY5UOf3h7cLyla8z/spec/channels-plus-api.yaml)

***

## Make Your First Call

The first call every Channels Plus integration must implement is [Get Properties](/channels-plus-api/reference/properties.md) — your channel retrieves a list of available properties from SiteMinder based on location and date criteria.

{% stepper %}
{% step %}

### Authenticate

Pass your `API ID` and `API Key` as headers on every request:

{% code overflow="wrap" expandable="true" %}

```bash
--header 'x-sm-api-id: YOUR_API_ID' \
--header 'x-sm-api-key: YOUR_API_KEY'
```

{% endcode %}
{% endstep %}

{% step %}

### Make the call

Retrieve available properties by location and date:

{% code overflow="wrap" expandable="true" %}

```bash
curl -L \
  --url 'https://tpi-channel-api.preprod.smchannelsplus.com/properties?latitude=1&longitude=1&checkin=2026-04-07&checkout=2026-04-07' \
  --header 'x-sm-api-id: YOUR_API_ID' \
  --header 'x-sm-api-key: YOUR_API_KEY' \
  --header 'Accept: */*'
```

{% endcode %}
{% endstep %}

{% step %}

### Handle the response

A successful response returns an array of properties matching your search criteria, each including room types, rate plans, pricing, and commission details:

{% code overflow="wrap" expandable="true" %}

```json
[
  {
    "uuid": "text",
    "name": "text",
    "propertyType": { "text": "text", "language": "text" },
    "address": "text",
    "country": "text",
    "latitude": 1,
    "longitude": 1,
    "starRating": 1,
    "currency": "text",
    "totalCommissionPercentage": 1,
    "rooms": [
      {
        "roomRateUuid": "text",
        "ratePlanName": "text",
        "adults": 1,
        "cancellationPolicy": {
          "policyType": "non-refundable",
          "freeCancellationUntilDays": 1
        },
        "prices": [
          {
            "totalPrice": 1,
            "dealCode": "text",
            "totalCommissionPercentage": 1
          }
        ]
      }
    ]
  }
]
```

{% endcode %}
{% endstep %}

{% step %}

### Handle errors

If your API ID or API Key is missing or invalid:

{% code overflow="wrap" expandable="true" %}

```json
{
  "errors": [
    {
      "code": "text",
      "message": "text",
      "meta": {}
    }
  ]
}
```

{% endcode %}

{% hint style="danger" %}
**401** - Check your `x-sm-api-id` and `x-sm-api-key` headers are correct and present on every request.
{% endhint %}

{% code overflow="wrap" expandable="true" %}

```json
{
  "errors": [
    {
      "code": "text",
      "message": "text",
      "meta": {}
    }
  ]
}
```

{% endcode %}

{% hint style="danger" %}
**429** - The number of requests for the last 5 minutes has reached the limit for your channel. Wait before retrying.
{% endhint %}
{% endstep %}
{% endstepper %}

***

### Create a Deal

Deals allow your channel to negotiate competitive rates directly with properties, giving your customers access to exclusive pricing.

**To set up your first deal:**

1. Log in to the [Partner Portal](https://developer.siteminder.com/siteminder-apis/channels/introduction/channels-plus/technical-guide/partner-portal)
2. Create a deal using a test property
3. Notify the Partner Integrations team once your deal is ready for approval
4. Once approved, use the `dealCode` returned in the properties response to apply the negotiated rate in your requests

{% hint style="info" %}
For full details on the Deals feature, see [Deals](/channels-plus-api/additional-resources/commercial/deals.md).
{% endhint %}

***

## Explore with Postman

Fork SiteMinder's Channels Plus Postman workspace to run requests with pre-configured environments.

→ [Channels Plus Postman Workspace](https://www.postman.com/siteminder-apis/channels-plus/overview)

### Your credentials

Update the Postman environment with your credentials from the Partner Portal before running any collection:

<table><thead><tr><th width="164.22564697265625">Variable</th><th>Value</th></tr></thead><tbody><tr><td><code>API ID</code></td><td>Your API ID from the Partner Portal</td></tr><tr><td><code>API Key</code></td><td>Your API Key from the Partner Portal</td></tr></tbody></table>

{% hint style="info" %}
For full certification scenario coverage, see [Testing and Certification](https://developer.siteminder.com/siteminder-apis/channels/introduction/channels-plus/testing-and-certification).
{% endhint %}

{% hint style="success" icon="sparkles" %}

## Still have questions?

Use the <i class="fa-gitbook-assistant">:gitbook-assistant:</i> **Ask** button at the top of the page to chat with our AI assistant — it can help you navigate the guide, understand requirements, and troubleshoot issues.

If you need more support, visit [Integration Support](/integration-support/integration-support.md).
{% endhint %}


---

# Agent Instructions: 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:

```
GET https://developer.siteminder.com/channels-plus-api/guides/quick-start.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
