> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pageonetravel.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Common Objects

> Shared request/response structures and enums.

## Settings Object

Used by: `search`, `quote`, `book`, `cancel`

| Field                            | Type    | Required | Notes                     |
| -------------------------------- | ------- | -------- | ------------------------- |
| `access.code`                    | number  | Yes      | Partner connection code   |
| `access.user`                    | string  | No       | Reserved                  |
| `access.password`                | string  | No       | Reserved                  |
| `access.apiKey`                  | string  | No       | Reserved                  |
| `access.urls.book`               | string  | No       | Reserved                  |
| `access.urls.search`             | string  | No       | Reserved                  |
| `access.urls.quote`              | string  | No       | Reserved                  |
| `access.urls.generic`            | string  | No       | Reserved                  |
| `access.parameters`              | object  | No       | Reserved key-value map    |
| `businessRules.optionsQuota`     | number  | No       | Search option cap (`>=1`) |
| `businessRules.businessRuleType` | string  | No       | `CHEAPEST` or `DEFAULT`   |
| `supplier`                       | string  | No       | Reserved                  |
| `platform`                       | string  | No       | Reserved                  |
| `client`                         | string  | No       | Reserved                  |
| `timeout`                        | string  | No       | Upstream timeout hint     |
| `includeProviderTransactions`    | boolean | No       | Reserved                  |

## Occupancy Object

Used by: search/quote/book

| Field                 | Type   | Required | Notes                        |
| --------------------- | ------ | -------- | ---------------------------- |
| `occupancyId`         | number | No       | Optional occupancy reference |
| `paxes[]`             | array  | Yes      | Guest list                   |
| `paxes[].age`         | number | Yes      | Guest age                    |
| `paxes[].nationality` | string | No       | Nationality                  |
| `paxes[].name`        | string | No       | Book API input only          |
| `paxes[].surName`     | string | No       | Book API input only          |

## Distribution Context Object

Top-level fields:

| Field                           | Type      | Required | Notes            |                   |                    |
| ------------------------------- | --------- | -------- | ---------------- | ----------------- | ------------------ |
| `customer.deviceType`           | string    | No       | \`DESKTOP        | MOBILE            | TABLET\`           |
| `customer.location.countryCode` | string    | No       | ISO country code |                   |                    |
| `customer.userGroup`            | string    | No       | \`SIGNED\_IN     | UNAUTHENTICATED\` |                    |
| `customer.minCompletedStays`    | number    | No       | `>=0`            |                   |                    |
| `customer.userAgent`            | string    | No       | Optional         |                   |                    |
| `customer.ipAddress`            | string    | No       | Optional         |                   |                    |
| `customer.sessionID`            | string    | No       | Optional         |                   |                    |
| `salesChannel`                  | string    | No       | \`WEB            | APP               | OFFLINE\`          |
| `distributionMode`              | string    | No       | \`CUSTOMER       | REDISTRIBUTION\`  |                    |
| `supportedVisibilityTypes[]`    | string\[] | No       | \`PUBLIC         | PACKAGE           | OPAQUE\_PROPERTY\` |

## Rate Object (`RateResponseDto`)

Used in search/quote/book responses.

| Field                      | Type   | Notes                           |
| -------------------------- | ------ | ------------------------------- |
| `currency`                 | string | ISO 4217                        |
| `baseRate`                 | number | Base amount                     |
| `taxesAndFees`             | number | Taxes/fees charged online       |
| `taxesAndFeesBreakDown[]`  | array  | `{ value, description }`        |
| `chargeTotal`              | number | Total charge amount             |
| `payAtPropertyFee`         | number | Optional pay-at-property amount |
| `payAtPropertyBreakDown[]` | array  | `{ value, description }`        |

## Cancellation Policy Object

| Field                           | Type         | Notes                                |
| ------------------------------- | ------------ | ------------------------------------ |
| `refundable`                    | boolean/null | Whether refundable                   |
| `cancelPenalties[]`             | array        | Ordered penalty list                 |
| `cancelPenalties[].penaltyType` | string       | Usually `IMPORT` after normalization |
| `cancelPenalties[].currency`    | string       | Penalty currency                     |
| `cancelPenalties[].deadline`    | string       | ISO datetime                         |
| `cancelPenalties[].value`       | number       | Penalty amount                       |

## Enum Reference

### Connection

* `apiType`: `public`, `b2b`, `cug`, `mobile`
* `connectionType`: `direct`, `tgx`, `metasearch`

### User Role

* `admin`
* `user`

### PaymentType (book/quote schema compatible)

* `LaterPay`
* `MerchantPay`
* `CardBookingPay`
* `CardCheckInPay`
* `PayX`

### Search Business Rule Type

* `CHEAPEST`
* `DEFAULT`
