{
	"info": {
		"_postman_id": "b550db9f-ea33-4eea-84bd-f4c1c85812ea",
		"name": "Flight Hub - Documented",
		"description": "# ✈️ Flight API Hub Starter Guide\n\n**Your centralized platform for managing flight data APIs!**  \nThis hub provides everything needed to integrate with Flight Hub services - REST collections, environment templates, authentication workflows, and testing suites.\n\n## 🛠 **How to use this hub**\n\n#### **Step 1: Import the Collection**\n\nStart by importing the **Flight Hub REST Collection** containing endpoints for:\n\n- Flight Search (GET)\n    \n- Booking Management (POST/PUT/DELETE)\n    \n- Real-time Flight Status (GET)\n    \n- Passenger Profiles (CRUD operations)\n    \n\n#### **Step 2: Configure Environments**\n\nWe provide pre-configured environments for:\n\n- `Staging`: `https://api.skyjet.vn`\n    \n\nAdd your environment variables like `{{`host`}}`, and `{{ access_token }}` in the environment settings.\n\n#### **Step 3: Set Up Authentication**\n\nFlight Hub uses **API Key + OAuth 2.0**. Add credentials to headers:\n\n\\`\\`\\`http  \nGET /flights HTTP/1.1  \nHost: {{host}}  \nAuthorization: Bearer {{`access_token`}}",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
		"_exporter_id": "46302353"
	},
	"item": [
		{
			"name": "Init",
			"item": [
				{
					"name": "Get token",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test(\"Get access token return status code is 200\", function () {\r",
									"    pm.response.to.have.status(200);\r",
									"});\r",
									"pm.test(\"Get access token has value\", function () {\r",
									"    const jsonData = pm.response.json();\r",
									"    pm.expect(jsonData).to.have.property('access_token');\r",
									"   pm.environment.set(\"access_token\", jsonData.access_token);\r",
									"});"
								],
								"type": "text/javascript",
								"packages": {},
								"requests": {}
							}
						}
					],
					"request": {
						"method": "POST",
						"header": [],
						"body": {
							"mode": "urlencoded",
							"urlencoded": [
								{
									"key": "grant_type",
									"value": "password",
									"type": "text"
								},
								{
									"key": "client_id",
									"value": "{{booking_client_id}}",
									"type": "text"
								},
								{
									"key": "password",
									"value": "Th@nh260599",
									"type": "text"
								},
								{
									"key": "username",
									"value": "thanh.nguyen2@skyjet.vn",
									"type": "text"
								}
							]
						},
						"url": {
							"raw": "{{idp}}/connect/token",
							"host": [
								"{{idp}}"
							],
							"path": [
								"connect",
								"token"
							]
						},
						"description": "# Authentication API Documentation\n\n## Overview\n\nThis API implements the OAuth 2.0 Resource Owner Password Credentials flow to obtain access tokens. Used for authenticating users and generating tokens for API access.\n\n---\n\n## API Endpoint\n\n- **URL:** `{{idp}}/connect/token`\n    \n- **Method:** `POST`\n    \n- **Content-Type:** `application/x-www-form-urlencoded`\n    \n\n---\n\n## Request Parameters\n\n| Parameter | Required | Description |\n| --- | --- | --- |\n| `grant_type` | ✅ Yes | Must be `password` |\n| `client_id` | ✅ Yes | Client application identifier |\n| `username` | ✅ Yes | User's email/username |\n| `password` | ✅ Yes | User's password |\n| `client_secret` | ❌ No | Client secret (if confidential client) |\n| `scope` | ❌ No | Space-separated list of permissions |\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location '{{idp}}/connect/token' \\\n--header 'Content-Type: application/x-www-form-urlencoded' \\\n--data-urlencode 'grant_type=password' \\\n--data-urlencode 'client_id=' \\\n--data-urlencode 'password=@Password123' \\\n--data-urlencode 'username=thanh.nguyen@skyjet.vn'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n  \"access_token\": \"iufhfWPkY_LOP8haywhRijU7KfntoXW3_uAoyBnFlts\",\n  \"expires_in\": 3600,\n  \"token_type\": \"Bearer\",\n  \"refresh_token\": \"tttf0EqQvHlmLQKasoTDY7ZlyQLw5Zdtlt8tcqDJ5Bw\",\n  \"scope\": \"client-data config-data hub-data offline_access user-data\"\n}\n\n ```\n\n---\n\n## Response Field Description\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `access_token` | String | Bearer token for API authorization |\n| `expires_in` | Number | Token validity in seconds (3600s = 1 hour) |\n| `token_type` | String | Token type (always `Bearer`) |\n| `refresh_token` | String | Token to obtain new access tokens |\n| `scope` | String | Granted permissions (space-separated) |\n\n---\n\n## Scopes Reference\n\n| Scope | Description |\n| --- | --- |\n| `client-data` | Access to client-specific data |\n| `config-data` | Read configuration data |\n| `hub-data` | Access SkyJet Hub services |\n| `offline_access` | Allows refresh token usage |\n| `user-data` | Access user profile information |\n\n---\n\n## Security Notes\n\n1. Always use HTTPS for token requests\n    \n2. Store tokens securely - never expose in client-side code\n    \n3. Refresh tokens should be encrypted at rest\n    \n4. Rotate client secrets regularly\n    \n5. Use PKCE for public clients if implemented\n    \n\n---\n\n## Usage Example\n\n``` http\nGET /api/protected-resource HTTP/1.1\nHost: api.skyjet.vn\nAuthorization: Bearer iufhfWPkY_LOP8haywhRijU7KfntoXW3_uAoyBnFlts\n\n ```\n\n---\n\n> **Warning**: This authentication method should only be used by trusted clients. For web/mobile apps, consider using Authorization Code flow with PKCE instead."
					},
					"response": []
				}
			]
		},
		{
			"name": "Hub",
			"item": [
				{
					"name": "Flight Hub",
					"item": [
						{
							"name": "Metadata",
							"item": [
								{
									"name": "Get Booking Types",
									"request": {
										"method": "GET",
										"header": [],
										"url": {
											"raw": "{{host}}/hub/b2c/flight/booking/types",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"b2c",
												"flight",
												"booking",
												"types"
											]
										},
										"description": "# Flight Booking Types API Documentation\n\n## API Endpoint\n\n- **URL:** `{{host}}/hub/b2c/flight/booking/types`\n    \n- **Method:** `GET`\n    \n\n---\n\n## Headers\n\nNo headers required for this request\n\n---\n\n## Request Body\n\nEmpty body (No parameters required for GET request)\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location '{{host}}/hub/b2c/flight/booking/types' \\\n--header 'Content-Type: application/json'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n    \"durationInMilisecond\": 0,\n    \"totalCount\": 3,\n    \"totalPage\": 1,\n    \"pageSize\": 20,\n    \"pageIndex\": 0,\n    \"clientOverride\": false,\n    \"data\": [\n        {\n            \"name\": \"ONE_WAY\",\n            \"code\": \"ONE_WAY\"\n        },\n        {\n            \"name\": \"ROUND_TRIP\",\n            \"code\": \"ROUND_TRIP\"\n        },\n        {\n            \"name\": \"OPEN_JAW\",\n            \"code\": \"OPEN_JAW\"\n        }\n    ]\n}\n\n ```\n\n---\n\n## Response Field Description\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `durationInMilisecond` | Number | API processing time in milliseconds |\n| `totalCount` | Integer | Total number of booking types available |\n| `totalPage` | Integer | Total pages of results |\n| `pageSize` | Integer | Number of items per page |\n| `pageIndex` | Integer | Current page index |\n| `clientOverride` | Bool | Indicates custom tenant configurations |\n| `data` | Array | List of booking type objects (see below) |\n\n### Structure of `data` Objects\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `name` | String | `\"ONE_WAY\"` | Human-readable booking type name |\n| `code` | String | `\"ONE_WAY\"` | Machine-readable booking type code |"
									},
									"response": []
								},
								{
									"name": "Get Order Types",
									"protocolProfileBehavior": {
										"disabledSystemHeaders": {
											"content-type": true
										}
									},
									"request": {
										"method": "GET",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{access_token}}",
												"type": "text",
												"disabled": true
											},
											{
												"key": "x-tenant-id",
												"value": "6B76447C-B2C6-4132-BA4E-C7C9615A4676",
												"type": "text",
												"disabled": true
											}
										],
										"url": {
											"raw": "{{host}}/hub/b2c/flight/booking/order_types",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"b2c",
												"flight",
												"booking",
												"order_types"
											]
										},
										"description": "# Flight Booking Order Types API Documentation\n\n## Overview\n\nThis API retrieves supported booking order types with their corresponding codes and names. These types define the nature of flight-related transactions in the system.\n\n---\n\n## API Endpoint\n\n- **URL:** `{{host}}/hub/b2c/flight/booking/order_types`\n    \n- **Method:** `GET`\n    \n\n---\n\n## Headers\n\nNo headers required for this request\n\n---\n\n## Request Body\n\nEmpty body (No parameters required for GET request)\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location --request GET '{{host}}/hub/b2c/flight/booking/order_types' \n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n  \"durationInMilisecond\": 0,\n  \"totalCount\": 4,\n  \"totalPage\": 1,\n  \"pageSize\": 20,\n  \"pageIndex\": 0,\n  \"clientOverride\": false,\n  \"data\": [\n    { \"name\": \"ORDER\", \"code\": \"O\" },\n    { \"name\": \"FLIGHT_PROJECTION\", \"code\": \"V\" },\n    { \"name\": \"CHANGE\", \"code\": \"C\" },\n    { \"name\": \"REFUND\", \"code\": \"R\" }\n  ]\n}\n\n ```\n\n---\n\n## Response Field Description\n\n### Main Response\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `durationInMilisecond` | Number | API processing time in milliseconds |\n| `totalCount` | Integer | Total number of order types available |\n| `totalPage` | Integer | Always 1 (non-paginated results) |\n| `pageSize` | Integer | Default page size (20) |\n| `pageIndex` | Integer | Always 0 (first page) |\n| `clientOverride` | Boolean | Indicates custom tenant configurations |\n| `data` | Array | List of order type objects (see below) |\n\n### Order Type Object\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `name` | String | `\"ORDER\"` | Human-readable order type name |\n| `code` | String | `\"O\"` | System code for order type operations |\n\n---\n\n## Order Type Reference\n\n| Code | Name | Description |\n| --- | --- | --- |\n| `O` | ORDER | Standard flight booking |\n| `V` | FLIGHT_PROJECTION | Flight schedule/availability check |\n| `C` | CHANGE | Flight change request |\n| `R` | REFUND | Flight refund request |\n\n---\n\n## Notes\n\n- Order types determine available actions in subsequent booking workflows\n    \n- Some order types may not be available for all airline partners"
									},
									"response": []
								},
								{
									"name": "Get Gender Types",
									"request": {
										"method": "GET",
										"header": [],
										"url": {
											"raw": "{{host}}/hub/b2c/gender/types",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"b2c",
												"gender",
												"types"
											]
										},
										"description": "# Gender Types API Documentation\n\n## Overview\n\nThis API provides a list of supported gender types with their corresponding codes. These codes are used in passenger information during booking processes.\n\n---\n\n## API Endpoint\n\n- **URL:** `{{host}}/hub/b2c/gender/types`\n    \n- **Method:** `GET`\n    \n\n## Headers\n\nNo headers required for this request\n\n---\n\n## Request Body\n\nEmpty body (No parameters required for GET request)\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location --request GET '{{host}}/hub/b2c/gender/types'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n  \"durationInMilisecond\": 0,\n  \"totalCount\": 2,\n  \"totalPage\": 1,\n  \"pageSize\": 20,\n  \"pageIndex\": 0,\n  \"clientOverride\": false,\n  \"data\": [\n    { \"name\": \"MALE\", \"code\": \"M\" },\n    { \"name\": \"FEMALE\", \"code\": \"F\" }\n  ]\n}\n\n ```\n\n---\n\n## Response Field Description\n\n### Main Response\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `durationInMilisecond` | Number | API processing time in milliseconds |\n| `totalCount` | Integer | Total number of gender types available |\n| `totalPage` | Integer | Always 1 (non-paginated results) |\n| `pageSize` | Integer | Default page size (20) |\n| `pageIndex` | Integer | Always 0 (first page) |\n| `clientOverride` | Boolean | Indicates custom tenant configurations |\n| `data` | Array | List of gender type objects (see below) |\n\n### Gender Type Object\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `name` | String | `\"MALE\"` | Full gender name in English |\n| `code` | String | `\"M\"` | Single-character gender code |\n\n---\n\n## Gender Code Reference\n\n| Code | Name |\n| --- | --- |\n| `M` | MALE |\n| `F` | FEMALE |\n\n---\n\n## Notes\n\n- Gender codes follow IATA standard passenger data requirements\n    \n- Required for passenger details in booking workflows\n    \n- Some airlines may have specific gender code requirements"
									},
									"response": []
								},
								{
									"name": "Get Supported ID Card Types",
									"request": {
										"method": "GET",
										"header": [],
										"url": {
											"raw": "{{host}}/hub/b2c/citizenId/types",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"b2c",
												"citizenId",
												"types"
											]
										},
										"description": "# Citizen ID Types API Documentation\n\n## Overview\n\nThis API retrieves supported citizen identification document types with their corresponding codes. These types are used for passenger identification in booking workflows.\n\n---\n\n## API Endpoint\n\n- **URL:** `{{host}}/hub/b2c/citizenId/types`\n    \n- **Method:** `GET`\n    \n\n---\n\n## Headers\n\nNo headers required for this request\n\n---\n\n## Request Body\n\nEmpty body (No parameters required for GET request)\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location '{{host}}/hub/b2c/citizenId/types'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n  \"durationInMilisecond\": 0,\n  \"totalCount\": 2,\n  \"totalPage\": 1,\n  \"pageSize\": 20,\n  \"pageIndex\": 0,\n  \"clientOverride\": false,\n  \"data\": [\n    { \"name\": \"ID_CARD\", \"code\": \"idcard\" },\n    { \"name\": \"PASSPORT\", \"code\": \"passport\" }\n  ]\n}\n\n ```\n\n---\n\n## Response Field Description\n\n### Main Response\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `durationInMilisecond` | Number | API processing time in milliseconds |\n| `totalCount` | Integer | Total number of ID types available |\n| `totalPage` | Integer | Always 1 (non-paginated results) |\n| `pageSize` | Integer | Default page size (20) |\n| `pageIndex` | Integer | Always 0 (first page) |\n| `clientOverride` | Boolean | Indicates custom tenant configurations |\n| `data` | Array | List of ID type objects (see below) |\n\n### ID Type Object\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `name` | String | `\"ID_CARD\"` | Full document type name |\n| `code` | String | `\"idcard\"` | System code for document type |\n\n---\n\n## ID Type Reference\n\n| Code | Name | Description |\n| --- | --- | --- |\n| `idcard` | ID_CARD | National Identity Card |\n| `passport` | PASSPORT | International Passport |\n\n---\n\n## Notes\n\n- Required for passenger identification in booking processes\n    \n- Different airlines/countries may accept different ID types\n    \n- Passport is generally required for international flights\n    \n- ID card typically used for domestic flights within country of issue"
									},
									"response": []
								},
								{
									"name": "Get Baggage Types",
									"request": {
										"method": "GET",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{access_token}}",
												"type": "text",
												"disabled": true
											},
											{
												"key": "x-tenant-id",
												"value": "6B76447C-B2C6-4132-BA4E-C7C9615A4676",
												"type": "text",
												"disabled": true
											}
										],
										"url": {
											"raw": "{{host}}/hub/b2c/flight/baggage/types",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"b2c",
												"flight",
												"baggage",
												"types"
											]
										},
										"description": "# Flight Baggage Types API Documentation\n\n## Overview\n\nThis API retrieves supported baggage types with their corresponding codes and names. These types are used to specify baggage allowances during flight bookings.\n\n---\n\n## API Endpoint\n\n- **URL:** `{{host}}/hub/b2c/flight/baggage/types`\n    \n- **Method:** `GET`\n    \n\n---\n\n## Headers\n\nNo headers required for this request\n\n---\n\n## Request Body\n\nEmpty body (No parameters required for GET request)\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location '{{host}}/hub/b2c/flight/baggage/types'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n  \"durationInMilisecond\": 0,\n  \"totalCount\": 2,\n  \"totalPage\": 1,\n  \"pageSize\": 20,\n  \"pageIndex\": 0,\n  \"clientOverride\": false,\n  \"data\": [\n    { \"name\": \"Checked Baggage\", \"code\": 1 },\n    { \"name\": \"Carry On\", \"code\": 2 }\n  ]\n}\n\n ```\n\n---\n\n## Response Field Description\n\n### Main Response\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `durationInMilisecond` | Number | API processing time in milliseconds |\n| `totalCount` | Integer | Total number of baggage types available |\n| `totalPage` | Integer | Always 1 (non-paginated results) |\n| `pageSize` | Integer | Default page size (20) |\n| `pageIndex` | Integer | Always 0 (first page) |\n| `clientOverride` | Boolean | Indicates custom tenant configurations |\n| `data` | Array | List of baggage type objects (see below) |\n\n### Baggage Type Object\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `name` | String | `\"Checked Baggage\"` | Human-readable baggage type name |\n| `code` | Number | `1` | System code for baggage type |\n\n---\n\n## Baggage Type Reference\n\n| Code | Name | Description |\n| --- | --- | --- |\n| `1` | Checked Baggage | Luggage stored in aircraft hold |\n| `2` | Carry On | Hand luggage carried in cabin |\n\n---\n\n## Notes\n\n- Baggage type codes are used in booking requests and fare rules\n    \n- Allowances may vary by airline and fare class\n    \n- Carry-on baggage typically has size/weight restrictions\n    \n- Checked baggage may incur additional fees"
									},
									"response": []
								},
								{
									"name": "Get Cabin Classes",
									"request": {
										"method": "GET",
										"header": [],
										"url": {
											"raw": "{{host}}/hub/b2c/flight/booking/cabin_classes",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"b2c",
												"flight",
												"booking",
												"cabin_classes"
											]
										},
										"description": "# Flight Cabin Classes API Documentation\n\n## Overview\n\nThis API retrieves supported cabin classes with their corresponding codes. These classes define the seating categories available for flight bookings.\n\n---\n\n## API Endpoint\n\n- **URL:** `{{host}}/hub/b2c/flight/booking/cabin_classes`\n    \n- **Method:** `GET`\n    \n\n---\n\n## Headers\n\nNo headers required for this request\n\n---\n\n## Request Body\n\nEmpty body (No parameters required for GET request)\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location '{{host}}/hub/b2c/flight/booking/cabin_classes'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n  \"durationInMilisecond\": 0,\n  \"totalCount\": 4,\n  \"totalPage\": 1,\n  \"pageSize\": 20,\n  \"pageIndex\": 0,\n  \"clientOverride\": false,\n  \"data\": [\n    { \"name\": \"Economy\", \"code\": \"economy\" },\n    { \"name\": \"Premium Economy\", \"code\": \"premiumEconomy\" },\n    { \"name\": \"Business\", \"code\": \"business\" },\n    { \"name\": \"First Class\", \"code\": \"firstClass\" }\n  ]\n}\n\n ```\n\n---\n\n## Response Field Description\n\n### Main Response\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `durationInMilisecond` | Number | API processing time in milliseconds |\n| `totalCount` | Integer | Total number of cabin classes available |\n| `totalPage` | Integer | Always 1 (non-paginated results) |\n| `pageSize` | Integer | Default page size (20) |\n| `pageIndex` | Integer | Always 0 (first page) |\n| `clientOverride` | Boolean | Indicates custom configurations |\n| `data` | Array | List of cabin class objects (see below) |\n\n### Cabin Class Object\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `name` | String | `\"Premium Economy\"` | Full cabin class name |\n| `code` | String | `\"premiumEconomy\"` | System code for cabin class |\n\n---\n\n## Cabin Class Reference\n\n| Code | Name | Description |\n| --- | --- | --- |\n| `economy` | Economy | Standard cabin class |\n| `premiumEconomy` | Premium Economy | Enhanced economy seating |\n| `business` | Business | Business class seating |\n| `firstClass` | First Class | Highest class of service |\n\n---\n\n## Notes\n\n- Cabin class availability varies by airline and aircraft\n    \n- Codes are used in flight search/booking requests\n    \n- Some airlines may not offer all cabin classes\n    \n- Case-sensitive - use exact code values in API requests"
									},
									"response": []
								},
								{
									"name": "Get airport list",
									"request": {
										"method": "GET",
										"header": [],
										"url": {
											"raw": "{{host}}/hub/b2c/flight/airports",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"b2c",
												"flight",
												"airports"
											]
										},
										"description": "# Airport List API Documentation\n\n## Overview\n\nThis API retrieves a comprehensive list of airports worldwide with multilingual support (English/Vietnamese). Includes country and city associations for each airport.\n\n---\n\n## API Endpoint\n\n- **URL:** `{{host}}/hub/b2c/flight/airports`\n    \n- **Method:** `GET`\n    \n\n---\n\n## Headers\n\nNo headers required for this request\n\n---\n\n## Request Body\n\nEmpty body (No parameters required for GET request)\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location --request GET '{{host}}/hub/b2c/flight/airports'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n[\n  {\n    \"id\": \"ZZV\",\n    \"name\": \"Zanesville Municipal Airport\",\n    \"nameVN\": \"Sân bay Zanesville Municipal \",\n    \"countryCode\": \"US\",\n    \"countryName\": \"United States\",\n    \"cityCode\": \"ZZV\",\n    \"cityName\": \"Zanesville\",\n    \"cityNameVN\": \"Zanesville\"\n  },\n  {\n    \"id\": \"ZYZ\",\n    \"name\": \"Antwerp\",\n    \"nameVN\": \"Antwerp\",\n    \"countryCode\": \"BE\",\n    \"countryName\": \"Belgium\",\n    \"cityCode\": \"ZYZ\",\n    \"cityName\": \"Brussels\",\n    \"cityNameVN\": \"Bru-xen\"\n  }\n]\n\n ```\n\n---\n\n## Response Field Description\n\n### Airport Object\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `id` | String | `\"ZZV\"` | IATA airport code |\n| `name` | String | `\"Zanesville Municipal Airport\"` | Official airport name in English |\n| `nameVN` | String | `\"Sân bay Zanesville Municipal \"` | Airport name in Vietnamese |\n| `countryCode` | String | `\"US\"` | ISO 2-letter country code |\n| `countryName` | String | `\"United States\"` | Full country name in English |\n| `cityCode` | String | `\"ZZV\"` | IATA city code |\n| `cityName` | String | `\"Zanesville\"` | City name in English |\n| `cityNameVN` | String | `\"Zanesville\"` | City name in Vietnamese |\n\n---\n\n## Notes\n\n- Airport codes (`id`) follow IATA standards\n    \n- City codes may match airport codes when serving a single city\n    \n- Vietnamese names (`nameVN`, `cityNameVN`) use official translations or phonetic transliterations\n    \n- Country codes adhere to ISO 3166-1 alpha-2 standard\n    \n- Some smaller airports may have identical city and airport codes"
									},
									"response": []
								},
								{
									"name": "Search airports",
									"request": {
										"method": "POST",
										"header": [],
										"body": {
											"mode": "raw",
											"raw": "{}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/hub/b2c/flight/airports/search",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"b2c",
												"flight",
												"airports",
												"search"
											]
										},
										"description": "# Airport Search API Documentation\n\n## Overview\n\nThis API provides airport search functionality, returning detailed information about airports worldwide, location data, and country/city associations. The results are paginated to handle large datasets efficiently.\n\n---\n\n## API Endpoint\n\n- **URL:** `{{host}}/hub/b2c/flight/airports/search`\n    \n- **Method:** `POST`\n    \n- **Content-Type:** `application/json`\n    \n\n---\n\n## Headers\n\n| Key | Value | Description |\n| --- | --- | --- |\n| `Content-Type` | `application/json` | Request/Response format |\n\n---\n\n## Request Body\n\nEmpty JSON object (No parameters required for basic search):\n\n``` json\n{}\n\n ```\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location '{{host}}/hub/b2c/flight/airports/search' \\\n--header 'Content-Type: application/json' \\\n--data '{}'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n  \"durationInMilisecond\": 1170,\n  \"totalCount\": 2406,\n  \"totalPage\": 25,\n  \"pageSize\": 100,\n  \"pageIndex\": 0,\n  \"clientOverride\": false,\n  \"data\": [\n    {\n      \"id\": \"ZZV\",\n      \"name\": \"Zanesville Municipal Airport\",\n      \"nameVN\": \"Sân bay Zanesville Municipal \",\n      \"countryCode\": \"US\",\n      \"countryName\": \"United States\",\n      \"cityCode\": \"ZZV\",\n      \"cityName\": \"Zanesville\",\n      \"cityNameVN\": \"Zanesville\"\n    }\n  ]\n}\n\n ```\n\n---\n\n## Response Field Description\n\n### Main Response\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `durationInMilisecond` | Number | API processing time in milliseconds |\n| `totalCount` | Integer | Total number of airports found |\n| `totalPage` | Integer | Total pages of results |\n| `pageSize` | Integer | Number of items per page (default: 100) |\n| `pageIndex` | Integer | Current page index (0-based) |\n| `clientOverride` | Boolean | Indicates custom client configurations |\n| `data` | Array | List of airport objects (see below) |\n\n### Airport Object\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `id` | String | `\"ZZV\"` | IATA airport code |\n| `name` | String | `\"Zanesville Municipal Airport\"` | Airport name in English |\n| `nameVN` | String | `\"Sân bay Zanesville Municipal \"` | Airport name in Vietnamese |\n| `countryCode` | String | `\"US\"` | 2-letter country code |\n| `countryName` | String | `\"United States\"` | Full country name in English |\n| `cityCode` | String | `\"ZZV\"` | IATA city code |\n| `cityName` | String | `\"Zanesville\"` | City name in English |\n| `cityNameVN` | String | `\"Zanesville\"` | City name in Vietnamese |"
									},
									"response": []
								},
								{
									"name": "Get airlines list",
									"protocolProfileBehavior": {
										"disableBodyPruning": true
									},
									"request": {
										"method": "GET",
										"header": [],
										"body": {
											"mode": "raw",
											"raw": "{}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/hub/b2c/flight/airlines",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"b2c",
												"flight",
												"airlines"
											]
										},
										"description": "# Airline List API Documentation\n\n## Overview\n\nThis API provides a comprehensive list of airlines with their IATA codes and official names. Suitable for populating airline selection dropdowns and reference data.\n\n---\n\n## API Endpoint\n\n- **URL:** `{{host}}/hub/b2c/flight/airlines`\n    \n- **Method:** `GET`\n    \n\n---\n\n## Headers\n\nNo headers required for this request\n\n---\n\n## Request Body\n\nNo parameters required for GET request\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location --request GET '{{host}}/hub/b2c/flight/airlines'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n[\n  {\n    \"id\": \"ZY\",\n    \"name\": \"SKY AIRLINES\"\n  },\n  {\n    \"id\": \"ZX\",\n    \"name\": \"PIVOT AIRLINES\"\n  },\n  {\n    \"id\": \"ZW\",\n    \"name\": \"AIR WISCONSIN\"\n  },\n  {\n    \"id\": \"ZV\",\n    \"name\": \"AEROTRANSPORTES RAFILHER\"\n  }\n]\n\n ```\n\n---\n\n## Response Field Description\n\n### Airline Object\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `id` | String | `\"ZY\"` | 2-letter IATA airline code |\n| `name` | String | `\"SKY AIRLINES\"` | Official airline name |\n\n---\n\n## Airline Code Reference\n\n| Code | Name |\n| --- | --- |\n| ZY | SKY AIRLINES |\n| ZX | PIVOT AIRLINES |\n| ZW | AIR WISCONSIN |\n| ZV | AEROTRANSPORTES RAFILHER |\n| ... | ... |\n\n---\n\n## Notes\n\n- IATA codes (`id`) are always provided\n    \n- Airline names are in English where available\n    \n- List includes both active and historical airlines\n    \n- Some regional/defunct airlines may appear without official names\n    \n- Case-sensitive - use exact codes for API operations"
									},
									"response": []
								},
								{
									"name": "Search airlines",
									"request": {
										"method": "POST",
										"header": [],
										"body": {
											"mode": "raw",
											"raw": "{}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/hub/b2c/flight/airlines/search",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"b2c",
												"flight",
												"airlines",
												"search"
											]
										},
										"description": "# Airline Search API Documentation\n\n## Overview\n\nThis API provides a searchable list of airlines worldwide, returning IATA airline codes along with their corresponding full names. Results are paginated for efficient data handling.\n\n---\n\n## API Endpoint\n\n- **URL:** `{{host}}/hub/b2c/flight/airlines/search`\n    \n- **Method:** `POST`\n    \n- **Content-Type:** `application/json`\n    \n\n---\n\n## Headers\n\n| Key | Value | Description |\n| --- | --- | --- |\n| `Content-Type` | `application/json` | Request/Response format |\n\n---\n\n## Request Body\n\nEmpty JSON object (No parameters required for basic search):\n\n``` json\n{}\n\n ```\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location '{{host}}/hub/b2c/flight/airlines/search' \\\n--header 'Content-Type: application/json' \\\n--data '{}'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n  \"durationInMilisecond\": 46,\n  \"totalCount\": 1036,\n  \"totalPage\": 52,\n  \"pageSize\": 20,\n  \"pageIndex\": 0,\n  \"clientOverride\": false,\n  \"data\": [\n    { \"id\": \"ZY\", \"name\": \"SKY AIRLINES\" },\n    { \"id\": \"ZX\", \"name\": \"PIVOT AIRLINES\" },\n    { \"id\": \"ZW\", \"name\": \"AIR WISCONSIN\" },\n    { \"id\": \"ZV\", \"name\": \"AEROTRANSPORTES RAFILHER\" },\n    { \"id\": \"ZU\", \"name\": \"ETHIOPIAN MOZAMBIQUE\" },\n    { \"id\": \"ZT\", \"name\": \"\" },\n    { \"id\": \"ZS\", \"name\": \"\" },\n    { \"id\": \"ZR\", \"name\": \"\" },\n    { \"id\": \"ZQ\", \"name\": \"GERMAN AIRWAYS\" },\n    { \"id\": \"ZP\", \"name\": \"PARANAIR\" },\n    { \"id\": \"ZN\", \"name\": \"ZAMBIA AIRWAYS\" },\n    { \"id\": \"ZL\", \"name\": \"REGIONAL EXPRESS\" },\n    { \"id\": \"ZK\", \"name\": \"\" },\n    { \"id\": \"ZJ\", \"name\": \"\" },\n    { \"id\": \"ZH\", \"name\": \"SHENZHEN AIRLINES\" },\n    { \"id\": \"ZG\", \"name\": \"ZIPAIR TOKYO\" },\n    { \"id\": \"ZF\", \"name\": \"AZUR AIR\" },\n    { \"id\": \"ZE\", \"name\": \"EASTAR JET\" },\n    { \"id\": \"ZD\", \"name\": \"EWA AIR\" },\n    { \"id\": \"ZB\", \"name\": \"AIR ALBANIA\" }\n  ]\n}\n\n ```\n\n---\n\n## Response Field Description\n\n### Main Response\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `durationInMilisecond` | Number | API processing time in milliseconds |\n| `totalCount` | Integer | Total number of airlines in database |\n| `totalPage` | Integer | Total pages of results |\n| `pageSize` | Integer | Number of items per page (default: 20) |\n| `pageIndex` | Integer | Current page index (0-based) |\n| `clientOverride` | Boolean | Indicates custom client configurations |\n| `data` | Array | List of airline objects (see below) |\n\n### Airline Object\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `id` | String | `\"ZY\"` | 2-letter IATA airline code |\n| `name` | String | `\"SKY AIRLINES\"` | Full airline name (empty if unknown) |\n\n---\n\n## Notes\n\n- Empty `name` fields indicate airlines where official names aren't available in the system\n    \n- IATA codes (`id` field) are always populated when available\n    \n- Use `pageIndex` and `pageSize` for pagination control"
									},
									"response": []
								}
							],
							"description": "Metadata for API field response mapping"
						},
						{
							"name": "Booking",
							"item": [
								{
									"name": "1. Search Flight",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"pm.test(\"Return status code is 200\", function () {\r",
													"    pm.response.to.have.status(200);\r",
													"});\r",
													"pm.test(\"Solution has value\", function () {\r",
													"    const jsonData = pm.response.json();\r",
													"    pm.expect(jsonData.solutions[0]).to.have.property('solutionProviderId');\r",
													"    pm.collectionVariables.set(\"solutionProviderId\", jsonData.solutions[0].solutionProviderId);\r",
													"});\r",
													"pm.test(\"Solution has value\", function () {\r",
													"    const jsonData = pm.response.json();\r",
													"    pm.expect(jsonData.solutions[0]).to.have.property('flights');\r",
													"    pm.collectionVariables.set(\"solutionFlight\", jsonData.solutions[0].flights);\r",
													"});"
												],
												"type": "text/javascript",
												"packages": {},
												"requests": {}
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{access_token}}",
												"type": "text"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\r\n    \"providers\": \"flight.provider4\",\r\n    \"type\": \"ROUND_TRIP\",\r\n    \"children\": 0,\r\n    \"infants\": 0,\r\n    \"adults\": 1,\r\n    \"routes\": [\r\n        {\r\n            \"departureCode\": \"SGN\",\r\n            \"arrivalCode\": \"SIN\",\r\n            \"departureDate\": \"2025-11-12\"\r\n        },\r\n        {\r\n            \"departureCode\": \"SIN\",\r\n            \"arrivalCode\": \"SGN\",\r\n            \"departureDate\": \"2025-11-15\"\r\n        }\r\n    ],\r\n    \"cabinClass\": \"\",\r\n    \"airlines\": \"VN\",\r\n    \"promotionCodes\": \"\",\r\n    \"directFlight\": false\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/hub/flight/search",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"flight",
												"search"
											]
										},
										"description": "# Flight Search API Documentation\n\n## Overview\n\nThis API enables flight search operations with support for round-trip, one-way, and open-jaw itineraries. It returns comprehensive flight solutions including fare breakdowns, baggage rules, change/refund policies.\n\n---\n\n## API Endpoint\n\n- **URL:** `{{host}}/hub/flight/search`\n    \n- **Method:** `POST`\n    \n- **Content-Type:** `application/json`\n    \n\n---\n\n## Headers\n\n| Key | Value | Description |\n| --- | --- | --- |\n| `Authorization` | `Bearer {token}` | JWT access token (Required) |\n| `Content-Type` | `application/json` | Request/Response format |\n\n---\n\n## Request Body\n\n``` json\n{\n  \"providers\": \"flight.provider2\",\n  \"type\": \"ROUND_TRIP\",\n  \"children\": 0,\n  \"infants\": 0,\n  \"adults\": 1,\n  \"routes\": [\n    {\n      \"departureCode\": \"SGN\",\n      \"arrivalCode\": \"SIN\",\n      \"departureDate\": \"2025-11-07\"\n    },\n    {\n      \"departureCode\": \"SIN\",\n      \"arrivalCode\": \"SGN\",\n      \"departureDate\": \"2025-11-09\"\n    }\n  ],\n  \"cabinClass\": \"\",\n  \"airlines\": \"\",\n  \"promotionCodes\": \"\",\n  \"directFlight\": false\n}\n\n ```\n\n---\n\n## Request Body Parameters\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `providers` | String | No | Comma-separated list of providers to search. If not specified, all available providers are searched. | `\"flight.provider1,flight.provider2\"` |\n| `type` | String | Yes | Trip type | `\"ROUND_TRIP\"`, `\"ONE_WAY\"`, `\"OPEN_JAW\"` |\n| `airlines` | String | No | Comma-separated list of airline codes to search. If not specified, all available airlines are searched. | `\"VN,QH\"` |\n| `cabinClass` | String | Yes | Cabin class preference | `\"economy\"`, `\"business\"`, `\"first\"` |\n| `adults` | Number | Yes | Number of adult passengers | `1`\\-`9` |\n| `children` | Number | No | Number of child passengers | `0`\\-`8` |\n| `infants` | Number | No | Number of infant passengers | `0`\\-`8` |\n| `routes` | Array | Yes | Array of route objects (see below) |  |\n| `promotionCodes` | String | No | The promotion codes. |  |\n| `directFlight` | Boolean | No | Indicates whether to search for direct flights only. Defaults to `false` if not provided. | `true`, `false` |\n\n### Route Object Structure\n\n| Field | Type | Required | Description | Example |\n| --- | --- | --- | --- | --- |\n| `departureCode` | String | ✅ Yes | IATA departure airport code | `\"HAN\"` |\n| `arrivalCode` | String | ✅ Yes | IATA arrival airport code | `\"DAD\"` |\n| `departureDate` | String | ✅ Yes | Departure date (YYYY-MM-DD) | `\"2025-03-21\"` |\n\n---\n\n## Sample Response\n\n``` json\n{\n  \"solutions\": [\n    {\n      \"provider\": \"flight.provider2.VN\",\n      \"solutionId\": \"a50577bc7630e13b9334ada9ee9031df52712df850dccd3ff899c79754f2bc8e+GfCvlC5GSA6hFHHFHzeVIw+4c5e2ab7-e81f-4e8f-b64c-2c74cf2fcebb+++VN\",\n      \"type\": \"COMBINED\",\n      \"requireEnrichment\": false,\n      \"allowPayLater\": true,\n      \"isNDC\": false,\n      \"fare\": {\n        \"adultFare\": {\n          \"fare\": 3295000,\n          \"tax\": 4138000,\n          \"fee\": 0,\n          \"currency\": \"VND\",\n          \"discountAmount\": 0,\n          \"count\": 1,\n          \"total\": 7433000,\n          \"point\": 0,\n          \"totalPoint\": 0\n        },\n        \"childFare\": {\n          \"fare\": 0,\n          \"tax\": 0,\n          \"fee\": 0,\n          \"currency\": \"USD\",\n          \"discountAmount\": 0,\n          \"count\": 0,\n          \"total\": 0,\n          \"point\": 0,\n          \"totalPoint\": 0\n        },\n        \"infantFare\": {\n          \"fare\": 0,\n          \"tax\": 0,\n          \"fee\": 0,\n          \"currency\": \"USD\",\n          \"discountAmount\": 0,\n          \"count\": 0,\n          \"total\": 0,\n          \"point\": 0,\n          \"totalPoint\": 0\n        },\n        \"totalFare\": 3295000,\n        \"totalTax\": 4138000,\n        \"totalFee\": 0,\n        \"totalPrice\": 7433000,\n        \"totalDiscountAmount\": 0,\n        \"totalPoint\": 0\n      },\n      \"flights\": [\n        {\n          \"sequence\": 1,\n          \"flightDuration\": 200,\n          \"travelDuration\": 200,\n          \"journeyId\": \"00000000-0000-0000-0000-000000000000\",\n          \"segments\": [\n            {\n              \"segmentId\": \"1\",\n              \"sequence\": 1,\n              \"bookingCode\": \"E\",\n              \"cabinClass\": \"ECONOMY\",\n              \"available\": 9,\n              \"departureCode\": \"HAN\",\n              \"departureName\": \"Hanoi\",\n              \"departureDate\": \"2025-11-08\",\n              \"departureTime\": \"08:05\",\n              \"departureTerminal\": \"2\",\n              \"arrivalCode\": \"SIN\",\n              \"arrivalName\": \"Singapore\",\n              \"arrivalDate\": \"2025-11-08\",\n              \"arrivalTime\": \"12:25\",\n              \"arrivalTerminal\": \"3\",\n              \"airlines\": \"VN\",\n              \"airlinesName\": \"VIETNAM AIRLINES\",\n              \"equipment\": \"321\",\n              \"flightNumber\": \"661\",\n              \"flightTime\": 200,\n              \"stopTime\": 0,\n              \"baggageRules\": {\n                \"adults\": [\n                  {\n                    \"baggageAmount\": \"1PC\"\n                  }\n                ]\n              },\n              \"miniRules\": {},\n              \"fareBasis\": \"E1YVN\"\n            }\n          ]\n        },\n        {\n          \"sequence\": 2,\n          \"flightDuration\": 200,\n          \"travelDuration\": 200,\n          \"journeyId\": \"00000000-0000-0000-0000-000000000000\",\n          \"segments\": [\n            {\n              \"segmentId\": \"2\",\n              \"sequence\": 1,\n              \"bookingCode\": \"Q\",\n              \"cabinClass\": \"ECONOMY\",\n              \"available\": 9,\n              \"departureCode\": \"SIN\",\n              \"departureName\": \"Singapore\",\n              \"departureDate\": \"2025-11-08\",\n              \"departureTime\": \"13:25\",\n              \"departureTerminal\": \"3\",\n              \"arrivalCode\": \"HAN\",\n              \"arrivalName\": \"Hanoi\",\n              \"arrivalDate\": \"2025-11-08\",\n              \"arrivalTime\": \"15:45\",\n              \"arrivalTerminal\": \"2\",\n              \"airlines\": \"VN\",\n              \"airlinesName\": \"VIETNAM AIRLINES\",\n              \"equipment\": \"321\",\n              \"flightNumber\": \"660\",\n              \"flightTime\": 200,\n              \"stopTime\": 0,\n              \"baggageRules\": {\n                \"adults\": [\n                  {\n                    \"baggageAmount\": \"1PC\"\n                  }\n                ]\n              },\n              \"miniRules\": {},\n              \"fareBasis\": \"Q1YVN\"\n            }\n          ]\n        }\n      ]\n    },\n    {\n      \"provider\": \"flight.provider2.1A\",\n      \"solutionId\": \"caa9437624e7a91dce3068b03feb4ea28cde6a4de21cc7bad7f327d2445ed145+CouP70K2SvG_gP4wyiHR4A+c34bf860-e02d-4664-8de7-93bf0021ddc6+++1A\",\n      \"type\": \"COMBINED\",\n      \"requireEnrichment\": false,\n      \"allowPayLater\": true,\n      \"isNDC\": false,\n      \"fare\": {\n        \"adultFare\": {\n          \"fare\": 4797000,\n          \"tax\": 5232000,\n          \"fee\": 0,\n          \"currency\": \"VND\",\n          \"discountAmount\": 0,\n          \"count\": 1,\n          \"total\": 10029000,\n          \"point\": 0,\n          \"totalPoint\": 0\n        },\n        \"childFare\": {\n          \"fare\": 0,\n          \"tax\": 0,\n          \"fee\": 0,\n          \"currency\": \"USD\",\n          \"discountAmount\": 0,\n          \"count\": 0,\n          \"total\": 0,\n          \"point\": 0,\n          \"totalPoint\": 0\n        },\n        \"infantFare\": {\n          \"fare\": 0,\n          \"tax\": 0,\n          \"fee\": 0,\n          \"currency\": \"USD\",\n          \"discountAmount\": 0,\n          \"count\": 0,\n          \"total\": 0,\n          \"point\": 0,\n          \"totalPoint\": 0\n        },\n        \"totalFare\": 4797000,\n        \"totalTax\": 5232000,\n        \"totalFee\": 0,\n        \"totalPrice\": 10029000,\n        \"totalDiscountAmount\": 0,\n        \"totalPoint\": 0\n      },\n      \"flights\": [\n        {\n          \"sequence\": 1,\n          \"flightDuration\": 200,\n          \"travelDuration\": 200,\n          \"journeyId\": \"00000000-0000-0000-0000-000000000000\",\n          \"segments\": [\n            {\n              \"segmentId\": \"1\",\n              \"sequence\": 1,\n              \"bookingCode\": \"G\",\n              \"cabinClass\": \"ECONOMY\",\n              \"available\": 9,\n              \"departureCode\": \"HAN\",\n              \"departureName\": \"Hanoi\",\n              \"departureDate\": \"2025-11-08\",\n              \"departureTime\": \"09:35\",\n              \"departureTerminal\": \"2\",\n              \"arrivalCode\": \"SIN\",\n              \"arrivalName\": \"Singapore\",\n              \"arrivalDate\": \"2025-11-08\",\n              \"arrivalTime\": \"13:55\",\n              \"arrivalTerminal\": \"4\",\n              \"airlines\": \"A1\",\n              \"airlinesName\": \"A.P.G. DISTRIBUTION SYSTEM\",\n              \"equipment\": \"321\",\n              \"flightNumber\": \"2915\",\n              \"flightTime\": 200,\n              \"stopTime\": 0,\n              \"baggageRules\": {\n                \"adults\": [\n                  {\n                    \"baggageAmount\": \"1PC\",\n                    \"baggageWeight\": \"20kg\",\n                    \"carryOnAmount\": \"1PC\",\n                    \"carryOnWeight\": \"7kg\"\n                  }\n                ]\n              },\n              \"miniRules\": {},\n              \"fareBasis\": \"GAPVJ\"\n            }\n          ]\n        },\n        {\n          \"sequence\": 2,\n          \"flightDuration\": 255,\n          \"travelDuration\": 550,\n          \"journeyId\": \"00000000-0000-0000-0000-000000000000\",\n          \"segments\": [\n            {\n              \"segmentId\": \"2\",\n              \"sequence\": 1,\n              \"bookingCode\": \"G\",\n              \"cabinClass\": \"ECONOMY\",\n              \"available\": 9,\n              \"departureCode\": \"SIN\",\n              \"departureName\": \"Singapore\",\n              \"departureDate\": \"2025-11-08\",\n              \"departureTime\": \"17:00\",\n              \"departureTerminal\": \"4\",\n              \"arrivalCode\": \"SGN\",\n              \"arrivalName\": \"Ho Chi Minh City\",\n              \"arrivalDate\": \"2025-11-08\",\n              \"arrivalTime\": \"18:05\",\n              \"arrivalTerminal\": \"2\",\n              \"airlines\": \"A1\",\n              \"airlinesName\": \"A.P.G. DISTRIBUTION SYSTEM\",\n              \"equipment\": \"321\",\n              \"flightNumber\": \"2814\",\n              \"flightTime\": 125,\n              \"stopTime\": 295,\n              \"baggageRules\": {\n                \"adults\": [\n                  {\n                    \"baggageAmount\": \"1PC\",\n                    \"baggageWeight\": \"20kg\",\n                    \"carryOnAmount\": \"1PC\",\n                    \"carryOnWeight\": \"7kg\"\n                  }\n                ]\n              },\n              \"miniRules\": {},\n              \"fareBasis\": \"GAPVJ\"\n            },\n            {\n              \"segmentId\": \"3\",\n              \"sequence\": 2,\n              \"bookingCode\": \"G\",\n              \"cabinClass\": \"ECONOMY\",\n              \"available\": 9,\n              \"departureCode\": \"SGN\",\n              \"departureName\": \"Ho Chi Minh City\",\n              \"departureDate\": \"2025-11-08\",\n              \"departureTime\": \"23:00\",\n              \"departureTerminal\": \"1\",\n              \"arrivalCode\": \"HAN\",\n              \"arrivalName\": \"Hanoi\",\n              \"arrivalDate\": \"2025-11-09\",\n              \"arrivalTime\": \"01:10\",\n              \"arrivalTerminal\": \"1\",\n              \"airlines\": \"A1\",\n              \"airlinesName\": \"A.P.G. DISTRIBUTION SYSTEM\",\n              \"equipment\": \"320\",\n              \"flightNumber\": \"4152\",\n              \"flightTime\": 130,\n              \"stopTime\": 0,\n              \"baggageRules\": {\n                \"adults\": [\n                  {\n                    \"baggageAmount\": \"1PC\",\n                    \"baggageWeight\": \"20kg\",\n                    \"carryOnAmount\": \"1PC\",\n                    \"carryOnWeight\": \"7kg\"\n                  }\n                ]\n              },\n              \"miniRules\": {},\n              \"fareBasis\": \"GAPVJ\"\n            }\n          ]\n        }\n      ]\n    },\n    {\n      \"provider\": \"flight.provider2.1A\",\n      \"solutionId\": \"caa9437624e7a91dce3068b03feb4ea28cde6a4de21cc7bad7f327d2445ed145+qu0aCYHfSN2NHWjO1ALHzQ+1bbb1926-edec-4d59-ab7c-5a3584f64a14+++1A\",\n      \"type\": \"COMBINED\",\n      \"requireEnrichment\": false,\n      \"allowPayLater\": true,\n      \"isNDC\": false,\n      \"fare\": {\n        \"adultFare\": {\n          \"fare\": 4797000,\n          \"tax\": 5232000,\n          \"fee\": 0,\n          \"currency\": \"VND\",\n          \"discountAmount\": 0,\n          \"count\": 1,\n          \"total\": 10029000,\n          \"point\": 0,\n          \"totalPoint\": 0\n        },\n        \"childFare\": {\n          \"fare\": 0,\n          \"tax\": 0,\n          \"fee\": 0,\n          \"currency\": \"USD\",\n          \"discountAmount\": 0,\n          \"count\": 0,\n          \"total\": 0,\n          \"point\": 0,\n          \"totalPoint\": 0\n        },\n        \"infantFare\": {\n          \"fare\": 0,\n          \"tax\": 0,\n          \"fee\": 0,\n          \"currency\": \"USD\",\n          \"discountAmount\": 0,\n          \"count\": 0,\n          \"total\": 0,\n          \"point\": 0,\n          \"totalPoint\": 0\n        },\n        \"totalFare\": 4797000,\n        \"totalTax\": 5232000,\n        \"totalFee\": 0,\n        \"totalPrice\": 10029000,\n        \"totalDiscountAmount\": 0,\n        \"totalPoint\": 0\n      },\n      \"flights\": [\n        {\n          \"sequence\": 1,\n          \"flightDuration\": 200,\n          \"travelDuration\": 200,\n          \"journeyId\": \"00000000-0000-0000-0000-000000000000\",\n          \"segments\": [\n            {\n              \"segmentId\": \"1\",\n              \"sequence\": 1,\n              \"bookingCode\": \"G\",\n              \"cabinClass\": \"ECONOMY\",\n              \"available\": 9,\n              \"departureCode\": \"HAN\",\n              \"departureName\": \"Hanoi\",\n              \"departureDate\": \"2025-11-08\",\n              \"departureTime\": \"09:35\",\n              \"departureTerminal\": \"2\",\n              \"arrivalCode\": \"SIN\",\n              \"arrivalName\": \"Singapore\",\n              \"arrivalDate\": \"2025-11-08\",\n              \"arrivalTime\": \"13:55\",\n              \"arrivalTerminal\": \"4\",\n              \"airlines\": \"A1\",\n              \"airlinesName\": \"A.P.G. DISTRIBUTION SYSTEM\",\n              \"equipment\": \"321\",\n              \"flightNumber\": \"2915\",\n              \"flightTime\": 200,\n              \"stopTime\": 0,\n              \"baggageRules\": {\n                \"adults\": [\n                  {\n                    \"baggageAmount\": \"1PC\",\n                    \"baggageWeight\": \"20kg\",\n                    \"carryOnAmount\": \"1PC\",\n                    \"carryOnWeight\": \"7kg\"\n                  }\n                ]\n              },\n              \"miniRules\": {},\n              \"fareBasis\": \"GAPVJ\"\n            }\n          ]\n        },\n        {\n          \"sequence\": 2,\n          \"flightDuration\": 255,\n          \"travelDuration\": 565,\n          \"journeyId\": \"00000000-0000-0000-0000-000000000000\",\n          \"segments\": [\n            {\n              \"segmentId\": \"2\",\n              \"sequence\": 1,\n              \"bookingCode\": \"G\",\n              \"cabinClass\": \"ECONOMY\",\n              \"available\": 9,\n              \"departureCode\": \"SIN\",\n              \"departureName\": \"Singapore\",\n              \"departureDate\": \"2025-11-08\",\n              \"departureTime\": \"17:00\",\n              \"departureTerminal\": \"4\",\n              \"arrivalCode\": \"SGN\",\n              \"arrivalName\": \"Ho Chi Minh City\",\n              \"arrivalDate\": \"2025-11-08\",\n              \"arrivalTime\": \"18:05\",\n              \"arrivalTerminal\": \"2\",\n              \"airlines\": \"A1\",\n              \"airlinesName\": \"A.P.G. DISTRIBUTION SYSTEM\",\n              \"equipment\": \"321\",\n              \"flightNumber\": \"2814\",\n              \"flightTime\": 125,\n              \"stopTime\": 310,\n              \"baggageRules\": {\n                \"adults\": [\n                  {\n                    \"baggageAmount\": \"1PC\",\n                    \"baggageWeight\": \"20kg\",\n                    \"carryOnAmount\": \"1PC\",\n                    \"carryOnWeight\": \"7kg\"\n                  }\n                ]\n              },\n              \"miniRules\": {},\n              \"fareBasis\": \"GAPVJ\"\n            },\n            {\n              \"segmentId\": \"3\",\n              \"sequence\": 2,\n              \"bookingCode\": \"G\",\n              \"cabinClass\": \"ECONOMY\",\n              \"available\": 9,\n              \"departureCode\": \"SGN\",\n              \"departureName\": \"Ho Chi Minh City\",\n              \"departureDate\": \"2025-11-08\",\n              \"departureTime\": \"23:15\",\n              \"departureTerminal\": \"1\",\n              \"arrivalCode\": \"HAN\",\n              \"arrivalName\": \"Hanoi\",\n              \"arrivalDate\": \"2025-11-09\",\n              \"arrivalTime\": \"01:25\",\n              \"arrivalTerminal\": \"1\",\n              \"airlines\": \"A1\",\n              \"airlinesName\": \"A.P.G. DISTRIBUTION SYSTEM\",\n              \"equipment\": \"321\",\n              \"flightNumber\": \"2168\",\n              \"flightTime\": 130,\n              \"stopTime\": 0,\n              \"baggageRules\": {\n                \"adults\": [\n                  {\n                    \"baggageAmount\": \"1PC\",\n                    \"baggageWeight\": \"20kg\",\n                    \"carryOnAmount\": \"1PC\",\n                    \"carryOnWeight\": \"7kg\"\n                  }\n                ]\n              },\n              \"miniRules\": {},\n              \"fareBasis\": \"GAPVJ\"\n            }\n          ]\n        }\n      ]\n    }\n  ]\n}\n\n ```\n\n---\n\n## Response Field Description\n\nThis document describes the JSON response body for a flight search solution returned by the flight search API endpoint. This is a single item within the `solutions` array.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `provider` | String | The ID of the flight provider for this solution. |\n| `solutionId` | String | A unique identifier for this flight solution. This ID is used for booking. |\n| `type` | String | The type of flight booking. Example: `\"COMBINED\"` |\n| `fare` | Object | Detailed fare information for this flight solution. See `Fare Object Structure`. |\n| `isNDC` | Bool | Indicates whether the flight is distributed through an NDC (New Distribution Capability) channel. |\n| `requireEnrichment` | Bool | Require enrich information for this flight solution.  <br>If it's `true`, you must call **Enrich API** (_**{{host}}/hub/flight/enrich**_). |\n| `allowPayLater` | Bool | Allow to pay later. |\n| `flights` | Array | Array of objects detailing the flight legs. See `Flights Array Structure`. |\n\n---\n\n### Fare Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adultFare` | Object | Fare details for adult passengers. See `Passenger Fare Object Structure`. |\n| `childFare` | Object | Fare details for child passengers. See `Passenger Fare Object Structure`. |\n| `infantFare` | Object | Fare details for infant passengers. See `Passenger Fare Object Structure`. |\n| `totalFare` | Number | The sum of the base fares for all passengers (excluding taxes and fees). |\n| `totalTax` | Number | The sum of the taxes for all passengers. |\n| `totalFee` | Number | The sum of the fees for all passengers. |\n| `totalPrice` | Number | The grand total price for all passengers (base fare + taxes + fees). |\n| `totalDiscountAmount` | Number | The sum of the discounts for all passengers. |\n| `totalPoint` | Number | The sum of the points for all passengers. |\n\n---\n\n### Passenger Fare Object Structure (adultFare, childFare, infantFare)\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `fare` | Number | The base fare for this passenger type. |\n| `tax` | Number | Taxes for this passenger type. |\n| `fee` | Number | Fees for this passenger type. |\n| `currency` | String | Currency code for the fare elements (e.g., `\"USD\"`). |\n| `count` | Integer | Number of passengers of this type. |\n| `total` | Number | Total fare including taxes and fees, for this type. |\n| `point` | Integer | Points of the voucher. |\n| `totalPoint` | Integer | The total points (point \\* count). |\n\n---\n\n### Flights Array Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `sequence` | Integer | Flight leg sequence (1=outbound, 2=return). Starts from 1. |\n| `flightDuration` | Integer | Total flight time in minutes for the entire leg. |\n| `travelDuration` | Integer | Total travel time in minutes for the entire leg (including layovers). |\n| `journeyId` | String | The journey object that groups all flight segments of a single trip. |\n| `segments` | Array | An array containing information about each segment of the flight leg. See `Segments Array Structure`. |\n\n---\n\n### Segments Array Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `segmentId` | String | Unique identifier for the flight segment. |\n| `sequence` | Integer | Segment order within the leg. |\n| `bookingCode` | String | Fare class code (e.g., `\"X\"`). Consult the airline for the specific meaning of the booking code. |\n| `cabinClass` | String | Cabin class for the segment (e.g., `\"ECONOMY\"`). |\n| `available` | Integer | Number of seats available in this class. |\n| `departureCode` | String | IATA departure airport code (e.g., `\"SGN\"`). |\n| `departureName` | String | Departure airport name (e.g., `\"Ho Chi Minh City\"`). |\n| `departureDate` | String | Departure date (YYYY-MM-DD) (e.g., `\"2025-06-20\"`). |\n| `departureTime` | String | Departure time (HH:mm) (e.g., `\"12:50\"`). |\n| `departureTerminal` | String | Departure terminal (e.g., `\"1\"`). |\n| `arrivalCode` | String | IATA arrival airport code (e.g., `\"HAN\"`). |\n| `arrivalName` | String | Arrival airport name (e.g., `\"Hanoi\"`). |\n| `arrivalDate` | String | Arrival date (YYYY-MM-DD) (e.g., `\"2025-06-20\"`). |\n| `arrivalTime` | String | Arrival time (HH:mm) (e.g., `\"15:00\"`). |\n| `arrivalTerminal` | String | Arrival terminal (e.g., `\"1\"`). |\n| `airlines` | String | 2-letter airline code (e.g., `\"QH\"`). |\n| `airlinesName` | String | Airline name (e.g., `\"BAMBOO AIRWAYS\"`). |\n| `equipment` | String | Aircraft type (e.g., `\"JET\"`). |\n| `flightNumber` | String | Flight number (e.g., `\"242\"`). |\n| `flightTime` | Integer | Flight time in minutes. |\n| `stopTime` | Integer | Layover time in minutes (0 for direct flights). |\n| `baggageRules` | Object | Baggage rules for this segment. See `Baggage Rules Object`. |\n| `miniRules` | Object | Rules regarding penalties, refunds, and reissues. See `Mini Rules Object`. |\n| `fareBasis` | String | Indicates the fare basis code that defines the fare type and rules applied to the ticket. |\n\n---\n\n### Baggage Rules Object\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Baggage rules for adult passengers. See `Baggage Rule Details Object`. |\n| `children` | Array | Baggage rules for child passengers. See `Baggage Rule Details Object`. |\n| `infants` | Array | Baggage rules for infant passengers. |\n\n---\n\n### Baggage Rule Details Object\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `baggageAmount` | String | Amount of checked baggage allowed (e.g., `\"0PC\"` for 0 pieces). |\n| `baggageWeight` | String | Weight of checked baggage allowed (e.g., `\"7KG\"` for 7 kilograms). |\n| `carryOnAmount` | String | Amount of Carry-on baggage allowed (e.g., `\"1PC\"` for 1 pieces). |\n| `carryOnWeight` | String | Weight of Carry-on baggage allowed (e.g., `\"7KG\"` for 7 kilograms). |\n\n---\n\n### Mini Rules Object\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Penalty rules for adults. See `Penalty Rule Object`. |\n| `children` | Array | Penalty rules for children. See `Penalty Rule Object`. |\n| `infants` | Array | Penalty rules for infants. |\n\n---\n\n### Penalty Rule Object\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `miniruleText` | String | The rule text. |\n| `miniruleHtml` | String | The rule html. |\n| `penaltyType` | String | The type of penalty (e.g., `\"REFUND\"`, `\"REISSUE\"`). |\n| `allowRefund` | String | Indicates if a refund is allowed (`\"NOT_ALLOWED\"`). |\n| `situation` | String | When the penalty applies (`\"BEFORE_DEPARTURE\"`, `\"AFTER_DEPARTURE\"`). |\n| `noShowTime` | String | No-show timing relative to departure. |\n| `noShowTimeUnit` | String | Time unit for the no-show period. |\n| `amount` | Number | A general fee amount. |\n| `currency` | String | The currency code (e.g., \"USD\"). |\n| `percent` | Number | The penalty amount as a percentage of the fare. |\n| `baseType` | String | The basis for the penalty calculation (e.g., `\"FARE\"`). |"
									},
									"response": []
								},
								{
									"name": "1.1 Enrich",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"pm.test(\"Return status code is 200\", function () {\r",
													"    pm.response.to.have.status(200);\r",
													"});\r",
													"pm.test(\"Solution has value\", function () {\r",
													"    const jsonData = pm.response.json();\r",
													"    pm.expect(jsonData.solutions[0]).to.have.property('solutionProviderId');\r",
													"    pm.collectionVariables.set(\"solutionProviderId\", jsonData.solutions[0].solutionProviderId);\r",
													"});\r",
													"pm.test(\"Solution has value\", function () {\r",
													"    const jsonData = pm.response.json();\r",
													"    pm.expect(jsonData.solutions[0]).to.have.property('flights');\r",
													"    pm.collectionVariables.set(\"solutionFlight\", jsonData.solutions[0].flights);\r",
													"});"
												],
												"type": "text/javascript",
												"packages": {},
												"requests": {}
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{access_token}}",
												"type": "text"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\r\n    \"solutions\": [\r\n        {\r\n            \"solutionId\": \"eJxNjr1uwzAMhJ8lEJBNxpHUH8fWCGokRRAnS6YItV1PQbZufvjKatEGBG/4jjySNpIwpnlOw6hwU+CByI80zwHJI04pE9wN9nV/sd3L0TLYE1HctldRb0+7g+0Ob38Ywn5pr9FJxc8bpXCjitawH8xuu05zxf9B7EgFJUjEVbze+bXKV1yCBhc/P9xEMXD0KShSFK+KCdBgKEkjmslTE8JCEhvNaLA8vu73vIqhjAzT534pbcT0Z6b3fXc21a1yUjUtfwPnvkg8\",\r\n            \"provider\": \"flight.provider4\"\r\n        }\r\n    ]\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/hub/flight/enrich",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"flight",
												"enrich"
											]
										},
										"description": "# Enrich API Documentation\n\n## Overview\n\nThis API provides detailed information about each seat class on a flight. It returns comprehensive flight solutions, including fare breakdowns, baggage rules, and change/refund policies.\n\n---\n\n## API Endpoint\n\n- **URL:** `{{host}}/hub/flight/enrich`\n    \n- **Method:** `POST`\n    \n- **Content-Type:** `application/json`\n    \n\n---\n\n## Headers\n\n| Key | Value | Description |\n| --- | --- | --- |\n| `Authorization` | `Bearer {token}` | JWT access token (Required) |\n| `Content-Type` | `application/json` | Request/Response format |\n\n---\n\n## Request Body\n\n``` json\n{\n    \"solutions\": [\n        {\n            \"solutionId\": \"eJxNjr1uwzAMhJ8lEJBNxpHUH8fWCGokRRAnS6YItV1PQbZufvjKatEGBG/4jjySNpIwpnlOw6hwU+CByI80zwHJI04pE9wN9nV/sd3L0TLYE1HctldRb0+7g+0Ob38Ywn5pr9FJxc8bpXCjitawH8xuu05zxf9B7EgFJUjEVbze+bXKV1yCBhc/P9xEMXD0KShSFK+KCdBgKEkjmslTE8JCEhvNaLA8vu73vIqhjAzT534pbcT0Z6b3fXc21a1yUjUtfwPnvkg8\",\n            \"provider\": \"flight.provider4\"\n        }\n    ]\n}\n\n ```\n\n---\n\n## Request Body Parameters\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `solutions` | Array | ✅ Yes | An array containing flight solution objects. This array must contain at least one object as described in the **`solutions`** array structure below. |\n\n### `solutions` Array Structure\n\nThe `solutions` array contains a single JSON object, describing a single flight option, with the following structure:\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `provider` | String | ✅ Yes | The ID of the flight provider. Example: `\"flight.provider1\"` |\n| `solutionId` | String | ✅ Yes | A unique identifier for the entire flight solution. This ID is provided by the flight search API. This must be a valid solutionId. Example: `\"ldskSCwgRoiHlzOph/3wmHj...\"` |\n\n---\n\n## Sample Response\n\n``` json\n{\n    \"solutions\": [\n        {\n            \"provider\": \"flight.provider4\",\n            \"solutionId\": \"eJxdjTFrw0AMhX/MQaba6EknnW9MQ4ppiQluh0w+znUyhWzZ/OMbn6EpXST4nvQ97E30Ml0kk52/fQ4+IuSRJeTGg5TGhIGq1/fPqt12FRMrQLbpTkRaHfcf1eHt8IvB0Lk7xYYL/vvBIBpQ0CJbsdBmuV7xUyTEQjQvHato6SkREwDVAaMP5+wnBGOJXkU1wshsIor28j/GQwiDNSV2hliHmB6qWnT2prX41GjNfr7dr9e0DFdGm9q5T70T1/Zfu45TX5Z7XhxjdDv8AIvlUbo=\",\n            \"type\": \"COMBINED\",\n            \"requireEnrichment\": true,\n            \"allowPayLater\": true,\n            \"isNDC\": false,\n            \"fare\": {\n                \"adultFare\": {\n                    \"fare\": 619.79,\n                    \"tax\": 111.35,\n                    \"fee\": 0.0,\n                    \"currency\": \"USD\",\n                    \"discountAmount\": 0.0,\n                    \"count\": 1,\n                    \"total\": 731.14,\n                    \"point\": 0,\n                    \"totalPoint\": 0\n                },\n                \"childFare\": {\n                    \"fare\": 0.0,\n                    \"tax\": 0.0,\n                    \"fee\": 0.0,\n                    \"currency\": \"USD\",\n                    \"discountAmount\": 0.0,\n                    \"count\": 0,\n                    \"total\": 0.0,\n                    \"point\": 0,\n                    \"totalPoint\": 0\n                },\n                \"infantFare\": {\n                    \"fare\": 0.0,\n                    \"tax\": 0.0,\n                    \"fee\": 0.0,\n                    \"currency\": \"USD\",\n                    \"discountAmount\": 0.0,\n                    \"count\": 0,\n                    \"total\": 0.0,\n                    \"point\": 0,\n                    \"totalPoint\": 0\n                },\n                \"totalFare\": 619.79,\n                \"totalTax\": 111.35,\n                \"totalFee\": 0.0,\n                \"totalPrice\": 731.14,\n                \"totalDiscountAmount\": 0.0,\n                \"totalPoint\": 0\n            },\n            \"flights\": [\n                {\n                    \"sequence\": 1,\n                    \"flightDuration\": 335,\n                    \"travelDuration\": 630,\n                    \"journeyId\": \"00000000-0000-0000-0000-000000000000\",\n                    \"segments\": [\n                        {\n                            \"segmentId\": \"NX005-PEK-MFM-202511061215\",\n                            \"sequence\": 1,\n                            \"bookingCode\": \"H\",\n                            \"cabinClass\": \"ECONOMY\",\n                            \"available\": 8,\n                            \"departureCode\": \"PEK\",\n                            \"departureName\": \"Beijing\",\n                            \"departureDate\": \"2025-11-06\",\n                            \"departureTime\": \"12:15\",\n                            \"departureTerminal\": \"T3\",\n                            \"arrivalCode\": \"MFM\",\n                            \"arrivalName\": \"Macau\",\n                            \"arrivalDate\": \"2025-11-06\",\n                            \"arrivalTime\": \"16:05\",\n                            \"arrivalTerminal\": \"\",\n                            \"airlines\": \"NX\",\n                            \"airlinesName\": \"AIR MACAU\",\n                            \"equipment\": \"321\",\n                            \"flightNumber\": \"NX005\",\n                            \"flightTime\": 230,\n                            \"stopTime\": 295,\n                            \"baggageRules\": {\n                                \"adults\": [\n                                    {\n                                        \"baggageAmount\": \"\",\n                                        \"baggageWeight\": \"32KG\",\n                                        \"carryOnAmount\": \"\",\n                                        \"carryOnWeight\": \"7KG\"\n                                    }\n                                ],\n                                \"children\": [\n                                    {\n                                        \"baggageAmount\": \"\",\n                                        \"baggageWeight\": \"32KG\",\n                                        \"carryOnAmount\": \"\",\n                                        \"carryOnWeight\": \"7KG\"\n                                    }\n                                ],\n                                \"infants\": []\n                            },\n                            \"miniRules\": {\n                                \"adults\": [\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 70.21,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 70.21,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    }\n                                ],\n                                \"children\": [\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 79.47,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 79.47,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    }\n                                ],\n                                \"infants\": []\n                            }\n                        },\n                        {\n                            \"segmentId\": \"NX982-MFM-HAN-202511062100\",\n                            \"sequence\": 2,\n                            \"bookingCode\": \"H\",\n                            \"cabinClass\": \"ECONOMY\",\n                            \"available\": 8,\n                            \"departureCode\": \"MFM\",\n                            \"departureName\": \"Macau\",\n                            \"departureDate\": \"2025-11-06\",\n                            \"departureTime\": \"21:00\",\n                            \"departureTerminal\": \"\",\n                            \"arrivalCode\": \"HAN\",\n                            \"arrivalName\": \"Hanoi\",\n                            \"arrivalDate\": \"2025-11-06\",\n                            \"arrivalTime\": \"21:45\",\n                            \"arrivalTerminal\": \"T2\",\n                            \"airlines\": \"NX\",\n                            \"airlinesName\": \"AIR MACAU\",\n                            \"equipment\": \"320\",\n                            \"flightNumber\": \"NX982\",\n                            \"flightTime\": 105,\n                            \"stopTime\": 0,\n                            \"baggageRules\": {\n                                \"adults\": [\n                                    {\n                                        \"baggageAmount\": \"\",\n                                        \"baggageWeight\": \"32KG\",\n                                        \"carryOnAmount\": \"\",\n                                        \"carryOnWeight\": \"7KG\"\n                                    }\n                                ],\n                                \"children\": [\n                                    {\n                                        \"baggageAmount\": \"\",\n                                        \"baggageWeight\": \"32KG\",\n                                        \"carryOnAmount\": \"\",\n                                        \"carryOnWeight\": \"7KG\"\n                                    }\n                                ],\n                                \"infants\": []\n                            },\n                            \"miniRules\": {\n                                \"adults\": [\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 70.21,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 70.21,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    }\n                                ],\n                                \"children\": [\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 79.47,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 79.47,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    }\n                                ],\n                                \"infants\": []\n                            }\n                        }\n                    ]\n                },\n                {\n                    \"sequence\": 2,\n                    \"flightDuration\": 310,\n                    \"travelDuration\": 910,\n                    \"journeyId\": \"00000000-0000-0000-0000-000000000000\",\n                    \"segments\": [\n                        {\n                            \"segmentId\": \"NX981-HAN-MFM-202511302300\",\n                            \"sequence\": 1,\n                            \"bookingCode\": \"R\",\n                            \"cabinClass\": \"ECONOMY\",\n                            \"available\": 8,\n                            \"departureCode\": \"HAN\",\n                            \"departureName\": \"Hanoi\",\n                            \"departureDate\": \"2025-11-30\",\n                            \"departureTime\": \"23:00\",\n                            \"departureTerminal\": \"T2\",\n                            \"arrivalCode\": \"MFM\",\n                            \"arrivalName\": \"Macau\",\n                            \"arrivalDate\": \"2025-12-01\",\n                            \"arrivalTime\": \"01:55\",\n                            \"arrivalTerminal\": \"\",\n                            \"airlines\": \"NX\",\n                            \"airlinesName\": \"AIR MACAU\",\n                            \"equipment\": \"321\",\n                            \"flightNumber\": \"NX981\",\n                            \"flightTime\": 115,\n                            \"stopTime\": 600,\n                            \"baggageRules\": {\n                                \"adults\": [\n                                    {\n                                        \"baggageAmount\": \"\",\n                                        \"baggageWeight\": \"32KG\",\n                                        \"carryOnAmount\": \"\",\n                                        \"carryOnWeight\": \"7KG\"\n                                    }\n                                ],\n                                \"children\": [\n                                    {\n                                        \"baggageAmount\": \"\",\n                                        \"baggageWeight\": \"32KG\",\n                                        \"carryOnAmount\": \"\",\n                                        \"carryOnWeight\": \"7KG\"\n                                    }\n                                ],\n                                \"infants\": []\n                            },\n                            \"miniRules\": {\n                                \"adults\": [\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 70.21,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 70.21,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    }\n                                ],\n                                \"children\": [\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 79.47,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 79.47,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    }\n                                ],\n                                \"infants\": []\n                            }\n                        },\n                        {\n                            \"segmentId\": \"NX002-MFM-PEK-202512011155\",\n                            \"sequence\": 2,\n                            \"bookingCode\": \"R\",\n                            \"cabinClass\": \"ECONOMY\",\n                            \"available\": 8,\n                            \"departureCode\": \"MFM\",\n                            \"departureName\": \"Macau\",\n                            \"departureDate\": \"2025-12-01\",\n                            \"departureTime\": \"11:55\",\n                            \"departureTerminal\": \"\",\n                            \"arrivalCode\": \"PEK\",\n                            \"arrivalName\": \"Beijing\",\n                            \"arrivalDate\": \"2025-12-01\",\n                            \"arrivalTime\": \"15:10\",\n                            \"arrivalTerminal\": \"T3\",\n                            \"airlines\": \"NX\",\n                            \"airlinesName\": \"AIR MACAU\",\n                            \"equipment\": \"321\",\n                            \"flightNumber\": \"NX002\",\n                            \"flightTime\": 195,\n                            \"stopTime\": 0,\n                            \"baggageRules\": {\n                                \"adults\": [\n                                    {\n                                        \"baggageAmount\": \"\",\n                                        \"baggageWeight\": \"32KG\",\n                                        \"carryOnAmount\": \"\",\n                                        \"carryOnWeight\": \"7KG\"\n                                    }\n                                ],\n                                \"children\": [\n                                    {\n                                        \"baggageAmount\": \"\",\n                                        \"baggageWeight\": \"32KG\",\n                                        \"carryOnAmount\": \"\",\n                                        \"carryOnWeight\": \"7KG\"\n                                    }\n                                ],\n                                \"infants\": []\n                            },\n                            \"miniRules\": {\n                                \"adults\": [\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 70.21,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 70.21,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    }\n                                ],\n                                \"children\": [\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 79.47,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 79.47,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    }\n                                ],\n                                \"infants\": []\n                            }\n                        }\n                    ]\n                }\n            ]\n        },\n        {\n            \"provider\": \"flight.provider4\",\n            \"solutionId\": \"eJxdj01rwzAMhn+Moacl6JUtfxw3szIyGsq2Q08xztKeSm+9+ccvdmAdu0jwvNIjhL3VclkuOpM9f5vsTIDLM2uXvQEJzclM1L0Mn93b89gxsQBkd+OJSLrj63t32B9+MRhSxlPw3PDfDQbRhIaqbMOadnV6ww+RJtZEpd7YRPVOi5gAiEyYjTtns8BZ1sGIFgmwZO1CFOzT/xirEBbWt1it35nepFXVaylwHj2H5KVnU2736zXVoloZ0lBiikqr4eMrjpxia+oxcQxBRfwA061RwQ==\",\n            \"type\": \"COMBINED\",\n            \"requireEnrichment\": true,\n            \"allowPayLater\": true,\n            \"isNDC\": false,\n            \"fare\": {\n                \"adultFare\": {\n                    \"fare\": 2374.4,\n                    \"tax\": 111.35,\n                    \"fee\": 0.0,\n                    \"currency\": \"USD\",\n                    \"discountAmount\": 0.0,\n                    \"count\": 1,\n                    \"total\": 2485.75,\n                    \"point\": 0,\n                    \"totalPoint\": 0\n                },\n                \"childFare\": {\n                    \"fare\": 0.0,\n                    \"tax\": 0.0,\n                    \"fee\": 0.0,\n                    \"currency\": \"USD\",\n                    \"discountAmount\": 0.0,\n                    \"count\": 0,\n                    \"total\": 0.0,\n                    \"point\": 0,\n                    \"totalPoint\": 0\n                },\n                \"infantFare\": {\n                    \"fare\": 0.0,\n                    \"tax\": 0.0,\n                    \"fee\": 0.0,\n                    \"currency\": \"USD\",\n                    \"discountAmount\": 0.0,\n                    \"count\": 0,\n                    \"total\": 0.0,\n                    \"point\": 0,\n                    \"totalPoint\": 0\n                },\n                \"totalFare\": 2374.4,\n                \"totalTax\": 111.35,\n                \"totalFee\": 0.0,\n                \"totalPrice\": 2485.75,\n                \"totalDiscountAmount\": 0.0,\n                \"totalPoint\": 0\n            },\n            \"flights\": [\n                {\n                    \"sequence\": 1,\n                    \"flightDuration\": 335,\n                    \"travelDuration\": 630,\n                    \"journeyId\": \"00000000-0000-0000-0000-000000000000\",\n                    \"segments\": [\n                        {\n                            \"segmentId\": \"NX005-PEK-MFM-202511061215\",\n                            \"sequence\": 1,\n                            \"bookingCode\": \"J\",\n                            \"cabinClass\": \"BUSINESS\",\n                            \"available\": 3,\n                            \"departureCode\": \"PEK\",\n                            \"departureName\": \"Beijing\",\n                            \"departureDate\": \"2025-11-06\",\n                            \"departureTime\": \"12:15\",\n                            \"departureTerminal\": \"T3\",\n                            \"arrivalCode\": \"MFM\",\n                            \"arrivalName\": \"Macau\",\n                            \"arrivalDate\": \"2025-11-06\",\n                            \"arrivalTime\": \"16:05\",\n                            \"arrivalTerminal\": \"\",\n                            \"airlines\": \"NX\",\n                            \"airlinesName\": \"AIR MACAU\",\n                            \"equipment\": \"321\",\n                            \"flightNumber\": \"NX005\",\n                            \"flightTime\": 230,\n                            \"stopTime\": 295,\n                            \"baggageRules\": {\n                                \"adults\": [\n                                    {\n                                        \"baggageAmount\": \"2PC\",\n                                        \"baggageWeight\": \"32KG\",\n                                        \"carryOnAmount\": \"\",\n                                        \"carryOnWeight\": \"7KG\"\n                                    }\n                                ],\n                                \"children\": [\n                                    {\n                                        \"baggageAmount\": \"2PC\",\n                                        \"baggageWeight\": \"32KG\",\n                                        \"carryOnAmount\": \"\",\n                                        \"carryOnWeight\": \"7KG\"\n                                    }\n                                ],\n                                \"infants\": []\n                            },\n                            \"miniRules\": {\n                                \"adults\": [\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 70.21,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 70.21,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    }\n                                ],\n                                \"children\": [\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 79.47,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 79.47,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    }\n                                ],\n                                \"infants\": []\n                            }\n                        },\n                        {\n                            \"segmentId\": \"NX982-MFM-HAN-202511062100\",\n                            \"sequence\": 2,\n                            \"bookingCode\": \"J\",\n                            \"cabinClass\": \"BUSINESS\",\n                            \"available\": 3,\n                            \"departureCode\": \"MFM\",\n                            \"departureName\": \"Macau\",\n                            \"departureDate\": \"2025-11-06\",\n                            \"departureTime\": \"21:00\",\n                            \"departureTerminal\": \"\",\n                            \"arrivalCode\": \"HAN\",\n                            \"arrivalName\": \"Hanoi\",\n                            \"arrivalDate\": \"2025-11-06\",\n                            \"arrivalTime\": \"21:45\",\n                            \"arrivalTerminal\": \"T2\",\n                            \"airlines\": \"NX\",\n                            \"airlinesName\": \"AIR MACAU\",\n                            \"equipment\": \"320\",\n                            \"flightNumber\": \"NX982\",\n                            \"flightTime\": 105,\n                            \"stopTime\": 0,\n                            \"baggageRules\": {\n                                \"adults\": [\n                                    {\n                                        \"baggageAmount\": \"2PC\",\n                                        \"baggageWeight\": \"32KG\",\n                                        \"carryOnAmount\": \"\",\n                                        \"carryOnWeight\": \"7KG\"\n                                    }\n                                ],\n                                \"children\": [\n                                    {\n                                        \"baggageAmount\": \"2PC\",\n                                        \"baggageWeight\": \"32KG\",\n                                        \"carryOnAmount\": \"\",\n                                        \"carryOnWeight\": \"7KG\"\n                                    }\n                                ],\n                                \"infants\": []\n                            },\n                            \"miniRules\": {\n                                \"adults\": [\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 70.21,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 70.21,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    }\n                                ],\n                                \"children\": [\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 79.47,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 79.47,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    }\n                                ],\n                                \"infants\": []\n                            }\n                        }\n                    ]\n                },\n                {\n                    \"sequence\": 2,\n                    \"flightDuration\": 310,\n                    \"travelDuration\": 910,\n                    \"journeyId\": \"00000000-0000-0000-0000-000000000000\",\n                    \"segments\": [\n                        {\n                            \"segmentId\": \"NX981-HAN-MFM-202511302300\",\n                            \"sequence\": 1,\n                            \"bookingCode\": \"C\",\n                            \"cabinClass\": \"BUSINESS\",\n                            \"available\": 3,\n                            \"departureCode\": \"HAN\",\n                            \"departureName\": \"Hanoi\",\n                            \"departureDate\": \"2025-11-30\",\n                            \"departureTime\": \"23:00\",\n                            \"departureTerminal\": \"T2\",\n                            \"arrivalCode\": \"MFM\",\n                            \"arrivalName\": \"Macau\",\n                            \"arrivalDate\": \"2025-12-01\",\n                            \"arrivalTime\": \"01:55\",\n                            \"arrivalTerminal\": \"\",\n                            \"airlines\": \"NX\",\n                            \"airlinesName\": \"AIR MACAU\",\n                            \"equipment\": \"321\",\n                            \"flightNumber\": \"NX981\",\n                            \"flightTime\": 115,\n                            \"stopTime\": 600,\n                            \"baggageRules\": {\n                                \"adults\": [\n                                    {\n                                        \"baggageAmount\": \"2PC\",\n                                        \"baggageWeight\": \"32KG\",\n                                        \"carryOnAmount\": \"\",\n                                        \"carryOnWeight\": \"7KG\"\n                                    }\n                                ],\n                                \"children\": [\n                                    {\n                                        \"baggageAmount\": \"2PC\",\n                                        \"baggageWeight\": \"32KG\",\n                                        \"carryOnAmount\": \"\",\n                                        \"carryOnWeight\": \"7KG\"\n                                    }\n                                ],\n                                \"infants\": []\n                            },\n                            \"miniRules\": {\n                                \"adults\": [\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 70.21,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 70.21,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    }\n                                ],\n                                \"children\": [\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 79.47,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 79.47,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    }\n                                ],\n                                \"infants\": []\n                            }\n                        },\n                        {\n                            \"segmentId\": \"NX002-MFM-PEK-202512011155\",\n                            \"sequence\": 2,\n                            \"bookingCode\": \"C\",\n                            \"cabinClass\": \"BUSINESS\",\n                            \"available\": 3,\n                            \"departureCode\": \"MFM\",\n                            \"departureName\": \"Macau\",\n                            \"departureDate\": \"2025-12-01\",\n                            \"departureTime\": \"11:55\",\n                            \"departureTerminal\": \"\",\n                            \"arrivalCode\": \"PEK\",\n                            \"arrivalName\": \"Beijing\",\n                            \"arrivalDate\": \"2025-12-01\",\n                            \"arrivalTime\": \"15:10\",\n                            \"arrivalTerminal\": \"T3\",\n                            \"airlines\": \"NX\",\n                            \"airlinesName\": \"AIR MACAU\",\n                            \"equipment\": \"321\",\n                            \"flightNumber\": \"NX002\",\n                            \"flightTime\": 195,\n                            \"stopTime\": 0,\n                            \"baggageRules\": {\n                                \"adults\": [\n                                    {\n                                        \"baggageAmount\": \"2PC\",\n                                        \"baggageWeight\": \"32KG\",\n                                        \"carryOnAmount\": \"\",\n                                        \"carryOnWeight\": \"7KG\"\n                                    }\n                                ],\n                                \"children\": [\n                                    {\n                                        \"baggageAmount\": \"2PC\",\n                                        \"baggageWeight\": \"32KG\",\n                                        \"carryOnAmount\": \"\",\n                                        \"carryOnWeight\": \"7KG\"\n                                    }\n                                ],\n                                \"infants\": []\n                            },\n                            \"miniRules\": {\n                                \"adults\": [\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 70.21,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 70.21,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    }\n                                ],\n                                \"children\": [\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 79.47,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REFUND\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 79.47,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"FARE_TAX_TICKETINGFEE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"BEFORE\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    },\n                                    {\n                                        \"penaltyType\": \"REISSUE\",\n                                        \"allowRefund\": \"ALLOW\",\n                                        \"situation\": \"AFTER_DEPARTURE\",\n                                        \"noShowTime\": \"AT_OR_AFTER\",\n                                        \"noShowTimeUnit\": \"H\",\n                                        \"amount\": 0.0,\n                                        \"currency\": \"USD\",\n                                        \"percent\": 0.0,\n                                        \"baseType\": \"CABIN_BASIC_FARE\"\n                                    }\n                                ],\n                                \"infants\": []\n                            }\n                        }\n                    ]\n                }\n            ]\n        }\n    ]\n}\n\n ```\n\n---\n\n## Response Field Description\n\nThis document describes the JSON response body for a flight search solution returned by the flight search API endpoint. This is a single item within the `solutions` array.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `provider` | String | The ID of the flight provider for this solution. |\n| `solutionId` | String | A unique identifier for this flight solution. This ID is used for booking. |\n| `type` | String | The type of flight booking. Example: `\"COMBINED\"` |\n| `requireEnrichment` | Bool | Require enrich information for this flight solution.  <br>If it's `true`, you must call **Enrich API** (_**{{host}}/hub/flight/enrich**_). |\n| `isNDC` | Bool | Indicates whether the flight is distributed through an NDC (New Distribution Capability) channel. |\n| `fare` | Object | Detailed fare information for this flight solution. See `Fare Object Structure`. |\n| `flights` | Array | Array of objects detailing the flight legs. See `Flights Array Structure`. |\n\n---\n\n### Fare Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adultFare` | Object | Fare details for adult passengers. See `Passenger Fare Object Structure`. |\n| `childFare` | Object | Fare details for child passengers. See `Passenger Fare Object Structure`. |\n| `infantFare` | Object | Fare details for infant passengers. See `Passenger Fare Object Structure`. |\n| `totalFare` | Number | The sum of the base fares for all passengers (excluding taxes and fees). |\n| `totalTax` | Number | The sum of the taxes for all passengers. |\n| `totalFee` | Number | The sum of the fees for all passengers. |\n| `totalPrice` | Number | The grand total price for all passengers (base fare + taxes + fees). |\n| `totalDiscountAmount` | Number | The sum of the discounts for all passengers. |\n| `totalPoint` | Number | The sum of the points for all passengers. |\n\n---\n\n### Passenger Fare Object Structure (adultFare, childFare, infantFare)\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `fare` | Number | The base fare for this passenger type. |\n| `tax` | Number | Taxes for this passenger type. |\n| `fee` | Number | Fees for this passenger type. |\n| `currency` | String | Currency code for the fare elements (e.g., `\"USD\"`). |\n| `count` | Integer | Number of passengers of this type. |\n| `total` | Number | Total fare including taxes and fees, for this type. |\n| `point` | Integer | Points of the voucher. |\n| `totalPoint` | Integer | The total points (point \\* count). |\n\n---\n\n### Flights Array Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `sequence` | Integer | Flight leg sequence (1=outbound, 2=return). Starts from 1. |\n| `flightDuration` | Integer | Total flight time in minutes for the entire leg. |\n| `travelDuration` | Integer | Total travel time in minutes for the entire leg (including layovers). |\n| `journeyId` | String | The journey object that groups all flight segments of a single trip. |\n| `segments` | Array | An array containing information about each segment of the flight leg. See `Segments Array Structure`. |\n\n---\n\n### Segments Array Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `segmentId` | String | Unique identifier for the flight segment. |\n| `sequence` | Integer | Segment order within the leg. |\n| `bookingCode` | String | Fare class code (e.g., `\"X\"`). Consult the airline for the specific meaning of the booking code. |\n| `cabinClass` | String | Cabin class for the segment (e.g., `\"ECONOMY\"`). |\n| `available` | Integer | Number of seats available in this class. |\n| `departureCode` | String | IATA departure airport code (e.g., `\"SGN\"`). |\n| `departureName` | String | Departure airport name (e.g., `\"Ho Chi Minh City\"`). |\n| `departureDate` | String | Departure date (YYYY-MM-DD) (e.g., `\"2025-06-20\"`). |\n| `departureTime` | String | Departure time (HH:mm) (e.g., `\"12:50\"`). |\n| `departureTerminal` | String | Departure terminal (e.g., `\"1\"`). |\n| `arrivalCode` | String | IATA arrival airport code (e.g., `\"HAN\"`). |\n| `arrivalName` | String | Arrival airport name (e.g., `\"Hanoi\"`). |\n| `arrivalDate` | String | Arrival date (YYYY-MM-DD) (e.g., `\"2025-06-20\"`). |\n| `arrivalTime` | String | Arrival time (HH:mm) (e.g., `\"15:00\"`). |\n| `arrivalTerminal` | String | Arrival terminal (e.g., `\"1\"`). |\n| `airlines` | String | 2-letter airline code (e.g., `\"QH\"`). |\n| `airlinesName` | String | Airline name (e.g., `\"BAMBOO AIRWAYS\"`). |\n| `equipment` | String | Aircraft type (e.g., `\"JET\"`). |\n| `flightNumber` | String | Flight number (e.g., `\"242\"`). |\n| `flightTime` | Integer | Flight time in minutes. |\n| `stopTime` | Integer | Layover time in minutes (0 for direct flights). |\n| `baggageRules` | Object | Baggage rules for this segment. See `Baggage Rules Object`. |\n| `miniRules` | Object | Rules regarding penalties, refunds, and reissues. See `Mini Rules Object`. |\n| `fareBasis` | String | Indicates the fare basis code that defines the fare type and rules applied to the ticket. |\n\n---\n\n### Baggage Rules Object\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Baggage rules for adult passengers. See `Baggage Rule Details Object`. |\n| `children` | Array | Baggage rules for child passengers. See `Baggage Rule Details Object`. |\n| `infants` | Array | Baggage rules for infant passengers. |\n\n---\n\n### Baggage Rule Details Object\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `baggageAmount` | String | Amount of checked baggage allowed (e.g., `\"0PC\"` for 0 pieces). |\n| `baggageWeight` | String | Weight of checked baggage allowed (e.g., `\"7KG\"` for 7 kilograms). |\n| `carryOnAmount` | String | Amount of Carry-on baggage allowed (e.g., `\"1PC\"` for 1 pieces). |\n| `carryOnWeight` | String | Weight of Carry-on baggage allowed (e.g., `\"7KG\"` for 7 kilograms). |\n\n---\n\n### Mini Rules Object\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Penalty rules for adults. See `Penalty Rule Object`. |\n| `children` | Array | Penalty rules for children. See `Penalty Rule Object`. |\n| `infants` | Array | Penalty rules for infants. |\n\n---\n\n### Penalty Rule Object\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `miniruleText` | String | The rule text. |\n| `miniruleHtml` | String | The rule html. |\n| `penaltyType` | String | The type of penalty (e.g., `\"REFUND\"`, `\"REISSUE\"`). |\n| `allowRefund` | String | Indicates if a refund is allowed (`\"NOT_ALLOWED\"`). |\n| `situation` | String | When the penalty applies (`\"BEFORE_DEPARTURE\"`, `\"AFTER_DEPARTURE\"`). |\n| `noShowTime` | String | No-show timing relative to departure. |\n| `noShowTimeUnit` | String | Time unit for the no-show period. |\n| `amount` | Number | A general fee amount. |\n| `currency` | String | The currency code (e.g., \"USD\"). |\n| `percent` | Number | The penalty amount as a percentage of the fare. |\n| `baseType` | String | The basis for the penalty calculation (e.g., `\"FARE\"`). |"
									},
									"response": []
								},
								{
									"name": "2. Get Pricing",
									"request": {
										"method": "POST",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{access_token}}",
												"type": "text"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\r\n  \"adults\": 1,\r\n  \"children\": 0,\r\n  \"infants\": 0,\r\n  \"solutions\": [\r\n    {\r\n      \"provider\": \"flight.provider2.VU\",\r\n      \"solutionId\": \"d4c1dccd33bb829fe121ef6d5aa877177c43490a58b07a9ec220d6282d508a58+OG3px9wYTpupusc8mwyhGQ+46038df7-3adf-47d2-8992-2b28686118f2+SGN_HPH_9994_1235_071125+1+VU\",\r\n      \"type\": \"OUTBOUND\",\r\n      \"fare\": {\r\n        \"adultFare\": {\r\n          \"fare\": 98000,\r\n          \"tax\": 612840,\r\n          \"fee\": 0,\r\n          \"currency\": \"VND\",\r\n          \"discountAmount\": 0,\r\n          \"count\": 1,\r\n          \"total\": 710840,\r\n          \"point\": 0,\r\n          \"totalPoint\": 0\r\n        },\r\n        \"childFare\": {\r\n          \"fare\": 0,\r\n          \"tax\": 0,\r\n          \"fee\": 0,\r\n          \"currency\": \"USD\",\r\n          \"discountAmount\": 0,\r\n          \"count\": 0,\r\n          \"total\": 0,\r\n          \"point\": 0,\r\n          \"totalPoint\": 0\r\n        },\r\n        \"infantFare\": {\r\n          \"fare\": 0,\r\n          \"tax\": 0,\r\n          \"fee\": 0,\r\n          \"currency\": \"USD\",\r\n          \"discountAmount\": 0,\r\n          \"count\": 0,\r\n          \"total\": 0,\r\n          \"point\": 0,\r\n          \"totalPoint\": 0\r\n        },\r\n        \"totalFare\": 98000,\r\n        \"totalTax\": 612840,\r\n        \"totalFee\": 0,\r\n        \"totalPrice\": 710840,\r\n        \"totalDiscountAmount\": 0,\r\n        \"totalPoint\": 0\r\n      },\r\n      \"flights\": [\r\n        {\r\n          \"sequence\": 1,\r\n          \"flightDuration\": 120,\r\n          \"travelDuration\": 120,\r\n          \"journeyId\": \"00000000-0000-0000-0000-000000000000\",\r\n          \"segments\": [\r\n            {\r\n              \"segmentId\": \"1\",\r\n              \"sequence\": 1,\r\n              \"bookingCode\": \"A\",\r\n              \"cabinClass\": \"ECONOMY\",\r\n              \"available\": 8,\r\n              \"departureCode\": \"SGN\",\r\n              \"departureName\": \"Ho Chi Minh City\",\r\n              \"departureDate\": \"2025-11-07\",\r\n              \"departureTime\": \"12:35\",\r\n              \"departureTerminal\": \"3\",\r\n              \"arrivalCode\": \"HPH\",\r\n              \"arrivalName\": \"Haiphong\",\r\n              \"arrivalDate\": \"2025-11-07\",\r\n              \"arrivalTime\": \"14:35\",\r\n              \"arrivalTerminal\": \"\",\r\n              \"airlines\": \"VU\",\r\n              \"airlinesName\": \"VIETRAVEL AIRLINES\",\r\n              \"equipment\": \"321\",\r\n              \"flightNumber\": \"9994\",\r\n              \"flightTime\": 120,\r\n              \"stopTime\": 0,\r\n              \"baggageRules\": {\r\n                \"adults\": [\r\n                  {\r\n                    \"baggageAmount\": \"2PC\",\r\n                    \"baggageWeight\": \"45kg\",\r\n                    \"carryOnAmount\": \"1PC\",\r\n                    \"carryOnWeight\": \"7kg\"\r\n                  }\r\n                ],\r\n                \"children\": [\r\n                  {\r\n                    \"baggageAmount\": \"2PC\",\r\n                    \"baggageWeight\": \"45kg\",\r\n                    \"carryOnAmount\": \"1PC\",\r\n                    \"carryOnWeight\": \"7kg\"\r\n                  }\r\n                ],\r\n                \"infants\": [\r\n                  {\r\n                    \"baggageAmount\": \"2PC\",\r\n                    \"baggageWeight\": \"45kg\",\r\n                    \"carryOnAmount\": \"1PC\",\r\n                    \"carryOnWeight\": \"7kg\"\r\n                  }\r\n                ]\r\n              },\r\n              \"miniRules\": {\r\n                \"adults\": [\r\n                  {\r\n                    \"miniruleHtml\": \"TEST HẠNG VÉ ECONOMY SAVER\",\r\n                    \"amount\": 0,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0\r\n                  }\r\n                ],\r\n                \"children\": [\r\n                  {\r\n                    \"miniruleHtml\": \"TEST HẠNG VÉ ECONOMY SAVER\",\r\n                    \"amount\": 0,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0\r\n                  }\r\n                ],\r\n                \"infants\": [\r\n                  {\r\n                    \"miniruleHtml\": \"TEST HẠNG VÉ ECONOMY SAVER\",\r\n                    \"amount\": 0,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0\r\n                  }\r\n                ]\r\n              },\r\n              \"fareBasis\": \"AREGOW\"\r\n            }\r\n          ]\r\n        }\r\n      ]\r\n    },\r\n    {\r\n      \"provider\": \"flight.provider2.QH\",\r\n      \"solutionId\": \"3e1166ae577e296281dc0db7b216f6f4e394995d1da0e6496aca9817cd179ad3+Vknc-RV0TcKSUnJ6KvTZ9A+49a18ad5-f7f1-4eba-8f6d-a0da91d3d4a6+HPH_SGN_1545_2250_091125+1+QH\",\r\n      \"type\": \"INBOUND\",\r\n      \"fare\": {\r\n        \"adultFare\": {\r\n          \"fare\": 969000,\r\n          \"tax\": 673000,\r\n          \"fee\": 0,\r\n          \"currency\": \"VND\",\r\n          \"discountAmount\": 0,\r\n          \"count\": 1,\r\n          \"total\": 1642000,\r\n          \"point\": 0,\r\n          \"totalPoint\": 0\r\n        },\r\n        \"childFare\": {\r\n          \"fare\": 0,\r\n          \"tax\": 0,\r\n          \"fee\": 0,\r\n          \"currency\": \"USD\",\r\n          \"discountAmount\": 0,\r\n          \"count\": 0,\r\n          \"total\": 0,\r\n          \"point\": 0,\r\n          \"totalPoint\": 0\r\n        },\r\n        \"infantFare\": {\r\n          \"fare\": 0,\r\n          \"tax\": 0,\r\n          \"fee\": 0,\r\n          \"currency\": \"USD\",\r\n          \"discountAmount\": 0,\r\n          \"count\": 0,\r\n          \"total\": 0,\r\n          \"point\": 0,\r\n          \"totalPoint\": 0\r\n        },\r\n        \"totalFare\": 969000,\r\n        \"totalTax\": 673000,\r\n        \"totalFee\": 0,\r\n        \"totalPrice\": 1642000,\r\n        \"totalDiscountAmount\": 0,\r\n        \"totalPoint\": 0\r\n      },\r\n      \"flights\": [\r\n        {\r\n          \"sequence\": 1,\r\n          \"flightDuration\": 130,\r\n          \"travelDuration\": 130,\r\n          \"journeyId\": \"00000000-0000-0000-0000-000000000000\",\r\n          \"segments\": [\r\n            {\r\n              \"segmentId\": \"1\",\r\n              \"sequence\": 1,\r\n              \"bookingCode\": \"T\",\r\n              \"cabinClass\": \"ECONOMY\",\r\n              \"available\": 3,\r\n              \"departureCode\": \"HPH\",\r\n              \"departureName\": \"Haiphong\",\r\n              \"departureDate\": \"2025-11-09\",\r\n              \"departureTime\": \"22:50\",\r\n              \"departureTerminal\": \"\",\r\n              \"arrivalCode\": \"SGN\",\r\n              \"arrivalName\": \"Ho Chi Minh City\",\r\n              \"arrivalDate\": \"2025-11-10\",\r\n              \"arrivalTime\": \"01:00\",\r\n              \"arrivalTerminal\": \"3\",\r\n              \"airlines\": \"QH\",\r\n              \"airlinesName\": \"BAMBOO AIRWAYS\",\r\n              \"equipment\": \"320\",\r\n              \"flightNumber\": \"1545\",\r\n              \"flightTime\": 130,\r\n              \"stopTime\": 0,\r\n              \"baggageRules\": {\r\n                \"adults\": [\r\n                  {\r\n                    \"baggageAmount\": \"50PC\",\r\n                    \"baggageWeight\": \"10kg\",\r\n                    \"carryOnAmount\": \"30PC\",\r\n                    \"carryOnWeight\": \"7kg\"\r\n                  }\r\n                ],\r\n                \"children\": [\r\n                  {\r\n                    \"baggageAmount\": \"50PC\",\r\n                    \"baggageWeight\": \"10kg\",\r\n                    \"carryOnAmount\": \"30PC\",\r\n                    \"carryOnWeight\": \"7kg\"\r\n                  }\r\n                ],\r\n                \"infants\": [\r\n                  {\r\n                    \"baggageAmount\": \"50PC\",\r\n                    \"baggageWeight\": \"10kg\",\r\n                    \"carryOnAmount\": \"30PC\",\r\n                    \"carryOnWeight\": \"7kg\"\r\n                  }\r\n                ]\r\n              },\r\n              \"miniRules\": {\r\n                \"adults\": [\r\n                  {\r\n                    \"miniruleHtml\": \"<strong class='preserveHtml' class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27;>TEST &#272;I&#7872;U KI&#7878;N CHI TI&#7870;T BAMBO H&#7840;NG&#160;ECONOMYSMART</strong>\",\r\n                    \"amount\": 0,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0\r\n                  },\r\n                  {\r\n                    \"miniruleText\": \"123\",\r\n                    \"penaltyType\": \"REFUND\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"amount\": 0,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0\r\n                  },\r\n                  {\r\n                    \"miniruleText\": \"456\",\r\n                    \"penaltyType\": \"REISSUE\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"amount\": 0,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0\r\n                  }\r\n                ],\r\n                \"children\": [\r\n                  {\r\n                    \"miniruleHtml\": \"<strong class='preserveHtml' class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27;>TEST &#272;I&#7872;U KI&#7878;N CHI TI&#7870;T BAMBO H&#7840;NG&#160;ECONOMYSMART</strong>\",\r\n                    \"amount\": 0,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0\r\n                  },\r\n                  {\r\n                    \"miniruleText\": \"123\",\r\n                    \"penaltyType\": \"REFUND\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"amount\": 0,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0\r\n                  },\r\n                  {\r\n                    \"miniruleText\": \"456\",\r\n                    \"penaltyType\": \"REISSUE\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"amount\": 0,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0\r\n                  }\r\n                ],\r\n                \"infants\": [\r\n                  {\r\n                    \"miniruleHtml\": \"<strong class='preserveHtml' class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27;>TEST &#272;I&#7872;U KI&#7878;N CHI TI&#7870;T BAMBO H&#7840;NG&#160;ECONOMYSMART</strong>\",\r\n                    \"amount\": 0,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0\r\n                  },\r\n                  {\r\n                    \"miniruleText\": \"123\",\r\n                    \"penaltyType\": \"REFUND\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"amount\": 0,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0\r\n                  },\r\n                  {\r\n                    \"miniruleText\": \"456\",\r\n                    \"penaltyType\": \"REISSUE\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"amount\": 0,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0\r\n                  }\r\n                ]\r\n              },\r\n              \"fareBasis\": \"TES0F\"\r\n            }\r\n          ]\r\n        }\r\n      ]\r\n    }\r\n  ]\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/hub/flight/pricing",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"flight",
												"pricing"
											]
										},
										"description": "# Flight Pricing API Documentation\n\n## Overview\n\nThis API provides detailed pricing and fare rules for flight itineraries. Returns fare breakdowns, baggage policies, and change/refund rules for each passenger type.\n\n---\n\n## API Endpoint\n\n- **URL:** `{{host}}/hub/flight/pricing`\n    \n- **Method:** `POST`\n    \n- **Content-Type:** `application/json`\n    \n\n---\n\n## Headers\n\n| Key | Value | Description |\n| --- | --- | --- |\n| `Authorization` | `Bearer {token}` | JWT access token (Required) |\n| `Content-Type` | `application/json` | Request format |\n\n---\n\n## Request Body\n\n``` json\n{\n  \"adults\": 1,\n  \"children\": 0,\n  \"infants\": 0,\n  \"solutions\": [\n    {\n      \"provider\": \"flight.provider2.VU\",\n      \"solutionId\": \"d4c1dccd33bb829fe121ef6d5aa877177c43490a58b07a9ec220d6282d508a58+OG3px9wYTpupusc8mwyhGQ+46038df7-3adf-47d2-8992-2b28686118f2+SGN_HPH_9994_1235_071125+1+VU\",\n      \"type\": \"OUTBOUND\",\n      \"fare\": {\n        \"adultFare\": {\n          \"fare\": 98000,\n          \"tax\": 612840,\n          \"fee\": 0,\n          \"currency\": \"VND\",\n          \"discountAmount\": 0,\n          \"count\": 1,\n          \"total\": 710840,\n          \"point\": 0,\n          \"totalPoint\": 0\n        },\n        \"childFare\": {\n          \"fare\": 0,\n          \"tax\": 0,\n          \"fee\": 0,\n          \"currency\": \"USD\",\n          \"discountAmount\": 0,\n          \"count\": 0,\n          \"total\": 0,\n          \"point\": 0,\n          \"totalPoint\": 0\n        },\n        \"infantFare\": {\n          \"fare\": 0,\n          \"tax\": 0,\n          \"fee\": 0,\n          \"currency\": \"USD\",\n          \"discountAmount\": 0,\n          \"count\": 0,\n          \"total\": 0,\n          \"point\": 0,\n          \"totalPoint\": 0\n        },\n        \"totalFare\": 98000,\n        \"totalTax\": 612840,\n        \"totalFee\": 0,\n        \"totalPrice\": 710840,\n        \"totalDiscountAmount\": 0,\n        \"totalPoint\": 0\n      },\n      \"flights\": [\n        {\n          \"sequence\": 1,\n          \"flightDuration\": 120,\n          \"travelDuration\": 120,\n          \"journeyId\": \"00000000-0000-0000-0000-000000000000\",\n          \"segments\": [\n            {\n              \"segmentId\": \"1\",\n              \"sequence\": 1,\n              \"bookingCode\": \"A\",\n              \"cabinClass\": \"ECONOMY\",\n              \"available\": 8,\n              \"departureCode\": \"SGN\",\n              \"departureName\": \"Ho Chi Minh City\",\n              \"departureDate\": \"2025-11-07\",\n              \"departureTime\": \"12:35\",\n              \"departureTerminal\": \"3\",\n              \"arrivalCode\": \"HPH\",\n              \"arrivalName\": \"Haiphong\",\n              \"arrivalDate\": \"2025-11-07\",\n              \"arrivalTime\": \"14:35\",\n              \"arrivalTerminal\": \"\",\n              \"airlines\": \"VU\",\n              \"airlinesName\": \"VIETRAVEL AIRLINES\",\n              \"equipment\": \"321\",\n              \"flightNumber\": \"9994\",\n              \"flightTime\": 120,\n              \"stopTime\": 0,\n              \"baggageRules\": {\n                \"adults\": [\n                  {\n                    \"baggageAmount\": \"2PC\",\n                    \"baggageWeight\": \"45kg\",\n                    \"carryOnAmount\": \"1PC\",\n                    \"carryOnWeight\": \"7kg\"\n                  }\n                ],\n                \"children\": [\n                  {\n                    \"baggageAmount\": \"2PC\",\n                    \"baggageWeight\": \"45kg\",\n                    \"carryOnAmount\": \"1PC\",\n                    \"carryOnWeight\": \"7kg\"\n                  }\n                ],\n                \"infants\": [\n                  {\n                    \"baggageAmount\": \"2PC\",\n                    \"baggageWeight\": \"45kg\",\n                    \"carryOnAmount\": \"1PC\",\n                    \"carryOnWeight\": \"7kg\"\n                  }\n                ]\n              },\n              \"miniRules\": {\n                \"adults\": [\n                  {\n                    \"miniruleHtml\": \"TEST HẠNG VÉ ECONOMY SAVER\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0\n                  }\n                ],\n                \"children\": [\n                  {\n                    \"miniruleHtml\": \"TEST HẠNG VÉ ECONOMY SAVER\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0\n                  }\n                ],\n                \"infants\": [\n                  {\n                    \"miniruleHtml\": \"TEST HẠNG VÉ ECONOMY SAVER\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0\n                  }\n                ]\n              },\n              \"fareBasis\": \"AREGOW\"\n            }\n          ]\n        }\n      ]\n    },\n    {\n      \"provider\": \"flight.provider2.QH\",\n      \"solutionId\": \"3e1166ae577e296281dc0db7b216f6f4e394995d1da0e6496aca9817cd179ad3+Vknc-RV0TcKSUnJ6KvTZ9A+49a18ad5-f7f1-4eba-8f6d-a0da91d3d4a6+HPH_SGN_1545_2250_091125+1+QH\",\n      \"type\": \"INBOUND\",\n      \"fare\": {\n        \"adultFare\": {\n          \"fare\": 969000,\n          \"tax\": 673000,\n          \"fee\": 0,\n          \"currency\": \"VND\",\n          \"discountAmount\": 0,\n          \"count\": 1,\n          \"total\": 1642000,\n          \"point\": 0,\n          \"totalPoint\": 0\n        },\n        \"childFare\": {\n          \"fare\": 0,\n          \"tax\": 0,\n          \"fee\": 0,\n          \"currency\": \"USD\",\n          \"discountAmount\": 0,\n          \"count\": 0,\n          \"total\": 0,\n          \"point\": 0,\n          \"totalPoint\": 0\n        },\n        \"infantFare\": {\n          \"fare\": 0,\n          \"tax\": 0,\n          \"fee\": 0,\n          \"currency\": \"USD\",\n          \"discountAmount\": 0,\n          \"count\": 0,\n          \"total\": 0,\n          \"point\": 0,\n          \"totalPoint\": 0\n        },\n        \"totalFare\": 969000,\n        \"totalTax\": 673000,\n        \"totalFee\": 0,\n        \"totalPrice\": 1642000,\n        \"totalDiscountAmount\": 0,\n        \"totalPoint\": 0\n      },\n      \"flights\": [\n        {\n          \"sequence\": 1,\n          \"flightDuration\": 130,\n          \"travelDuration\": 130,\n          \"journeyId\": \"00000000-0000-0000-0000-000000000000\",\n          \"segments\": [\n            {\n              \"segmentId\": \"1\",\n              \"sequence\": 1,\n              \"bookingCode\": \"T\",\n              \"cabinClass\": \"ECONOMY\",\n              \"available\": 3,\n              \"departureCode\": \"HPH\",\n              \"departureName\": \"Haiphong\",\n              \"departureDate\": \"2025-11-09\",\n              \"departureTime\": \"22:50\",\n              \"departureTerminal\": \"\",\n              \"arrivalCode\": \"SGN\",\n              \"arrivalName\": \"Ho Chi Minh City\",\n              \"arrivalDate\": \"2025-11-10\",\n              \"arrivalTime\": \"01:00\",\n              \"arrivalTerminal\": \"3\",\n              \"airlines\": \"QH\",\n              \"airlinesName\": \"BAMBOO AIRWAYS\",\n              \"equipment\": \"320\",\n              \"flightNumber\": \"1545\",\n              \"flightTime\": 130,\n              \"stopTime\": 0,\n              \"baggageRules\": {\n                \"adults\": [\n                  {\n                    \"baggageAmount\": \"50PC\",\n                    \"baggageWeight\": \"10kg\",\n                    \"carryOnAmount\": \"30PC\",\n                    \"carryOnWeight\": \"7kg\"\n                  }\n                ],\n                \"children\": [\n                  {\n                    \"baggageAmount\": \"50PC\",\n                    \"baggageWeight\": \"10kg\",\n                    \"carryOnAmount\": \"30PC\",\n                    \"carryOnWeight\": \"7kg\"\n                  }\n                ],\n                \"infants\": [\n                  {\n                    \"baggageAmount\": \"50PC\",\n                    \"baggageWeight\": \"10kg\",\n                    \"carryOnAmount\": \"30PC\",\n                    \"carryOnWeight\": \"7kg\"\n                  }\n                ]\n              },\n              \"miniRules\": {\n                \"adults\": [\n                  {\n                    \"miniruleHtml\": \"<strong class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27;>TEST &#272;I&#7872;U KI&#7878;N CHI TI&#7870;T BAMBO H&#7840;NG&#160;ECONOMYSMART</b>\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0\n                  },\n                  {\n                    \"miniruleText\": \"123\",\n                    \"penaltyType\": \"REFUND\",\n                    \"allowRefund\": \"ALLOW\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0\n                  },\n                  {\n                    \"miniruleText\": \"456\",\n                    \"penaltyType\": \"REISSUE\",\n                    \"allowRefund\": \"ALLOW\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0\n                  }\n                ],\n                \"children\": [\n                  {\n                    \"miniruleHtml\": \"<strong class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27;>TEST &#272;I&#7872;U KI&#7878;N CHI TI&#7870;T BAMBO H&#7840;NG&#160;ECONOMYSMART</b>\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0\n                  },\n                  {\n                    \"miniruleText\": \"123\",\n                    \"penaltyType\": \"REFUND\",\n                    \"allowRefund\": \"ALLOW\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0\n                  },\n                  {\n                    \"miniruleText\": \"456\",\n                    \"penaltyType\": \"REISSUE\",\n                    \"allowRefund\": \"ALLOW\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0\n                  }\n                ],\n                \"infants\": [\n                  {\n                    \"miniruleHtml\": \"<strong class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27;>TEST &#272;I&#7872;U KI&#7878;N CHI TI&#7870;T BAMBO H&#7840;NG&#160;ECONOMYSMART</b>\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0\n                  },\n                  {\n                    \"miniruleText\": \"123\",\n                    \"penaltyType\": \"REFUND\",\n                    \"allowRefund\": \"ALLOW\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0\n                  },\n                  {\n                    \"miniruleText\": \"456\",\n                    \"penaltyType\": \"REISSUE\",\n                    \"allowRefund\": \"ALLOW\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0\n                  }\n                ]\n              },\n              \"fareBasis\": \"TES0F\"\n            }\n          ]\n        }\n      ]\n    }\n  ]\n}\n\n ```\n\n---\n\n## Request Body Parameters\n\nThe request body is a JSON object with the following structure:\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `adults` | Integer | ✅ Yes | Number of adult passengers. |\n| `children` | Integer | ❌ No | Number of child passengers. Defaults to 0 if not provided. |\n| `infants` | Integer | ❌ No | Number of infant passengers. Defaults to 0 if not provided. |\n| `solutions` | Array | ✅ Yes | An array containing flight solution objects. This array _must_ contain exactly _one_ object as described in the `solutions` Array Structure below. |\n\n---\n\n### `solutions` Array Structure\n\nThe `solutions` array contains a single JSON object, describing a single flight option, with the following structure:\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `provider` | String | ✅ Yes | The ID of the flight provider. Example: `\"flight.provider1\"` |\n| `solutionId` | String | ✅ Yes | A unique identifier for the entire flight solution. This ID is provided by the flight search API. This must be a valid solutionId. Example: `\"ldskSCwgRoiHlzOph/3wmHj...\"` |\n| `type` | String | ✅ Yes | The type of solution. Example: `\"COMBINED\"` |\n| `fare` | Object | ✅ Yes | An object containing detailed fare information. See the `fare` Object Structure for more information. |\n| `flights` | Array | ✅ Yes | An array containing information about each individual flight segment in the solution. See the `flights` Array Structure for more information. Must contain at least one `flight` object. |\n\n---\n\n### `fare` Object Structure\n\nThis object provides the breakdown of the fare for the proposed flight itinerary:\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `adultFare` | Object | ✅ Yes | Contains fare breakdown specific to adult passengers. See the `adultFare` Object Structure below. |\n| `childFare` | Object | ❌ No | Contains fare breakdown specific to child passengers. Omitted if there are no child passengers. See the `childFare` Object Structure below. |\n| `infantFare` | Object | ❌ No | Contains fare breakdown specific to infant passengers. Omitted if there are no infant passengers. See the `infantFare` Object Structure below. |\n| `totalFare` | Number | ✅ Yes | The sum of the base fares for all passengers (excluding taxes and fees). |\n| `totalTax` | Number | ✅ Yes | The sum of the taxes for all passengers. |\n| `totalFee` | Number | ✅ Yes | The sum of the fees for all passengers. |\n| `totalPrice` | Number | ✅ Yes | The grand total price including base fare, taxes, and fees. |\n| `totalDiscountAmount` | Number | ✅ Yes | The sum of the discounts for all passengers. |\n| `totalPoint` | Number | ✅ Yes | The sum of the points for all passengers. |\n\n---\n\n#### `adultFare`, `childFare`, `infantFare` Object Structure\n\nThese objects provide the fare breakdown for each passenger type. Note that `childFare` and `infantFare` are optional and will be absent if there are no passengers of that type.\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `fare` | Number | ✅ Yes | The base fare for the passenger type. |\n| `tax` | Number | ✅ Yes | Taxes applicable to the passenger type. |\n| `fee` | Number | ✅ Yes | Fees applicable to the passenger type. |\n| `currency` | String | ✅ Yes | The currency code for the fare elements (e.g., `\"USD\"`). This is usually `\"USD\"` even when `fareVND`, `taxVND`, and `feeVND` are present. |\n| `discountAmount` | Number | ✅ Yes | The discount for the passenger type. |\n| `count` | Integer | ✅ Yes | The number of passengers of this type (e.g., `2` adults). |\n| `total` | Number | ✅ Yes | The total price for the passenger type (base (fare + taxes + fees) \\* count). |\n| `point` | Integer | ✅ Yes | Points of the voucher. |\n| `totalPoint` | Integer | ✅ Yes | The total points (point \\* count). |\n\n---\n\n### `flights` Array Structure\n\nEach object represents a flight leg:\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `sequence` | Integer | ✅ Yes | Flight leg sequence. This number indicates the order of the flight leg within the itinerary. The sequence starts at 1 and increments for each subsequent flight leg in the itinerary. |\n| `flightDuration` | Integer | ✅ Yes | Total flight time in minutes for the entire leg. |\n| `travelDuration` | Integer | ✅ Yes | Total travel time in minutes for the entire leg (including layovers). |\n| `journeyId` | Guid | ✅ Yes | The journey object that groups all flight segments of a single trip. |\n| `segments` | Array | ✅ Yes | Array of flight segments. See `segments` Array Structure below. |\n\n---\n\n### `segments` Array Structure\n\nEach object represents a flight segment:\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `segmentId` | String | ✅ Yes | Unique identifier for the segment. |\n| `sequence` | Integer | ✅ Yes | Segment order within the leg. |\n| `bookingCode` | String | ✅ Yes | Fare class code (e.g., \"X\"). This code represents the specific fare class that applies to this flight segment. Contact the airline for decode the real meaning of bookingCode. |\n| `cabinClass` | String | ✅ Yes | Cabin class for the segment (e.g., \"ECONOMY\"). |\n| `available` | Integer | ✅ Yes | Number of seats available in this class. |\n| `departureCode` | String | ✅ Yes | IATA departure airport code (e.g., \"SGN\"). |\n| `departureName` | String | ✅ Yes | Departure airport name (e.g., \"Ho Chi Minh City\"). |\n| `departureDate` | String | ✅ Yes | Departure date (YYYY-MM-DD) (e.g., \"2025-06-20\"). |\n| `departureTime` | String | ✅ Yes | Departure time (HH:mm) (e.g., \"12:50\"). |\n| `departureTerminal` | String | ✅ Yes | Departure terminal (e.g., `\"1\"`). |\n| `arrivalCode` | String | ✅ Yes | IATA arrival airport code (e.g., \"HAN\"). |\n| `arrivalName` | String | ✅ Yes | Arrival airport name (e.g., \"Hanoi\"). |\n| `arrivalDate` | String | ✅ Yes | Arrival date (YYYY-MM-DD) (e.g., \"2025-06-20\"). |\n| `arrivalTime` | String | ✅ Yes | Arrival time (HH:mm) (e.g., \"15:00\"). |\n| `arrivalTerminal` | String | ✅ Yes | Arrival terminal (e.g., `\"1\"`). |\n| `airlines` | String | ✅ Yes | 2-letter airline code (e.g., \"QH\"). |\n| `airlinesName` | String | ✅ Yes | Airline name (e.g., \"BAMBOO AIRWAYS\"). |\n| `equipment` | String | ✅ Yes | Aircraft type (e.g., \"320\"). |\n| `flightNumber` | String | ✅ Yes | Flight number (e.g., \"242\"). |\n| `flightTime` | Integer | ✅ Yes | Flight time in minutes. |\n| `stopTime` | Integer | ✅ Yes | Layover time in minutes (0 for direct flights). |\n| `baggageRules` | Object | ✅ Yes | Baggage rules for the segment. See `baggageRules` Structure below. |\n| `miniRules` | Object | ✅ Yes | Penalty rules for the segment. See `miniRules` Structure below. |\n| `fareBasis` | String | ✅ Yes | Indicates the fare basis code that defines the fare type and rules applied to the ticket. |\n\n---\n\n### `baggageRules` Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Baggage rules for adults |\n| `children` | Array | Baggage rules for children |\n| `infants` | Array | Baggage rules for infants |\n\n**Baggage Rule Object:**\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `baggageAmount` | String | `\"0PC\"` | Checked baggage allowance (e.g., `\"0PC\"` = 0 pieces) |\n| `baggageWeight` | String | `\"8KG\"` | Checked baggage weight limit (e.g., `\"7KG\"` = 7 kilograms) |\n| `carryOnAmount` | String | `\"1PC\"` | Cabin baggage allowance (e.g., `\"1PC\"` = 1 piece) |\n| `carryOnWeight` | String | `\"7KG\"` | Cabin baggage weight limit (e.g., `\"7KG\"` = 7 kilograms) |\n\n---\n\n### `miniRules` Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Change/refund rules for adults |\n| `children` | Array | Change/refund rules for children |\n| `infants` | Array | Change/refund rules for infants |\n\n**Rule Object:**\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `miniruleText` | String | `\"example rule\"` | The text rule. |\n| `miniruleHtml` | String | `\" example html rule \"` | The html rule. |\n| `penaltyType` | String | `\"REFUND\"` | Fee type (`REFUND`, `REISSUE`). |\n| `allowRefund` | String | `\"NOT_ALLOWED\"` | Indicates if a refund is allowed (`ALLOW`, `NOT_ALLOWED`). |\n| `situation` | String | `\"BEFORE_DEPARTURE\"` | When the penalty applies (`BEFORE_DEPARTURE`, `AFTER_DEPARTURE`). |\n| `noShowTime` | String | `\"BEFORE\"` | No-show timing relative to departure. |\n| `noShowTimeUnit` | String | `\"H\"` | Time unit for the no-show period. |\n| `amount` | Number | `0.0` | Fee amount. |\n| `currency` | String | `\"USD\"` | The currency code. |\n| `percent` | Number | `0.0` | Fee percentage of the base fare. |\n| `baseType` | String | `\"FARE\"` | Fee calculation base (`FARE` = total fare). |\n\n---\n\n### `ancillaryAvailability` Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `bag` | Boolean | Indicates whether baggage ancillary services are available (e.g., `true`, `false`). |\n| `seat` | Boolean | Indicates whether seat selection ancillary services are available (e.g., `true`, `false`). |\n\n---\n\n## Sample Response\n\n``` json\n{\n  \"solutions\": [\n    {\n      \"provider\": \"flight.provider2.VU\",\n      \"solutionId\": \"d4c1dccd33bb829fe121ef6d5aa877177c43490a58b07a9ec220d6282d508a58+OG3px9wYTpupusc8mwyhGQ+46038df7-3adf-47d2-8992-2b28686118f2+SGN_HPH_9994_1235_071125+1+VU\",\n      \"requireEnrichment\": false,\n      \"allowPayLater\": true,\n      \"isNDC\": false,\n      \"fare\": {\n        \"adultFare\": {\n          \"fare\": 98000,\n          \"tax\": 612840,\n          \"fee\": 0,\n          \"currency\": \"VND\",\n          \"discountAmount\": 0,\n          \"count\": 1,\n          \"total\": 710840,\n          \"point\": 0,\n          \"totalPoint\": 0\n        },\n        \"childFare\": {\n          \"fare\": 0,\n          \"tax\": 0,\n          \"fee\": 0,\n          \"currency\": \"USD\",\n          \"discountAmount\": 0,\n          \"count\": 0,\n          \"total\": 0,\n          \"point\": 0,\n          \"totalPoint\": 0\n        },\n        \"infantFare\": {\n          \"fare\": 0,\n          \"tax\": 0,\n          \"fee\": 0,\n          \"currency\": \"USD\",\n          \"discountAmount\": 0,\n          \"count\": 0,\n          \"total\": 0,\n          \"point\": 0,\n          \"totalPoint\": 0\n        },\n        \"totalFare\": 98000,\n        \"totalTax\": 612840,\n        \"totalFee\": 0,\n        \"totalPrice\": 710840,\n        \"totalDiscountAmount\": 0,\n        \"totalPoint\": 0\n      },\n      \"flights\": [\n        {\n          \"sequence\": 1,\n          \"flightDuration\": 120,\n          \"travelDuration\": 120,\n          \"journeyId\": \"00000000-0000-0000-0000-000000000000\",\n          \"segments\": [\n            {\n              \"segmentId\": \"1\",\n              \"sequence\": 1,\n              \"bookingCode\": \"A\",\n              \"cabinClass\": \"ECONOMY\",\n              \"available\": 8,\n              \"departureCode\": \"SGN\",\n              \"departureName\": \"Ho Chi Minh City\",\n              \"departureDate\": \"2025-11-07\",\n              \"departureTime\": \"12:35\",\n              \"departureTerminal\": \"3\",\n              \"arrivalCode\": \"HPH\",\n              \"arrivalName\": \"Haiphong\",\n              \"arrivalDate\": \"2025-11-07\",\n              \"arrivalTime\": \"14:35\",\n              \"arrivalTerminal\": \"\",\n              \"airlines\": \"VU\",\n              \"airlinesName\": \"VIETRAVEL AIRLINES\",\n              \"equipment\": \"321\",\n              \"flightNumber\": \"9994\",\n              \"flightTime\": 120,\n              \"stopTime\": 0,\n              \"baggageRules\": {\n                \"adults\": [\n                  {\n                    \"baggageAmount\": \"2PC\",\n                    \"baggageWeight\": \"45kg\",\n                    \"carryOnAmount\": \"1PC\",\n                    \"carryOnWeight\": \"7kg\"\n                  }\n                ],\n                \"children\": [\n                  {\n                    \"baggageAmount\": \"2PC\",\n                    \"baggageWeight\": \"45kg\",\n                    \"carryOnAmount\": \"1PC\",\n                    \"carryOnWeight\": \"7kg\"\n                  }\n                ],\n                \"infants\": [\n                  {\n                    \"baggageAmount\": \"2PC\",\n                    \"baggageWeight\": \"45kg\",\n                    \"carryOnAmount\": \"1PC\",\n                    \"carryOnWeight\": \"7kg\"\n                  }\n                ]\n              },\n              \"miniRules\": {\n                \"adults\": [\n                  {\n                    \"miniruleHtml\": \"TEST HẠNG VÉ ECONOMY SAVER\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0\n                  }\n                ],\n                \"children\": [\n                  {\n                    \"miniruleHtml\": \"TEST HẠNG VÉ ECONOMY SAVER\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0\n                  }\n                ],\n                \"infants\": [\n                  {\n                    \"miniruleHtml\": \"TEST HẠNG VÉ ECONOMY SAVER\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0\n                  }\n                ]\n              },\n              \"fareBasis\": \"AREGOW\"\n            }\n          ]\n        }\n      ]\n    },\n    {\n      \"provider\": \"flight.provider2.QH\",\n      \"solutionId\": \"3e1166ae577e296281dc0db7b216f6f4e394995d1da0e6496aca9817cd179ad3+Vknc-RV0TcKSUnJ6KvTZ9A+49a18ad5-f7f1-4eba-8f6d-a0da91d3d4a6+HPH_SGN_1545_2250_091125+1+QH\",\n      \"requireEnrichment\": false,\n      \"allowPayLater\": true,\n      \"isNDC\": false,\n      \"fare\": {\n        \"adultFare\": {\n          \"fare\": 969000,\n          \"tax\": 673000,\n          \"fee\": 0,\n          \"currency\": \"VND\",\n          \"discountAmount\": 0,\n          \"count\": 1,\n          \"total\": 1642000,\n          \"point\": 0,\n          \"totalPoint\": 0\n        },\n        \"childFare\": {\n          \"fare\": 0,\n          \"tax\": 0,\n          \"fee\": 0,\n          \"currency\": \"USD\",\n          \"discountAmount\": 0,\n          \"count\": 0,\n          \"total\": 0,\n          \"point\": 0,\n          \"totalPoint\": 0\n        },\n        \"infantFare\": {\n          \"fare\": 0,\n          \"tax\": 0,\n          \"fee\": 0,\n          \"currency\": \"USD\",\n          \"discountAmount\": 0,\n          \"count\": 0,\n          \"total\": 0,\n          \"point\": 0,\n          \"totalPoint\": 0\n        },\n        \"totalFare\": 969000,\n        \"totalTax\": 673000,\n        \"totalFee\": 0,\n        \"totalPrice\": 1642000,\n        \"totalDiscountAmount\": 0,\n        \"totalPoint\": 0\n      },\n      \"flights\": [\n        {\n          \"sequence\": 1,\n          \"flightDuration\": 130,\n          \"travelDuration\": 130,\n          \"journeyId\": \"00000000-0000-0000-0000-000000000000\",\n          \"segments\": [\n            {\n              \"segmentId\": \"1\",\n              \"sequence\": 1,\n              \"bookingCode\": \"T\",\n              \"cabinClass\": \"ECONOMY\",\n              \"available\": 3,\n              \"departureCode\": \"HPH\",\n              \"departureName\": \"Haiphong\",\n              \"departureDate\": \"2025-11-09\",\n              \"departureTime\": \"22:50\",\n              \"departureTerminal\": \"\",\n              \"arrivalCode\": \"SGN\",\n              \"arrivalName\": \"Ho Chi Minh City\",\n              \"arrivalDate\": \"2025-11-10\",\n              \"arrivalTime\": \"01:00\",\n              \"arrivalTerminal\": \"3\",\n              \"airlines\": \"QH\",\n              \"airlinesName\": \"BAMBOO AIRWAYS\",\n              \"equipment\": \"320\",\n              \"flightNumber\": \"1545\",\n              \"flightTime\": 130,\n              \"stopTime\": 0,\n              \"baggageRules\": {\n                \"adults\": [\n                  {\n                    \"baggageAmount\": \"50PC\",\n                    \"baggageWeight\": \"10kg\",\n                    \"carryOnAmount\": \"30PC\",\n                    \"carryOnWeight\": \"7kg\"\n                  }\n                ],\n                \"children\": [\n                  {\n                    \"baggageAmount\": \"50PC\",\n                    \"baggageWeight\": \"10kg\",\n                    \"carryOnAmount\": \"30PC\",\n                    \"carryOnWeight\": \"7kg\"\n                  }\n                ],\n                \"infants\": [\n                  {\n                    \"baggageAmount\": \"50PC\",\n                    \"baggageWeight\": \"10kg\",\n                    \"carryOnAmount\": \"30PC\",\n                    \"carryOnWeight\": \"7kg\"\n                  }\n                ]\n              },\n              \"miniRules\": {\n                \"adults\": [\n                  {\n                    \"miniruleHtml\": \"<strong class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27;>TEST &#272;I&#7872;U KI&#7878;N CHI TI&#7870;T BAMBO H&#7840;NG&#160;ECONOMYSMART</b>\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0\n                  },\n                  {\n                    \"miniruleText\": \"123\",\n                    \"penaltyType\": \"REFUND\",\n                    \"allowRefund\": \"ALLOW\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0\n                  },\n                  {\n                    \"miniruleText\": \"456\",\n                    \"penaltyType\": \"REISSUE\",\n                    \"allowRefund\": \"ALLOW\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0\n                  }\n                ],\n                \"children\": [\n                  {\n                    \"miniruleHtml\": \"<strong class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27;>TEST &#272;I&#7872;U KI&#7878;N CHI TI&#7870;T BAMBO H&#7840;NG&#160;ECONOMYSMART</b>\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0\n                  },\n                  {\n                    \"miniruleText\": \"123\",\n                    \"penaltyType\": \"REFUND\",\n                    \"allowRefund\": \"ALLOW\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0\n                  },\n                  {\n                    \"miniruleText\": \"456\",\n                    \"penaltyType\": \"REISSUE\",\n                    \"allowRefund\": \"ALLOW\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0\n                  }\n                ],\n                \"infants\": [\n                  {\n                    \"miniruleHtml\": \"<strong class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27;>TEST &#272;I&#7872;U KI&#7878;N CHI TI&#7870;T BAMBO H&#7840;NG&#160;ECONOMYSMART</b>\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0\n                  },\n                  {\n                    \"miniruleText\": \"123\",\n                    \"penaltyType\": \"REFUND\",\n                    \"allowRefund\": \"ALLOW\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0\n                  },\n                  {\n                    \"miniruleText\": \"456\",\n                    \"penaltyType\": \"REISSUE\",\n                    \"allowRefund\": \"ALLOW\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0\n                  }\n                ]\n              },\n              \"fareBasis\": \"TES0F\"\n            }\n          ]\n        }\n      ]\n    }\n  ],\n  \"ancillaryAvailability\": {\n    \"bag\": true,\n    \"seat\": true\n  }\n}\n\n ```\n\n---\n\n## Response Body Parameters\n\nThe response is a JSON object with the following structure:\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `solutions` | Array | An array containing pricing and flight details. In this example, it has only one solution. See `solutions` Array Structure below. |\n| `ancillaryAvailability` | Object | Indicates the availability of ancillary services. See `ancillaryAvailability` Object Structure below. |\n\n---\n\n### `solutions` Array Structure\n\nThe `solutions` array contains a single object with the following fields, detailing both the flight itinerary and associated fare information:\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `provider` | String | The `provider` ID of the flight solution (e.g., \"flight.provider1\"). |\n| `solutionId` | String | The unique `solutionId` of the flight solution. |\n| `isNDC` | Bool | Indicates whether the flight is distributed through an NDC (New Distribution Capability) channel. |\n| `allowPayLater` | Bool | Allow to pay later. |\n| `requireEnrichment` | Bool | Require enrich information for this flight solution.  <br>If it's `true`, you must call **Enrich API** (_**{{host}}/hub/flight/enrich**_). |\n| `fare` | Object | An object containing fare details for each passenger type. See the `fare` Object Structure below. |\n| `flights` | Array | An array containing flight leg objects. See the `flights` Array Structure below. |\n\n---\n\n### `fare` Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adultFare` | Object | Fare details for adult passengers. See `Passenger Fare Object Structure`. |\n| `childFare` | Object | Fare details for child passengers. See `Passenger Fare Object Structure`. |\n| `infantFare` | Object | Fare details for infant passengers. See `Passenger Fare Object Structure`. |\n| `totalFare` | Number | The sum of the base fares for all passengers (excluding taxes and fees). |\n| `totalTax` | Number | The sum of the taxes for all passengers. |\n| `totalFee` | Number | The sum of the fees for all passengers. |\n| `totalPrice` | Number | The grand total price for all passengers (base fare + taxes + fees). |\n| `totalDiscountAmount` | Number | The sum of the discounts for all passengers. |\n| `totalPoint` | Number | The sum of the points for all passengers. |\n\n---\n\n#### `adultFare`, `childFare`, `infantFare` Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `fare` | Number | The base fare for this passenger type. |\n| `tax` | Number | Taxes for this passenger type. |\n| `fee` | Number | Fees for this passenger type. |\n| `currency` | String | Currency code for the fare elements (e.g., `\"USD\"`). |\n| `count` | Integer | Number of passengers of this type. |\n| `total` | Number | Total fare including taxes and fees, for this type. |\n| `point` | Integer | Points of the voucher. |\n| `totalPoint` | Integer | The total points (point \\* count). |\n\n---\n\n### `flights` Array Structure\n\nEach object represents a flight leg:\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `sequence` | Integer | Flight leg sequence (1=outbound, 2=return). Starts from 1. |\n| `flightDuration` | Integer | Total flight time in minutes for the entire leg. |\n| `travelDuration` | Integer | Total travel time in minutes for the entire leg (including layovers). |\n| `journeyId` | String | The journey object that groups all flight segments of a single trip. |\n| `segments` | Array | An array containing information about each segment of the flight leg. See `Segments Array Structure`. |\n\n---\n\n### `segments` Array Structure\n\nEach object represents a flight segment:\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `segmentId` | String | Unique identifier for the flight segment. |\n| `sequence` | Integer | Segment order within the leg. |\n| `bookingCode` | String | Fare class code (e.g., `\"X\"`). Consult the airline for the specific meaning of the booking code. |\n| `cabinClass` | String | Cabin class for the segment (e.g., `\"ECONOMY\"`). |\n| `available` | Integer | Number of seats available in this class. |\n| `departureCode` | String | IATA departure airport code (e.g., `\"SGN\"`). |\n| `departureName` | String | Departure airport name (e.g., `\"Ho Chi Minh City\"`). |\n| `departureDate` | String | Departure date (YYYY-MM-DD) (e.g., `\"2025-06-20\"`). |\n| `departureTime` | String | Departure time (HH:mm) (e.g., `\"12:50\"`). |\n| `departureTerminal` | String | Departure terminal (e.g., `\"1\"`). |\n| `arrivalCode` | String | IATA arrival airport code (e.g., `\"HAN\"`). |\n| `arrivalName` | String | Arrival airport name (e.g., `\"Hanoi\"`). |\n| `arrivalDate` | String | Arrival date (YYYY-MM-DD) (e.g., `\"2025-06-20\"`). |\n| `arrivalTime` | String | Arrival time (HH:mm) (e.g., `\"15:00\"`). |\n| `arrivalTerminal` | String | Arrival terminal (e.g., `\"1\"`). |\n| `airlines` | String | 2-letter airline code (e.g., `\"QH\"`). |\n| `airlinesName` | String | Airline name (e.g., `\"BAMBOO AIRWAYS\"`). |\n| `equipment` | String | Aircraft type (e.g., `\"JET\"`). |\n| `flightNumber` | String | Flight number (e.g., `\"242\"`). |\n| `flightTime` | Integer | Flight time in minutes. |\n| `stopTime` | Integer | Layover time in minutes (0 for direct flights). |\n| `baggageRules` | Object | Baggage rules for this segment. See `Baggage Rules Object`. |\n| `miniRules` | Object | Rules regarding penalties, refunds, and reissues. See `Mini Rules Object`. |\n| `fareBasis` | String | Indicates the fare basis code that defines the fare type and rules applied to the ticket. |\n\n---\n\n### `baggageRules` Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Baggage rules for adults |\n| `children` | Array | Baggage rules for children |\n| `infants` | Array | Baggage rules for infants |\n\n**Baggage Rule Object:**\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `baggageAmount` | String | Amount of checked baggage allowed (e.g., `\"0PC\"` for 0 pieces). |\n| `baggageWeight` | String | Weight of checked baggage allowed (e.g., `\"7KG\"` for 7 kilograms). |\n| `carryOnAmount` | String | Amount of Carry-on baggage allowed (e.g., `\"1PC\"` for 1 pieces). |\n| `carryOnWeight` | String | Weight of Carry-on baggage allowed (e.g., `\"7KG\"` for 7 kilograms). |\n\n---\n\n### `miniRules` Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Change/refund rules for adults |\n| `children` | Array | Change/refund rules for children |\n| `infants` | Array | Change/refund rules for infants |\n\n**Rule Object:**\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `miniruleText` | String | The rule text. |\n| `miniruleHtml` | String | The rule html. |\n| `penaltyType` | String | The type of penalty (e.g., `\"REFUND\"`, `\"REISSUE\"`). |\n| `allowRefund` | String | Indicates if a refund is allowed (`\"NOT_ALLOWED\"`). |\n| `situation` | String | When the penalty applies (`\"BEFORE_DEPARTURE\"`, `\"AFTER_DEPARTURE\"`). |\n| `noShowTime` | String | No-show timing relative to departure. |\n| `noShowTimeUnit` | String | Time unit for the no-show period. |\n| `amount` | Number | A general fee amount. |\n| `currency` | String | The currency code (e.g., \"USD\"). |\n| `percent` | Number | The penalty amount as a percentage of the fare. |\n| `baseType` | String | The basis for the penalty calculation (e.g., `\"FARE\"`). |\n\n---\n\n### `ancillaryAvailability` Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `bag` | Boolean | Indicates whether baggage ancillary services are available (e.g., `true`, `false`). |\n| `seat` | Boolean | Indicates whether seat selection ancillary services are available (e.g., `true`, `false`). |"
									},
									"response": []
								},
								{
									"name": "2.1 Get Ancillary",
									"request": {
										"method": "POST",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{access_token}}",
												"type": "text"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\r\n  \"Provider\": \"flight.provider1\",\r\n  \"SolutionId\": \"qyO6CweWiVSe6sEZxFIrRj/69/dN2771QBVYlerCWZM8gCB1DjvSwhfwCARyxXvfoaWeomdjakqMrGTagWBKFdv6SGqn5SQP4o1/6I5cd4AK/Jrv8SwcfN1xdQeUPX9KPhaZHDryDCctZe44ZU2qdy4pwBi5vUtOgF/HVHewdN6w75dU1eRPvSFvHpx7yJvIA6J/AyAy5Np9/NlBsIieNEKKevNwg6fFmLsvE54FAVv5difWWcTBcKx+VyDBxfRsCZJb3eKwqzr0MTM47rLjpZ3J3FKOaD2uJGckrHPhzTlIC3Un3r6vhViWJbijqPRv0o9uAZ3Il4WVSokNjyRmqYhHorh52kX7AXpvfcEu7+zIgmvElRxCaXGL8k5+rLnYE6Vn94KtI0K1fatokqKOQA==\",\r\n  \"Airlines\": \"\",\r\n  \"Adults\": 1,\r\n  \"Children\": 0,\r\n  \"Infants\": 0,\r\n  \"CabinClass\": \"\",\r\n  \"flights\": [\r\n    {\r\n      \"sequence\": 1,\r\n      \"flightDuration\": 130,\r\n      \"travelDuration\": 130,\r\n      \"lastTicketTime\": \"2025-11-07T18:29:00:0000\",\r\n      \"journeyId\": \"00000000-0000-0000-0000-000000000000\",\r\n      \"segments\": [\r\n        {\r\n          \"segmentId\": \"bc2082bdcaf8d11b769e4b2b25f597fc\",\r\n          \"sequence\": 1,\r\n          \"bookingCode\": \"Q\",\r\n          \"cabinClass\": \"ECONOMY\",\r\n          \"available\": 9,\r\n          \"departureCode\": \"HAN\",\r\n          \"departureName\": \"Hanoi\",\r\n          \"departureDate\": \"2025-11-07\",\r\n          \"departureTime\": \"23:00\",\r\n          \"departureTerminal\": \"1\",\r\n          \"arrivalCode\": \"SGN\",\r\n          \"arrivalName\": \"Ho Chi Minh City\",\r\n          \"arrivalDate\": \"2025-11-08\",\r\n          \"arrivalTime\": \"01:10\",\r\n          \"arrivalTerminal\": \"3\",\r\n          \"airlines\": \"VN\",\r\n          \"airlinesName\": \"VIETNAM AIRLINES\",\r\n          \"equipment\": \"321\",\r\n          \"flightNumber\": \"6025\",\r\n          \"flightTime\": 130,\r\n          \"stopTime\": 0,\r\n          \"baggageRules\": {\r\n            \"adults\": [\r\n              {\r\n                \"baggageAmount\": \"1PC\",\r\n                \"carryOnAmount\": \"1PC\",\r\n                \"carryOnWeight\": \"10KG\"\r\n              }\r\n            ],\r\n            \"children\": [],\r\n            \"infants\": []\r\n          },\r\n          \"miniRules\": {\r\n            \"adults\": [\r\n              {\r\n                \"penaltyType\": \"REISSUE\",\r\n                \"allowRefund\": \"ALLOW\",\r\n                \"situation\": \"BEFORE_DEPARTURE\",\r\n                \"amount\": 30,\r\n                \"currency\": \"USD\",\r\n                \"percent\": 0,\r\n                \"baseType\": \"FARE\"\r\n              },\r\n              {\r\n                \"penaltyType\": \"REFUND\",\r\n                \"allowRefund\": \"ALLOW\",\r\n                \"situation\": \"BEFORE_DEPARTURE\",\r\n                \"amount\": 30,\r\n                \"currency\": \"USD\",\r\n                \"percent\": 0,\r\n                \"baseType\": \"FARE\"\r\n              }\r\n            ],\r\n            \"children\": [],\r\n            \"infants\": []\r\n          }\r\n        }\r\n      ]\r\n    },\r\n    {\r\n      \"sequence\": 2,\r\n      \"flightDuration\": 125,\r\n      \"travelDuration\": 125,\r\n      \"lastTicketTime\": \"2025-11-07T18:29:00:0000\",\r\n      \"journeyId\": \"00000000-0000-0000-0000-000000000000\",\r\n      \"segments\": [\r\n        {\r\n          \"segmentId\": \"608b7330e71a91a371a3a9fba372c1a0\",\r\n          \"sequence\": 1,\r\n          \"bookingCode\": \"E\",\r\n          \"cabinClass\": \"ECONOMY\",\r\n          \"available\": 9,\r\n          \"departureCode\": \"SGN\",\r\n          \"departureName\": \"Ho Chi Minh City\",\r\n          \"departureDate\": \"2025-11-22\",\r\n          \"departureTime\": \"20:30\",\r\n          \"departureTerminal\": \"3\",\r\n          \"arrivalCode\": \"HAN\",\r\n          \"arrivalName\": \"Hanoi\",\r\n          \"arrivalDate\": \"2025-11-22\",\r\n          \"arrivalTime\": \"22:35\",\r\n          \"arrivalTerminal\": \"1\",\r\n          \"airlines\": \"VN\",\r\n          \"airlinesName\": \"VIETNAM AIRLINES\",\r\n          \"equipment\": \"350\",\r\n          \"flightNumber\": \"256\",\r\n          \"flightTime\": 125,\r\n          \"stopTime\": 0,\r\n          \"baggageRules\": {\r\n            \"adults\": [\r\n              {\r\n                \"baggageAmount\": \"1PC\",\r\n                \"carryOnAmount\": \"1PC\",\r\n                \"carryOnWeight\": \"10KG\"\r\n              }\r\n            ],\r\n            \"children\": [],\r\n            \"infants\": []\r\n          },\r\n          \"miniRules\": {\r\n            \"adults\": [\r\n              {\r\n                \"penaltyType\": \"REISSUE\",\r\n                \"allowRefund\": \"ALLOW\",\r\n                \"situation\": \"BEFORE_DEPARTURE\",\r\n                \"amount\": 30,\r\n                \"currency\": \"USD\",\r\n                \"percent\": 0,\r\n                \"baseType\": \"FARE\"\r\n              },\r\n              {\r\n                \"penaltyType\": \"REFUND\",\r\n                \"allowRefund\": \"ALLOW\",\r\n                \"situation\": \"BEFORE_DEPARTURE\",\r\n                \"amount\": 30,\r\n                \"currency\": \"USD\",\r\n                \"percent\": 0,\r\n                \"baseType\": \"FARE\"\r\n              }\r\n            ],\r\n            \"children\": [],\r\n            \"infants\": []\r\n          }\r\n        }\r\n      ]\r\n    }\r\n  ],\r\n  \"Ancillary\": [\r\n    1\r\n  ]\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/hub/flight/ancillary/search",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"flight",
												"ancillary",
												"search"
											]
										},
										"description": "# Flight ancillary search API Documentation\n\n## Overview\n\nThis API enables searching for available ancillary services, including baggage, seats, segments , etc. It returns service options, pricing, availability, and booking details.\n\n---\n\n## API Endpoint\n\n- **URL:** `{{host}}/hub/flight/ancillary/search`\n    \n- **Method:** `POST`\n    \n- **Content-Type:** `application/json`\n    \n\n---\n\n## Headers\n\n| Key | Value | Description |\n| --- | --- | --- |\n| `Authorization` | `Bearer {token}` | JWT access token (Required) |\n| `Content-Type` | `application/json` | Request/Response format |\n\n## Request Body\n\n``` json\n{\n  \"Provider\": \"flight.provider1\",\n  \"SolutionId\": \"qyO6CweWiVSe6sEZxFIrRj/69/dN2771QBVYlerCWZM8gCB1DjvSwhfwCARyxXvfoaWeomdjakqMrGTagWBKFdv6SGqn5SQP4o1/6I5cd4AK/Jrv8SwcfN1xdQeUPX9KPhaZHDryDCctZe44ZU2qdy4pwBi5vUtOgF/HVHewdN6w75dU1eRPvSFvHpx7yJvIA6J/AyAy5Np9/NlBsIieNEKKevNwg6fFmLsvE54FAVv5difWWcTBcKx+VyDBxfRsCZJb3eKwqzr0MTM47rLjpZ3J3FKOaD2uJGckrHPhzTlIC3Un3r6vhViWJbijqPRv0o9uAZ3Il4WVSokNjyRmqYhHorh52kX7AXpvfcEu7+zIgmvElRxCaXGL8k5+rLnYE6Vn94KtI0K1fatokqKOQA==\",\n  \"Airlines\": \"\",\n  \"Adults\": 1,\n  \"Children\": 0,\n  \"Infants\": 0,\n  \"CabinClass\": \"\",\n  \"flights\": [\n    {\n      \"sequence\": 1,\n      \"flightDuration\": 130,\n      \"travelDuration\": 130,\n      \"lastTicketTime\": \"2025-11-07T18:29:00:0000\",\n      \"journeyId\": \"00000000-0000-0000-0000-000000000000\",\n      \"segments\": [\n        {\n          \"segmentId\": \"bc2082bdcaf8d11b769e4b2b25f597fc\",\n          \"sequence\": 1,\n          \"bookingCode\": \"Q\",\n          \"cabinClass\": \"ECONOMY\",\n          \"available\": 9,\n          \"departureCode\": \"HAN\",\n          \"departureName\": \"Hanoi\",\n          \"departureDate\": \"2025-11-07\",\n          \"departureTime\": \"23:00\",\n          \"departureTerminal\": \"1\",\n          \"arrivalCode\": \"SGN\",\n          \"arrivalName\": \"Ho Chi Minh City\",\n          \"arrivalDate\": \"2025-11-08\",\n          \"arrivalTime\": \"01:10\",\n          \"arrivalTerminal\": \"3\",\n          \"airlines\": \"VN\",\n          \"airlinesName\": \"VIETNAM AIRLINES\",\n          \"equipment\": \"321\",\n          \"flightNumber\": \"6025\",\n          \"flightTime\": 130,\n          \"stopTime\": 0,\n          \"baggageRules\": {\n            \"adults\": [\n              {\n                \"baggageAmount\": \"1PC\",\n                \"carryOnAmount\": \"1PC\",\n                \"carryOnWeight\": \"10KG\"\n              }\n            ],\n            \"children\": [],\n            \"infants\": []\n          },\n          \"miniRules\": {\n            \"adults\": [\n              {\n                \"penaltyType\": \"REISSUE\",\n                \"allowRefund\": \"ALLOW\",\n                \"situation\": \"BEFORE_DEPARTURE\",\n                \"amount\": 30,\n                \"currency\": \"USD\",\n                \"percent\": 0,\n                \"baseType\": \"FARE\"\n              },\n              {\n                \"penaltyType\": \"REFUND\",\n                \"allowRefund\": \"ALLOW\",\n                \"situation\": \"BEFORE_DEPARTURE\",\n                \"amount\": 30,\n                \"currency\": \"USD\",\n                \"percent\": 0,\n                \"baseType\": \"FARE\"\n              }\n            ],\n            \"children\": [],\n            \"infants\": []\n          }\n        }\n      ]\n    },\n    {\n      \"sequence\": 2,\n      \"flightDuration\": 125,\n      \"travelDuration\": 125,\n      \"lastTicketTime\": \"2025-11-07T18:29:00:0000\",\n      \"journeyId\": \"00000000-0000-0000-0000-000000000000\",\n      \"segments\": [\n        {\n          \"segmentId\": \"608b7330e71a91a371a3a9fba372c1a0\",\n          \"sequence\": 1,\n          \"bookingCode\": \"E\",\n          \"cabinClass\": \"ECONOMY\",\n          \"available\": 9,\n          \"departureCode\": \"SGN\",\n          \"departureName\": \"Ho Chi Minh City\",\n          \"departureDate\": \"2025-11-22\",\n          \"departureTime\": \"20:30\",\n          \"departureTerminal\": \"3\",\n          \"arrivalCode\": \"HAN\",\n          \"arrivalName\": \"Hanoi\",\n          \"arrivalDate\": \"2025-11-22\",\n          \"arrivalTime\": \"22:35\",\n          \"arrivalTerminal\": \"1\",\n          \"airlines\": \"VN\",\n          \"airlinesName\": \"VIETNAM AIRLINES\",\n          \"equipment\": \"350\",\n          \"flightNumber\": \"256\",\n          \"flightTime\": 125,\n          \"stopTime\": 0,\n          \"baggageRules\": {\n            \"adults\": [\n              {\n                \"baggageAmount\": \"1PC\",\n                \"carryOnAmount\": \"1PC\",\n                \"carryOnWeight\": \"10KG\"\n              }\n            ],\n            \"children\": [],\n            \"infants\": []\n          },\n          \"miniRules\": {\n            \"adults\": [\n              {\n                \"penaltyType\": \"REISSUE\",\n                \"allowRefund\": \"ALLOW\",\n                \"situation\": \"BEFORE_DEPARTURE\",\n                \"amount\": 30,\n                \"currency\": \"USD\",\n                \"percent\": 0,\n                \"baseType\": \"FARE\"\n              },\n              {\n                \"penaltyType\": \"REFUND\",\n                \"allowRefund\": \"ALLOW\",\n                \"situation\": \"BEFORE_DEPARTURE\",\n                \"amount\": 30,\n                \"currency\": \"USD\",\n                \"percent\": 0,\n                \"baseType\": \"FARE\"\n              }\n            ],\n            \"children\": [],\n            \"infants\": []\n          }\n        }\n      ]\n    }\n  ],\n  \"Ancillary\": [\n    1\n  ]\n}\n\n ```\n\n## Request Body Parameters\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `Provider` | String | ✅ Yes | The ID of the flight provider. | `\"flight.provider1\"` |\n| `SolutionId` | String | ✅ Yes | A unique identifier for the flight solution, obtained from the flight search API. | `\"...long string...\"` |\n| `Airlines` | String | ❌ No | Airline carrier code. | `VN` |\n| `Adults` | Integer | ✅ Yes | The number of adult passengers. | `1` - `9` |\n| `Children` | Integer | ❌ No | The number of child passengers. Defaults to 0 if not provided. | `0` - `8` |\n| `Infants` | Integer | ❌ No | The number of infant passengers. Defaults to 0 if not provided. | `0` - `8` |\n| `CabinClass` | String | ❌ No | The desired cabin class. | `\"economy\"`, `\"business\"`, `\"first\"` |\n| `flights` | Array | ✅ Yes | An array of objects detailing the flight legs for which baggage information is requested. See `flights` Array Structure below. |  |\n| `Ancillary` | Array | ❌ No | An array of values 0 or 1 to determine that baggage is enabled or disabled (0=No,1=Yes) |  |\n\n---\n\n### `flights` Array Structure\n\nThe `flights` array contains JSON objects, where each object represents a flight leg in the itinerary.\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `sequence` | Integer | ✅ Yes | Flight leg sequence. This number indicates the order of the flight leg within the itinerary. The sequence starts at 1 and increments for each subsequent flight leg in the itinerary. |\n| `flightDuration` | Integer | ✅ Yes | Total flight time in minutes for the entire leg. |\n| `travelDuration` | Integer | ✅ Yes | Total travel time in minutes for the entire leg (including layovers). |\n| `lastTicketTime` | String | ✅ Yes | Last date/time to purchase the ticket (ISO 8601 format). `0001-01-01T00:00:00:0000` indicates no time limit. |\n| `journeyId` | Guid | ✅ Yes | The journey object that groups all flight segments of a single trip. |\n| `segments` | Array | ✅ Yes | Array of flight segments. See `segments` Array Structure below. |\n\n---\n\n### `segments` Array Structure\n\nThe `segments` array contains JSON objects, where each object represents a segment of a flight leg.\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `segmentId` | String | ✅ Yes | Unique identifier for the segment. |\n| `sequence` | Integer | ✅ Yes | Segment order within the leg. |\n| `bookingCode` | String | ✅ Yes | Fare class code (e.g., \"X\"). This code represents the specific fare class that applies to this flight segment. Contact the airline for decode the real meaning of bookingCode. |\n| `cabinClass` | String | ✅ Yes | Cabin class for the segment (e.g., \"ECONOMY\"). |\n| `available` | Integer | ✅ Yes | Number of seats available in this class. |\n| `departureCode` | String | ✅ Yes | IATA departure airport code (e.g., \"SGN\"). |\n| `departureName` | String | ✅ Yes | Departure airport name (e.g., \"Ho Chi Minh City\"). |\n| `departureDate` | String | ✅ Yes | Departure date (YYYY-MM-DD) (e.g., \"2025-06-20\"). |\n| `departureTime` | String | ✅ Yes | Departure time (HH:mm) (e.g., \"12:50\"). |\n| `departureTerminal` | String | ✅ Yes | Departure terminal (e.g., `\"1\"`). |\n| `arrivalCode` | String | ✅ Yes | IATA arrival airport code (e.g., \"HAN\"). |\n| `arrivalName` | String | ✅ Yes | Arrival airport name (e.g., \"Hanoi\"). |\n| `arrivalDate` | String | ✅ Yes | Arrival date (YYYY-MM-DD) (e.g., \"2025-06-20\"). |\n| `arrivalTime` | String | ✅ Yes | Arrival time (HH:mm) (e.g., \"15:00\"). |\n| `arrivalTerminal` | String | ✅ Yes | Arrival terminal (e.g., `\"1\"`). |\n| `airlines` | String | ✅ Yes | 2-letter airline code (e.g., \"QH\"). |\n| `airlinesName` | String | ✅ Yes | Airline name (e.g., \"BAMBOO AIRWAYS\"). |\n| `equipment` | String | ✅ Yes | Aircraft type (e.g., \"320\"). |\n| `flightNumber` | String | ✅ Yes | Flight number (e.g., \"242\"). |\n| `flightTime` | Integer | ✅ Yes | Flight time in minutes. |\n| `stopTime` | Integer | ✅ Yes | Layover time in minutes (0 for direct flights). |\n| `baggageRules` | Object | ✅ Yes | Baggage rules for the segment. See `baggageRules` Structure below. |\n| `miniRules` | Object | ✅ Yes | Penalty rules for the segment. See `miniRules` Structure below. |\n\n---\n\n### `baggageRules` Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Baggage rules for adult passengers. See `Baggage Rule Details Object`. |\n| `children` | Array | Baggage rules for child passengers. |\n| `infants` | Array | Baggage rules for infant passengers. |\n\n---\n\n### `Baggage Rule Details Object`\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `baggageAmount` | String | `\"0PC\"` | Checked baggage allowance (e.g., `\"0PC\"` = 0 pieces) |\n| `baggageWeight` | String | `\"8KG\"` | Checked baggage weight limit (e.g., `\"7KG\"` = 7 kilograms) |\n| `carryOnAmount` | String | `\"1PC\"` | Cabin baggage allowance (e.g., `\"1PC\"` = 1 piece) |\n| `carryOnWeight` | String | `\"7KG\"` | Cabin baggage weight limit (e.g., `\"7KG\"` = 7 kilograms) |\n\n---\n\n### `miniRules` Structure\n\nThis object details penalty, refund and reissue conditions.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Array of penalty rule objects for adults. See `Rule Object`. |\n| `children` | Array | Array of penalty rule objects for children. |\n| `infants` | Array | Array of penalty rule objects for infants. |\n\n---\n\n### Rule Object\n\nThis object details penalty, refund and reissue conditions.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `miniruleText` | String | The text rule. |\n| `miniruleHtml` | String | The html rule. |\n| `penaltyType` | String | Fee type (`REFUND`, `REISSUE`). |\n| `allowRefund` | String | Indicates if a refund is allowed (`ALLOW`, `NOT_ALLOWED`). |\n| `situation` | String | When the penalty applies (`BEFORE_DEPARTURE`, `AFTER_DEPARTURE`). |\n| `amount` | Number | A fee ammount |\n| `currency` | String | Currency code (e.g., `\"USD\"`). |\n| `percent` | Number | Fee percentage of the base fare. |\n| `baseType` | String | Fee calculation base (`FARE` = total fare). |\n\n---\n\n## Sample Response\n\n``` json\n[\n  {\n    \"ancillaryType\": 1,\n    \"ancillary\": {\n      \"segments\": [\n        {\n          \"sequence\": 1,\n          \"bookingCode\": \"E\",\n          \"cabinClass\": \"ECONOMY\",\n          \"available\": 0,\n          \"departureCode\": \"SGN\",\n          \"departureName\": \"\",\n          \"departureDate\": \"2025-11-22\",\n          \"departureTime\": \"20:30\",\n          \"arrivalCode\": \"HAN\",\n          \"arrivalName\": \"\",\n          \"arrivalDate\": \"2025-11-22\",\n          \"arrivalTime\": \"22:35\",\n          \"airlines\": \"VN\",\n          \"airlinesName\": \"\",\n          \"flightNumber\": \"256\",\n          \"flightTime\": 0,\n          \"stopTime\": 0,\n          \"baggageRules\": {},\n          \"miniRules\": {}\n        }\n      ],\n      \"ancillaries\": {\n        \"baggages\": [\n          {\n            \"ancillaryId\": \"2d99eee4437967cbe5bb531a8fad4ff4\",\n            \"type\": 1,\n            \"limit\": 1,\n            \"weight\": \"23KG\",\n            \"currency\": \"USD\",\n            \"price\": 15.7,\n            \"description\": \"1PC X 23KG\",\n            \"segments\": [\n              {\n                \"sequence\": 1,\n                \"bookingCode\": \"E\",\n                \"cabinClass\": \"ECONOMY\",\n                \"available\": 0,\n                \"departureCode\": \"SGN\",\n                \"departureName\": \"\",\n                \"departureDate\": \"2025-11-22\",\n                \"departureTime\": \"20:30\",\n                \"arrivalCode\": \"HAN\",\n                \"arrivalName\": \"\",\n                \"arrivalDate\": \"2025-11-22\",\n                \"arrivalTime\": \"22:35\",\n                \"airlines\": \"VN\",\n                \"airlinesName\": \"\",\n                \"flightNumber\": \"256\",\n                \"flightTime\": 0,\n                \"stopTime\": 0,\n                \"baggageRules\": {},\n                \"miniRules\": {}\n              }\n            ]\n          },\n          {\n            \"ancillaryId\": \"6bbe7097cbf558b14c73c99fedededd0\",\n            \"type\": 1,\n            \"limit\": 2,\n            \"weight\": \"46KG\",\n            \"currency\": \"USD\",\n            \"price\": 28.4,\n            \"description\": \"2PC X 23KG\",\n            \"segments\": [\n              {\n                \"sequence\": 1,\n                \"bookingCode\": \"E\",\n                \"cabinClass\": \"ECONOMY\",\n                \"available\": 0,\n                \"departureCode\": \"SGN\",\n                \"departureName\": \"\",\n                \"departureDate\": \"2025-11-22\",\n                \"departureTime\": \"20:30\",\n                \"arrivalCode\": \"HAN\",\n                \"arrivalName\": \"\",\n                \"arrivalDate\": \"2025-11-22\",\n                \"arrivalTime\": \"22:35\",\n                \"airlines\": \"VN\",\n                \"airlinesName\": \"\",\n                \"flightNumber\": \"256\",\n                \"flightTime\": 0,\n                \"stopTime\": 0,\n                \"baggageRules\": {},\n                \"miniRules\": {}\n              }\n            ]\n          },\n          {\n            \"ancillaryId\": \"05bf8fd975e98ef66329d90c32e8b4bb\",\n            \"type\": 1,\n            \"limit\": 3,\n            \"weight\": \"69KG\",\n            \"currency\": \"USD\",\n            \"price\": 41.1,\n            \"description\": \"3PC X 23KG\",\n            \"segments\": [\n              {\n                \"sequence\": 1,\n                \"bookingCode\": \"E\",\n                \"cabinClass\": \"ECONOMY\",\n                \"available\": 0,\n                \"departureCode\": \"SGN\",\n                \"departureName\": \"\",\n                \"departureDate\": \"2025-11-22\",\n                \"departureTime\": \"20:30\",\n                \"arrivalCode\": \"HAN\",\n                \"arrivalName\": \"\",\n                \"arrivalDate\": \"2025-11-22\",\n                \"arrivalTime\": \"22:35\",\n                \"airlines\": \"VN\",\n                \"airlinesName\": \"\",\n                \"flightNumber\": \"256\",\n                \"flightTime\": 0,\n                \"stopTime\": 0,\n                \"baggageRules\": {},\n                \"miniRules\": {}\n              }\n            ]\n          },\n          {\n            \"ancillaryId\": \"92f0422d62695d81d7adb029b04e8d0d\",\n            \"type\": 1,\n            \"limit\": 4,\n            \"weight\": \"92KG\",\n            \"currency\": \"USD\",\n            \"price\": 53.8,\n            \"description\": \"4PC X 23KG\",\n            \"segments\": [\n              {\n                \"sequence\": 1,\n                \"bookingCode\": \"E\",\n                \"cabinClass\": \"ECONOMY\",\n                \"available\": 0,\n                \"departureCode\": \"SGN\",\n                \"departureName\": \"\",\n                \"departureDate\": \"2025-11-22\",\n                \"departureTime\": \"20:30\",\n                \"arrivalCode\": \"HAN\",\n                \"arrivalName\": \"\",\n                \"arrivalDate\": \"2025-11-22\",\n                \"arrivalTime\": \"22:35\",\n                \"airlines\": \"VN\",\n                \"airlinesName\": \"\",\n                \"flightNumber\": \"256\",\n                \"flightTime\": 0,\n                \"stopTime\": 0,\n                \"baggageRules\": {},\n                \"miniRules\": {}\n              }\n            ]\n          }\n        ],\n        \"seats\": []\n      }\n    }\n  }\n]\n\n ```\n\n## Response Field Description\n\n| Field | Type | Description | Possible Values |\n| --- | --- | --- | --- |\n| `ancillaryType` | Number | Type of ancillary service. | `1` (Baggage), `2` (Seats) |\n| `ancillary` | Object | Contains details about the ancillary service, including segments and available ancillaries. | See `ancillary` Object Structure |\n\n---\n\n### `ancillary` Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `segments` | Array | An array containing flight segment details. See `segments` Array Structure. |\n| `ancillaries` | Object | Details about available ancillary services, including baggage and seats. See `ancillaries` Object Structure. |\n\n---\n\n### `segments` Array Structure\n\n| Field | Type | Description | Possible Values |\n| --- | --- | --- | --- |\n| `sequence` | Integer | Segment order within the leg. | `1`, `2`, etc. |\n| `bookingCode` | String | Booking class code. | e.g., \"E\", \"T\" |\n| `cabinClass` | String | Cabin class for the segment. | `\"ECONOMY\"`, `\"BUSINESS\"` |\n| `available` | Integer | Number of seats available in this class. | `0`\\-`9` |\n| `departureCode` | String | IATA departure airport code. | e.g., \"SGN\", \"HAN\" |\n| `departureName` | String | Departure airport name. _Can be an empty string if not available._ | e.g., \"Ho Chi Minh City\" |\n| `departureDate` | String | Departure date (YYYY-MM-DD). | e.g., \"2025-07-18\" |\n| `departureTime` | String | Departure time (HH:mm). | e.g., \"23:15\" |\n| `arrivalCode` | String | IATA arrival airport code. | e.g., \"HAN\", \"SGN\" |\n| `arrivalName` | String | Arrival airport name. _Can be an empty string if not available._ | e.g., \"Hanoi\" |\n| `arrivalDate` | String | Arrival date (YYYY-MM-DD). | e.g., \"2025-07-19\" |\n| `arrivalTime` | String | Arrival time (HH:mm). | e.g., \"01:15\" |\n| `airlines` | String | 2-letter airline code. | e.g., \"VN\" |\n| `airlinesName` | String | Airline name. _Can be an empty string if not available._ | e.g., \"VIETNAM AIRLINES\" |\n| `flightNumber` | String | Flight number. | e.g., \"7250\" |\n| `flightTime` | Integer | Flight time in minutes. | e.g., `120` |\n| `stopTime` | Integer | Layover time in minutes. | e.g., `0` |\n| `baggageRules` | Object | Baggage rules for this segment. _Can be an empty object if not available._ | `{}` |\n| `miniRules` | Object | Rules regarding penalties, refunds, and reissues for this segment. _Can be an empty object if not available._ | `{}` |\n\n---\n\n### `ancillaries` Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `baggages` | Array | Available baggage options for the segment. See `baggages` Array Structure. |\n| `seats` | Array | Available seat selection options for the segment. Can be an empty array if not available. |\n\n---\n\n### `baggages` Array Structure\n\n| Field | Type | Description | Example |\n| --- | --- | --- | --- |\n| `ancillaryId` | String | Unique ID for the baggage option. | `\"b6a751482495e4f605d5f94c6\"` |\n| `type` | Integer | Type of ancillary service. | `1` |\n| `limit` | Number | Number of baggage pieces allowed for this option. | `1`, `2`, `3`, etc. |\n| `weight` | String | Total baggage weight allowed for this option. | `\"23KG\"`, `\"46KG\"` |\n| `currency` | String | Currency of the price. | `\"USD\"`, `\"VND\"` |\n| `price` | Number | Baggage price in the specified currency. | `15.7` |\n| `description` | String | Description of baggage allowance (e.g., \"Number of pieces X Maximum weight per piece.\"). | `\"1PC X 23KG\"` |\n| `segments` | Array | An array of segments related with this baggage allowance option. See `segments` Array Structure. |  |"
									},
									"response": []
								},
								{
									"name": "3. Book Flight",
									"request": {
										"method": "POST",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{access_token}}",
												"type": "text"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\r\n    \"Type\": \"ROUND_TRIP\",\r\n    \"Adults\": 1,\r\n    \"Children\": 0,\r\n    \"Infants\": 0,\r\n    \"solutions\": [\r\n        {\r\n            \"provider\": \"flight.provider2.1A\",\r\n            \"solutionId\": \"a81ade09f74200b6264a5b1391845a4a442b3e7b081702602581fbc1a6eeb71e+QgHAWyLWSGSeDu7w5Z7YCQ+c61e8dee-1213-40c4-af4f-e4fa267a7f81+++1A|a81ade09f74200b6264a5b1391845a4a442b3e7b081702602581fbc1a6eeb71e+QgHAWyLWSGSeDu7w5Z7YCQ+c61e8dee-1213-40c4-af4f-e4fa267a7f81+++1A\",\r\n            \"requireEnrichment\": false,\r\n            \"allowPayLater\": true,\r\n            \"isNDC\": false,\r\n            \"fare\": {\r\n                \"adultFare\": {\r\n                    \"fare\": 9698000,\r\n                    \"tax\": 8690000,\r\n                    \"fee\": 0,\r\n                    \"currency\": \"VND\",\r\n                    \"discountAmount\": 0,\r\n                    \"count\": 1,\r\n                    \"total\": 18388000,\r\n                    \"point\": 0,\r\n                    \"totalPoint\": 0\r\n                },\r\n                \"childFare\": {\r\n                    \"fare\": 0,\r\n                    \"tax\": 0,\r\n                    \"fee\": 0,\r\n                    \"currency\": \"USD\",\r\n                    \"discountAmount\": 0,\r\n                    \"count\": 0,\r\n                    \"total\": 0,\r\n                    \"point\": 0,\r\n                    \"totalPoint\": 0\r\n                },\r\n                \"infantFare\": {\r\n                    \"fare\": 0,\r\n                    \"tax\": 0,\r\n                    \"fee\": 0,\r\n                    \"currency\": \"USD\",\r\n                    \"discountAmount\": 0,\r\n                    \"count\": 0,\r\n                    \"total\": 0,\r\n                    \"point\": 0,\r\n                    \"totalPoint\": 0\r\n                },\r\n                \"totalFare\": 9698000,\r\n                \"totalTax\": 8690000,\r\n                \"totalFee\": 0,\r\n                \"totalPrice\": 18388000,\r\n                \"totalDiscountAmount\": 0,\r\n                \"totalPoint\": 0\r\n            },\r\n            \"flights\": [\r\n                {\r\n                    \"sequence\": 1,\r\n                    \"flightDuration\": 940,\r\n                    \"travelDuration\": 1280,\r\n                    \"journeyId\": \"00000000-0000-0000-0000-000000000000\",\r\n                    \"segments\": [\r\n                        {\r\n                            \"segmentId\": \"1\",\r\n                            \"sequence\": 1,\r\n                            \"bookingCode\": \"B\",\r\n                            \"cabinClass\": \"ECONOMY\",\r\n                            \"available\": 9,\r\n                            \"departureCode\": \"HAN\",\r\n                            \"departureName\": \"Hanoi\",\r\n                            \"departureDate\": \"2025-11-07\",\r\n                            \"departureTime\": \"02:45\",\r\n                            \"departureTerminal\": \"2\",\r\n                            \"arrivalCode\": \"PVG\",\r\n                            \"arrivalName\": \"Shanghai\",\r\n                            \"arrivalDate\": \"2025-11-07\",\r\n                            \"arrivalTime\": \"06:45\",\r\n                            \"arrivalTerminal\": \"1\",\r\n                            \"airlines\": \"MU\",\r\n                            \"airlinesName\": \"CHINA EASTERN AIRLINES\",\r\n                            \"equipment\": \"73L\",\r\n                            \"flightNumber\": \"5076\",\r\n                            \"flightTime\": 180,\r\n                            \"stopTime\": 340,\r\n                            \"baggageRules\": {\r\n                                \"adults\": [\r\n                                    {\r\n                                        \"baggageAmount\": \"1PC\",\r\n                                        \"carryOnAmount\": \"1PC\"\r\n                                    }\r\n                                ]\r\n                            },\r\n                            \"miniRules\": {},\r\n                            \"fareBasis\": \"VSE00CSF\"\r\n                        },\r\n                        {\r\n                            \"segmentId\": \"2\",\r\n                            \"sequence\": 2,\r\n                            \"bookingCode\": \"V\",\r\n                            \"cabinClass\": \"ECONOMY\",\r\n                            \"available\": 9,\r\n                            \"departureCode\": \"PVG\",\r\n                            \"departureName\": \"Shanghai\",\r\n                            \"departureDate\": \"2025-11-07\",\r\n                            \"departureTime\": \"12:25\",\r\n                            \"departureTerminal\": \"1\",\r\n                            \"arrivalCode\": \"CDG\",\r\n                            \"arrivalName\": \"Paris\",\r\n                            \"arrivalDate\": \"2025-11-07\",\r\n                            \"arrivalTime\": \"18:05\",\r\n                            \"arrivalTerminal\": \"2E\",\r\n                            \"airlines\": \"MU\",\r\n                            \"airlinesName\": \"CHINA EASTERN AIRLINES\",\r\n                            \"equipment\": \"77W\",\r\n                            \"flightNumber\": \"569\",\r\n                            \"flightTime\": 760,\r\n                            \"stopTime\": 0,\r\n                            \"baggageRules\": {\r\n                                \"adults\": [\r\n                                    {\r\n                                        \"baggageAmount\": \"1PC\",\r\n                                        \"carryOnAmount\": \"1PC\"\r\n                                    }\r\n                                ]\r\n                            },\r\n                            \"miniRules\": {},\r\n                            \"fareBasis\": \"VSE00CSF\"\r\n                        }\r\n                    ]\r\n                },\r\n                {\r\n                    \"sequence\": 2,\r\n                    \"flightDuration\": 895,\r\n                    \"travelDuration\": 1420,\r\n                    \"journeyId\": \"00000000-0000-0000-0000-000000000000\",\r\n                    \"segments\": [\r\n                        {\r\n                            \"segmentId\": \"3\",\r\n                            \"sequence\": 1,\r\n                            \"bookingCode\": \"T\",\r\n                            \"cabinClass\": \"ECONOMY\",\r\n                            \"available\": 9,\r\n                            \"departureCode\": \"CDG\",\r\n                            \"departureName\": \"Paris\",\r\n                            \"departureDate\": \"2025-11-29\",\r\n                            \"departureTime\": \"20:05\",\r\n                            \"departureTerminal\": \"2E\",\r\n                            \"arrivalCode\": \"PVG\",\r\n                            \"arrivalName\": \"Shanghai\",\r\n                            \"arrivalDate\": \"2025-11-30\",\r\n                            \"arrivalTime\": \"14:20\",\r\n                            \"arrivalTerminal\": \"1\",\r\n                            \"airlines\": \"MU\",\r\n                            \"airlinesName\": \"CHINA EASTERN AIRLINES\",\r\n                            \"equipment\": \"77W\",\r\n                            \"flightNumber\": \"570\",\r\n                            \"flightTime\": 675,\r\n                            \"stopTime\": 525,\r\n                            \"baggageRules\": {\r\n                                \"adults\": [\r\n                                    {\r\n                                        \"baggageAmount\": \"1PC\",\r\n                                        \"carryOnAmount\": \"1PC\"\r\n                                    }\r\n                                ]\r\n                            },\r\n                            \"miniRules\": {},\r\n                            \"fareBasis\": \"TSE00CSF\"\r\n                        },\r\n                        {\r\n                            \"segmentId\": \"4\",\r\n                            \"sequence\": 2,\r\n                            \"bookingCode\": \"B\",\r\n                            \"cabinClass\": \"ECONOMY\",\r\n                            \"available\": 9,\r\n                            \"departureCode\": \"PVG\",\r\n                            \"departureName\": \"Shanghai\",\r\n                            \"departureDate\": \"2025-11-30\",\r\n                            \"departureTime\": \"23:05\",\r\n                            \"departureTerminal\": \"1\",\r\n                            \"arrivalCode\": \"HAN\",\r\n                            \"arrivalName\": \"Hanoi\",\r\n                            \"arrivalDate\": \"2025-12-01\",\r\n                            \"arrivalTime\": \"01:45\",\r\n                            \"arrivalTerminal\": \"2\",\r\n                            \"airlines\": \"MU\",\r\n                            \"airlinesName\": \"CHINA EASTERN AIRLINES\",\r\n                            \"equipment\": \"73L\",\r\n                            \"flightNumber\": \"5075\",\r\n                            \"flightTime\": 220,\r\n                            \"stopTime\": 0,\r\n                            \"baggageRules\": {\r\n                                \"adults\": [\r\n                                    {\r\n                                        \"baggageAmount\": \"1PC\",\r\n                                        \"carryOnAmount\": \"1PC\"\r\n                                    }\r\n                                ]\r\n                            },\r\n                            \"miniRules\": {},\r\n                            \"fareBasis\": \"TSE00CSF\"\r\n                        }\r\n                    ]\r\n                }\r\n            ]\r\n        }\r\n    ],\r\n    \"passengers\": [\r\n        {\r\n            \"Index\": 1,\r\n            \"FirstName\": \"NGUYEN\",\r\n            \"LastName\": \"THAI VAN\",\r\n            \"Gender\": \"M\",\r\n            \"Type\": 1,\r\n            \"Nationality\": \"VN\",\r\n            \"IdNumber\": \"1231ASD\",\r\n            \"IdType\": \"passport\",\r\n            \"IdExpiryDate\": \"2030-11-28\",\r\n            \"DependantIndex\": -1,\r\n            \"IdIssuedCountry\": \"EG\"\r\n        }\r\n    ],\r\n    \"ContactInfo\": {\r\n        \"PhoneNumber\": \"0123456789\",\r\n        \"Email\": \"van.nguyen@skyjet.vn\",\r\n        \"CountryTelCode\": \"84\",\r\n        \"Name\": \"Nguyen Thai Van\"\r\n    }\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/hub/flight/book",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"flight",
												"book"
											]
										},
										"description": "# Flight Booking API Documentation\n\n## Overview\n\nThis API enables flight booking confirmation with full itinerary details, passenger information, and payment preparation. It returns PNR details, fare rules, and order status.\n\n---\n\n## API Endpoint\n\n- **URL:** `{{host}}/hub/flight/book`\n    \n- **Method:** `POST`\n    \n- **Content-Type:** `application/json`\n    \n\n---\n\n## Headers\n\n| Key | Value | Description |\n| --- | --- | --- |\n| `Authorization` | `Bearer {token}` | JWT access token (Required) |\n| `Content-Type` | `application/json` | Request/Response format |\n\n---\n\n## Request Body\n\n``` json\n{\n  \"Type\": \"ROUND_TRIP\",\n  \"Adults\": 1,\n  \"Children\": 0,\n  \"Infants\": 0,\n  \"solutions\": [\n    {\n      \"provider\": \"flight.provider2.1A\",\n      \"solutionId\": \"a81ade09f74200b6264a5b1391845a4a442b3e7b081702602581fbc1a6eeb71e+QgHAWyLWSGSeDu7w5Z7YCQ+c61e8dee-1213-40c4-af4f-e4fa267a7f81+++1A|a81ade09f74200b6264a5b1391845a4a442b3e7b081702602581fbc1a6eeb71e+QgHAWyLWSGSeDu7w5Z7YCQ+c61e8dee-1213-40c4-af4f-e4fa267a7f81+++1A\",\n      \"requireEnrichment\": false,\n      \"allowPayLater\": true,\n      \"isNDC\": false,\n      \"fare\": {\n        \"adultFare\": {\n          \"fare\": 9698000,\n          \"tax\": 8690000,\n          \"fee\": 0,\n          \"currency\": \"VND\",\n          \"discountAmount\": 0,\n          \"count\": 1,\n          \"total\": 18388000,\n          \"point\": 0,\n          \"totalPoint\": 0\n        },\n        \"childFare\": {\n          \"fare\": 0,\n          \"tax\": 0,\n          \"fee\": 0,\n          \"currency\": \"USD\",\n          \"discountAmount\": 0,\n          \"count\": 0,\n          \"total\": 0,\n          \"point\": 0,\n          \"totalPoint\": 0\n        },\n        \"infantFare\": {\n          \"fare\": 0,\n          \"tax\": 0,\n          \"fee\": 0,\n          \"currency\": \"USD\",\n          \"discountAmount\": 0,\n          \"count\": 0,\n          \"total\": 0,\n          \"point\": 0,\n          \"totalPoint\": 0\n        },\n        \"totalFare\": 9698000,\n        \"totalTax\": 8690000,\n        \"totalFee\": 0,\n        \"totalPrice\": 18388000,\n        \"totalDiscountAmount\": 0,\n        \"totalPoint\": 0\n      },\n      \"flights\": [\n        {\n          \"sequence\": 1,\n          \"flightDuration\": 940,\n          \"travelDuration\": 1280,\n          \"journeyId\": \"00000000-0000-0000-0000-000000000000\",\n          \"segments\": [\n            {\n              \"segmentId\": \"1\",\n              \"sequence\": 1,\n              \"bookingCode\": \"B\",\n              \"cabinClass\": \"ECONOMY\",\n              \"available\": 9,\n              \"departureCode\": \"HAN\",\n              \"departureName\": \"Hanoi\",\n              \"departureDate\": \"2025-11-07\",\n              \"departureTime\": \"02:45\",\n              \"departureTerminal\": \"2\",\n              \"arrivalCode\": \"PVG\",\n              \"arrivalName\": \"Shanghai\",\n              \"arrivalDate\": \"2025-11-07\",\n              \"arrivalTime\": \"06:45\",\n              \"arrivalTerminal\": \"1\",\n              \"airlines\": \"MU\",\n              \"airlinesName\": \"CHINA EASTERN AIRLINES\",\n              \"equipment\": \"73L\",\n              \"flightNumber\": \"5076\",\n              \"flightTime\": 180,\n              \"stopTime\": 340,\n              \"baggageRules\": {\n                \"adults\": [\n                  {\n                    \"baggageAmount\": \"1PC\",\n                    \"carryOnAmount\": \"1PC\"\n                  }\n                ]\n              },\n              \"miniRules\": {},\n              \"fareBasis\": \"VSE00CSF\"\n            },\n            {\n              \"segmentId\": \"2\",\n              \"sequence\": 2,\n              \"bookingCode\": \"V\",\n              \"cabinClass\": \"ECONOMY\",\n              \"available\": 9,\n              \"departureCode\": \"PVG\",\n              \"departureName\": \"Shanghai\",\n              \"departureDate\": \"2025-11-07\",\n              \"departureTime\": \"12:25\",\n              \"departureTerminal\": \"1\",\n              \"arrivalCode\": \"CDG\",\n              \"arrivalName\": \"Paris\",\n              \"arrivalDate\": \"2025-11-07\",\n              \"arrivalTime\": \"18:05\",\n              \"arrivalTerminal\": \"2E\",\n              \"airlines\": \"MU\",\n              \"airlinesName\": \"CHINA EASTERN AIRLINES\",\n              \"equipment\": \"77W\",\n              \"flightNumber\": \"569\",\n              \"flightTime\": 760,\n              \"stopTime\": 0,\n              \"baggageRules\": {\n                \"adults\": [\n                  {\n                    \"baggageAmount\": \"1PC\",\n                    \"carryOnAmount\": \"1PC\"\n                  }\n                ]\n              },\n              \"miniRules\": {},\n              \"fareBasis\": \"VSE00CSF\"\n            }\n          ]\n        },\n        {\n          \"sequence\": 2,\n          \"flightDuration\": 895,\n          \"travelDuration\": 1420,\n          \"journeyId\": \"00000000-0000-0000-0000-000000000000\",\n          \"segments\": [\n            {\n              \"segmentId\": \"3\",\n              \"sequence\": 1,\n              \"bookingCode\": \"T\",\n              \"cabinClass\": \"ECONOMY\",\n              \"available\": 9,\n              \"departureCode\": \"CDG\",\n              \"departureName\": \"Paris\",\n              \"departureDate\": \"2025-11-29\",\n              \"departureTime\": \"20:05\",\n              \"departureTerminal\": \"2E\",\n              \"arrivalCode\": \"PVG\",\n              \"arrivalName\": \"Shanghai\",\n              \"arrivalDate\": \"2025-11-30\",\n              \"arrivalTime\": \"14:20\",\n              \"arrivalTerminal\": \"1\",\n              \"airlines\": \"MU\",\n              \"airlinesName\": \"CHINA EASTERN AIRLINES\",\n              \"equipment\": \"77W\",\n              \"flightNumber\": \"570\",\n              \"flightTime\": 675,\n              \"stopTime\": 525,\n              \"baggageRules\": {\n                \"adults\": [\n                  {\n                    \"baggageAmount\": \"1PC\",\n                    \"carryOnAmount\": \"1PC\"\n                  }\n                ]\n              },\n              \"miniRules\": {},\n              \"fareBasis\": \"TSE00CSF\"\n            },\n            {\n              \"segmentId\": \"4\",\n              \"sequence\": 2,\n              \"bookingCode\": \"B\",\n              \"cabinClass\": \"ECONOMY\",\n              \"available\": 9,\n              \"departureCode\": \"PVG\",\n              \"departureName\": \"Shanghai\",\n              \"departureDate\": \"2025-11-30\",\n              \"departureTime\": \"23:05\",\n              \"departureTerminal\": \"1\",\n              \"arrivalCode\": \"HAN\",\n              \"arrivalName\": \"Hanoi\",\n              \"arrivalDate\": \"2025-12-01\",\n              \"arrivalTime\": \"01:45\",\n              \"arrivalTerminal\": \"2\",\n              \"airlines\": \"MU\",\n              \"airlinesName\": \"CHINA EASTERN AIRLINES\",\n              \"equipment\": \"73L\",\n              \"flightNumber\": \"5075\",\n              \"flightTime\": 220,\n              \"stopTime\": 0,\n              \"baggageRules\": {\n                \"adults\": [\n                  {\n                    \"baggageAmount\": \"1PC\",\n                    \"carryOnAmount\": \"1PC\"\n                  }\n                ]\n              },\n              \"miniRules\": {},\n              \"fareBasis\": \"TSE00CSF\"\n            }\n          ]\n        }\n      ]\n    }\n  ],\n  \"passengers\": [\n    {\n      \"Index\": 1,\n      \"FirstName\": \"NGUYEN\",\n      \"LastName\": \"THAI VAN\",\n      \"Gender\": \"M\",\n      \"Type\": 1,\n      \"Nationality\": \"VN\",\n      \"IdNumber\": \"1231ASD\",\n      \"IdType\": \"passport\",\n      \"IdExpiryDate\": \"2030-11-28\",\n      \"DependantIndex\": -1,\n      \"IdIssuedCountry\": \"EG\"\n    }\n  ],\n  \"ContactInfo\": {\n    \"PhoneNumber\": \"0123456789\",\n    \"Email\": \"van.nguyen@skyjet.vn\",\n    \"CountryTelCode\": \"84\",\n    \"Name\": \"Nguyen Thai Van\"\n  }\n}\n\n ```\n\n---\n\n## Request Body Description\n\nThe request body is a JSON object containing the following key-value pairs:\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `Type` | String | ✅ Yes | The type of the trip. Example: `\"ROUND_TRIP\"` |\n| `Adults` | Integer | ✅ Yes | Number of adult passengers. |\n| `Children` | Integer | ❌ No | Number of child passengers. Defaults to 0 if not provided. |\n| `Infants` | Integer | ❌ No | Number of infant passengers. Defaults to 0 if not provided. |\n| `solutions` | Array | ✅ Yes | An array containing the selected flight solution. This array _must_ contain exactly one object. See the `solutions` Array Structure. |\n| `ContactInfo` | Object | ✅ Yes | Contact information for the booking. See the `ContactInfo` Object Structure. |\n| `passengers` | Array | ✅ Yes | An array of passenger objects, each containing details for a single passenger. See the `passengers` Array Structure. |\n| `CallbackUrl` | String | ❌ No | (Optional) If provided, the system will use this URL to send booking order information to the client via HTTP callback after booking is processed. |\n\n#### CallbackUrl Usage\n\nIf the client includes the `CallbackUrl` field in the booking request payload, the system will perform an HTTP callback to the specified URL after the booking is completed. The callback payload will contain the order information for the booking. This allows the client to receive booking status and details asynchronously.\n\n---\n\n### `solutions` Array Structure\n\nThe `solutions` array contains a single JSON object that represents the chosen flight solution for booking:\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `provider` | String | ✅ Yes | The ID of the flight provider for this solution. Example: `\"flight.provider1\"` |\n| `solutionId` | String | ✅ Yes | A unique identifier for this particular flight solution. This ID is provided by the flight search API. |\n| `requireEnrichment` | Bool | ✅ Yes | Require enrich information for this flight solution.  <br>If it's `true`, you must call **Enrich API** (_**{{host}}/hub/flight/enrich**_). |\n| `allowPayLater` | Bool | ✅ Yes | Allow to pay later. |\n| `isNDC` | Bool | ✅ Yes | Indicates whether the flight is distributed through an NDC (New Distribution Capability) channel. |\n| `fare` | Object | ✅ Yes | Detailed fare information for this flight solution. See `fare` Object Structure. |\n| `flights` | Array | ✅ Yes | Array of objects detailing the flight legs. See `flights` Array Structure. |\n\n---\n\n### `fare` Object Structure\n\nThis object provides a detailed breakdown of the fare for the flight solution:\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `adultFare` | Object | ✅ Yes | Contains fare breakdown specific to adult passengers. See the `adultFare` Object Structure below. |\n| `childFare` | Object | ❌ No | Contains fare breakdown specific to child passengers. Omitted if there are no child passengers. See the `childFare` Object Structure below. |\n| `infantFare` | Object | ❌ No | Contains fare breakdown specific to infant passengers. Omitted if there are no infant passengers. See the `infantFare` Object Structure below. |\n| `totalFare` | Number | ✅ Yes | The sum of the base fares for all passengers (excluding taxes and fees). |\n| `totalTax` | Number | ✅ Yes | The sum of the taxes for all passengers. |\n| `totalFee` | Number | ✅ Yes | The sum of the fees for all passengers. |\n| `totalPrice` | Number | ✅ Yes | The grand total price including base fare, taxes, and fees. |\n| `totalDiscountAmount` | Number | ✅ Yes | The sum of the discounts for all passengers. |\n| `totalPoint` | Number | ✅ Yes | The sum of the points for all passengers. |\n\n---\n\n#### `adultFare`, `childFare`, `infantFare` Object Structure\n\nThese objects provide the specific fare breakdown for each passenger type:\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `fare` | Number | ✅ Yes | The base fare for the passenger type. |\n| `tax` | Number | ✅ Yes | Taxes applicable to the passenger type. |\n| `fee` | Number | ✅ Yes | Fees applicable to the passenger type. |\n| `currency` | String | ✅ Yes | The currency code for the fare elements (e.g., `\"USD\"`). This is usually `\"USD\"` even when `fareVND`, `taxVND`, and `feeVND` are present. |\n| `discountAmount` | Number | ✅ Yes | The discount for the passenger type. |\n| `count` | Integer | ✅ Yes | The number of passengers of this type (e.g., `2` adults). |\n| `total` | Number | ✅ Yes | The total price for the passenger type (base (fare + taxes + fees) \\* count). |\n| `point` | Integer | ✅ Yes | Points of the voucher. |\n| `totalPoint` | Integer | ✅ Yes | The total points (point \\* count). |\n\n---\n\n### `flights` Array Structure\n\nThis array contains objects representing each leg of the flight itinerary.\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `sequence` | Integer | ✅ Yes | Flight leg sequence. This number indicates the order of the flight leg within the itinerary. The sequence starts at 1 and increments for each subsequent flight leg in the itinerary. |\n| `flightDuration` | Integer | ✅ Yes | Total flight time in minutes for the entire leg. |\n| `travelDuration` | Integer | ✅ Yes | Total travel time in minutes for the entire leg (including layovers). |\n| `journeyId` | Guid | ✅ Yes | The journey object that groups all flight segments of a single trip. |\n| `segments` | Array | ✅ Yes | Array of flight segments. See `segments` Array Structure below. |\n\n---\n\n### `segments` Array Structure\n\nEach object represents a flight segment:\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `segmentId` | String | ✅ Yes | Unique identifier for the segment. |\n| `sequence` | Integer | ✅ Yes | Segment order within the leg. |\n| `bookingCode` | String | ✅ Yes | Fare class code (e.g., \"X\"). This code represents the specific fare class that applies to this flight segment. Contact the airline for decode the real meaning of bookingCode. |\n| `cabinClass` | String | ✅ Yes | Cabin class for the segment (e.g., \"ECONOMY\"). |\n| `available` | Integer | ✅ Yes | Number of seats available in this class. |\n| `departureCode` | String | ✅ Yes | IATA departure airport code (e.g., \"SGN\"). |\n| `departureName` | String | ✅ Yes | Departure airport name (e.g., \"Ho Chi Minh City\"). |\n| `departureDate` | String | ✅ Yes | Departure date (YYYY-MM-DD) (e.g., \"2025-06-20\"). |\n| `departureTime` | String | ✅ Yes | Departure time (HH:mm) (e.g., \"12:50\"). |\n| `departureTerminal` | String | ✅ Yes | Departure terminal (e.g., `\"1\"`). |\n| `arrivalCode` | String | ✅ Yes | IATA arrival airport code (e.g., \"HAN\"). |\n| `arrivalName` | String | ✅ Yes | Arrival airport name (e.g., \"Hanoi\"). |\n| `arrivalDate` | String | ✅ Yes | Arrival date (YYYY-MM-DD) (e.g., \"2025-06-20\"). |\n| `arrivalTime` | String | ✅ Yes | Arrival time (HH:mm) (e.g., \"15:00\"). |\n| `arrivalTerminal` | String | ✅ Yes | Arrival terminal (e.g., `\"1\"`). |\n| `airlines` | String | ✅ Yes | 2-letter airline code (e.g., \"QH\"). |\n| `airlinesName` | String | ✅ Yes | Airline name (e.g., \"BAMBOO AIRWAYS\"). |\n| `equipment` | String | ✅ Yes | Aircraft type (e.g., \"320\"). |\n| `flightNumber` | String | ✅ Yes | Flight number (e.g., \"242\"). |\n| `flightTime` | Integer | ✅ Yes | Flight time in minutes. |\n| `stopTime` | Integer | ✅ Yes | Layover time in minutes (0 for direct flights). |\n| `baggageRules` | Object | ✅ Yes | Baggage rules for the segment. See `baggageRules` Structure below. |\n| `miniRules` | Object | ✅ Yes | Penalty rules for the segment. See `miniRules` Structure below. |\n| `fareBasis` | String | ❌ No | Indicates the fare basis code that defines the fare type and rules applied to the ticket. |\n\n---\n\n### `baggageRules` Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Baggage rules for adults |\n| `children` | Array | Baggage rules for children |\n| `infants` | Array | Baggage rules for infants |\n\n**Baggage Rule Object:**\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `baggageAmount` | String | `\"0PC\"` | Checked baggage allowance (e.g., `\"0PC\"` = 0 pieces) |\n| `baggageWeight` | String | `\"8KG\"` | Checked baggage weight limit (e.g., `\"7KG\"` = 7 kilograms) |\n| `carryOnAmount` | String | `\"1PC\"` | Cabin baggage allowance (e.g., `\"1PC\"` = 1 piece) |\n| `carryOnWeight` | String | `\"7KG\"` | Cabin baggage weight limit (e.g., `\"7KG\"` = 7 kilograms) |\n\n---\n\n### `miniRules` Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Change/refund rules for adults |\n| `children` | Array | Change/refund rules for children |\n| `infants` | Array | Change/refund rules for infants |\n\n**Rule Object:**\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `miniruleText` | String | `\"example rule\"` | The text rule. |\n| `miniruleHtml` | String | `\" example html rule \"` | The html rule. |\n| `penaltyType` | String | `\"REFUND\"` | Fee type (`REFUND`, `REISSUE`). |\n| `allowRefund` | String | `\"NOT_ALLOWED\"` | Indicates if a refund is allowed (`ALLOW`, `NOT_ALLOWED`). |\n| `situation` | String | `\"BEFORE_DEPARTURE\"` | When the penalty applies (`BEFORE_DEPARTURE`, `AFTER_DEPARTURE`). |\n| `noShowTime` | String | `\"BEFORE\"` | No-show timing relative to departure. |\n| `noShowTimeUnit` | String | `\"H\"` | Time unit for the no-show period. |\n| `amount` | Number | `0.0` | Fee amount. |\n| `currency` | String | `\"USD\"` | The currency code. |\n| `percent` | Number | `0.0` | Fee percentage of the base fare. |\n| `baseType` | String | `\"FARE\"` | Fee calculation base (`FARE` = total fare). |\n\n---\n\n### `ContactInfo` Object Structure\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `Name` | String | ✅ Yes | Full name of the contact person. |\n| `PhoneNumber` | String | ✅ Yes | Phone number of the contact person. |\n| `Email` | String | ✅ Yes | Email address of the contact person. |\n| `CountryTryCode` | String | ✅ Yes | The international telephone code of the contact's phone number (e.g., `\"84\"` for Vietnam). |\n\n---\n\n### `passengers` Array Structure\n\nThis array specifies information about each passenger for whom the booking is being made.\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `Index` | Integer | ✅ Yes | A unique number identifier for the passenger, starting from `1`. |\n| `FirstName` | String | ✅ Yes | Passenger's first name. |\n| `LastName` | String | ✅ Yes | Passenger's last name. |\n| `Gender` | String | ✅ Yes | Passenger's gender. Possible values: `\"M\"` (Male), `\"F\"` (Female) |\n| `Type` | Integer | ✅ Yes | Passenger Type. Possible values: `1` (Adult), `2` (Child), `3` (Infant) |\n| `DateOfBirth` | String | ✅ Yes | Passenger's date of birth (YYYY-MM-DD). |\n| `Nationality` | String | ✅ Yes | Passenger's nationality (ISO 3166-1 alpha-2 country code, e.g., `\"VN\"` for Vietnam). |\n| `IdNumber` | String | ✅ Yes | Passenger's ID card or Passport number. |\n| `IdType` | String | ✅ Yes | Type of ID used. Possible values: `\"passport\"`, `\"idcard\"` etc. |\n| `IdExpiryDate` | String | ✅ Yes | Expiry date of the ID (YYYY-MM-DD). |\n| `Ancillaries` | Object | ❌ No | A empty Object of ancillary services selected for this passenger. |\n\n## Sample Response\n\n``` json\n{\n  \"id\": \"74f2c086-fb93-4dd9-8024-10f91573c1ed\",\n  \"readableId\": \"FGVSO6\",\n  \"isInternational\": false,\n  \"orderBaseInfo\": {\n    \"providerCode\": \"flight.provider2.1A\",\n    \"providerReferenceId\": \"9beb90ec-edfcf9e5-9cd68787-90878787-878787\",\n    \"status\": \"TO_BE_PAID\",\n    \"statusIsFinal\": false,\n    \"bookingType\": \"flight\",\n    \"totalAmount\": 18388000,\n    \"totalSalesAmount\": 0,\n    \"totalOriginalAmount\": 18388000,\n    \"totalPriceModifier\": 0,\n    \"totalServiceFee\": 0,\n    \"refundAmount\": 0,\n    \"refundFee\": 0,\n    \"currency\": \"VND\",\n    \"convertionRate\": 1,\n    \"type\": \"ROUND_TRIP\",\n    \"pnr\": \"FGVSO6\",\n    \"airlinePNR\": \"\",\n    \"orderType\": \"O\",\n    \"bookingCode\": \"B\",\n    \"isNeedRebookPNR\": false,\n    \"passengerCount\": 1,\n    \"totalAmountAtHotel\": 0,\n    \"refunded\": false\n  },\n  \"orderFlightInfo\": {\n    \"id\": \"78da141d-d446-4e0e-8f51-52bd0614f10b\",\n    \"orderId\": \"74f2c086-fb93-4dd9-8024-10f91573c1ed\",\n    \"flightJourneys\": [\n      {\n        \"id\": \"541034fe-4bcb-4f31-14a9-08de1cde858d\",\n        \"flightBookingInfoId\": \"78da141d-d446-4e0e-8f51-52bd0614f10b\",\n        \"sequence\": 1,\n        \"arrivalDate\": \"2025-11-07T00:00:00:0000\",\n        \"arrivalTime\": \"18:05\",\n        \"arrivalCode\": \"CDG\",\n        \"arrivalName\": \"Paris\",\n        \"departureDate\": \"2025-11-07T00:00:00:0000\",\n        \"departureTime\": \"02:45\",\n        \"departureCode\": \"HAN\",\n        \"departureName\": \"Hanoi\",\n        \"travelTime\": 1280,\n        \"isNDC\": false,\n        \"isChange\": false,\n        \"pnrNumber\": \"FGVSO6\",\n        \"status\": \"TO_BE_PAID\",\n        \"fareHoldTime\": \"2025-11-07T16:59:00:0000\",\n        \"flightSegments\": [\n          {\n            \"id\": \"83d41cd8-dfae-4104-9b02-1923d2f3b7ec\",\n            \"flightJourneyId\": \"541034fe-4bcb-4f31-14a9-08de1cde858d\",\n            \"sequence\": 1,\n            \"airlinesCode\": \"MU\",\n            \"airlinesName\": \"CHINA EASTERN AIRLINES\",\n            \"arrivalCode\": \"PVG\",\n            \"arrivalName\": \"Shanghai\",\n            \"arrivalDate\": \"2025-11-07T00:00:00:0000\",\n            \"arrivalTime\": \"06:45\",\n            \"departureCode\": \"HAN\",\n            \"departureName\": \"Hanoi\",\n            \"departureDate\": \"2025-11-07T00:00:00:0000\",\n            \"departureTime\": \"02:45\",\n            \"bookingCode\": \"B\",\n            \"cabinClass\": \"ECONOMY\",\n            \"equipment\": \"73L\",\n            \"flightNumber\": \"5076\",\n            \"flightTime\": 180,\n            \"departureTerminal\": \"2\",\n            \"arrivalTerminal\": \"1\",\n            \"codeShare\": false,\n            \"stopTime\": 340,\n            \"hasStop\": true,\n            \"operatingFlightAirlinesName\": \"CHINA EASTERN AIRLINES\",\n            \"operatingFlightNumber\": \"5076\",\n            \"operatingFlightAirlinesCode\": \"MU\",\n            \"baggageRules\": {\n              \"adults\": [\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"carryOnAmount\": \"1PC\"\n                }\n              ],\n              \"children\": [],\n              \"infants\": []\n            },\n            \"miniRules\": {\n              \"adults\": [],\n              \"children\": [],\n              \"infants\": []\n            },\n            \"fareBasis\": \"VSE00CSF\"\n          },\n          {\n            \"id\": \"60f5c9d7-870d-42d6-9e6f-5881b3817289\",\n            \"flightJourneyId\": \"541034fe-4bcb-4f31-14a9-08de1cde858d\",\n            \"sequence\": 2,\n            \"airlinesCode\": \"MU\",\n            \"airlinesName\": \"CHINA EASTERN AIRLINES\",\n            \"arrivalCode\": \"CDG\",\n            \"arrivalName\": \"Paris\",\n            \"arrivalDate\": \"2025-11-07T00:00:00:0000\",\n            \"arrivalTime\": \"18:05\",\n            \"departureCode\": \"PVG\",\n            \"departureName\": \"Shanghai\",\n            \"departureDate\": \"2025-11-07T00:00:00:0000\",\n            \"departureTime\": \"12:25\",\n            \"bookingCode\": \"V\",\n            \"cabinClass\": \"ECONOMY\",\n            \"equipment\": \"77W\",\n            \"flightNumber\": \"569\",\n            \"flightTime\": 760,\n            \"departureTerminal\": \"1\",\n            \"arrivalTerminal\": \"2E\",\n            \"codeShare\": false,\n            \"stopTime\": 0,\n            \"hasStop\": false,\n            \"operatingFlightAirlinesName\": \"CHINA EASTERN AIRLINES\",\n            \"operatingFlightNumber\": \"569\",\n            \"operatingFlightAirlinesCode\": \"MU\",\n            \"baggageRules\": {\n              \"adults\": [\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"carryOnAmount\": \"1PC\"\n                }\n              ],\n              \"children\": [],\n              \"infants\": []\n            },\n            \"miniRules\": {\n              \"adults\": [],\n              \"children\": [],\n              \"infants\": []\n            },\n            \"fareBasis\": \"VSE00CSF\"\n          }\n        ]\n      },\n      {\n        \"id\": \"a1dfa208-96f9-4aee-14aa-08de1cde858d\",\n        \"flightBookingInfoId\": \"78da141d-d446-4e0e-8f51-52bd0614f10b\",\n        \"sequence\": 2,\n        \"arrivalDate\": \"2025-12-01T00:00:00:0000\",\n        \"arrivalTime\": \"01:45\",\n        \"arrivalCode\": \"HAN\",\n        \"arrivalName\": \"Hanoi\",\n        \"departureDate\": \"2025-11-29T00:00:00:0000\",\n        \"departureTime\": \"20:05\",\n        \"departureCode\": \"CDG\",\n        \"departureName\": \"Paris\",\n        \"travelTime\": 1420,\n        \"isNDC\": false,\n        \"isChange\": false,\n        \"pnrNumber\": \"FGVSO6\",\n        \"status\": \"TO_BE_PAID\",\n        \"fareHoldTime\": \"2025-11-07T16:59:00:0000\",\n        \"flightSegments\": [\n          {\n            \"id\": \"cadba6f8-bdf1-4e52-9939-fd9347985ed1\",\n            \"flightJourneyId\": \"a1dfa208-96f9-4aee-14aa-08de1cde858d\",\n            \"sequence\": 1,\n            \"airlinesCode\": \"MU\",\n            \"airlinesName\": \"CHINA EASTERN AIRLINES\",\n            \"arrivalCode\": \"PVG\",\n            \"arrivalName\": \"Shanghai\",\n            \"arrivalDate\": \"2025-11-30T00:00:00:0000\",\n            \"arrivalTime\": \"14:20\",\n            \"departureCode\": \"CDG\",\n            \"departureName\": \"Paris\",\n            \"departureDate\": \"2025-11-29T00:00:00:0000\",\n            \"departureTime\": \"20:05\",\n            \"bookingCode\": \"T\",\n            \"cabinClass\": \"ECONOMY\",\n            \"equipment\": \"77W\",\n            \"flightNumber\": \"570\",\n            \"flightTime\": 675,\n            \"departureTerminal\": \"2E\",\n            \"arrivalTerminal\": \"1\",\n            \"codeShare\": false,\n            \"stopTime\": 525,\n            \"hasStop\": true,\n            \"operatingFlightAirlinesName\": \"CHINA EASTERN AIRLINES\",\n            \"operatingFlightNumber\": \"570\",\n            \"operatingFlightAirlinesCode\": \"MU\",\n            \"baggageRules\": {\n              \"adults\": [\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"carryOnAmount\": \"1PC\"\n                }\n              ],\n              \"children\": [],\n              \"infants\": []\n            },\n            \"miniRules\": {\n              \"adults\": [],\n              \"children\": [],\n              \"infants\": []\n            },\n            \"fareBasis\": \"TSE00CSF\"\n          },\n          {\n            \"id\": \"fc76f1b5-95fb-41f8-b4fa-4ed6d2e0d93f\",\n            \"flightJourneyId\": \"a1dfa208-96f9-4aee-14aa-08de1cde858d\",\n            \"sequence\": 2,\n            \"airlinesCode\": \"MU\",\n            \"airlinesName\": \"CHINA EASTERN AIRLINES\",\n            \"arrivalCode\": \"HAN\",\n            \"arrivalName\": \"Hanoi\",\n            \"arrivalDate\": \"2025-12-01T00:00:00:0000\",\n            \"arrivalTime\": \"01:45\",\n            \"departureCode\": \"PVG\",\n            \"departureName\": \"Shanghai\",\n            \"departureDate\": \"2025-11-30T00:00:00:0000\",\n            \"departureTime\": \"23:05\",\n            \"bookingCode\": \"B\",\n            \"cabinClass\": \"ECONOMY\",\n            \"equipment\": \"73L\",\n            \"flightNumber\": \"5075\",\n            \"flightTime\": 220,\n            \"departureTerminal\": \"1\",\n            \"arrivalTerminal\": \"2\",\n            \"codeShare\": false,\n            \"stopTime\": 0,\n            \"hasStop\": false,\n            \"operatingFlightAirlinesName\": \"CHINA EASTERN AIRLINES\",\n            \"operatingFlightNumber\": \"5075\",\n            \"operatingFlightAirlinesCode\": \"MU\",\n            \"baggageRules\": {\n              \"adults\": [\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"carryOnAmount\": \"1PC\"\n                }\n              ],\n              \"children\": [],\n              \"infants\": []\n            },\n            \"miniRules\": {\n              \"adults\": [],\n              \"children\": [],\n              \"infants\": []\n            },\n            \"fareBasis\": \"TSE00CSF\"\n          }\n        ]\n      }\n    ]\n  },\n  \"orderESimInfos\": [],\n  \"passengers\": [\n    {\n      \"flightBookingId\": \"74f2c086-fb93-4dd9-8024-10f91573c1ed\",\n      \"index\": 1,\n      \"type\": 1,\n      \"dependantIndex\": -1,\n      \"idIssuedCountry\": \"EG\",\n      \"idIssueDate\": \"0001-01-01T00:00:00:0000\",\n      \"idExpiryDate\": \"2030-11-28T00:00:00:0000\",\n      \"frequentFlyerNumbers\": [],\n      \"ticketList\": [],\n      \"ancillaries\": [],\n      \"seats\": [],\n      \"id\": \"3a6458d9-3031-4811-94c7-06c8ea45d282\",\n      \"firstName\": \"NGUYEN\",\n      \"lastName\": \"THAI VAN\",\n      \"gender\": \"M\",\n      \"dateOfBirth\": \"0001-01-01T00:00:00:0000\",\n      \"nationality\": \"VN\",\n      \"idNumber\": \"1231ASD\",\n      \"idType\": \"passport\",\n      \"updatedUtc\": \"2025-11-06T07:01:58:1166\",\n      \"deleted\": false\n    }\n  ],\n  \"contactInfo\": {\n    \"id\": \"03bdbe65-013c-40ea-bf7c-ef01bcaf0f99\",\n    \"name\": \"Nguyen Thai Van\",\n    \"countryTelCode\": \"84\",\n    \"phoneNumber\": \"0123456789\",\n    \"email\": \"van.nguyen@skyjet.vn\",\n    \"flightBookingId\": \"74f2c086-fb93-4dd9-8024-10f91573c1ed\",\n    \"deleted\": false\n  },\n  \"priceInfo\": {\n    \"id\": \"3e79e664-8c9b-428b-924e-5307cc8b0064\",\n    \"orderId\": \"74f2c086-fb93-4dd9-8024-10f91573c1ed\",\n    \"pricingType\": 1,\n    \"couponId\": \"00000000-0000-0000-0000-000000000000\",\n    \"itemType\": 0,\n    \"passengerTotalAmount\": 18388000,\n    \"ancillaryTotalAmount\": 0,\n    \"seatTotalAmount\": 0,\n    \"ticketFeeAmount\": 0,\n    \"totalAmount\": 18388000,\n    \"totalOriginalAmount\": 18388000,\n    \"priceModifier\": 0,\n    \"couponAmount\": 0,\n    \"handlingFee\": 0,\n    \"totalFare\": 9698000,\n    \"convertionRate\": 1,\n    \"totalServiceFee\": 0,\n    \"currency\": \"VND\",\n    \"totalTax\": 0,\n    \"surcharges\": 0,\n    \"amount\": 9698000,\n    \"numberOfRooms\": 1,\n    \"averagePerNightAmount\": 0,\n    \"numberOfNights\": 0,\n    \"priceDetails\": [\n      {\n        \"id\": \"cd37f332-8254-48c3-92d7-9d5ef3bab819\",\n        \"priceInfoId\": \"3e79e664-8c9b-428b-924e-5307cc8b0064\",\n        \"count\": 1,\n        \"type\": 1,\n        \"amount\": 9698000,\n        \"originalAmount\": 9698000,\n        \"priceModifier\": 0,\n        \"serviceFee\": 0,\n        \"tax\": 8690000,\n        \"fee\": 0,\n        \"totalAmount\": 18388000,\n        \"averagePerNightAmount\": 0,\n        \"taxAmount\": 0,\n        \"numberOfNights\": 0,\n        \"surcharges\": 0,\n        \"discount\": 0,\n        \"hotelPricePerNights\": [],\n        \"taxes\": [],\n        \"discounts\": []\n      }\n    ],\n    \"createdBy\": \"van.nguyen@skyjet.vn\",\n    \"createdUtc\": \"2025-11-06T07:01:58:0923\",\n    \"updatedUtc\": \"2025-11-06T07:01:58:0901\",\n    \"refundable\": false,\n    \"hasBreakfast\": false,\n    \"extraBed\": false,\n    \"nonSmoking\": false\n  },\n  \"createdBy\": \"van.nguyen@skyjet.vn\",\n  \"createdUtc\": \"2025-11-06T07:01:58:1033\",\n  \"updatedBy\": \"van.nguyen@skyjet.vn\",\n  \"updatedUtc\": \"2025-11-06T07:02:35:7343\",\n  \"agentPath\": \"NV9999\"\n}\n\n ```\n\n---\n\n## Response Field Description\n\nThe response is a JSON object containing information about the flight booking:\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the booking (UUID). Example: `\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\"` |\n| `readableId` | String | The readable id. |\n| `isInternational` | Bool | Indicates whether the flight is international. |\n| `orderBaseInfo` | Object | Basic information about the order. See `orderBaseInfo` Object Structure. |\n| `orderFlightInfo` | Object | Information about the flights in the order. See `orderFlightInfo` Object Structure. |\n| `passengers` | Array | Array containing passenger information. See `passengers` Array Structure. |\n| `contactInfo` | Object | Contact information for the booking. See `contactInfo` Object Structure. |\n| `priceInfo` | Object | Detailed pricing information. See `priceInfo` Object Structure. |\n| `createdBy` | String | Email address of the user who created the booking. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `createdUtc` | String | Date and time the booking was created (UTC, ISO 8601 format). Example: `\"2025-06-05T08:38:19:4900\"` |\n| `updatedBy` | String | Email address of the user who last updated the booking. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `updatedUtc` | String | Date and time the booking was last updated (UTC, ISO 8601 format). Example: `\"2025-06-05T08:38:21:7477\"` |\n| `agentPath` | String | Path or identifier of the agent. |\n\n---\n\n### `orderBaseInfo` Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `providerCode` | String | ID of the flight provider. Example: `\"flight.provider1\"` |\n| `providerReferenceId` | String | Provider's unique identifier for the booking. Example: `\"917491127052815601\"` |\n| `status` | String | Current status of the booking. Example: `\"TO_BE_PAID\"`. Possible values depend on the system's workflow. |\n| `statusIsFinal` | Boolean | Indicates if the current status is a final state (e.g., `true` if booked successfully). |\n| `bookingType` | String | Type of booking. Example: `\"flight\"` |\n| `totalAmount` | Number | Total amount for the booking. Example: `148.74` |\n| `totalSaleAmount` | Number | Total sale amount for booking. |\n| `totalOriginalAmount` | Number | The originally requested total amount for the booking. This can differ from totalAmount after a price change. Example: `148.74` |\n| `totalPriceModifier` | Number | Amount the total price was modified (e.g., with a coupon). Example: `0` |\n| `totalServiceFee` | Number | Total service fee for booking. |\n| `refundAmount` | Number | Refund amount for booking. |\n| `refundFee` | Number | Refund fee for booking. |\n| `currency` | String | Currency code used for the booking. Example: `\"USD\"` |\n| `convertionRate` | Number | Conversion rate from USD to VND. Example: `26244` |\n| `type` | String | Trip type. Example: `\"ROUND_TRIP\"` |\n| `pnr` | String | Passenger Name Record (PNR) code for the booking. Example: `\"WC2A6H\"` |\n| `airlinePNR` | String | Airline PNR code (if different from `pnr`). Example: `\"\"` (empty string if same as `pnr`) |\n| `orderType` | String | Order type. Example: `\"O\"` (May represent a standard order). |\n| `bookingCode` | String | Fare class code (e.g., \"T\"). Contact the airline for decode the real meaning of bookingCode. Example: `\"T\"` |\n| `isNeedRebookPNR` | Boolean | Indicates if it's need to rebook PNR. Example: `false` |\n| `passengerCount` | Integer | Total number of passengers in the booking. Example: `1` |\n| `totalAmountAtHotel` | Number | Total amount for hotel or any other. Example: `0` |\n| `refunded` | Boolean | Is refunded or not. Example:`false` |\n\n---\n\n### `orderFlightInfo` Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the flight information (UUID). Example: `\"cae6e870-6204-48c7-a008-e6459804e47f\"` |\n| `orderId` | String | ID of the associated order (matches the top-level `id` field). Example: `\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\"` |\n| `flightJourneys` | Array | Array of flight journey objects, detailing each flight leg. See `flightJourneys` Array Structure. |\n\n---\n\n### `flightJourneys` Array Structure\n\nEach object represents a leg of the flight itinerary:\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for this flight journey (UUID). Example: `\"2b2c6be2-7068-4fac-9098-4e6574ed6a66\"` |\n| `flightBookingInfoId` | String | ID of the flight booking information (matches `orderFlightInfo.id`). Example: `\"cae6e870-6204-48c7-a008-e6459804e47f\"` |\n| `sequence` | Integer | Sequence number of the flight journey (1, 2, ...). Starts from 1. Example: `1` |\n| `arrivalDate` | String | Arrival date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `arrivalTime` | String | Arrival time (HH:mm). Example: `\"07:55\"` |\n| `arrivalCode` | String | IATA code of the arrival airport. Example: `\"HAN\"` |\n| `arrivalName` | String | Name of the arrival airport. Example: `\"Hanoi\"` |\n| `departureDate` | String | Departure date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `departureTime` | String | Departure time (HH:mm). Example: `\"05:45\"` |\n| `departureCode` | String | IATA code of the departure airport. Example: `\"SGN\"` |\n| `departureName` | String | Name of the departure airport. Example: `\"Ho Chi Minh City\"` |\n| `travelTime` | Integer | Total travel time in minutes. Example: 130 |\n| `isNDC` | Bool | Indicates whether the flight is distributed through an NDC (New Distribution Capability) channel. |\n| `isChange` | Boolean | Check if flight have change or not. Example: `false` |\n| `pnrNumber` | String | The pnr number. |\n| `status` | String | The status of journey. |\n| `fareHoldTime` | String | The time can hold fare. |\n| `flightSegments` | Array | Array of flight segment objects. See `flightSegments` Array Structure. |\n| `fare` | Object | The detailed pricing and cost information for this journey. See `Journey Fare` Object Structure. |\n\n### Journey Fare Object Structure\n\nThis object provides detailed pricing and cost information for a specific journey. The structure matches the sample fare model from booking/order response.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the fare info (UUID). |\n| `orderId` | String | ID of the order this fare info belongs to. |\n| `couponId` | String | ID of the coupon applied to the booking. |\n| `itemType` | Integer | Type of item being priced (e.g., flight, ancillary, etc.). |\n| `passengerTotalAmount` | Number | Total amount for all passengers in this journey. |\n| `ancillaryTotalAmount` | Number | Total amount for ancillary services in this journey. |\n| `seatTotalAmount` | Number | Total amount for seat reservations in this journey. |\n| `ticketFeeAmount` | Number | Total amount for ticket issuance fees. |\n| `totalAmount` | Number | The final total amount for the journey. |\n| `couponAmount` | Number | Amount reduced due to coupons. |\n| `handlingFee` | Number | Handling fee. |\n| `totalFare` | Number | Total fare excluding tax and fee. |\n| `totalTax` | Number | Total tax. |\n| `amount` | Number | Total amount. |\n| `priceDetails` | Array | Array of ticket price details. Each item includes a `type` field: 1 = Adult, 2 = Children, 3 = Infant. |\n| `createdBy` | String | Creator of this fare info. |\n| `createdUtc` | String | Created datetime. |\n| `updatedUtc` | String | Updated datetime. |\n| `refundable` | Boolean | Indicates if the journey is refundable. |\n\n#### Notes\n\n- The `fare` field is only present in each journey if the booking/order returns journey-level pricing.\n    \n- The structure and fields are similar to the top-level `priceInfo` object, but scoped to the specific journey.\n    \n- If journey-level pricing is not available, the `fare` field will be omitted or null.\n    \n\n#### Example\n\n``` json\n\"flightJourneys\": [\n  {\n    \"id\": \"2b2c6be2-7068-4fac-9098-4e6574ed6a66\",\n    \"sequence\": 1,\n    // ...existing fields...,\n    \"fare\": {\n        \"id\": \"088b8ab3-f09c-4860-b9ee-39ef662d610a\",\n        \"orderId\": \"bf20f9e9-f5f2-4587-9aa4-9bb746fd2e62\",\n        \"flightJourneyId\": \"643d8c99-1656-452d-8442-03d29d186c31\",\n        \"pricingType\": 2,\n        \"couponId\": \"00000000-0000-0000-0000-000000000000\",\n        \"itemType\": 0,\n        \"passengerTotalAmount\": 2128000.0,\n        \"ancillaryTotalAmount\": 0.0,\n        \"seatTotalAmount\": 0.0,\n        \"ticketFeeAmount\": 0.0,\n        \"totalAmount\": 2128000.0,\n        \"totalOriginalAmount\": 2128000.0,\n        \"priceModifier\": 0.0,\n        \"couponAmount\": 0.0,\n        \"handlingFee\": 0.0,\n        \"totalFare\": 1419000.0,\n        \"convertionRate\": 1.0,\n        \"totalTax\": 0.0,\n        \"amount\": 1419000.0,\n        \"priceDetails\": [\n            {\n                \"id\": \"74e9eb8d-7ec1-48a8-9705-62632225cf6d\",\n                \"priceInfoId\": \"088b8ab3-f09c-4860-b9ee-39ef662d610a\",\n                \"count\": 1,\n                \"type\": 1,\n                \"amount\": 1419000.0,\n                \"originalAmount\": 1419000.0,\n                \"priceModifier\": 0.0,\n                \"tax\": 709000.0,\n                \"fee\": 0.0,\n                \"totalAmount\": 2128000.0,\n                \"taxAmount\": 0.0,\n            }\n        ],\n        \"createdBy\": \"694E6C9E-ED3C-43EB-A50F-389ADE398E85\",\n        \"createdUtc\": \"0001-01-01T00:00:00:0000\",\n        \"updatedUtc\": \"2025-07-15T19:43:08:7959\",\n    },\n  }\n]\n\n ```\n\n### `flightSegments` Array Structure\n\nEach object represents a segment within a flight journey:\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the flight segment (UUID). Example: `\"f95a2ce8-baa2-41c2-a9c6-543ecca78e4a\"` |\n| `flightJourneyId` | String | ID of the flight journey this segment belongs to (matches `flightJourneys.id`). Example: `\"2b2c6be2-7068-4fac-9098-4e6574ed6a66\"` |\n| `sequence` | Integer | Segment order within the leg (starting from 1). Example: `1` |\n| `airlinesCode` | String | 2-letter airline code. Example: `\"VU\"` |\n| `airlinesName` | String | Airline name. Example: `\"VIETRAVEL AIRLINES\"` |\n| `arrivalCode` | String | IATA arrival airport code. Example: `\"HAN\"` |\n| `arrivalName` | String | Arrival airport name. Example: `\"Hanoi\"` |\n| `arrivalDate` | String | Arrival date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `arrivalTime` | String | Arrival time (HH:mm). Example: `\"07:55\"` |\n| `departureCode` | String | IATA departure airport code. Example: `\"SGN\"` |\n| `departureName` | String | Departure airport name. Example: `\"Ho Chi Minh City\"` |\n| `departureDate` | String | Departure date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `departureTime` | String | Departure time (HH:mm). Example: `\"05:45\"` |\n| `bookingCode` | String | Fare class code. Example: `\"T\"`. Contact the airline to decode the real meaning of bookingCode. |\n| `cabinClass` | String | Cabin class. Example: `\"ECONOMY\"` |\n| `equipment` | String | Aircraft type. Example: `\"32S\"` |\n| `flightNumber` | String | Flight number. Example: `\"750\"` |\n| `flightTime` | Integer | Flight time in minutes. Example: `130` |\n| `departureTerminal` | String | Departure Terminal. Example: `1` |\n| `arrivalTerminal` | String | Arrival Terminal. Example: `1` |\n| `codeShare` | Boolean | Check if the the flights segments have code share,Example: `false` |\n| `stopTime` | Integer | Layover time in minutes (0 for direct flights). Example: `0` |\n| `hasStop` | Boolean | hasStop check the the flights segments have stop,Example: `false` |\n| `operatingFlightAirlinesName` | String | Name of the operating airline. |\n| `operatingFlightNumber` | String | Flight number operated by the airline. |\n| `operatingFlightAirlinesCode` | String | Airline code. |\n| `baggageRules` | Object | Baggage allowance rules for the segment. See `baggageRules` Structure. |\n| `miniRules` | Object | Rules regarding penalties, refunds, and reissues for the segment. See `miniRules` Structure. |\n\n---\n\n### `baggageRules` Structure\n\nThis object specifies baggage allowances for adults, children, and infants.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Array of baggage rule objects for adults. See `Baggage Rule Object`. |\n| `children` | Array | Array of baggage rule objects for children (if any). |\n| `infants` | Array | Array of baggage rule objects for infants (if any). |\n\n---\n\n#### Baggage Rule Object\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `baggageAmount` | String | `\"0PC\"` | Checked baggage allowance (e.g., `\"0PC\"` = 0 pieces) |\n| `baggageWeight` | String | `\"8KG\"` | Checked baggage weight limit (e.g., `\"7KG\"` = 7 kilograms) |\n| `carryOnAmount` | String | `\"1PC\"` | Cabin baggage allowance (e.g., `\"1PC\"` = 1 piece) |\n| `carryOnWeight` | String | `\"7KG\"` | Cabin baggage weight limit (e.g., `\"7KG\"` = 7 kilograms) |\n\n### `miniRules` Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Array of penalty rule objects for adults. See `Rule Object`. |\n| `children` | Array | Array of penalty rule objects for children (if any). |\n| `infants` | Array | Array of penalty rule objects for infants (if any). |\n\n---\n\n#### Rule Object\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `miniruleText` | String | `\"example rule\"` | The text rule. |\n| `miniruleHtml` | String | `\" example html rule \"` | The html rule. |\n| `penaltyType` | String | `\"REFUND\"` | Fee type (`REFUND`, `REISSUE`). |\n| `allowRefund` | String | `\"NOT_ALLOWED\"` | Indicates if a refund is allowed (`ALLOW`, `NOT_ALLOWED`). |\n| `situation` | String | `\"BEFORE_DEPARTURE\"` | When the penalty applies (`BEFORE_DEPARTURE`, `AFTER_DEPARTURE`). |\n| `noShowTime` | String | `\"BEFORE\"` | No-show timing relative to departure. |\n| `noShowTimeUnit` | String | `\"H\"` | Time unit for the no-show period. |\n| `amount` | Number | `0.0` | Fee amount. |\n| `penaltyPercent` | Number | `0.0` | Fee percentage of the base fare. |\n| `baseType` | String | `\"FARE\"` | Fee calculation base (`FARE` = total fare). |\n\n---\n\n### `ContactInfo` Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for contact (UUID). Example: `\"41b419aa-e9c0-4bc0-95f2-f1b9710dd578\"` |\n| `Name` | String | Full name of the contact person. Example: `\"NGUYEN CONG THANH\"` |\n| `PhoneNumber` | String | Phone number of the contact person. Example: `\"2929292929\"` |\n| `Email` | String | Email address of the contact person. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `CountryTelCode` | String | International telephone code of the contact's phone number. Example: `\"84\"` |\n| `flightBookingId` | String | Flight booking unique identification. Example:\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\" |\n| `deleted` | Boolean | Check if contact info is deleted or not. Example:`false` |\n\n---\n\n### `passengers` Array Structure\n\nThis array specifies information about each passenger for whom the booking is being made.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `flightBookingId` | String | Id of the flight booking unique. Example: `\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\"` |\n| `index` | Integer | A unique number identifier for the passenger, starting from `1`. Example: `\"1\"` |\n| `type` | Integer | Passenger Type. Possible values: `1` (Adult), `2` (Child), `3` (Infant) Example: `\"1\"` |\n| `idIssueDate` | String | Unknow data. Example: `\"0001-01-01T00:00:00:0000\"` |\n| `idExpiryDate` | String | Expiry date of the ID (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2026-08-19T00:00:00:0000\"` |\n| `ticketList` | Object | List of ticket associated. Example:`[]` |\n| `ancillaries` | Object | Object contains ancillary services. Example:`[]` |\n| `seats` | Array | object contains passenger seats. Example:`[]` |\n| `id` | String | unique passenger ID. Example: `\"785c1ff9-4b36-4cf8-9025-85ae5e345d60\"` |\n| `firstName` | String | Passenger's first name. Example: `\"CONG THANH\"` |\n| `lastName` | String | Passenger's last name. Example: `\"NGUYEN\"` |\n| `gender` | String | Passenger's gender. Possible values: `\"M\"` (Male), `\"F\"` (Female). Example: `\"M\"` |\n| `dateOfBirth` | String | Passenger's date of birth (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"1993-08-19T00:00:00:0000\"` |\n| `nationality` | String | Passenger's nationality (ISO 3166-1 alpha-2 country code). Example: `\"VN\"` |\n| `idNumber` | String | Passenger's ID card or Passport number. Example: `\"123456789\"` |\n| `idType` | String | Type of ID used. Possible values: `\"passport\"`.Example: `\"passport\"` |\n| `updatedUtc` | String | update time. Example: `\"2025-06-05T08:38:19:5033\"` |\n| `deleted` | Boolean | check if it deleted or not. Example: `false` |\n\n---\n\n### `priceInfo` Object Structure\n\nThis object provides detailed pricing and cost information.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the price information (UUID). Example: `\"9fab6075-8b22-4e7d-aa1d-2813d6ecc2e9\"` |\n| `orderId` | String | ID of the order this price information belongs to (matches the top-level `id` field). Example: `\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\"` |\n| `pricingType` | Integer | Type of pricing. |\n| `couponId` | String | ID of the coupon applied to the booking. Example: `\"00000000-0000-0000-0000-000000000000\"` (all zeros indicates no coupon) |\n| `itemType` | Integer | Type of item being priced (e.g., might represent a flight, ancillary service, etc.). Example: `0` |\n| `passengerTotalAmount` | Number | Total amount for all passengers. Example: `148.74` |\n| `ancillaryTotalAmount` | Number | Total amount for ancillary services. Example: `0` |\n| `seatTotalAmount` | Number | Total amount for seat reservations. Example: `0` |\n| `ticketFeeAmount` | Number | Total amount for ticket issuance fees. Example: `0` |\n| `totalAmount` | Number | The final total amount for the booking. Example: `148.74` |\n| `couponAmount` | Number | Amount reduced due to coupons. Example: `0` |\n| `handlingFee` | Number | Handling fee. Example: `0` |\n| `totalFare` | Number | Total Fare exclude tax and fee. Example: `92.48` |\n| `convertionRate` | Number | Conversion rate from USD to VND. Example: `26244` |\n| `currency` | String | Currency code for the amounts (e.g., `\"USD\"`). Example: `\"USD\"` |\n| `totalTax` | Number | Total tax. Example: `0` |\n| `surcharges` | Number | More expense if have. |\n| `amount` | Number | Total Amount |\n| `numberOfRooms` | Number | Number of rooms for hotel information |\n| `averagePerNightAmount` | Number | Per night amount. |\n| `numberOfNights` | Number | Number of nights. |\n| `priceDetails` | Object | Object contains ticket price details. |\n| `createdBy` | String | Person create for these price. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `createdUtc` | String | Created Datetime . Example: `\"0001-01-01T00:00:00:0000\"` |\n| `updatedUtc` | String | Update Datetime. Example: `\"2025-06-05T08:38:19:2970\"` |\n| `refundable` | Boolean | Check this conditions or not. |\n| `hasBreakfast` | Boolean | Check this if have breakfast or not. |\n| `extraBed` | Boolean | check if have extra bed or not. |\n| `nonSmoking` | Boolean | check non smoking or not |"
									},
									"response": []
								},
								{
									"name": "3.1 Book Flight With Ancillary",
									"request": {
										"method": "POST",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{access_token}}",
												"type": "text"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\r\n  \"Provider\": \"flight.provider1\",\r\n  \"Type\": \"ROUND_TRIP\",\r\n  \"Adults\": 1,\r\n  \"Children\": 0,\r\n  \"Infants\": 0,\r\n  \"solutions\": [\r\n    {\r\n      \"provider\": \"flight.provider1\",\r\n      \"solutionId\": \"mJ2xOCvtlEeYAse8ZtiXonhabz8nPgKwwp3M+MdWut/BolScaL8cy8qOZ4OWinPe586M73CQwqB3SKMWlngMuBMd3qzpSxSACdkPkNVo49iKqw3eIuvnlkCrdBH3rzozvlQWOxLrXKx9lj0LpojrU9ZElAOjIHcct8OPqo6hs44TZqg8WJ+l4ZSjM6dTCk73Pn5fm+kj2jMioqYC2oEanNHqxSLkVRyPAPb5ceNnrkw6oyUGKd0iVE5I+GwsuqkP6mXbQjFrcODtQELdwf2XqGBAXWnupMTkrjrQ8p5YWER4VIUeR4FVKGWMYVTDA/lPSLAMrEN7rdLoB9MbCUh99YRE3RrtAq5xywel7wMt1qU+UnhJwohZKG0xQW4z5FZmbaoFXOckabzYCWoU6TBFfFKoODCf9qHADTmXvxOUbLd0Oxo1S+PUpWxZkUmKc6HRnc0TwmZRXL3H3WpaRDv6IsHXOl2fsd4+OCLGOym/v+YHQ5xVjnFUE3aIbm+S17K/amBj7j0U7DKCeTsx26rWabTWCoyyvAGMinfJFC2ud2U=\",\r\n      \"fare\": {\r\n        \"adultFare\": {\r\n          \"fare\": 275.91,\r\n          \"tax\": 80.28,\r\n          \"fee\": 0,\r\n          \"currency\": \"USD\",\r\n          \"discountAmount\": 0,\r\n          \"count\": 1,\r\n          \"total\": 356.19\r\n        },\r\n        \"childFare\": {\r\n          \"fare\": 0,\r\n          \"tax\": 0,\r\n          \"fee\": 0,\r\n          \"currency\": \"USD\",\r\n          \"discountAmount\": 0,\r\n          \"count\": 0,\r\n          \"total\": 0\r\n        },\r\n        \"infantFare\": {\r\n          \"fare\": 0,\r\n          \"tax\": 0,\r\n          \"fee\": 0,\r\n          \"currency\": \"USD\",\r\n          \"discountAmount\": 0,\r\n          \"count\": 0,\r\n          \"total\": 0\r\n        },\r\n        \"totalFare\": 275.91,\r\n        \"totalTax\": 80.28,\r\n        \"totalFee\": 0,\r\n        \"totalPrice\": 356.19,\r\n        \"totalDiscountAmount\": 0\r\n      },\r\n      \"flights\": [\r\n        {\r\n          \"sequence\": 1,\r\n          \"flightDuration\": 350,\r\n          \"travelDuration\": 545,\r\n          \"lastTicketTime\": \"2025-07-12T14:59:00:0000\",\r\n          \"segments\": [\r\n            {\r\n              \"segmentId\": \"2742931979a1c23d7b742f1a443fdd59\",\r\n              \"sequence\": 1,\r\n              \"bookingCode\": \"N\",\r\n              \"cabinClass\": \"ECONOMY\",\r\n              \"available\": 1,\r\n              \"departureCode\": \"ICN\",\r\n              \"departureName\": \"Seoul\",\r\n              \"departureDate\": \"2025-07-15\",\r\n              \"departureTime\": \"10:05\",\r\n              \"departureTerminal\": \"1\",\r\n              \"arrivalCode\": \"HAN\",\r\n              \"arrivalName\": \"Hanoi\",\r\n              \"arrivalDate\": \"2025-07-15\",\r\n              \"arrivalTime\": \"12:30\",\r\n              \"arrivalTerminal\": \"2\",\r\n              \"airlines\": \"VN\",\r\n              \"airlinesName\": \"VIETNAM AIRLINES\",\r\n              \"equipment\": \"787\",\r\n              \"flightNumber\": \"417\",\r\n              \"flightTime\": 265,\r\n              \"stopTime\": 195,\r\n              \"baggageRules\": {\r\n                \"adults\": [\r\n                  {\r\n                    \"baggageAmount\": \"1PC\",\r\n                    \"carryOnAmount\": \"1PC\",\r\n                    \"carryOnWeight\": \"10KG\"\r\n                  }\r\n                ],\r\n                \"children\": [],\r\n                \"infants\": []\r\n              },\r\n              \"miniRules\": {\r\n                \"adults\": [\r\n                  {\r\n                    \"penaltyType\": \"REISSUE\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"BEFORE_DEPARTURE\",\r\n                    \"amount\": 70,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"NOSHOW_REISSUE\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"BEFORE_DEPARTURE\",\r\n                    \"amount\": 70,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"REISSUE\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"AFTER_DEPARTURE\",\r\n                    \"amount\": 70,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"NOSHOW_REISSUE\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"AFTER_DEPARTURE\",\r\n                    \"amount\": 70,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"REFUND\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"BEFORE_DEPARTURE\",\r\n                    \"amount\": 92,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"NOSHOW_REFUND\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"BEFORE_DEPARTURE\",\r\n                    \"amount\": 92,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"REFUND\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"AFTER_DEPARTURE\",\r\n                    \"amount\": 92,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"NOSHOW_REFUND\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"AFTER_DEPARTURE\",\r\n                    \"amount\": 92,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  }\r\n                ],\r\n                \"children\": [],\r\n                \"infants\": []\r\n              }\r\n            },\r\n            {\r\n              \"segmentId\": \"ca25844e9dcd880547f010bb3ac90bcb\",\r\n              \"sequence\": 2,\r\n              \"bookingCode\": \"N\",\r\n              \"cabinClass\": \"ECONOMY\",\r\n              \"available\": 1,\r\n              \"departureCode\": \"HAN\",\r\n              \"departureName\": \"Hanoi\",\r\n              \"departureDate\": \"2025-07-15\",\r\n              \"departureTime\": \"15:45\",\r\n              \"departureTerminal\": \"1\",\r\n              \"arrivalCode\": \"DAD\",\r\n              \"arrivalName\": \"Da Nang\",\r\n              \"arrivalDate\": \"2025-07-15\",\r\n              \"arrivalTime\": \"17:10\",\r\n              \"arrivalTerminal\": \"1\",\r\n              \"airlines\": \"VN\",\r\n              \"airlinesName\": \"VIETNAM AIRLINES\",\r\n              \"equipment\": \"320\",\r\n              \"flightNumber\": \"177\",\r\n              \"flightTime\": 85,\r\n              \"stopTime\": 0,\r\n              \"baggageRules\": {\r\n                \"adults\": [\r\n                  {\r\n                    \"baggageAmount\": \"1PC\",\r\n                    \"carryOnAmount\": \"1PC\",\r\n                    \"carryOnWeight\": \"10KG\"\r\n                  }\r\n                ],\r\n                \"children\": [],\r\n                \"infants\": []\r\n              },\r\n              \"miniRules\": {\r\n                \"adults\": [\r\n                  {\r\n                    \"penaltyType\": \"REISSUE\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"BEFORE_DEPARTURE\",\r\n                    \"amount\": 70,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"NOSHOW_REISSUE\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"BEFORE_DEPARTURE\",\r\n                    \"amount\": 70,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"REISSUE\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"AFTER_DEPARTURE\",\r\n                    \"amount\": 70,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"NOSHOW_REISSUE\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"AFTER_DEPARTURE\",\r\n                    \"amount\": 70,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"REFUND\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"BEFORE_DEPARTURE\",\r\n                    \"amount\": 92,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"NOSHOW_REFUND\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"BEFORE_DEPARTURE\",\r\n                    \"amount\": 92,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"REFUND\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"AFTER_DEPARTURE\",\r\n                    \"amount\": 92,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"NOSHOW_REFUND\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"AFTER_DEPARTURE\",\r\n                    \"amount\": 92,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  }\r\n                ],\r\n                \"children\": [],\r\n                \"infants\": []\r\n              }\r\n            }\r\n          ]\r\n        },\r\n        {\r\n          \"sequence\": 2,\r\n          \"flightDuration\": 330,\r\n          \"travelDuration\": 530,\r\n          \"lastTicketTime\": \"2025-07-12T14:59:00:0000\",\r\n          \"segments\": [\r\n            {\r\n              \"segmentId\": \"23c3ed1df92b7a91d8683c4bd9e9d48a\",\r\n              \"sequence\": 1,\r\n              \"bookingCode\": \"R\",\r\n              \"cabinClass\": \"ECONOMY\",\r\n              \"available\": 1,\r\n              \"departureCode\": \"DAD\",\r\n              \"departureName\": \"Da Nang\",\r\n              \"departureDate\": \"2025-07-17\",\r\n              \"departureTime\": \"19:00\",\r\n              \"departureTerminal\": \"1\",\r\n              \"arrivalCode\": \"HAN\",\r\n              \"arrivalName\": \"Hanoi\",\r\n              \"arrivalDate\": \"2025-07-17\",\r\n              \"arrivalTime\": \"20:25\",\r\n              \"arrivalTerminal\": \"1\",\r\n              \"airlines\": \"VN\",\r\n              \"airlinesName\": \"VIETNAM AIRLINES\",\r\n              \"equipment\": \"320\",\r\n              \"flightNumber\": \"188\",\r\n              \"flightTime\": 85,\r\n              \"stopTime\": 200,\r\n              \"baggageRules\": {\r\n                \"adults\": [\r\n                  {\r\n                    \"baggageAmount\": \"1PC\",\r\n                    \"baggageWeight\": \"23KG\",\r\n                    \"carryOnAmount\": \"1PC\",\r\n                    \"carryOnWeight\": \"10KG\"\r\n                  }\r\n                ],\r\n                \"children\": [],\r\n                \"infants\": []\r\n              },\r\n              \"miniRules\": {\r\n                \"adults\": [\r\n                  {\r\n                    \"penaltyType\": \"REISSUE\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"BEFORE_DEPARTURE\",\r\n                    \"amount\": 70,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"NOSHOW_REISSUE\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"BEFORE_DEPARTURE\",\r\n                    \"amount\": 70,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"REISSUE\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"AFTER_DEPARTURE\",\r\n                    \"amount\": 70,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"NOSHOW_REISSUE\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"AFTER_DEPARTURE\",\r\n                    \"amount\": 70,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"REFUND\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"BEFORE_DEPARTURE\",\r\n                    \"amount\": 92,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"NOSHOW_REFUND\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"BEFORE_DEPARTURE\",\r\n                    \"amount\": 92,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"REFUND\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"AFTER_DEPARTURE\",\r\n                    \"amount\": 92,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"NOSHOW_REFUND\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"AFTER_DEPARTURE\",\r\n                    \"amount\": 92,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  }\r\n                ],\r\n                \"children\": [],\r\n                \"infants\": []\r\n              }\r\n            },\r\n            {\r\n              \"segmentId\": \"23018569a54f95f10ee10a49823197b6\",\r\n              \"sequence\": 2,\r\n              \"bookingCode\": \"R\",\r\n              \"cabinClass\": \"ECONOMY\",\r\n              \"available\": 1,\r\n              \"departureCode\": \"HAN\",\r\n              \"departureName\": \"Hanoi\",\r\n              \"departureDate\": \"2025-07-17\",\r\n              \"departureTime\": \"23:45\",\r\n              \"departureTerminal\": \"2\",\r\n              \"arrivalCode\": \"ICN\",\r\n              \"arrivalName\": \"Seoul\",\r\n              \"arrivalDate\": \"2025-07-18\",\r\n              \"arrivalTime\": \"05:50\",\r\n              \"arrivalTerminal\": \"1\",\r\n              \"airlines\": \"VN\",\r\n              \"airlinesName\": \"VIETNAM AIRLINES\",\r\n              \"equipment\": \"787\",\r\n              \"flightNumber\": \"416\",\r\n              \"flightTime\": 245,\r\n              \"stopTime\": 0,\r\n              \"baggageRules\": {\r\n                \"adults\": [\r\n                  {\r\n                    \"baggageAmount\": \"1PC\",\r\n                    \"baggageWeight\": \"23KG\",\r\n                    \"carryOnAmount\": \"1PC\",\r\n                    \"carryOnWeight\": \"10KG\"\r\n                  }\r\n                ],\r\n                \"children\": [],\r\n                \"infants\": []\r\n              },\r\n              \"miniRules\": {\r\n                \"adults\": [\r\n                  {\r\n                    \"penaltyType\": \"REISSUE\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"BEFORE_DEPARTURE\",\r\n                    \"amount\": 70,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"NOSHOW_REISSUE\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"BEFORE_DEPARTURE\",\r\n                    \"amount\": 70,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"REISSUE\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"AFTER_DEPARTURE\",\r\n                    \"amount\": 70,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"NOSHOW_REISSUE\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"AFTER_DEPARTURE\",\r\n                    \"amount\": 70,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"REFUND\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"BEFORE_DEPARTURE\",\r\n                    \"amount\": 92,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"NOSHOW_REFUND\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"BEFORE_DEPARTURE\",\r\n                    \"amount\": 92,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"REFUND\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"AFTER_DEPARTURE\",\r\n                    \"amount\": 92,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  },\r\n                  {\r\n                    \"penaltyType\": \"NOSHOW_REFUND\",\r\n                    \"allowRefund\": \"ALLOW\",\r\n                    \"situation\": \"AFTER_DEPARTURE\",\r\n                    \"amount\": 92,\r\n                    \"currency\": \"USD\",\r\n                    \"percent\": 0,\r\n                    \"baseType\": \"FARE\"\r\n                  }\r\n                ],\r\n                \"children\": [],\r\n                \"infants\": []\r\n              }\r\n            }\r\n          ]\r\n        }\r\n      ]\r\n    }\r\n  ],\r\n  \"ContactInfo\": {\r\n    \"Name\": \"Nguyen Cong Thanh\",\r\n    \"PhoneNumber\": \"303040423\",\r\n    \"Email\": \"thanh.nguyen1@skyjet.vn\",\r\n    \"CountryTelCode\": \"84\"\r\n  },\r\n  \"passengers\": [\r\n    {\r\n      \"Index\": 1,\r\n      \"FirstName\": \"THANH CONG\",\r\n      \"LastName\": \"NGUYEN\",\r\n      \"Gender\": \"M\",\r\n      \"Type\": 1,\r\n      \"DateOfBirth\": \"2000-06-08\",\r\n      \"Nationality\": \"VN\",\r\n      \"IdNumber\": \"12345\",\r\n      \"IdType\": \"passport\",\r\n      \"IdExpiryDate\": \"2028-08-16\",\r\n      \"Ancillaries\": {\r\n        \"baggages\": [\r\n          {\r\n            \"segments\": [\r\n              {\r\n                \"segmentId\": \"2742931979a1c23d7b742f1a443fdd59\",\r\n                \"sequence\": 1,\r\n                \"bookingCode\": \"N\",\r\n                \"cabinClass\": \"ECONOMY\",\r\n                \"available\": 9,\r\n                \"departureCode\": \"ICN\",\r\n                \"departureName\": \"Seoul\",\r\n                \"departureDate\": \"2025-07-15\",\r\n                \"departureTime\": \"10:05\",\r\n                \"departureTerminal\": \"1\",\r\n                \"arrivalCode\": \"HAN\",\r\n                \"arrivalName\": \"Hanoi\",\r\n                \"arrivalDate\": \"2025-07-15\",\r\n                \"arrivalTime\": \"12:30\",\r\n                \"arrivalTerminal\": \"2\",\r\n                \"airlines\": \"VN\",\r\n                \"airlinesName\": \"VIETNAM AIRLINES\",\r\n                \"equipment\": \"787\",\r\n                \"flightNumber\": \"417\",\r\n                \"flightTime\": 265,\r\n                \"stopTime\": 195,\r\n                \"baggageRules\": {\r\n                  \"adults\": [\r\n                    {\r\n                      \"baggageAmount\": \"1PC\",\r\n                      \"carryOnAmount\": \"1PC\",\r\n                      \"carryOnWeight\": \"10KG\"\r\n                    }\r\n                  ],\r\n                  \"children\": [],\r\n                  \"infants\": []\r\n                },\r\n                \"miniRules\": {\r\n                  \"adults\": [\r\n                    {\r\n                      \"penaltyType\": \"REISSUE\",\r\n                      \"allowRefund\": \"ALLOW\",\r\n                      \"situation\": \"BEFORE_DEPARTURE\",\r\n                      \"amount\": 52,\r\n                      \"currency\": \"USD\",\r\n                      \"percent\": 0,\r\n                      \"baseType\": \"FARE\"\r\n                    },\r\n                    {\r\n                      \"penaltyType\": \"REFUND\",\r\n                      \"allowRefund\": \"ALLOW\",\r\n                      \"situation\": \"BEFORE_DEPARTURE\",\r\n                      \"amount\": 74,\r\n                      \"currency\": \"USD\",\r\n                      \"percent\": 0,\r\n                      \"baseType\": \"FARE\"\r\n                    }\r\n                  ],\r\n                  \"children\": [],\r\n                  \"infants\": []\r\n                }\r\n              },\r\n              {\r\n                \"segmentId\": \"ca25844e9dcd880547f010bb3ac90bcb\",\r\n                \"sequence\": 2,\r\n                \"bookingCode\": \"N\",\r\n                \"cabinClass\": \"ECONOMY\",\r\n                \"available\": 9,\r\n                \"departureCode\": \"HAN\",\r\n                \"departureName\": \"Hanoi\",\r\n                \"departureDate\": \"2025-07-15\",\r\n                \"departureTime\": \"15:45\",\r\n                \"departureTerminal\": \"1\",\r\n                \"arrivalCode\": \"DAD\",\r\n                \"arrivalName\": \"Da Nang\",\r\n                \"arrivalDate\": \"2025-07-15\",\r\n                \"arrivalTime\": \"17:10\",\r\n                \"arrivalTerminal\": \"1\",\r\n                \"airlines\": \"VN\",\r\n                \"airlinesName\": \"VIETNAM AIRLINES\",\r\n                \"equipment\": \"320\",\r\n                \"flightNumber\": \"177\",\r\n                \"flightTime\": 85,\r\n                \"stopTime\": 0,\r\n                \"baggageRules\": {\r\n                  \"adults\": [\r\n                    {\r\n                      \"baggageAmount\": \"1PC\",\r\n                      \"carryOnAmount\": \"1PC\",\r\n                      \"carryOnWeight\": \"10KG\"\r\n                    }\r\n                  ],\r\n                  \"children\": [],\r\n                  \"infants\": []\r\n                },\r\n                \"miniRules\": {\r\n                  \"adults\": [\r\n                    {\r\n                      \"penaltyType\": \"REISSUE\",\r\n                      \"allowRefund\": \"ALLOW\",\r\n                      \"situation\": \"BEFORE_DEPARTURE\",\r\n                      \"amount\": 52,\r\n                      \"currency\": \"USD\",\r\n                      \"percent\": 0,\r\n                      \"baseType\": \"FARE\"\r\n                    },\r\n                    {\r\n                      \"penaltyType\": \"REFUND\",\r\n                      \"allowRefund\": \"ALLOW\",\r\n                      \"situation\": \"BEFORE_DEPARTURE\",\r\n                      \"amount\": 74,\r\n                      \"currency\": \"USD\",\r\n                      \"percent\": 0,\r\n                      \"baseType\": \"FARE\"\r\n                    }\r\n                  ],\r\n                  \"children\": [],\r\n                  \"infants\": []\r\n                }\r\n              }\r\n            ],\r\n            \"ancillaryId\": \"94005ef6a0340956ff684fa1d96e2716\",\r\n            \"type\": 1,\r\n            \"limit\": 1,\r\n            \"weight\": \"23KG\",\r\n            \"price\": 113,\r\n            \"description\": \"1PC X 23KG\"\r\n          }\r\n        ]\r\n      }\r\n    }\r\n  ]\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/hub/flight/book",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"flight",
												"book"
											]
										},
										"description": "# Flight Booking with Ancillary API Documentation\n\n## Overview\n\nThis API enables flight booking confirmation with full itinerary details, passenger information, ancillary services (such as baggage), and payment preparation. It returns PNR details, fare rules, ancillary confirmations, and order status.\n\n**Key Features for Ancillary Booking:**\n\n- Support for baggage, meal, and seat selection add-ons\n    \n- Separate pricing breakdown for base fare and ancillary services\n    \n- Individual ancillary tracking per passenger and flight segment\n    \n- Comprehensive cost calculation including ancillary fees\n    \n\n---\n\n## API Endpoint\n\n- **URL:** `{{host}}/hub/flight/book`\n    \n- **Method:** `POST`\n    \n- **Content-Type:** `application/json`\n    \n\n---\n\n## Headers\n\n| Key | Value | Description |\n| --- | --- | --- |\n| `Authorization` | `Bearer {token}` | JWT access token (Required) |\n| `Content-Type` | `application/json` | Request/Response format |\n\n---\n\n## Request Body\n\n``` json\n{\n  \"Provider\": \"flight.provider1\",\n  \"Type\": \"ROUND_TRIP\",\n  \"Adults\": 1,\n  \"Children\": 0,\n  \"Infants\": 0,\n  \"solutions\": [\n    {\n      \"provider\": \"flight.provider1\",\n      \"solutionId\": \"qyO6CweWiVSe6sEZxFIrRj/69/dN2771QBVYlerCWZM8gCB1DjvSwhfwCARyxXvfoaWeomdjakqMrGTagWBKFdv6SGqn5SQP4o1/6I5cd4AK/Jrv8SwcfN1xdQeUPX9KPhaZHDryDCctZe44ZU2qdy4pwBi5vUtOgF/HVHewdN6w75dU1eRPvSFvHpx7yJvIA6J/AyAy5Np9/NlBsIieNEKKevNwg6fFmLsvE54FAVv5difWWcTBcKx+VyDBxfRsCZJb3eKwqzr0MTM47rLjpZ3J3FKOaD2uJGckrHPhzTlIC3Un3r6vhViWJbijqPRv0o9uAZ3Il4WVSokNjyRmqYhHorh52kX7AXpvfcEu7+zIgmvElRxCaXGL8k5+rLnYE6Vn94KtI0K1fatokqKOQA==\",\n      \"fare\": {\n        \"adultFare\": {\n          \"fare\": 245.95,\n          \"tax\": 62.48,\n          \"fee\": 0,\n          \"currency\": \"USD\",\n          \"discountAmount\": 0,\n          \"count\": 1,\n          \"total\": 308.43,\n          \"point\": 0,\n          \"totalPoint\": 0\n        },\n        \"childFare\": {\n          \"fare\": 0,\n          \"tax\": 0,\n          \"fee\": 0,\n          \"currency\": \"USD\",\n          \"discountAmount\": 0,\n          \"count\": 0,\n          \"total\": 0,\n          \"point\": 0,\n          \"totalPoint\": 0\n        },\n        \"infantFare\": {\n          \"fare\": 0,\n          \"tax\": 0,\n          \"fee\": 0,\n          \"currency\": \"USD\",\n          \"discountAmount\": 0,\n          \"count\": 0,\n          \"total\": 0,\n          \"point\": 0,\n          \"totalPoint\": 0\n        },\n        \"totalFare\": 245.95,\n        \"totalTax\": 62.48,\n        \"totalFee\": 0,\n        \"totalPrice\": 308.43,\n        \"totalDiscountAmount\": 0,\n        \"totalPoint\": 0\n      },\n      \"flights\": [\n        {\n          \"sequence\": 1,\n          \"flightDuration\": 130,\n          \"travelDuration\": 130,\n          \"lastTicketTime\": \"2025-11-07T18:29:00:0000\",\n          \"journeyId\": \"00000000-0000-0000-0000-000000000000\",\n          \"segments\": [\n            {\n              \"segmentId\": \"bc2082bdcaf8d11b769e4b2b25f597fc\",\n              \"sequence\": 1,\n              \"bookingCode\": \"Q\",\n              \"cabinClass\": \"ECONOMY\",\n              \"available\": 1,\n              \"departureCode\": \"HAN\",\n              \"departureName\": \"Hanoi\",\n              \"departureDate\": \"2025-11-07\",\n              \"departureTime\": \"23:00\",\n              \"departureTerminal\": \"1\",\n              \"arrivalCode\": \"SGN\",\n              \"arrivalName\": \"Ho Chi Minh City\",\n              \"arrivalDate\": \"2025-11-08\",\n              \"arrivalTime\": \"01:10\",\n              \"arrivalTerminal\": \"3\",\n              \"airlines\": \"VN\",\n              \"airlinesName\": \"VIETNAM AIRLINES\",\n              \"equipment\": \"321\",\n              \"flightNumber\": \"6025\",\n              \"flightTime\": 130,\n              \"stopTime\": 0,\n              \"baggageRules\": {\n                \"adults\": [\n                  {\n                    \"baggageAmount\": \"1PC\",\n                    \"carryOnAmount\": \"1PC\",\n                    \"carryOnWeight\": \"10KG\"\n                  }\n                ],\n                \"children\": [],\n                \"infants\": []\n              },\n              \"miniRules\": {\n                \"adults\": [\n                  {\n                    \"penaltyType\": \"REISSUE\",\n                    \"allowRefund\": \"ALLOW\",\n                    \"situation\": \"BEFORE_DEPARTURE\",\n                    \"amount\": 48,\n                    \"currency\": \"USD\",\n                    \"percent\": 0,\n                    \"baseType\": \"FARE\"\n                  },\n                  {\n                    \"penaltyType\": \"NOSHOW_REISSUE\",\n                    \"allowRefund\": \"ALLOW\",\n                    \"situation\": \"BEFORE_DEPARTURE\",\n                    \"amount\": 48,\n                    \"currency\": \"USD\",\n                    \"percent\": 0,\n                    \"baseType\": \"FARE\"\n                  },\n                  {\n                    \"penaltyType\": \"REISSUE\",\n                    \"allowRefund\": \"NOT_ALLOWED\",\n                    \"situation\": \"AFTER_DEPARTURE\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0,\n                    \"baseType\": \"FARE\"\n                  },\n                  {\n                    \"penaltyType\": \"NOSHOW_REISSUE\",\n                    \"allowRefund\": \"NOT_ALLOWED\",\n                    \"situation\": \"AFTER_DEPARTURE\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0,\n                    \"baseType\": \"FARE\"\n                  },\n                  {\n                    \"penaltyType\": \"REFUND\",\n                    \"allowRefund\": \"ALLOW\",\n                    \"situation\": \"BEFORE_DEPARTURE\",\n                    \"amount\": 48,\n                    \"currency\": \"USD\",\n                    \"percent\": 0,\n                    \"baseType\": \"FARE\"\n                  },\n                  {\n                    \"penaltyType\": \"NOSHOW_REFUND\",\n                    \"allowRefund\": \"ALLOW\",\n                    \"situation\": \"BEFORE_DEPARTURE\",\n                    \"amount\": 48,\n                    \"currency\": \"USD\",\n                    \"percent\": 0,\n                    \"baseType\": \"FARE\"\n                  },\n                  {\n                    \"penaltyType\": \"REFUND\",\n                    \"allowRefund\": \"NOT_ALLOWED\",\n                    \"situation\": \"AFTER_DEPARTURE\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0,\n                    \"baseType\": \"FARE\"\n                  },\n                  {\n                    \"penaltyType\": \"NOSHOW_REFUND\",\n                    \"allowRefund\": \"NOT_ALLOWED\",\n                    \"situation\": \"AFTER_DEPARTURE\",\n                    \"amount\": 0,\n                    \"currency\": \"USD\",\n                    \"percent\": 0,\n                    \"baseType\": \"FARE\"\n                  }\n                ],\n                \"children\": [],\n                \"infants\": []\n              }\n            }\n          ]\n        },\n        {\n          \"sequence\": 2,\n          \"flightDuration\": 125,\n          \"travelDuration\": 125,\n          \"lastTicketTime\": \"2025-11-07T18:29:00:0000\",\n          \"journeyId\": \"00000000-0000-0000-0000-000000000000\",\n          \"segments\": [\n            {\n              \"segmentId\": \"608b7330e71a91a371a3a9fba372c1a0\",\n              \"sequence\": 1,\n              \"bookingCode\": \"E\",\n              \"cabinClass\": \"ECONOMY\",\n              \"available\": 1,\n              \"departureCode\": \"SGN\",\n              \"departureName\": \"Ho Chi Minh City\",\n              \"departureDate\": \"2025-11-22\",\n              \"departureTime\": \"20:30\",\n              \"departureTerminal\": \"3\",\n              \"arrivalCode\": \"HAN\",\n              \"arrivalName\": \"Hanoi\",\n              \"arrivalDate\": \"2025-11-22\",\n              \"arrivalTime\": \"22:35\",\n              \"arrivalTerminal\": \"1\",\n              \"airlines\": \"VN\",\n              \"airlinesName\": \"VIETNAM AIRLINES\",\n              \"equipment\": \"350\",\n              \"flightNumber\": \"256\",\n              \"flightTime\": 125,\n              \"stopTime\": 0,\n              \"baggageRules\": {\n                \"adults\": [\n                  {\n                    \"baggageAmount\": \"1PC\",\n                    \"carryOnAmount\": \"1PC\",\n                    \"carryOnWeight\": \"10KG\"\n                  }\n                ],\n                \"children\": [],\n                \"infants\": []\n              },\n              \"miniRules\": {\n                \"adults\": [\n                  {\n                    \"penaltyType\": \"REISSUE\",\n                    \"allowRefund\": \"ALLOW\",\n                    \"situation\": \"BEFORE_DEPARTURE\",\n                    \"amount\": 48,\n                    \"currency\": \"USD\",\n                    \"percent\": 0,\n                    \"baseType\": \"FARE\"\n                  },\n                  {\n                    \"penaltyType\": \"NOSHOW_REISSUE\",\n                    \"allowRefund\": \"ALLOW\",\n                    \"situation\": \"BEFORE_DEPARTURE\",\n                    \"amount\": 48,\n                    \"currency\": \"USD\",\n                    \"percent\": 0,\n                    \"baseType\": \"FARE\"\n                  },\n                  {\n                    \"penaltyType\": \"REISSUE\",\n                    \"allowRefund\": \"ALLOW\",\n                    \"situation\": \"AFTER_DEPARTURE\",\n                    \"amount\": 48,\n                    \"currency\": \"USD\",\n                    \"percent\": 0,\n                    \"baseType\": \"FARE\"\n                  },\n                  {\n                    \"penaltyType\": \"NOSHOW_REISSUE\",\n                    \"allowRefund\": \"ALLOW\",\n                    \"situation\": \"AFTER_DEPARTURE\",\n                    \"amount\": 48,\n                    \"currency\": \"USD\",\n                    \"percent\": 0,\n                    \"baseType\": \"FARE\"\n                  },\n                  {\n                    \"penaltyType\": \"REFUND\",\n                    \"allowRefund\": \"ALLOW\",\n                    \"situation\": \"BEFORE_DEPARTURE\",\n                    \"amount\": 48,\n                    \"currency\": \"USD\",\n                    \"percent\": 0,\n                    \"baseType\": \"FARE\"\n                  },\n                  {\n                    \"penaltyType\": \"NOSHOW_REFUND\",\n                    \"allowRefund\": \"ALLOW\",\n                    \"situation\": \"BEFORE_DEPARTURE\",\n                    \"amount\": 48,\n                    \"currency\": \"USD\",\n                    \"percent\": 0,\n                    \"baseType\": \"FARE\"\n                  },\n                  {\n                    \"penaltyType\": \"REFUND\",\n                    \"allowRefund\": \"ALLOW\",\n                    \"situation\": \"AFTER_DEPARTURE\",\n                    \"amount\": 48,\n                    \"currency\": \"USD\",\n                    \"percent\": 0,\n                    \"baseType\": \"FARE\"\n                  },\n                  {\n                    \"penaltyType\": \"NOSHOW_REFUND\",\n                    \"allowRefund\": \"ALLOW\",\n                    \"situation\": \"AFTER_DEPARTURE\",\n                    \"amount\": 48,\n                    \"currency\": \"USD\",\n                    \"percent\": 0,\n                    \"baseType\": \"FARE\"\n                  }\n                ],\n                \"children\": [],\n                \"infants\": []\n              }\n            }\n          ]\n        }\n      ]\n    }\n  ],\n  \"ContactInfo\": {\n    \"Name\": \"Nguyen Thai Van\",\n    \"PhoneNumber\": \"0123456789\",\n    \"Email\": \"van.nguyen@skyjet.vn\",\n    \"CountryTelCode\": \"84\"\n  },\n  \"passengers\": [\n    {\n      \"Index\": 1,\n      \"FirstName\": \"THAI VAN\",\n      \"LastName\": \"NGUYEN\",\n      \"Gender\": \"M\",\n      \"Type\": 1,\n      \"DateOfBirth\": \"2003-11-14\",\n      \"Nationality\": \"AF\",\n      \"IdNumber\": \"123ABC\",\n      \"IdType\": \"passport\",\n      \"IdExpiryDate\": \"2030-11-06\",\n      \"IdIssuedCountry\": \"AF\",\n      \"Ancillaries\": {\n        \"baggages\": [\n          {\n            \"segments\": [\n              {\n                \"segmentId\": \"608b7330e71a91a371a3a9fba372c1a0\",\n                \"sequence\": 1,\n                \"bookingCode\": \"E\",\n                \"cabinClass\": \"ECONOMY\",\n                \"available\": 9,\n                \"departureCode\": \"SGN\",\n                \"departureName\": \"Ho Chi Minh City\",\n                \"departureDate\": \"2025-11-22\",\n                \"departureTime\": \"20:30\",\n                \"departureTerminal\": \"3\",\n                \"arrivalCode\": \"HAN\",\n                \"arrivalName\": \"Hanoi\",\n                \"arrivalDate\": \"2025-11-22\",\n                \"arrivalTime\": \"22:35\",\n                \"arrivalTerminal\": \"1\",\n                \"airlines\": \"VN\",\n                \"airlinesName\": \"VIETNAM AIRLINES\",\n                \"equipment\": \"350\",\n                \"flightNumber\": \"256\",\n                \"flightTime\": 125,\n                \"stopTime\": 0,\n                \"baggageRules\": {\n                  \"adults\": [\n                    {\n                      \"baggageAmount\": \"1PC\",\n                      \"carryOnAmount\": \"1PC\",\n                      \"carryOnWeight\": \"10KG\"\n                    }\n                  ],\n                  \"children\": [],\n                  \"infants\": []\n                },\n                \"miniRules\": {\n                  \"adults\": [\n                    {\n                      \"penaltyType\": \"REISSUE\",\n                      \"allowRefund\": \"ALLOW\",\n                      \"situation\": \"BEFORE_DEPARTURE\",\n                      \"amount\": 30,\n                      \"currency\": \"USD\",\n                      \"percent\": 0,\n                      \"baseType\": \"FARE\"\n                    },\n                    {\n                      \"penaltyType\": \"REFUND\",\n                      \"allowRefund\": \"ALLOW\",\n                      \"situation\": \"BEFORE_DEPARTURE\",\n                      \"amount\": 30,\n                      \"currency\": \"USD\",\n                      \"percent\": 0,\n                      \"baseType\": \"FARE\"\n                    }\n                  ],\n                  \"children\": [],\n                  \"infants\": []\n                }\n              }\n            ],\n            \"ancillaryId\": \"05bf8fd975e98ef66329d90c32e8b4bb\",\n            \"type\": 1,\n            \"limit\": 3,\n            \"weight\": \"69KG\",\n            \"price\": 41.1,\n            \"description\": \"3PC X 23KG\"\n          }\n        ]\n      }\n    }\n  ]\n}\n\n ```\n\n---\n\n## Request Body Description\n\nThe request body is a JSON object containing the following key-value pairs:\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `Provider` | String | ✅ Yes | The ID of the flight provider. Example: `\"flight.provider1\"` |\n| `Type` | String | ✅ Yes | The type of the trip. Example: `\"ROUND_TRIP\"` |\n| `Adults` | Integer | ✅ Yes | Number of adult passengers. |\n| `Children` | Integer | ❌ No | Number of child passengers. Defaults to 0 if not provided. |\n| `Infants` | Integer | ❌ No | Number of infant passengers. Defaults to 0 if not provided. |\n| `solutions` | Array | ✅ Yes | An array containing the selected flight solution. This array _must_ contain exactly one object. See the `solutions` Array Structure. |\n| `ContactInfo` | Object | ✅ Yes | Contact information for the booking. See the `ContactInfo` Object Structure. |\n| `passengers` | Array | ✅ Yes | An array of passenger objects, each containing details for a single passenger. See the `passengers` Array Structure. |\n\n---\n\n### `solutions` Array Structure\n\nThe `solutions` array contains a single JSON object that represents the chosen flight solution for booking:\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `provider` | String | ✅ Yes | The ID of the flight provider for this solution. Example: `\"flight.provider1\"` |\n| `solutionId` | String | ✅ Yes | A unique identifier for this particular flight solution. This ID is provided by the flight search API. |\n| `fare` | Object | ✅ Yes | Detailed fare information for this flight solution. See `fare` Object Structure. |\n| `flights` | Array | ✅ Yes | Array of objects detailing the flight legs. See `flights` Array Structure. |\n\n---\n\n### `fare` Object Structure\n\nThis object provides a detailed breakdown of the fare for the flight solution:\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `adultFare` | Object | ✅ Yes | Contains fare breakdown specific to adult passengers. See the `adultFare` Object Structure below. |\n| `childFare` | Object | ❌ No | Contains fare breakdown specific to child passengers. Omitted if there are no child passengers. See the `childFare` Object Structure below. |\n| `infantFare` | Object | ❌ No | Contains fare breakdown specific to infant passengers. Omitted if there are no infant passengers. See the `infantFare` Object Structure below. |\n| `totalFare` | Number | ✅ Yes | The sum of the base fares for all passengers (excluding taxes and fees). |\n| `totalTax` | Number | ✅ Yes | The sum of the taxes for all passengers. |\n| `totalFee` | Number | ✅ Yes | The sum of the fees for all passengers. |\n| `totalPrice` | Number | ✅ Yes | The grand total price including base fare, taxes, and fees. |\n| `totalDiscountAmount` | Number | ✅ Yes | The sum of the discounts for all passengers. |\n| `totalPoint` | Number | ✅ Yes | The sum of the points for all passengers. |\n\n---\n\n#### `adultFare`, `childFare`, `infantFare` Object Structure\n\nThese objects provide the specific fare breakdown for each passenger type:\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `fare` | Number | ✅ Yes | The base fare for the passenger type. |\n| `tax` | Number | ✅ Yes | Taxes applicable to the passenger type. |\n| `fee` | Number | ✅ Yes | Fees applicable to the passenger type. |\n| `currency` | String | ✅ Yes | The currency code for the fare elements (e.g., `\"USD\"`). |\n| `discountAmount` | Number | ✅ Yes | The discount for the passenger type. |\n| `count` | Integer | ✅ Yes | The number of passengers of this type (e.g., `2` adults). |\n| `total` | Number | ✅ Yes | The total price for the passenger type (base (fare + taxes + fees) \\* count). |\n| `point` | Integer | ✅ Yes | Points of the voucher. |\n| `totalPoint` | Integer | ✅ Yes | The total points (point \\* count). |\n\n---\n\n### `flights` Array Structure\n\nThis array contains objects representing each leg of the flight itinerary.\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `sequence` | Integer | ✅ Yes | Flight leg sequence. This number indicates the order of the flight leg within the itinerary. The sequence starts at 1 and increments for each subsequent flight leg in the itinerary. |\n| `flightDuration` | Integer | ✅ Yes | Total flight time in minutes for the entire leg. |\n| `travelDuration` | Integer | ✅ Yes | Total travel time in minutes for the entire leg (including layovers). |\n| `lastTicketTime` | String | ✅ Yes | Last date/time to purchase the ticket (ISO 8601 format). `0001-01-01T00:00:00:0000` indicates no time limit. |\n| `journeyId` | Guid | ✅ Yes | The journey object that groups all flight segments of a single trip. |\n| `segments` | Array | ✅ Yes | Array of flight segments. See `segments` Array Structure below. |\n\n---\n\n### `segments` Array Structure\n\nThis array contains objects that specify the details for each segment of a flight leg.\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `segmentId` | String | ✅ Yes | Unique identifier for the segment. |\n| `sequence` | Integer | ✅ Yes | Segment order within the leg. |\n| `bookingCode` | String | ✅ Yes | Fare class code (e.g., \"X\"). This code represents the specific fare class that applies to this flight segment. Contact the airline for decode the real meaning of bookingCode. |\n| `cabinClass` | String | ✅ Yes | Cabin class for the segment (e.g., \"ECONOMY\"). |\n| `available` | Integer | ✅ Yes | Number of seats available in this class. |\n| `departureCode` | String | ✅ Yes | IATA departure airport code (e.g., \"SGN\"). |\n| `departureName` | String | ✅ Yes | Departure airport name (e.g., \"Ho Chi Minh City\"). |\n| `departureDate` | String | ✅ Yes | Departure date (YYYY-MM-DD) (e.g., \"2025-06-20\"). |\n| `departureTime` | String | ✅ Yes | Departure time (HH:mm) (e.g., \"12:50\"). |\n| `departureTerminal` | String | ✅ Yes | Departure terminal (e.g., `\"1\"`). |\n| `arrivalCode` | String | ✅ Yes | IATA arrival airport code (e.g., \"HAN\"). |\n| `arrivalName` | String | ✅ Yes | Arrival airport name (e.g., \"Hanoi\"). |\n| `arrivalDate` | String | ✅ Yes | Arrival date (YYYY-MM-DD) (e.g., \"2025-06-20\"). |\n| `arrivalTime` | String | ✅ Yes | Arrival time (HH:mm) (e.g., \"15:00\"). |\n| `arrivalTerminal` | String | ✅ Yes | Arrival terminal (e.g., `\"1\"`). |\n| `airlines` | String | ✅ Yes | 2-letter airline code (e.g., \"QH\"). |\n| `airlinesName` | String | ✅ Yes | Airline name (e.g., \"BAMBOO AIRWAYS\"). |\n| `equipment` | String | ✅ Yes | Aircraft type (e.g., \"320\"). |\n| `flightNumber` | String | ✅ Yes | Flight number (e.g., \"242\"). |\n| `flightTime` | Integer | ✅ Yes | Flight time in minutes. |\n| `stopTime` | Integer | ✅ Yes | Layover time in minutes (0 for direct flights). |\n| `baggageRules` | Object | ✅ Yes | Baggage rules for the segment. See `baggageRules` Structure below. |\n| `miniRules` | Object | ✅ Yes | Penalty rules for the segment. See `miniRules` Structure below. |\n\n---\n\n### `baggageRules` Structure\n\nThis object specifies baggage allowances for adults, children, and infants.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Array of baggage rule objects for adults. See `Baggage Rule Object`. |\n| `children` | Array | Array of baggage rule objects for children. May be empty if no children. |\n| `infants` | Array | Array of baggage rule objects for infants. May be empty if no infants. |\n\n---\n\n#### Baggage Rule Object\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `baggageAmount` | String | `\"0PC\"` | Checked baggage allowance (e.g., `\"0PC\"` = 0 pieces) |\n| `baggageWeight` | String | `\"8KG\"` | Checked baggage weight limit (e.g., `\"7KG\"` = 7 kilograms) |\n| `carryOnAmount` | String | `\"1PC\"` | Cabin baggage allowance (e.g., `\"1PC\"` = 1 piece) |\n| `carryOnWeight` | String | `\"7KG\"` | Cabin baggage weight limit (e.g., `\"7KG\"` = 7 kilograms) |\n\n---\n\n### `miniRules` Structure\n\nThis object details penalty, refund and reissue conditions.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Array of penalty rule objects for adults. See `Rule Object`. |\n| `children` | Array | Array of penalty rule objects for children. May be empty if no children. |\n| `infants` | Array | Array of penalty rule objects for infants. May be empty if no infants. |\n\n---\n\n#### Rule Object\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `miniruleText` | String | `\"example rule\"` | The text rule. |\n| `miniruleHtml` | String | `\" example html rule \"` | The html rule. |\n| `penaltyType` | String | `\"REFUND\"` | Fee type (`REFUND`, `REISSUE`). |\n| `allowRefund` | String | `\"NOT_ALLOWED\"` | Indicates if a refund is allowed (`ALLOW`, `NOT_ALLOWED`). |\n| `situation` | String | `\"BEFORE_DEPARTURE\"` | When the penalty applies (`BEFORE_DEPARTURE`, `AFTER_DEPARTURE`). |\n| `amount` | Number | `0.0` | Fee amount. |\n| `currency` | String | `\"USD\"` | The currency code. |\n| `percent` | Number | `0.0` | Fee percentage of the base fare. |\n| `baseType` | String | `\"FARE\"` | Fee calculation base (`FARE` = total fare). |\n\n---\n\n### `ContactInfo` Object Structure\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `Name` | String | ✅ Yes | Full name of the contact person. |\n| `PhoneNumber` | String | ✅ Yes | Phone number of the contact person. |\n| `Email` | String | ✅ Yes | Email address of the contact person. |\n| `CountryTelCode` | String | ✅ Yes | The international telephone code of the contact's phone number (e.g., `\"84\"` for Vietnam). |\n\n---\n\n### `passengers` Array Structure\n\nThis array specifies information about each passenger for whom the booking is being made.\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `Index` | Integer | ✅ Yes | A unique number identifier for the passenger, starting from `1`. |\n| `FirstName` | String | ✅ Yes | Passenger's first name. |\n| `LastName` | String | ✅ Yes | Passenger's last name. |\n| `Gender` | String | ✅ Yes | Passenger's gender. Possible values: `\"M\"` (Male), `\"F\"` (Female) |\n| `Type` | Integer | ✅ Yes | Passenger Type. Possible values: `1` (Adult), `2` (Child), `3` (Infant) |\n| `DateOfBirth` | String | ✅ Yes | Passenger's date of birth (YYYY-MM-DD). |\n| `Nationality` | String | ✅ Yes | Passenger's nationality (ISO 3166-1 alpha-2 country code, e.g., `\"VN\"` for Vietnam). |\n| `IdNumber` | String | ✅ Yes | Passenger's ID card or Passport number. |\n| `IdType` | String | ✅ Yes | Type of ID used. Possible values: `\"passport\"`, `\"idcard\"` etc. |\n| `IdExpiryDate` | String | ✅ Yes | Expiry date of the ID (YYYY-MM-DD). |\n| `Ancillaries` | Object | ❌ No | Object containing ancillary services selected for this passenger (e.g., baggage, meals, seat selection). See `Ancillaries` Object Structure. |\n\n---\n\n### `Ancillaries` Object Structure\n\nThe `Ancillaries` object contains optional add-on services that passengers can purchase with their flight booking. This object can contain various types of ancillary services.\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `baggages` | Array | ❌ No | Array of baggage ancillary objects. See `Baggage Ancillary Object` structure. |\n| `meals` | Array | ❌ No | Array of meal ancillary objects (if supported by provider). |\n| `seats` | Array | ❌ No | Array of seat selection ancillary objects (if supported by provider). |\n\n---\n\n#### Baggage Ancillary Object\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `segments` | Array | ✅ Yes | Array of flight segments this baggage applies to. Uses the same segment structure as in the main flight booking. |\n| `ancillaryId` | String | ✅ Yes | Unique identifier for this specific baggage ancillary option. |\n| `type` | Integer | ✅ Yes | Type of baggage ancillary. `1` typically represents checked baggage. |\n| `limit` | Integer | ✅ Yes | Maximum number of pieces allowed for this baggage option. |\n| `weight` | String | ✅ Yes | Weight allowance for this baggage option (e.g., `\"23KG\"`). |\n| `price` | Number | ✅ Yes | Price for this baggage ancillary in the booking currency. |\n| `description` | String | ✅ Yes | Human-readable description of the baggage allowance (e.g., `\"1PC X 23KG\"`). |\n\n**Example Baggage Ancillary:**\n\n``` json\n{\n    \"baggages\": [\n          {\n            \"segments\": [\n              {\n                \"segmentId\": \"608b7330e71a91a371a3a9fba372c1a0\",\n                \"sequence\": 1,\n                \"bookingCode\": \"E\",\n                \"cabinClass\": \"ECONOMY\",\n                \"available\": 9,\n                \"departureCode\": \"SGN\",\n                \"departureName\": \"Ho Chi Minh City\",\n                \"departureDate\": \"2025-11-22\",\n                \"departureTime\": \"20:30\",\n                \"departureTerminal\": \"3\",\n                \"arrivalCode\": \"HAN\",\n                \"arrivalName\": \"Hanoi\",\n                \"arrivalDate\": \"2025-11-22\",\n                \"arrivalTime\": \"22:35\",\n                \"arrivalTerminal\": \"1\",\n                \"airlines\": \"VN\",\n                \"airlinesName\": \"VIETNAM AIRLINES\",\n                \"equipment\": \"350\",\n                \"flightNumber\": \"256\",\n                \"flightTime\": 125,\n                \"stopTime\": 0,\n                \"baggageRules\": {\n                  \"adults\": [\n                    {\n                      \"baggageAmount\": \"1PC\",\n                      \"carryOnAmount\": \"1PC\",\n                      \"carryOnWeight\": \"10KG\"\n                    }\n                  ],\n                  \"children\": [],\n                  \"infants\": []\n                },\n                \"miniRules\": {\n                  \"adults\": [\n                    {\n                      \"penaltyType\": \"REISSUE\",\n                      \"allowRefund\": \"ALLOW\",\n                      \"situation\": \"BEFORE_DEPARTURE\",\n                      \"amount\": 30,\n                      \"currency\": \"USD\",\n                      \"percent\": 0,\n                      \"baseType\": \"FARE\"\n                    },\n                    {\n                      \"penaltyType\": \"REFUND\",\n                      \"allowRefund\": \"ALLOW\",\n                      \"situation\": \"BEFORE_DEPARTURE\",\n                      \"amount\": 30,\n                      \"currency\": \"USD\",\n                      \"percent\": 0,\n                      \"baseType\": \"FARE\"\n                    }\n                  ],\n                  \"children\": [],\n                  \"infants\": []\n                }\n              }\n            ],\n            \"ancillaryId\": \"05bf8fd975e98ef66329d90c32e8b4bb\",\n            \"type\": 1,\n            \"limit\": 3,\n            \"weight\": \"69KG\",\n            \"price\": 41.1,\n            \"description\": \"3PC X 23KG\"\n          }\n        ]\n}\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n  \"id\": \"d8603068-4a5c-4b58-964f-8129ad643433\",\n  \"readableId\": \"WCCMAZ\",\n  \"isInternational\": false,\n  \"orderBaseInfo\": {\n    \"providerCode\": \"flight.provider1\",\n    \"providerReferenceId\": \"917624806461888801\",\n    \"status\": \"TO_BE_PAID\",\n    \"statusIsFinal\": false,\n    \"bookingType\": \"flight\",\n    \"totalAmount\": 349.53,\n    \"totalSalesAmount\": 0,\n    \"totalOriginalAmount\": 343.53,\n    \"totalPriceModifier\": 6,\n    \"totalServiceFee\": 0,\n    \"refundAmount\": 0,\n    \"refundFee\": 0,\n    \"currency\": \"USD\",\n    \"convertionRate\": 26355,\n    \"type\": \"ROUND_TRIP\",\n    \"pnr\": \"WCCMAZ\",\n    \"airlinePNR\": \"\",\n    \"orderType\": \"O\",\n    \"bookingCode\": \"Q\",\n    \"isNeedRebookPNR\": false,\n    \"passengerCount\": 1,\n    \"totalAmountAtHotel\": 0,\n    \"refunded\": false\n  },\n  \"orderFlightInfo\": {\n    \"id\": \"56c2150d-3978-4e47-9236-8cea4e61f807\",\n    \"orderId\": \"d8603068-4a5c-4b58-964f-8129ad643433\",\n    \"flightJourneys\": [\n      {\n        \"id\": \"a227d710-16e1-4ed7-ab2f-08de1d155e44\",\n        \"flightBookingInfoId\": \"56c2150d-3978-4e47-9236-8cea4e61f807\",\n        \"sequence\": 1,\n        \"arrivalDate\": \"2025-11-08T00:00:00:0000\",\n        \"arrivalTime\": \"01:10\",\n        \"arrivalCode\": \"SGN\",\n        \"arrivalName\": \"Ho Chi Minh City\",\n        \"departureDate\": \"2025-11-07T00:00:00:0000\",\n        \"departureTime\": \"23:00\",\n        \"departureCode\": \"HAN\",\n        \"departureName\": \"Hanoi\",\n        \"travelTime\": 130,\n        \"isNDC\": false,\n        \"isChange\": false,\n        \"lastTicketTime\": \"2025-11-07T18:29:00:0000\",\n        \"flightSegments\": [\n          {\n            \"id\": \"c7ec938c-1cd0-44fe-a4e5-72b4fcde422e\",\n            \"flightJourneyId\": \"a227d710-16e1-4ed7-ab2f-08de1d155e44\",\n            \"sequence\": 1,\n            \"airlinesCode\": \"VN\",\n            \"airlinesName\": \"VIETNAM AIRLINES\",\n            \"arrivalCode\": \"SGN\",\n            \"arrivalName\": \"Ho Chi Minh City\",\n            \"arrivalDate\": \"2025-11-08T00:00:00:0000\",\n            \"arrivalTime\": \"01:10\",\n            \"departureCode\": \"HAN\",\n            \"departureName\": \"Hanoi\",\n            \"departureDate\": \"2025-11-07T00:00:00:0000\",\n            \"departureTime\": \"23:00\",\n            \"bookingCode\": \"Q\",\n            \"cabinClass\": \"ECONOMY\",\n            \"equipment\": \"321\",\n            \"flightNumber\": \"6025\",\n            \"flightTime\": 130,\n            \"departureTerminal\": \"1\",\n            \"arrivalTerminal\": \"3\",\n            \"codeShare\": false,\n            \"stopTime\": 0,\n            \"hasStop\": false,\n            \"operatingFlightAirlinesName\": \"PACIFIC AIRLINES\",\n            \"operatingFlightNumber\": \"6025\",\n            \"operatingFlightAirlinesCode\": \"BL\",\n            \"baggageRules\": {\n              \"adults\": [\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"carryOnAmount\": \"1PC\",\n                  \"carryOnWeight\": \"10KG\"\n                }\n              ],\n              \"children\": [],\n              \"infants\": []\n            },\n            \"miniRules\": {\n              \"adults\": [\n                {\n                  \"penaltyType\": \"REISSUE\",\n                  \"allowRefund\": \"ALLOW\",\n                  \"situation\": \"BEFORE_DEPARTURE\",\n                  \"amount\": 48,\n                  \"penaltyPercent\": 0,\n                  \"baseType\": \"FARE\"\n                },\n                {\n                  \"penaltyType\": \"NOSHOW_REISSUE\",\n                  \"allowRefund\": \"ALLOW\",\n                  \"situation\": \"BEFORE_DEPARTURE\",\n                  \"amount\": 48,\n                  \"penaltyPercent\": 0,\n                  \"baseType\": \"FARE\"\n                },\n                {\n                  \"penaltyType\": \"REISSUE\",\n                  \"allowRefund\": \"NOT_ALLOWED\",\n                  \"situation\": \"AFTER_DEPARTURE\",\n                  \"amount\": 0,\n                  \"penaltyPercent\": 0,\n                  \"baseType\": \"FARE\"\n                },\n                {\n                  \"penaltyType\": \"NOSHOW_REISSUE\",\n                  \"allowRefund\": \"NOT_ALLOWED\",\n                  \"situation\": \"AFTER_DEPARTURE\",\n                  \"amount\": 0,\n                  \"penaltyPercent\": 0,\n                  \"baseType\": \"FARE\"\n                },\n                {\n                  \"penaltyType\": \"REFUND\",\n                  \"allowRefund\": \"ALLOW\",\n                  \"situation\": \"BEFORE_DEPARTURE\",\n                  \"amount\": 48,\n                  \"penaltyPercent\": 0,\n                  \"baseType\": \"FARE\"\n                },\n                {\n                  \"penaltyType\": \"NOSHOW_REFUND\",\n                  \"allowRefund\": \"ALLOW\",\n                  \"situation\": \"BEFORE_DEPARTURE\",\n                  \"amount\": 48,\n                  \"penaltyPercent\": 0,\n                  \"baseType\": \"FARE\"\n                },\n                {\n                  \"penaltyType\": \"REFUND\",\n                  \"allowRefund\": \"NOT_ALLOWED\",\n                  \"situation\": \"AFTER_DEPARTURE\",\n                  \"amount\": 0,\n                  \"penaltyPercent\": 0,\n                  \"baseType\": \"FARE\"\n                },\n                {\n                  \"penaltyType\": \"NOSHOW_REFUND\",\n                  \"allowRefund\": \"NOT_ALLOWED\",\n                  \"situation\": \"AFTER_DEPARTURE\",\n                  \"amount\": 0,\n                  \"penaltyPercent\": 0,\n                  \"baseType\": \"FARE\"\n                }\n              ],\n              \"children\": [],\n              \"infants\": []\n            }\n          }\n        ]\n      },\n      {\n        \"id\": \"62e572a1-8e66-4897-ab30-08de1d155e44\",\n        \"flightBookingInfoId\": \"56c2150d-3978-4e47-9236-8cea4e61f807\",\n        \"sequence\": 2,\n        \"arrivalDate\": \"2025-11-22T00:00:00:0000\",\n        \"arrivalTime\": \"22:35\",\n        \"arrivalCode\": \"HAN\",\n        \"arrivalName\": \"Hanoi\",\n        \"departureDate\": \"2025-11-22T00:00:00:0000\",\n        \"departureTime\": \"20:30\",\n        \"departureCode\": \"SGN\",\n        \"departureName\": \"Ho Chi Minh City\",\n        \"travelTime\": 125,\n        \"isNDC\": false,\n        \"isChange\": false,\n        \"lastTicketTime\": \"2025-11-07T18:29:00:0000\",\n        \"flightSegments\": [\n          {\n            \"id\": \"fad684b9-4e0c-4ac3-9927-4a26badf51d4\",\n            \"flightJourneyId\": \"62e572a1-8e66-4897-ab30-08de1d155e44\",\n            \"sequence\": 1,\n            \"airlinesCode\": \"VN\",\n            \"airlinesName\": \"VIETNAM AIRLINES\",\n            \"arrivalCode\": \"HAN\",\n            \"arrivalName\": \"Hanoi\",\n            \"arrivalDate\": \"2025-11-22T00:00:00:0000\",\n            \"arrivalTime\": \"22:35\",\n            \"departureCode\": \"SGN\",\n            \"departureName\": \"Ho Chi Minh City\",\n            \"departureDate\": \"2025-11-22T00:00:00:0000\",\n            \"departureTime\": \"20:30\",\n            \"bookingCode\": \"E\",\n            \"cabinClass\": \"ECONOMY\",\n            \"equipment\": \"350\",\n            \"flightNumber\": \"256\",\n            \"flightTime\": 125,\n            \"departureTerminal\": \"3\",\n            \"arrivalTerminal\": \"1\",\n            \"codeShare\": false,\n            \"stopTime\": 0,\n            \"hasStop\": false,\n            \"operatingFlightAirlinesCode\": \"\",\n            \"baggageRules\": {\n              \"adults\": [\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"carryOnAmount\": \"1PC\",\n                  \"carryOnWeight\": \"10KG\"\n                }\n              ],\n              \"children\": [],\n              \"infants\": []\n            },\n            \"miniRules\": {\n              \"adults\": [\n                {\n                  \"penaltyType\": \"REISSUE\",\n                  \"allowRefund\": \"ALLOW\",\n                  \"situation\": \"BEFORE_DEPARTURE\",\n                  \"amount\": 48,\n                  \"penaltyPercent\": 0,\n                  \"baseType\": \"FARE\"\n                },\n                {\n                  \"penaltyType\": \"NOSHOW_REISSUE\",\n                  \"allowRefund\": \"ALLOW\",\n                  \"situation\": \"BEFORE_DEPARTURE\",\n                  \"amount\": 48,\n                  \"penaltyPercent\": 0,\n                  \"baseType\": \"FARE\"\n                },\n                {\n                  \"penaltyType\": \"REISSUE\",\n                  \"allowRefund\": \"ALLOW\",\n                  \"situation\": \"AFTER_DEPARTURE\",\n                  \"amount\": 48,\n                  \"penaltyPercent\": 0,\n                  \"baseType\": \"FARE\"\n                },\n                {\n                  \"penaltyType\": \"NOSHOW_REISSUE\",\n                  \"allowRefund\": \"ALLOW\",\n                  \"situation\": \"AFTER_DEPARTURE\",\n                  \"amount\": 48,\n                  \"penaltyPercent\": 0,\n                  \"baseType\": \"FARE\"\n                },\n                {\n                  \"penaltyType\": \"REFUND\",\n                  \"allowRefund\": \"ALLOW\",\n                  \"situation\": \"BEFORE_DEPARTURE\",\n                  \"amount\": 48,\n                  \"penaltyPercent\": 0,\n                  \"baseType\": \"FARE\"\n                },\n                {\n                  \"penaltyType\": \"NOSHOW_REFUND\",\n                  \"allowRefund\": \"ALLOW\",\n                  \"situation\": \"BEFORE_DEPARTURE\",\n                  \"amount\": 48,\n                  \"penaltyPercent\": 0,\n                  \"baseType\": \"FARE\"\n                },\n                {\n                  \"penaltyType\": \"REFUND\",\n                  \"allowRefund\": \"ALLOW\",\n                  \"situation\": \"AFTER_DEPARTURE\",\n                  \"amount\": 48,\n                  \"penaltyPercent\": 0,\n                  \"baseType\": \"FARE\"\n                },\n                {\n                  \"penaltyType\": \"NOSHOW_REFUND\",\n                  \"allowRefund\": \"ALLOW\",\n                  \"situation\": \"AFTER_DEPARTURE\",\n                  \"amount\": 48,\n                  \"penaltyPercent\": 0,\n                  \"baseType\": \"FARE\"\n                }\n              ],\n              \"children\": [],\n              \"infants\": []\n            }\n          }\n        ]\n      }\n    ]\n  },\n  \"orderESimInfos\": [],\n  \"passengers\": [\n    {\n      \"flightBookingId\": \"d8603068-4a5c-4b58-964f-8129ad643433\",\n      \"index\": 1,\n      \"type\": 1,\n      \"idIssuedCountry\": \"AF\",\n      \"idIssueDate\": \"0001-01-01T00:00:00:0000\",\n      \"idExpiryDate\": \"2030-11-06T00:00:00:0000\",\n      \"frequentFlyerNumbers\": [],\n      \"ticketList\": [],\n      \"ancillaries\": [\n        {\n          \"id\": \"5370222b-cbf8-4db5-be60-5eb0d60c67d5\",\n          \"providerCode\": \"flight.provider1\",\n          \"providerReferenceId\": \"917624806461888801\",\n          \"airlines\": \"VN\",\n          \"departureCode\": \"SGN\",\n          \"arrivalCode\": \"HAN\",\n          \"flightNumber\": \"256\",\n          \"passengerId\": \"3b28ca34-0d48-41c2-ba69-80aa0632624f\",\n          \"limit\": 3,\n          \"weight\": \"69KG\",\n          \"description\": \"3PC X 23KG\",\n          \"amount\": 41.1,\n          \"createdBy\": \"van.nguyen@skyjet.vn\",\n          \"createdUtc\": \"2025-11-07T01:57:23:6264\",\n          \"updatedUtc\": \"2025-11-07T01:57:23:7333\"\n        }\n      ],\n      \"seats\": [],\n      \"id\": \"3b28ca34-0d48-41c2-ba69-80aa0632624f\",\n      \"firstName\": \"THAI VAN\",\n      \"lastName\": \"NGUYEN\",\n      \"gender\": \"M\",\n      \"dateOfBirth\": \"2003-11-14T00:00:00:0000\",\n      \"nationality\": \"AF\",\n      \"idNumber\": \"123ABC\",\n      \"idType\": \"passport\",\n      \"updatedUtc\": \"2025-11-07T01:57:23:6966\",\n      \"deleted\": false\n    }\n  ],\n  \"contactInfo\": {\n    \"id\": \"6ba47e41-6e24-45cc-ba46-79d60e43483a\",\n    \"name\": \"Nguyen Thai Van\",\n    \"countryTelCode\": \"84\",\n    \"phoneNumber\": \"0123456789\",\n    \"email\": \"van.nguyen@skyjet.vn\",\n    \"flightBookingId\": \"d8603068-4a5c-4b58-964f-8129ad643433\",\n    \"deleted\": false\n  },\n  \"priceInfo\": {\n    \"id\": \"f421ebf5-f094-4330-a1d1-4f44b1734d01\",\n    \"orderId\": \"d8603068-4a5c-4b58-964f-8129ad643433\",\n    \"pricingType\": 1,\n    \"couponId\": \"00000000-0000-0000-0000-000000000000\",\n    \"itemType\": 0,\n    \"passengerTotalAmount\": 308.43,\n    \"ancillaryTotalAmount\": 41.1,\n    \"seatTotalAmount\": 0,\n    \"ticketFeeAmount\": 0,\n    \"totalAmount\": 349.53,\n    \"totalOriginalAmount\": 343.53,\n    \"priceModifier\": 6,\n    \"couponAmount\": 0,\n    \"handlingFee\": 0,\n    \"totalFare\": 245.95,\n    \"convertionRate\": 26355,\n    \"totalServiceFee\": 0,\n    \"currency\": \"USD\",\n    \"totalTax\": 0,\n    \"surcharges\": 0,\n    \"amount\": 287.05,\n    \"numberOfRooms\": 2,\n    \"averagePerNightAmount\": 0,\n    \"numberOfNights\": 0,\n    \"priceDetails\": [\n      {\n        \"id\": \"aa16fd0b-86b0-47ee-8afc-95cd7c146f28\",\n        \"priceInfoId\": \"f421ebf5-f094-4330-a1d1-4f44b1734d01\",\n        \"count\": 1,\n        \"type\": 1,\n        \"amount\": 245.95,\n        \"originalAmount\": 239.95,\n        \"priceModifier\": 6,\n        \"serviceFee\": 0,\n        \"tax\": 62.48,\n        \"fee\": 0,\n        \"totalAmount\": 308.43,\n        \"averagePerNightAmount\": 0,\n        \"taxAmount\": 0,\n        \"numberOfNights\": 0,\n        \"surcharges\": 0,\n        \"discount\": 0,\n        \"hotelPricePerNights\": [],\n        \"taxes\": [],\n        \"discounts\": []\n      },\n      {\n        \"id\": \"66fc68d7-e7e1-4ab1-9c6c-f805fe3d6f57\",\n        \"priceInfoId\": \"f421ebf5-f094-4330-a1d1-4f44b1734d01\",\n        \"count\": 1,\n        \"type\": 4,\n        \"amount\": 41.1,\n        \"originalAmount\": 41.1,\n        \"priceModifier\": 0,\n        \"serviceFee\": 0,\n        \"tax\": 0,\n        \"fee\": 0,\n        \"totalAmount\": 41.1,\n        \"averagePerNightAmount\": 0,\n        \"taxAmount\": 0,\n        \"numberOfNights\": 0,\n        \"surcharges\": 0,\n        \"discount\": 0,\n        \"hotelPricePerNights\": [],\n        \"taxes\": [],\n        \"discounts\": []\n      }\n    ],\n    \"createdBy\": \"van.nguyen@skyjet.vn\",\n    \"createdUtc\": \"2025-11-07T01:57:23:6518\",\n    \"updatedUtc\": \"2025-11-07T01:57:23:6495\",\n    \"refundable\": false,\n    \"hasBreakfast\": false,\n    \"extraBed\": false,\n    \"nonSmoking\": false\n  },\n  \"createdBy\": \"van.nguyen@skyjet.vn\",\n  \"createdUtc\": \"2025-11-07T01:57:23:6833\",\n  \"updatedBy\": \"van.nguyen@skyjet.vn\",\n  \"updatedUtc\": \"2025-11-07T01:57:25:7768\",\n  \"agentPath\": \"NV9999\"\n}\n\n ```\n\n---\n\n## Response Field Description\n\nThe response is a JSON object containing information about the flight booking:\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the booking (UUID). Example: `\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\"` |\n| `readableId` | String | The readable id. |\n| `isInternational` | Bool | Indicates whether the flight is international. |\n| `orderBaseInfo` | Object | Basic information about the order. See `orderBaseInfo` Object Structure. |\n| `orderFlightInfo` | Object | Information about the flights in the order. See `orderFlightInfo` Object Structure. |\n| `passengers` | Array | Array containing passenger information. See `passengers` Array Structure. |\n| `contactInfo` | Object | Contact information for the booking. See `contactInfo` Object Structure. |\n| `priceInfo` | Object | Detailed pricing information. See `priceInfo` Object Structure. |\n| `createdBy` | String | Email address of the user who created the booking. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `createdUtc` | String | Date and time the booking was created (UTC, ISO 8601 format). Example: `\"2025-06-05T08:38:19:4900\"` |\n| `updatedBy` | String | Email address of the user who last updated the booking. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `updatedUtc` | String | Date and time the booking was last updated (UTC, ISO 8601 format). Example: `\"2025-06-05T08:38:21:7477\"` |\n| `agentPath` | String | Path or identifier of the agent. |\n\n---\n\n### `orderBaseInfo` Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `providerCode` | String | ID of the flight provider. Example: `\"flight.provider1\"` |\n| `providerReferenceId` | String | Provider's unique identifier for the booking. Example: `\"917491127052815601\"` |\n| `status` | String | Current status of the booking. Example: `\"TO_BE_PAID\"`. Possible values depend on the system's workflow. |\n| `statusIsFinal` | Boolean | Indicates if the current status is a final state (e.g., `true` if booked successfully). |\n| `bookingType` | String | Type of booking. Example: `\"flight\"` |\n| `totalAmount` | Number | Total amount for the booking. Example: `148.74` |\n| `totalSaleAmount` | Number | Total sale amount for booking. |\n| `totalOriginalAmount` | Number | The originally requested total amount for the booking. This can differ from totalAmount after a price change. Example: `148.74` |\n| `totalPriceModifier` | Number | Amount the total price was modified (e.g., with a coupon). Example: `0` |\n| `totalServiceFee` | Number | Total service fee for booking. |\n| `refundAmount` | Number | Refund amount for booking. |\n| `refundFee` | Number | Refund fee for booking. |\n| `currency` | String | Currency code used for the booking. Example: `\"USD\"` |\n| `convertionRate` | Number | Conversion rate from USD to VND. Example: `26244` |\n| `type` | String | Trip type. Example: `\"ROUND_TRIP\"` |\n| `pnr` | String | Passenger Name Record (PNR) code for the booking. Example: `\"WC2A6H\"` |\n| `airlinePNR` | String | Airline PNR code (if different from `pnr`). Example: `\"\"` (empty string if same as `pnr`) |\n| `orderType` | String | Order type. Example: `\"O\"` (May represent a standard order). |\n| `bookingCode` | String | Fare class code (e.g., \"T\"). Contact the airline for decode the real meaning of bookingCode. Example: `\"T\"` |\n| `isNeedRebookPNR` | Boolean | Indicates if it's need to rebook PNR. Example: `false` |\n| `passengerCount` | Integer | Total number of passengers in the booking. Example: `1` |\n| `totalAmountAtHotel` | Number | Total amount for hotel or any other. Example: `0` |\n| `refunded` | Boolean | Is refunded or not. Example:`false` |\n\n---\n\n### `orderFlightInfo` Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the flight information (UUID). Example: `\"cae6e870-6204-48c7-a008-e6459804e47f\"` |\n| `orderId` | String | ID of the associated order (matches the top-level `id` field). Example: `\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\"` |\n| `flightJourneys` | Array | Array of flight journey objects, detailing each flight leg. See `flightJourneys` Array Structure. |\n\n---\n\n### `flightJourneys` Array Structure\n\nEach object represents a leg of the flight itinerary:\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for this flight journey (UUID). Example: `\"2b2c6be2-7068-4fac-9098-4e6574ed6a66\"` |\n| `flightBookingInfoId` | String | ID of the flight booking information (matches `orderFlightInfo.id`). Example: `\"cae6e870-6204-48c7-a008-e6459804e47f\"` |\n| `sequence` | Integer | Sequence number of the flight journey (1, 2, ...). Starts from 1. Example: `1` |\n| `arrivalDate` | String | Arrival date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `arrivalTime` | String | Arrival time (HH:mm). Example: `\"07:55\"` |\n| `arrivalCode` | String | IATA code of the arrival airport. Example: `\"HAN\"` |\n| `arrivalName` | String | Name of the arrival airport. Example: `\"Hanoi\"` |\n| `departureDate` | String | Departure date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `departureTime` | String | Departure time (HH:mm). Example: `\"05:45\"` |\n| `departureCode` | String | IATA code of the departure airport. Example: `\"SGN\"` |\n| `departureName` | String | Name of the departure airport. Example: `\"Ho Chi Minh City\"` |\n| `travelTime` | Integer | Total travel time in minutes. Example: 130 |\n| `isNDC` | Bool | Indicates whether the flight is distributed through an NDC (New Distribution Capability) channel. |\n| `lastTicketTime` | String | Last date/time to purchase the ticket (ISO 8601 format). `0001-01-01T00:00:00:0000` indicates no time limit. |\n| `isChange` | Boolean | Check if flight have change or not. Example: `false` |\n| `flightSegments` | Array | Array of flight segment objects. See `flightSegments` Array Structure. |\n| `fare` | Object | The detailed pricing and cost information for this journey. See `Journey Fare` Object Structure. |\n\n---\n\n### Journey Fare Object Structure\n\nThis object provides detailed pricing and cost information for a specific journey. The structure matches the sample fare model from booking/order response.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the fare info (UUID). |\n| `orderId` | String | ID of the order this fare info belongs to. |\n| `couponId` | String | ID of the coupon applied to the booking. |\n| `itemType` | Integer | Type of item being priced (e.g., flight, ancillary, etc.). |\n| `passengerTotalAmount` | Number | Total amount for all passengers in this journey. |\n| `ancillaryTotalAmount` | Number | Total amount for ancillary services in this journey. |\n| `seatTotalAmount` | Number | Total amount for seat reservations in this journey. |\n| `ticketFeeAmount` | Number | Total amount for ticket issuance fees. |\n| `totalAmount` | Number | The final total amount for the journey. |\n| `couponAmount` | Number | Amount reduced due to coupons. |\n| `handlingFee` | Number | Handling fee. |\n| `totalFare` | Number | Total fare excluding tax and fee. |\n| `totalTax` | Number | Total tax. |\n| `amount` | Number | Total amount. |\n| `priceDetails` | Array | Array of ticket price details. Each item includes a `type` field: 1 = Adult, 2 = Children, 3 = Infant. |\n| `createdBy` | String | Creator of this fare info. |\n| `createdUtc` | String | Created datetime. |\n| `updatedUtc` | String | Updated datetime. |\n| `refundable` | Boolean | Indicates if the journey is refundable. |\n\n#### Notes\n\n- The `fare` field is only present in each journey if the booking/order returns journey-level pricing.\n    \n- The structure and fields are similar to the top-level `priceInfo` object, but scoped to the specific journey.\n    \n- If journey-level pricing is not available, the `fare` field will be omitted or null.\n    \n\n#### Example\n\n``` json\n\"flightJourneys\": [\n  {\n    \"id\": \"2b2c6be2-7068-4fac-9098-4e6574ed6a66\",\n    \"sequence\": 1,\n    // ...existing fields...,\n    \"fare\": {\n        \"id\": \"088b8ab3-f09c-4860-b9ee-39ef662d610a\",\n        \"orderId\": \"bf20f9e9-f5f2-4587-9aa4-9bb746fd2e62\",\n        \"flightJourneyId\": \"643d8c99-1656-452d-8442-03d29d186c31\",\n        \"pricingType\": 2,\n        \"couponId\": \"00000000-0000-0000-0000-000000000000\",\n        \"itemType\": 0,\n        \"passengerTotalAmount\": 2128000.0,\n        \"ancillaryTotalAmount\": 0.0,\n        \"seatTotalAmount\": 0.0,\n        \"ticketFeeAmount\": 0.0,\n        \"totalAmount\": 2128000.0,\n        \"totalOriginalAmount\": 2128000.0,\n        \"priceModifier\": 0.0,\n        \"couponAmount\": 0.0,\n        \"handlingFee\": 0.0,\n        \"totalFare\": 1419000.0,\n        \"convertionRate\": 1.0,\n        \"totalTax\": 0.0,\n        \"amount\": 1419000.0,\n        \"priceDetails\": [\n            {\n                \"id\": \"74e9eb8d-7ec1-48a8-9705-62632225cf6d\",\n                \"priceInfoId\": \"088b8ab3-f09c-4860-b9ee-39ef662d610a\",\n                \"count\": 1,\n                \"type\": 1,\n                \"amount\": 1419000.0,\n                \"originalAmount\": 1419000.0,\n                \"priceModifier\": 0.0,\n                \"tax\": 709000.0,\n                \"fee\": 0.0,\n                \"totalAmount\": 2128000.0,\n                \"taxAmount\": 0.0,\n            }\n        ],\n        \"createdBy\": \"694E6C9E-ED3C-43EB-A50F-389ADE398E85\",\n        \"createdUtc\": \"0001-01-01T00:00:00:0000\",\n        \"updatedUtc\": \"2025-07-15T19:43:08:7959\",\n    },\n  }\n]\n\n ```\n\n### `flightSegments` Array Structure\n\nEach object represents a segment within a flight journey:\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the flight segment (UUID). Example: `\"f95a2ce8-baa2-41c2-a9c6-543ecca78e4a\"` |\n| `flightJourneyId` | String | ID of the flight journey this segment belongs to (matches `flightJourneys.id`). Example: `\"2b2c6be2-7068-4fac-9098-4e6574ed6a66\"` |\n| `sequence` | Integer | Segment order within the leg (starting from 1). Example: `1` |\n| `airlinesCode` | String | 2-letter airline code. Example: `\"VU\"` |\n| `airlinesName` | String | Airline name. Example: `\"VIETRAVEL AIRLINES\"` |\n| `arrivalCode` | String | IATA arrival airport code. Example: `\"HAN\"` |\n| `arrivalName` | String | Arrival airport name. Example: `\"Hanoi\"` |\n| `arrivalDate` | String | Arrival date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `arrivalTime` | String | Arrival time (HH:mm). Example: `\"07:55\"` |\n| `departureCode` | String | IATA departure airport code. Example: `\"SGN\"` |\n| `departureName` | String | Departure airport name. Example: `\"Ho Chi Minh City\"` |\n| `departureDate` | String | Departure date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `departureTime` | String | Departure time (HH:mm). Example: `\"05:45\"` |\n| `bookingCode` | String | Fare class code. Example: `\"T\"`. Contact the airline to decode the real meaning of bookingCode. |\n| `cabinClass` | String | Cabin class. Example: `\"ECONOMY\"` |\n| `equipment` | String | Aircraft type. Example: `\"32S\"` |\n| `flightNumber` | String | Flight number. Example: `\"750\"` |\n| `flightTime` | Integer | Flight time in minutes. Example: `130` |\n| `departureTerminal` | String | Departure Terminal. Example: `1` |\n| `arrivalTerminal` | String | Arrival Terminal. Example: `1` |\n| `codeShare` | Boolean | Check if the the flights segments have code share,Example: `false` |\n| `stopTime` | Integer | Layover time in minutes (0 for direct flights). Example: `0` |\n| `hasStop` | Boolean | hasStop check the the flights segments have stop,Example: `false` |\n| `operatingFlightAirlinesName` | String | Name of the operating airline. |\n| `operatingFlightNumber` | String | Flight number operated by the airline. |\n| `operatingFlightAirlinesCode` | String | Airline code. |\n| `baggageRules` | Object | Baggage allowance rules for the segment. See `baggageRules` Structure. |\n| `miniRules` | Object | Rules regarding penalties, refunds, and reissues for the segment. See `miniRules` Structure. |\n\n---\n\n### `baggageRules` Structure\n\nThis object specifies baggage allowances for adults, children, and infants.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Array of baggage rule objects for adults. See `Baggage Rule Object`. |\n| `children` | Array | Array of baggage rule objects for children (if any). |\n| `infants` | Array | Array of baggage rule objects for infants (if any). |\n\n---\n\n#### Baggage Rule Object\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `baggageAmount` | String | `\"0PC\"` | Checked baggage allowance (e.g., `\"0PC\"` = 0 pieces) |\n| `baggageWeight` | String | `\"8KG\"` | Checked baggage weight limit (e.g., `\"7KG\"` = 7 kilograms) |\n| `carryOnAmount` | String | `\"1PC\"` | Cabin baggage allowance (e.g., `\"1PC\"` = 1 piece) |\n| `carryOnWeight` | String | `\"7KG\"` | Cabin baggage weight limit (e.g., `\"7KG\"` = 7 kilograms) |\n\n### `miniRules` Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Array of penalty rule objects for adults. See `Rule Object`. |\n| `children` | Array | Array of penalty rule objects for children (if any). |\n| `infants` | Array | Array of penalty rule objects for infants (if any). |\n\n---\n\n#### Rule Object\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `miniruleText` | String | The rule text. |\n| `miniruleHtml` | String | The rule html. |\n| `penaltyType` | String | The type of penalty (e.g., `\"REFUND\"`, `\"REISSUE\"`). |\n| `allowRefund` | String | Indicates if a refund is allowed (`\"NOT_ALLOWED\"`). |\n| `situation` | String | When the penalty applies (`\"BEFORE_DEPARTURE\"`, `\"AFTER_DEPARTURE\"`). |\n| `noShowTime` | String | No-show timing relative to departure. |\n| `noShowTimeUnit` | String | Time unit for the no-show period. |\n| `amount` | Number | A general fee amount. |\n| `penaltyPercent` | Number | The penalty amount as a percentage of the fare. |\n| `baseType` | String | The basis for the penalty calculation (e.g., `\"FARE\"`). |\n\n---\n\n### `ContactInfo` Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for contact (UUID). Example: `\"41b419aa-e9c0-4bc0-95f2-f1b9710dd578\"` |\n| `name` | String | Full name of the contact person. Example: `\"NGUYEN CONG THANH\"` |\n| `phoneNumber` | String | Phone number of the contact person. Example: `\"2929292929\"` |\n| `email` | String | Email address of the contact person. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `countryTelCode` | String | International telephone code of the contact's phone number. Example: `\"84\"` |\n| `flightBookingId` | String | Flight booking unique identification. Example:\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\" |\n| `deleted` | Boolean | Check if contact info is deleted or not. Example:`false` |\n\n---\n\n### `passengers` Array Structure\n\nThis array specifies information about each passenger for whom the booking is being made.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `flightBookingId` | String | Id of the flight booking unique. Example: `\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\"` |\n| `index` | Integer | A unique number identifier for the passenger, starting from `1`. Example: `\"1\"` |\n| `type` | Integer | Passenger Type. Possible values: `1` (Adult), `2` (Child), `3` (Infant) Example: `\"1\"` |\n| `idIssuedCountry` | String | The id of issued country. |\n| `idIssueDate` | String | Unknow data. Example: `\"0001-01-01T00:00:00:0000\"` |\n| `idExpiryDate` | String | Expiry date of the ID (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2026-08-19T00:00:00:0000\"` |\n| `frequentFlyerNumbers` | Array | List of frequent flyer number of the passenger. |\n| `ticketList` | Object | List of ticket associated. Example:`[]` |\n| `ancillaries` | Array | Array containing confirmed ancillary services for this passenger (baggage, meals, etc.). See `Response Ancillaries Object Structure`. Example: `[{...}]` |\n| `seats` | Array | object contains passenger seats. Example:`[]` |\n| `id` | String | unique passenger ID. Example: `\"785c1ff9-4b36-4cf8-9025-85ae5e345d60\"` |\n| `firstName` | String | Passenger's first name. Example: `\"CONG THANH\"` |\n| `lastName` | String | Passenger's last name. Example: `\"NGUYEN\"` |\n| `gender` | String | Passenger's gender. Possible values: `\"M\"` (Male), `\"F\"` (Female). Example: `\"M\"` |\n| `dateOfBirth` | String | Passenger's date of birth (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"1993-08-19T00:00:00:0000\"` |\n| `nationality` | String | Passenger's nationality (ISO 3166-1 alpha-2 country code). Example: `\"VN\"` |\n| `idNumber` | String | Passenger's ID card or Passport number. Example: `\"123456789\"` |\n| `idType` | String | Type of ID used. Possible values: `\"passport\"`.Example: `\"passport\"` |\n| `updatedUtc` | String | update time. Example: `\"2025-06-05T08:38:19:5033\"` |\n| `deleted` | Boolean | check if it deleted or not. Example: `false` |\n\n---\n\n### Response `Ancillaries` Object Structure\n\nThis section describes the structure of ancillary services in the API response after successful booking.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the confirmed ancillary service (UUID). Example: `\"41d8bae3-fc1d-4332-9ac5-7eec7895dea8\"` |\n| `providerCode` | String | Code of the flight provider. Example: `\"flight.provider1\"` |\n| `providerReferenceId` | String | Provider's internal reference ID for the booking. Example: `\"917512572783693901\"` |\n| `airlines` | String | 2-letter airline code for the ancillary service. Example: `\"VN\"` |\n| `departureCode` | String | IATA departure airport code. Example: `\"ICN\"` |\n| `arrivalCode` | String | IATA arrival airport code. Example: `\"HAN\"` |\n| `flightNumber` | String | Flight number this ancillary applies to. Example: `\"417\"` |\n| `passengerId` | String | Unique identifier of the passenger this ancillary belongs to. Example: `\"1554efdf-39a8-411f-a561-72da882450c6\"` |\n| `limit` | Integer | Number of pieces/units for this ancillary. Example: `1` |\n| `weight` | String | Weight allowance for baggage ancillaries. Example: `\"23KG\"` |\n| `description` | String | Human-readable description of the ancillary service. Example: `\"1PC X 23KG\"` |\n| `amount` | Number | Price paid for this ancillary service. Example: `113` |\n| `createdBy` | String | Email of the user who created the booking. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `createdUtc` | String | UTC timestamp when the ancillary was created. Example: `\"2025-06-30T04:21:13:9801\"` |\n| `updatedUtc` | String | UTC timestamp when the ancillary was last updated. Example: `\"2025-06-30T04:21:14:2566\"` |"
									},
									"response": []
								}
							],
							"description": "Booking APIs"
						},
						{
							"name": "Manage Booking",
							"item": [
								{
									"name": "Search Booking",
									"request": {
										"method": "POST",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{access_token}}",
												"type": "text"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\r\n    \"pageIndex\": 0,\r\n    \"pageSize\": 1,\r\n    \"sort\": \"createdUtc=desc\"\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/hub/flight/booking/search",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"flight",
												"booking",
												"search"
											]
										},
										"description": "# Flight Booking Search API Documentation\n\n## Overview\n\nThis API retrieves existing flight bookings based on search criteria. Returns detailed booking information including flight itineraries, payment status, and PNR details.\n\n---\n\n## API Endpoint\n\n- **URL:** `{{host}}/hub/flight/booking/search`\n    \n- **Method:** `POST`\n    \n- **Content-Type:** `application/json`\n    \n\n---\n\n## Headers\n\n| Key | Value | Description |\n| --- | --- | --- |\n| `Authorization` | `Bearer {token}` | JWT access token (Required) |\n| `Content-Type` | `application/json` | Request format |\n\n---\n\n## Request Body\n\nEmpty JSON object (Add search filters if supported):\n\n``` json\n{\n    \"pageIndex\": 0,\n    \"pageSize\": 1,\n    \"sort\": \"createdUtc=desc\"\n}\n\n ```\n\n---\n\n## Request Body Description\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `pageIndex` | Integer | ✅ Yes | The page index |\n| `pageSize` | Integer | ✅ Yes | Number of items per page |\n| `sort` | String | ❌ No | The string contains query to sort |\n\n## Sample Request\n\n``` bash\ncurl --location '{{host}}/hub/flight/booking/search' \\\n--header 'Authorization: Bearer {{access_token}}' \\\n--header 'Content-Type: application/json' \\\n--data '{}'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n    \"salesCount\": 0,\n    \"salesAmount\": 445.2400,\n    \"salesProfit\": 0.0000,\n    \"durationInMilisecond\": 599,\n    \"totalCount\": 7,\n    \"totalPage\": 7,\n    \"pageSize\": 1,\n    \"pageIndex\": 0,\n    \"clientOverride\": false,\n    \"data\": [\n        {\n            \"id\": \"e43374f0-cbd7-4378-8891-9d64807d347d\",\n            \"readableId\": \"JKL012\",\n            \"isInternational\": false,\n            \"orderBaseInfo\": {\n                \"providerCode\": \"flight.provider1\",\n                \"providerReferenceId\": \"917330365047335505\",\n                \"status\": \"CONFIRMED\",\n                \"statusIsFinal\": true,\n                \"bookingType\": \"flight\",\n                \"totalAmount\": 0.0000,\n                \"totalSalesAmount\": 0.0,\n                \"totalOriginalAmount\": 0.0000,\n                \"totalPriceModifier\": 0.0000,\n                \"totalServiceFee\": 0.0000,\n                \"refundAmount\": 0.0,\n                \"refundFee\": 0.0,\n                \"currency\": \"USD\",\n                \"convertionRate\": 25519.0000,\n                \"type\": \"ONE_WAY\",\n                \"pnr\": \"JKL012\",\n                \"airlinePNR\": \"XY3456\",\n                \"orderType\": \"O\",\n                \"bookingCode\": \"K\",\n                \"isNeedRebookPNR\": false,\n                \"passengerCount\": 0,\n                \"totalAmountAtHotel\": 0.0,\n                \"refunded\": false\n            },\n            \"orderFlightInfo\": {\n                \"id\": \"569716e3-71e2-454f-8184-690513d8e367\",\n                \"orderId\": \"e43374f0-cbd7-4378-8891-9d64807d347d\",\n                \"flightJourneys\": []\n            },\n            \"orderESimInfos\": [],\n            \"passengers\": [],\n            \"contactInfo\": {\n                \"id\": \"00000000-0000-0000-0000-000000000000\",\n                \"flightBookingId\": \"00000000-0000-0000-0000-000000000000\",\n                \"deleted\": false\n            },\n            \"priceInfo\": {\n                \"id\": \"b7ce6d24-9077-4696-9553-6c9ad372b29e\",\n                \"orderId\": \"e43374f0-cbd7-4378-8891-9d64807d347d\",\n                \"pricingType\": 1,\n                \"couponId\": \"00000000-0000-0000-0000-000000000000\",\n                \"itemType\": 0,\n                \"passengerTotalAmount\": 0.0000,\n                \"ancillaryTotalAmount\": 0.0000,\n                \"seatTotalAmount\": 0.0000,\n                \"ticketFeeAmount\": 0.0000,\n                \"totalAmount\": 0.0000,\n                \"totalOriginalAmount\": 0.0000,\n                \"priceModifier\": 0.0000,\n                \"couponAmount\": 0.0000,\n                \"handlingFee\": 0.0000,\n                \"totalFare\": 85.0000,\n                \"convertionRate\": 25519.0000,\n                \"totalServiceFee\": 0.0000,\n                \"currency\": \"USD\",\n                \"totalTax\": 0.0,\n                \"surcharges\": 0.0,\n                \"amount\": 0.0,\n                \"numberOfRooms\": 0,\n                \"averagePerNightAmount\": 0.0,\n                \"numberOfNights\": 0,\n                \"priceDetails\": [],\n                \"createdBy\": \"the.vo@skyjet.vn\",\n                \"createdUtc\": \"2025-11-07T09:41:18:1433\",\n                \"updatedUtc\": \"2025-11-07T09:41:18:1433\",\n                \"refundable\": false,\n                \"hasBreakfast\": false,\n                \"extraBed\": false,\n                \"nonSmoking\": false\n            },\n            \"createdBy\": \"the.vo@skyjet.vn\",\n            \"createdUtc\": \"2025-11-07T09:41:18:1400\",\n            \"updatedUtc\": \"2025-11-07T09:41:18:1400\",\n            \"agentPath\": \"\"\n        }\n    ]\n}\n\n ```\n\n---\n\n## Response Field Description\n\n### Main Response\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `salesCount` | Integer | The sales count. |\n| `salesAmount` | Number | The sales amount. |\n| `salesProfit` | Number | The sales profit. |\n| `durationInMilisecond` | Number | API processing time in milliseconds |\n| `totalCount` | Integer | Total bookings matching criteria |\n| `totalPage` | Integer | Total pages of results |\n| `pageSize` | Integer | Number of items per page |\n| `pageIndex` | Integer | Current page index |\n| `clientOverride` | Bool | Indicates custom tenant configurations |\n| `data` | Array | List of booking objects (see below) |\n\n### Booking Object\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the booking (UUID). Example: `\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\"` |\n| `readableId` | String | The readable id. |\n| `isInternational` | Bool | Indicates whether the flight is international. |\n| `orderBaseInfo` | Object | Basic information about the order. See `orderBaseInfo` Object Structure. |\n| `orderFlightInfo` | Object | Information about the flights in the order. See `orderFlightInfo` Object Structure. |\n| `passengers` | Array | Array containing passenger information. See `passengers` Array Structure. |\n| `contactInfo` | Object | Contact information for the booking. See `contactInfo` Object Structure. |\n| `priceInfo` | Object | Detailed pricing information. See `priceInfo` Object Structure. |\n| `createdBy` | String | Email address of the user who created the booking. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `createdUtc` | String | Date and time the booking was created (UTC, ISO 8601 format). Example: `\"2025-06-05T08:38:19:4900\"` |\n| `updatedBy` | String | Email address of the user who last updated the booking. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `updatedUtc` | String | Date and time the booking was last updated (UTC, ISO 8601 format). Example: `\"2025-06-05T08:38:21:7477\"` |\n| `agentPath` | String | Path or identifier of the agent. |\n\n---\n\n### `orderBaseInfo` Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `providerCode` | String | ID of the flight provider. Example: `\"flight.provider1\"` |\n| `providerReferenceId` | String | Provider's unique identifier for the booking. Example: `\"917491127052815601\"` |\n| `status` | String | Current status of the booking. Example: `\"TO_BE_PAID\"`. Possible values depend on the system's workflow. |\n| `statusIsFinal` | Boolean | Indicates if the current status is a final state (e.g., `true` if booked successfully). |\n| `bookingType` | String | Type of booking. Example: `\"flight\"` |\n| `totalAmount` | Number | Total amount for the booking. Example: `148.74` |\n| `totalSaleAmount` | Number | Total sale amount for booking. |\n| `totalOriginalAmount` | Number | The originally requested total amount for the booking. This can differ from totalAmount after a price change. Example: `148.74` |\n| `totalPriceModifier` | Number | Amount the total price was modified (e.g., with a coupon). Example: `0` |\n| `totalServiceFee` | Number | Total service fee for booking. |\n| `refundAmount` | Number | Refund amount for booking. |\n| `refundFee` | Number | Refund fee for booking. |\n| `currency` | String | Currency code used for the booking. Example: `\"USD\"` |\n| `convertionRate` | Number | Conversion rate from USD to VND. Example: `26244` |\n| `type` | String | Trip type. Example: `\"ROUND_TRIP\"` |\n| `pnr` | String | Passenger Name Record (PNR) code for the booking. Example: `\"WC2A6H\"` |\n| `airlinePNR` | String | Airline PNR code (if different from `pnr`). Example: `\"\"` (empty string if same as `pnr`) |\n| `orderType` | String | Order type. Example: `\"O\"` (May represent a standard order). |\n| `bookingCode` | String | Fare class code (e.g., \"T\"). Contact the airline for decode the real meaning of bookingCode. Example: `\"T\"` |\n| `isNeedRebookPNR` | Boolean | Indicates if it's need to rebook PNR. Example: `false` |\n| `passengerCount` | Integer | Total number of passengers in the booking. Example: `1` |\n| `totalAmountAtHotel` | Number | Total amount for hotel or any other. Example: `0` |\n| `refunded` | Boolean | Is refunded or not. Example:`false` |\n\n---\n\n### `orderFlightInfo` Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the flight information (UUID). Example: `\"cae6e870-6204-48c7-a008-e6459804e47f\"` |\n| `orderId` | String | ID of the associated order (matches the top-level `id` field). Example: `\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\"` |\n| `flightJourneys` | Array | Array of flight journey objects, detailing each flight leg. See `flightJourneys` Array Structure. |\n\n---\n\n### `flightJourneys` Array Structure\n\nEach object represents a leg of the flight itinerary:\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for this flight journey (UUID). Example: `\"2b2c6be2-7068-4fac-9098-4e6574ed6a66\"` |\n| `flightBookingInfoId` | String | ID of the flight booking information (matches `orderFlightInfo.id`). Example: `\"cae6e870-6204-48c7-a008-e6459804e47f\"` |\n| `sequence` | Integer | Sequence number of the flight journey (1, 2, ...). Starts from 1. Example: `1` |\n| `arrivalDate` | String | Arrival date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `arrivalTime` | String | Arrival time (HH:mm). Example: `\"07:55\"` |\n| `arrivalCode` | String | IATA code of the arrival airport. Example: `\"HAN\"` |\n| `arrivalName` | String | Name of the arrival airport. Example: `\"Hanoi\"` |\n| `departureDate` | String | Departure date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `departureTime` | String | Departure time (HH:mm). Example: `\"05:45\"` |\n| `departureCode` | String | IATA code of the departure airport. Example: `\"SGN\"` |\n| `departureName` | String | Name of the departure airport. Example: `\"Ho Chi Minh City\"` |\n| `travelTime` | Integer | Total travel time in minutes. Example: 130 |\n| `isNDC` | Bool | Indicates whether the flight is distributed through an NDC (New Distribution Capability) channel. |\n| `isChange` | Boolean | Check if flight have change or not. Example: `false` |\n| `pnrNumber` | String | The pnr number. |\n| `status` | String | The status of journey. |\n| `fareHoldTime` | String | The time can hold fare. |\n| `flightSegments` | Array | Array of flight segment objects. See `flightSegments` Array Structure. |\n| `fare` | Object | The detailed pricing and cost information for this journey. See `Journey Fare` Object Structure. |\n\n### Journey Fare Object Structure\n\nThis object provides detailed pricing and cost information for a specific journey. The structure matches the sample fare model from booking/order response.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the fare info (UUID). |\n| `orderId` | String | ID of the order this fare info belongs to. |\n| `couponId` | String | ID of the coupon applied to the booking. |\n| `itemType` | Integer | Type of item being priced (e.g., flight, ancillary, etc.). |\n| `passengerTotalAmount` | Number | Total amount for all passengers in this journey. |\n| `ancillaryTotalAmount` | Number | Total amount for ancillary services in this journey. |\n| `seatTotalAmount` | Number | Total amount for seat reservations in this journey. |\n| `ticketFeeAmount` | Number | Total amount for ticket issuance fees. |\n| `totalAmount` | Number | The final total amount for the journey. |\n| `couponAmount` | Number | Amount reduced due to coupons. |\n| `handlingFee` | Number | Handling fee. |\n| `totalFare` | Number | Total fare excluding tax and fee. |\n| `totalTax` | Number | Total tax. |\n| `amount` | Number | Total amount. |\n| `priceDetails` | Array | Array of ticket price details. Each item includes a `type` field: 1 = Adult, 2 = Children, 3 = Infant. |\n| `createdBy` | String | Creator of this fare info. |\n| `createdUtc` | String | Created datetime. |\n| `updatedUtc` | String | Updated datetime. |\n| `refundable` | Boolean | Indicates if the journey is refundable. |\n\n#### Notes\n\n- The `fare` field is only present in each journey if the booking/order returns journey-level pricing.\n    \n- The structure and fields are similar to the top-level `priceInfo` object, but scoped to the specific journey.\n    \n- If journey-level pricing is not available, the `fare` field will be omitted or null.\n    \n\n#### Example\n\n``` json\n\"flightJourneys\": [\n  {\n    \"id\": \"2b2c6be2-7068-4fac-9098-4e6574ed6a66\",\n    \"sequence\": 1,\n    // ...existing fields...,\n    \"fare\": {\n        \"id\": \"088b8ab3-f09c-4860-b9ee-39ef662d610a\",\n        \"orderId\": \"bf20f9e9-f5f2-4587-9aa4-9bb746fd2e62\",\n        \"flightJourneyId\": \"643d8c99-1656-452d-8442-03d29d186c31\",\n        \"pricingType\": 2,\n        \"couponId\": \"00000000-0000-0000-0000-000000000000\",\n        \"itemType\": 0,\n        \"passengerTotalAmount\": 2128000.0,\n        \"ancillaryTotalAmount\": 0.0,\n        \"seatTotalAmount\": 0.0,\n        \"ticketFeeAmount\": 0.0,\n        \"totalAmount\": 2128000.0,\n        \"totalOriginalAmount\": 2128000.0,\n        \"priceModifier\": 0.0,\n        \"couponAmount\": 0.0,\n        \"handlingFee\": 0.0,\n        \"totalFare\": 1419000.0,\n        \"convertionRate\": 1.0,\n        \"totalTax\": 0.0,\n        \"amount\": 1419000.0,\n        \"priceDetails\": [\n            {\n                \"id\": \"74e9eb8d-7ec1-48a8-9705-62632225cf6d\",\n                \"priceInfoId\": \"088b8ab3-f09c-4860-b9ee-39ef662d610a\",\n                \"count\": 1,\n                \"type\": 1,\n                \"amount\": 1419000.0,\n                \"originalAmount\": 1419000.0,\n                \"priceModifier\": 0.0,\n                \"tax\": 709000.0,\n                \"fee\": 0.0,\n                \"totalAmount\": 2128000.0,\n                \"taxAmount\": 0.0,\n            }\n        ],\n        \"createdBy\": \"694E6C9E-ED3C-43EB-A50F-389ADE398E85\",\n        \"createdUtc\": \"0001-01-01T00:00:00:0000\",\n        \"updatedUtc\": \"2025-07-15T19:43:08:7959\",\n    },\n  }\n]\n\n ```\n\n### `flightSegments` Array Structure\n\nEach object represents a segment within a flight journey:\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the flight segment (UUID). Example: `\"f95a2ce8-baa2-41c2-a9c6-543ecca78e4a\"` |\n| `flightJourneyId` | String | ID of the flight journey this segment belongs to (matches `flightJourneys.id`). Example: `\"2b2c6be2-7068-4fac-9098-4e6574ed6a66\"` |\n| `sequence` | Integer | Segment order within the leg (starting from 1). Example: `1` |\n| `airlinesCode` | String | 2-letter airline code. Example: `\"VU\"` |\n| `airlinesName` | String | Airline name. Example: `\"VIETRAVEL AIRLINES\"` |\n| `arrivalCode` | String | IATA arrival airport code. Example: `\"HAN\"` |\n| `arrivalName` | String | Arrival airport name. Example: `\"Hanoi\"` |\n| `arrivalDate` | String | Arrival date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `arrivalTime` | String | Arrival time (HH:mm). Example: `\"07:55\"` |\n| `departureCode` | String | IATA departure airport code. Example: `\"SGN\"` |\n| `departureName` | String | Departure airport name. Example: `\"Ho Chi Minh City\"` |\n| `departureDate` | String | Departure date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `departureTime` | String | Departure time (HH:mm). Example: `\"05:45\"` |\n| `bookingCode` | String | Fare class code. Example: `\"T\"`. Contact the airline to decode the real meaning of bookingCode. |\n| `cabinClass` | String | Cabin class. Example: `\"ECONOMY\"` |\n| `equipment` | String | Aircraft type. Example: `\"32S\"` |\n| `flightNumber` | String | Flight number. Example: `\"750\"` |\n| `flightTime` | Integer | Flight time in minutes. Example: `130` |\n| `departureTerminal` | String | Departure Terminal. Example: `1` |\n| `arrivalTerminal` | String | Arrival Terminal. Example: `1` |\n| `codeShare` | Boolean | Check if the the flights segments have code share,Example: `false` |\n| `stopTime` | Integer | Layover time in minutes (0 for direct flights). Example: `0` |\n| `hasStop` | Boolean | hasStop check the the flights segments have stop,Example: `false` |\n| `operatingFlightAirlinesName` | String | Name of the operating airline. |\n| `operatingFlightNumber` | String | Flight number operated by the airline. |\n| `operatingFlightAirlinesCode` | String | Airline code. |\n| `baggageRules` | Object | Baggage allowance rules for the segment. See `baggageRules` Structure. |\n| `miniRules` | Object | Rules regarding penalties, refunds, and reissues for the segment. See `miniRules` Structure. |\n\n---\n\n### `baggageRules` Structure\n\nThis object specifies baggage allowances for adults, children, and infants.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Array of baggage rule objects for adults. See `Baggage Rule Object`. |\n| `children` | Array | Array of baggage rule objects for children (if any). |\n| `infants` | Array | Array of baggage rule objects for infants (if any). |\n\n---\n\n#### Baggage Rule Object\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `baggageAmount` | String | `\"0PC\"` | Checked baggage allowance (e.g., `\"0PC\"` = 0 pieces) |\n| `baggageWeight` | String | `\"8KG\"` | Checked baggage weight limit (e.g., `\"7KG\"` = 7 kilograms) |\n| `carryOnAmount` | String | `\"1PC\"` | Cabin baggage allowance (e.g., `\"1PC\"` = 1 piece) |\n| `carryOnWeight` | String | `\"7KG\"` | Cabin baggage weight limit (e.g., `\"7KG\"` = 7 kilograms) |\n\n### `miniRules` Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Array of penalty rule objects for adults. See `Rule Object`. |\n| `children` | Array | Array of penalty rule objects for children (if any). |\n| `infants` | Array | Array of penalty rule objects for infants (if any). |\n\n---\n\n#### Rule Object\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `miniruleText` | String | `\"example rule\"` | The text rule. |\n| `miniruleHtml` | String | `\" example html rule \"` | The html rule. |\n| `penaltyType` | String | `\"REFUND\"` | Fee type (`REFUND`, `REISSUE`). |\n| `allowRefund` | String | `\"NOT_ALLOWED\"` | Indicates if a refund is allowed (`ALLOW`, `NOT_ALLOWED`). |\n| `situation` | String | `\"BEFORE_DEPARTURE\"` | When the penalty applies (`BEFORE_DEPARTURE`, `AFTER_DEPARTURE`). |\n| `noShowTime` | String | `\"BEFORE\"` | No-show timing relative to departure. |\n| `noShowTimeUnit` | String | `\"H\"` | Time unit for the no-show period. |\n| `amount` | Number | `0.0` | Fee amount. |\n| `penaltyPercent` | Number | `0.0` | Fee percentage of the base fare. |\n| `baseType` | String | `\"FARE\"` | Fee calculation base (`FARE` = total fare). |\n\n---\n\n### `ContactInfo` Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for contact (UUID). Example: `\"41b419aa-e9c0-4bc0-95f2-f1b9710dd578\"` |\n| `Name` | String | Full name of the contact person. Example: `\"NGUYEN CONG THANH\"` |\n| `PhoneNumber` | String | Phone number of the contact person. Example: `\"2929292929\"` |\n| `Email` | String | Email address of the contact person. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `CountryTelCode` | String | International telephone code of the contact's phone number. Example: `\"84\"` |\n| `flightBookingId` | String | Flight booking unique identification. Example:\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\" |\n| `deleted` | Boolean | Check if contact info is deleted or not. Example:`false` |\n\n---\n\n### `passengers` Array Structure\n\nThis array specifies information about each passenger for whom the booking is being made.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `flightBookingId` | String | Id of the flight booking unique. Example: `\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\"` |\n| `index` | Integer | A unique number identifier for the passenger, starting from `1`. Example: `\"1\"` |\n| `type` | Integer | Passenger Type. Possible values: `1` (Adult), `2` (Child), `3` (Infant) Example: `\"1\"` |\n| `idIssueDate` | String | Unknow data. Example: `\"0001-01-01T00:00:00:0000\"` |\n| `idExpiryDate` | String | Expiry date of the ID (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2026-08-19T00:00:00:0000\"` |\n| `ticketList` | Object | List of ticket associated. Example:`[]` |\n| `ancillaries` | Object | Object contains ancillary services. Example:`[]` |\n| `seats` | Array | object contains passenger seats. Example:`[]` |\n| `id` | String | unique passenger ID. Example: `\"785c1ff9-4b36-4cf8-9025-85ae5e345d60\"` |\n| `firstName` | String | Passenger's first name. Example: `\"CONG THANH\"` |\n| `lastName` | String | Passenger's last name. Example: `\"NGUYEN\"` |\n| `gender` | String | Passenger's gender. Possible values: `\"M\"` (Male), `\"F\"` (Female). Example: `\"M\"` |\n| `dateOfBirth` | String | Passenger's date of birth (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"1993-08-19T00:00:00:0000\"` |\n| `nationality` | String | Passenger's nationality (ISO 3166-1 alpha-2 country code). Example: `\"VN\"` |\n| `idNumber` | String | Passenger's ID card or Passport number. Example: `\"123456789\"` |\n| `idType` | String | Type of ID used. Possible values: `\"passport\"`.Example: `\"passport\"` |\n| `updatedUtc` | String | update time. Example: `\"2025-06-05T08:38:19:5033\"` |\n| `deleted` | Boolean | check if it deleted or not. Example: `false` |\n\n---\n\n### `priceInfo` Object Structure\n\nThis object provides detailed pricing and cost information.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the price information (UUID). Example: `\"9fab6075-8b22-4e7d-aa1d-2813d6ecc2e9\"` |\n| `orderId` | String | ID of the order this price information belongs to (matches the top-level `id` field). Example: `\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\"` |\n| `pricingType` | Integer | Type of pricing. |\n| `couponId` | String | ID of the coupon applied to the booking. Example: `\"00000000-0000-0000-0000-000000000000\"` (all zeros indicates no coupon) |\n| `itemType` | Integer | Type of item being priced (e.g., might represent a flight, ancillary service, etc.). Example: `0` |\n| `passengerTotalAmount` | Number | Total amount for all passengers. Example: `148.74` |\n| `ancillaryTotalAmount` | Number | Total amount for ancillary services. Example: `0` |\n| `seatTotalAmount` | Number | Total amount for seat reservations. Example: `0` |\n| `ticketFeeAmount` | Number | Total amount for ticket issuance fees. Example: `0` |\n| `totalAmount` | Number | The final total amount for the booking. Example: `148.74` |\n| `couponAmount` | Number | Amount reduced due to coupons. Example: `0` |\n| `handlingFee` | Number | Handling fee. Example: `0` |\n| `totalFare` | Number | Total Fare exclude tax and fee. Example: `92.48` |\n| `convertionRate` | Number | Conversion rate from USD to VND. Example: `26244` |\n| `currency` | String | Currency code for the amounts (e.g., `\"USD\"`). Example: `\"USD\"` |\n| `totalTax` | Number | Total tax. Example: `0` |\n| `surcharges` | Number | More expense if have. |\n| `amount` | Number | Total Amount |\n| `numberOfRooms` | Number | Number of rooms for hotel information |\n| `averagePerNightAmount` | Number | Per night amount. |\n| `numberOfNights` | Number | Number of nights. |\n| `priceDetails` | Object | Object contains ticket price details. |\n| `createdBy` | String | Person create for these price. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `createdUtc` | String | Created Datetime . Example: `\"0001-01-01T00:00:00:0000\"` |\n| `updatedBy` | String | Person update for these price. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `updatedUtc` | String | Update Datetime. Example: `\"2025-06-05T08:38:19:2970\"` |\n| `paidBy` | String | Person paid for these price. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `paidUtc` | String | Paid Datetime. Example: `\"2025-06-05T08:38:19:2970\"` |\n| `cancelledBy` | String | Person cancell for these price. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `cancelledUtc` | String | Cancell Datetime. Example: `\"2025-06-05T08:38:19:2970\"` |\n| `refundable` | Boolean | Check this conditions or not. |\n| `hasBreakfast` | Boolean | Check this if have breakfast or not. |\n| `extraBed` | Boolean | check if have extra bed or not. |\n| `nonSmoking` | Boolean | check non smoking or not |\n\n---\n\n## Notes\n\n- `pnr` is the primary reference for airline reservations\n    \n- Amounts should be converted using `convertionRate` for VND values\n    \n- Flight times are local to departure/arrival airports\n    \n- Booking statuses may vary by airline/provider"
									},
									"response": []
								},
								{
									"name": "Search Booking by PNR",
									"request": {
										"method": "POST",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{access_token}}",
												"type": "text"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\r\n    \"pageIndex\": 0,\r\n    \"pageSize\": 20,\r\n    \"filter\": \"{\\\"and\\\":[{\\\"or\\\":[{\\\"queryKey\\\":\\\"pnr.ToLower()\\\",\\\"queryType\\\":\\\"text\\\",\\\"operation\\\":\\\"eq\\\",\\\"queryValue\\\":\\\"WC5I2A\\\"},{\\\"queryKey\\\":\\\"airlinePNR.ToLower()\\\",\\\"queryType\\\":\\\"text\\\",\\\"operation\\\":\\\"eq\\\",\\\"queryValue\\\":\\\"WC5I2A\\\"},{\\\"queryKey\\\":\\\"Passengers.Any(p => (p.FirstName + p.LastName).ToLower().Contains(\\\\\\\"WC5I2A\\\\\\\"))\\\",\\\"queryType\\\":\\\"boolean\\\",\\\"operation\\\":\\\"eq\\\",\\\"queryValue\\\":true}]}]}\"\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/hub/flight/booking/search",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"flight",
												"booking",
												"search"
											]
										},
										"description": "# Flight Booking Search By PNR API Documentation\n\n## Overview\n\nThis API searches and retrieves existing flight bookings with detailed itinerary and payment information. Supports filtering and pagination for managing bookings.\n\n---\n\n## API Endpoint\n\n- **URL:** `{{host}}/hub/flight/booking/search`\n    \n- **Method:** `POST`\n    \n- **Content-Type:** `application/json`\n    \n\n---\n\n## Headers\n\n| Key | Value | Description |\n| --- | --- | --- |\n| `Authorization` | `Bearer {token}` | JWT access token (Required) |\n| `Content-Type` | `application/json` | Request format |\n\n---\n\n## Request Body\n\n``` json\n{\n    \"pageIndex\": 0,\n    \"pageSize\": 20,\n    \"filter\": \"{\\\"and\\\":[{\\\"or\\\":[{\\\"queryKey\\\":\\\"pnr.ToLower()\\\",\\\"queryType\\\":\\\"text\\\",\\\"operation\\\":\\\"eq\\\",\\\"queryValue\\\":\\\"WC5I2A\\\"},{\\\"queryKey\\\":\\\"airlinePNR.ToLower()\\\",\\\"queryType\\\":\\\"text\\\",\\\"operation\\\":\\\"eq\\\",\\\"queryValue\\\":\\\"WC5I2A\\\"},{\\\"queryKey\\\":\\\"Passengers.Any(p => (p.FirstName + p.LastName).ToLower().Contains(\\\\\\\"WC5I2A\\\\\\\"))\\\",\\\"queryType\\\":\\\"boolean\\\",\\\"operation\\\":\\\"eq\\\",\\\"queryValue\\\":true}]}]}\"\n}\n\n ```\n\n_Note: Add filter parameters here if supported_\n\n## Request Body Description\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `pageIndex` | Integer | ✅ Yes | The page index |\n| `pageSize` | Integer | ✅ Yes | Number of items per page |\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location '{{host}}/hub/flight/booking/search' \\\n--header 'Authorization: Bearer {{access_token}}' \\\n--header 'Content-Type: application/json' \\\n--data '{}'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n    \"salesCount\": 0,\n    \"salesAmount\": 445.2400,\n    \"salesProfit\": 0.0000,\n    \"durationInMilisecond\": 599,\n    \"totalCount\": 7,\n    \"totalPage\": 7,\n    \"pageSize\": 1,\n    \"pageIndex\": 0,\n    \"clientOverride\": false,\n    \"data\": [\n        {\n            \"id\": \"e43374f0-cbd7-4378-8891-9d64807d347d\",\n            \"readableId\": \"JKL012\",\n            \"isInternational\": false,\n            \"orderBaseInfo\": {\n                \"providerCode\": \"flight.provider1\",\n                \"providerReferenceId\": \"917330365047335505\",\n                \"status\": \"CONFIRMED\",\n                \"statusIsFinal\": true,\n                \"bookingType\": \"flight\",\n                \"totalAmount\": 0.0000,\n                \"totalSalesAmount\": 0.0,\n                \"totalOriginalAmount\": 0.0000,\n                \"totalPriceModifier\": 0.0000,\n                \"totalServiceFee\": 0.0000,\n                \"refundAmount\": 0.0,\n                \"refundFee\": 0.0,\n                \"currency\": \"USD\",\n                \"convertionRate\": 25519.0000,\n                \"type\": \"ONE_WAY\",\n                \"pnr\": \"JKL012\",\n                \"airlinePNR\": \"XY3456\",\n                \"orderType\": \"O\",\n                \"bookingCode\": \"K\",\n                \"isNeedRebookPNR\": false,\n                \"passengerCount\": 0,\n                \"totalAmountAtHotel\": 0.0,\n                \"refunded\": false\n            },\n            \"orderFlightInfo\": {\n                \"id\": \"569716e3-71e2-454f-8184-690513d8e367\",\n                \"orderId\": \"e43374f0-cbd7-4378-8891-9d64807d347d\",\n                \"flightJourneys\": []\n            },\n            \"orderESimInfos\": [],\n            \"passengers\": [],\n            \"contactInfo\": {\n                \"id\": \"00000000-0000-0000-0000-000000000000\",\n                \"flightBookingId\": \"00000000-0000-0000-0000-000000000000\",\n                \"deleted\": false\n            },\n            \"priceInfo\": {\n                \"id\": \"b7ce6d24-9077-4696-9553-6c9ad372b29e\",\n                \"orderId\": \"e43374f0-cbd7-4378-8891-9d64807d347d\",\n                \"pricingType\": 1,\n                \"couponId\": \"00000000-0000-0000-0000-000000000000\",\n                \"itemType\": 0,\n                \"passengerTotalAmount\": 0.0000,\n                \"ancillaryTotalAmount\": 0.0000,\n                \"seatTotalAmount\": 0.0000,\n                \"ticketFeeAmount\": 0.0000,\n                \"totalAmount\": 0.0000,\n                \"totalOriginalAmount\": 0.0000,\n                \"priceModifier\": 0.0000,\n                \"couponAmount\": 0.0000,\n                \"handlingFee\": 0.0000,\n                \"totalFare\": 85.0000,\n                \"convertionRate\": 25519.0000,\n                \"totalServiceFee\": 0.0000,\n                \"currency\": \"USD\",\n                \"totalTax\": 0.0,\n                \"surcharges\": 0.0,\n                \"amount\": 0.0,\n                \"numberOfRooms\": 0,\n                \"averagePerNightAmount\": 0.0,\n                \"numberOfNights\": 0,\n                \"priceDetails\": [],\n                \"createdBy\": \"the.vo@skyjet.vn\",\n                \"createdUtc\": \"2025-11-07T09:41:18:1433\",\n                \"updatedUtc\": \"2025-11-07T09:41:18:1433\",\n                \"refundable\": false,\n                \"hasBreakfast\": false,\n                \"extraBed\": false,\n                \"nonSmoking\": false\n            },\n            \"createdBy\": \"the.vo@skyjet.vn\",\n            \"createdUtc\": \"2025-11-07T09:41:18:1400\",\n            \"updatedUtc\": \"2025-11-07T09:41:18:1400\",\n            \"agentPath\": \"\"\n        }\n    ]\n}\n\n ```\n\n---\n\n## Response Field Description\n\n### Main Response\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `salesCount` | Integer | The sales count. |\n| `salesAmount` | Number | The sales amount. |\n| `salesProfit` | Number | The sales profit. |\n| `durationInMilisecond` | Number | API processing time in milliseconds |\n| `totalCount` | Integer | Total bookings matching criteria |\n| `totalPage` | Integer | Total pages of results |\n| `pageSize` | Integer | Number of items per page |\n| `pageIndex` | Integer | Current page index |\n| `clientOverride` | Bool | Indicates custom tenant configurations |\n| `data` | Array | List of booking objects (see below) |\n\n### Booking Object\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the booking (UUID). Example: `\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\"` |\n| `readableId` | String | The readable id. |\n| `isInternational` | Bool | Indicates whether the flight is international. |\n| `orderBaseInfo` | Object | Basic information about the order. See `orderBaseInfo` Object Structure. |\n| `orderFlightInfo` | Object | Information about the flights in the order. See `orderFlightInfo` Object Structure. |\n| `passengers` | Array | Array containing passenger information. See `passengers` Array Structure. |\n| `contactInfo` | Object | Contact information for the booking. See `contactInfo` Object Structure. |\n| `priceInfo` | Object | Detailed pricing information. See `priceInfo` Object Structure. |\n| `createdBy` | String | Email address of the user who created the booking. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `createdUtc` | String | Date and time the booking was created (UTC, ISO 8601 format). Example: `\"2025-06-05T08:38:19:4900\"` |\n| `updatedBy` | String | Email address of the user who last updated the booking. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `updatedUtc` | String | Date and time the booking was last updated (UTC, ISO 8601 format). Example: `\"2025-06-05T08:38:21:7477\"` |\n| `agentPath` | String | Path or identifier of the agent. |\n\n---\n\n### `orderBaseInfo` Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `providerCode` | String | ID of the flight provider. Example: `\"flight.provider1\"` |\n| `providerReferenceId` | String | Provider's unique identifier for the booking. Example: `\"917491127052815601\"` |\n| `status` | String | Current status of the booking. Example: `\"TO_BE_PAID\"`. Possible values depend on the system's workflow. |\n| `statusIsFinal` | Boolean | Indicates if the current status is a final state (e.g., `true` if booked successfully). |\n| `bookingType` | String | Type of booking. Example: `\"flight\"` |\n| `totalAmount` | Number | Total amount for the booking. Example: `148.74` |\n| `totalSaleAmount` | Number | Total sale amount for booking. |\n| `totalOriginalAmount` | Number | The originally requested total amount for the booking. This can differ from totalAmount after a price change. Example: `148.74` |\n| `totalPriceModifier` | Number | Amount the total price was modified (e.g., with a coupon). Example: `0` |\n| `totalServiceFee` | Number | Total service fee for booking. |\n| `refundAmount` | Number | Refund amount for booking. |\n| `refundFee` | Number | Refund fee for booking. |\n| `currency` | String | Currency code used for the booking. Example: `\"USD\"` |\n| `convertionRate` | Number | Conversion rate from USD to VND. Example: `26244` |\n| `type` | String | Trip type. Example: `\"ROUND_TRIP\"` |\n| `pnr` | String | Passenger Name Record (PNR) code for the booking. Example: `\"WC2A6H\"` |\n| `airlinePNR` | String | Airline PNR code (if different from `pnr`). Example: `\"\"` (empty string if same as `pnr`) |\n| `orderType` | String | Order type. Example: `\"O\"` (May represent a standard order). |\n| `bookingCode` | String | Fare class code (e.g., \"T\"). Contact the airline for decode the real meaning of bookingCode. Example: `\"T\"` |\n| `isNeedRebookPNR` | Boolean | Indicates if it's need to rebook PNR. Example: `false` |\n| `passengerCount` | Integer | Total number of passengers in the booking. Example: `1` |\n| `totalAmountAtHotel` | Number | Total amount for hotel or any other. Example: `0` |\n| `refunded` | Boolean | Is refunded or not. Example:`false` |\n\n---\n\n### `orderFlightInfo` Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the flight information (UUID). Example: `\"cae6e870-6204-48c7-a008-e6459804e47f\"` |\n| `orderId` | String | ID of the associated order (matches the top-level `id` field). Example: `\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\"` |\n| `flightJourneys` | Array | Array of flight journey objects, detailing each flight leg. See `flightJourneys` Array Structure. |\n\n---\n\n### `flightJourneys` Array Structure\n\nEach object represents a leg of the flight itinerary:\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for this flight journey (UUID). Example: `\"2b2c6be2-7068-4fac-9098-4e6574ed6a66\"` |\n| `flightBookingInfoId` | String | ID of the flight booking information (matches `orderFlightInfo.id`). Example: `\"cae6e870-6204-48c7-a008-e6459804e47f\"` |\n| `sequence` | Integer | Sequence number of the flight journey (1, 2, ...). Starts from 1. Example: `1` |\n| `arrivalDate` | String | Arrival date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `arrivalTime` | String | Arrival time (HH:mm). Example: `\"07:55\"` |\n| `arrivalCode` | String | IATA code of the arrival airport. Example: `\"HAN\"` |\n| `arrivalName` | String | Name of the arrival airport. Example: `\"Hanoi\"` |\n| `departureDate` | String | Departure date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `departureTime` | String | Departure time (HH:mm). Example: `\"05:45\"` |\n| `departureCode` | String | IATA code of the departure airport. Example: `\"SGN\"` |\n| `departureName` | String | Name of the departure airport. Example: `\"Ho Chi Minh City\"` |\n| `travelTime` | Integer | Total travel time in minutes. Example: 130 |\n| `isNDC` | Bool | Indicates whether the flight is distributed through an NDC (New Distribution Capability) channel. |\n| `isChange` | Boolean | Check if flight have change or not. Example: `false` |\n| `pnrNumber` | String | The pnr number. |\n| `status` | String | The status of journey. |\n| `fareHoldTime` | String | The time can hold fare. |\n| `flightSegments` | Array | Array of flight segment objects. See `flightSegments` Array Structure. |\n| `fare` | Object | The detailed pricing and cost information for this journey. See `Journey Fare` Object Structure. |\n\n### Journey Fare Object Structure\n\nThis object provides detailed pricing and cost information for a specific journey. The structure matches the sample fare model from booking/order response.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the fare info (UUID). |\n| `orderId` | String | ID of the order this fare info belongs to. |\n| `couponId` | String | ID of the coupon applied to the booking. |\n| `itemType` | Integer | Type of item being priced (e.g., flight, ancillary, etc.). |\n| `passengerTotalAmount` | Number | Total amount for all passengers in this journey. |\n| `ancillaryTotalAmount` | Number | Total amount for ancillary services in this journey. |\n| `seatTotalAmount` | Number | Total amount for seat reservations in this journey. |\n| `ticketFeeAmount` | Number | Total amount for ticket issuance fees. |\n| `totalAmount` | Number | The final total amount for the journey. |\n| `couponAmount` | Number | Amount reduced due to coupons. |\n| `handlingFee` | Number | Handling fee. |\n| `totalFare` | Number | Total fare excluding tax and fee. |\n| `totalTax` | Number | Total tax. |\n| `amount` | Number | Total amount. |\n| `priceDetails` | Array | Array of ticket price details. Each item includes a `type` field: 1 = Adult, 2 = Children, 3 = Infant. |\n| `createdBy` | String | Creator of this fare info. |\n| `createdUtc` | String | Created datetime. |\n| `updatedUtc` | String | Updated datetime. |\n| `refundable` | Boolean | Indicates if the journey is refundable. |\n\n#### Notes\n\n- The `fare` field is only present in each journey if the booking/order returns journey-level pricing.\n    \n- The structure and fields are similar to the top-level `priceInfo` object, but scoped to the specific journey.\n    \n- If journey-level pricing is not available, the `fare` field will be omitted or null.\n    \n\n#### Example\n\n``` json\n\"flightJourneys\": [\n  {\n    \"id\": \"2b2c6be2-7068-4fac-9098-4e6574ed6a66\",\n    \"sequence\": 1,\n    // ...existing fields...,\n    \"fare\": {\n        \"id\": \"088b8ab3-f09c-4860-b9ee-39ef662d610a\",\n        \"orderId\": \"bf20f9e9-f5f2-4587-9aa4-9bb746fd2e62\",\n        \"flightJourneyId\": \"643d8c99-1656-452d-8442-03d29d186c31\",\n        \"pricingType\": 2,\n        \"couponId\": \"00000000-0000-0000-0000-000000000000\",\n        \"itemType\": 0,\n        \"passengerTotalAmount\": 2128000.0,\n        \"ancillaryTotalAmount\": 0.0,\n        \"seatTotalAmount\": 0.0,\n        \"ticketFeeAmount\": 0.0,\n        \"totalAmount\": 2128000.0,\n        \"totalOriginalAmount\": 2128000.0,\n        \"priceModifier\": 0.0,\n        \"couponAmount\": 0.0,\n        \"handlingFee\": 0.0,\n        \"totalFare\": 1419000.0,\n        \"convertionRate\": 1.0,\n        \"totalTax\": 0.0,\n        \"amount\": 1419000.0,\n        \"priceDetails\": [\n            {\n                \"id\": \"74e9eb8d-7ec1-48a8-9705-62632225cf6d\",\n                \"priceInfoId\": \"088b8ab3-f09c-4860-b9ee-39ef662d610a\",\n                \"count\": 1,\n                \"type\": 1,\n                \"amount\": 1419000.0,\n                \"originalAmount\": 1419000.0,\n                \"priceModifier\": 0.0,\n                \"tax\": 709000.0,\n                \"fee\": 0.0,\n                \"totalAmount\": 2128000.0,\n                \"taxAmount\": 0.0,\n            }\n        ],\n        \"createdBy\": \"694E6C9E-ED3C-43EB-A50F-389ADE398E85\",\n        \"createdUtc\": \"0001-01-01T00:00:00:0000\",\n        \"updatedUtc\": \"2025-07-15T19:43:08:7959\",\n    },\n  }\n]\n\n ```\n\n### `flightSegments` Array Structure\n\nEach object represents a segment within a flight journey:\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the flight segment (UUID). Example: `\"f95a2ce8-baa2-41c2-a9c6-543ecca78e4a\"` |\n| `flightJourneyId` | String | ID of the flight journey this segment belongs to (matches `flightJourneys.id`). Example: `\"2b2c6be2-7068-4fac-9098-4e6574ed6a66\"` |\n| `sequence` | Integer | Segment order within the leg (starting from 1). Example: `1` |\n| `airlinesCode` | String | 2-letter airline code. Example: `\"VU\"` |\n| `airlinesName` | String | Airline name. Example: `\"VIETRAVEL AIRLINES\"` |\n| `arrivalCode` | String | IATA arrival airport code. Example: `\"HAN\"` |\n| `arrivalName` | String | Arrival airport name. Example: `\"Hanoi\"` |\n| `arrivalDate` | String | Arrival date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `arrivalTime` | String | Arrival time (HH:mm). Example: `\"07:55\"` |\n| `departureCode` | String | IATA departure airport code. Example: `\"SGN\"` |\n| `departureName` | String | Departure airport name. Example: `\"Ho Chi Minh City\"` |\n| `departureDate` | String | Departure date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `departureTime` | String | Departure time (HH:mm). Example: `\"05:45\"` |\n| `bookingCode` | String | Fare class code. Example: `\"T\"`. Contact the airline to decode the real meaning of bookingCode. |\n| `cabinClass` | String | Cabin class. Example: `\"ECONOMY\"` |\n| `equipment` | String | Aircraft type. Example: `\"32S\"` |\n| `flightNumber` | String | Flight number. Example: `\"750\"` |\n| `flightTime` | Integer | Flight time in minutes. Example: `130` |\n| `departureTerminal` | String | Departure Terminal. Example: `1` |\n| `arrivalTerminal` | String | Arrival Terminal. Example: `1` |\n| `codeShare` | Boolean | Check if the the flights segments have code share,Example: `false` |\n| `stopTime` | Integer | Layover time in minutes (0 for direct flights). Example: `0` |\n| `hasStop` | Boolean | hasStop check the the flights segments have stop,Example: `false` |\n| `operatingFlightAirlinesName` | String | Name of the operating airline. |\n| `operatingFlightNumber` | String | Flight number operated by the airline. |\n| `operatingFlightAirlinesCode` | String | Airline code. |\n| `baggageRules` | Object | Baggage allowance rules for the segment. See `baggageRules` Structure. |\n| `miniRules` | Object | Rules regarding penalties, refunds, and reissues for the segment. See `miniRules` Structure. |\n\n---\n\n### `baggageRules` Structure\n\nThis object specifies baggage allowances for adults, children, and infants.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Array of baggage rule objects for adults. See `Baggage Rule Object`. |\n| `children` | Array | Array of baggage rule objects for children (if any). |\n| `infants` | Array | Array of baggage rule objects for infants (if any). |\n\n---\n\n#### Baggage Rule Object\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `baggageAmount` | String | `\"0PC\"` | Checked baggage allowance (e.g., `\"0PC\"` = 0 pieces) |\n| `baggageWeight` | String | `\"8KG\"` | Checked baggage weight limit (e.g., `\"7KG\"` = 7 kilograms) |\n| `carryOnAmount` | String | `\"1PC\"` | Cabin baggage allowance (e.g., `\"1PC\"` = 1 piece) |\n| `carryOnWeight` | String | `\"7KG\"` | Cabin baggage weight limit (e.g., `\"7KG\"` = 7 kilograms) |\n\n### `miniRules` Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Array of penalty rule objects for adults. See `Rule Object`. |\n| `children` | Array | Array of penalty rule objects for children (if any). |\n| `infants` | Array | Array of penalty rule objects for infants (if any). |\n\n---\n\n#### Rule Object\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `miniruleText` | String | `\"example rule\"` | The text rule. |\n| `miniruleHtml` | String | `\" example html rule \"` | The html rule. |\n| `penaltyType` | String | `\"REFUND\"` | Fee type (`REFUND`, `REISSUE`). |\n| `allowRefund` | String | `\"NOT_ALLOWED\"` | Indicates if a refund is allowed (`ALLOW`, `NOT_ALLOWED`). |\n| `situation` | String | `\"BEFORE_DEPARTURE\"` | When the penalty applies (`BEFORE_DEPARTURE`, `AFTER_DEPARTURE`). |\n| `noShowTime` | String | `\"BEFORE\"` | No-show timing relative to departure. |\n| `noShowTimeUnit` | String | `\"H\"` | Time unit for the no-show period. |\n| `amount` | Number | `0.0` | Fee amount. |\n| `penaltyPercent` | Number | `0.0` | Fee percentage of the base fare. |\n| `baseType` | String | `\"FARE\"` | Fee calculation base (`FARE` = total fare). |\n\n---\n\n### `ContactInfo` Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for contact (UUID). Example: `\"41b419aa-e9c0-4bc0-95f2-f1b9710dd578\"` |\n| `Name` | String | Full name of the contact person. Example: `\"NGUYEN CONG THANH\"` |\n| `PhoneNumber` | String | Phone number of the contact person. Example: `\"2929292929\"` |\n| `Email` | String | Email address of the contact person. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `CountryTelCode` | String | International telephone code of the contact's phone number. Example: `\"84\"` |\n| `flightBookingId` | String | Flight booking unique identification. Example:\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\" |\n| `deleted` | Boolean | Check if contact info is deleted or not. Example:`false` |\n\n---\n\n### `passengers` Array Structure\n\nThis array specifies information about each passenger for whom the booking is being made.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `flightBookingId` | String | Id of the flight booking unique. Example: `\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\"` |\n| `index` | Integer | A unique number identifier for the passenger, starting from `1`. Example: `\"1\"` |\n| `type` | Integer | Passenger Type. Possible values: `1` (Adult), `2` (Child), `3` (Infant) Example: `\"1\"` |\n| `idIssueDate` | String | Unknow data. Example: `\"0001-01-01T00:00:00:0000\"` |\n| `idExpiryDate` | String | Expiry date of the ID (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2026-08-19T00:00:00:0000\"` |\n| `ticketList` | Object | List of ticket associated. Example:`[]` |\n| `ancillaries` | Object | Object contains ancillary services. Example:`[]` |\n| `seats` | Array | object contains passenger seats. Example:`[]` |\n| `id` | String | unique passenger ID. Example: `\"785c1ff9-4b36-4cf8-9025-85ae5e345d60\"` |\n| `firstName` | String | Passenger's first name. Example: `\"CONG THANH\"` |\n| `lastName` | String | Passenger's last name. Example: `\"NGUYEN\"` |\n| `gender` | String | Passenger's gender. Possible values: `\"M\"` (Male), `\"F\"` (Female). Example: `\"M\"` |\n| `dateOfBirth` | String | Passenger's date of birth (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"1993-08-19T00:00:00:0000\"` |\n| `nationality` | String | Passenger's nationality (ISO 3166-1 alpha-2 country code). Example: `\"VN\"` |\n| `idNumber` | String | Passenger's ID card or Passport number. Example: `\"123456789\"` |\n| `idType` | String | Type of ID used. Possible values: `\"passport\"`.Example: `\"passport\"` |\n| `updatedUtc` | String | update time. Example: `\"2025-06-05T08:38:19:5033\"` |\n| `deleted` | Boolean | check if it deleted or not. Example: `false` |\n\n---\n\n### `priceInfo` Object Structure\n\nThis object provides detailed pricing and cost information.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the price information (UUID). Example: `\"9fab6075-8b22-4e7d-aa1d-2813d6ecc2e9\"` |\n| `orderId` | String | ID of the order this price information belongs to (matches the top-level `id` field). Example: `\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\"` |\n| `pricingType` | Integer | Type of pricing. |\n| `couponId` | String | ID of the coupon applied to the booking. Example: `\"00000000-0000-0000-0000-000000000000\"` (all zeros indicates no coupon) |\n| `itemType` | Integer | Type of item being priced (e.g., might represent a flight, ancillary service, etc.). Example: `0` |\n| `passengerTotalAmount` | Number | Total amount for all passengers. Example: `148.74` |\n| `ancillaryTotalAmount` | Number | Total amount for ancillary services. Example: `0` |\n| `seatTotalAmount` | Number | Total amount for seat reservations. Example: `0` |\n| `ticketFeeAmount` | Number | Total amount for ticket issuance fees. Example: `0` |\n| `totalAmount` | Number | The final total amount for the booking. Example: `148.74` |\n| `couponAmount` | Number | Amount reduced due to coupons. Example: `0` |\n| `handlingFee` | Number | Handling fee. Example: `0` |\n| `totalFare` | Number | Total Fare exclude tax and fee. Example: `92.48` |\n| `convertionRate` | Number | Conversion rate from USD to VND. Example: `26244` |\n| `currency` | String | Currency code for the amounts (e.g., `\"USD\"`). Example: `\"USD\"` |\n| `totalTax` | Number | Total tax. Example: `0` |\n| `surcharges` | Number | More expense if have. |\n| `amount` | Number | Total Amount |\n| `numberOfRooms` | Number | Number of rooms for hotel information |\n| `averagePerNightAmount` | Number | Per night amount. |\n| `numberOfNights` | Number | Number of nights. |\n| `priceDetails` | Object | Object contains ticket price details. |\n| `createdBy` | String | Person create for these price. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `createdUtc` | String | Created Datetime . Example: `\"0001-01-01T00:00:00:0000\"` |\n| `updatedBy` | String | Person update for these price. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `updatedUtc` | String | Update Datetime. Example: `\"2025-06-05T08:38:19:2970\"` |\n| `paidBy` | String | Person paid for these price. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `paidUtc` | String | Paid Datetime. Example: `\"2025-06-05T08:38:19:2970\"` |\n| `cancelledBy` | String | Person cancell for these price. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `cancelledUtc` | String | Cancell Datetime. Example: `\"2025-06-05T08:38:19:2970\"` |\n| `refundable` | Boolean | Check this conditions or not. |\n| `hasBreakfast` | Boolean | Check this if have breakfast or not. |\n| `extraBed` | Boolean | check if have extra bed or not. |\n| `nonSmoking` | Boolean | check non smoking or not |\n\n---\n\n## Notes\n\n1. Use `convertionRate` to calculate VND amounts:  \n    `totalAmountVND = totalAmountUSD \\\\* convertionRate`\n    \n2. `pnr` is the primary identifier for airline systems\n    \n3. Flight times use local airport timezones\n    \n4. Multiple flight segments indicate connecting flights\n    \n5. Final statuses (`statusIsFinal: true`) prevent further changes"
									},
									"response": []
								},
								{
									"name": "Get booking by Id",
									"request": {
										"method": "GET",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{access_token}}",
												"type": "text"
											}
										],
										"url": {
											"raw": "{{host}}/hub/flight/booking/{{orderId}}",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"flight",
												"booking",
												"{{orderId}}"
											]
										},
										"description": "# Flight Booking Details API Documentation\n\n## Overview\n\nThis API retrieves all details of a specific flight booking, including passenger info, flight itinerary, journey-level pricing, and operational rules.\n\n---\n\n## API Endpoint\n\n- **URL:** `{{host}}/hub/flight/booking/{orderId}`\n    \n- **Method:** `GET`\n    \n\n---\n\n## Headers\n\nNo headers required for this request\n\n---\n\n## Request Body\n\nNo parameters required for GET request\n\n---\n\n## Path Parameters\n\n| Field | Type | Description | Example |\n| --- | --- | --- | --- |\n| `orderId` | String | Unique booking UUID | `bf20f9e9-f5f2-4587-9aa4-9bb746fd2e62` |\n\n---\n\n## Sample Response\n\n``` json\n{\n    \"id\": \"e43374f0-cbd7-4378-8891-9d64807d347d\",\n    \"readableId\": \"JKL012\",\n    \"isInternational\": false,\n    \"orderBaseInfo\": {\n        \"providerCode\": \"flight.provider1\",\n        \"providerReferenceId\": \"917330365047335505\",\n        \"status\": \"CONFIRMED\",\n        \"statusIsFinal\": true,\n        \"bookingType\": \"flight\",\n        \"totalAmount\": 0.0000,\n        \"totalSalesAmount\": 0.0,\n        \"totalOriginalAmount\": 0.0000,\n        \"totalPriceModifier\": 0.0000,\n        \"totalServiceFee\": 0.0000,\n        \"refundAmount\": 0.0,\n        \"refundFee\": 0.0,\n        \"currency\": \"USD\",\n        \"convertionRate\": 25519.0000,\n        \"type\": \"ONE_WAY\",\n        \"pnr\": \"JKL012\",\n        \"airlinePNR\": \"XY3456\",\n        \"orderType\": \"O\",\n        \"bookingCode\": \"K\",\n        \"isNeedRebookPNR\": false,\n        \"passengerCount\": 0,\n        \"totalAmountAtHotel\": 0.0,\n        \"refunded\": false\n    },\n    \"orderFlightInfo\": {\n        \"id\": \"569716e3-71e2-454f-8184-690513d8e367\",\n        \"orderId\": \"e43374f0-cbd7-4378-8891-9d64807d347d\",\n        \"flightJourneys\": []\n    },\n    \"orderESimInfos\": [],\n    \"passengers\": [],\n    \"contactInfo\": {\n        \"id\": \"00000000-0000-0000-0000-000000000000\",\n        \"flightBookingId\": \"00000000-0000-0000-0000-000000000000\",\n        \"deleted\": false\n    },\n    \"priceInfo\": {\n        \"id\": \"b7ce6d24-9077-4696-9553-6c9ad372b29e\",\n        \"orderId\": \"e43374f0-cbd7-4378-8891-9d64807d347d\",\n        \"pricingType\": 1,\n        \"couponId\": \"00000000-0000-0000-0000-000000000000\",\n        \"itemType\": 0,\n        \"passengerTotalAmount\": 0.0000,\n        \"ancillaryTotalAmount\": 0.0000,\n        \"seatTotalAmount\": 0.0000,\n        \"ticketFeeAmount\": 0.0000,\n        \"totalAmount\": 0.0000,\n        \"totalOriginalAmount\": 0.0000,\n        \"priceModifier\": 0.0000,\n        \"couponAmount\": 0.0000,\n        \"handlingFee\": 0.0000,\n        \"totalFare\": 85.0000,\n        \"convertionRate\": 25519.0000,\n        \"totalServiceFee\": 0.0000,\n        \"currency\": \"USD\",\n        \"totalTax\": 0.0,\n        \"surcharges\": 0.0,\n        \"amount\": 0.0,\n        \"numberOfRooms\": 0,\n        \"averagePerNightAmount\": 0.0,\n        \"numberOfNights\": 0,\n        \"priceDetails\": [],\n        \"createdBy\": \"the.vo@skyjet.vn\",\n        \"createdUtc\": \"2025-11-07T09:41:18:1433\",\n        \"updatedUtc\": \"2025-11-07T09:41:18:1433\",\n        \"refundable\": false,\n        \"hasBreakfast\": false,\n        \"extraBed\": false,\n        \"nonSmoking\": false\n    },\n    \"createdBy\": \"the.vo@skyjet.vn\",\n    \"createdUtc\": \"2025-11-07T09:41:18:1400\",\n    \"updatedUtc\": \"2025-11-07T09:41:18:1400\",\n    \"agentPath\": \"\"\n}\n\n ```\n\n---\n\n## Response Field Description\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the booking (UUID). Example: `\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\"` |\n| `readableId` | String | The readable id. |\n| `isInternational` | Bool | Indicates whether the flight is international. |\n| `orderBaseInfo` | Object | Basic information about the order. See `orderBaseInfo` Object Structure. |\n| `orderFlightInfo` | Object | Information about the flights in the order. See `orderFlightInfo` Object Structure. |\n| `passengers` | Array | Array containing passenger information. See `passengers` Array Structure. |\n| `contactInfo` | Object | Contact information for the booking. See `contactInfo` Object Structure. |\n| `priceInfo` | Object | Detailed pricing information. See `priceInfo` Object Structure. |\n| `createdBy` | String | Email address of the user who created the booking. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `createdUtc` | String | Date and time the booking was created (UTC, ISO 8601 format). Example: `\"2025-06-05T08:38:19:4900\"` |\n| `updatedBy` | String | Email address of the user who last updated the booking. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `updatedUtc` | String | Date and time the booking was last updated (UTC, ISO 8601 format). Example: `\"2025-06-05T08:38:21:7477\"` |\n| `agentPath` | String | Path or identifier of the agent. |\n\n---\n\n### `orderBaseInfo` Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `providerCode` | String | ID of the flight provider. Example: `\"flight.provider1\"` |\n| `providerReferenceId` | String | Provider's unique identifier for the booking. Example: `\"917491127052815601\"` |\n| `status` | String | Current status of the booking. Example: `\"TO_BE_PAID\"`. Possible values depend on the system's workflow. |\n| `statusIsFinal` | Boolean | Indicates if the current status is a final state (e.g., `true` if booked successfully). |\n| `bookingType` | String | Type of booking. Example: `\"flight\"` |\n| `totalAmount` | Number | Total amount for the booking. Example: `148.74` |\n| `totalSaleAmount` | Number | Total sale amount for booking. |\n| `totalOriginalAmount` | Number | The originally requested total amount for the booking. This can differ from totalAmount after a price change. Example: `148.74` |\n| `totalPriceModifier` | Number | Amount the total price was modified (e.g., with a coupon). Example: `0` |\n| `totalServiceFee` | Number | Total service fee for booking. |\n| `refundAmount` | Number | Refund amount for booking. |\n| `refundFee` | Number | Refund fee for booking. |\n| `currency` | String | Currency code used for the booking. Example: `\"USD\"` |\n| `convertionRate` | Number | Conversion rate from USD to VND. Example: `26244` |\n| `type` | String | Trip type. Example: `\"ROUND_TRIP\"` |\n| `pnr` | String | Passenger Name Record (PNR) code for the booking. Example: `\"WC2A6H\"` |\n| `airlinePNR` | String | Airline PNR code (if different from `pnr`). Example: `\"\"` (empty string if same as `pnr`) |\n| `orderType` | String | Order type. Example: `\"O\"` (May represent a standard order). |\n| `bookingCode` | String | Fare class code (e.g., \"T\"). Contact the airline for decode the real meaning of bookingCode. Example: `\"T\"` |\n| `isNeedRebookPNR` | Boolean | Indicates if it's need to rebook PNR. Example: `false` |\n| `passengerCount` | Integer | Total number of passengers in the booking. Example: `1` |\n| `totalAmountAtHotel` | Number | Total amount for hotel or any other. Example: `0` |\n| `refunded` | Boolean | Is refunded or not. Example:`false` |\n\n---\n\n### `orderFlightInfo` Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the flight information (UUID). Example: `\"cae6e870-6204-48c7-a008-e6459804e47f\"` |\n| `orderId` | String | ID of the associated order (matches the top-level `id` field). Example: `\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\"` |\n| `flightJourneys` | Array | Array of flight journey objects, detailing each flight leg. See `flightJourneys` Array Structure. |\n\n---\n\n### `flightJourneys` Array Structure\n\nEach object represents a leg of the flight itinerary:\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for this flight journey (UUID). Example: `\"2b2c6be2-7068-4fac-9098-4e6574ed6a66\"` |\n| `flightBookingInfoId` | String | ID of the flight booking information (matches `orderFlightInfo.id`). Example: `\"cae6e870-6204-48c7-a008-e6459804e47f\"` |\n| `sequence` | Integer | Sequence number of the flight journey (1, 2, ...). Starts from 1. Example: `1` |\n| `arrivalDate` | String | Arrival date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `arrivalTime` | String | Arrival time (HH:mm). Example: `\"07:55\"` |\n| `arrivalCode` | String | IATA code of the arrival airport. Example: `\"HAN\"` |\n| `arrivalName` | String | Name of the arrival airport. Example: `\"Hanoi\"` |\n| `departureDate` | String | Departure date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `departureTime` | String | Departure time (HH:mm). Example: `\"05:45\"` |\n| `departureCode` | String | IATA code of the departure airport. Example: `\"SGN\"` |\n| `departureName` | String | Name of the departure airport. Example: `\"Ho Chi Minh City\"` |\n| `travelTime` | Integer | Total travel time in minutes. Example: 130 |\n| `isNDC` | Bool | Indicates whether the flight is distributed through an NDC (New Distribution Capability) channel. |\n| `isChange` | Boolean | Check if flight have change or not. Example: `false` |\n| `pnrNumber` | String | The pnr number. |\n| `status` | String | The status of journey. |\n| `fareHoldTime` | String | The time can hold fare. |\n| `flightSegments` | Array | Array of flight segment objects. See `flightSegments` Array Structure. |\n| `fare` | Object | The detailed pricing and cost information for this journey. See `Journey Fare` Object Structure. |\n\n### Journey Fare Object Structure\n\nThis object provides detailed pricing and cost information for a specific journey. The structure matches the sample fare model from booking/order response.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the fare info (UUID). |\n| `orderId` | String | ID of the order this fare info belongs to. |\n| `couponId` | String | ID of the coupon applied to the booking. |\n| `itemType` | Integer | Type of item being priced (e.g., flight, ancillary, etc.). |\n| `passengerTotalAmount` | Number | Total amount for all passengers in this journey. |\n| `ancillaryTotalAmount` | Number | Total amount for ancillary services in this journey. |\n| `seatTotalAmount` | Number | Total amount for seat reservations in this journey. |\n| `ticketFeeAmount` | Number | Total amount for ticket issuance fees. |\n| `totalAmount` | Number | The final total amount for the journey. |\n| `couponAmount` | Number | Amount reduced due to coupons. |\n| `handlingFee` | Number | Handling fee. |\n| `totalFare` | Number | Total fare excluding tax and fee. |\n| `totalTax` | Number | Total tax. |\n| `amount` | Number | Total amount. |\n| `priceDetails` | Array | Array of ticket price details. Each item includes a `type` field: 1 = Adult, 2 = Children, 3 = Infant. |\n| `createdBy` | String | Creator of this fare info. |\n| `createdUtc` | String | Created datetime. |\n| `updatedUtc` | String | Updated datetime. |\n| `refundable` | Boolean | Indicates if the journey is refundable. |\n\n#### Notes\n\n- The `fare` field is only present in each journey if the booking/order returns journey-level pricing.\n    \n- The structure and fields are similar to the top-level `priceInfo` object, but scoped to the specific journey.\n    \n- If journey-level pricing is not available, the `fare` field will be omitted or null.\n    \n\n#### Example\n\n``` json\n\"flightJourneys\": [\n  {\n    \"id\": \"2b2c6be2-7068-4fac-9098-4e6574ed6a66\",\n    \"sequence\": 1,\n    // ...existing fields...,\n    \"fare\": {\n        \"id\": \"088b8ab3-f09c-4860-b9ee-39ef662d610a\",\n        \"orderId\": \"bf20f9e9-f5f2-4587-9aa4-9bb746fd2e62\",\n        \"flightJourneyId\": \"643d8c99-1656-452d-8442-03d29d186c31\",\n        \"pricingType\": 2,\n        \"couponId\": \"00000000-0000-0000-0000-000000000000\",\n        \"itemType\": 0,\n        \"passengerTotalAmount\": 2128000.0,\n        \"ancillaryTotalAmount\": 0.0,\n        \"seatTotalAmount\": 0.0,\n        \"ticketFeeAmount\": 0.0,\n        \"totalAmount\": 2128000.0,\n        \"totalOriginalAmount\": 2128000.0,\n        \"priceModifier\": 0.0,\n        \"couponAmount\": 0.0,\n        \"handlingFee\": 0.0,\n        \"totalFare\": 1419000.0,\n        \"convertionRate\": 1.0,\n        \"totalTax\": 0.0,\n        \"amount\": 1419000.0,\n        \"priceDetails\": [\n            {\n                \"id\": \"74e9eb8d-7ec1-48a8-9705-62632225cf6d\",\n                \"priceInfoId\": \"088b8ab3-f09c-4860-b9ee-39ef662d610a\",\n                \"count\": 1,\n                \"type\": 1,\n                \"amount\": 1419000.0,\n                \"originalAmount\": 1419000.0,\n                \"priceModifier\": 0.0,\n                \"tax\": 709000.0,\n                \"fee\": 0.0,\n                \"totalAmount\": 2128000.0,\n                \"taxAmount\": 0.0,\n            }\n        ],\n        \"createdBy\": \"694E6C9E-ED3C-43EB-A50F-389ADE398E85\",\n        \"createdUtc\": \"0001-01-01T00:00:00:0000\",\n        \"updatedUtc\": \"2025-07-15T19:43:08:7959\",\n    },\n  }\n]\n\n ```\n\n### `flightSegments` Array Structure\n\nEach object represents a segment within a flight journey:\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the flight segment (UUID). Example: `\"f95a2ce8-baa2-41c2-a9c6-543ecca78e4a\"` |\n| `flightJourneyId` | String | ID of the flight journey this segment belongs to (matches `flightJourneys.id`). Example: `\"2b2c6be2-7068-4fac-9098-4e6574ed6a66\"` |\n| `sequence` | Integer | Segment order within the leg (starting from 1). Example: `1` |\n| `airlinesCode` | String | 2-letter airline code. Example: `\"VU\"` |\n| `airlinesName` | String | Airline name. Example: `\"VIETRAVEL AIRLINES\"` |\n| `arrivalCode` | String | IATA arrival airport code. Example: `\"HAN\"` |\n| `arrivalName` | String | Arrival airport name. Example: `\"Hanoi\"` |\n| `arrivalDate` | String | Arrival date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `arrivalTime` | String | Arrival time (HH:mm). Example: `\"07:55\"` |\n| `departureCode` | String | IATA departure airport code. Example: `\"SGN\"` |\n| `departureName` | String | Departure airport name. Example: `\"Ho Chi Minh City\"` |\n| `departureDate` | String | Departure date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `departureTime` | String | Departure time (HH:mm). Example: `\"05:45\"` |\n| `bookingCode` | String | Fare class code. Example: `\"T\"`. Contact the airline to decode the real meaning of bookingCode. |\n| `cabinClass` | String | Cabin class. Example: `\"ECONOMY\"` |\n| `equipment` | String | Aircraft type. Example: `\"32S\"` |\n| `flightNumber` | String | Flight number. Example: `\"750\"` |\n| `flightTime` | Integer | Flight time in minutes. Example: `130` |\n| `departureTerminal` | String | Departure Terminal. Example: `1` |\n| `arrivalTerminal` | String | Arrival Terminal. Example: `1` |\n| `codeShare` | Boolean | Check if the the flights segments have code share,Example: `false` |\n| `stopTime` | Integer | Layover time in minutes (0 for direct flights). Example: `0` |\n| `hasStop` | Boolean | hasStop check the the flights segments have stop,Example: `false` |\n| `operatingFlightAirlinesName` | String | Name of the operating airline. |\n| `operatingFlightNumber` | String | Flight number operated by the airline. |\n| `operatingFlightAirlinesCode` | String | Airline code. |\n| `baggageRules` | Object | Baggage allowance rules for the segment. See `baggageRules` Structure. |\n| `miniRules` | Object | Rules regarding penalties, refunds, and reissues for the segment. See `miniRules` Structure. |\n\n---\n\n### `baggageRules` Structure\n\nThis object specifies baggage allowances for adults, children, and infants.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Array of baggage rule objects for adults. See `Baggage Rule Object`. |\n| `children` | Array | Array of baggage rule objects for children (if any). |\n| `infants` | Array | Array of baggage rule objects for infants (if any). |\n\n---\n\n#### Baggage Rule Object\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `baggageAmount` | String | `\"0PC\"` | Checked baggage allowance (e.g., `\"0PC\"` = 0 pieces) |\n| `baggageWeight` | String | `\"8KG\"` | Checked baggage weight limit (e.g., `\"7KG\"` = 7 kilograms) |\n| `carryOnAmount` | String | `\"1PC\"` | Cabin baggage allowance (e.g., `\"1PC\"` = 1 piece) |\n| `carryOnWeight` | String | `\"7KG\"` | Cabin baggage weight limit (e.g., `\"7KG\"` = 7 kilograms) |\n\n### `miniRules` Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Array of penalty rule objects for adults. See `Rule Object`. |\n| `children` | Array | Array of penalty rule objects for children (if any). |\n| `infants` | Array | Array of penalty rule objects for infants (if any). |\n\n---\n\n#### Rule Object\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `miniruleText` | String | `\"example rule\"` | The text rule. |\n| `miniruleHtml` | String | `\" example html rule \"` | The html rule. |\n| `penaltyType` | String | `\"REFUND\"` | Fee type (`REFUND`, `REISSUE`). |\n| `allowRefund` | String | `\"NOT_ALLOWED\"` | Indicates if a refund is allowed (`ALLOW`, `NOT_ALLOWED`). |\n| `situation` | String | `\"BEFORE_DEPARTURE\"` | When the penalty applies (`BEFORE_DEPARTURE`, `AFTER_DEPARTURE`). |\n| `noShowTime` | String | `\"BEFORE\"` | No-show timing relative to departure. |\n| `noShowTimeUnit` | String | `\"H\"` | Time unit for the no-show period. |\n| `amount` | Number | `0.0` | Fee amount. |\n| `penaltyPercent` | Number | `0.0` | Fee percentage of the base fare. |\n| `baseType` | String | `\"FARE\"` | Fee calculation base (`FARE` = total fare). |\n\n---\n\n### `ContactInfo` Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for contact (UUID). Example: `\"41b419aa-e9c0-4bc0-95f2-f1b9710dd578\"` |\n| `Name` | String | Full name of the contact person. Example: `\"NGUYEN CONG THANH\"` |\n| `PhoneNumber` | String | Phone number of the contact person. Example: `\"2929292929\"` |\n| `Email` | String | Email address of the contact person. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `CountryTelCode` | String | International telephone code of the contact's phone number. Example: `\"84\"` |\n| `flightBookingId` | String | Flight booking unique identification. Example:\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\" |\n| `deleted` | Boolean | Check if contact info is deleted or not. Example:`false` |\n\n---\n\n### `passengers` Array Structure\n\nThis array specifies information about each passenger for whom the booking is being made.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `flightBookingId` | String | Id of the flight booking unique. Example: `\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\"` |\n| `index` | Integer | A unique number identifier for the passenger, starting from `1`. Example: `\"1\"` |\n| `type` | Integer | Passenger Type. Possible values: `1` (Adult), `2` (Child), `3` (Infant) Example: `\"1\"` |\n| `idIssueDate` | String | Unknow data. Example: `\"0001-01-01T00:00:00:0000\"` |\n| `idExpiryDate` | String | Expiry date of the ID (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2026-08-19T00:00:00:0000\"` |\n| `ticketList` | Object | List of ticket associated. Example:`[]` |\n| `ancillaries` | Object | Object contains ancillary services. Example:`[]` |\n| `seats` | Array | object contains passenger seats. Example:`[]` |\n| `id` | String | unique passenger ID. Example: `\"785c1ff9-4b36-4cf8-9025-85ae5e345d60\"` |\n| `firstName` | String | Passenger's first name. Example: `\"CONG THANH\"` |\n| `lastName` | String | Passenger's last name. Example: `\"NGUYEN\"` |\n| `gender` | String | Passenger's gender. Possible values: `\"M\"` (Male), `\"F\"` (Female). Example: `\"M\"` |\n| `dateOfBirth` | String | Passenger's date of birth (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"1993-08-19T00:00:00:0000\"` |\n| `nationality` | String | Passenger's nationality (ISO 3166-1 alpha-2 country code). Example: `\"VN\"` |\n| `idNumber` | String | Passenger's ID card or Passport number. Example: `\"123456789\"` |\n| `idType` | String | Type of ID used. Possible values: `\"passport\"`.Example: `\"passport\"` |\n| `updatedUtc` | String | update time. Example: `\"2025-06-05T08:38:19:5033\"` |\n| `deleted` | Boolean | check if it deleted or not. Example: `false` |\n\n---\n\n### `priceInfo` Object Structure\n\nThis object provides detailed pricing and cost information.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the price information (UUID). Example: `\"9fab6075-8b22-4e7d-aa1d-2813d6ecc2e9\"` |\n| `orderId` | String | ID of the order this price information belongs to (matches the top-level `id` field). Example: `\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\"` |\n| `pricingType` | Integer | Type of pricing. |\n| `couponId` | String | ID of the coupon applied to the booking. Example: `\"00000000-0000-0000-0000-000000000000\"` (all zeros indicates no coupon) |\n| `itemType` | Integer | Type of item being priced (e.g., might represent a flight, ancillary service, etc.). Example: `0` |\n| `passengerTotalAmount` | Number | Total amount for all passengers. Example: `148.74` |\n| `ancillaryTotalAmount` | Number | Total amount for ancillary services. Example: `0` |\n| `seatTotalAmount` | Number | Total amount for seat reservations. Example: `0` |\n| `ticketFeeAmount` | Number | Total amount for ticket issuance fees. Example: `0` |\n| `totalAmount` | Number | The final total amount for the booking. Example: `148.74` |\n| `couponAmount` | Number | Amount reduced due to coupons. Example: `0` |\n| `handlingFee` | Number | Handling fee. Example: `0` |\n| `totalFare` | Number | Total Fare exclude tax and fee. Example: `92.48` |\n| `convertionRate` | Number | Conversion rate from USD to VND. Example: `26244` |\n| `currency` | String | Currency code for the amounts (e.g., `\"USD\"`). Example: `\"USD\"` |\n| `totalTax` | Number | Total tax. Example: `0` |\n| `surcharges` | Number | More expense if have. |\n| `amount` | Number | Total Amount |\n| `numberOfRooms` | Number | Number of rooms for hotel information |\n| `averagePerNightAmount` | Number | Per night amount. |\n| `numberOfNights` | Number | Number of nights. |\n| `priceDetails` | Object | Object contains ticket price details. |\n| `createdBy` | String | Person create for these price. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `createdUtc` | String | Created Datetime . Example: `\"0001-01-01T00:00:00:0000\"` |\n| `updatedBy` | String | Person update for these price. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `updatedUtc` | String | Update Datetime. Example: `\"2025-06-05T08:38:19:2970\"` |\n| `paidBy` | String | Person paid for these price. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `paidUtc` | String | Paid Datetime. Example: `\"2025-06-05T08:38:19:2970\"` |\n| `cancelledBy` | String | Person cancell for these price. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `cancelledUtc` | String | Cancell Datetime. Example: `\"2025-06-05T08:38:19:2970\"` |\n| `refundable` | Boolean | Check this conditions or not. |\n| `hasBreakfast` | Boolean | Check this if have breakfast or not. |\n| `extraBed` | Boolean | check if have extra bed or not. |\n| `nonSmoking` | Boolean | check non smoking or not |\n\n---\n\n## Notes\n\n- Passenger type codes: 1 = Adult, 2 = Child, 3 = Infant\n    \n- Currency conversion: VND value = value × convertionRate\n    \n- statusIsFinal: false means booking is still modifiable\n    \n- Empty airlinePNR means booking is still being processed"
									},
									"response": []
								},
								{
									"name": "Cancel Booking",
									"request": {
										"method": "POST",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{access_token}}",
												"type": "text"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\r\n    \"Provider\": \"flight.provider2.VN\",\r\n    \"ProviderReferenceId\": \"fce490ec-f3e2fa93-f9d68787-90878787-878787\"\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/hub/flight/booking/bea4e21a-5a90-4ee7-bae3-23b453b1a5db/cancel",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"flight",
												"booking",
												"bea4e21a-5a90-4ee7-bae3-23b453b1a5db",
												"cancel"
											]
										},
										"description": "# Flight Booking Cancellation API Documentation\n\n## Overview\n\nThis API cancels an existing flight booking. Requires valid booking reference and provider authentication. Returns success status upon cancellation.\n\n---\n\n## API Endpoint\n\n- **URL:** `{{host}}/hub/flight/booking/{orderId}/cancel`\n    \n- **Method:** `POST`\n    \n- **Content-Type:** `application/json`\n    \n\n---\n\n## Headers\n\n| Key | Value | Description |\n| --- | --- | --- |\n| `Authorization` | `Bearer {token}` | JWT access token (Required) |\n| `Content-Type` | `application/json` | Request format |\n\n---\n\n## Path Parameters\n\n| Field | Type | Description | Example |\n| --- | --- | --- | --- |\n| `orderId` | String | Unique booking UUID | `a75d87f6-fc2f-4118-b9be-657018be62e8` |\n\n---\n\n## Request Body\n\n| Field | Type | Required | Example | Description |\n| --- | --- | --- | --- | --- |\n| `Provider` | String | ✅ Yes | `\"provider1\"` | Booking provider identifier |\n| `ProviderReferenceId` | String | ✅ Yes | `\"917424627208020801\"` | Provider-specific booking ID |\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location '{{host}}/hub/flight/booking/a75d87f6-fc2f-4118-b9be-657018be62e8/cancel' \\\n--header 'Authorization: Bearer {{access_token}}' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"Provider\": \"flight.provider2.VN\",\n    \"ProviderReferenceId\": \"fce490ec-f3e2fa93-f9d68787-90878787-878787\"\n}'\n\n ```\n\n---\n\n## Sample Response\n\n**Status:** 200 OK\n\n``` json\ntrue\n\n ```\n\n---\n\n## Response Description\n\n- **`true`**: Cancellation request accepted successfully\n    \n- **`false`**: Cancellation failed (check error logs)\n    \n\n---\n\n## Notes\n\n1. Booking ID in URL must match provider reference ID in body\n    \n2. Cancellation fees may apply based on airline policy\n    \n3. Success response only confirms request acceptance - actual cancellation may take time\n    \n4. Idempotent - repeating same cancellation request has no side effects\n    \n5. Final cancellation status should be verified via booking status API"
									},
									"response": []
								},
								{
									"name": "Order Pricing",
									"request": {
										"method": "POST",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{access_token}}",
												"type": "text"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\r\n  \"pnrNumbers\": [\r\n    \"FYHP9S\",\r\n    \"FYHP9S\"\r\n  ]\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/hub/flight/booking/{{orderId}}/order_pricing",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"flight",
												"booking",
												"{{orderId}}",
												"order_pricing"
											]
										},
										"description": "# Flight Booking Pricing API Documentation\n\n## Overview\n\nThis API retrieves the finalized pricing details and itinerary summary for a specific booking. Used to display booking confirmation details before payment.\n\n---\n\n## API Endpoint\n\n- **URL:** `{{host}}/hub/flight/booking/{orderId}/order_pricing`\n    \n- **Method:** `POST`\n    \n- **Content-Type:** `application/json`\n    \n\n---\n\n## Headers\n\n| Key | Value | Description |\n| --- | --- | --- |\n| `Content-Type` | application/json | Request format |\n| `Authorization` | `Bearer {token}` | JWT access token (Required) |\n\n---\n\n## Path Parameters\n\n| Field | Type | Description | Example |\n| --- | --- | --- | --- |\n| `orderId` | String | Unique booking UUID | `89578412-bcbf-448a-8ebf-8a0105fe40f3` |\n\n---\n\n## Request Body\n\n``` json\n{\n  \"pnrNumbers\": [\n    \"FYHP9S\",\n    \"FYHP9S\"\n  ]\n}\n\n ```\n\n## Request Body Description\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `provider` | String | ❌ No | Booking provider identifier. |\n| `providerReferenceId` | String | ❌ No | Provider-specific booking ID |\n| `pnrNumbers` | Array | ✅ Yes | Array contains pnr number. |\n\n---\n\n## Sample Response\n\n``` json\n{\n  \"id\": \"bea4e21a-5a90-4ee7-bae3-23b453b1a5db\",\n  \"readableId\": \"FYHP9S\",\n  \"isInternational\": false,\n  \"orderBaseInfo\": {\n    \"providerCode\": \"flight.provider2.VN\",\n    \"providerReferenceId\": \"fce490ec-f3e2fa93-f9d68787-90878787-878787\",\n    \"status\": \"TO_BE_PAID\",\n    \"statusIsFinal\": false,\n    \"bookingType\": \"flight\",\n    \"totalAmount\": 4139000,\n    \"totalSalesAmount\": 0,\n    \"totalOriginalAmount\": 4139000,\n    \"totalPriceModifier\": 0,\n    \"totalServiceFee\": 0,\n    \"refundAmount\": 0,\n    \"refundFee\": 0,\n    \"currency\": \"VND\",\n    \"convertionRate\": 1,\n    \"type\": \"ROUND_TRIP\",\n    \"pnr\": \"FYHP9S\",\n    \"airlinePNR\": \"\",\n    \"orderType\": \"O\",\n    \"bookingCode\": \"R\",\n    \"isNeedRebookPNR\": false,\n    \"passengerCount\": 1,\n    \"totalAmountAtHotel\": 0,\n    \"refunded\": false\n  },\n  \"orderFlightInfo\": {\n    \"id\": \"337023ca-e5aa-4530-8e58-8d43fa22414c\",\n    \"orderId\": \"bea4e21a-5a90-4ee7-bae3-23b453b1a5db\",\n    \"flightJourneys\": [\n      {\n        \"id\": \"7bdc42ae-6e38-4389-d0bf-08de1f80de8a\",\n        \"flightBookingInfoId\": \"337023ca-e5aa-4530-8e58-8d43fa22414c\",\n        \"sequence\": 1,\n        \"arrivalDate\": \"2025-11-10T00:00:00:0000\",\n        \"arrivalTime\": \"07:05\",\n        \"arrivalCode\": \"HAN\",\n        \"arrivalName\": \"Hanoi\",\n        \"departureDate\": \"2025-11-10T00:00:00:0000\",\n        \"departureTime\": \"05:00\",\n        \"departureCode\": \"SGN\",\n        \"departureName\": \"Ho Chi Minh City\",\n        \"travelTime\": 125,\n        \"isNDC\": false,\n        \"isChange\": false,\n        \"pnrNumber\": \"FYHP9S\",\n        \"status\": \"TO_BE_PAID\",\n        \"lastTicketTime\": \"2025-11-09T12:12:00:0000\",\n        \"fareHoldTime\": \"2025-11-09T23:12:00:0000\",\n        \"flightSegments\": [\n          {\n            \"id\": \"f8823fad-afb9-4c88-8160-a37f7f045f71\",\n            \"flightJourneyId\": \"7bdc42ae-6e38-4389-d0bf-08de1f80de8a\",\n            \"sequence\": 1,\n            \"airlinesCode\": \"VN\",\n            \"airlinesName\": \"VIETNAM AIRLINES\",\n            \"arrivalCode\": \"HAN\",\n            \"arrivalName\": \"Hanoi\",\n            \"arrivalDate\": \"2025-11-10T00:00:00:0000\",\n            \"arrivalTime\": \"07:05\",\n            \"departureCode\": \"SGN\",\n            \"departureName\": \"Ho Chi Minh City\",\n            \"departureDate\": \"2025-11-10T00:00:00:0000\",\n            \"departureTime\": \"05:00\",\n            \"bookingCode\": \"R\",\n            \"cabinClass\": \"ECONOMY\",\n            \"equipment\": \"321\",\n            \"flightNumber\": \"6002\",\n            \"flightTime\": 125,\n            \"departureTerminal\": \"3\",\n            \"arrivalTerminal\": \"1\",\n            \"codeShare\": false,\n            \"stopTime\": 0,\n            \"hasStop\": false,\n            \"operatingFlightAirlinesName\": \"VIETNAM AIRLINES\",\n            \"operatingFlightNumber\": \"6002\",\n            \"operatingFlightAirlinesCode\": \"VN\",\n            \"baggageRules\": {\n              \"adults\": [\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"baggageWeight\": \"23kg\",\n                  \"carryOnAmount\": \"1PC\",\n                  \"carryOnWeight\": \"10kg\"\n                },\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"baggageWeight\": \"23kg\",\n                  \"carryOnAmount\": \"1PC\",\n                  \"carryOnWeight\": \"10kg\"\n                }\n              ],\n              \"children\": [\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"baggageWeight\": \"23kg\",\n                  \"carryOnAmount\": \"1PC\",\n                  \"carryOnWeight\": \"10kg\"\n                },\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"baggageWeight\": \"23kg\",\n                  \"carryOnAmount\": \"1PC\",\n                  \"carryOnWeight\": \"10kg\"\n                }\n              ],\n              \"infants\": [\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"baggageWeight\": \"23kg\",\n                  \"carryOnAmount\": \"1PC\",\n                  \"carryOnWeight\": \"10kg\"\n                },\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"baggageWeight\": \"23kg\",\n                  \"carryOnAmount\": \"1PC\",\n                  \"carryOnWeight\": \"10kg\"\n                }\n              ]\n            },\n            \"miniRules\": {\n              \"adults\": [],\n              \"children\": [],\n              \"infants\": []\n            },\n            \"fareBasis\": \"RPXVNF\"\n          }\n        ]\n      },\n      {\n        \"id\": \"154f1fb8-a88c-4d2c-d0c0-08de1f80de8a\",\n        \"flightBookingInfoId\": \"337023ca-e5aa-4530-8e58-8d43fa22414c\",\n        \"sequence\": 2,\n        \"arrivalDate\": \"2025-11-12T00:00:00:0000\",\n        \"arrivalTime\": \"07:10\",\n        \"arrivalCode\": \"SGN\",\n        \"arrivalName\": \"Ho Chi Minh City\",\n        \"departureDate\": \"2025-11-12T00:00:00:0000\",\n        \"departureTime\": \"05:00\",\n        \"departureCode\": \"HAN\",\n        \"departureName\": \"Hanoi\",\n        \"travelTime\": 130,\n        \"isNDC\": false,\n        \"isChange\": false,\n        \"pnrNumber\": \"FYHP9S\",\n        \"status\": \"TO_BE_PAID\",\n        \"lastTicketTime\": \"2025-11-09T12:12:00:0000\",\n        \"fareHoldTime\": \"2025-11-09T23:12:00:0000\",\n        \"flightSegments\": [\n          {\n            \"id\": \"b4192444-afe2-44df-9de3-d1b71645a6f4\",\n            \"flightJourneyId\": \"154f1fb8-a88c-4d2c-d0c0-08de1f80de8a\",\n            \"sequence\": 1,\n            \"airlinesCode\": \"VN\",\n            \"airlinesName\": \"VIETNAM AIRLINES\",\n            \"arrivalCode\": \"SGN\",\n            \"arrivalName\": \"Ho Chi Minh City\",\n            \"arrivalDate\": \"2025-11-12T00:00:00:0000\",\n            \"arrivalTime\": \"07:10\",\n            \"departureCode\": \"HAN\",\n            \"departureName\": \"Hanoi\",\n            \"departureDate\": \"2025-11-12T00:00:00:0000\",\n            \"departureTime\": \"05:00\",\n            \"bookingCode\": \"T\",\n            \"cabinClass\": \"ECONOMY\",\n            \"equipment\": \"321\",\n            \"flightNumber\": \"205\",\n            \"flightTime\": 130,\n            \"departureTerminal\": \"1\",\n            \"arrivalTerminal\": \"3\",\n            \"codeShare\": false,\n            \"stopTime\": 0,\n            \"hasStop\": false,\n            \"operatingFlightAirlinesName\": \"VIETNAM AIRLINES\",\n            \"operatingFlightNumber\": \"205\",\n            \"operatingFlightAirlinesCode\": \"VN\",\n            \"baggageRules\": {\n              \"adults\": [\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"baggageWeight\": \"23kg\",\n                  \"carryOnAmount\": \"1PC\",\n                  \"carryOnWeight\": \"10kg\"\n                },\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"baggageWeight\": \"23kg\",\n                  \"carryOnAmount\": \"1PC\",\n                  \"carryOnWeight\": \"10kg\"\n                }\n              ],\n              \"children\": [\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"baggageWeight\": \"23kg\",\n                  \"carryOnAmount\": \"1PC\",\n                  \"carryOnWeight\": \"10kg\"\n                },\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"baggageWeight\": \"23kg\",\n                  \"carryOnAmount\": \"1PC\",\n                  \"carryOnWeight\": \"10kg\"\n                }\n              ],\n              \"infants\": [\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"baggageWeight\": \"23kg\",\n                  \"carryOnAmount\": \"1PC\",\n                  \"carryOnWeight\": \"10kg\"\n                },\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"baggageWeight\": \"23kg\",\n                  \"carryOnAmount\": \"1PC\",\n                  \"carryOnWeight\": \"10kg\"\n                }\n              ]\n            },\n            \"miniRules\": {\n              \"adults\": [],\n              \"children\": [],\n              \"infants\": []\n            },\n            \"fareBasis\": \"TPXVNF\"\n          }\n        ]\n      }\n    ]\n  },\n  \"orderESimInfos\": [],\n  \"passengers\": [\n    {\n      \"flightBookingId\": \"bea4e21a-5a90-4ee7-bae3-23b453b1a5db\",\n      \"index\": 1,\n      \"type\": 1,\n      \"dependantIndex\": -1,\n      \"idIssueDate\": \"0001-01-01T00:00:00:0000\",\n      \"idExpiryDate\": \"0001-01-01T00:00:00:0000\",\n      \"frequentFlyerNumbers\": [],\n      \"ticketList\": [],\n      \"ancillaries\": [],\n      \"seats\": [],\n      \"id\": \"e707dfc1-03f3-45b7-a07b-3bee614ce272\",\n      \"firstName\": \"NGUYEN\",\n      \"lastName\": \"THAI VAN\",\n      \"gender\": \"M\",\n      \"dateOfBirth\": \"2003-11-09T00:00:00:0000\",\n      \"nationality\": \"VN\",\n      \"updatedUtc\": \"2025-11-09T11:12:28:3666\",\n      \"deleted\": false\n    }\n  ],\n  \"contactInfo\": {\n    \"id\": \"eea7da5d-98a3-4516-8ca1-b73e079f9372\",\n    \"name\": \"Nguyen Thai Van\",\n    \"countryTelCode\": \"84\",\n    \"phoneNumber\": \"0123456789\",\n    \"email\": \"van.nguyen@skyjet.vn\",\n    \"flightBookingId\": \"bea4e21a-5a90-4ee7-bae3-23b453b1a5db\",\n    \"deleted\": false\n  },\n  \"priceInfo\": {\n    \"id\": \"c7c115ab-fce5-4468-a504-8f09142cd0d7\",\n    \"orderId\": \"bea4e21a-5a90-4ee7-bae3-23b453b1a5db\",\n    \"pricingType\": 1,\n    \"couponId\": \"00000000-0000-0000-0000-000000000000\",\n    \"itemType\": 0,\n    \"passengerTotalAmount\": 4139000,\n    \"ancillaryTotalAmount\": 0,\n    \"seatTotalAmount\": 0,\n    \"ticketFeeAmount\": 0,\n    \"totalAmount\": 4139000,\n    \"totalOriginalAmount\": 4139000,\n    \"priceModifier\": 0,\n    \"couponAmount\": 0,\n    \"handlingFee\": 0,\n    \"totalFare\": 2778000,\n    \"convertionRate\": 1,\n    \"totalServiceFee\": 0,\n    \"currency\": \"VND\",\n    \"totalTax\": 0,\n    \"surcharges\": 0,\n    \"amount\": 2778000,\n    \"numberOfRooms\": 1,\n    \"averagePerNightAmount\": 0,\n    \"numberOfNights\": 0,\n    \"priceDetails\": [\n      {\n        \"id\": \"2c0cd1d2-3620-4b63-9361-552b465f91b5\",\n        \"priceInfoId\": \"c7c115ab-fce5-4468-a504-8f09142cd0d7\",\n        \"count\": 1,\n        \"type\": 1,\n        \"amount\": 2778000,\n        \"originalAmount\": 2778000,\n        \"priceModifier\": 0,\n        \"serviceFee\": 0,\n        \"tax\": 1361000,\n        \"fee\": 0,\n        \"totalAmount\": 4139000,\n        \"averagePerNightAmount\": 0,\n        \"taxAmount\": 0,\n        \"numberOfNights\": 0,\n        \"surcharges\": 0,\n        \"discount\": 0,\n        \"hotelPricePerNights\": [],\n        \"taxes\": [],\n        \"discounts\": []\n      }\n    ],\n    \"createdBy\": \"van.nguyen@skyjet.vn\",\n    \"createdUtc\": \"2025-11-09T11:12:28:2851\",\n    \"updatedUtc\": \"2025-11-09T11:12:28:2801\",\n    \"refundable\": false,\n    \"hasBreakfast\": false,\n    \"extraBed\": false,\n    \"nonSmoking\": false\n  },\n  \"createdBy\": \"van.nguyen@skyjet.vn\",\n  \"createdUtc\": \"2025-11-09T11:12:28:3333\",\n  \"updatedBy\": \"van.nguyen@skyjet.vn\",\n  \"updatedUtc\": \"2025-11-09T11:12:47:6578\",\n  \"agentPath\": \"NV9999\"\n}\n\n ```\n\n---\n\n## Response Field Description\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the booking (UUID). Example: `\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\"` |\n| `readableId` | String | The readable id. |\n| `isInternational` | Bool | Indicates whether the flight is international. |\n| `orderBaseInfo` | Object | Basic information about the order. See `orderBaseInfo` Object Structure. |\n| `orderFlightInfo` | Object | Information about the flights in the order. See `orderFlightInfo` Object Structure. |\n| `passengers` | Array | Array containing passenger information. See `passengers` Array Structure. |\n| `contactInfo` | Object | Contact information for the booking. See `contactInfo` Object Structure. |\n| `priceInfo` | Object | Detailed pricing information. See `priceInfo` Object Structure. |\n| `createdBy` | String | Email address of the user who created the booking. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `createdUtc` | String | Date and time the booking was created (UTC, ISO 8601 format). Example: `\"2025-06-05T08:38:19:4900\"` |\n| `updatedBy` | String | Email address of the user who last updated the booking. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `updatedUtc` | String | Date and time the booking was last updated (UTC, ISO 8601 format). Example: `\"2025-06-05T08:38:21:7477\"` |\n| `agentPath` | String | Path or identifier of the agent. |\n\n---\n\n### `orderBaseInfo` Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `providerCode` | String | ID of the flight provider. Example: `\"flight.provider1\"` |\n| `providerReferenceId` | String | Provider's unique identifier for the booking. Example: `\"917491127052815601\"` |\n| `status` | String | Current status of the booking. Example: `\"TO_BE_PAID\"`. Possible values depend on the system's workflow. |\n| `statusIsFinal` | Boolean | Indicates if the current status is a final state (e.g., `true` if booked successfully). |\n| `bookingType` | String | Type of booking. Example: `\"flight\"` |\n| `totalAmount` | Number | Total amount for the booking. Example: `148.74` |\n| `totalSaleAmount` | Number | Total sale amount for booking. |\n| `totalOriginalAmount` | Number | The originally requested total amount for the booking. This can differ from totalAmount after a price change. Example: `148.74` |\n| `totalPriceModifier` | Number | Amount the total price was modified (e.g., with a coupon). Example: `0` |\n| `totalServiceFee` | Number | Total service fee for booking. |\n| `refundAmount` | Number | Refund amount for booking. |\n| `refundFee` | Number | Refund fee for booking. |\n| `currency` | String | Currency code used for the booking. Example: `\"USD\"` |\n| `convertionRate` | Number | Conversion rate from USD to VND. Example: `26244` |\n| `type` | String | Trip type. Example: `\"ROUND_TRIP\"` |\n| `pnr` | String | Passenger Name Record (PNR) code for the booking. Example: `\"WC2A6H\"` |\n| `airlinePNR` | String | Airline PNR code (if different from `pnr`). Example: `\"\"` (empty string if same as `pnr`) |\n| `orderType` | String | Order type. Example: `\"O\"` (May represent a standard order). |\n| `bookingCode` | String | Fare class code (e.g., \"T\"). Contact the airline for decode the real meaning of bookingCode. Example: `\"T\"` |\n| `isNeedRebookPNR` | Boolean | Indicates if it's need to rebook PNR. Example: `false` |\n| `passengerCount` | Integer | Total number of passengers in the booking. Example: `1` |\n| `totalAmountAtHotel` | Number | Total amount for hotel or any other. Example: `0` |\n| `refunded` | Boolean | Is refunded or not. Example:`false` |\n\n---\n\n### `orderFlightInfo` Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the flight information (UUID). Example: `\"cae6e870-6204-48c7-a008-e6459804e47f\"` |\n| `orderId` | String | ID of the associated order (matches the top-level `id` field). Example: `\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\"` |\n| `flightJourneys` | Array | Array of flight journey objects, detailing each flight leg. See `flightJourneys` Array Structure. |\n\n---\n\n### `flightJourneys` Array Structure\n\nEach object represents a leg of the flight itinerary:\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for this flight journey (UUID). Example: `\"2b2c6be2-7068-4fac-9098-4e6574ed6a66\"` |\n| `flightBookingInfoId` | String | ID of the flight booking information (matches `orderFlightInfo.id`). Example: `\"cae6e870-6204-48c7-a008-e6459804e47f\"` |\n| `sequence` | Integer | Sequence number of the flight journey (1, 2, ...). Starts from 1. Example: `1` |\n| `arrivalDate` | String | Arrival date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `arrivalTime` | String | Arrival time (HH:mm). Example: `\"07:55\"` |\n| `arrivalCode` | String | IATA code of the arrival airport. Example: `\"HAN\"` |\n| `arrivalName` | String | Name of the arrival airport. Example: `\"Hanoi\"` |\n| `departureDate` | String | Departure date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `departureTime` | String | Departure time (HH:mm). Example: `\"05:45\"` |\n| `departureCode` | String | IATA code of the departure airport. Example: `\"SGN\"` |\n| `departureName` | String | Name of the departure airport. Example: `\"Ho Chi Minh City\"` |\n| `travelTime` | Integer | Total travel time in minutes. Example: 130 |\n| `isNDC` | Bool | Indicates whether the flight is distributed through an NDC (New Distribution Capability) channel. |\n| `isChange` | Boolean | Check if flight have change or not. Example: `false` |\n| `pnrNumber` | String | The pnr number. |\n| `status` | String | The status of journey. |\n| `fareHoldTime` | String | The time can hold fare. |\n| `flightSegments` | Array | Array of flight segment objects. See `flightSegments` Array Structure. |\n| `fare` | Object | The detailed pricing and cost information for this journey. See `Journey Fare` Object Structure. |\n\n### Journey Fare Object Structure\n\nThis object provides detailed pricing and cost information for a specific journey. The structure matches the sample fare model from booking/order response.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the fare info (UUID). |\n| `orderId` | String | ID of the order this fare info belongs to. |\n| `couponId` | String | ID of the coupon applied to the booking. |\n| `itemType` | Integer | Type of item being priced (e.g., flight, ancillary, etc.). |\n| `passengerTotalAmount` | Number | Total amount for all passengers in this journey. |\n| `ancillaryTotalAmount` | Number | Total amount for ancillary services in this journey. |\n| `seatTotalAmount` | Number | Total amount for seat reservations in this journey. |\n| `ticketFeeAmount` | Number | Total amount for ticket issuance fees. |\n| `totalAmount` | Number | The final total amount for the journey. |\n| `couponAmount` | Number | Amount reduced due to coupons. |\n| `handlingFee` | Number | Handling fee. |\n| `totalFare` | Number | Total fare excluding tax and fee. |\n| `totalTax` | Number | Total tax. |\n| `amount` | Number | Total amount. |\n| `priceDetails` | Array | Array of ticket price details. Each item includes a `type` field: 1 = Adult, 2 = Children, 3 = Infant. |\n| `createdBy` | String | Creator of this fare info. |\n| `createdUtc` | String | Created datetime. |\n| `updatedUtc` | String | Updated datetime. |\n| `refundable` | Boolean | Indicates if the journey is refundable. |\n\n#### Notes\n\n- The `fare` field is only present in each journey if the booking/order returns journey-level pricing.\n    \n- The structure and fields are similar to the top-level `priceInfo` object, but scoped to the specific journey.\n    \n- If journey-level pricing is not available, the `fare` field will be omitted or null.\n    \n\n#### Example\n\n``` json\n\"flightJourneys\": [\n  {\n    \"id\": \"2b2c6be2-7068-4fac-9098-4e6574ed6a66\",\n    \"sequence\": 1,\n    // ...existing fields...,\n    \"fare\": {\n        \"id\": \"088b8ab3-f09c-4860-b9ee-39ef662d610a\",\n        \"orderId\": \"bf20f9e9-f5f2-4587-9aa4-9bb746fd2e62\",\n        \"flightJourneyId\": \"643d8c99-1656-452d-8442-03d29d186c31\",\n        \"pricingType\": 2,\n        \"couponId\": \"00000000-0000-0000-0000-000000000000\",\n        \"itemType\": 0,\n        \"passengerTotalAmount\": 2128000.0,\n        \"ancillaryTotalAmount\": 0.0,\n        \"seatTotalAmount\": 0.0,\n        \"ticketFeeAmount\": 0.0,\n        \"totalAmount\": 2128000.0,\n        \"totalOriginalAmount\": 2128000.0,\n        \"priceModifier\": 0.0,\n        \"couponAmount\": 0.0,\n        \"handlingFee\": 0.0,\n        \"totalFare\": 1419000.0,\n        \"convertionRate\": 1.0,\n        \"totalTax\": 0.0,\n        \"amount\": 1419000.0,\n        \"priceDetails\": [\n            {\n                \"id\": \"74e9eb8d-7ec1-48a8-9705-62632225cf6d\",\n                \"priceInfoId\": \"088b8ab3-f09c-4860-b9ee-39ef662d610a\",\n                \"count\": 1,\n                \"type\": 1,\n                \"amount\": 1419000.0,\n                \"originalAmount\": 1419000.0,\n                \"priceModifier\": 0.0,\n                \"tax\": 709000.0,\n                \"fee\": 0.0,\n                \"totalAmount\": 2128000.0,\n                \"taxAmount\": 0.0,\n            }\n        ],\n        \"createdBy\": \"694E6C9E-ED3C-43EB-A50F-389ADE398E85\",\n        \"createdUtc\": \"0001-01-01T00:00:00:0000\",\n        \"updatedUtc\": \"2025-07-15T19:43:08:7959\",\n    },\n  }\n]\n\n ```\n\n### `flightSegments` Array Structure\n\nEach object represents a segment within a flight journey:\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the flight segment (UUID). Example: `\"f95a2ce8-baa2-41c2-a9c6-543ecca78e4a\"` |\n| `flightJourneyId` | String | ID of the flight journey this segment belongs to (matches `flightJourneys.id`). Example: `\"2b2c6be2-7068-4fac-9098-4e6574ed6a66\"` |\n| `sequence` | Integer | Segment order within the leg (starting from 1). Example: `1` |\n| `airlinesCode` | String | 2-letter airline code. Example: `\"VU\"` |\n| `airlinesName` | String | Airline name. Example: `\"VIETRAVEL AIRLINES\"` |\n| `arrivalCode` | String | IATA arrival airport code. Example: `\"HAN\"` |\n| `arrivalName` | String | Arrival airport name. Example: `\"Hanoi\"` |\n| `arrivalDate` | String | Arrival date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `arrivalTime` | String | Arrival time (HH:mm). Example: `\"07:55\"` |\n| `departureCode` | String | IATA departure airport code. Example: `\"SGN\"` |\n| `departureName` | String | Departure airport name. Example: `\"Ho Chi Minh City\"` |\n| `departureDate` | String | Departure date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `departureTime` | String | Departure time (HH:mm). Example: `\"05:45\"` |\n| `bookingCode` | String | Fare class code. Example: `\"T\"`. Contact the airline to decode the real meaning of bookingCode. |\n| `cabinClass` | String | Cabin class. Example: `\"ECONOMY\"` |\n| `equipment` | String | Aircraft type. Example: `\"32S\"` |\n| `flightNumber` | String | Flight number. Example: `\"750\"` |\n| `flightTime` | Integer | Flight time in minutes. Example: `130` |\n| `departureTerminal` | String | Departure Terminal. Example: `1` |\n| `arrivalTerminal` | String | Arrival Terminal. Example: `1` |\n| `codeShare` | Boolean | Check if the the flights segments have code share,Example: `false` |\n| `stopTime` | Integer | Layover time in minutes (0 for direct flights). Example: `0` |\n| `hasStop` | Boolean | hasStop check the the flights segments have stop,Example: `false` |\n| `operatingFlightAirlinesName` | String | Name of the operating airline. |\n| `operatingFlightNumber` | String | Flight number operated by the airline. |\n| `operatingFlightAirlinesCode` | String | Airline code. |\n| `baggageRules` | Object | Baggage allowance rules for the segment. See `baggageRules` Structure. |\n| `miniRules` | Object | Rules regarding penalties, refunds, and reissues for the segment. See `miniRules` Structure. |\n\n---\n\n### `baggageRules` Structure\n\nThis object specifies baggage allowances for adults, children, and infants.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Array of baggage rule objects for adults. See `Baggage Rule Object`. |\n| `children` | Array | Array of baggage rule objects for children (if any). |\n| `infants` | Array | Array of baggage rule objects for infants (if any). |\n\n---\n\n#### Baggage Rule Object\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `baggageAmount` | String | `\"0PC\"` | Checked baggage allowance (e.g., `\"0PC\"` = 0 pieces) |\n| `baggageWeight` | String | `\"8KG\"` | Checked baggage weight limit (e.g., `\"7KG\"` = 7 kilograms) |\n| `carryOnAmount` | String | `\"1PC\"` | Cabin baggage allowance (e.g., `\"1PC\"` = 1 piece) |\n| `carryOnWeight` | String | `\"7KG\"` | Cabin baggage weight limit (e.g., `\"7KG\"` = 7 kilograms) |\n\n### `miniRules` Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Array of penalty rule objects for adults. See `Rule Object`. |\n| `children` | Array | Array of penalty rule objects for children (if any). |\n| `infants` | Array | Array of penalty rule objects for infants (if any). |\n\n---\n\n#### Rule Object\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `miniruleText` | String | `\"example rule\"` | The text rule. |\n| `miniruleHtml` | String | `\" example html rule \"` | The html rule. |\n| `penaltyType` | String | `\"REFUND\"` | Fee type (`REFUND`, `REISSUE`). |\n| `allowRefund` | String | `\"NOT_ALLOWED\"` | Indicates if a refund is allowed (`ALLOW`, `NOT_ALLOWED`). |\n| `situation` | String | `\"BEFORE_DEPARTURE\"` | When the penalty applies (`BEFORE_DEPARTURE`, `AFTER_DEPARTURE`). |\n| `noShowTime` | String | `\"BEFORE\"` | No-show timing relative to departure. |\n| `noShowTimeUnit` | String | `\"H\"` | Time unit for the no-show period. |\n| `amount` | Number | `0.0` | Fee amount. |\n| `penaltyPercent` | Number | `0.0` | Fee percentage of the base fare. |\n| `baseType` | String | `\"FARE\"` | Fee calculation base (`FARE` = total fare). |\n\n---\n\n### `ContactInfo` Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for contact (UUID). Example: `\"41b419aa-e9c0-4bc0-95f2-f1b9710dd578\"` |\n| `Name` | String | Full name of the contact person. Example: `\"NGUYEN CONG THANH\"` |\n| `PhoneNumber` | String | Phone number of the contact person. Example: `\"2929292929\"` |\n| `Email` | String | Email address of the contact person. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `CountryTelCode` | String | International telephone code of the contact's phone number. Example: `\"84\"` |\n| `flightBookingId` | String | Flight booking unique identification. Example:\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\" |\n| `deleted` | Boolean | Check if contact info is deleted or not. Example:`false` |\n\n---\n\n### `passengers` Array Structure\n\nThis array specifies information about each passenger for whom the booking is being made.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `flightBookingId` | String | Id of the flight booking unique. Example: `\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\"` |\n| `index` | Integer | A unique number identifier for the passenger, starting from `1`. Example: `\"1\"` |\n| `type` | Integer | Passenger Type. Possible values: `1` (Adult), `2` (Child), `3` (Infant) Example: `\"1\"` |\n| `idIssueDate` | String | Unknow data. Example: `\"0001-01-01T00:00:00:0000\"` |\n| `idExpiryDate` | String | Expiry date of the ID (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2026-08-19T00:00:00:0000\"` |\n| `ticketList` | Object | List of ticket associated. Example:`[]` |\n| `ancillaries` | Object | Object contains ancillary services. Example:`[]` |\n| `seats` | Array | object contains passenger seats. Example:`[]` |\n| `id` | String | unique passenger ID. Example: `\"785c1ff9-4b36-4cf8-9025-85ae5e345d60\"` |\n| `firstName` | String | Passenger's first name. Example: `\"CONG THANH\"` |\n| `lastName` | String | Passenger's last name. Example: `\"NGUYEN\"` |\n| `gender` | String | Passenger's gender. Possible values: `\"M\"` (Male), `\"F\"` (Female). Example: `\"M\"` |\n| `dateOfBirth` | String | Passenger's date of birth (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"1993-08-19T00:00:00:0000\"` |\n| `nationality` | String | Passenger's nationality (ISO 3166-1 alpha-2 country code). Example: `\"VN\"` |\n| `idNumber` | String | Passenger's ID card or Passport number. Example: `\"123456789\"` |\n| `idType` | String | Type of ID used. Possible values: `\"passport\"`.Example: `\"passport\"` |\n| `updatedUtc` | String | update time. Example: `\"2025-06-05T08:38:19:5033\"` |\n| `deleted` | Boolean | check if it deleted or not. Example: `false` |\n\n---\n\n### `priceInfo` Object Structure\n\nThis object provides detailed pricing and cost information.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the price information (UUID). Example: `\"9fab6075-8b22-4e7d-aa1d-2813d6ecc2e9\"` |\n| `orderId` | String | ID of the order this price information belongs to (matches the top-level `id` field). Example: `\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\"` |\n| `pricingType` | Integer | Type of pricing. |\n| `couponId` | String | ID of the coupon applied to the booking. Example: `\"00000000-0000-0000-0000-000000000000\"` (all zeros indicates no coupon) |\n| `itemType` | Integer | Type of item being priced (e.g., might represent a flight, ancillary service, etc.). Example: `0` |\n| `passengerTotalAmount` | Number | Total amount for all passengers. Example: `148.74` |\n| `ancillaryTotalAmount` | Number | Total amount for ancillary services. Example: `0` |\n| `seatTotalAmount` | Number | Total amount for seat reservations. Example: `0` |\n| `ticketFeeAmount` | Number | Total amount for ticket issuance fees. Example: `0` |\n| `totalAmount` | Number | The final total amount for the booking. Example: `148.74` |\n| `couponAmount` | Number | Amount reduced due to coupons. Example: `0` |\n| `handlingFee` | Number | Handling fee. Example: `0` |\n| `totalFare` | Number | Total Fare exclude tax and fee. Example: `92.48` |\n| `convertionRate` | Number | Conversion rate from USD to VND. Example: `26244` |\n| `currency` | String | Currency code for the amounts (e.g., `\"USD\"`). Example: `\"USD\"` |\n| `totalTax` | Number | Total tax. Example: `0` |\n| `surcharges` | Number | More expense if have. |\n| `amount` | Number | Total Amount |\n| `numberOfRooms` | Number | Number of rooms for hotel information |\n| `averagePerNightAmount` | Number | Per night amount. |\n| `numberOfNights` | Number | Number of nights. |\n| `priceDetails` | Object | Object contains ticket price details. |\n| `createdBy` | String | Person create for these price. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `createdUtc` | String | Created Datetime . Example: `\"0001-01-01T00:00:00:0000\"` |\n| `updatedBy` | String | Person update for these price. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `updatedUtc` | String | Update Datetime. Example: `\"2025-06-05T08:38:19:2970\"` |\n| `paidBy` | String | Person paid for these price. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `paidUtc` | String | Paid Datetime. Example: `\"2025-06-05T08:38:19:2970\"` |\n| `cancelledBy` | String | Person cancell for these price. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `cancelledUtc` | String | Cancell Datetime. Example: `\"2025-06-05T08:38:19:2970\"` |\n| `refundable` | Boolean | Check this conditions or not. |\n| `hasBreakfast` | Boolean | Check this if have breakfast or not. |\n| `extraBed` | Boolean | check if have extra bed or not. |\n| `nonSmoking` | Boolean | check non smoking or not |\n\n---\n\n## Notes\n\n1. `TO_BE_PAID` status indicates pending payment\n    \n2. Baggage allowance applies per passenger per segment\n    \n3. Flight times use local airport timezones\n    \n4. Price breakdown excludes ancillary services (seats/baggage upgrades)\n    \n5. PNR becomes active after successful payment"
									},
									"response": []
								},
								{
									"name": "Ticketing",
									"request": {
										"method": "POST",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{access_token}}",
												"type": "text"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\r\n  \"pnrNumbers\": [\r\n    \"FYLTLQ\"\r\n  ],\r\n  \"bkvn\": \"151103\",\r\n  \"pin\": \"\",\r\n  \"serviceFee\": \"0\",\r\n  \"requestedAgentPath\": \"NV9999\"\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/hub/flight/booking/{{orderId}}/ticketing",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"flight",
												"booking",
												"{{orderId}}",
												"ticketing"
											]
										},
										"description": "# Flight Ticketing API Documentation\n\n## Overview\n\nThis API finalizes ticket issuance for a confirmed booking. Returns detailed e-ticket information with travel policies and passenger-specific details.\n\n---\n\n## API Endpoint\n\n- **URL:** `{{host}}/hub/flight/booking/{orderId}/ticketing`\n    \n- **Method:** `POST`\n    \n- **Content-Type:** `application/json`\n    \n\n---\n\n## Headers\n\n| Key | Value | Description |\n| --- | --- | --- |\n| `Authorization` | `Bearer {token}` | JWT access token (Required) |\n| `Content-Type` | `application/json` | Request format |\n\n---\n\n## Path Parameters\n\n| Field | Type | Description | Example |\n| --- | --- | --- | --- |\n| `orderId` | String | Unique booking UUID | `89578412-bcbf-448a-8ebf-8a0105fe40f3` |\n\n## Request Body\n\nEmpty JSON object (No parameters required):\n\n``` json\n{\n  \"pnrNumbers\": [\n    \"FYLTLQ\"\n  ],\n  \"bkvn\": \"151103\",\n  \"pin\": \"\",\n  \"serviceFee\": \"0\",\n  \"requestedAgentPath\": \"NV9999\"\n}\n\n ```\n\n---\n\n## Request Body Description\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n| `provider` | String | ❌ No | Booking provider identifier. |\n| `providerReferenceId` | String | ❌ No | Provider-specific booking ID |\n| `bkvn` | String | ✅ Yes | The bkvn value. |\n| `pnrNumbers` | Array | ✅ Yes | Array contains pnr number. |\n| `pin` | String | ✅ Yes | The agent pin code. |\n| `serviceFee` | Number | ✅ Yes | The service fee. |\n| `requestAgentPath` | String | ✅ Yes | Path or identifier of agent. |\n\n## Sample Request\n\n``` bash\ncurl --location '{{host}}/hub/flight/booking/89578412-bcbf-448a-8ebf-8a0105fe40f3/ticketing' \\\n--header 'Authorization: Bearer {{access_token}}' \\\n--header 'Content-Type: application/json' \\\n--data '{}'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n  \"id\": \"aab329cb-9179-4d5e-bc7f-2e7dcd473599\",\n  \"readableId\": \"FYLTLQ\",\n  \"isInternational\": false,\n  \"orderBaseInfo\": {\n    \"providerCode\": \"flight.provider2.VN\",\n    \"providerReferenceId\": \"fce490ec-f3e6fee6-fbd68787-90878787-878787\",\n    \"status\": \"PARTIALLY_ISSUING\",\n    \"statusIsFinal\": false,\n    \"bookingType\": \"flight\",\n    \"totalAmount\": 4538000,\n    \"totalSalesAmount\": 0,\n    \"totalOriginalAmount\": 4538000,\n    \"totalPriceModifier\": 0,\n    \"totalServiceFee\": 0,\n    \"refundAmount\": 0,\n    \"refundFee\": 0,\n    \"currency\": \"VND\",\n    \"convertionRate\": 1,\n    \"type\": \"ROUND_TRIP\",\n    \"pnr\": \"FYLTLQ\",\n    \"airlinePNR\": \"\",\n    \"orderType\": \"O\",\n    \"bookingCode\": \"T\",\n    \"isNeedRebookPNR\": false,\n    \"passengerCount\": 1,\n    \"totalAmountAtHotel\": 0,\n    \"refunded\": false\n  },\n  \"orderFlightInfo\": {\n    \"id\": \"726d95c7-4904-4379-be82-050f3418c33f\",\n    \"orderId\": \"aab329cb-9179-4d5e-bc7f-2e7dcd473599\",\n    \"flightJourneys\": [\n      {\n        \"id\": \"dc27604b-b62c-42a2-d0c1-08de1f80de8a\",\n        \"flightBookingInfoId\": \"726d95c7-4904-4379-be82-050f3418c33f\",\n        \"sequence\": 1,\n        \"arrivalDate\": \"2025-11-10T00:00:00:0000\",\n        \"arrivalTime\": \"07:10\",\n        \"arrivalCode\": \"SGN\",\n        \"arrivalName\": \"Ho Chi Minh City\",\n        \"departureDate\": \"2025-11-10T00:00:00:0000\",\n        \"departureTime\": \"05:00\",\n        \"departureCode\": \"HAN\",\n        \"departureName\": \"Hanoi\",\n        \"travelTime\": 130,\n        \"isNDC\": false,\n        \"isChange\": false,\n        \"pnrNumber\": \"FYLTLQ\",\n        \"status\": \"ISSUING\",\n        \"lastTicketTime\": \"2025-11-09T12:37:00:0000\",\n        \"fareHoldTime\": \"2025-11-09T23:37:00:0000\",\n        \"paidBy\": \"van.nguyen@skyjet.vn\",\n        \"paidUtc\": \"2025-11-09T11:38:15:9271\",\n        \"flightSegments\": [\n          {\n            \"id\": \"fe18c44b-1d99-41ad-b109-6054990f6a94\",\n            \"flightJourneyId\": \"dc27604b-b62c-42a2-d0c1-08de1f80de8a\",\n            \"sequence\": 1,\n            \"airlinesCode\": \"VN\",\n            \"airlinesName\": \"VIETNAM AIRLINES\",\n            \"arrivalCode\": \"SGN\",\n            \"arrivalName\": \"Ho Chi Minh City\",\n            \"arrivalDate\": \"2025-11-10T00:00:00:0000\",\n            \"arrivalTime\": \"07:10\",\n            \"departureCode\": \"HAN\",\n            \"departureName\": \"Hanoi\",\n            \"departureDate\": \"2025-11-10T00:00:00:0000\",\n            \"departureTime\": \"05:00\",\n            \"bookingCode\": \"T\",\n            \"cabinClass\": \"ECONOMY\",\n            \"equipment\": \"321\",\n            \"flightNumber\": \"205\",\n            \"flightTime\": 130,\n            \"departureTerminal\": \"1\",\n            \"arrivalTerminal\": \"3\",\n            \"codeShare\": false,\n            \"stopTime\": 0,\n            \"hasStop\": false,\n            \"operatingFlightAirlinesName\": \"VIETNAM AIRLINES\",\n            \"operatingFlightNumber\": \"205\",\n            \"operatingFlightAirlinesCode\": \"VN\",\n            \"baggageRules\": {\n              \"adults\": [\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"baggageWeight\": \"23kg\",\n                  \"carryOnAmount\": \"1PC\",\n                  \"carryOnWeight\": \"10kg\"\n                },\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"baggageWeight\": \"23kg\",\n                  \"carryOnAmount\": \"1PC\",\n                  \"carryOnWeight\": \"10kg\"\n                }\n              ],\n              \"children\": [\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"baggageWeight\": \"23kg\",\n                  \"carryOnAmount\": \"1PC\",\n                  \"carryOnWeight\": \"10kg\"\n                },\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"baggageWeight\": \"23kg\",\n                  \"carryOnAmount\": \"1PC\",\n                  \"carryOnWeight\": \"10kg\"\n                }\n              ],\n              \"infants\": [\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"baggageWeight\": \"23kg\",\n                  \"carryOnAmount\": \"1PC\",\n                  \"carryOnWeight\": \"10kg\"\n                },\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"baggageWeight\": \"23kg\",\n                  \"carryOnAmount\": \"1PC\",\n                  \"carryOnWeight\": \"10kg\"\n                }\n              ]\n            },\n            \"miniRules\": {\n              \"adults\": [],\n              \"children\": [],\n              \"infants\": []\n            },\n            \"fareBasis\": \"TPXVNF\"\n          }\n        ]\n      },\n      {\n        \"id\": \"39ab4c0a-2835-48d5-d0c2-08de1f80de8a\",\n        \"flightBookingInfoId\": \"726d95c7-4904-4379-be82-050f3418c33f\",\n        \"sequence\": 2,\n        \"arrivalDate\": \"2025-11-12T00:00:00:0000\",\n        \"arrivalTime\": \"07:05\",\n        \"arrivalCode\": \"HAN\",\n        \"arrivalName\": \"Hanoi\",\n        \"departureDate\": \"2025-11-12T00:00:00:0000\",\n        \"departureTime\": \"05:00\",\n        \"departureCode\": \"SGN\",\n        \"departureName\": \"Ho Chi Minh City\",\n        \"travelTime\": 125,\n        \"isNDC\": false,\n        \"isChange\": false,\n        \"pnrNumber\": \"FYLTLQ\",\n        \"status\": \"TO_BE_PAID\",\n        \"lastTicketTime\": \"2025-11-09T12:37:00:0000\",\n        \"fareHoldTime\": \"2025-11-09T23:37:00:0000\",\n        \"paidBy\": \"van.nguyen@skyjet.vn\",\n        \"paidUtc\": \"2025-11-09T11:38:15:9271\",\n        \"flightSegments\": [\n          {\n            \"id\": \"227520ac-d65f-4341-9fdc-708d4769bc4d\",\n            \"flightJourneyId\": \"39ab4c0a-2835-48d5-d0c2-08de1f80de8a\",\n            \"sequence\": 1,\n            \"airlinesCode\": \"VN\",\n            \"airlinesName\": \"VIETNAM AIRLINES\",\n            \"arrivalCode\": \"HAN\",\n            \"arrivalName\": \"Hanoi\",\n            \"arrivalDate\": \"2025-11-12T00:00:00:0000\",\n            \"arrivalTime\": \"07:05\",\n            \"departureCode\": \"SGN\",\n            \"departureName\": \"Ho Chi Minh City\",\n            \"departureDate\": \"2025-11-12T00:00:00:0000\",\n            \"departureTime\": \"05:00\",\n            \"bookingCode\": \"Q\",\n            \"cabinClass\": \"ECONOMY\",\n            \"equipment\": \"321\",\n            \"flightNumber\": \"6002\",\n            \"flightTime\": 125,\n            \"departureTerminal\": \"3\",\n            \"arrivalTerminal\": \"1\",\n            \"codeShare\": false,\n            \"stopTime\": 0,\n            \"hasStop\": false,\n            \"operatingFlightAirlinesName\": \"VIETNAM AIRLINES\",\n            \"operatingFlightNumber\": \"6002\",\n            \"operatingFlightAirlinesCode\": \"VN\",\n            \"baggageRules\": {\n              \"adults\": [\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"baggageWeight\": \"23kg\",\n                  \"carryOnAmount\": \"1PC\",\n                  \"carryOnWeight\": \"10kg\"\n                },\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"baggageWeight\": \"23kg\",\n                  \"carryOnAmount\": \"1PC\",\n                  \"carryOnWeight\": \"10kg\"\n                }\n              ],\n              \"children\": [\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"baggageWeight\": \"23kg\",\n                  \"carryOnAmount\": \"1PC\",\n                  \"carryOnWeight\": \"10kg\"\n                },\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"baggageWeight\": \"23kg\",\n                  \"carryOnAmount\": \"1PC\",\n                  \"carryOnWeight\": \"10kg\"\n                }\n              ],\n              \"infants\": [\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"baggageWeight\": \"23kg\",\n                  \"carryOnAmount\": \"1PC\",\n                  \"carryOnWeight\": \"10kg\"\n                },\n                {\n                  \"baggageAmount\": \"1PC\",\n                  \"baggageWeight\": \"23kg\",\n                  \"carryOnAmount\": \"1PC\",\n                  \"carryOnWeight\": \"10kg\"\n                }\n              ]\n            },\n            \"miniRules\": {\n              \"adults\": [],\n              \"children\": [],\n              \"infants\": []\n            },\n            \"fareBasis\": \"QPXVNF\"\n          }\n        ]\n      }\n    ]\n  },\n  \"orderESimInfos\": [],\n  \"passengers\": [\n    {\n      \"flightBookingId\": \"aab329cb-9179-4d5e-bc7f-2e7dcd473599\",\n      \"index\": 1,\n      \"type\": 1,\n      \"dependantIndex\": -1,\n      \"idIssueDate\": \"0001-01-01T00:00:00:0000\",\n      \"idExpiryDate\": \"0001-01-01T00:00:00:0000\",\n      \"frequentFlyerNumbers\": [],\n      \"ticketList\": [],\n      \"ancillaries\": [],\n      \"seats\": [],\n      \"id\": \"1d932cdc-8210-4a72-85a3-a27073736bb2\",\n      \"firstName\": \"NGUYEN\",\n      \"lastName\": \"THAI VAN\",\n      \"gender\": \"M\",\n      \"dateOfBirth\": \"2003-11-09T00:00:00:0000\",\n      \"nationality\": \"VN\",\n      \"updatedUtc\": \"2025-11-09T11:37:01:2600\",\n      \"deleted\": false\n    }\n  ],\n  \"contactInfo\": {\n    \"id\": \"3dca2b6a-edaf-4b3d-bcbd-e8ab4d83bf59\",\n    \"name\": \"Nguyen Thai Van\",\n    \"countryTelCode\": \"84\",\n    \"phoneNumber\": \"0123456789\",\n    \"email\": \"van.nguyen@skyjet.vn\",\n    \"flightBookingId\": \"aab329cb-9179-4d5e-bc7f-2e7dcd473599\",\n    \"deleted\": false\n  },\n  \"priceInfo\": {\n    \"id\": \"0acadc1a-1001-4388-8e44-8fcd5b38fb83\",\n    \"orderId\": \"aab329cb-9179-4d5e-bc7f-2e7dcd473599\",\n    \"pricingType\": 1,\n    \"couponId\": \"00000000-0000-0000-0000-000000000000\",\n    \"itemType\": 0,\n    \"passengerTotalAmount\": 4538000,\n    \"ancillaryTotalAmount\": 0,\n    \"seatTotalAmount\": 0,\n    \"ticketFeeAmount\": 0,\n    \"totalAmount\": 4538000,\n    \"totalOriginalAmount\": 4538000,\n    \"priceModifier\": 0,\n    \"couponAmount\": 0,\n    \"handlingFee\": 0,\n    \"totalFare\": 3148000,\n    \"convertionRate\": 1,\n    \"totalServiceFee\": 0,\n    \"currency\": \"VND\",\n    \"totalTax\": 0,\n    \"surcharges\": 0,\n    \"amount\": 3148000,\n    \"numberOfRooms\": 1,\n    \"averagePerNightAmount\": 0,\n    \"numberOfNights\": 0,\n    \"priceDetails\": [\n      {\n        \"id\": \"eb28f96d-93f6-4d48-824f-e0c234253251\",\n        \"priceInfoId\": \"0acadc1a-1001-4388-8e44-8fcd5b38fb83\",\n        \"count\": 1,\n        \"type\": 1,\n        \"amount\": 3148000,\n        \"originalAmount\": 3148000,\n        \"priceModifier\": 0,\n        \"serviceFee\": 0,\n        \"tax\": 1390000,\n        \"fee\": 0,\n        \"totalAmount\": 4538000,\n        \"averagePerNightAmount\": 0,\n        \"taxAmount\": 0,\n        \"numberOfNights\": 0,\n        \"surcharges\": 0,\n        \"discount\": 0,\n        \"hotelPricePerNights\": [],\n        \"taxes\": [],\n        \"discounts\": []\n      }\n    ],\n    \"createdBy\": \"van.nguyen@skyjet.vn\",\n    \"createdUtc\": \"2025-11-09T11:37:01:2328\",\n    \"updatedUtc\": \"2025-11-09T11:37:01:2311\",\n    \"refundable\": false,\n    \"hasBreakfast\": false,\n    \"extraBed\": false,\n    \"nonSmoking\": false\n  },\n  \"createdBy\": \"van.nguyen@skyjet.vn\",\n  \"createdUtc\": \"2025-11-09T11:37:01:2466\",\n  \"updatedBy\": \"van.nguyen@skyjet.vn\",\n  \"updatedUtc\": \"2025-11-09T11:38:15:9680\",\n  \"agentPath\": \"NV9999\",\n  \"paidBy\": \"van.nguyen@skyjet.vn\",\n  \"paidUtc\": \"2025-11-09T11:38:15:9246\"\n}\n\n ```\n\n---\n\n## Response Field Description\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the booking (UUID). Example: `\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\"` |\n| `readableId` | String | The readable id. |\n| `isInternational` | Bool | Indicates whether the flight is international. |\n| `orderBaseInfo` | Object | Basic information about the order. See `orderBaseInfo` Object Structure. |\n| `orderFlightInfo` | Object | Information about the flights in the order. See `orderFlightInfo` Object Structure. |\n| `passengers` | Array | Array containing passenger information. See `passengers` Array Structure. |\n| `contactInfo` | Object | Contact information for the booking. See `contactInfo` Object Structure. |\n| `priceInfo` | Object | Detailed pricing information. See `priceInfo` Object Structure. |\n| `createdBy` | String | Email address of the user who created the booking. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `createdUtc` | String | Date and time the booking was created (UTC, ISO 8601 format). Example: `\"2025-06-05T08:38:19:4900\"` |\n| `updatedBy` | String | Email address of the user who last updated the booking. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `updatedUtc` | String | Date and time the booking was last updated (UTC, ISO 8601 format). Example: `\"2025-06-05T08:38:21:7477\"` |\n| `agentPath` | String | Path or identifier of the agent. |\n\n---\n\n### `orderBaseInfo` Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `providerCode` | String | ID of the flight provider. Example: `\"flight.provider1\"` |\n| `providerReferenceId` | String | Provider's unique identifier for the booking. Example: `\"917491127052815601\"` |\n| `status` | String | Current status of the booking. Example: `\"TO_BE_PAID\"`. Possible values depend on the system's workflow. |\n| `statusIsFinal` | Boolean | Indicates if the current status is a final state (e.g., `true` if booked successfully). |\n| `bookingType` | String | Type of booking. Example: `\"flight\"` |\n| `totalAmount` | Number | Total amount for the booking. Example: `148.74` |\n| `totalSaleAmount` | Number | Total sale amount for booking. |\n| `totalOriginalAmount` | Number | The originally requested total amount for the booking. This can differ from totalAmount after a price change. Example: `148.74` |\n| `totalPriceModifier` | Number | Amount the total price was modified (e.g., with a coupon). Example: `0` |\n| `totalServiceFee` | Number | Total service fee for booking. |\n| `refundAmount` | Number | Refund amount for booking. |\n| `refundFee` | Number | Refund fee for booking. |\n| `currency` | String | Currency code used for the booking. Example: `\"USD\"` |\n| `convertionRate` | Number | Conversion rate from USD to VND. Example: `26244` |\n| `type` | String | Trip type. Example: `\"ROUND_TRIP\"` |\n| `pnr` | String | Passenger Name Record (PNR) code for the booking. Example: `\"WC2A6H\"` |\n| `airlinePNR` | String | Airline PNR code (if different from `pnr`). Example: `\"\"` (empty string if same as `pnr`) |\n| `orderType` | String | Order type. Example: `\"O\"` (May represent a standard order). |\n| `bookingCode` | String | Fare class code (e.g., \"T\"). Contact the airline for decode the real meaning of bookingCode. Example: `\"T\"` |\n| `isNeedRebookPNR` | Boolean | Indicates if it's need to rebook PNR. Example: `false` |\n| `passengerCount` | Integer | Total number of passengers in the booking. Example: `1` |\n| `totalAmountAtHotel` | Number | Total amount for hotel or any other. Example: `0` |\n| `refunded` | Boolean | Is refunded or not. Example:`false` |\n\n---\n\n### `orderFlightInfo` Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the flight information (UUID). Example: `\"cae6e870-6204-48c7-a008-e6459804e47f\"` |\n| `orderId` | String | ID of the associated order (matches the top-level `id` field). Example: `\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\"` |\n| `flightJourneys` | Array | Array of flight journey objects, detailing each flight leg. See `flightJourneys` Array Structure. |\n\n---\n\n### `flightJourneys` Array Structure\n\nEach object represents a leg of the flight itinerary:\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for this flight journey (UUID). Example: `\"2b2c6be2-7068-4fac-9098-4e6574ed6a66\"` |\n| `flightBookingInfoId` | String | ID of the flight booking information (matches `orderFlightInfo.id`). Example: `\"cae6e870-6204-48c7-a008-e6459804e47f\"` |\n| `sequence` | Integer | Sequence number of the flight journey (1, 2, ...). Starts from 1. Example: `1` |\n| `arrivalDate` | String | Arrival date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `arrivalTime` | String | Arrival time (HH:mm). Example: `\"07:55\"` |\n| `arrivalCode` | String | IATA code of the arrival airport. Example: `\"HAN\"` |\n| `arrivalName` | String | Name of the arrival airport. Example: `\"Hanoi\"` |\n| `departureDate` | String | Departure date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `departureTime` | String | Departure time (HH:mm). Example: `\"05:45\"` |\n| `departureCode` | String | IATA code of the departure airport. Example: `\"SGN\"` |\n| `departureName` | String | Name of the departure airport. Example: `\"Ho Chi Minh City\"` |\n| `travelTime` | Integer | Total travel time in minutes. Example: 130 |\n| `isNDC` | Bool | Indicates whether the flight is distributed through an NDC (New Distribution Capability) channel. |\n| `isChange` | Boolean | Check if flight have change or not. Example: `false` |\n| `pnrNumber` | String | The pnr number. |\n| `status` | String | The status of journey. |\n| `fareHoldTime` | String | The time can hold fare. |\n| `flightSegments` | Array | Array of flight segment objects. See `flightSegments` Array Structure. |\n| `fare` | Object | The detailed pricing and cost information for this journey. See `Journey Fare` Object Structure. |\n\n### Journey Fare Object Structure\n\nThis object provides detailed pricing and cost information for a specific journey. The structure matches the sample fare model from booking/order response.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the fare info (UUID). |\n| `orderId` | String | ID of the order this fare info belongs to. |\n| `couponId` | String | ID of the coupon applied to the booking. |\n| `itemType` | Integer | Type of item being priced (e.g., flight, ancillary, etc.). |\n| `passengerTotalAmount` | Number | Total amount for all passengers in this journey. |\n| `ancillaryTotalAmount` | Number | Total amount for ancillary services in this journey. |\n| `seatTotalAmount` | Number | Total amount for seat reservations in this journey. |\n| `ticketFeeAmount` | Number | Total amount for ticket issuance fees. |\n| `totalAmount` | Number | The final total amount for the journey. |\n| `couponAmount` | Number | Amount reduced due to coupons. |\n| `handlingFee` | Number | Handling fee. |\n| `totalFare` | Number | Total fare excluding tax and fee. |\n| `totalTax` | Number | Total tax. |\n| `amount` | Number | Total amount. |\n| `priceDetails` | Array | Array of ticket price details. Each item includes a `type` field: 1 = Adult, 2 = Children, 3 = Infant. |\n| `createdBy` | String | Creator of this fare info. |\n| `createdUtc` | String | Created datetime. |\n| `updatedUtc` | String | Updated datetime. |\n| `refundable` | Boolean | Indicates if the journey is refundable. |\n\n#### Notes\n\n- The `fare` field is only present in each journey if the booking/order returns journey-level pricing.\n    \n- The structure and fields are similar to the top-level `priceInfo` object, but scoped to the specific journey.\n    \n- If journey-level pricing is not available, the `fare` field will be omitted or null.\n    \n\n#### Example\n\n``` json\n\"flightJourneys\": [\n  {\n    \"id\": \"2b2c6be2-7068-4fac-9098-4e6574ed6a66\",\n    \"sequence\": 1,\n    // ...existing fields...,\n    \"fare\": {\n        \"id\": \"088b8ab3-f09c-4860-b9ee-39ef662d610a\",\n        \"orderId\": \"bf20f9e9-f5f2-4587-9aa4-9bb746fd2e62\",\n        \"flightJourneyId\": \"643d8c99-1656-452d-8442-03d29d186c31\",\n        \"pricingType\": 2,\n        \"couponId\": \"00000000-0000-0000-0000-000000000000\",\n        \"itemType\": 0,\n        \"passengerTotalAmount\": 2128000.0,\n        \"ancillaryTotalAmount\": 0.0,\n        \"seatTotalAmount\": 0.0,\n        \"ticketFeeAmount\": 0.0,\n        \"totalAmount\": 2128000.0,\n        \"totalOriginalAmount\": 2128000.0,\n        \"priceModifier\": 0.0,\n        \"couponAmount\": 0.0,\n        \"handlingFee\": 0.0,\n        \"totalFare\": 1419000.0,\n        \"convertionRate\": 1.0,\n        \"totalTax\": 0.0,\n        \"amount\": 1419000.0,\n        \"priceDetails\": [\n            {\n                \"id\": \"74e9eb8d-7ec1-48a8-9705-62632225cf6d\",\n                \"priceInfoId\": \"088b8ab3-f09c-4860-b9ee-39ef662d610a\",\n                \"count\": 1,\n                \"type\": 1,\n                \"amount\": 1419000.0,\n                \"originalAmount\": 1419000.0,\n                \"priceModifier\": 0.0,\n                \"tax\": 709000.0,\n                \"fee\": 0.0,\n                \"totalAmount\": 2128000.0,\n                \"taxAmount\": 0.0,\n            }\n        ],\n        \"createdBy\": \"694E6C9E-ED3C-43EB-A50F-389ADE398E85\",\n        \"createdUtc\": \"0001-01-01T00:00:00:0000\",\n        \"updatedUtc\": \"2025-07-15T19:43:08:7959\",\n    },\n  }\n]\n\n ```\n\n### `flightSegments` Array Structure\n\nEach object represents a segment within a flight journey:\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the flight segment (UUID). Example: `\"f95a2ce8-baa2-41c2-a9c6-543ecca78e4a\"` |\n| `flightJourneyId` | String | ID of the flight journey this segment belongs to (matches `flightJourneys.id`). Example: `\"2b2c6be2-7068-4fac-9098-4e6574ed6a66\"` |\n| `sequence` | Integer | Segment order within the leg (starting from 1). Example: `1` |\n| `airlinesCode` | String | 2-letter airline code. Example: `\"VU\"` |\n| `airlinesName` | String | Airline name. Example: `\"VIETRAVEL AIRLINES\"` |\n| `arrivalCode` | String | IATA arrival airport code. Example: `\"HAN\"` |\n| `arrivalName` | String | Arrival airport name. Example: `\"Hanoi\"` |\n| `arrivalDate` | String | Arrival date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `arrivalTime` | String | Arrival time (HH:mm). Example: `\"07:55\"` |\n| `departureCode` | String | IATA departure airport code. Example: `\"SGN\"` |\n| `departureName` | String | Departure airport name. Example: `\"Ho Chi Minh City\"` |\n| `departureDate` | String | Departure date (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2025-07-08T00:00:00:0000\"` |\n| `departureTime` | String | Departure time (HH:mm). Example: `\"05:45\"` |\n| `bookingCode` | String | Fare class code. Example: `\"T\"`. Contact the airline to decode the real meaning of bookingCode. |\n| `cabinClass` | String | Cabin class. Example: `\"ECONOMY\"` |\n| `equipment` | String | Aircraft type. Example: `\"32S\"` |\n| `flightNumber` | String | Flight number. Example: `\"750\"` |\n| `flightTime` | Integer | Flight time in minutes. Example: `130` |\n| `departureTerminal` | String | Departure Terminal. Example: `1` |\n| `arrivalTerminal` | String | Arrival Terminal. Example: `1` |\n| `codeShare` | Boolean | Check if the the flights segments have code share,Example: `false` |\n| `stopTime` | Integer | Layover time in minutes (0 for direct flights). Example: `0` |\n| `hasStop` | Boolean | hasStop check the the flights segments have stop,Example: `false` |\n| `operatingFlightAirlinesName` | String | Name of the operating airline. |\n| `operatingFlightNumber` | String | Flight number operated by the airline. |\n| `operatingFlightAirlinesCode` | String | Airline code. |\n| `baggageRules` | Object | Baggage allowance rules for the segment. See `baggageRules` Structure. |\n| `miniRules` | Object | Rules regarding penalties, refunds, and reissues for the segment. See `miniRules` Structure. |\n\n---\n\n### `baggageRules` Structure\n\nThis object specifies baggage allowances for adults, children, and infants.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Array of baggage rule objects for adults. See `Baggage Rule Object`. |\n| `children` | Array | Array of baggage rule objects for children (if any). |\n| `infants` | Array | Array of baggage rule objects for infants (if any). |\n\n---\n\n#### Baggage Rule Object\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `baggageAmount` | String | `\"0PC\"` | Checked baggage allowance (e.g., `\"0PC\"` = 0 pieces) |\n| `baggageWeight` | String | `\"8KG\"` | Checked baggage weight limit (e.g., `\"7KG\"` = 7 kilograms) |\n| `carryOnAmount` | String | `\"1PC\"` | Cabin baggage allowance (e.g., `\"1PC\"` = 1 piece) |\n| `carryOnWeight` | String | `\"7KG\"` | Cabin baggage weight limit (e.g., `\"7KG\"` = 7 kilograms) |\n\n### `miniRules` Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `adults` | Array | Array of penalty rule objects for adults. See `Rule Object`. |\n| `children` | Array | Array of penalty rule objects for children (if any). |\n| `infants` | Array | Array of penalty rule objects for infants (if any). |\n\n---\n\n#### Rule Object\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `miniruleText` | String | `\"example rule\"` | The text rule. |\n| `miniruleHtml` | String | `\" example html rule \"` | The html rule. |\n| `penaltyType` | String | `\"REFUND\"` | Fee type (`REFUND`, `REISSUE`). |\n| `allowRefund` | String | `\"NOT_ALLOWED\"` | Indicates if a refund is allowed (`ALLOW`, `NOT_ALLOWED`). |\n| `situation` | String | `\"BEFORE_DEPARTURE\"` | When the penalty applies (`BEFORE_DEPARTURE`, `AFTER_DEPARTURE`). |\n| `noShowTime` | String | `\"BEFORE\"` | No-show timing relative to departure. |\n| `noShowTimeUnit` | String | `\"H\"` | Time unit for the no-show period. |\n| `amount` | Number | `0.0` | Fee amount. |\n| `penaltyPercent` | Number | `0.0` | Fee percentage of the base fare. |\n| `baseType` | String | `\"FARE\"` | Fee calculation base (`FARE` = total fare). |\n\n---\n\n### `ContactInfo` Object Structure\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for contact (UUID). Example: `\"41b419aa-e9c0-4bc0-95f2-f1b9710dd578\"` |\n| `Name` | String | Full name of the contact person. Example: `\"NGUYEN CONG THANH\"` |\n| `PhoneNumber` | String | Phone number of the contact person. Example: `\"2929292929\"` |\n| `Email` | String | Email address of the contact person. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `CountryTelCode` | String | International telephone code of the contact's phone number. Example: `\"84\"` |\n| `flightBookingId` | String | Flight booking unique identification. Example:\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\" |\n| `deleted` | Boolean | Check if contact info is deleted or not. Example:`false` |\n\n---\n\n### `passengers` Array Structure\n\nThis array specifies information about each passenger for whom the booking is being made.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `flightBookingId` | String | Id of the flight booking unique. Example: `\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\"` |\n| `index` | Integer | A unique number identifier for the passenger, starting from `1`. Example: `\"1\"` |\n| `type` | Integer | Passenger Type. Possible values: `1` (Adult), `2` (Child), `3` (Infant) Example: `\"1\"` |\n| `idIssueDate` | String | Unknow data. Example: `\"0001-01-01T00:00:00:0000\"` |\n| `idExpiryDate` | String | Expiry date of the ID (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"2026-08-19T00:00:00:0000\"` |\n| `ticketList` | Object | List of ticket associated. Example:`[]` |\n| `ancillaries` | Object | Object contains ancillary services. Example:`[]` |\n| `seats` | Array | object contains passenger seats. Example:`[]` |\n| `id` | String | unique passenger ID. Example: `\"785c1ff9-4b36-4cf8-9025-85ae5e345d60\"` |\n| `firstName` | String | Passenger's first name. Example: `\"CONG THANH\"` |\n| `lastName` | String | Passenger's last name. Example: `\"NGUYEN\"` |\n| `gender` | String | Passenger's gender. Possible values: `\"M\"` (Male), `\"F\"` (Female). Example: `\"M\"` |\n| `dateOfBirth` | String | Passenger's date of birth (YYYY-MM-DDTHH:mm:ss.SSSS format). Example: `\"1993-08-19T00:00:00:0000\"` |\n| `nationality` | String | Passenger's nationality (ISO 3166-1 alpha-2 country code). Example: `\"VN\"` |\n| `idNumber` | String | Passenger's ID card or Passport number. Example: `\"123456789\"` |\n| `idType` | String | Type of ID used. Possible values: `\"passport\"`.Example: `\"passport\"` |\n| `updatedUtc` | String | update time. Example: `\"2025-06-05T08:38:19:5033\"` |\n| `deleted` | Boolean | check if it deleted or not. Example: `false` |\n\n---\n\n### `priceInfo` Object Structure\n\nThis object provides detailed pricing and cost information.\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | String | Unique identifier for the price information (UUID). Example: `\"9fab6075-8b22-4e7d-aa1d-2813d6ecc2e9\"` |\n| `orderId` | String | ID of the order this price information belongs to (matches the top-level `id` field). Example: `\"fe05e6cd-c3d9-4cb9-9546-3ae648f0b723\"` |\n| `pricingType` | Integer | Type of pricing. |\n| `couponId` | String | ID of the coupon applied to the booking. Example: `\"00000000-0000-0000-0000-000000000000\"` (all zeros indicates no coupon) |\n| `itemType` | Integer | Type of item being priced (e.g., might represent a flight, ancillary service, etc.). Example: `0` |\n| `passengerTotalAmount` | Number | Total amount for all passengers. Example: `148.74` |\n| `ancillaryTotalAmount` | Number | Total amount for ancillary services. Example: `0` |\n| `seatTotalAmount` | Number | Total amount for seat reservations. Example: `0` |\n| `ticketFeeAmount` | Number | Total amount for ticket issuance fees. Example: `0` |\n| `totalAmount` | Number | The final total amount for the booking. Example: `148.74` |\n| `couponAmount` | Number | Amount reduced due to coupons. Example: `0` |\n| `handlingFee` | Number | Handling fee. Example: `0` |\n| `totalFare` | Number | Total Fare exclude tax and fee. Example: `92.48` |\n| `convertionRate` | Number | Conversion rate from USD to VND. Example: `26244` |\n| `currency` | String | Currency code for the amounts (e.g., `\"USD\"`). Example: `\"USD\"` |\n| `totalTax` | Number | Total tax. Example: `0` |\n| `surcharges` | Number | More expense if have. |\n| `amount` | Number | Total Amount |\n| `numberOfRooms` | Number | Number of rooms for hotel information |\n| `averagePerNightAmount` | Number | Per night amount. |\n| `numberOfNights` | Number | Number of nights. |\n| `priceDetails` | Object | Object contains ticket price details. |\n| `createdBy` | String | Person create for these price. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `createdUtc` | String | Created Datetime . Example: `\"0001-01-01T00:00:00:0000\"` |\n| `updatedBy` | String | Person update for these price. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `updatedUtc` | String | Update Datetime. Example: `\"2025-06-05T08:38:19:2970\"` |\n| `paidBy` | String | Person paid for these price. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `paidUtc` | String | Paid Datetime. Example: `\"2025-06-05T08:38:19:2970\"` |\n| `cancelledBy` | String | Person cancell for these price. Example: `\"thanh.nguyen1@skyjet.vn\"` |\n| `cancelledUtc` | String | Cancell Datetime. Example: `\"2025-06-05T08:38:19:2970\"` |\n| `refundable` | Boolean | Check this conditions or not. |\n| `hasBreakfast` | Boolean | Check this if have breakfast or not. |\n| `extraBed` | Boolean | check if have extra bed or not. |\n| `nonSmoking` | Boolean | check non smoking or not |\n\n---\n\n## Notes\n\n1. **Ticket Statuses**:\n    \n    - `ISSUING`: Ticket processing in progress\n        \n    - `ISSUED`: E-ticket successfully generated\n        \n    - `FAILED`: Ticket issuance failed (check payment/validity)\n        \n2. All datetimes use **local airport time**\n    \n3. Baggage allowance (`20KG/pax`) applies per passenger per segment\n    \n4. Fare codes in class designation (e.g., H/J/E) indicate specific fare rules\n    \n5. Policy details are airline-specific and non-negotiable\n    \n6. Complete e-ticket details will be sent to contact email upon successful issuance"
									},
									"response": []
								}
							],
							"description": "Manage Booking APIs and Post Booking operations"
						}
					]
				}
			]
		}
	],
	"event": [
		{
			"listen": "prerequest",
			"script": {
				"type": "text/javascript",
				"packages": {},
				"requests": {},
				"exec": [
					""
				]
			}
		},
		{
			"listen": "test",
			"script": {
				"type": "text/javascript",
				"packages": {},
				"requests": {},
				"exec": [
					""
				]
			}
		}
	],
	"variable": [
		{
			"key": "host",
			"value": "https://api.skyjet.vn"
		},
		{
			"key": "idp",
			"value": "https://id.skyjet.vn"
		},
		{
			"key": "access_token",
			"value": ""
		},
		{
			"key": "solutionProviderId",
			"value": ""
		},
		{
			"key": "sa_client_id",
			"value": ""
		},
		{
			"key": "sa_client_secret",
			"value": ""
		},
		{
			"key": "solutionFlight",
			"value": ""
		}
	]
}