Описание

API для туров в проекте MC.
Ниже представлен список API методов доступных в проекте.

tour/reference

Метод для получения всех доступных справочников для формы поиска.


Запрос

Метод передачи: GET

Принимает параметры в $_GET запросе:

Параметр Тип Описание
lang string Язык на котором вернуть результаты. По умолчанию используется ‘en’. Если для запрошенного языка нет данных будет использоваться язык по умолчанию.
country string ISO alpha_2 код страны, для которой отобрать значения справочника (города вылета, например). Если не передан то будет возвращен полный набор данных
demo bool Передав этот параметр, можно получить все справочники, включая справочники из этапа "data mapping".

Пример:

curl -i -H 'X-Iterios-Api-Key: some_key_value' https://api-multicodes.iterios.com/v1/tour/reference?lang=ru&country=tr&demo=1

Результаты ответа

Код Описание
200 Успешное выполнение. Содержимое файла возвращается в ответ
400 Параметры переданы неверно, описание ошибки в атрибуте error.message
403 Ошибка авторизаци. Детальное описание в разделе Авторизация
500 Внутренняя ошибка, детали в атрибуте error.message

Описание возвращаемых данных

Параметр Тип Описание
items array Массив с найденными результатами

Примеры запросов

Пример выполнения запроса с использованием библиотеки GuzzleHttp:

use GuzzleHttp\Exception\RequestException;

$client = new GuzzleHttp\Client([
    'base_uri' => 'https://api-multicodes.iterios.com/v1/'
]);

try {
    $response = $client->request('GET', 'tour/reference', [
        'headers' => [
            'X-Iterios-Client-Key' => 'some_key_value'
        ],
        'query' => [
            'lang' => 'ru',
            'country' => 'tr'
        ]
    ]);
} catch (RequestException $e) {
    // Process exception data
    ...
}

Пример ответа:

{
    "status": "success",
    "data": {
        "operator": [
            {
                "id": 4,
                "name": "TezTour"
            }
        ],
        "country": [
            {
                "id": 3,
                "name": "Afghanistan"
            },
            {
                "id": 15,
                "name": "Aland Islands"
            },
            {
                "id": 6,
                "name": "Albania"
            },
            {
                "id": 62,
                "name": "Algeria"
            },
            {
                "id": 11,
                "name": "American Samoa"
            }
        ],
        "dep_city": [
            {
                "id": 2,
                "name": "Donetsk",
                "country": {
                    "id": 231,
                    "name": "Ukraine"
                }
            },
            {
                "id": 1,
                "name": "Kiev",
                "country": {
                    "id": 231,
                    "name": "Ukraine"
                }
            }
        ],
        "hotel_category": [
            {
                "id": 1,
                "name": "3*"
            }
        ],
        "meal": [
            {
                "id": 1,
                "name": "AI"
            }
        ],
        "currency": [
            {
                "id": 30,
                "name": "Euro"
            },
            {
                "id": 26,
                "name": "Ukrainian Hrivna"
            },
            {
                "id": 28,
                "name": "US Dollar"
            }
        ]
    }
}

tour/referenceData

Метод для получения дополнительных справочников для формы поиска на основании выбранных пользователем параметров.


Запрос

Метод передачи: GET

Принимает параметры в $_GET запросе:

Параметр Тип Описание
dep_city required int Город вылета
country required int Идентификатор выбранной страны.

Пример:

curl -i -H 'X-Iterios-Api-Key: some_key_value' https://api-multicodes.iterios.com/v1/tour/referenceData?dep_city=4&country=226

Ответы

Код Описание
200 Успешное выполнение. Содержимое файла возвращается в ответ
400 Параметры переданы неверно, описание ошибки в атрибуте error.message
403 Ошибка авторизаци. Детальное описание в разделе Авторизация
500 Внутренняя ошибка, детали в атрибуте error.message

Примеры

Пример выполнения запроса с использованием библиотеки GuzzleHttp:

use GuzzleHttp\Exception\RequestException;

$client = new GuzzleHttp\Client([
    'base_uri' => 'https://api-multicodes.iterios.com/v1/'
]);

try {
    $response = $client->request('GET', 'tour/detail', [
        'headers' => [
            'X-Iterios-Client-Key' => 'some_key_value'
        ],
        'query' => [
            'dep_city' => '3',
            'country' => '8'
        ]
    ]);
} catch (RequestException $e) {
    // Process exception data
    ...
}

Пример ответа:

{
   "status":"success",
   "data":{
      "city":[
         {
            "id":2,
            "name":"Antalya",
            "country_id":"226"
         },
         {
            "id":3,
            "name":"Side",
            "country_id":"226"
         }
      ],
      "hotel":[
         {
            "id":1,
            "name":"ADAM&EVE",
            "country_id":226,
            "city_id":2,
            "hotel_category":{
               "id":2,
               "name":"5*"
            }
         }
      ]
   }
}

