Enrich Endpoint
Re-checks a searched itinerary against the provider and returns it with baggage allowance, refund/change rules and a per-passenger price breakdown attached.
- Endpoint:
/api/v1/flights/enrich - Method:
POST
Enrich is optional. Use it when you want to show fare rules and baggage on the flight detail screen before the customer commits. It does not create a session you can book with — only Pricing does that.
Headers
| Header | Value | Required | Description |
|---|---|---|---|
Partner-Access-Token | Base64 String | Yes | Your encrypted AES-256 time-sensitive token. |
X-Currency | Currency Code | Optional | Display currency. Defaults to your partner currency, then THB. |
Accept-Language | Language Code | Optional | e.g. en, th, my. |
Content-Type | application/json | Yes | |
Accept | application/json | Yes |
Payload Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
solution_id | String | Yes | The solutionId from Search. |
adults | Integer | Optional | Default 1. |
children | Integer | Optional | Default 0. |
infants | Integer | Optional | Default 0. |
Sample Payload
{
"solution_id": "HITIT_9f2c1b7d4e8a3f6c0d5b2a91e7c48d63",
"adults": 1,
"children": 0,
"infants": 0
}
Response
data is an array of enriched solutions, sorted ascending by
pricingDetails.grand_total (cheapest first). Each entry has the same shape as a Search
solution, plus the fields below.
| Field | Type | Description |
|---|---|---|
pricingDetails | Object | Per-passenger-type price breakdown. See below. |
flightDetails | Array | One pre-formatted summary per journey. See below. |
segmentBaggageMappingList | Array | Baggage allowance per segment, with human-readable messages. |
segmentRefundChangeRuleMappingList | Array | Refund/change rules per segment, with human-readable messages. |
pricingDetails
| Field | Type | Description |
|---|---|---|
adults.count | Integer | Number of adults. |
adults.fare | Float | Per-adult base fare, display currency. |
adults.tax | Float | Per-adult tax, display currency. |
adults.total | Float | (fare + tax) × count. |
children / infants | Object | Same structure, present only when count > 0. |
total_passengers | Integer | Sum of all passenger counts. |
grand_total | Float | Sum of all passenger-type totals. |
currency_code | String | Currency of the values above. |
At the Enrich stage pricingDetails reflects the searched fare. The authoritative,
margin-applied and bookable price comes from Pricing, which returns both
display and THB values.
flightDetails[]
| Field | Type | Description |
|---|---|---|
departure_datetime_str / arrival_datetime_str | String | Pre-formatted date-times. |
date_difference | Integer | Days between departure and arrival dates. |
date_difference_str | String | e.g. (+1). |
total_transfer_count | Integer | Number of stops. |
total_transfer_count_str | String | Direct or 1 Transfer. |
total_duration | Integer | Minutes. |
total_duration_str | String | e.g. 4h 15m. |
cabin_class / cabin_class_name | String | Cabin code and label. |
flight_str | String | e.g. Thai Airways TG403. |
Baggage allowance
segmentBaggageMappingList[].passengerBaggageAllowanceMapping is keyed by passenger type
(ADT, CHD). Each entry carries the raw allowance plus these derived fields:
| Field | Type | Description |
|---|---|---|
hasCheckedBaggage | Boolean | Whether checked baggage is included. |
hasHandBaggage | Boolean | Whether hand baggage is included. |
baggageMessage["Checked Baggage"] | String | e.g. 1 x 20 KG Checked baggage included. |
baggageMessage["Carry-on Baggage"] | String | e.g. 1 x 7 KG Hand baggage included. |
Refund / change rules
segmentRefundChangeRuleMappingList[].refundChangeRuleMap is keyed by passenger type
(ADT, CHD). Each rule inside refundRuleAllUnusedList and changeRuleOutUnusedList
gains a formattedMessage field, for example:
Refund allowed for free (Before 24 hours)Change allowed with fee (approx. THB 1500) (Between 2-24 hours)Not allowed
Sample Response
Truncated.
{
"result": 1,
"message": "success",
"data": [
{
"solutionId": "HITIT_9f2c1b7d4e8a3f6c0d5b2a91e7c48d63",
"provider": "HITIT",
"currency": "THB",
"journeyList": [ ],
"pricingDetails": {
"adults": {
"count": 1,
"fare": 7200.00,
"tax": 1250.00,
"total": 8450.00
},
"total_passengers": 1,
"grand_total": 8450.00,
"currency_code": "THB",
"currency_symbol": "$"
},
"flightDetails": [
{
"departure_datetime_str": "Thu, Oct 01 2026, 08:30:00",
"arrival_datetime_str": "Thu, Oct 01 2026, 12:00:00",
"date_difference": 0,
"date_difference_str": "(+0)",
"total_transfer_count": 0,
"total_transfer_count_str": "Direct",
"total_duration": 150,
"total_duration_str": "2h 30m",
"cabin_class": "Y",
"cabin_class_name": "Economy Class",
"flight_str": "Thai Airways TG403"
}
],
"segmentBaggageMappingList": [
{
"passengerBaggageAllowanceMapping": {
"ADT": {
"baggageAmount": 1,
"baggageWeight": 20,
"baggageWeightUnit": "KG",
"carryOnAmount": 1,
"carryOnWeight": 7,
"carryOnWeightUnit": "KG",
"hasCheckedBaggage": true,
"hasHandBaggage": true,
"baggageMessage": {
"Checked Baggage": "1 x 20 KG Checked baggage included",
"Carry-on Baggage": "1 x 7 KG Hand baggage included"
}
}
}
}
],
"segmentRefundChangeRuleMappingList": [
{
"refundChangeRuleMap": {
"ADT": {
"refundRuleAllUnusedList": [
{
"canRefund": true,
"refundFee": 0,
"ruleStartTime": null,
"ruleEndTime": 24,
"timeUnit": "HOUR",
"formattedMessage": "Refund allowed for free (Before 24 hours)"
}
],
"changeRuleOutUnusedList": [
{
"canChange": true,
"changeFee": 1500,
"ruleStartTime": 2,
"ruleEndTime": 24,
"timeUnit": "HOUR",
"formattedMessage": "Change allowed with fee (approx. THB 1500) (Between 2-24 hours)"
}
]
}
}
}
]
}
]
}
Next Step
Call Pricing with the same solution_id to lock in the price and obtain the
session_id needed for checkout.