Endpoint
POST /api/quote/tgx exists in controller but is not implemented yet. Use /api/quote.
Authentication
- Required header:
api-key: <partner-api-key> - Required body field:
settings.access.code
Headers
| Header | Required | Description |
|---|---|---|
Content-Type | Yes | application/json |
api-key | Yes | Partner API key |
connection-code | Optional | Auto-filled from body |
session-id | Optional | Auto-generated if missing |
Request Body
Top-level fields
| Field | Type | Required | Notes |
|---|---|---|---|
quoteCriteria | object | Yes | Selected option context |
settings | object | Yes | Must include access.code |
distributionContext | object | No | Optional |
requestFromPortal | boolean | No | Default false |
quoteCriteria fields
| Field | Type | Required | Notes |
|---|---|---|---|
optionId | string | Yes | From search response option ID |
accommodation.type | string | No | Default Hotel |
accommodation.code | string | Yes | Must match cached search option |
occupancies[] | array | Yes | Must match cached search occupancy snapshot |
occupancies[].occupancyId | number | No | Optional |
occupancies[].paxes[] | array | Yes | Guest list |
occupancies[].paxes[].age | number | Yes | Guest age |
occupancies[].paxes[].nationality | string | No | Guest nationality |
market | string | No | Market code |
paymentType | string | No | Defaults to MerchantPay |
parameters[] | array | No | Additional parameter list |
parameters[].key | number | Yes | Parameter key |
parameters[].value | string | Yes | Parameter value |
parameters[].parameterType | string | No | Optional |
parameters[].immutable | boolean | No | Optional |
parameters[].roomId | number | No | Optional |
checkIn | string | Yes | Must match search |
checkOut | string | Yes | Must match search |
language | string | No | Optional |
currency | string | No | Optional |
nationality | string | No | Optional |
Example Request
Success Response
Response Fields
| Field | Type | Notes |
|---|---|---|
data.id | string | Quote reference (quoteId) for book |
data.accommodation | object | Accommodation summary |
data.occupancies[] | array | Normalized occupancy output |
data.checkIn | string | Check-in date |
data.checkOut | string | Check-out date |
data.roomCodes[] | string[] | Optional room code list |
data.roomNames[] | string[] | Optional room name list |
data.boardCode | string | Optional board code |
data.boardName | string | Optional board name |
data.isRefundable | boolean | Optional refundable flag |
data.rate | object | Quote-level pricing |
data.cancelPolicy | object | Quote-level cancellation policy |
data.rooms[] | array | Room-level pricing details |
data.requestId | string | Trace ID |
data.responseTime | number | Milliseconds |
Validation Behavior
optionIdmust exist and not be expired (search cache key)accommodation.codemust match cached option payloadcheckIn/checkOutmust match cached option payloadoccupanciesmust match cached payload snapshot- If supplier quote price increased beyond tolerance, API returns
400 Price changed
Rate Limit Headers
/quote includes:
X-RateLimit-LimitX-RateLimit-RemainingX-RateLimit-ResetRetry-Afterwhen limited (429)
Common Errors
400 optionRefId is required400 Option reference expired or invalid400 Option reference invalid400 Accommodation code mismatch400 Stay dates mismatch400 Occupancy details mismatch400 Room is unavailable400 Price changed403 Invalid connection code.