tour/sourceData

Метод для получения оригинальных идентификаторов туроператоров.


Запрос

Метод передачи: POST

Принимает параметры в $_GET запросе:

Параметр Тип Описание
lang string Код языка, на котором вернуть результаты

Нужно передавать JSON параметры в теле запроса:

Параметр Тип Описание
dep_city required int Идентификатор города вылета из справочника tour/reference
country required int Идентификатор страны направления из справочника
city int[] Массив ID города в стране направления. Если не передан или пустой то не будут возвращены результаты.
hotel int[] Массив ID отелей, куда лететь. Если не передан или пустой то не будут возвращены результаты.
hotel_category int[] Массив ID категорий отелей (звезды). Если не передан или пустой то не будут возвращены результаты.
meal int[] Массив ID вариантов питания. Если не передан или пустой то не будут возвращены результаты.
сurrency int[] Идентификатор валюты из справочника.
adapter_id required int ID адаптера, для которого нужно вернуть оригинальные значения.

Пример:

{
  "adapter_id": 5,
  "country": 226,
  "city": [1,2],
  "meal": [1],
  "hotel_category": [1,2],
  "hotel": [1],
  "currency": 28,
  "dep_city": 4
}

Пример:

curl -i -X POST \
   -H "X-Iterios-Api-Key:6hnTdNrtCv3yF3aMtpHwGAnpnH94RP2T" \
   -H "Content-Type:application/x-www-form-urlencoded" \
   -d "dep_city=1" \
   -d "country=231" \
   -d "city[]=1" \
   -d "hotel[]=1" \
   -d "hotel_category[]=1" \
   -d "meal[]=1" \
   -d "currency=26" \
   -d "adapter_id=4" \
 'https://api-multicodes.iterios.com/v1/tour/sourceData'

Ответы

Код Описание
200 Успешное выполнение. Содержимое файла возвращается в ответ
400 Параметры переданы неверно, описание ошибки в атрибуте error.message
403 Ошибка авторизаци. Детальное описание в разделе Авторизация
500 Внутренняя ошибка, детали в атрибуте error.message

Примеры

Пример выполнения запроса с использованием библиотеки GuzzleHttp:

<?php

use GuzzleHttp\Exception\RequestException;

$client = new GuzzleHttp\Client([
    'base_uri' => 'https://api-multicodes.iterios.com/v1/'
]);

try {
    $response = $client->request('GET', 'tour/compared', [
        'headers' => [
            'X-Iterios-Client-Key' => 'some_key_value'
        ],
        'form_data' => [
            'adapter_id' => 4,
            'dep_city' => 1,
            'country' => 231,
            'city' => [1],
            'hotel' => [1],
            'hotel_category' => [1],
            'meal' => [1],
            'currency' => 26,
        ]
    ]);
} catch (RequestException $e) {
    // Process exception data
    ...
}

Пример ответа:

{
   "status":"success",
   "data":{
      "adapter":{
         "id":5,
         "code":"anex",
         "name":"AnexTour"
      },
      "dep_city":null,
      "country":{
         "dict_id":226,
         "orig_id":3
      },
      "city":[
         {
            "dict_id":2,
            "orig_id":18,
            "is_resort": false
         }
      ],
      "hotel":[
         {
            "dict_id":1,
            "orig_id":8385
         }
      ],
      "hotel_category":[
         {
            "dict_id":1,
            "orig_id":8,
            "orig_title": "..."
         },
         {
            "dict_id":2,
            "orig_id":10,
            "orig_title": "..."
         }
      ],
      "meal":[
         {
            "dict_id":1,
            "orig_id":9,
            "orig_title": "..."
         }
      ],
      "currency": {
        "dict_id": 28,
        "orig_id": "2",
        "orig_iso_code": "USD",
        "orig_title": "у.е."
      }
   }
}

tour/sourceInfo

Возвращает для конкретного поставщика информацию об импортированных данных на основании переданых идентификаторов.

Доступные справочники: - currency - country - dep_city - city - meal - hotel - hotel_category


Запрос

Метод передачи: POST

Для получения данных в query_string обязательно нужно передать идентификитор источника и код языка (для перевода):

Таблица 5.1

Параметр Тип Описание
adapter_id required int ID адаптера из справочника MC по которому проверяется сопоставление.
lang string Язык на котором вернуть результаты. По умолчанию используется en. Если для запрошенного языка нет данных будет использоваться язык по умолчанию.

В теле запроса передается JSON с атрибутами описанными в таблице 5.2. Каждый атрибут должен содержать список идентификаторов, через запятую.

Таблица 5.2

