{
	"info": {
		"_postman_id": "74303218-6068-47f9-b1cc-45546500a321",
		"name": "ESIM Hub - Documented",
		"description": "# 📶 E-SIM Service Starter Guide\n\n**Your one-stop solution for integrating E-SIM services!**  \nThis hub provides comprehensive resources to seamlessly connect with E-SIM Service APIs – including REST collections, environment templates, authentication guides, and example workflows.\n\n## 🛠 **How to use this hub**\n\n#### **Step 1: Import the Collection**\n\nBegin by importing the **E-SIM Service REST Collection** which includes endpoints for:\n\n- Search E-SIM Products (POST)\n    \n- Get E-SIM Product Details (POST)\n    \n- Order E-SIM (POST)\n    \n- Search E-SIM Orders (POST)\n    \n- Get E-SIM Order Details (GET)\n    \n- Refund E-SIM Order (POST)\n    \n\n#### **Step 2: Configure Environments**\n\nWe provide pre-configured environments. Key variables include:\n\n- Endpoint: `{{base_url}}`\n    \n\nAdd your environment variables such as `{{base_url}}` and `{{auth_token}}` in your environment settings.\n\n#### **Step 3: Set Up Authentication**\n\nE-SIM Service uses **Bearer Token (JWT)** authentication. Include your token in the `Authorization` header for all requests:\n\n\\`\\`\\`http  \nPOST /order HTTP/1.1  \nHost: {{base_url}}  \nAuthorization: Bearer {{auth_token}}  \nContent-Type: application/json",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
		"_exporter_id": "46302353"
	},
	"item": [
		{
			"name": "Init",
			"item": [
				{
					"name": "Login",
					"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": {}
							}
						}
					],
					"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": "{{password}}",
									"type": "text"
								},
								{
									"key": "username",
									"value": "{{username}}",
									"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:** `https://id.skyjet.vn/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\n---\n\n## Sample Request\n\n``` bash\ncurl --location 'https://id.skyjet.vn/connect/token' \\\n--header 'Content-Type: application/x-www-form-urlencoded' \\\n--data-urlencode 'grant_type=password' \\\n--data-urlencode 'client_id=YOUR_CLIENT_ID' \\\n--data-urlencode 'password=xxxxxx' \\\n--data-urlencode 'username=xxxxxx'\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## 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": []
				}
			],
			"description": "# 🚀 Initialization & Authentication APIs\n\nWelcome to the Initialization & Authentication section. This section covers the fundamental APIs required to begin your interaction with the E-SIM Service. Proper authentication is the crucial first step to accessing any other E-SIM functionalities.\n\nThe primary API in this section is:\n\n*   **Login (POST):** `login.md`\n    *   This endpoint is used to authenticate your application and obtain a **Bearer Token (JWT)**.\n    *   This token (which you'll typically store in your `{{auth_token}}` environment variable) must then be included in the `Authorization` header for all subsequent requests to other E-SIM Service APIs, as outlined in our main [Authentication Guide](./#step-3-set-up-authentication).\n\nSuccessfully authenticating via the Login API will allow you to proceed with utilizing the full suite of E-SIM services. Click on the API above to view detailed request/response formats and examples."
		},
		{
			"name": "Hub",
			"item": [
				{
					"name": "Esim Hub",
					"item": [
						{
							"name": "Metadata",
							"item": [
								{
									"name": "Get Countries by continent code",
									"item": [
										{
											"name": "Get Countries - Asia",
											"request": {
												"method": "POST",
												"header": [
													{
														"key": "Authorization",
														"value": "Bearer {{access_token}}",
														"type": "text"
													}
												],
												"body": {
													"mode": "raw",
													"raw": "{\r\n    \"filter\": \"{\\\"and\\\":[{\\\"queryKey\\\":\\\"continentCode\\\",\\\"queryType\\\":\\\"text\\\",\\\"operation\\\":\\\"eq\\\",\\\"queryValue\\\":\\\"AS\\\"}]}\"\r\n}",
													"options": {
														"raw": {
															"language": "json"
														}
													}
												},
												"url": {
													"raw": "{{host}}/hub/b2c/countries/search",
													"host": [
														"{{host}}"
													],
													"path": [
														"hub",
														"b2c",
														"countries",
														"search"
													]
												},
												"description": "# Country Search API Documentation (Including AS Support)\n\n## Overview\n\nThis API enables searching for countries based on specified filter criteria. It returns a paginated list of countries matching the query, along with their codes and names in different languages.\n\n---\n\n## API Endpoint\n\n- **URL:** `https://api.skyjet.vn/hub/b2c/countries/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}` | Access token (Required) |\n| `Content-Type` | `application/json` | Request/Response format |\n\n---\n\n## Request Body Parameters\n\n### Main Parameters\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `filter` | String | ✅ Yes | JSON string representing the filter conditions. | `{\"and\":[{\"queryKey\":\"continentCode\",\"queryType\":\"text\",\"operation\":\"eq\",\"queryValue\":\"AS\"}]}` |\n\n#### Filter Object (within the JSON string)\n\nThe `filter` string contains a JSON object with the following structure:\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `and` | Array | ✅ Yes | An array of filter condition objects. | `[...]` |\n| `or` | Array | ❌ No | An array of filter condition objects (alternative). | `[...]` |\n\n#### Filter Condition Object (elements within `and` or `or` arrays)\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `queryKey` | String | ✅ Yes | The field to apply the filter on. | `\"continentCode\"`, `\"countryCode\"` |\n| `queryType` | String | ✅ Yes | The data type of the field for query. | `\"text\"`, `\"number\"` |\n| `operation` | String | ✅ Yes | The comparison operator. | `\"eq\"` (equals), `\"contains\"`, `\"neq\"` |\n| `queryValue` | String | ✅ Yes | The value to compare against. | `\"AS\"` |\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location 'https://api.skyjet.vn/hub/b2c/countries/search' \\\n--header 'Authorization: Bearer xxxxxx' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"filter\": \"{\\\"and\\\":[{\\\"queryKey\\\":\\\"continentCode\\\",\\\"queryType\\\":\\\"text\\\",\\\"operation\\\":\\\"eq\\\",\\\"queryValue\\\":\\\"AS\\\"}]}\"\n}'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n    \"durationInMilisecond\": 92,\n    \"totalCount\": 54,\n    \"totalPage\": 3,\n    \"pageSize\": 20,\n    \"pageIndex\": 0,\n    \"clientOverride\": false,\n    \"data\": [\n        {\n            \"countryCode\": \"YE\",\n            \"name\": \"Yemen\",\n            \"nameVN\": \"Yemen\",\n            \"continentCode\": \"AS\"\n        },\n        {\n            \"countryCode\": \"VN\",\n            \"name\": \"Viet Nam\",\n            \"nameVN\": \"Việt Nam\",\n            \"continentCode\": \"AS\"\n        },\n        {\n            \"countryCode\": \"UZ\",\n            \"name\": \"Uzbekistan\",\n            \"nameVN\": \"Uzbekistan\",\n            \"continentCode\": \"AS\"\n        },\n        {\n            \"countryCode\": \"TW\",\n            \"name\": \"Taiwan, Province of China\",\n            \"nameVN\": \"Đài Loan (Tỉnh của Trung Quốc)\",\n            \"continentCode\": \"AS\"\n        },\n        {\n            \"countryCode\": \"TR\",\n            \"name\": \"Turkey\",\n            \"nameVN\": \"Thổ Nhĩ Kỳ\",\n            \"continentCode\": \"AS\"\n        },\n        {\n            \"countryCode\": \"TM\",\n            \"name\": \"Turkmenistan\",\n            \"nameVN\": \"Turkmenistan\",\n            \"continentCode\": \"AS\"\n        },\n        {\n            \"countryCode\": \"TL\",\n            \"name\": \"Timor-Leste\",\n            \"nameVN\": \"Đông Timor (Timor-Leste)\",\n            \"continentCode\": \"AS\"\n        },\n        {\n            \"countryCode\": \"TJ\",\n            \"name\": \"Tajikistan\",\n            \"nameVN\": \"Tajikistan\",\n            \"continentCode\": \"AS\"\n        },\n        {\n            \"countryCode\": \"TH\",\n            \"name\": \"Thailand\",\n            \"nameVN\": \"Thái Lan\",\n            \"continentCode\": \"AS\"\n        },\n        {\n            \"countryCode\": \"SY\",\n            \"name\": \"Syrian Arab Republic\",\n            \"nameVN\": \"Syria (Cộng hòa Ả Rập Syria)\",\n            \"continentCode\": \"AS\"\n        },\n        {\n            \"countryCode\": \"SG\",\n            \"name\": \"Singapore\",\n            \"nameVN\": \"Singapore\",\n            \"continentCode\": \"AS\"\n        },\n        {\n            \"countryCode\": \"SA\",\n            \"name\": \"Saudi Arabia\",\n            \"nameVN\": \"Ả Rập Xê Út\",\n            \"continentCode\": \"AS\"\n        },\n        {\n            \"countryCode\": \"QA\",\n            \"name\": \"Qatar\",\n            \"nameVN\": \"Qatar\",\n            \"continentCode\": \"AS\"\n        },\n        {\n            \"countryCode\": \"PS\",\n            \"name\": \"Palestine, State of\",\n            \"nameVN\": \"Palestine (Nhà nước Palestine)\",\n            \"continentCode\": \"AS\"\n        },\n        {\n            \"countryCode\": \"PK\",\n            \"name\": \"Pakistan\",\n            \"nameVN\": \"Pakistan\",\n            \"continentCode\": \"AS\"\n        },\n        {\n            \"countryCode\": \"PH\",\n            \"name\": \"Philippines\",\n            \"nameVN\": \"Philippines\",\n            \"continentCode\": \"AS\"\n        },\n        {\n            \"countryCode\": \"OM\",\n            \"name\": \"Oman\",\n            \"nameVN\": \"Oman\",\n            \"continentCode\": \"AS\"\n        },\n        {\n            \"countryCode\": \"NP\",\n            \"name\": \"Nepal\",\n            \"nameVN\": \"Nepal\",\n            \"continentCode\": \"AS\"\n        },\n        {\n            \"countryCode\": \"MY\",\n            \"name\": \"Malaysia\",\n            \"nameVN\": \"Malaysia\",\n            \"continentCode\": \"AS\"\n        },\n        {\n            \"countryCode\": \"MV\",\n            \"name\": \"Maldives\",\n            \"nameVN\": \"Maldives\",\n            \"continentCode\": \"AS\"\n        }\n    ]\n}\n\n ```\n\n---\n\n## Response Field Description\n\nThis section describes the fields returned in the API response. All field description tables in this section follow the `| Field | Type | Example | Description |` format.\n\n### Root Level Fields\n\nThese fields are present at the top level of the JSON response, providing metadata and the main data payload.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `durationInMilisecond` | Number | `92` | Time taken for the API to process the request, in milliseconds. |\n| `totalCount` | Number | `54` | Total number of country items matching the filter criteria. |\n| `totalPage` | Number | `3` | Total number of pages available based on `pageSize` and `totalCount`. |\n| `pageSize` | Number | `20` | Number of country items returned per page in the `data` array. |\n| `pageIndex` | Number | `0` | The current page index (0-based) of the returned set of countries. |\n| `clientOverride` | Boolean | `false` | Indicates if any client-side override logic was applied to the response. |\n| `data` | Array | `[{}, {}, ...]` | An array of [Country Objects](#country-object). See details below. |\n\n### Country Object\n\nThese objects are found within the `data` array in the response. Each object represents a single country.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `countryCode` | String | `\"YE\"` | The 2-letter ISO 3166-1 alpha-2 country code. |\n| `name` | String | `\"Yemen\"` | The common English name of the country. |\n| `nameVN` | String | `\"Yemen\"` | The Vietnamese name of the country. |\n| `continentCode` | String | `\"AS\"` | The 2-letter code representing the continent. |\n\n---\n\n## Notes\n\n- The `filter` parameter in the request body is a JSON string that defines search conditions. For example, to find countries in Asia, the filter would be `{\"and\":[{\"queryKey\":\"continentCode\",\"queryType\":\"text\",\"operation\":\"eq\",\"queryValue\":\"AS\"}]}`.\n    \n- `countryCode` uses the ISO 3166-1 alpha-2 standard.\n    \n- `continentCode` uses 2-letter abbreviations (e.g., \"AS\" for Asia, \"EU\" for Europe, \"AF\" for Africa, \"NA\" for North America, \"SA\" for South America, \"OC\" for Oceania, \"AN\" for Antarctica).\n    \n- The response is paginated. Use `pageIndex` and `pageSize` in conjunction with `totalCount` and `totalPage` to navigate through results if they span multiple pages.\n    \n- The `durationInMilisecond` field can be useful for monitoring API performance."
											},
											"response": []
										},
										{
											"name": "Get Countries - Europe",
											"request": {
												"method": "POST",
												"header": [
													{
														"key": "Authorization",
														"value": "Bearer {{access_token}}",
														"type": "text"
													}
												],
												"body": {
													"mode": "raw",
													"raw": "{\r\n    \"filter\": \"{\\\"and\\\":[{\\\"queryKey\\\":\\\"continentCode\\\",\\\"queryType\\\":\\\"text\\\",\\\"operation\\\":\\\"eq\\\",\\\"queryValue\\\":\\\"EU\\\"}]}\"\r\n}",
													"options": {
														"raw": {
															"language": "json"
														}
													}
												},
												"url": {
													"raw": "{{host}}/hub/b2c/countries/search",
													"host": [
														"{{host}}"
													],
													"path": [
														"hub",
														"b2c",
														"countries",
														"search"
													]
												},
												"description": "# Country Search API Documentation (Including EU Support)\n\n## Overview\n\nThis API enables searching for countries based on specified filter criteria. It returns a paginated list of countries matching the query, along with their codes and names in different languages.\n\n---\n\n## API Endpoint\n\n- **URL:** `https://api.skyjet.vn/hub/b2c/countries/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}` | Access token (Required) |\n| `Content-Type` | `application/json` | Request/Response format |\n\n---\n\n## Request Body Parameters\n\n### Main Parameters\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `filter` | String | ✅ Yes | JSON string representing the filter conditions. | `{\"and\":[{\"queryKey\":\"continentCode\",\"queryType\":\"text\",\"operation\":\"eq\",\"queryValue\":\"EU\"}]}` |\n\n#### Filter Object (within the JSON string)\n\nThe `filter` string contains a JSON object with the following structure:\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `and` | Array | ✅ Yes | An array of filter condition objects. | `[...]` |\n| `or` | Array | ❌ No | An array of filter condition objects (alternative). | `[...]` |\n\n#### Filter Condition Object (elements within `and` or `or` arrays)\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `queryKey` | String | ✅ Yes | The field to apply the filter on. | `\"continentCode\"`, `\"countryCode\"` |\n| `queryType` | String | ✅ Yes | The data type of the field for query. | `\"text\"`, `\"number\"` |\n| `operation` | String | ✅ Yes | The comparison operator. | `\"eq\"` (equals), `\"contains\"`, `\"neq\"` |\n| `queryValue` | String | ✅ Yes | The value to compare against. | `\"EU\"` |\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location 'https://api.skyjet.vn/hub/b2c/countries/search' \\\n--header 'Authorization: Bearer xxxxxx' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"filter\": \"{\\\"and\\\":[{\\\"queryKey\\\":\\\"continentCode\\\",\\\"queryType\\\":\\\"text\\\",\\\"operation\\\":\\\"eq\\\",\\\"queryValue\\\":\\\"EU\\\"}]}\"\n}'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n    \"durationInMilisecond\": 64,\n    \"totalCount\": 52,\n    \"totalPage\": 3,\n    \"pageSize\": 20,\n    \"pageIndex\": 0,\n    \"clientOverride\": false,\n    \"data\": [\n        {\n            \"countryCode\": \"XK\",\n            \"name\": \"Kosovo\",\n            \"nameVN\": \"Cộng hòa Kosovo\",\n            \"continentCode\": \"EU\"\n        },\n        {\n            \"countryCode\": \"VA\",\n            \"name\": \"Holy See (Vatican City State)\",\n            \"nameVN\": \"Vatican\",\n            \"continentCode\": \"EU\"\n        },\n        {\n            \"countryCode\": \"UA\",\n            \"name\": \"Ukraine\",\n            \"nameVN\": \"Ukraina\",\n            \"continentCode\": \"EU\"\n        },\n        {\n            \"countryCode\": \"SM\",\n            \"name\": \"San Marino\",\n            \"nameVN\": \"San Marino\",\n            \"continentCode\": \"EU\"\n        },\n        {\n            \"countryCode\": \"SK\",\n            \"name\": \"Slovakia\",\n            \"nameVN\": \"Slovakia\",\n            \"continentCode\": \"EU\"\n        },\n        {\n            \"countryCode\": \"SJ\",\n            \"name\": \"Svalbard and Jan Mayen\",\n            \"nameVN\": \"Svalbard và Jan Mayen\",\n            \"continentCode\": \"EU\"\n        },\n        {\n            \"countryCode\": \"SI\",\n            \"name\": \"Slovenia\",\n            \"nameVN\": \"Slovenia\",\n            \"continentCode\": \"EU\"\n        },\n        {\n            \"countryCode\": \"SE\",\n            \"name\": \"Sweden\",\n            \"nameVN\": \"Thụy Điển\",\n            \"continentCode\": \"EU\"\n        },\n        {\n            \"countryCode\": \"RU\",\n            \"name\": \"Russian Federation\",\n            \"nameVN\": \"Liên bang Nga\",\n            \"continentCode\": \"EU\"\n        },\n        {\n            \"countryCode\": \"RS\",\n            \"name\": \"Serbia\",\n            \"nameVN\": \"Serbia\",\n            \"continentCode\": \"EU\"\n        },\n        {\n            \"countryCode\": \"RO\",\n            \"name\": \"Romania\",\n            \"nameVN\": \"Romania\",\n            \"continentCode\": \"EU\"\n        },\n        {\n            \"countryCode\": \"PT\",\n            \"name\": \"Portugal\",\n            \"nameVN\": \"Bồ Đào Nha\",\n            \"continentCode\": \"EU\"\n        },\n        {\n            \"countryCode\": \"PL\",\n            \"name\": \"Poland\",\n            \"nameVN\": \"Ba Lan\",\n            \"continentCode\": \"EU\"\n        },\n        {\n            \"countryCode\": \"NO\",\n            \"name\": \"Norway\",\n            \"nameVN\": \"Na Uy\",\n            \"continentCode\": \"EU\"\n        },\n        {\n            \"countryCode\": \"NL\",\n            \"name\": \"Netherlands\",\n            \"nameVN\": \"Hà Lan\",\n            \"continentCode\": \"EU\"\n        },\n        {\n            \"countryCode\": \"MT\",\n            \"name\": \"Malta\",\n            \"nameVN\": \"Malta\",\n            \"continentCode\": \"EU\"\n        },\n        {\n            \"countryCode\": \"MK\",\n            \"name\": \"North Macedonia\",\n            \"nameVN\": \"Bắc Macedonia\",\n            \"continentCode\": \"EU\"\n        },\n        {\n            \"countryCode\": \"ME\",\n            \"name\": \"Montenegro\",\n            \"nameVN\": \"Montenegro\",\n            \"continentCode\": \"EU\"\n        },\n        {\n            \"countryCode\": \"MD\",\n            \"name\": \"Moldova, Republic of\",\n            \"nameVN\": \"Moldova (Cộng hòa Moldova)\",\n            \"continentCode\": \"EU\"\n        },\n        {\n            \"countryCode\": \"MC\",\n            \"name\": \"Monaco\",\n            \"nameVN\": \"Monaco\",\n            \"continentCode\": \"EU\"\n        }\n    ]\n}\n\n ```\n\n---\n\n## Response Field Description\n\nThis section describes the fields returned in the API response. All field description tables in this section follow the `| Field | Type | Example | Description |` format.\n\n### Root Level Fields\n\nThese fields are present at the top level of the JSON response, providing metadata and the main data payload.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `durationInMilisecond` | Number | `92` | Time taken for the API to process the request, in milliseconds. |\n| `totalCount` | Number | `54` | Total number of country items matching the filter criteria. |\n| `totalPage` | Number | `3` | Total number of pages available based on `pageSize` and `totalCount`. |\n| `pageSize` | Number | `20` | Number of country items returned per page in the `data` array. |\n| `pageIndex` | Number | `0` | The current page index (0-based) of the returned set of countries. |\n| `clientOverride` | Boolean | `false` | Indicates if any client-side override logic was applied to the response. |\n| `data` | Array | `[{}, {}, ...]` | An array of [Country Objects](#country-object). See details below. |\n\n### Country Object\n\nThese objects are found within the `data` array in the response. Each object represents a single country.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `countryCode` | String | `\"YE\"` | The 2-letter ISO 3166-1 alpha-2 country code. |\n| `name` | String | `\"Yemen\"` | The common English name of the country. |\n| `nameVN` | String | `\"Yemen\"` | The Vietnamese name of the country. |\n| `continentCode` | String | `\"EU\"` | The 2-letter code representing the continent. |\n\n---\n\n## Notes\n\n- The `filter` parameter in the request body is a JSON string that defines search conditions. For example, to find countries in Asia, the filter would be `{\"and\":[{\"queryKey\":\"continentCode\",\"queryType\":\"text\",\"operation\":\"eq\",\"queryValue\":\"EU\"}]}`.\n    \n- `countryCode` uses the ISO 3166-1 alpha-2 standard.\n    \n- `continentCode` uses 2-letter abbreviations (e.g., \"AS\" for Asia, \"EU\" for Europe, \"AF\" for Africa, \"NA\" for North America, \"SA\" for South America, \"OC\" for Oceania, \"AN\" for Antarctica).\n    \n- The response is paginated. Use `pageIndex` and `pageSize` in conjunction with `totalCount` and `totalPage` to navigate through results if they span multiple pages.\n    \n- The `durationInMilisecond` field can be useful for monitoring API performance."
											},
											"response": []
										},
										{
											"name": "Get Countries - North America",
											"request": {
												"method": "POST",
												"header": [
													{
														"key": "Authorization",
														"value": "Bearer {{access_token}}",
														"type": "text"
													}
												],
												"body": {
													"mode": "raw",
													"raw": "{\r\n    \"filter\": \"{\\\"and\\\":[{\\\"queryKey\\\":\\\"continentCode\\\",\\\"queryType\\\":\\\"text\\\",\\\"operation\\\":\\\"eq\\\",\\\"queryValue\\\":\\\"NA\\\"}]}\"\r\n}",
													"options": {
														"raw": {
															"language": "json"
														}
													}
												},
												"url": {
													"raw": "{{host}}/hub/b2c/countries/search",
													"host": [
														"{{host}}"
													],
													"path": [
														"hub",
														"b2c",
														"countries",
														"search"
													]
												},
												"description": "# Country Search API Documentation (Including NA Support)\n\n## Overview\n\nThis API enables searching for countries based on specified filter criteria. It returns a paginated list of countries matching the query, along with their codes and names in different languages.\n\n---\n\n## API Endpoint\n\n- **URL:** `https://api.skyjet.vn/hub/b2c/countries/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}` | Access token (Required) |\n| `Content-Type` | `application/json` | Request/Response format |\n\n---\n\n## Request Body Parameters\n\n### Main Parameters\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `filter` | String | ✅ Yes | JSON string representing the filter conditions. | `{\"and\":[{\"queryKey\":\"continentCode\",\"queryType\":\"text\",\"operation\":\"eq\",\"queryValue\":\"NA\"}]}` |\n\n#### Filter Object (within the JSON string)\n\nThe `filter` string contains a JSON object with the following structure:\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `and` | Array | ✅ Yes | An array of filter condition objects. | `[...]` |\n| `or` | Array | ❌ No | An array of filter condition objects (alternative). | `[...]` |\n\n#### Filter Condition Object (elements within `and` or `or` arrays)\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `queryKey` | String | ✅ Yes | The field to apply the filter on. | `\"continentCode\"`, `\"countryCode\"` |\n| `queryType` | String | ✅ Yes | The data type of the field for query. | `\"text\"`, `\"number\"` |\n| `operation` | String | ✅ Yes | The comparison operator. | `\"eq\"` (equals), `\"contains\"`, `\"neq\"` |\n| `queryValue` | String | ✅ Yes | The value to compare against. | `\"NA\"` |\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location 'https://api.skyjet.vn/hub/b2c/countries/search' \\\n--header 'Authorization: Bearer xxxxxx' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"filter\": \"{\\\"and\\\":[{\\\"queryKey\\\":\\\"continentCode\\\",\\\"queryType\\\":\\\"text\\\",\\\"operation\\\":\\\"eq\\\",\\\"queryValue\\\":\\\"NA\\\"}]}\"\n}'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n    \"durationInMilisecond\": 19,\n    \"totalCount\": 41,\n    \"totalPage\": 3,\n    \"pageSize\": 20,\n    \"pageIndex\": 0,\n    \"clientOverride\": false,\n    \"data\": [\n        {\n            \"countryCode\": \"VI\",\n            \"name\": \"Virgin Islands, U.S.\",\n            \"nameVN\": \"Quần đảo Virgin thuộc Mỹ\",\n            \"continentCode\": \"NA\"\n        },\n        {\n            \"countryCode\": \"VG\",\n            \"name\": \"Virgin Islands, British\",\n            \"nameVN\": \"Quần đảo Virgin thuộc Anh\",\n            \"continentCode\": \"NA\"\n        },\n        {\n            \"countryCode\": \"VC\",\n            \"name\": \"Saint Vincent and the Grenadines\",\n            \"nameVN\": \"Saint Vincent và Grenadines\",\n            \"continentCode\": \"NA\"\n        },\n        {\n            \"countryCode\": \"US\",\n            \"name\": \"United States\",\n            \"nameVN\": \"Hoa Kỳ\",\n            \"continentCode\": \"NA\"\n        },\n        {\n            \"countryCode\": \"TT\",\n            \"name\": \"Trinidad and Tobago\",\n            \"nameVN\": \"Trinidad và Tobago\",\n            \"continentCode\": \"NA\"\n        },\n        {\n            \"countryCode\": \"TC\",\n            \"name\": \"Turks and Caicos Islands\",\n            \"nameVN\": \"Quần đảo Turks và Caicos\",\n            \"continentCode\": \"NA\"\n        },\n        {\n            \"countryCode\": \"SX\",\n            \"name\": \"Sint Maarten (Dutch part)\",\n            \"nameVN\": \"Sint Maarten (phần Hà Lan)\",\n            \"continentCode\": \"NA\"\n        },\n        {\n            \"countryCode\": \"SV\",\n            \"name\": \"El Salvador\",\n            \"nameVN\": \"El Salvador\",\n            \"continentCode\": \"NA\"\n        },\n        {\n            \"countryCode\": \"PR\",\n            \"name\": \"Puerto Rico\",\n            \"nameVN\": \"Puerto Rico\",\n            \"continentCode\": \"NA\"\n        },\n        {\n            \"countryCode\": \"PM\",\n            \"name\": \"Saint Pierre and Miquelon\",\n            \"nameVN\": \"Saint Pierre và Miquelon\",\n            \"continentCode\": \"NA\"\n        },\n        {\n            \"countryCode\": \"PA\",\n            \"name\": \"Panama\",\n            \"nameVN\": \"Panama\",\n            \"continentCode\": \"NA\"\n        },\n        {\n            \"countryCode\": \"NI\",\n            \"name\": \"Nicaragua\",\n            \"nameVN\": \"Nicaragua\",\n            \"continentCode\": \"NA\"\n        },\n        {\n            \"countryCode\": \"MX\",\n            \"name\": \"Mexico\",\n            \"nameVN\": \"Mexico\",\n            \"continentCode\": \"NA\"\n        },\n        {\n            \"countryCode\": \"MS\",\n            \"name\": \"Montserrat\",\n            \"nameVN\": \"Montserrat\",\n            \"continentCode\": \"NA\"\n        },\n        {\n            \"countryCode\": \"MQ\",\n            \"name\": \"Martinique\",\n            \"nameVN\": \"Martinique\",\n            \"continentCode\": \"NA\"\n        },\n        {\n            \"countryCode\": \"MF\",\n            \"name\": \"Saint Martin (French part)\",\n            \"nameVN\": \"Saint Martin (phần Pháp)\",\n            \"continentCode\": \"NA\"\n        },\n        {\n            \"countryCode\": \"LC\",\n            \"name\": \"Saint Lucia\",\n            \"nameVN\": \"Saint Lucia\",\n            \"continentCode\": \"NA\"\n        },\n        {\n            \"countryCode\": \"KY\",\n            \"name\": \"Cayman Islands\",\n            \"nameVN\": \"Quần đảo Cayman\",\n            \"continentCode\": \"NA\"\n        },\n        {\n            \"countryCode\": \"KN\",\n            \"name\": \"Saint Kitts and Nevis\",\n            \"nameVN\": \"Saint Kitts và Nevis\",\n            \"continentCode\": \"NA\"\n        },\n        {\n            \"countryCode\": \"JM\",\n            \"name\": \"Jamaica\",\n            \"nameVN\": \"Jamaica\",\n            \"continentCode\": \"NA\"\n        }\n    ]\n}\n\n ```\n\n---\n\n## Response Field Description\n\nThis section describes the fields returned in the API response. All field description tables in this section follow the `| Field | Type | Example | Description |` format.\n\n### Root Level Fields\n\nThese fields are present at the top level of the JSON response, providing metadata and the main data payload.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `durationInMilisecond` | Number | `92` | Time taken for the API to process the request, in milliseconds. |\n| `totalCount` | Number | `54` | Total number of country items matching the filter criteria. |\n| `totalPage` | Number | `3` | Total number of pages available based on `pageSize` and `totalCount`. |\n| `pageSize` | Number | `20` | Number of country items returned per page in the `data` array. |\n| `pageIndex` | Number | `0` | The current page index (0-based) of the returned set of countries. |\n| `clientOverride` | Boolean | `false` | Indicates if any client-side override logic was applied to the response. |\n| `data` | Array | `[{}, {}, ...]` | An array of [Country Objects](#country-object). See details below. |\n\n### Country Object\n\nThese objects are found within the `data` array in the response. Each object represents a single country.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `countryCode` | String | `\"YE\"` | The 2-letter ISO 3166-1 alpha-2 country code. |\n| `name` | String | `\"Yemen\"` | The common English name of the country. |\n| `nameVN` | String | `\"Yemen\"` | The Vietnamese name of the country. |\n| `continentCode` | String | `\"NA\"` | The 2-letter code representing the continent. |\n\n---\n\n## Notes\n\n- The `filter` parameter in the request body is a JSON string that defines search conditions. For example, to find countries in Asia, the filter would be `{\"and\":[{\"queryKey\":\"continentCode\",\"queryType\":\"text\",\"operation\":\"eq\",\"queryValue\":\"AS\"}]}`.\n    \n- `countryCode` uses the ISO 3166-1 alpha-2 standard.\n    \n- `continentCode` uses 2-letter abbreviations (e.g., \"AS\" for Asia, \"EU\" for Europe, \"AF\" for Africa, \"NA\" for North America, \"SA\" for South America, \"OC\" for Oceania, \"AN\" for Antarctica).\n    \n- The response is paginated. Use `pageIndex` and `pageSize` in conjunction with `totalCount` and `totalPage` to navigate through results if they span multiple pages.\n    \n- The `durationInMilisecond` field can be useful for monitoring API performance."
											},
											"response": []
										},
										{
											"name": "Get Countries - Oceania",
											"request": {
												"method": "POST",
												"header": [
													{
														"key": "Authorization",
														"value": "Bearer {{access_token}}",
														"type": "text"
													}
												],
												"body": {
													"mode": "raw",
													"raw": "{\r\n    \"filter\": \"{\\\"and\\\":[{\\\"queryKey\\\":\\\"continentCode\\\",\\\"queryType\\\":\\\"text\\\",\\\"operation\\\":\\\"eq\\\",\\\"queryValue\\\":\\\"OC\\\"}]}\"\r\n}",
													"options": {
														"raw": {
															"language": "json"
														}
													}
												},
												"url": {
													"raw": "{{host}}/hub/b2c/countries/search",
													"host": [
														"{{host}}"
													],
													"path": [
														"hub",
														"b2c",
														"countries",
														"search"
													]
												},
												"description": "# Country Search API Documentation (Including OC Support)\n\n## Overview\n\nThis API enables searching for countries based on specified filter criteria. It returns a paginated list of countries matching the query, along with their codes and names in different languages.\n\n---\n\n## API Endpoint\n\n- **URL:** `https://api.skyjet.vn/hub/b2c/countries/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}` | Access token (Required) |\n| `Content-Type` | `application/json` | Request/Response format |\n\n---\n\n## Request Body Parameters\n\n### Main Parameters\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `filter` | String | ✅ Yes | JSON string representing the filter conditions. | `{\"and\":[{\"queryKey\":\"continentCode\",\"queryType\":\"text\",\"operation\":\"eq\",\"queryValue\":\"OC\"}]}` |\n\n#### Filter Object (within the JSON string)\n\nThe `filter` string contains a JSON object with the following structure:\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `and` | Array | ✅ Yes | An array of filter condition objects. | `[...]` |\n| `or` | Array | ❌ No | An array of filter condition objects (alternative). | `[...]` |\n\n#### Filter Condition Object (elements within `and` or `or` arrays)\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `queryKey` | String | ✅ Yes | The field to apply the filter on. | `\"continentCode\"`, `\"countryCode\"` |\n| `queryType` | String | ✅ Yes | The data type of the field for query. | `\"text\"`, `\"number\"` |\n| `operation` | String | ✅ Yes | The comparison operator. | `\"eq\"` (equals), `\"contains\"`, `\"neq\"` |\n| `queryValue` | String | ✅ Yes | The value to compare against. | `\"OC\"` |\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location 'https://api.skyjet.vn/hub/b2c/countries/search' \\\n--header 'Authorization: Bearer xxxxxx' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"filter\": \"{\\\"and\\\":[{\\\"queryKey\\\":\\\"continentCode\\\",\\\"queryType\\\":\\\"text\\\",\\\"operation\\\":\\\"eq\\\",\\\"queryValue\\\":\\\"OC\\\"}]}\"\n}'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n    \"durationInMilisecond\": 19,\n    \"totalCount\": 26,\n    \"totalPage\": 2,\n    \"pageSize\": 20,\n    \"pageIndex\": 0,\n    \"clientOverride\": false,\n    \"data\": [\n        {\n            \"countryCode\": \"WS\",\n            \"name\": \"Samoa\",\n            \"nameVN\": \"Samoa\",\n            \"continentCode\": \"OC\"\n        },\n        {\n            \"countryCode\": \"WF\",\n            \"name\": \"Wallis and Futuna\",\n            \"nameVN\": \"Wallis và Futuna\",\n            \"continentCode\": \"OC\"\n        },\n        {\n            \"countryCode\": \"VU\",\n            \"name\": \"Vanuatu\",\n            \"nameVN\": \"Vanuatu\",\n            \"continentCode\": \"OC\"\n        },\n        {\n            \"countryCode\": \"UM\",\n            \"name\": \"United States Minor Outlying Islands\",\n            \"nameVN\": \"Các tiểu đảo xa của Hoa Kỳ\",\n            \"continentCode\": \"OC\"\n        },\n        {\n            \"countryCode\": \"TV\",\n            \"name\": \"Tuvalu\",\n            \"nameVN\": \"Tuvalu\",\n            \"continentCode\": \"OC\"\n        },\n        {\n            \"countryCode\": \"TO\",\n            \"name\": \"Tonga\",\n            \"nameVN\": \"Tonga\",\n            \"continentCode\": \"OC\"\n        },\n        {\n            \"countryCode\": \"TK\",\n            \"name\": \"Tokelau\",\n            \"nameVN\": \"Tokelau\",\n            \"continentCode\": \"OC\"\n        },\n        {\n            \"countryCode\": \"SB\",\n            \"name\": \"Solomon Islands\",\n            \"nameVN\": \"Quần đảo Solomon\",\n            \"continentCode\": \"OC\"\n        },\n        {\n            \"countryCode\": \"PW\",\n            \"name\": \"Palau\",\n            \"nameVN\": \"Palau\",\n            \"continentCode\": \"OC\"\n        },\n        {\n            \"countryCode\": \"PN\",\n            \"name\": \"Pitcairn\",\n            \"nameVN\": \"Quần đảo Pitcairn\",\n            \"continentCode\": \"OC\"\n        },\n        {\n            \"countryCode\": \"PG\",\n            \"name\": \"Papua New Guinea\",\n            \"nameVN\": \"Papua New Guinea\",\n            \"continentCode\": \"OC\"\n        },\n        {\n            \"countryCode\": \"PF\",\n            \"name\": \"French Polynesia\",\n            \"nameVN\": \"Polynesia thuộc Pháp\",\n            \"continentCode\": \"OC\"\n        },\n        {\n            \"countryCode\": \"NZ\",\n            \"name\": \"New Zealand\",\n            \"nameVN\": \"New Zealand\",\n            \"continentCode\": \"OC\"\n        },\n        {\n            \"countryCode\": \"NU\",\n            \"name\": \"Niue\",\n            \"nameVN\": \"Niue\",\n            \"continentCode\": \"OC\"\n        },\n        {\n            \"countryCode\": \"NR\",\n            \"name\": \"Nauru\",\n            \"nameVN\": \"Nauru\",\n            \"continentCode\": \"OC\"\n        },\n        {\n            \"countryCode\": \"NF\",\n            \"name\": \"Norfolk Island\",\n            \"nameVN\": \"Đảo Norfolk\",\n            \"continentCode\": \"OC\"\n        },\n        {\n            \"countryCode\": \"NC\",\n            \"name\": \"New Caledonia\",\n            \"nameVN\": \"New Caledonia\",\n            \"continentCode\": \"OC\"\n        },\n        {\n            \"countryCode\": \"MP\",\n            \"name\": \"Northern Mariana Islands\",\n            \"nameVN\": \"Quần đảo Bắc Mariana\",\n            \"continentCode\": \"OC\"\n        },\n        {\n            \"countryCode\": \"MH\",\n            \"name\": \"Marshall Islands\",\n            \"nameVN\": \"Quần đảo Marshall\",\n            \"continentCode\": \"OC\"\n        },\n        {\n            \"countryCode\": \"KI\",\n            \"name\": \"Kiribati\",\n            \"nameVN\": \"Kiribati\",\n            \"continentCode\": \"OC\"\n        }\n    ]\n}\n\n ```\n\n---\n\n## Response Field Description\n\nThis section describes the fields returned in the API response. All field description tables in this section follow the `| Field | Type | Example | Description |` format.\n\n### Root Level Fields\n\nThese fields are present at the top level of the JSON response, providing metadata and the main data payload.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `durationInMilisecond` | Number | `92` | Time taken for the API to process the request, in milliseconds. |\n| `totalCount` | Number | `54` | Total number of country items matching the filter criteria. |\n| `totalPage` | Number | `3` | Total number of pages available based on `pageSize` and `totalCount`. |\n| `pageSize` | Number | `20` | Number of country items returned per page in the `data` array. |\n| `pageIndex` | Number | `0` | The current page index (0-based) of the returned set of countries. |\n| `clientOverride` | Boolean | `false` | Indicates if any client-side override logic was applied to the response. |\n| `data` | Array | `[{}, {}, ...]` | An array of [Country Objects](#country-object). See details below. |\n\n### Country Object\n\nThese objects are found within the `data` array in the response. Each object represents a single country.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `countryCode` | String | `\"YE\"` | The 2-letter ISO 3166-1 alpha-2 country code. |\n| `name` | String | `\"Yemen\"` | The common English name of the country. |\n| `nameVN` | String | `\"Yemen\"` | The Vietnamese name of the country. |\n| `continentCode` | String | `\"OC\"` | The 2-letter code representing the continent. |\n\n---\n\n## Notes\n\n- The `filter` parameter in the request body is a JSON string that defines search conditions. For example, to find countries in Asia, the filter would be `{\"and\":[{\"queryKey\":\"continentCode\",\"queryType\":\"text\",\"operation\":\"eq\",\"queryValue\":\"EU\"}]}`.\n    \n- `countryCode` uses the ISO 3166-1 alpha-2 standard.\n    \n- `continentCode` uses 2-letter abbreviations (e.g., \"AS\" for Asia, \"EU\" for Europe, \"AF\" for Africa, \"NA\" for North America, \"SA\" for South America, \"OC\" for Oceania, \"AN\" for Antarctica).\n    \n- The response is paginated. Use `pageIndex` and `pageSize` in conjunction with `totalCount` and `totalPage` to navigate through results if they span multiple pages.\n    \n- The `durationInMilisecond` field can be useful for monitoring API performance."
											},
											"response": []
										},
										{
											"name": "Get Countries - Africa",
											"request": {
												"method": "POST",
												"header": [
													{
														"key": "Authorization",
														"value": "Bearer {{access_token}}",
														"type": "text"
													}
												],
												"body": {
													"mode": "raw",
													"raw": "{\r\n    \"filter\": \"{\\\"and\\\":[{\\\"queryKey\\\":\\\"continentCode\\\",\\\"queryType\\\":\\\"text\\\",\\\"operation\\\":\\\"eq\\\",\\\"queryValue\\\":\\\"AF\\\"}]}\"\r\n}",
													"options": {
														"raw": {
															"language": "json"
														}
													}
												},
												"url": {
													"raw": "{{host}}/hub/b2c/countries/search",
													"host": [
														"{{host}}"
													],
													"path": [
														"hub",
														"b2c",
														"countries",
														"search"
													]
												},
												"description": "# Country Search API Documentation (Including AF Support)\n\n## Overview\n\nThis API enables searching for countries based on specified filter criteria. It returns a paginated list of countries matching the query, along with their codes and names in different languages.\n\n---\n\n## API Endpoint\n\n- **URL:** `https://api.skyjet.vn/hub/b2c/countries/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}` | Access token (Required) |\n| `Content-Type` | `application/json` | Request/Response format |\n\n---\n\n## Request Body Parameters\n\n### Main Parameters\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `filter` | String | ✅ Yes | JSON string representing the filter conditions. | `{\"and\":[{\"queryKey\":\"continentCode\",\"queryType\":\"text\",\"operation\":\"eq\",\"queryValue\":\"AF\"}]}` |\n\n#### Filter Object (within the JSON string)\n\nThe `filter` string contains a JSON object with the following structure:\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `and` | Array | ✅ Yes | An array of filter condition objects. | `[...]` |\n| `or` | Array | ❌ No | An array of filter condition objects (alternative). | `[...]` |\n\n#### Filter Condition Object (elements within `and` or `or` arrays)\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `queryKey` | String | ✅ Yes | The field to apply the filter on. | `\"continentCode\"`, `\"countryCode\"` |\n| `queryType` | String | ✅ Yes | The data type of the field for query. | `\"text\"`, `\"number\"` |\n| `operation` | String | ✅ Yes | The comparison operator. | `\"eq\"` (equals), `\"contains\"`, `\"neq\"` |\n| `queryValue` | String | ✅ Yes | The value to compare against. | `\"AF\"` |\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location 'https://api.skyjet.vn/hub/b2c/countries/search' \\\n--header 'Authorization: Bearer xxxxxx' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"filter\": \"{\\\"and\\\":[{\\\"queryKey\\\":\\\"continentCode\\\",\\\"queryType\\\":\\\"text\\\",\\\"operation\\\":\\\"eq\\\",\\\"queryValue\\\":\\\"AF\\\"}]}\"\n}'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n    \"durationInMilisecond\": 23,\n    \"totalCount\": 58,\n    \"totalPage\": 3,\n    \"pageSize\": 20,\n    \"pageIndex\": 0,\n    \"clientOverride\": false,\n    \"data\": [\n        {\n            \"countryCode\": \"ZW\",\n            \"name\": \"Zimbabwe\",\n            \"nameVN\": \"Zimbabwe\",\n            \"continentCode\": \"AF\"\n        },\n        {\n            \"countryCode\": \"ZM\",\n            \"name\": \"Zambia\",\n            \"nameVN\": \"Zambia\",\n            \"continentCode\": \"AF\"\n        },\n        {\n            \"countryCode\": \"ZA\",\n            \"name\": \"South Africa\",\n            \"nameVN\": \"Nam Phi\",\n            \"continentCode\": \"AF\"\n        },\n        {\n            \"countryCode\": \"YT\",\n            \"name\": \"Mayotte\",\n            \"nameVN\": \"Mayotte\",\n            \"continentCode\": \"AF\"\n        },\n        {\n            \"countryCode\": \"UG\",\n            \"name\": \"Uganda\",\n            \"nameVN\": \"Uganda\",\n            \"continentCode\": \"AF\"\n        },\n        {\n            \"countryCode\": \"TZ\",\n            \"name\": \"Tanzania, United Republic of\",\n            \"nameVN\": \"Tanzania (Cộng hòa Thống nhất Tanzania)\",\n            \"continentCode\": \"AF\"\n        },\n        {\n            \"countryCode\": \"TN\",\n            \"name\": \"Tunisia\",\n            \"nameVN\": \"Tunisia\",\n            \"continentCode\": \"AF\"\n        },\n        {\n            \"countryCode\": \"TG\",\n            \"name\": \"Togo\",\n            \"nameVN\": \"Togo\",\n            \"continentCode\": \"AF\"\n        },\n        {\n            \"countryCode\": \"TD\",\n            \"name\": \"Chad\",\n            \"nameVN\": \"Chad\",\n            \"continentCode\": \"AF\"\n        },\n        {\n            \"countryCode\": \"SZ\",\n            \"name\": \"Eswatini\",\n            \"nameVN\": \"Eswatini\",\n            \"continentCode\": \"AF\"\n        },\n        {\n            \"countryCode\": \"ST\",\n            \"name\": \"Sao Tome and Principe\",\n            \"nameVN\": \"São Tomé và Príncipe\",\n            \"continentCode\": \"AF\"\n        },\n        {\n            \"countryCode\": \"SS\",\n            \"name\": \"South Sudan\",\n            \"nameVN\": \"Nam Sudan\",\n            \"continentCode\": \"AF\"\n        },\n        {\n            \"countryCode\": \"SO\",\n            \"name\": \"Somalia\",\n            \"nameVN\": \"Somalia\",\n            \"continentCode\": \"AF\"\n        },\n        {\n            \"countryCode\": \"SN\",\n            \"name\": \"Senegal\",\n            \"nameVN\": \"Senegal\",\n            \"continentCode\": \"AF\"\n        },\n        {\n            \"countryCode\": \"SL\",\n            \"name\": \"Sierra Leone\",\n            \"nameVN\": \"Sierra Leone\",\n            \"continentCode\": \"AF\"\n        },\n        {\n            \"countryCode\": \"SH\",\n            \"name\": \"Saint Helena, Ascension and Tristan da Cunha\",\n            \"nameVN\": \"Saint Helena, Ascension và Tristan da Cunha\",\n            \"continentCode\": \"AF\"\n        },\n        {\n            \"countryCode\": \"SD\",\n            \"name\": \"Sudan\",\n            \"nameVN\": \"Sudan\",\n            \"continentCode\": \"AF\"\n        },\n        {\n            \"countryCode\": \"SC\",\n            \"name\": \"Seychelles\",\n            \"nameVN\": \"Seychelles\",\n            \"continentCode\": \"AF\"\n        },\n        {\n            \"countryCode\": \"RW\",\n            \"name\": \"Rwanda\",\n            \"nameVN\": \"Rwanda\",\n            \"continentCode\": \"AF\"\n        },\n        {\n            \"countryCode\": \"RE\",\n            \"name\": \"Réunion\",\n            \"nameVN\": \"Réunion\",\n            \"continentCode\": \"AF\"\n        }\n    ]\n}\n\n ```\n\n---\n\n## Response Field Description\n\nThis section describes the fields returned in the API response. All field description tables in this section follow the `| Field | Type | Example | Description |` format.\n\n### Root Level Fields\n\nThese fields are present at the top level of the JSON response, providing metadata and the main data payload.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `durationInMilisecond` | Number | `92` | Time taken for the API to process the request, in milliseconds. |\n| `totalCount` | Number | `54` | Total number of country items matching the filter criteria. |\n| `totalPage` | Number | `3` | Total number of pages available based on `pageSize` and `totalCount`. |\n| `pageSize` | Number | `20` | Number of country items returned per page in the `data` array. |\n| `pageIndex` | Number | `0` | The current page index (0-based) of the returned set of countries. |\n| `clientOverride` | Boolean | `false` | Indicates if any client-side override logic was applied to the response. |\n| `data` | Array | `[{}, {}, ...]` | An array of [Country Objects](#country-object). See details below. |\n\n### Country Object\n\nThese objects are found within the `data` array in the response. Each object represents a single country.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `countryCode` | String | `\"YE\"` | The 2-letter ISO 3166-1 alpha-2 country code. |\n| `name` | String | `\"Yemen\"` | The common English name of the country. |\n| `nameVN` | String | `\"Yemen\"` | The Vietnamese name of the country. |\n| `continentCode` | String | `\"AF\"` | The 2-letter code representing the continent. |\n\n---\n\n## Notes\n\n- The `filter` parameter in the request body is a JSON string that defines search conditions. For example, to find countries in Asia, the filter would be `{\"and\":[{\"queryKey\":\"continentCode\",\"queryType\":\"text\",\"operation\":\"eq\",\"queryValue\":\"EU\"}]}`.\n    \n- `countryCode` uses the ISO 3166-1 alpha-2 standard.\n    \n- `continentCode` uses 2-letter abbreviations (e.g., \"AS\" for Asia, \"EU\" for Europe, \"AF\" for Africa, \"NA\" for North America, \"SA\" for South America, \"OC\" for Oceania, \"AN\" for Antarctica).\n    \n- The response is paginated. Use `pageIndex` and `pageSize` in conjunction with `totalCount` and `totalPage` to navigate through results if they span multiple pages.\n    \n- The `durationInMilisecond` field can be useful for monitoring API performance."
											},
											"response": []
										},
										{
											"name": "Get Countries - Antarctica",
											"request": {
												"method": "POST",
												"header": [
													{
														"key": "Authorization",
														"value": "Bearer {{access_token}}",
														"type": "text"
													}
												],
												"body": {
													"mode": "raw",
													"raw": "{\r\n    \"filter\": \"{\\\"and\\\":[{\\\"queryKey\\\":\\\"continentCode\\\",\\\"queryType\\\":\\\"text\\\",\\\"operation\\\":\\\"eq\\\",\\\"queryValue\\\":\\\"AN\\\"}]}\"\r\n}",
													"options": {
														"raw": {
															"language": "json"
														}
													}
												},
												"url": {
													"raw": "{{host}}/hub/b2c/countries/search",
													"host": [
														"{{host}}"
													],
													"path": [
														"hub",
														"b2c",
														"countries",
														"search"
													]
												},
												"description": "# Country Search API Documentation (Including AN Support)\n\n## Overview\n\nThis API enables searching for countries based on specified filter criteria. It returns a paginated list of countries matching the query, along with their codes and names in different languages.\n\n---\n\n## API Endpoint\n\n- **URL:** `https://api.skyjet.vn/hub/b2c/countries/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}` | Access token (Required) |\n| `Content-Type` | `application/json` | Request/Response format |\n\n---\n\n## Request Body Parameters\n\n### Main Parameters\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `filter` | String | ✅ Yes | JSON string representing the filter conditions. | `{\"and\":[{\"queryKey\":\"continentCode\",\"queryType\":\"text\",\"operation\":\"eq\",\"queryValue\":\"AN\"}]}` |\n\n#### Filter Object (within the JSON string)\n\nThe `filter` string contains a JSON object with the following structure:\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `and` | Array | ✅ Yes | An array of filter condition objects. | `[...]` |\n| `or` | Array | ❌ No | An array of filter condition objects (alternative). | `[...]` |\n\n#### Filter Condition Object (elements within `and` or `or` arrays)\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `queryKey` | String | ✅ Yes | The field to apply the filter on. | `\"continentCode\"`, `\"countryCode\"` |\n| `queryType` | String | ✅ Yes | The data type of the field for query. | `\"text\"`, `\"number\"` |\n| `operation` | String | ✅ Yes | The comparison operator. | `\"eq\"` (equals), `\"contains\"`, `\"neq\"` |\n| `queryValue` | String | ✅ Yes | The value to compare against. | `\"AN\"` |\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location 'https://api.skyjet.vn/hub/b2c/countries/search' \\\n--header 'Authorization: Bearer xxxxxx' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"filter\": \"{\\\"and\\\":[{\\\"queryKey\\\":\\\"continentCode\\\",\\\"queryType\\\":\\\"text\\\",\\\"operation\\\":\\\"eq\\\",\\\"queryValue\\\":\\\"AN\\\"}]}\"\n}'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n    \"durationInMilisecond\": 19,\n    \"totalCount\": 5,\n    \"totalPage\": 1,\n    \"pageSize\": 20,\n    \"pageIndex\": 0,\n    \"clientOverride\": false,\n    \"data\": [\n        {\n            \"countryCode\": \"TF\",\n            \"name\": \"French Southern Territories\",\n            \"nameVN\": \"Lãnh thổ phía Nam của Pháp\",\n            \"continentCode\": \"AN\"\n        },\n        {\n            \"countryCode\": \"HM\",\n            \"name\": \"Heard Island and McDonald Islands\",\n            \"nameVN\": \"Đảo Heard và quần đảo McDonald\",\n            \"continentCode\": \"AN\"\n        },\n        {\n            \"countryCode\": \"GS\",\n            \"name\": \"South Georgia and the South Sandwich Islands\",\n            \"nameVN\": \"Nam Georgia và Quần đảo Nam Sandwich\",\n            \"continentCode\": \"AN\"\n        },\n        {\n            \"countryCode\": \"BV\",\n            \"name\": \"Bouvet Island\",\n            \"nameVN\": \"Đảo Bouvet\",\n            \"continentCode\": \"AN\"\n        },\n        {\n            \"countryCode\": \"AQ\",\n            \"name\": \"Antarctica\",\n            \"nameVN\": \"Nam Cực\",\n            \"continentCode\": \"AN\"\n        }\n    ]\n}\n\n ```\n\n---\n\n## Response Field Description\n\nThis section describes the fields returned in the API response. All field description tables in this section follow the `| Field | Type | Example | Description |` format.\n\n### Root Level Fields\n\nThese fields are present at the top level of the JSON response, providing metadata and the main data payload.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `durationInMilisecond` | Number | `92` | Time taken for the API to process the request, in milliseconds. |\n| `totalCount` | Number | `54` | Total number of country items matching the filter criteria. |\n| `totalPage` | Number | `3` | Total number of pages available based on `pageSize` and `totalCount`. |\n| `pageSize` | Number | `20` | Number of country items returned per page in the `data` array. |\n| `pageIndex` | Number | `0` | The current page index (0-based) of the returned set of countries. |\n| `clientOverride` | Boolean | `false` | Indicates if any client-side override logic was applied to the response. |\n| `data` | Array | `[{}, {}, ...]` | An array of [Country Objects](#country-object). See details below. |\n\n### Country Object\n\nThese objects are found within the `data` array in the response. Each object represents a single country.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `countryCode` | String | `\"YE\"` | The 2-letter ISO 3166-1 alpha-2 country code. |\n| `name` | String | `\"Yemen\"` | The common English name of the country. |\n| `nameVN` | String | `\"Yemen\"` | The Vietnamese name of the country. |\n| `continentCode` | String | `\"AN\"` | The 2-letter code representing the continent. |\n\n---\n\n## Notes\n\n- The `filter` parameter in the request body is a JSON string that defines search conditions. For example, to find countries in Asia, the filter would be `{\"and\":[{\"queryKey\":\"continentCode\",\"queryType\":\"text\",\"operation\":\"eq\",\"queryValue\":\"AN\"}]}`.\n    \n- `countryCode` uses the ISO 3166-1 alpha-2 standard.\n    \n- `continentCode` uses 2-letter abbreviations (e.g., \"AS\" for Asia, \"EU\" for Europe, \"AF\" for Africa, \"NA\" for North America, \"SA\" for South America, \"OC\" for Oceania, \"AN\" for Antarctica).\n    \n- The response is paginated. Use `pageIndex` and `pageSize` in conjunction with `totalCount` and `totalPage` to navigate through results if they span multiple pages.\n    \n- The `durationInMilisecond` field can be useful for monitoring API performance."
											},
											"response": []
										},
										{
											"name": "Get Countries - South America",
											"request": {
												"method": "POST",
												"header": [
													{
														"key": "Authorization",
														"value": "Bearer {{access_token}}",
														"type": "text"
													}
												],
												"body": {
													"mode": "raw",
													"raw": "{\r\n    \"filter\": \"{\\\"and\\\":[{\\\"queryKey\\\":\\\"continentCode\\\",\\\"queryType\\\":\\\"text\\\",\\\"operation\\\":\\\"eq\\\",\\\"queryValue\\\":\\\"SA\\\"}]}\"\r\n}",
													"options": {
														"raw": {
															"language": "json"
														}
													}
												},
												"url": {
													"raw": "{{host}}/hub/b2c/countries/search",
													"host": [
														"{{host}}"
													],
													"path": [
														"hub",
														"b2c",
														"countries",
														"search"
													]
												},
												"description": "# Country Search API Documentation (Including SA Support)\n\n## Overview\n\nThis API enables searching for countries based on specified filter criteria. It returns a paginated list of countries matching the query, along with their codes and names in different languages.\n\n---\n\n## API Endpoint\n\n- **URL:** `https://api.skyjet.vn/hub/b2c/countries/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}` | Access token (Required) |\n| `Content-Type` | `application/json` | Request/Response format |\n\n---\n\n## Request Body Parameters\n\n### Main Parameters\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `filter` | String | ✅ Yes | JSON string representing the filter conditions. | `{\"and\":[{\"queryKey\":\"continentCode\",\"queryType\":\"text\",\"operation\":\"eq\",\"queryValue\":\"AS\"}]}` |\n\n#### Filter Object (within the JSON string)\n\nThe `filter` string contains a JSON object with the following structure:\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `and` | Array | ✅ Yes | An array of filter condition objects. | `[...]` |\n| `or` | Array | ❌ No | An array of filter condition objects (alternative). | `[...]` |\n\n#### Filter Condition Object (elements within `and` or `or` arrays)\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `queryKey` | String | ✅ Yes | The field to apply the filter on. | `\"continentCode\"`, `\"countryCode\"` |\n| `queryType` | String | ✅ Yes | The data type of the field for query. | `\"text\"`, `\"number\"` |\n| `operation` | String | ✅ Yes | The comparison operator. | `\"eq\"` (equals), `\"contains\"`, `\"neq\"` |\n| `queryValue` | String | ✅ Yes | The value to compare against. | `\"SA\"` |\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location 'https://api.skyjet.vn/hub/b2c/countries/search' \\\n--header 'Authorization: Bearer xxxxxx' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"filter\": \"{\\\"and\\\":[{\\\"queryKey\\\":\\\"continentCode\\\",\\\"queryType\\\":\\\"text\\\",\\\"operation\\\":\\\"eq\\\",\\\"queryValue\\\":\\\"SA\\\"}]}\"\n}'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n    \"durationInMilisecond\": 18,\n    \"totalCount\": 14,\n    \"totalPage\": 1,\n    \"pageSize\": 20,\n    \"pageIndex\": 0,\n    \"clientOverride\": false,\n    \"data\": [\n        {\n            \"countryCode\": \"VE\",\n            \"name\": \"Venezuela, Bolivarian Republic of\",\n            \"nameVN\": \"Venezuela (Cộng hòa Bolivar Venezuela)\",\n            \"continentCode\": \"SA\"\n        },\n        {\n            \"countryCode\": \"UY\",\n            \"name\": \"Uruguay\",\n            \"nameVN\": \"Uruguay\",\n            \"continentCode\": \"SA\"\n        },\n        {\n            \"countryCode\": \"SR\",\n            \"name\": \"Suriname\",\n            \"nameVN\": \"Suriname\",\n            \"continentCode\": \"SA\"\n        },\n        {\n            \"countryCode\": \"PY\",\n            \"name\": \"Paraguay\",\n            \"nameVN\": \"Paraguay\",\n            \"continentCode\": \"SA\"\n        },\n        {\n            \"countryCode\": \"PE\",\n            \"name\": \"Peru\",\n            \"nameVN\": \"Peru\",\n            \"continentCode\": \"SA\"\n        },\n        {\n            \"countryCode\": \"GY\",\n            \"name\": \"Guyana\",\n            \"nameVN\": \"Guyana\",\n            \"continentCode\": \"SA\"\n        },\n        {\n            \"countryCode\": \"GF\",\n            \"name\": \"French Guiana\",\n            \"nameVN\": \"Guiana thuộc Pháp\",\n            \"continentCode\": \"SA\"\n        },\n        {\n            \"countryCode\": \"FK\",\n            \"name\": \"Falkland Islands (Malvinas)\",\n            \"nameVN\": \"Quần đảo Falkland (Malvinas)\",\n            \"continentCode\": \"SA\"\n        },\n        {\n            \"countryCode\": \"EC\",\n            \"name\": \"Ecuador\",\n            \"nameVN\": \"Ecuador\",\n            \"continentCode\": \"SA\"\n        },\n        {\n            \"countryCode\": \"CO\",\n            \"name\": \"Colombia\",\n            \"nameVN\": \"Colombia\",\n            \"continentCode\": \"SA\"\n        },\n        {\n            \"countryCode\": \"CL\",\n            \"name\": \"Chile\",\n            \"nameVN\": \"Chile\",\n            \"continentCode\": \"SA\"\n        },\n        {\n            \"countryCode\": \"BR\",\n            \"name\": \"Brazil\",\n            \"nameVN\": \"Brazil\",\n            \"continentCode\": \"SA\"\n        },\n        {\n            \"countryCode\": \"BO\",\n            \"name\": \"Bolivia, Plurinational State of\",\n            \"nameVN\": \"Bolivia\",\n            \"continentCode\": \"SA\"\n        },\n        {\n            \"countryCode\": \"AR\",\n            \"name\": \"Argentina\",\n            \"nameVN\": \"Argentina\",\n            \"continentCode\": \"SA\"\n        }\n    ]\n}\n\n ```\n\n---\n\n## Response Field Description\n\nThis section describes the fields returned in the API response. All field description tables in this section follow the `| Field | Type | Example | Description |` format.\n\n### Root Level Fields\n\nThese fields are present at the top level of the JSON response, providing metadata and the main data payload.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `durationInMilisecond` | Number | `92` | Time taken for the API to process the request, in milliseconds. |\n| `totalCount` | Number | `54` | Total number of country items matching the filter criteria. |\n| `totalPage` | Number | `3` | Total number of pages available based on `pageSize` and `totalCount`. |\n| `pageSize` | Number | `20` | Number of country items returned per page in the `data` array. |\n| `pageIndex` | Number | `0` | The current page index (0-based) of the returned set of countries. |\n| `clientOverride` | Boolean | `false` | Indicates if any client-side override logic was applied to the response. |\n| `data` | Array | `[{}, {}, ...]` | An array of [Country Objects](#country-object). See details below. |\n\n### Country Object\n\nThese objects are found within the `data` array in the response. Each object represents a single country.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `countryCode` | String | `\"YE\"` | The 2-letter ISO 3166-1 alpha-2 country code. |\n| `name` | String | `\"Yemen\"` | The common English name of the country. |\n| `nameVN` | String | `\"Yemen\"` | The Vietnamese name of the country. |\n| `continentCode` | String | `\"SA\"` | The 2-letter code representing the continent. |\n\n---\n\n## Notes\n\n- The `filter` parameter in the request body is a JSON string that defines search conditions. For example, to find countries in Asia, the filter would be `{\"and\":[{\"queryKey\":\"continentCode\",\"queryType\":\"text\",\"operation\":\"eq\",\"queryValue\":\"AS\"}]}`.\n    \n- `countryCode` uses the ISO 3166-1 alpha-2 standard.\n    \n- `continentCode` uses 2-letter abbreviations (e.g., \"AS\" for Asia, \"EU\" for Europe, \"AF\" for Africa, \"NA\" for North America, \"SA\" for South America, \"OC\" for Oceania, \"AN\" for Antarctica).\n    \n- The response is paginated. Use `pageIndex` and `pageSize` in conjunction with `totalCount` and `totalPage` to navigate through results if they span multiple pages.\n    \n- The `durationInMilisecond` field can be useful for monitoring API performance."
											},
											"response": []
										}
									]
								},
								{
									"name": "Search Countries",
									"request": {
										"method": "POST",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{access_token}}",
												"type": "text"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/hub/b2c/countries/search",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"b2c",
												"countries",
												"search"
											]
										},
										"description": "# Country List API Documentation\n\n## Overview\n\nThis API retrieves a paginated list of all countries. It returns countries along with their codes and names in different languages.\n\n---\n\n## API Endpoint\n\n- **URL:** `https://api.skyjet.vn/hub/b2c/countries/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}` | Access token (Required) |\n| `Content-Type` | `application/json` | Request/Response format |\n\n---\n\n## Request Body\n\nThe request body must be an empty JSON object `{}`.\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location 'https://api.skyjet.vn/hub/b2c/countries/search' \\\n--header 'Authorization: Bearer xxxxxx' \\\n--header 'Content-Type: application/json' \\\n--data '{}'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n    \"durationInMilisecond\": 19,\n    \"totalCount\": 250,\n    \"totalPage\": 13,\n    \"pageSize\": 20,\n    \"pageIndex\": 0,\n    \"clientOverride\": false,\n    \"data\": [\n        {\n            \"countryCode\": \"ZW\",\n            \"name\": \"Zimbabwe\",\n            \"nameVN\": \"Zimbabwe\",\n            \"continentCode\": \"AF\"\n        },\n        {\n            \"countryCode\": \"ZM\",\n            \"name\": \"Zambia\",\n            \"nameVN\": \"Zambia\",\n            \"continentCode\": \"AF\"\n        },\n        {\n            \"countryCode\": \"ZA\",\n            \"name\": \"South Africa\",\n            \"nameVN\": \"Nam Phi\",\n            \"continentCode\": \"AF\"\n        },\n        {\n            \"countryCode\": \"YT\",\n            \"name\": \"Mayotte\",\n            \"nameVN\": \"Mayotte\",\n            \"continentCode\": \"AF\"\n        },\n        {\n            \"countryCode\": \"YE\",\n            \"name\": \"Yemen\",\n            \"nameVN\": \"Yemen\",\n            \"continentCode\": \"AS\"\n        },\n        {\n            \"countryCode\": \"XK\",\n            \"name\": \"Kosovo\",\n            \"nameVN\": \"Cộng hòa Kosovo\",\n            \"continentCode\": \"EU\"\n        },\n        {\n            \"countryCode\": \"WS\",\n            \"name\": \"Samoa\",\n            \"nameVN\": \"Samoa\",\n            \"continentCode\": \"OC\"\n        },\n        {\n            \"countryCode\": \"WF\",\n            \"name\": \"Wallis and Futuna\",\n            \"nameVN\": \"Wallis và Futuna\",\n            \"continentCode\": \"OC\"\n        },\n        {\n            \"countryCode\": \"VU\",\n            \"name\": \"Vanuatu\",\n            \"nameVN\": \"Vanuatu\",\n            \"continentCode\": \"OC\"\n        },\n        {\n            \"countryCode\": \"VN\",\n            \"name\": \"Viet Nam\",\n            \"nameVN\": \"Việt Nam\",\n            \"continentCode\": \"AS\"\n        },\n        {\n            \"countryCode\": \"VI\",\n            \"name\": \"Virgin Islands, U.S.\",\n            \"nameVN\": \"Quần đảo Virgin thuộc Mỹ\",\n            \"continentCode\": \"NA\"\n        },\n        {\n            \"countryCode\": \"VG\",\n            \"name\": \"Virgin Islands, British\",\n            \"nameVN\": \"Quần đảo Virgin thuộc Anh\",\n            \"continentCode\": \"NA\"\n        },\n        {\n            \"countryCode\": \"VE\",\n            \"name\": \"Venezuela, Bolivarian Republic of\",\n            \"nameVN\": \"Venezuela (Cộng hòa Bolivar Venezuela)\",\n            \"continentCode\": \"SA\"\n        },\n        {\n            \"countryCode\": \"VC\",\n            \"name\": \"Saint Vincent and the Grenadines\",\n            \"nameVN\": \"Saint Vincent và Grenadines\",\n            \"continentCode\": \"NA\"\n        },\n        {\n            \"countryCode\": \"VA\",\n            \"name\": \"Holy See (Vatican City State)\",\n            \"nameVN\": \"Vatican\",\n            \"continentCode\": \"EU\"\n        },\n        {\n            \"countryCode\": \"UZ\",\n            \"name\": \"Uzbekistan\",\n            \"nameVN\": \"Uzbekistan\",\n            \"continentCode\": \"AS\"\n        },\n        {\n            \"countryCode\": \"UY\",\n            \"name\": \"Uruguay\",\n            \"nameVN\": \"Uruguay\",\n            \"continentCode\": \"SA\"\n        },\n        {\n            \"countryCode\": \"US\",\n            \"name\": \"United States\",\n            \"nameVN\": \"Hoa Kỳ\",\n            \"continentCode\": \"NA\"\n        },\n        {\n            \"countryCode\": \"UM\",\n            \"name\": \"United States Minor Outlying Islands\",\n            \"nameVN\": \"Các tiểu đảo xa của Hoa Kỳ\",\n            \"continentCode\": \"OC\"\n        },\n        {\n            \"countryCode\": \"UG\",\n            \"name\": \"Uganda\",\n            \"nameVN\": \"Uganda\",\n            \"continentCode\": \"AF\"\n        }\n    ]\n}\n\n ```\n\n---\n\n## Response Field Description\n\nThis section describes the fields returned in the API response. All field description tables in this section follow the `| Field | Type | Example | Description |` format.\n\n### Root Level Fields\n\nThese fields are present at the top level of the JSON response, providing metadata and the main data payload.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `durationInMilisecond` | Number | `92` | Time taken for the API to process the request, in milliseconds. |\n| `totalCount` | Number | `54` | Total number of country items matching the filter criteria. |\n| `totalPage` | Number | `3` | Total number of pages available based on `pageSize` and `totalCount`. |\n| `pageSize` | Number | `20` | Number of country items returned per page in the `data` array. |\n| `pageIndex` | Number | `0` | The current page index (0-based) of the returned set of countries. |\n| `clientOverride` | Boolean | `false` | Indicates if any client-side override logic was applied to the response. |\n| `data` | Array | `[{}, {}, ...]` | An array of [Country Objects](#country-object). See details below. |\n\n### Country Object\n\nThese objects are found within the `data` array in the response. Each object represents a single country.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `countryCode` | String | `\"AF\"` | The 2-letter ISO 3166-1 alpha-2 country code. |\n| `name` | String | `\"Afghanistan\"` | The common English name of the country. |\n| `nameVN` | String | `\"Afghanistan\"` | The Vietnamese name of the country. |\n| `continentCode` | String | `\"AS\"` | The 2-letter code representing the continent. |\n\n---\n\n## Notes\n\n- Sending an empty JSON object `{}` as the request body typically retrieves all entries, paginated by default.\n    \n- If the `filter` parameter is used, it defines specific search conditions.\n    \n- `countryCode` uses the ISO 3166-1 alpha-2 standard.\n    \n- `continentCode` uses 2-letter abbreviations (e.g., \"AS\" for Asia, \"EU\" for Europe, \"AF\" for Africa, \"NA\" for North America, \"SA\" for South America, \"OC\" for Oceania, \"AN\" for Antarctica).\n    \n- The response is paginated. Use `pageIndex` and `pageSize` in conjunction with `totalCount` and `totalPage` to navigate through results if they span multiple pages.\n    \n- The `durationInMilisecond` field can be useful for monitoring API performance."
									},
									"response": []
								}
							],
							"description": "# 🌍 Metadata APIs\n\nWelcome to the Metadata APIs section! This area provides essential endpoints to retrieve geographical information and key supporting data, helping you enrich your E-SIM service integration experience.\n\nHere, you'll find APIs that allow you to:\n\n- **Get Country Lists by Continent:**\n    \n    - get countries - africa: Retrieves a list of countries in Africa.\n        \n    - get countries - antarctica: Retrieves a list of countries/territories in Antarctica.\n        \n    - get countries - asia: Retrieves a list of countries in Asia.\n        \n    - get countries - europe: Retrieves a list of countries in Europe.\n        \n    - get countries - north america: Retrieves a list of countries in North America.\n        \n    - get countries - oceania: Retrieves a list of countries in Oceania.\n        \n    - get countries - south america: Retrieves a list of countries in South America.\n        \n- **Search Countries:**\n    \n    - search countries: Searches for countries globally or by specific criteria.\n        \n\nThese APIs are commonly used to populate dropdown lists, validate geographical inputs, or provide region-specific contextual information within your application. Click on each item to view the detailed documentation for the respective API."
						},
						{
							"name": "Order",
							"item": [
								{
									"name": "1. Search Products Group",
									"request": {
										"method": "POST",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{access_token}}",
												"type": "text"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\r\n    \"providers\": \"esim.provider1\",\r\n    \"countryCode\": \"vn\"\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/hub/esim/groups/search",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"esim",
												"groups",
												"search"
											]
										},
										"description": "# eSIM Group Search API Documentation\n\n## Overview\n\nThis API allows searching for eSIM product groups based on providers and a target country code. It returns a list of available eSIM solutions (groups) with details like validity, data allowance, price range, covered countries, and other relevant features.\n\n---\n\n## API Endpoint\n\n- **URL:** `https://api.skyjet.vn/hub/esim/groups/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}` | Access token (Required) |\n| `Content-Type` | `application/json` | Request/Response format |\n\n---\n\n## Request Body Parameters\n\n### Main Parameters\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `providers` | String | ✅ Yes | Comma-separated list of provider codes. | `\"esim.provider1\"` |\n| `countryCode` | String | ✅ Yes | 2-letter ISO country code for search. | `\"vn\"` |\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location 'https://api.skyjet.vn/hub/esim/groups/search' \\\n--header 'Authorization: Bearer xxxxxx' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"providers\": \"esim.provider1\",\n    \"countryCode\": \"vn\"\n}'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n    \"solutions\": [\n        {\n            \"providerCode\": \"esim.provider1\",\n            \"solutionId\": \"MTAxNA==\",\n            \"maxValidity\": \"30\",\n            \"minValidity\": \"3\",\n            \"minData\": \"5 GB\",\n            \"maxData\": \"20 GB\",\n            \"maxPrice\": 710000.0,\n            \"minPrice\": 156000.0,\n            \"currency\": \"VND\",\n            \"countriesNameFilter\": \"Vietnam\",\n            \"parentProductName\": \"Asia 11 countries\",\n            \"countries\": [\n                \"cn\",\n                \"hk\",\n                \"jp\",\n                \"kr\",\n                \"mo\",\n                \"my\",\n                \"ph\",\n                \"sg\",\n                \"th\",\n                \"vn\"\n            ],\n            \"networkType\": \"Roaming\",\n            \"phoneNumber\": \"No\",\n            \"operators\": \"China (China Unicom), Hong Kong (SmarTone), Macau (CTM), Singapore (StarHub), Malaysia (Celcom), Thailand (AIS), Indonesia (XL), Vietnam (Viettel, Vinaphone), Philippines (Globe), Japan (KDDI, softbank), South Korea (SKT, KT), ccc\",\n            \"parentProductShortDescription\": \"Data only, no phone number , Come with data and a Vietnamese phone number to receive \",\n            \"hotspot\": \"Yes\",\n            \"topupExtension\": \"No\"\n        },\n        {\n            \"providerCode\": \"esim.provider1\",\n            \"solutionId\": \"MTAyMg==\",\n            \"maxValidity\": \"15\",\n            \"minValidity\": \"15\",\n            \"minData\": \"5 GB\",\n            \"maxData\": \"5 GB\",\n            \"maxPrice\": 149000.0,\n            \"minPrice\": 149000.0,\n            \"currency\": \"VND\",\n            \"countriesNameFilter\": \"Vietnam\",\n            \"parentProductName\": \"Vietnam Viettel\",\n            \"countries\": [\n                \"vn\"\n            ],\n            \"networkType\": \"Roaming\",\n            \"phoneNumber\": \"Yes\",\n            \"operators\": \"Viettel\",\n            \"parentProductShortDescription\": \" Data only, no phone number\",\n            \"hotspot\": \"Yes\",\n            \"parentProductLabel\": \"Local\",\n            \"topupExtension\": \"No\"\n        },\n        {\n            \"providerCode\": \"esim.provider1\",\n            \"solutionId\": \"MTkz\",\n            \"maxValidity\": \"1\",\n            \"minValidity\": \"1\",\n            \"minData\": \"0.0 GB\",\n            \"maxData\": \"0.0 GB\",\n            \"maxPrice\": 1000.0,\n            \"minPrice\": 1000.0,\n            \"currency\": \"VND\",\n            \"countriesNameFilter\": \"Vietnam\",\n            \"parentProductName\": \"Vietnam Itel\",\n            \"countries\": [\n                \"vn\"\n            ],\n            \"networkType\": \"Local\",\n            \"phoneNumber\": \"No\",\n            \"operators\": \"Itel\",\n            \"parentProductShortDescription\": \" Data only, no phone number\",\n            \"hotspot\": \"Yes\",\n            \"parentProductLabel\": \"Local w Phone\",\n            \"otherInfo\": \"<i class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27; class=&#x27;preserveHtml&#x27;> other </i>\",\n            \"topupExtension\": \"No\"\n        },\n        {\n            \"providerCode\": \"esim.provider1\",\n            \"solutionId\": \"MTk0\",\n            \"maxValidity\": \"15\",\n            \"minValidity\": \"7\",\n            \"minData\": \"2 GB\",\n            \"maxData\": \"5 GB\",\n            \"maxPrice\": 179000.0,\n            \"minPrice\": 139000.0,\n            \"currency\": \"VND\",\n            \"countriesNameFilter\": \"Vietnam\",\n            \"parentProductName\": \"Vietnam Vinaphone\",\n            \"countries\": [\n                \"vn\"\n            ],\n            \"networkType\": \"Local\",\n            \"phoneNumber\": \"Yes\",\n            \"operators\": \"Vinaphone\",\n            \"parentProductShortDescription\": \"Come with data and a Vietnamese phone number and on-net calls\",\n            \"hotspot\": \"Yes\",\n            \"parentProductLabel\": \"Local w Phone\",\n            \"otherInfo\": \"\",\n            \"topupExtension\": \"No\"\n        },\n        {\n            \"providerCode\": \"esim.provider1\",\n            \"solutionId\": \"MjA=\",\n            \"maxValidity\": \"30\",\n            \"minValidity\": \"1\",\n            \"minData\": \"0.5 GB\",\n            \"maxData\": \"2 GB\",\n            \"maxPrice\": 1170000.0,\n            \"minPrice\": 63000.0,\n            \"currency\": \"VND\",\n            \"countriesNameFilter\": \"Vietnam\",\n            \"parentProductName\": \"Asialink 7 countries 01\",\n            \"countries\": [\n                \"hk\",\n                \"id\",\n                \"kh\",\n                \"mo\",\n                \"my\",\n                \"sg\",\n                \"th\",\n                \"vn\"\n            ],\n            \"networkType\": \"Roaming\",\n            \"phoneNumber\": \"No\",\n            \"parentProductShortDescription\": \" Data only, no phone number\",\n            \"hotspot\": \"Yes\",\n            \"topupExtension\": \"No\"\n        }\n    ]\n}\n\n ```\n\n---\n\n## Response Field Description\n\nThis section describes the fields returned in the API response. All field description tables in this section follow the `| Field | Type | Example | Description |` format.\n\n### Root Level Field\n\nThe response is a JSON object with a single root key.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `solutions` | Array | `[{}, {}, ...]` | An array of [Solution Objects](#solution-object). |\n\n### Solution Object\n\nThese objects are found within the `solutions` array. Each object represents an eSIM product group.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `providerCode` | String | `\"esim.provider1\"` | Code of the eSIM provider. |\n| `solutionId` | String | `\"MTAxNA==\"` | Unique identifier for the eSIM solution group. |\n| `maxValidity` | String | `\"30\"` | Maximum validity period in days. |\n| `minValidity` | String | `\"3\"` | Minimum validity period in days. |\n| `minData` | String | `\"5 GB\"` | Minimum data allowance (e.g., \"1 GB\", \"500 MB\"). |\n| `maxData` | String | `\"20 GB\"` | Maximum data allowance. |\n| `maxPrice` | Number | `710000.0` | Maximum price for options within this group. |\n| `minPrice` | Number | `156000.0` | Minimum price for options within this group. |\n| `currency` | String | `\"VND\"` | Currency code for the prices (e.g., \"VND\", \"USD\"). |\n| `countriesNameFilter` | String | `\"Vietnam\"` | Name of the country used for filtering, can be a primary country in a group. |\n| `parentProductName` | String | `\"Asia 11 countries\"` | Display name of the eSIM product group/package. |\n| `countries` | Array | `[\"cn\", \"hk\", \"vn\"]` | Array of 2-letter ISO country codes covered by this eSIM group. |\n| `networkType` | String | `\"Roaming\"`, `\"Local\"` | Type of network connection (e.g., Roaming, Local). |\n| `phoneNumber` | String | `\"No\"`, `\"Yes\"` | Indicates if the eSIM comes with a phone number (\"Yes\" or \"No\"). |\n| `operators` | String | `\"Viettel, Vinaphone\"` | Comma-separated list of network operators. |\n| `parentProductShortDescription` | String | `\"Data only, no phone number\"` | A short description of the product group. |\n| `hotspot` | String | `\"Yes\"`, `\"No\"` | Indicates if hotspot/tethering is supported (\"Yes\" or \"No\"). |\n| `topupExtension` | String | `\"No\"`, `\"Yes\"` | Indicates if top-up or extension is possible (\"Yes\" or \"No\"). |\n| `parentProductLabel` | String | `\"Local\"`, `\"Local w Phone\"` | An optional label for the product (e.g., Local, Local w Phone). |\n| `otherInfo` | String | `\" _other_ \"`, `\"\"` | Optional additional information, may contain HTML. |\n\n---\n\n## Notes\n\n- The `solutionId` might be a base64 encoded string or another form of unique ID.\n    \n- `maxValidity` and `minValidity` represent the range of days the eSIM can be active for.\n    \n- `minData` and `maxData` represent the range of data allowances available within this group.\n    \n- `maxPrice` and `minPrice` provide the price range for different options (e.g., different validity/data combinations) within the same `parentProductName`.\n    \n- The `countries` array lists all countries where the eSIMs in this group can be used.\n    \n- `operators` can be a detailed list including the country and operator name."
									},
									"response": []
								},
								{
									"name": "2. Search Product Details",
									"request": {
										"method": "POST",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{access_token}}",
												"type": "text"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\r\n    \"providerCode\": \"esim.provider1\",\r\n    \"solutionId\": \"MTAxNA==\"\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/hub/esim/groups/products",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"esim",
												"groups",
												"products"
											]
										},
										"description": "# eSIM Product Details API Documentation\n\n## Overview\n\nThis API retrieves a list of specific eSIM products (e.g., different data/validity combinations) available within a given eSIM solution group. It requires the provider code and the solution group ID.\n\n---\n\n## API Endpoint\n\n- **URL:** `https://api.skyjet.vn/hub/esim/groups/products`\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}` | Access token (Required) |\n| `Content-Type` | `application/json` | Request/Response format |\n\n---\n\n## Request Body Parameters\n\n### Main Parameters\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `providerCode` | String | ✅ Yes | Code of the eSIM provider. | `\"esim.provider1\"` |\n| `solutionId` | String | ✅ Yes | Identifier of the solution group (obtained from the eSIM Group Search API). | `\"MTAxNA==\"` |\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location 'https://api.skyjet.vn/hub/esim/groups/products' \\\n--header 'Authorization: Bearer {token}' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"providerCode\": \"esim.provider1\",\n    \"solutionId\": \"{{solutionId}}\"\n}'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n    \"solutions\": [\n        {\n            \"providerCode\": \"esim.provider1\",\n            \"solutionGroupId\": \"MTAxNA==\",\n            \"name\": \"Asia 11 countries\",\n            \"countries\": [],\n            \"price\": 339000.0,\n            \"data\": \"10GB\",\n            \"validity\": \"10\",\n            \"solutionId\": \"R0lHQS1BU0lBMTEtVDEwLTEw\",\n            \"validityFilter\": 10,\n            \"dataFilter\": 10.0,\n            \"apn\": \"mobile\",\n            \"maxQrScan\": \"\",\n            \"currency\": \"VND\"\n        },\n        {\n            \"providerCode\": \"esim.provider1\",\n            \"solutionGroupId\": \"MTAxNA==\",\n            \"name\": \"Asia 11 countries\",\n            \"countries\": [],\n            \"price\": 284000.0,\n            \"data\": \"10GB\",\n            \"validity\": \"3\",\n            \"solutionId\": \"R0lHQS1BU0lBMTEtVDEwR0ItMDM=\",\n            \"validityFilter\": 3,\n            \"dataFilter\": 10.0,\n            \"apn\": \"mobile\",\n            \"maxQrScan\": \"\",\n            \"currency\": \"VND\"\n        },\n        {\n            \"providerCode\": \"esim.provider1\",\n            \"solutionGroupId\": \"MTAxNA==\",\n            \"name\": \"Asia 11 countries\",\n            \"countries\": [],\n            \"price\": 302000.0,\n            \"data\": \"10GB\",\n            \"validity\": \"5\",\n            \"solutionId\": \"R0lHQS1BU0lBMTEtVDEwR0ItMDU=\",\n            \"validityFilter\": 5,\n            \"dataFilter\": 10.0,\n            \"apn\": \"mobile\",\n            \"maxQrScan\": \"\",\n            \"currency\": \"VND\"\n        },\n        {\n            \"providerCode\": \"esim.provider1\",\n            \"solutionGroupId\": \"MTAxNA==\",\n            \"name\": \"Asia 11 countries\",\n            \"countries\": [],\n            \"price\": 321000.0,\n            \"data\": \"10GB\",\n            \"validity\": \"7\",\n            \"solutionId\": \"R0lHQS1BU0lBMTEtVDEwR0ItMDc=\",\n            \"validityFilter\": 7,\n            \"dataFilter\": 10.0,\n            \"apn\": \"mobile\",\n            \"maxQrScan\": \"\",\n            \"currency\": \"VND\"\n        },\n        {\n            \"providerCode\": \"esim.provider1\",\n            \"solutionGroupId\": \"MTAxNA==\",\n            \"name\": \"Asia 11 countries\",\n            \"countries\": [],\n            \"price\": 357000.0,\n            \"data\": \"10GB\",\n            \"validity\": \"15\",\n            \"solutionId\": \"R0lHQS1BU0lBMTEtVDEwR0ItMTU=\",\n            \"validityFilter\": 15,\n            \"dataFilter\": 10.0,\n            \"apn\": \"mobile\",\n            \"maxQrScan\": \"\",\n            \"currency\": \"VND\"\n        },\n        {\n            \"providerCode\": \"esim.provider1\",\n            \"solutionGroupId\": \"MTAxNA==\",\n            \"name\": \"Asia 11 countries\",\n            \"countries\": [],\n            \"price\": 376000.0,\n            \"data\": \"10GB\",\n            \"validity\": \"30\",\n            \"solutionId\": \"R0lHQS1BU0lBMTEtVDEwR0ItMzA=\",\n            \"validityFilter\": 30,\n            \"dataFilter\": 10.0,\n            \"apn\": \"mobile\",\n            \"maxQrScan\": \"\",\n            \"currency\": \"VND\"\n        },\n        {\n            \"providerCode\": \"esim.provider1\",\n            \"solutionGroupId\": \"MTAxNA==\",\n            \"name\": \"Asia 11 countries\",\n            \"countries\": [],\n            \"price\": 527000.0,\n            \"data\": \"20GB\",\n            \"validity\": \"3\",\n            \"solutionId\": \"R0lHQS1BU0lBMTEtVDIwR0ItMDM=\",\n            \"validityFilter\": 3,\n            \"dataFilter\": 20.0,\n            \"apn\": \"mobile\",\n            \"maxQrScan\": \"\",\n            \"currency\": \"VND\"\n        },\n        {\n            \"providerCode\": \"esim.provider1\",\n            \"solutionGroupId\": \"MTAxNA==\",\n            \"name\": \"Asia 11 countries\",\n            \"countries\": [],\n            \"price\": 563000.0,\n            \"data\": \"20GB\",\n            \"validity\": \"5\",\n            \"solutionId\": \"R0lHQS1BU0lBMTEtVDIwR0ItMDU=\",\n            \"validityFilter\": 5,\n            \"dataFilter\": 20.0,\n            \"apn\": \"mobile\",\n            \"maxQrScan\": \"\",\n            \"currency\": \"VND\"\n        },\n        {\n            \"providerCode\": \"esim.provider1\",\n            \"solutionGroupId\": \"MTAxNA==\",\n            \"name\": \"Asia 11 countries\",\n            \"countries\": [],\n            \"price\": 600000.0,\n            \"data\": \"20GB\",\n            \"validity\": \"7\",\n            \"solutionId\": \"R0lHQS1BU0lBMTEtVDIwR0ItMDc=\",\n            \"validityFilter\": 7,\n            \"dataFilter\": 20.0,\n            \"apn\": \"mobile\",\n            \"maxQrScan\": \"\",\n            \"currency\": \"VND\"\n        },\n        {\n            \"providerCode\": \"esim.provider1\",\n            \"solutionGroupId\": \"MTAxNA==\",\n            \"name\": \"Asia 11 countries\",\n            \"countries\": [],\n            \"price\": 636000.0,\n            \"data\": \"20GB\",\n            \"validity\": \"10\",\n            \"solutionId\": \"R0lHQS1BU0lBMTEtVDIwR0ItMTA=\",\n            \"validityFilter\": 10,\n            \"dataFilter\": 20.0,\n            \"apn\": \"mobile\",\n            \"maxQrScan\": \"\",\n            \"currency\": \"VND\"\n        },\n        {\n            \"providerCode\": \"esim.provider1\",\n            \"solutionGroupId\": \"MTAxNA==\",\n            \"name\": \"Asia 11 countries\",\n            \"countries\": [],\n            \"price\": 673000.0,\n            \"data\": \"20GB\",\n            \"validity\": \"15\",\n            \"solutionId\": \"R0lHQS1BU0lBMTEtVDIwR0ItMTU=\",\n            \"validityFilter\": 15,\n            \"dataFilter\": 20.0,\n            \"apn\": \"mobile\",\n            \"maxQrScan\": \"\",\n            \"currency\": \"VND\"\n        },\n        {\n            \"providerCode\": \"esim.provider1\",\n            \"solutionGroupId\": \"MTAxNA==\",\n            \"name\": \"Asia 11 countries\",\n            \"countries\": [],\n            \"price\": 710000.0,\n            \"data\": \"20GB\",\n            \"validity\": \"30\",\n            \"solutionId\": \"R0lHQS1BU0lBMTEtVDIwR0ItMzA=\",\n            \"validityFilter\": 30,\n            \"dataFilter\": 20.0,\n            \"apn\": \"mobile\",\n            \"maxQrScan\": \"\",\n            \"currency\": \"VND\"\n        },\n        {\n            \"providerCode\": \"esim.provider1\",\n            \"solutionGroupId\": \"MTAxNA==\",\n            \"name\": \"Asia 11 countries\",\n            \"countries\": [],\n            \"price\": 156000.0,\n            \"data\": \"5GB\",\n            \"validity\": \"3\",\n            \"solutionId\": \"R0lHQS1BU0lBMTEtVDVHQi0wMw==\",\n            \"validityFilter\": 3,\n            \"dataFilter\": 5.0,\n            \"apn\": \"mobile\",\n            \"maxQrScan\": \"\",\n            \"currency\": \"VND\"\n        },\n        {\n            \"providerCode\": \"esim.provider1\",\n            \"solutionGroupId\": \"MTAxNA==\",\n            \"name\": \"Asia 11 countries\",\n            \"countries\": [],\n            \"price\": 165000.0,\n            \"data\": \"5GB\",\n            \"validity\": \"5\",\n            \"solutionId\": \"R0lHQS1BU0lBMTEtVDVHQi0wNQ==\",\n            \"validityFilter\": 5,\n            \"dataFilter\": 5.0,\n            \"apn\": \"mobile\",\n            \"maxQrScan\": \"\",\n            \"currency\": \"VND\"\n        },\n        {\n            \"providerCode\": \"esim.provider1\",\n            \"solutionGroupId\": \"MTAxNA==\",\n            \"name\": \"Asia 11 countries\",\n            \"countries\": [],\n            \"price\": 174000.0,\n            \"data\": \"5GB\",\n            \"validity\": \"7\",\n            \"solutionId\": \"R0lHQS1BU0lBMTEtVDVHQi0wNw==\",\n            \"validityFilter\": 7,\n            \"dataFilter\": 5.0,\n            \"apn\": \"mobile\",\n            \"maxQrScan\": \"\",\n            \"currency\": \"VND\"\n        },\n        {\n            \"providerCode\": \"esim.provider1\",\n            \"solutionGroupId\": \"MTAxNA==\",\n            \"name\": \"Asia 11 countries\",\n            \"countries\": [],\n            \"price\": 183000.0,\n            \"data\": \"5GB\",\n            \"validity\": \"10\",\n            \"solutionId\": \"R0lHQS1BU0lBMTEtVDVHQi0xMA==\",\n            \"validityFilter\": 10,\n            \"dataFilter\": 5.0,\n            \"apn\": \"mobile\",\n            \"maxQrScan\": \"\",\n            \"currency\": \"VND\"\n        },\n        {\n            \"providerCode\": \"esim.provider1\",\n            \"solutionGroupId\": \"MTAxNA==\",\n            \"name\": \"Asia 11 countries\",\n            \"countries\": [],\n            \"price\": 193000.0,\n            \"data\": \"5GB\",\n            \"validity\": \"15\",\n            \"solutionId\": \"R0lHQS1BU0lBMTEtVDVHQi0xNQ==\",\n            \"validityFilter\": 15,\n            \"dataFilter\": 5.0,\n            \"apn\": \"mobile\",\n            \"maxQrScan\": \"\",\n            \"currency\": \"VND\"\n        },\n        {\n            \"providerCode\": \"esim.provider1\",\n            \"solutionGroupId\": \"MTAxNA==\",\n            \"name\": \"Asia 11 countries\",\n            \"countries\": [],\n            \"price\": 202000.0,\n            \"data\": \"5GB\",\n            \"validity\": \"30\",\n            \"solutionId\": \"R0lHQS1BU0lBMTEtVDVHQi0zMA==\",\n            \"validityFilter\": 30,\n            \"dataFilter\": 5.0,\n            \"apn\": \"mobile\",\n            \"maxQrScan\": \"\",\n            \"currency\": \"VND\"\n        }\n    ]\n}\n\n ```\n\n---\n\n## Response Field Description\n\nThis section describes the fields returned in the API response. All field description tables in this section follow the `| Field | Type | Example | Description |` format.\n\n### Root Level Field\n\nThe response is a JSON object with a single root key.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `solutions` | Array | `[{}, {}, ...]` | An array of [Product Objects](#product-object). |\n\n### Product Object\n\nThese objects are found within the `solutions` array. Each object represents a specific eSIM product offering within the requested group.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `providerCode` | String | `\"esim.provider1\"` | Code of the eSIM provider. |\n| `solutionGroupId` | String | `\"MTAxNA==\"` | Identifier of the parent solution group. |\n| `name` | String | `\"Asia 11 countries\"` | Name of the product/package, often inherited from the group. |\n| `countries` | Array | `[]` | Array of 2-letter ISO country codes (may be empty if inherited from group or not applicable at product level). |\n| `price` | Number | `339000.0` | Price of this specific eSIM product. |\n| `data` | String | `\"10GB\"` | Data allowance for this product (e.g., \"10GB\", \"500MB\"). |\n| `validity` | String | `\"10\"` | Validity period in days for this product. |\n| `solutionId` | String | `\"R0lHQS1BU0lBMTEtVDEwLTEw\"` | Unique identifier for this specific eSIM product/offering. |\n| `validityFilter` | Number | `10` | Numerical value of validity, likely for filtering/sorting purposes. |\n| `dataFilter` | Number | `10.0` | Numerical value of data (in GB), likely for filtering/sorting. |\n| `apn` | String | `\"mobile\"` | Access Point Name to be configured for the eSIM. |\n| `maxQrScan` | String | `\"\"` | Maximum number of times the QR code can be scanned (empty if no limit or not specified). |\n| `currency` | String | `\"VND\"` | Currency code for the price (e.g., \"VND\", \"USD\"). |\n\n---\n\n## Notes\n\n- The `solutionId` in the request refers to the `solutionGroupId` from the \"eSIM Group Search\" API. The `solutionId` in the response objects is unique to each specific product variant (e.g., 10GB/10days vs 10GB/3days).\n    \n- `countries` array might be empty at the product level if the country coverage is defined at the group level and applies to all products within it.\n    \n- `validityFilter` and `dataFilter` seem to be numerical representations of `validity` and `data` respectively, useful for programmatic filtering or sorting.\n    \n- `maxQrScan` indicates limitations on eSIM activation. An empty string might mean no specific limit or that the information is not provided."
									},
									"response": []
								},
								{
									"name": "3. Search Package Details",
									"request": {
										"method": "POST",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{access_token}}",
												"type": "text"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\r\n    \"providerCode\": \"esim.provider1\",\r\n    \"solutionId\": \"R0lHQS1BU0lBNy1EMkdCLTAx\"\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/hub/esim/packages/details",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"esim",
												"packages",
												"details"
											]
										},
										"description": "# Get eSIM Package Details API Documentation\n\n## Overview\n\nThis API allows users to retrieve detailed information about a specific eSIM package (solution) using its `providerCode` and `solutionId`. It returns the full details of the specified eSIM product.\n\n---\n\n## API Endpoint\n\n- **URL:** `https://api.skyjet.vn/hub/esim/packages/details`\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}` | Access token (Required) |\n| `Content-Type` | `application/json` | Request/Response format |\n\n---\n\n## Request Body Parameters\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `providerCode` | String | ✅ Yes | Code of the eSIM provider. | `\"esim.provider1\"` |\n| `solutionId` | String | ✅ Yes | Unique identifier of the specific eSIM product. | `\"R0lHQS1BU0lBNy1EMkdCLTAx\"` |\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location 'https://api.skyjet.vn/hub/esim/packages/details' \\\n--header 'Authorization: Bearer xxxxxx' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"providerCode\": \"esim.provider1\",\n    \"solutionId\": \"{{solutionId}}\"\n}'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n    \"solutions\": [\n        {\n            \"providerCode\": \"esim.provider1\",\n            \"solutionId\": \"R0lHQS1BU0lBNy1EMkdCLTAx\",\n            \"name\": \"Esim Châu Á 7 quốc gia Hàng ngày 2GB 1 ngày\",\n            \"apn\": \"internet\",\n            \"description\": \"Esim Châu Á 7 quốc gia Hàng ngày 2GB 1 ngày\",\n            \"price\": 84000.0,\n            \"currency\": \"VND\",\n            \"data\": \"Daily 2GB\",\n            \"validity\": \"1\",\n            \"countries\": [\n                \"hk\",\n                \"id\",\n                \"kh\",\n                \"mo\",\n                \"my\",\n                \"sg\",\n                \"th\",\n                \"vn\"\n            ],\n            \"operator\": \"\"\n        }\n    ]\n}\n\n ```\n\n---\n\n## Response Field Description\n\nThis section describes the fields returned in the API response. All field description tables in this section follow the `| Field | Type | Example | Description |` format.\n\n### Root Level Fields\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `solutions` | Array of Object | `[...]` | An array typically containing a single [Solution Object](#solution-object) matching the requested `solutionId`. |\n\n### Solution Object (within the `solutions` array)\n\nThe object in the `solutions` array provides details for the specific eSIM package requested.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `providerCode` | String | `\"esim.provider1\"` | Code of the eSIM provider offering this solution. |\n| `solutionId` | String | `\"R0lHQS1BU0lBNy1EMkdCLTAx\"` | Unique identifier for this specific eSIM product/solution. |\n| `name` | String | `\"Esim Châu Á 7 quốc gia Hàng ngày 2GB 1 ngày\"` | Name of the eSIM product/package. |\n| `apn` | String | `\"internet\"` | Access Point Name to be used for this eSIM. |\n| `description` | String | `\"Esim Châu Á 7 quốc gia Hàng ngày 2GB 1 ngày\"` | A short description of the eSIM package. |\n| `price` | Number | `84000.0` | Price of the eSIM package. |\n| `currency` | String | `\"VND\"` | Currency code for the price (e.g., \"VND\"). |\n| `data` | String | `\"Daily 2GB\"` | Data allowance provided by the package (e.g., \"10GB\", \"Daily 2GB\"). |\n| `validity` | String | `\"1\"` | Validity period of the package in days. |\n| `countries` | Array of String | `[\"hk\", \"id\", ...]` | List of 2-letter ISO country codes covered by this package. |\n| `operator` | String | `\"\"` | (Optional) Specific operator for the eSIM. May be empty. |\n\n---\n\n## Notes\n\n- This API is used to get the specific details of one eSIM package, identified by `providerCode` and `solutionId`.\n    \n- The response structure returns the solution details within a `solutions` array, even though it's expected to contain only one item for a successful lookup of a specific ID.\n    \n- The details obtained from this API (like `name`, `price`, `currency`, `data`, `validity`, `countries`) are essential for constructing the `solution` object when placing an eSIM order.\n    \n- The `operator` field might be empty if the package is not tied to a specific operator or if the information is not provided."
									},
									"response": []
								},
								{
									"name": "4. Order",
									"request": {
										"method": "POST",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{access_token}}",
												"type": "text"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\r\n    \"providerCode\": \"esim.provider1\",\r\n    \"solution\": {\r\n        \"solutionId\": \"R0lHQS1ERU1P\",\r\n        \"name\": \"Asia 11 countries\",\r\n        \"countries\": [\r\n                \"vn\"\r\n            ],\r\n        \"operator\": \"VN\",\r\n        \"price\": 291000,\r\n        \"currency\": \"VND\",\r\n        \"data\": \"10GB\",\r\n        \"validity\": \"5\"\r\n    },\r\n    \"amount\": 1\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/hub/esim/order",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"esim",
												"order"
											]
										},
										"description": "# eSIM Order API Documentation\n\n## Overview\n\nThis API allows users to place an order for a specific eSIM product. It requires the provider code, details of the chosen eSIM solution (product), and the quantity. The API returns detailed information about the created order, including order status, eSIM specifics, and pricing.\n\n---\n\n## API Endpoint\n\n- **URL:** `https://api.skyjet.vn/hub/esim/order`\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}` | Access token (Required) |\n| `Content-Type` | `application/json` | Request/Response format |\n\n---\n\n## Request Body Parameters\n\n### Main Parameters\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `providerCode` | String | ✅ Yes | Code of the eSIM provider. | `\"esim.provider1\"` |\n| `solution` | Object | ✅ Yes | Object containing details of the chosen eSIM product (see below). | `{...}` |\n| `amount` | Integer | ✅ Yes | Quantity of eSIMs to order. | `1` |\n| `CallbackUrl` | String | Optional | (Optional) If provided, the system will use this URL to send order information to the client via HTTP callback after the order is processed. | `\"https://test.com/api/esim/callback\"` |\n\n#### CallbackUrl Usage\n\nIf the client includes the `CallbackUrl` field in the eSIM order request payload, the system will perform an HTTP callback to the specified URL after the order is completed. The callback payload will contain the order information. This allows the client to receive order status and details asynchronously.\n\n### Solution Object (within Request Body)\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `solutionId` | String | ✅ Yes | Unique identifier of the specific eSIM product. | `\"R0lHQS1ERU1P\"` |\n| `name` | String | ✅ Yes | Name of the eSIM product/package. | `\"Asia 11 countries\"` |\n| `countries` | Array of String | ✅ Yes | List of 2-letter ISO country codes covered. | `[\"vn\"]` |\n| `operator` | String | ✅ Yes | Operator code or name. | `\"VN\"` |\n| `price` | Number | ✅ Yes | Price of one unit of this eSIM product. | `291000` |\n| `currency` | String | ✅ Yes | Currency code for the price. | `\"VND\"` |\n| `data` | String | ✅ Yes | Data allowance (e.g., \"10GB\"). | `\"10GB\"` |\n| `validity` | String | ✅ Yes | Validity period in days (e.g., \"5\"). | `\"5\"` |\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location 'https://api.skyjet.vn/hub/esim/order' \\\n--header 'Authorization: Bearer xxxxxx' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"providerCode\": \"esim.provider1\",\n    \"solution\": {\n        \"solutionId\": \"{{solutionId}}\",\n        \"name\": \"Asia 11 countries\",\n        \"countries\": [\n                \"vn\"\n            ],\n        \"operator\": \"VN\",\n        \"price\": 291000,\n        \"currency\": \"VND\",\n        \"data\": \"10GB\",\n        \"validity\": \"5\"\n    },\n    \"amount\": 1,\n    \"CallbackUrl\": \"https://test.com/api/esim/callback\"\n}'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n    \"id\": \"9bfefcf5-681b-42c3-bc1f-4553d2ca7de4\",\n    \"readableId\": \"ES300525G001\",\n    \"orderBaseInfo\": {\n        \"providerCode\": \"esim.provider1\",\n        \"providerReferenceId\": \"140\",\n        \"status\": \"PENDING\",\n        \"statusIsFinal\": false,\n        \"bookingType\": \"esim\",\n        \"totalAmount\": 1000.0,\n        \"totalAmountUSD\": 0.0,\n        \"totalAmountVND\": 0.0,\n        \"currency\": \"VND\",\n        \"convertionRate\": 0.0,\n        \"isNeedRebookPNR\": false,\n        \"passengerCount\": 0,\n        \"totalAmountAtHotel\": 0.0,\n        \"refunded\": false\n    },\n    \"orderESimInfo\": {\n        \"id\": \"ef4287ce-777f-43c1-8f30-6444b1185ced\",\n        \"eSimBookingId\": \"9bfefcf5-681b-42c3-bc1f-4553d2ca7de4\",\n        \"name\": \"GIGAGO DEMO\",\n        \"countries\": [\n            \"vn\"\n        ],\n        \"operator\": \"VN\",\n        \"description\": \"GIGAGO DEMO - 0GB/1 days\",\n        \"data\": \"0GB\",\n        \"validityPeriod\": \"1\",\n        \"accessPointName\": \"internet\",\n        \"amount\": 1000.0\n    },\n    \"passengers\": [],\n    \"priceInfo\": {\n        \"id\": \"65684ff0-5baf-47ac-9419-a1828984fac2\",\n        \"orderId\": \"9bfefcf5-681b-42c3-bc1f-4553d2ca7de4\",\n        \"couponId\": \"00000000-0000-0000-0000-000000000000\",\n        \"itemType\": 0,\n        \"passengerTotalAmount\": 0.0,\n        \"passengerTotalAmountUSD\": 0.0,\n        \"passengerTotalAmountVND\": 0.0,\n        \"ancillaryTotalAmount\": 0.0,\n        \"ancillaryTotalAmountUSD\": 0.0,\n        \"ancillaryTotalAmountVND\": 0.0,\n        \"seatTotalAmount\": 0.0,\n        \"seatTotalAmountUSD\": 0.0,\n        \"seatTotalAmountVND\": 0.0,\n        \"ticketFeeAmount\": 0.0,\n        \"ticketFeeAmountUSD\": 0.0,\n        \"ticketFeeAmountVND\": 0.0,\n        \"totalAmount\": 1000.0,\n        \"totalAmountUSD\": 0.0,\n        \"totalAmountVND\": 0.0,\n        \"couponAmount\": 0.0,\n        \"couponAmountUSD\": 0.0,\n        \"couponAmountVND\": 0.0,\n        \"handlingFee\": 0.0,\n        \"handlingFeeUSD\": 0.0,\n        \"handlingFeeVND\": 0.0,\n        \"totalFare\": 0.0,\n        \"totalFareUSD\": 0.0,\n        \"totalFareVND\": 0.0,\n        \"convertionRate\": 0.0,\n        \"currency\": \"VND\",\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\": \"5B212B75-A969-4104-B528-4A3365327603\",\n        \"createdUtc\": \"0001-01-01T00:00:00:0000\",\n        \"updatedUtc\": \"0001-01-01T00:00:00:0000\",\n        \"refundable\": false,\n        \"hasBreakfast\": false,\n        \"extraBed\": false,\n        \"nonSmoking\": false\n    },\n    \"createdBy\": \"5B212B75-A969-4104-B528-4A3365327603\",\n    \"createdUtc\": \"2025-05-30T04:08:19:8734\",\n    \"updatedBy\": \"5B212B75-A969-4104-B528-4A3365327603\",\n    \"updatedUtc\": \"2025-05-30T04:08:20:6703\"\n}\n\n ```\n\n---\n\n## Response Field Description\n\nThis section describes the fields returned in the API response. All field description tables in this section follow the `| Field | Type | Example | Description |` format.\n\n### Root Level Fields\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `id` | String | `\"9bfefcf5-...\"` | Unique identifier for the order (UUID). |\n| `readableId` | String | `\"ES300525G001\"` | Human-readable identifier for the order. |\n| `orderBaseInfo` | Object | `{...}` | [Order Base Information Object](#order-base-information-object) |\n| `orderESimInfo` | Object | `{...}` | [Order eSIM Information Object](#order-esim-information-object) |\n| `passengers` | Array | `[]` | Array of passenger objects (typically empty for eSIM orders). |\n| `priceInfo` | Object | `{...}` | [Price Information Object](#price-information-object) |\n| `createdBy` | String | `\"5B212B75-...\"` | UUID of the user/system that created the order. |\n| `createdUtc` | String | `\"2025-05-30T04:08:19:8734\"` | UTC timestamp when the order was created. |\n| `updatedBy` | String | `\"5B212B75-...\"` | UUID of the user/system that last updated the order. |\n| `updatedUtc` | String | `\"2025-05-30T04:08:20:6703\"` | UTC timestamp when the order was last updated. |\n\n### Order Base Information Object\n\nDetails about the base order.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `providerCode` | String | `\"esim.provider1\"` | Code of the eSIM provider. |\n| `providerReferenceId` | String | `\"140\"` | Reference ID from the provider for this order. |\n| `status` | String | `\"PENDING\"` | Current status of the order. |\n| `statusIsFinal` | Boolean | `false` | Indicates if the current status is final. |\n| `bookingType` | String | `\"esim\"` | Type of booking (e.g., \"esim\"). |\n| `totalAmount` | Number | `1000.0` | Total amount of the order in the order currency. |\n| `totalAmountUSD` | Number | `0.0` | Total amount of the order in USD (if applicable). |\n| `totalAmountVND` | Number | `0.0` | Total amount of the order in VND (if applicable). |\n| `currency` | String | `\"VND\"` | Currency of the `totalAmount`. |\n| `convertionRate` | Number | `0.0` | Conversion rate used, if applicable. |\n| `isNeedRebookPNR` | Boolean | `false` | Flag indicating if PNR rebooking is needed. |\n| `passengerCount` | Integer | `0` | Number of passengers (typically 0 for eSIM). |\n| `totalAmountAtHotel` | Number | `0.0` | Amount to be paid at hotel (not applicable for eSIM). |\n| `refunded` | Boolean | `false` | Indicates if the order has been refunded. |\n\n### Order eSIM Information Object\n\nSpecific details for the eSIM(s) in this order.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `id` | String | `\"ef4287ce-...\"` | Unique identifier for this eSIM order item. |\n| `eSimBookingId` | String | `\"9bfefcf5-...\"` | References the main order ID. |\n| `name` | String | `\"GIGAGO DEMO\"` | Name of the eSIM product as ordered. |\n| `countries` | Array of String | `[\"vn\"]` | List of 2-letter ISO country codes covered. |\n| `operator` | String | `\"VN\"` | Operator associated with the eSIM. |\n| `description` | String | `\"GIGAGO DEMO - 0GB/1 days\"` | Description of the eSIM product. |\n| `data` | String | `\"0GB\"` | Data allowance of the ordered eSIM. |\n| `validityPeriod` | String | `\"1\"` | Validity period in days of the ordered eSIM. |\n| `accessPointName` | String | `\"internet\"` | APN (Access Point Name) for the eSIM. |\n| `amount` | Number | `1000.0` | Price of a single eSIM unit in this order. |\n\n### Price Information Object\n\nDetailed breakdown of pricing for the order.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `id` | String | `\"65684ff0-...\"` | Unique identifier for the price information. |\n| `orderId` | String | `\"9bfefcf5-...\"` | References the main order ID. |\n| `couponId` | String | `\"00000000-...\"` | ID of any coupon applied. |\n| `itemType` | Integer | `0` | Type of item this pricing refers to. |\n| `passengerTotalAmount` | Number | `0.0` | Total amount related to passengers (not for eSIM). |\n| `passengerTotalAmountUSD` | Number | `0.0` | (USD) |\n| `passengerTotalAmountVND` | Number | `0.0` | (VND) |\n| `ancillaryTotalAmount` | Number | `0.0` | Total amount for ancillaries. |\n| `ancillaryTotalAmountUSD` | Number | `0.0` | (USD) |\n| `ancillaryTotalAmountVND` | Number | `0.0` | (VND) |\n| `seatTotalAmount` | Number | `0.0` | Total amount for seats (not for eSIM). |\n| `seatTotalAmountUSD` | Number | `0.0` | (USD) |\n| `seatTotalAmountVND` | Number | `0.0` | (VND) |\n| `ticketFeeAmount` | Number | `0.0` | Amount for ticket fees. |\n| `ticketFeeAmountUSD` | Number | `0.0` | (USD) |\n| `ticketFeeAmountVND` | Number | `0.0` | (VND) |\n| `totalAmount` | Number | `1000.0` | Overall total amount for this price entry. |\n| `totalAmountUSD` | Number | `0.0` | (USD) |\n| `totalAmountVND` | Number | `0.0` | (VND) |\n| `couponAmount` | Number | `0.0` | Amount discounted by coupon. |\n| `couponAmountUSD` | Number | `0.0` | (USD) |\n| `couponAmountVND` | Number | `0.0` | (VND) |\n| `handlingFee` | Number | `0.0` | Handling fee amount. |\n| `handlingFeeUSD` | Number | `0.0` | (USD) |\n| `handlingFeeVND` | Number | `0.0` | (VND) |\n| `totalFare` | Number | `0.0` | Total base fare. |\n| `totalFareUSD` | Number | `0.0` | (USD) |\n| `totalFareVND` | Number | `0.0` | (VND) |\n| `convertionRate` | Number | `0.0` | Conversion rate used. |\n| `currency` | String | `\"VND\"` | Currency for this price information. |\n| `totalTax` | Number | `0.0` | Total tax amount. |\n| `surcharges` | Number | `0.0` | Surcharge amount. |\n| `amount` | Number | `0.0` | General amount field, context may vary. |\n| `numberOfRooms` | Integer | `0` | Number of rooms (not for eSIM). |\n| `averagePerNightAmount` | Number | `0.0` | Average per night amount (not for eSIM). |\n| `numberOfNights` | Integer | `0` | Number of nights (not for eSIM). |\n| `priceDetails` | Array | `[]` | Array of further price detail objects. |\n| `createdBy` | String | `\"5B212B75-...\"` | Creator of this price entry. |\n| `createdUtc` | String | `\"2025-01-01T10:00:00Z\"` | Creation UTC timestamp (example used). |\n| `updatedUtc` | String | `\"2025-01-01T10:00:00Z\"` | Last update UTC timestamp (example used). |\n| `refundable` | Boolean | `false` | Indicates if this price component is refundable. |\n| `hasBreakfast` | Boolean | `false` | Indicates if breakfast is included (not for eSIM). |\n| `extraBed` | Boolean | `false` | Indicates if an extra bed is included (not for eSIM). |\n| `nonSmoking` | Boolean | `false` | Indicates if non-smoking option (not for eSIM). |\n\n---\n\n## Notes\n\n- The `solution` object in the request body contains the specific details of the eSIM product being ordered, usually obtained from the \"eSIM Group Products\" API.\n    \n- The `orderBaseInfo.totalAmount` should typically be `orderESimInfo.amount` multiplied by the `amount` requested (quantity).\n    \n- The `passengers` array is generally empty for eSIM orders as they are not tied to individual passenger details in the same way as flight tickets.\n    \n- Many fields within `priceInfo` (e.g., `numberOfRooms`, `seatTotalAmount`) are generic and may not be relevant to eSIM orders, showing `0` or default values.\n    \n- `orderESimInfo.id` is the unique ID for the eSIM line item within the order, while `orderESimInfo.eSimBookingId` links back to the main `order.id`."
									},
									"response": []
								},
								{
									"name": "Search Packages",
									"request": {
										"method": "POST",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{access_token}}",
												"type": "text"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\r\n    \"providers\": \"esim.provider1\",\r\n    \"countryCode\": \"vn\"\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/hub/esim/packages/search",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"esim",
												"packages",
												"search"
											]
										},
										"description": "# Search eSIM Packages API Documentation\n\n## Overview\n\nThis API allows users to search for available eSIM packages (solutions) based on provider and country code. It returns a list of eSIM products matching the criteria, including details like product ID, name, price, data allowance, validity, and covered countries.\n\n---\n\n## API Endpoint\n\n- **URL:** `https://api.skyjet.vn/hub/esim/packages/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}` | Access token (Required) |\n| `Content-Type` | `application/json` | Request/Response format |\n\n---\n\n## Request Body Parameters\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `providers` | String | ✅ Yes | Code of the eSIM provider(s). (Comma-separated if multiple, though example shows single) | `\"esim.provider1\"` |\n| `countryCode` | String | ✅ Yes | 2-letter ISO country code to search packages for. | `\"vn\"` |\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location 'https://api.skyjet.vn/hub/esim/packages/search' \\\n--header 'Authorization: Bearer xxxxxx' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"providers\": \"esim.provider1\",  \n    \"countryCode\": \"vn\"\n}'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n    \"solutions\": [\n        {\n            \"providerCode\": \"esim.provider1\",\n            \"solutionId\": \"R0lHQS1BU0lBMTEtVDEwLTEw\",\n            \"name\": \"Esim Châu Á 11 quốc gia\",\n            \"apn\": \"mobile\",\n            \"description\": \"Esim Châu Á 11 quốc gia\",\n            \"price\": 339000.0,\n            \"currency\": \"VND\",\n            \"data\": \"10GB\",\n            \"validity\": \"10\",\n            \"countries\": [\n                \"cn\",\n                \"hk\",\n                \"jp\",\n                \"kr\",\n                \"mo\",\n                \"my\",\n                \"ph\",\n                \"sg\",\n                \"th\",\n                \"vn\"\n            ],\n            \"operator\": \"\"\n        },\n        // ... other solution objects\n        {\n            \"providerCode\": \"esim.provider1\",\n            \"solutionId\": \"R0lHQS1WTlZULUQ1R0ItMTU=\",\n            \"name\": \"eSIM Việt Nam Viettel - 5GB/ ngày - 15 ngày\",\n            \"apn\": \"v-internet\",\n            \"description\": \"eSIM Việt Nam Viettel - 5GB/ ngày - 15 ngày\",\n            \"price\": 149000.0,\n            \"currency\": \"VND\",\n            \"data\": \"Daily 5GB Viettel\",\n            \"validity\": \"15\",\n            \"countries\": [\n                \"vn\"\n            ],\n            \"operator\": \"\"\n        }\n    ]\n}\n\n ```\n\n---\n\n## Response Field Description\n\nThis section describes the fields returned in the API response. All field description tables in this section follow the `| Field | Type | Example | Description |` format.\n\n### Root Level Fields\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `solutions` | Array of Object | `[...]` | An array of [Solution Objects](#solution-object). Each object represents an available eSIM package. |\n\n### Solution Object (within the `solutions` array)\n\nEach object in the `solutions` array provides details for a specific eSIM package.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `providerCode` | String | `\"esim.provider1\"` | Code of the eSIM provider offering this solution. |\n| `solutionId` | String | `\"R0lHQS1BU0lBMTEtVDEwLTEw\"` | Unique identifier for this specific eSIM product/solution. |\n| `name` | String | `\"Esim Châu Á 11 quốc gia\"` | Name of the eSIM product/package. |\n| `apn` | String | `\"mobile\"` | Access Point Name to be used for this eSIM. |\n| `description` | String | `\"Esim Châu Á 11 quốc gia\"` | A short description of the eSIM package. |\n| `price` | Number | `339000.0` | Price of the eSIM package. |\n| `currency` | String | `\"VND\"` | Currency code for the price (e.g., \"VND\"). |\n| `data` | String | `\"10GB\"` | Data allowance provided by the package (e.g., \"10GB\", \"Daily 5GB\"). |\n| `validity` | String | `\"10\"` | Validity period of the package in days. |\n| `countries` | Array of String | `[\"cn\", \"hk\", ...]` | List of 2-letter ISO country codes covered by this package. |\n| `operator` | String | `\"\"` | (Optional) Specific operator for the eSIM. May be empty. |\n\n---\n\n## Notes\n\n- The `countryCode` in the request body is used to filter packages available in that specific country.\n    \n- The `solutions` array in the response will contain all eSIM packages from the specified `providers` that cover the given `countryCode`.\n    \n- The `solutionId` and other details from a chosen solution object are typically used as input for the \"eSIM Order API\".\n    \n- The `operator` field might be empty if the package is not tied to a specific operator or if the information is not provided."
									},
									"response": []
								}
							],
							"description": "# 🛒 E-SIM Ordering APIs\n\nThis section details the APIs essential for the E-SIM ordering process. Follow the recommended workflow below to discover available E-SIMs and complete your purchase.\n\n**Recommended Ordering Workflow:**\n\n1. **Search Products Group (POST):**\n    \n    - Start by searching for groups or categories of E-SIM products. This helps narrow down options based on broader criteria like region or product type.\n        \n2. **Search Product Details (POST):**\n    \n    - Once you have identified a relevant product group, use this API to retrieve detailed information about specific E-SIM products within that group.\n        \n3. **Search Package Details (POST):**\n    \n    - After selecting a product, use this API to get specifics about the available data packages, plans, or bundles associated with that product. This includes details like data allowance, validity, and price.\n        \n4. **Order (POST):**\n    \n    - Finally, use this endpoint to place a new E-SIM order for the chosen product and package.\n        \n\n**Additional Discovery API:**\n\n- **Search Packages (POST):**\n    \n    - Alternatively, or for more specific needs, you can directly search for E-SIM packages or plans if you already have criteria for specific bundles.\n        \n\nEnsure you are authenticated before calling these APIs. Click on each API link above to view detailed documentation, including request parameters, response formats, and examples."
						},
						{
							"name": "Manage Orders",
							"item": [
								{
									"name": "Search Orders",
									"request": {
										"method": "POST",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{access_token}}",
												"type": "text"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/hub/esim/orders/search",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"esim",
												"orders",
												"search"
											]
										},
										"description": "# eSIM Orders Search API Documentation\n\n## Overview\n\nThis API allows users to search for existing eSIM orders. It supports pagination and can return a list of orders matching the search criteria (if any are provided). By default, with an empty request body, it fetches a paginated list of all orders.\n\n---\n\n## API Endpoint\n\n- **URL:** `https://api.skyjet.vn/hub/esim/orders/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}` | Access token (Required) |\n| `Content-Type` | `application/json` | Request/Response format |\n\n---\n\n## Request Body Parameters\n\nThe request body can be an empty JSON object `{}` to retrieve all orders with default pagination. Specific filter parameters may be supported but are not demonstrated in this example.\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `{}` | Object | ✅ Yes | An empty object for a general search, or an object containing filter criteria. | `{}` |\n\n_(Note: For specific filter fields, please refer to more detailed API specifications if available. This example shows a general search.)_\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location 'https://api.skyjet.vn/hub/esim/orders/search' \\\n--header 'Authorization: Bearer xxxxxx' \\\n--header 'Content-Type: application/json' \\\n--data '{}'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n    \"durationInMilisecond\": 33,\n    \"totalCount\": 49,\n    \"totalPage\": 3,\n    \"pageSize\": 20,\n    \"pageIndex\": 0,\n    \"clientOverride\": false,\n    \"data\": [\n        {\n            \"id\": \"9bfefcf5-681b-42c3-bc1f-4553d2ca7de4\",\n            \"readableId\": \"ES300525G001\",\n            \"orderBaseInfo\": {\n                \"providerCode\": \"esim.provider1\",\n                \"providerReferenceId\": \"140\",\n                \"status\": \"CLOSED\",\n                \"statusIsFinal\": true,\n                \"bookingType\": \"esim\",\n                \"totalAmount\": 1000.0000,\n                \"totalAmountUSD\": 0.0,\n                \"totalAmountVND\": 0.0,\n                \"currency\": \"VND\",\n                \"convertionRate\": 0.0,\n                \"isNeedRebookPNR\": false,\n                \"passengerCount\": 0,\n                \"totalAmountAtHotel\": 0.0,\n                \"refunded\": false\n            },\n            \"orderESimInfo\": {\n                \"id\": \"ef4287ce-777f-43c1-8f30-6444b1185ced\",\n                \"eSimBookingId\": \"9bfefcf5-681b-42c3-bc1f-4553d2ca7de4\",\n                \"name\": \"GIGAGO DEMO\",\n                \"countries\": [\n                    \"vn\"\n                ],\n                \"operator\": \"VN\",\n                \"qrCode\": \"LPA:1$viettelvietnam.validspereachdpplus.com$7TQ581WXZQEUNHIMUYG95TJNT0AKU68F4P6LYNNWBI0HSF8N7E3989G4DN1V07H1\",\n                \"phoneNumber\": \"1698552134\",\n                \"serialNumber\": \"8984048000941504283\",\n                \"description\": \"GIGAGO DEMO - 0GB/1 days\",\n                \"data\": \"0GB\",\n                \"validityPeriod\": \"1\",\n                \"accessPointName\": \"internet\",\n                \"amount\": 1000.0000\n            },\n            \"createdBy\": \"5B212B75-A969-4104-B528-4A3365327603\",\n            \"createdUtc\": \"2025-05-30T04:08:19:8734\",\n            \"updatedBy\": \"System\",\n            \"updatedUtc\": \"2025-05-30T04:08:21:1668\"\n        }\n        // ... other order objects\n    ]\n}\n\n ```\n\n---\n\n## Response Field Description\n\nThis section describes the fields returned in the API response. All field description tables in this section follow the `| Field | Type | Example | Description |` format.\n\n### Root Level Fields\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `durationInMilisecond` | Number | `33` | The time taken to process the request, in milliseconds. |\n| `totalCount` | Integer | `49` | Total number of orders matching the criteria across all pages. |\n| `totalPage` | Integer | `3` | Total number of pages available for the current `pageSize`. |\n| `pageSize` | Integer | `20` | Number of orders returned per page. |\n| `pageIndex` | Integer | `0` | The current page index (0-based). |\n| `clientOverride` | Boolean | `false` | Indicates if client-side overrides were applied to the query. |\n| `data` | Array | `[...]` | An array of [Order Objects](#order-object-in-data-array). Each object represents an eSIM order. |\n\n### Order Object (in `data` array)\n\nEach object in the `data` array represents an individual eSIM order.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `id` | String | `\"9bfefcf5-...\"` | Unique identifier for the order (UUID). |\n| `readableId` | String | `\"ES300525G001\"` | Human-readable identifier for the order. |\n| `orderBaseInfo` | Object | `{...}` | [Order Base Information Object](#order-base-information-object) |\n| `orderESimInfo` | Object | `{...}` | [Order eSIM Information Object](#order-esim-information-object) |\n| `createdBy` | String | `\"5B212B75-...\"` or email | Identifier of the user/system that created the order. |\n| `agentId` | String | `\"NV9999\"` | (Optional) Identifier for the agent, if applicable. |\n| `createdUtc` | String | `\"2025-05-30T04:08:19:8734\"` | UTC timestamp when the order was created. |\n| `updatedBy` | String | `\"System\"` | Identifier of the user/system that last updated the order. |\n| `updatedUtc` | String | `\"2025-05-30T04:08:21:1668\"` | UTC timestamp when the order was last updated. |\n\n### Order Base Information Object\n\nDetails about the base order.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `providerCode` | String | `\"esim.provider1\"` | Code of the eSIM provider. |\n| `providerReferenceId` | String | `\"140\"` | Reference ID from the provider for this order. |\n| `status` | String | `\"CLOSED\"` | Current status of the order (e.g., `PENDING`, `CLOSED`, `CANCELED`, `REFUNED`). |\n| `statusIsFinal` | Boolean | `true` | Indicates if the current status is final. |\n| `bookingType` | String | `\"esim\"` | Type of booking. |\n| `totalAmount` | Number | `1000.0000` | Total amount of the order in the order currency. |\n| `totalAmountUSD` | Number | `0.0` | Total amount of the order in USD (if applicable). |\n| `totalAmountVND` | Number | `0.0` | Total amount of the order in VND (if applicable). |\n| `currency` | String | `\"VND\"` | Currency of the `totalAmount`. |\n| `convertionRate` | Number | `0.0` | Conversion rate used, if applicable. |\n| `isNeedRebookPNR` | Boolean | `false` | Flag indicating if PNR rebooking is needed. |\n| `passengerCount` | Integer | `0` | Number of passengers (typically 0 for eSIM). |\n| `totalAmountAtHotel` | Number | `0.0` | Amount to be paid at hotel (not for eSIM). |\n| `refunded` | Boolean | `false` | Indicates if the order has been refunded. |\n\n### Order eSIM Information Object\n\nDetails the characteristics and provisioning information for the eSIM item(s) within this order.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `id` | String | `\"ef4287ce-...\"` | Unique identifier for this eSIM order item. |\n| `eSimBookingId` | String | `\"9bfefcf5-...\"` | References the main order ID (`id` from the parent [Order Object](#order-object-in-data-array)). |\n| `name` | String | `\"GIGAGO DEMO\"` | Name of the eSIM product as ordered. |\n| `countries` | Array of String | `[\"vn\"]` or `[]` | List of 2-letter ISO country codes covered. May be empty. |\n| `operator` | String | `\"VN\"` | (Optional) Operator associated with the eSIM. Not present on all items. |\n| `qrCode` | String | `\"LPA:1$viettel...H1\"` | (Optional) QR code string for eSIM activation. Not present if order failed. |\n| `phoneNumber` | String | `\"1698552134\"` | (Optional) Phone number associated with the eSIM. Not present if order failed. |\n| `serialNumber` | String | `\"8984048000...\"` | (Optional) Serial number (ICCID) of the eSIM. Not present if order failed. |\n| `description` | String | `\"GIGAGO DEMO - 0GB/1 days\"` | Description of the eSIM product. |\n| `data` | String | `\"0GB\"` | Data allowance of the ordered eSIM. |\n| `validityPeriod` | String | `\"1\"` | Validity period in days of the ordered eSIM. |\n| `accessPointName` | String | `\"internet\"` | APN (Access Point Name) for the eSIM. |\n| `amount` | Number | `1000.0000` | Price of a single eSIM unit in this order. |\n\n---\n\n## Notes\n\n- The response is paginated. The client should use `pageIndex` and `pageSize` to retrieve subsequent sets of data if `totalPage` is greater than 1.\n    \n- The `data` array in the response contains a list of order objects. Each order object provides detailed information about a specific eSIM order.\n    \n- Fields like `qrCode`, `phoneNumber`, and `serialNumber` within `orderESimInfo` are typically available for successfully provisioned eSIMs (e.g., status `CLOSED`). These fields might be absent or null for orders with other statuses, such as `REFUNDED` or `CANCELED`.\n    \n- The `orderESimInfo.operator` field might not be present for all eSIM products or in all states of the order.\n    \n- The `agentId` field in the [Order Object](#order-object-in-data-array) appears to be optional."
									},
									"response": []
								},
								{
									"name": "Search Orders By Status",
									"request": {
										"method": "POST",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{access_token}}",
												"type": "text"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\"pageIndex\":0,\"pageSize\":20,\"filter\":\"{\\\"and\\\":[{\\\"queryKey\\\":\\\"orderBaseInfo.status.ToLower()\\\",\\\"queryType\\\":\\\"text\\\",\\\"operation\\\":\\\"eq\\\",\\\"queryValue\\\":\\\"CLOSED\\\"}]}\"}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/hub/esim/orders/search",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"esim",
												"orders",
												"search"
											]
										},
										"description": "# eSIM Orders Search API Documentation (with Filtering)\n\n## Overview\n\nThis API allows users to search for existing eSIM orders with advanced filtering capabilities. It supports pagination and returns a list of orders matching the specified search criteria. The filter conditions are provided as a stringified JSON object in the request body.\n\n---\n\n## API Endpoint\n\n- **URL:** `https://api.skyjet.vn/hub/esim/orders/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}` | Access token (Required) |\n| `Content-Type` | `application/json` | Request/Response format |\n\n---\n\n## Request Body Parameters\n\n### Main Parameters\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `pageIndex` | Integer | ✅ Yes | The 0-based index of the page to retrieve. | `0` |\n| `pageSize` | Integer | ✅ Yes | The number of orders to retrieve per page. | `20` |\n| `filter` | String | ✅ Yes | A stringified JSON object specifying the filter conditions (see below). | `\"{\\\"and\\\":[{\\\"queryKey\\\":\\\"orderBaseInfo.Status.ToLower()\\\",\\\"queryType\\\":\\\"text\\\",\\\"operation\\\":\\\"eq\\\",\\\"queryValue\\\":\\\"CLOSED\\\"}]}\"` |\n\n### Filter String JSON Structure (value of the `filter` parameter)\n\nThe `filter` parameter's string value, when parsed as JSON, has the following structure:\n\n| Key | Type | Description |\n| --- | --- | --- |\n| `and` | Array of Condition Objects | (Optional) An array of [Condition Objects](#condition-object). All conditions must be met. |\n| `or` | Array of Condition Objects | (Optional) An array of [Condition Objects](#condition-object). At least one condition must be met. |\n| `queryKey` | String | (Optional, if not using `and`/`or`) The field to filter on. See [Condition Object](#condition-object). |\n| `queryType` | String | (Optional, if not using `and`/`or`) The type of the field. See [Condition Object](#condition-object). |\n| `operation` | String | (Optional, if not using `and`/`or`) The comparison operation. See [Condition Object](#condition-object). |\n| `queryValue` | String/Number/Boolean | (Optional, if not using `and`/`or`) The value to compare against. See [Condition Object](#condition-object). |\n\n_(Note: A filter can be a single condition object directly, or an object with_ `_and_`_/_`_or_` _arrays of condition objects.)_\n\n### Condition Object (within `and`/`or` arrays or as a direct filter)\n\n| Field | Type | Required | Description | Example/Values |\n| --- | --- | --- | --- | --- |\n| `queryKey` | String | ✅ Yes | Path to filter field (dot notation for nested, e.g., `orderBaseInfo.Status`). May support functions like `.ToLower()`. | `\"orderBaseInfo.Status.ToLower()\"` |\n| `queryType` | String | ✅ Yes | Data type of the field being queried. | `\"text\"`, `\"number\"`, `\"boolean\"`, `\"date\"` |\n| `operation` | String | ✅ Yes | Comparison operation (e.g., `eq`, `neq`, `contains`, `gt`, `lt`). | `\"eq\"` |\n| `queryValue` | String/Number/Boolean | ✅ Yes | Value to compare against; type should match `queryType`. | `\"CLOSED\"` |\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location 'https://api.skyjet.vn/hub/esim/orders/search' \\\n--header 'Authorization: Bearer xxxxxx' \\\n--header 'Content-Type: application/json' \\\n--data '{\"pageIndex\":0,\"pageSize\":20,\"filter\":\"{\\\"and\\\":[{\\\"queryKey\\\":\\\"orderBaseInfo.Status.ToLower()\\\",\\\"queryType\\\":\\\"text\\\",\\\"operation\\\":\\\"eq\\\",\\\"queryValue\\\":\\\"CLOSED\\\"}]}\"}'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n    \"durationInMilisecond\": 34,\n    \"totalCount\": 3,\n    \"totalPage\": 1,\n    \"pageSize\": 3,\n    \"pageIndex\": 0,\n    \"clientOverride\": false,\n    \"data\": [\n        {\n            \"id\": \"4950d3d0-0c49-40ec-a25f-4398003234bb\",\n            \"readableId\": \"ES300525G002\",\n            \"orderBaseInfo\": {\n                \"providerCode\": \"esim.provider1\",\n                \"providerReferenceId\": \"142\",\n                \"status\": \"CLOSED\",\n                \"statusIsFinal\": true,\n                \"bookingType\": \"esim\",\n                \"totalAmount\": 1000.0000,\n                \"totalAmountUSD\": 0.0,\n                \"totalAmountVND\": 0.0,\n                \"currency\": \"VND\",\n                \"convertionRate\": 0.0,\n                \"isNeedRebookPNR\": false,\n                \"passengerCount\": 0,\n                \"totalAmountAtHotel\": 0.0,\n                \"refunded\": false\n            },\n            \"orderESimInfo\": {\n                \"id\": \"5b590b90-f8a3-4379-b5a9-5bd33e4f232d\",\n                \"eSimBookingId\": \"4950d3d0-0c49-40ec-a25f-4398003234bb\",\n                \"name\": \"GIGAGO DEMO\",\n                \"countries\": [],\n                \"qrCode\": \"LPA:1$viettelvietnam.validspereachdpplus.com$HBEQKOSUW6GS3E9TUVNXA4H46P52--ZLW0J51SJ-ZUGNZKHN9COU69A2259BT80K\",\n                \"phoneNumber\": \"1698552136\",\n                \"serialNumber\": \"8984048000941504285\",\n                \"description\": \"GIGAGO DEMO - 0GB/1 days\",\n                \"data\": \"0GB\",\n                \"validityPeriod\": \"1\",\n                \"accessPointName\": \"internet\",\n                \"amount\": 1000.0000\n            },\n            \"createdBy\": \"thanh.nguyen1@skyjet.vn\",\n            \"agentId\": \"NV9999\",\n            \"createdUtc\": \"2025-05-30T04:41:27:2182\",\n            \"updatedBy\": \"System\",\n            \"updatedUtc\": \"2025-05-30T04:41:28:0399\"\n        }\n        // ... more order objects if the result set contains more and fits within pageSize.\n        // The provided example response was truncated after the first complete order.\n        // A full response for this specific query (totalCount: 3, pageSize: 3) would likely contain two more order objects.\n    ]\n}\n\n ```\n\n---\n\n## Response Field Description\n\nThis section describes the fields returned in the API response. All field description tables in this section follow the `| Field | Type | Example | Description |` format.\n\n### Root Level Fields\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `durationInMilisecond` | Number | `34` | The time taken to process the request, in milliseconds. |\n| `totalCount` | Integer | `3` | Total number of orders matching the criteria across all pages. |\n| `totalPage` | Integer | `1` | Total number of pages available for the current `pageSize`. |\n| `pageSize` | Integer | `3` | Number of orders returned per page (may be adjusted by server if totalCount < requested pageSize). |\n| `pageIndex` | Integer | `0` | The current page index (0-based). |\n| `clientOverride` | Boolean | `false` | Indicates if client-side overrides were applied to the query. |\n| `data` | Array | `[...]` | An array of [Order Objects](#order-object-in-data-array). Each object represents an eSIM order. |\n\n### Order Object (in `data` array)\n\nEach object in the `data` array represents an individual eSIM order.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `id` | String | `\"4950d3d0-...\"` | Unique identifier for the order (UUID). |\n| `readableId` | String | `\"ES300525G002\"` | Human-readable identifier for the order. |\n| `orderBaseInfo` | Object | `{...}` | [Order Base Information Object](#order-base-information-object) |\n| `orderESimInfo` | Object | `{...}` | [Order eSIM Information Object](#order-esim-information-object) |\n| `createdBy` | String | `\"thanh.nguyen1@skyjet.vn\"` | Identifier of the user/system that created the order. |\n| `agentId` | String | `\"NV9999\"` | (Optional) Identifier for the agent, if applicable. |\n| `createdUtc` | String | `\"2025-05-30T04:41:27:2182\"` | UTC timestamp when the order was created. |\n| `updatedBy` | String | `\"System\"` | Identifier of the user/system that last updated the order. |\n| `updatedUtc` | String | `\"2025-05-30T04:41:28:0399\"` | UTC timestamp when the order was last updated. |\n\n### Order Base Information Object\n\nDetails about the base order.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `providerCode` | String | `\"esim.provider1\"` | Code of the eSIM provider. |\n| `providerReferenceId` | String | `\"142\"` | Reference ID from the provider for this order. |\n| `status` | String | `\"CLOSED\"` | Current status of the order (e.g., `PENDING`, `CLOSED`, `FAILED`, `CANCELED`). |\n| `statusIsFinal` | Boolean | `true` | Indicates if the current status is final. |\n| `bookingType` | String | `\"esim\"` | Type of booking. |\n| `totalAmount` | Number | `1000.0000` | Total amount of the order in the order currency. |\n| `totalAmountUSD` | Number | `0.0` | Total amount of the order in USD (if applicable). |\n| `totalAmountVND` | Number | `0.0` | Total amount of the order in VND (if applicable). |\n| `currency` | String | `\"VND\"` | Currency of the `totalAmount`. |\n| `convertionRate` | Number | `0.0` | Conversion rate used, if applicable. |\n| `isNeedRebookPNR` | Boolean | `false` | Flag indicating if PNR rebooking is needed. |\n| `passengerCount` | Integer | `0` | Number of passengers (typically 0 for eSIM). |\n| `totalAmountAtHotel` | Number | `0.0` | Amount to be paid at hotel (not for eSIM). |\n| `refunded` | Boolean | `false` | Indicates if the order has been refunded. |\n\n### Order eSIM Information Object\n\nDetails the characteristics and provisioning information for the eSIM item(s) within this order.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `id` | String | `\"5b590b90-...\"` | Unique identifier for this eSIM order item. |\n| `eSimBookingId` | String | `\"4950d3d0-...\"` | References the main order ID (`id` from the parent [Order Object](#order-object-in-data-array)). |\n| `name` | String | `\"GIGAGO DEMO\"` | Name of the eSIM product as ordered. |\n| `countries` | Array of String | `[]` | List of 2-letter ISO country codes covered. May be empty. |\n| `operator` | String | (not present in sample item) | (Optional) Operator associated with the eSIM. |\n| `qrCode` | String | `\"LPA:1$viettel...BT80K\"` | (Optional) QR code string for eSIM activation. Not present if order failed/canceled. |\n| `phoneNumber` | String | `\"1698552136\"` | (Optional) Phone number associated with the eSIM. Not present if order failed/canceled. |\n| `serialNumber` | String | `\"8984048000...\"` | (Optional) Serial number (ICCID) of the eSIM. Not present if order failed/canceled. |\n| `description` | String | `\"GIGAGO DEMO - 0GB/1 days\"` | Description of the eSIM product. |\n| `data` | String | `\"0GB\"` | Data allowance of the ordered eSIM. |\n| `validityPeriod` | String | `\"1\"` | Validity period in days of the ordered eSIM. |\n| `accessPointName` | String | `\"internet\"` | APN (Access Point Name) for the eSIM. |\n| `amount` | Number | `1000.0000` | Price of a single eSIM unit in this order. |\n\n---\n\n## Notes\n\n- The response is paginated. The client should use `pageIndex` and `pageSize` to retrieve subsequent sets of data if `totalPage` is greater than 1.\n    \n- The `data` array in the response contains a list of order objects. Each order object provides detailed information about a specific eSIM order.\n    \n- Fields like `qrCode`, `phoneNumber`, and `serialNumber` within `orderESimInfo` are typically available for successfully provisioned eSIMs (e.g., status `CLOSED`). These fields might be absent or null for orders with other statuses, such as `REFUNDED` or `CANCELED`.\n    \n- The `orderESimInfo.operator` field might not be present for all eSIM products or in all states of the order.\n    \n- The `agentId` field in the [Order Object](#order-object-in-data-array) appears to be optional."
									},
									"response": []
								},
								{
									"name": "Get Order By Id",
									"request": {
										"method": "GET",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{access_token}}",
												"type": "text"
											}
										],
										"url": {
											"raw": "{{host}}/hub/esim/orders/4950d3d0-0c49-40ec-a25f-4398003234bb",
											"host": [
												"{{host}}"
											],
											"path": [
												"hub",
												"esim",
												"orders",
												"4950d3d0-0c49-40ec-a25f-4398003234bb"
											]
										},
										"description": "# Get eSIM Order by ID API Documentation\n\n## Overview\n\nThis API allows users to retrieve detailed information about a specific eSIM order using its unique identifier (Order ID). The response includes order status, eSIM specifics, pricing information, and metadata related to the order's creation and updates.\n\n---\n\n## API Endpoint\n\n- **URL:** `https://api.skyjet.vn/hub/esim/orders/{orderId}`\n    \n- **Method:** `GET`\n    \n- **Content-Type (Response):** `application/json`\n    \n\n---\n\n## Headers\n\n| Key | Value | Description |\n| --- | --- | --- |\n| `Authorization` | `Bearer {token}` | Access token (Required) |\n\n---\n\n## Path Parameters\n\n| Parameter | Type | Required | Description | Example |\n| --- | --- | --- | --- | --- |\n| `orderId` | String | ✅ Yes | The unique identifier of the order. | `4950d3d0-0c49-40ec-a25f-4398003234bb` |\n\n---\n\n## Request Body Parameters\n\nNone. This is a `GET` request, and all necessary information is passed via the URL path parameter.\n\n---\n\n## Sample Request\n\n``` bash\ncurl --location 'https://api.skyjet.vn/hub/esim/orders/4950d3d0-0c49-40ec-a25f-4398003234bb' \\\n--header 'Authorization: Bearer xxxxxx'\n\n ```\n\n---\n\n## Sample Response\n\n``` json\n{\n    \"id\": \"4950d3d0-0c49-40ec-a25f-4398003234bb\",\n    \"readableId\": \"ES300525G002\",\n    \"orderBaseInfo\": {\n        \"providerCode\": \"esim.provider1\",\n        \"providerReferenceId\": \"142\",\n        \"status\": \"CLOSED\",\n        \"statusIsFinal\": true,\n        \"bookingType\": \"esim\",\n        \"totalAmount\": 1000.0000,\n        \"totalAmountUSD\": 0.0,\n        \"totalAmountVND\": 0.0,\n        \"currency\": \"VND\",\n        \"convertionRate\": 0.0,\n        \"isNeedRebookPNR\": false,\n        \"passengerCount\": 0,\n        \"totalAmountAtHotel\": 0.0,\n        \"refunded\": false\n    },\n    \"orderESimInfo\": {\n        \"id\": \"5b590b90-f8a3-4379-b5a9-5bd33e4f232d\",\n        \"eSimBookingId\": \"4950d3d0-0c49-40ec-a25f-4398003234bb\",\n        \"name\": \"GIGAGO DEMO\",\n        \"countries\": [],\n        \"qrCode\": \"LPA:1$viettelvietnam.validspereachdpplus.com$HBEQKOSUW6GS3E9TUVNXA4H46P52--ZLW0J51SJ-ZUGNZKHN9COU69A2259BT80K\",\n        \"phoneNumber\": \"1698552136\",\n        \"serialNumber\": \"8984048000941504285\",\n        \"description\": \"GIGAGO DEMO - 0GB/1 days\",\n        \"data\": \"0GB\",\n        \"validityPeriod\": \"1\",\n        \"accessPointName\": \"internet\",\n        \"amount\": 1000.0000\n    },\n    \"passengers\": [],\n    \"priceInfo\": {\n        \"id\": \"04361827-3341-4110-8ef9-c130e1a1f6b4\",\n        \"orderId\": \"4950d3d0-0c49-40ec-a25f-4398003234bb\",\n        \"couponId\": \"00000000-0000-0000-0000-000000000000\",\n        \"itemType\": 0,\n        \"passengerTotalAmount\": 0.0,\n        \"passengerTotalAmountUSD\": 0.0,\n        \"passengerTotalAmountVND\": 0.0,\n        \"ancillaryTotalAmount\": 0.0,\n        \"ancillaryTotalAmountUSD\": 0.0,\n        \"ancillaryTotalAmountVND\": 0.0,\n        \"seatTotalAmount\": 0.0,\n        \"seatTotalAmountUSD\": 0.0,\n        \"seatTotalAmountVND\": 0.0,\n        \"ticketFeeAmount\": 0.0,\n        \"ticketFeeAmountUSD\": 0.0,\n        \"ticketFeeAmountVND\": 0.0,\n        \"totalAmount\": 1000.0000,\n        \"totalAmountUSD\": 0.0,\n        \"totalAmountVND\": 0.0,\n        \"couponAmount\": 0.0,\n        \"couponAmountUSD\": 0.0,\n        \"couponAmountVND\": 0.0,\n        \"handlingFee\": 0.0,\n        \"handlingFeeUSD\": 0.0,\n        \"handlingFeeVND\": 0.0,\n        \"totalFare\": 0.0,\n        \"totalFareUSD\": 0.0,\n        \"totalFareVND\": 0.0,\n        \"convertionRate\": 0.0,\n        \"currency\": \"VND\",\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\": \"thanh.nguyen1@skyjet.vn\",\n        \"createdUtc\": \"0001-01-01T00:00:00:0000\",\n        \"updatedUtc\": \"0001-01-01T00:00:00:0000\",\n        \"refundable\": false,\n        \"hasBreakfast\": false,\n        \"extraBed\": false,\n        \"nonSmoking\": false\n    },\n    \"createdBy\": \"thanh.nguyen1@skyjet.vn\",\n    \"createdUtc\": \"2025-05-30T04:41:27:2182\",\n    \"updatedBy\": \"System\",\n    \"updatedUtc\": \"2025-05-30T04:41:28:0399\"\n}\n\n ```\n\n---\n\n## Response Field Description\n\nThis section describes the fields returned in the API response. All field description tables in this section follow the `| Field | Type | Example | Description |` format.\n\n### Root Level Fields\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `id` | String | `\"4950d3d0-...\"` | Unique identifier for the order (UUID). |\n| `readableId` | String | `\"ES300525G002\"` | Human-readable identifier for the order. |\n| `orderBaseInfo` | Object | `{...}` | [Order Base Information Object](#order-base-information-object) |\n| `orderESimInfo` | Object | `{...}` | [Order eSIM Information Object](#order-esim-information-object) |\n| `passengers` | Array | `[]` | Array of passenger objects (typically empty for eSIM orders). |\n| `priceInfo` | Object | `{...}` | [Price Information Object](#price-information-object) |\n| `createdBy` | String | `\"thanh.nguyen1@skyjet.vn\"` | Identifier of the user/system that created the order. |\n| `createdUtc` | String | `\"2025-05-30T04:41:27:2182\"` | UTC timestamp when the order was created. |\n| `updatedBy` | String | `\"System\"` | Identifier of the user/system that last updated the order. |\n| `updatedUtc` | String | `\"2025-05-30T04:41:28:0399\"` | UTC timestamp when the order was last updated. |\n\n### Order Base Information Object\n\nDetails about the base order.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `providerCode` | String | `\"esim.provider1\"` | Code of the eSIM provider. |\n| `providerReferenceId` | String | `\"142\"` | Reference ID from the provider for this order. |\n| `status` | String | `\"CLOSED\"` | Current status of the order (e.g., `PENDING`, `CLOSED`, `FAILED`, `CANCELED`). |\n| `statusIsFinal` | Boolean | `true` | Indicates if the current status is final. |\n| `bookingType` | String | `\"esim\"` | Type of booking. |\n| `totalAmount` | Number | `1000.0000` | Total amount of the order in the order currency. |\n| `totalAmountUSD` | Number | `0.0` | Total amount of the order in USD (if applicable). |\n| `totalAmountVND` | Number | `0.0` | Total amount of the order in VND (if applicable). |\n| `currency` | String | `\"VND\"` | Currency of the `totalAmount`. |\n| `convertionRate` | Number | `0.0` | Conversion rate used, if applicable. |\n| `isNeedRebookPNR` | Boolean | `false` | Flag indicating if PNR rebooking is needed. |\n| `passengerCount` | Integer | `0` | Number of passengers (typically 0 for eSIM). |\n| `totalAmountAtHotel` | Number | `0.0` | Amount to be paid at hotel (not for eSIM). |\n| `refunded` | Boolean | `false` | Indicates if the order has been refunded. |\n\n### Order eSIM Information Object\n\nDetails the characteristics and provisioning information for the eSIM item(s) within this order.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `id` | String | `\"5b590b90-...\"` | Unique identifier for this eSIM order item. |\n| `eSimBookingId` | String | `\"4950d3d0-...\"` | References the main order ID. |\n| `name` | String | `\"GIGAGO DEMO\"` | Name of the eSIM product as ordered. |\n| `countries` | Array of String | `[]` | List of 2-letter ISO country codes covered. May be empty. |\n| `operator` | String | (not present in sample item) | (Optional) Operator associated with the eSIM. |\n| `qrCode` | String | `\"LPA:1$viettel...BT80K\"` | (Optional) QR code string for eSIM activation. Not present if order failed/canceled. |\n| `phoneNumber` | String | `\"1698552136\"` | (Optional) Phone number associated with the eSIM. Not present if order failed/canceled. |\n| `serialNumber` | String | `\"8984048000...\"` | (Optional) Serial number (ICCID) of the eSIM. Not present if order failed/canceled. |\n| `description` | String | `\"GIGAGO DEMO - 0GB/1 days\"` | Description of the eSIM product. |\n| `data` | String | `\"0GB\"` | Data allowance of the ordered eSIM. |\n| `validityPeriod` | String | `\"1\"` | Validity period in days of the ordered eSIM. |\n| `accessPointName` | String | `\"internet\"` | APN (Access Point Name) for the eSIM. |\n| `amount` | Number | `1000.0000` | Price of a single eSIM unit in this order. |\n\n### Price Information Object\n\nDetailed breakdown of pricing for the order.\n\n| Field | Type | Example | Description |\n| --- | --- | --- | --- |\n| `id` | String | `\"04361827-...\"` | Unique identifier for the price information. |\n| `orderId` | String | `\"4950d3d0-...\"` | References the main order ID. |\n| `couponId` | String | `\"00000000-...\"` | ID of any coupon applied. |\n| `itemType` | Integer | `0` | Type of item this pricing refers to. |\n| `passengerTotalAmount` | Number | `0.0` | Total amount related to passengers (not for eSIM). |\n| `passengerTotalAmountUSD` | Number | `0.0` | (USD) |\n| `passengerTotalAmountVND` | Number | `0.0` | (VND) |\n| `ancillaryTotalAmount` | Number | `0.0` | Total amount for ancillaries. |\n| `ancillaryTotalAmountUSD` | Number | `0.0` | (USD) |\n| `ancillaryTotalAmountVND` | Number | `0.0` | (VND) |\n| `seatTotalAmount` | Number | `0.0` | Total amount for seats (not for eSIM). |\n| `seatTotalAmountUSD` | Number | `0.0` | (USD) |\n| `seatTotalAmountVND` | Number | `0.0` | (VND) |\n| `ticketFeeAmount` | Number | `0.0` | Amount for ticket fees. |\n| `ticketFeeAmountUSD` | Number | `0.0` | (USD) |\n| `ticketFeeAmountVND` | Number | `0.0` | (VND) |\n| `totalAmount` | Number | `1000.0000` | Overall total amount for this price entry. |\n| `totalAmountUSD` | Number | `0.0` | (USD) |\n| `totalAmountVND` | Number | `0.0` | (VND) |\n| `couponAmount` | Number | `0.0` | Amount discounted by coupon. |\n| `couponAmountUSD` | Number | `0.0` | (USD) |\n| `couponAmountVND` | Number | `0.0` | (VND) |\n| `handlingFee` | Number | `0.0` | Handling fee amount. |\n| `handlingFeeUSD` | Number | `0.0` | (USD) |\n| `handlingFeeVND` | Number | `0.0` | (VND) |\n| `totalFare` | Number | `0.0` | Total base fare. |\n| `totalFareUSD` | Number | `0.0` | (USD) |\n| `totalFareVND` | Number | `0.0` | (VND) |\n| `convertionRate` | Number | `0.0` | Conversion rate used. |\n| `currency` | String | `\"VND\"` | Currency for this price information. |\n| `totalTax` | Number | `0.0` | Total tax amount. |\n| `surcharges` | Number | `0.0` | Surcharge amount. |\n| `amount` | Number | `0.0` | General amount field, context may vary. |\n| `numberOfRooms` | Integer | `0` | Number of rooms (not for eSIM). |\n| `averagePerNightAmount` | Number | `0.0` | Average per night amount (not for eSIM). |\n| `numberOfNights` | Integer | `0` | Number of nights (not for eSIM). |\n| `priceDetails` | Array | `[]` | Array of further price detail objects. |\n| `createdBy` | String | `\"thanh.nguyen1@skyjet.vn\"` | Creator of this price entry. |\n| `createdUtc` | String | `\"0001-01-01T00:00:00:0000\"` | Creation UTC timestamp (default/placeholder value). |\n| `updatedUtc` | String | `\"0001-01-01T00:00:00:0000\"` | Last update UTC timestamp (default/placeholder value). |\n| `refundable` | Boolean | `false` | Indicates if this price component is refundable. |\n| `hasBreakfast` | Boolean | `false` | Indicates if breakfast is included (not for eSIM). |\n| `extraBed` | Boolean | `false` | Indicates if an extra bed is included (not for eSIM). |\n| `nonSmoking` | Boolean | `false` | Indicates if non-smoking option (not for eSIM). |\n\n---\n\n## Notes\n\n- The `orderId` in the URL path must be the UUID of an existing eSIM order.\n    \n- The `passengers` array is generally empty for eSIM orders.\n    \n- Many fields within `priceInfo` (e.g., `numberOfRooms`, `seatTotalAmount`) are generic and may not be relevant to eSIM orders, often showing `0` or default values.\n    \n- The `createdUtc` and `updatedUtc` fields within `priceInfo` might show a default timestamp (`0001-01-01T00:00:00:0000`) if this specific pricing sub-record hasn't been explicitly timestamped or if it uses the main order's timestamps.\n    \n- Fields like `qrCode`, `phoneNumber`, and `serialNumber` within `orderESimInfo` are typically available for successfully provisioned eSIMs (e.g., status `CLOSED`). These fields might be absent or null for orders with other statuses, such as `REFUNDED` or `CANCELED`.\n    \n- The `orderESimInfo.operator` field might not be present for all eSIM products or in all states of the order."
									},
									"response": []
								}
							],
							"description": "# 📋 E-SIM Manage Orders APIs\n\nOnce E-SIMs have been ordered, this section provides the APIs necessary to track, search, and retrieve details about those orders. These endpoints are crucial for post-purchase operations, customer support, and order reconciliation.\n\n**Available APIs:**\n\n- **Search Orders (POST):**\n    \n    - Allows you to search for existing E-SIM orders based on a variety of criteria, such as date range, customer identifiers, or other order attributes. This is useful for general order lookup.\n        \n- **Search Orders By Status (POST):**\n    \n    - Provides a more specific search capability to find orders based on their current status (e.g., \"Pending,\" \"Closed,\" \"Refunded\"). This helps in monitoring and managing order lifecycles.\n        \n- **Get Order By Id (GET):**\n    \n    - Retrieves the complete details of a single, specific E-SIM order when you have its unique identifier (Order ID).\n        \n\nEnsure you are authenticated before calling these APIs. Click on each API link above to view detailed documentation, including request parameters, response formats, and examples."
						}
					]
				}
			]
		}
	]
}