Параметр Тип Описание
currency string Идентификаторы валют из базы данных источника
country string Идентификаторы стран из базы данных источника
dep_city string Идентификаторы городов вылета из базы данных источника
city string Идентификаторы городов из базы данных источника
meal string Идентификаторы типов питания из базы данных источника
hotel string Идентификаторы отелей из базы данных источника
hotel_category string Идентификаторы категорий отеля (звезды) из базы данных источника

Пример запроса:

curl -i -X POST \
   -H "X-Iterios-Api-Key:some_api_key" \
   -H "Content-Type:application/json" \
   -d \
'{"country":"23","dep_city":"155","city":"18","meal":"343434,10","hotel_category":"2323,9","currency":"2","hotel":"8411"}' \
 'https://api-multicodes.iterios.com/v1/tour/sourceInfo?adapter_id=6&lang=ru'

Коды ответов

Код Описание
200 Успешное выполнение. Содержимое файла возвращается в ответ
400 Параметры переданы неверно, описание ошибки в атрибуте error.message
403 Ошибка авторизаци. Детальное описание в разделе Авторизация
500 Внутренняя ошибка, детали в атрибуте error.message

Результат

Для каждого запрашиваемого справочника будет сформирован набор данных из базы MC. Если описанный в таблице 5.2 атрибут не передан, то по нему поиск выполняться не будет и в результате не будет передаваться.

Каждый элемент массива в результатах содежит объект такой структуры:

{
  "id": "ID запрашиваемого элемента",
  "source": "объект с данными от поставщика (оригинальные)",
  "dict": "объект с данными из справочника MC (сопоставленные)"
}

Атрибуты source и dict могут содержать значение null.
Если атрибут dict имеет значение null значит этот элемент не сопоставлен из базовыми справочниками MC.

Таблица 5.3 - список атрибутов в результатах

Параметр Тип Описание
currency object[] Массив с валютами
country object[] Массив стран
dep_city object[] Массив городов вылета
city object[] Массив городов
meal object[] Массив типов питания
hotel object[] Массив отелей
hotel_category object[] Массив категорий отеля (звезды)

Пример ответа

{
  "status":"success",
  "data":{
    "currency":[
      {
        "id":"2",
        "source":{
          "id":"2",
          "name":"у.е.",
          "iso_code":"USD"
        },
        "dict":{
          "id":28,
          "iso_code":"USD",
          "name":"Доллар"
        }
      }
    ],
    "country":[
      {
        "id":"23",
        "source":{
          "id":"23",
          "name":"Египет1"
        },
        "dict":{
          "id":65,
          "name":"Египет"
        }
      }
    ],
    "dep_city":[
      {
        "id":"155",
        "source":{
          "id":"155",
          "name":"Kiev"
        },
        "dict":{
          "id":1,
          "name":"Киев"
        }
      }
    ],
    "city":[
      {
        "id":"18",
        "source":{
          "id":"18",
          "name":"Анталья"
        },
        "dict":{
          "id":-735347,
          "name":"Анталья"
        }
      }
    ],
    "meal":[
      {
        "id":"10",
        "source":{
          "id":"10",
          "name":"ULTRA AI"
        },
        "dict":{
          "id":3,
          "name":"UAI",
          "description":"Ultra All Inc."
        }
      },
      {
        "id":"343434",
        "source":{
          "id":"343434",
          "name":"AIa"
        },
        "dict":{
          "id":1,
          "name":"AI",
          "description":"Все включено"
        }
      }
    ],
    "hotel_category":[
      {
        "id":"2323",
        "source":{
          "id":"2323",
          "name":"5"
        },
        "dict":{
          "id":5,
          "name":"5"
        }
      },
      {
        "id":"9",
        "source":{
          "id":"9",
          "name":"4*"
        },
        "dict":{
          "id":2,
          "name":"4"
        }
      }
    ],
    "hotel":[
      {
        "id":"8411",
        "source":{
          "id":"8411",
          "name":"SAPHIR RESORT & SPA",
          "category_id":5,
          "category_title":"5 *****",
          "country_id":3,
          "country_title":"Турция",
          "city_id":1297,
          "city_title":"Окурджалар"
        },
        "dict":{
          "id":400365,
          "name":"Saphir Resort&Spa",
          "country_id":226,
          "country_name":"Турция",
          "city_id":-766442,
          "city_name":"Окурджалар",
          "hotel_category_id":5,
          "hotel_category_name":"5"
        }
      }
    ]
  }
}

tour/sourceAdd

Используется для добавления новых элементов в справочник для поставщика.
Использовать нужно только для тех элементов, которые не были возвращены в результате от tour/sourceInfo


Запрос

HTTP метод: POST

Внимание! Это защищенный метод и работат только в связке сервер-сервер, нельзя использовать его для клиентских приложений.
Для вызова этого метода необходимо передавать ключ X-Iterios-Api-Secret который выдается под конкретный X-Iterios-Api-Key.

Все параметры необходимо передавать JSON документом в теле POST запроса. С указанием заголовка запроса Content-Type: application/json.

Таблица 6.1

Параметр Тип Описание
adapter_id required int ID адаптера из справочника MC по которому проверяется сопоставление.
lang_code required string ISO код языка, на котором передаются данные.
country array Массив с данными стран, по которым нужно вернуть сопоставление. Каждый элемент массива должен содержать объект с атрибутами описанными в таблице 6.2
dep_city array Массив с городами вылета из системы поставщика. Каждый элемент массива должен содержать объект с атрибутами описанными в таблице 6.2
currency array Массив с валютами из системы поставщика. Каждый элемент массива должен содержать объект с атрибутами описанными в таблице 6.2
city array Массив с городами в стране. Каждый элемент массива должен содержать объект с атрибутами описанными в таблице 6.2
meal array Массив с вариантами питания. Каждый элемент массива должен содержать объект с атрибутами описанными в таблице 6.2
hotel_category array Массив с категориями отелей. Каждый элемент массива должен содержать объект с атрибутами описанными в таблице 6.2
hotel array Массив с отелями из системы поставщика. Каждый элемент массива должен содержать объект с атрибутами описанными в таблице 6.3

Таблица 6.2

Параметр Тип Описание
id required int|string Идентификатор или уникальный код справочника в системе поставщика
name required string Название элемента в системе поставщика
iso_code string(3) ISO код валюты (только для справочника currency). Нужно передавать обязательно, но если кода валюты нет, то значение ставить null. Пустая строка будет восприниматься как ошибка.
Дополнительные атрибуты для city
is_resort boolean optional Указывает что это курорт в системе поставщика. По умолчанию =false, передавать не обязательно.
country_id int|string(64) optional Идентифкатор страны, в которой находится город
country_name string(255) optional Название страны, в которой находится город

Таблица 6.3

Параметр Тип Описание
id required int|string(64) Идентификатор или уникальный код отеля в системе поставщика
name required string(255) Название отеля в системе поставщика
category_id string(64) Идентификатор категории отеля из системы поставщика.
category_name required string(255) Название категории отеля из системы поставщика.
country_id string(64) Идентификатор страны из системы поставщика.
country_name required string(255) Название страны.
city_id string(64) Идентификатор города, к которому привязан отель из системы поставщика.
city_name required string(255) Название города, в котором расположен отель.

Пример запроса:

curl -i -X POST \
   -H "X-Iterios-Api-Key:some_api_key" \
   -H "X-Iterios-Api-Secret:some_secret_key" \
   -H "Content-Type:application/json" \
   -d \
'{"adapter_id":15,"lang_code":"en","currency":[{"id":"0001","name":"UKR Bucks","iso_code":"UAH"}],"dep_city":[{"id":"0001","name":"Some Sitia"}],"city":[{"id":"0001","name":"Some Sitia Default"}],"country":[{"id":"0001","name":"Turkia"}],"meal":[{"id":"11","name":"UAI"}],"hotel_category":[{"id":"3*","name":"3*"}],"hotel":[{"id":"0001","name":"Some Hotel","category_name":"4*","country_name":"Turcia","city_name":"Antalia"}]}' \
 'https://api-multicodes.iterios.com/v1/tour/sourceAdd'

Коды ответов

Код Описание
200 Успешное выполнение. Содержимое файла возвращается в ответ
400 Параметры переданы неверно, описание ошибки в атрибуте error.message
403 Ошибка авторизаци. Детальное описание в разделе Авторизация
500 Внутренняя ошибка, детали в атрибуте error.message

Результат

В результате выполнения запроса будет возвращена стандартная структура документа:

{
    "status": "success",
    "data": {...}
}

Элемент data содержит объект в котором возвращаются атрибуты согластно запроса:

{
    "language": "en",
    "adapter": {
        "id": "15",
        "code": "touristclub",
        "name": "TouristClub"
    },
    "currency": [...],
    "dep_city": [...],
    "country": [...],
    "city": [...],
    "meal": [...],
    "hotel_category": [...],
    "hotel": [...]
}

В атрибутах от currency до hotel возвращается массив объектов, каждый из которых имеет структуру:

{
    "source": {...},
    "dict": null
}

Если при добавлении конкретного элемента произошла ошибка, то структура объекта будет иметь вид:

{
    "error": {
        "code": "...",
        "message": "..."
    }
}

Примеры

Пример выполнения запроса с использованием библиотеки GuzzleHttp:

use GuzzleHttp\Exception\RequestException;

$client = new GuzzleHttp\Client([
    'base_uri' => 'https://api-multicodes.iterios.com/v1/'
]);

try {
    $response = $client->request('GET', 'tour/compared', [
        'headers' => [
            'X-Iterios-Client-Key' => 'some_key_value',
            'X-Iterios-Client-Secret' => 'some_secret_key'
        ],
        'json' => [
            'lang' => 'ru',
            'adapter_id' => 4,
            'lang_code' => 'ru',
            'country' => [
                [
                    'id' => '0001',
                    'name' => 'Turcia'
                ]
            ],
            'dep_city' => [
                [
                    'id' => '0001',
                    'name' => 'Kiyv'
                ]
            ],
            'currency' => [
                [
                    'id' => '0001',
                    'name' => 'Ukrainian hryvna',
                    'iso_code' => 'UAH'
                ]
            ],
            'city' => [
                [
                    'id' => '0001',
                    'name' => 'Alania',
                    'is_resort' => false
                ]
            ],
            'meal' => [
                [
                    'id' => '0001',
                    'name' => 'FB'
                ]
            ],
            'hotel_category' => [
                [
                    'id' => '0001',
                    'name' => '4'
                ]
            ],
            'hotel' => [
                [
                    'id' => '0001',
                    'name' => 'LARISSA GARDEN HOTEL',
                    'category_name' => '4 ****',
                    'country_name' => 'Turcia',
                    'city_name' => 'Alania'
                ]
            ]
        ]
    ]);
} catch (RequestException $e) {
    // Process exception data
    ...
}

Пример ответа:

{
    "status": "success",
    "data": {
        "language": "en",
        "adapter": {
            "id": 15,
            "code": "touristclub",
            "name": "TouristClub"
        },
        "currency": {
            "0001": {
                "source": {
                    "id": "0001",
                    "name": "UKR Bucks",
                    "iso_code": "UAH"
                },
                "dict": null
            }
        },
        "dep_city": {
            "0001": {
                "source": {
                    "id": "0001",
                    "name": "Some Sitia"
                },
                "dict": null
            }
        },
        "country": {
            "0001": {
                "source": {
                    "id": "0001",
                    "name": "Turkia"
                },
                "dict": null
            }
        },
        "city": {
            "0001": {
                "source": {
                    "id": "0001",
                    "name": "Some Sitia Default"
                },
                "dict": null
            }
        },
        "meal": {
            "0001": {
                "source": {
                    "id": "0001",
                    "name": "UAI"
                },
                "dict": null
            }
        },
        "hotel_category": {
            "3*": {
                "error": {
                    "code": 400,
                    "message": "An exception occurred while executing 'INSERT INTO source.hotel_category (source_id, external_id, lang_code, title, is_api_created) VALUES (?, ?, ?, ?, ?)' with params [15, \"3*\", \"en\", \"3*\", 1]:\n\nSQLSTATE[23505]: Unique violation: 7 ERROR:  duplicate key value violates unique constraint \"hotel_category_source_id_external_id_is_group_udx\"\nDETAIL:  Key (source_id, external_id, is_group)=(15, 3*, f) already exists."
                }
            }
        },
        "hotel": {
            "0001": {
                "source": {
                    "id": "0001",
                    "name": "Some Hotel",
                    "category_id": null,
                    "category_name": "4*",
                    "country_id": null,
                    "country_name": "Turcia",
                    "city_id": null,
                    "city_name": "Antalia"
                },
                "dict": null
            }
        }
    }
}

tour/compared

!WARNING! This method is DEPRECATED. Use tour/sourceAdd method.

Метод отдает набор данных из общего справочника на основании оригинальных значений из системы поставщика. Используется на этапе подготовки локализованных данных для выдачи результатов поиска.


Запрос

Метод передачи: POST

Внимание! Это защищенный метод и работат только в связке сервер-сервер, нельзя использовать его для клиентских приложений.
Для вызова этого метода необходимо передавать ключ X-Iterios-Api-Secret который выдается под конкретный X-Iterios-Api-Key.

Все параметры необходимо передавать JSON документом в теле POST запроса. С указанием заголовка запроса Content-Type: application/json.

Таблица 4.1

Параметр Тип Описание
lang string Язык на котором вернуть результаты. По умолчанию используется en. Если для запрошенного языка нет данных будет использоваться язык по умолчанию.
adapter_id required int ID адаптера из справочника MC по которому проверяется сопоставление.
lang_code required string ISO код языка, на котором передаются данные.
country array Массив с данными стран, по которым нужно вернуть сопоставление. Каждый элемент массива должен содержать объект с атрибутами описанными в таблице 4.2
dep_city array Массив с городами вылета из системы поставщика. Каждый элемент массива должен содержать объект с атрибутами описанными в таблице 4.2
currency array Массив с валютами из системы поставщика. Каждый элемент массива должен содержать объект с атрибутами описанными в таблице 4.2
city array Массив с городами в стране. Каждый элемент массива должен содержать объект с атрибутами описанными в таблице 4.2
meal array Массив с вариантами питания. Каждый элемент массива должен содержать объект с атрибутами описанными в таблице 4.2
hotel_category array Массив с категориями отелей. Каждый элемент массива должен содержать объект с атрибутами описанными в таблице 4.2
hotel array Массив с отелями из системы поставщика. Каждый элемент массива должен содержать объект с атрибутами описанными в таблице 4.3

Таблица 4.2

Параметр Тип Описание
id required int|string Идентификатор или уникальный код справочника в системе поставщика
name required string Название элемента в системе поставщика
iso_code string(3) ISO код валюты (только для справочника currency). Нужно передавать обязательно, но если кода валюты нет, то значение ставить null. Пустая строка будет восприниматься как ошибка.
is_resort boolean Указывает что это курорт в системе поставщика (только для справочника city). По умолчанию =false, передавать не обязательно.

Таблица 4.3

Параметр Тип Описание
id required int|string Идентификатор или уникальный код отеля в системе поставщика
name required string Название отеля в системе поставщика
category_id int Идентификатор категории отеля из системы поставщика.
category_name string Название категории отеля из системы поставщика.
country_id int Идентификатор страны из системы поставщика.
country_name string Название страны.
city_id int Идентификатор города, к которому привязан отель из системы поставщика.
city_name string Название города, в котором расположен отель.

Пример:

{
    "lang": "ru",
    "adapter_id": 5,
    "lang_code": "ru",
    "country": [
        {
            "id": 2,
            "name": "Turcia"
        }
    ],
    "dep_city": [
        {
            "id": 11,
            "name": "Kiyv"
        },
        {
            "id": 12,
            "name": "Donetsk"
        },
        {
            "id": 13,
            "name": "Zaporozhie"
        }
    ],
    "currency": [
        {
            "id": 324234,
            "name": "Ukrainian hryvna",
            "iso_code": "UAH"
        },
        {
            "id": 324236,
            "name": "USD",
            "iso_code": ""
        }
    ],
    "city": [
        {
            "id": 324,
            "name": "Alania",
            "is_resort": false
        }
    ],
    "meal": [
        {
            "id": 234,
            "name": "FB"
        }
    ],
    "hotel_category": [
        {
            "id": 34234,
            "name": "4"
        }
    ],
    "hotel": [
        {
            "id": 23845632,
            "name": "LARISSA GARDEN HOTEL",
            "category_id": 23434,
            "category_name": "4 ****",
            "country_id": 2,
            "country_name": "Turcia",
            "city_id": 324234,
            "city_name": "Alania"
        }
    ]
}

Пример:

curl -i -X POST \
   -H "X-Iterios-Api-Key:some_api_key" \
   -H "X-Iterios-Api-Secret:some_secret_key" \
   -H "Content-Type:application/json" \
   -d \
'{"lang":"ru","adapter_id":4,"lang_code":"ru","country":[{"id":2,"name":"Turcia"}],"dep_city":[{"id":11,"name":"Kiyv"},{"id":12,"name":"Donetsk"},{"id":13,"name":"Zaporozhie"}],"currency":[{"id":324234,"name":"Ukrainian hryvna","iso_code":"UAH"},{"id":324236,"name":"USD","iso_code":""}],"city":[{"id":324,"name":"Alania","is_resort":false}],"meal":[{"id":234,"name":"FB"}],"hotel_category":[{"id":34234,"name":"4"}],"hotel":[{"id":23845632,"name":"LARISSA GARDEN HOTEL","category_id":23434,"category_name":"4 ****","country_id":2,"country_name":"Turcia","city_id":324234,"city_name":"Alania"}]}' \
 'https://api-multicodes.iterios.com/v1/tour/compared'

Ответы

Код Описание
200 Успешное выполнение. Содержимое файла возвращается в ответ
400 Параметры переданы неверно, описание ошибки в атрибуте error.message
403 Ошибка авторизаци. Детальное описание в разделе Авторизация
500 Внутренняя ошибка, детали в атрибуте error.message

Примеры

Пример выполнения запроса с использованием библиотеки GuzzleHttp:

use GuzzleHttp\Exception\RequestException;

$client = new GuzzleHttp\Client([
    'base_uri' => 'https://api-multicodes.iterios.com/v1/'
]);

try {
    $response = $client->request('GET', 'tour/compared', [
        'headers' => [
            'X-Iterios-Client-Key' => 'some_key_value'
        ],
        'json' => [
            'lang' => 'ru',
            'adapter_id' => 4,
            'lang_code' => 'ru',
            'country' => [
                [
                    'id' => 2,
                    'name' => 'Turcia'
                ]
            ],
            'dep_city' => [
                [
                    'id' => 11,
                    'name' => 'Kiyv'
                ]
            ],
            'currency' => [
                [
                    'id' => 324234,
                    'name' => 'Ukrainian hryvna',
                    'iso_code' => 'UAH'
                ],
                [
                    'id' => 324236,
                    'name' => 'USD',
                    'iso_code' => ''
                ]
            ],
            'city' => [
                [
                    'id' => 324,
                    'name' => 'Alania',
                    'is_resort' => false
                ]
            ],
            'meal' => [
                [
                    'id' => 234,
                    'name' => 'FB'
                ]
            ],
            'hotel_category' => [
                [
                    'id' => 34234,
                    'name' => '4'
                ]
            ],
            'hotel' => [
                [
                    'id' => 23845632,
                    'name' => 'LARISSA GARDEN HOTEL',
                    'category_id' => 23434,
                    'category_name' => '4 ****',
                    'country_id' => 2,
                    'country_name' => 'Turcia',
                    'city_id' => 324234,
                    'city_name' => 'Alania'
                ]
            ]
        ]
    ]);
} catch (RequestException $e) {
    // Process exception data
    ...
}

Пример ответа:

{
  "status": "success",
  "data": {
    "language": "ru",
    "adapter": {
      "id": 4,
      "code": "teztour",
      "name": "TezTour"
    },
    "dep_city": {
      "11": {
        "id": null,
        "name": "Kiyv"
      },
      "12": {
        "id": null,
        "name": "Donetsk"
      },
      "13": {
        "id": null,
        "name": "Zaporozhie"
      }
    },
    "country": {
      "2": {
        "id": null,
        "name": "Turcia"
      }
    },
    "city": {
      "324": {
        "id": 1,
        "name": "Киев"
      }
    },
    "meal": {
      "234": {
        "id": null,
        "name": "FB"
      }
    },
    "currency": {
      "324234": {
        "id": null,
        "iso_code": "UAH",
        "name": "Ukrainian hryvna"
      },
      "324236": {
        "id": null,
        "iso_code": null,
        "name": "USD"
      }
    },
    "hotel_category": {
      "34234": {
        "id": null,
        "name": "4"
      }
    },
    "hotel": {
      "23845632": {
        "id": null,
        "name": "LARISSA GARDEN HOTEL",
        "hotel_category": {
          "id": 23434,
          "name": "4 ****"
        },
        "country": {
          "id": 2,
          "name": "Turcia"
        },
        "city": {
          "id": 324234,
          "name": "Alania"
        }
      }
    }
  }
}

tour/hotelDescription

Описание отеля полученное от источника, сопоставленное из данными основного справочника MC.


Запрос

Метод передачи: GET

Принимает параметры в $_GET запросе:

Параметр Тип Описание
hotel_orig_id required int Оригинальный идентификатор импортированного отеля
adapter_id required int ID адаптера, для которого нужно вернуть оригинальные значения.
lang string ISO код языка, на котором вернуть результаты. По умолчанию en

Пример:

curl -i -X GET \
   -H "X-Iterios-Api-Key: some_key_value" \
 'https://api-multicodes.iterios.com/v1/tour/hotelDescription?adapter_id=25&hotel_orig_id=1101913'

Ответы

Код Описание
200 Успешное выполнение
400 Параметры переданы неверно, описание ошибки в атрибуте error.message
403 Ошибка авторизаци. Детальное описание в разделе Авторизация
500 Внутренняя ошибка, детали в атрибуте error.message

Примеры

Пример выполнения запроса с использованием библиотеки GuzzleHttp:

<?php

use GuzzleHttp\Exception\RequestException;

$client = new GuzzleHttp\Client([
    'base_uri' => 'https://api-multicodes.iterios.com/v1/'
]);

try {
    $response = $client->request('GET', 'tour/hotelDescription', [
        'headers' => [
            'X-Iterios-Client-Key' => 'some_key_value'
        ],
        'query' => [
            'adapter_id' => 5,
            'hotel_orig_id' => 1101913,
        ]
    ]);
} catch (RequestException $e) {
    // Process exception data
    ...
}

Пример ответа:

{
    "status": "success",
    "data": {
        "adapter": {
            "id": 25,
            "code": "tui",
            "name": "TUI",
            "logo": "http:\/\/...png"
        },
        "hotel": {
            "id": 1101913,
            "title": "Hilton palace hotel",
            "country": {
               "ru": "Испания",
               "en": "Spain"
            },
            "city": {
               "ru": "Барселона",
               "en": "Barselona"
            },
            "hotel_category": "5",
            "lat": -8.804006476676703,
            "lng": 13.242731094360352,
            "hotel_type": {
               "ru": "Гостевые дома",
               "en": "Geust houses"
            },
            "address": null,
            "zip": null
        },
        "orig_hotel": {
            "orig_id": "30403",
            "title": "TUI Day and Night Connected Club Hydros HV1",
            "country": "Turkey",
            "city": "Kemer",
            "hotel_category": "5",
            "address": "Yeni Mahalle. Şehit Polis Cemal Ilgaz Caddesi",
            "check_in": "14:00:00",
            "check_out": "11:00:00",
            "room_count": 106,
            "url": "http://www.tui.ua/tours/europe/turkey/antalya/kemer/kemer-center/tui-day-and-night-connected-club-hydros",
            "zip": "8530",
            "lat": -8.804006476676703,
            "lng": 13.242731094360352
        },
        "hotel_description": [
            {
                "type": {
                   "ru": "Еда и напитки",
                   "en": "Food and drink"
                },
                "orig_type": {
                   "en": "Food and drink"
                },
                "orig_description": {
                   "ru": "...",
                   "en": "..."
                }
            },
            {
                "type": {
                   "ru": "Краткая информация",
                   "en": "Quick description"
                },
                "orig_type": {
                   "en": "Food and drink"
                },
                "orig_description": {
                   "en": "..."
                }
            }
        ],
        "hotel_facility": [
            {
                "facility_group": {
                   "ru": "Общее",
                   "en": "General"
                },
                "orig_facility_group": {
                   "en": "General"
                },
                "data": [
                    {
                        "facility_type": {
                           "ru": "Парковка",
                           "en": "Parking"
                        },
                        "orig_facility_type": {
                           "en": "Private parking"
                        },
                        "value_type": "boolean",
                        "value": "1"
                    },
                    {
                        "facility_type": {
                           "ru": "Джакуззи",
                           "en": "Hot tub/jacuzzi"
                        },
                        "orig_facility_type": {
                           "en": "Jacuzzi"
                        },
                        "value_type": "free_or_paid",
                        "value": "5"
                    }
                ]
            },
            {
                "facility_group": {
                   "ru": "Бассейн",
                   "en": "Pools and wellness"
                },
                "orig_facility_group": {
                   "en": "Wellness"
                },
                "data": [
                    {
                        "facility_type": {
                           "ru": "Джакуззи",
                           "en": "Hot tub/jacuzzi"
                        },
                        "orig_facility_type": {
                           "en": "Jacuzzi"
                        },
                        "value_type": "free_or_paid",
                        "value": "5"
                    }
                ]
            }
        ],
        "hotel_photo": [
            {
                "url_orig": "http://www.tui.ua/img/725eaacb-ba6a-405b-94ec-01ca94ae182a/Europe/Turkey/Antalya/kemer/Kemer-Center/TUI-Day-and-Night-Connected-Club-Hydros.jpg",
                "is_main": true
            },
            {
                "url_orig": "...",
                "is_main": false
            }
        ]
    }
}

tour/hotelCheck

Список источников и идентификаторов отелей в них, которые связаны с передаваемым отелем (hotel)


Запрос

Метод передачи: GET

Принимает параметры в $_GET запросе:

Параметр Тип Описание
hotel required int Идентификатор отеля из справочника MC

Пример:

curl -i -X GET \
   -H "X-Iterios-Api-Key: some_key_value" \
 'https://api-multicodes.iterios.com/v1/tour/hotelCheck?hotel=1101913'

Ответы

Код Описание
200 Успешное выполнение
400 Параметры переданы неверно, описание ошибки в атрибуте error.message
403 Ошибка авторизаци. Детальное описание в разделе Авторизация
500 Внутренняя ошибка, детали в атрибуте error.message

Примеры

Пример выполнения запроса с использованием библиотеки GuzzleHttp:

<?php

use GuzzleHttp\Exception\RequestException;

$client = new GuzzleHttp\Client([
    'base_uri' => 'https://api-multicodes.iterios.com/v1/'
]);

try {
    $response = $client->request('GET', 'tour/hotelCheck', [
        'headers' => [
            'X-Iterios-Client-Key' => 'some_key_value'
        ],
        'query' => [
            'hotel' => 1101913,
        ]
    ]);
} catch (RequestException $e) {
    // Process exception data
    ...
}

Пример ответа:

{
    "status": "success",
    "data": [
        {
            "hotel_orig_id": "1101913",
            "adapter_id": 4,
            "adapter": {
                "code": "teztour",
                "name": "TezTour"
            }
        },
        {
            "hotel_orig_id": "154553",
            "adapter_id": 13,
            "adapter": {
                "code": "tui",
                "name": "TUI"
            }
        }
    ]
}