{
"data": [...],
"productPerCompany": [..],
"assistances": [...],
"preCalc": {...},
"request": {...},
"status": 200
}
Поля:
data
- неотфильтрованный и неотсортированный массив результатов расчета. Включает в себя все доступные к расчету продукты страховых компаний (может быть несколько продуктов на одну страховую)productPerCompany
- неотсортированный массив результатов расчета, по одному наиболее подходящему под запрос продукту для каждой страховой компании (так в выдаче на сайте cherehapa.ru). Полный список страховых компаний: https://api.cherehapa.ru/v2/companyassistances
- массив кодов ассистансов, присутствующих в результатах расчета (можно использовать для отображения фильтра по ассистансам). Полный список ассистансов: https://api.cherehapa.ru/v2/assistancepreCalc
- результаты предварительного расчета оптимальной начальной суммы медицинского страхования (появляется, если в запросе указан параметрpreCalc[]=medicine
.request
- данные обработанного запроса (т.е. те данные, которые были переданы на вход, плюс несколько дополнительных полей, появившихся в результате обработки)status
- HTTP-код ответа
Полные результаты расчета. Все страховые компании. Все продукты, на которые условиями расчета не наложены ограничения. Может включать несколько продуктов на одну страховую компанию. (Например: Ecomom - 100 руб, Classic - 300 руб, VIP - 500 руб). Массив элементов со следующими полями:
{
"productId": 9, //внутренний числовой код страхового продукта
"companyId": 23, //внутренний числовой код страховой компании, см. https://api.cherehapa.ru/v2/company
"insuranceSubProductId": 53, //внутренний код варианта страхового продукта
"territory": { //расчитанная территория действия страхового полиса (скорее для внутреннего использования, это территория страховой компании)
"id": 351, //внутренний числовой код территории
"code": "t8", //внутренний символьный код территории
"countryGroup": [...] //символьные коды групп стран, входящих в состав территории
},
"insuredDays": 365, //срок действия страхового полиса (в днях)
"sport": [ //массив данных о группах спорта, включенных в страховой полис (скорее для внутреннего использования, это группы страховой компании)
{
"id": 2, //внутренний числовой код группы спорта
"code": "alfa-sport" //внутренний символьный код группы спорта
}
],
"currency": "EUR", //код валюты, в которой расчитан страховой полис (в некоторых случаях может отличаться от запрошенной валюты)
"price": 2306.8, //стоимость страхового полиса в валюте
"priceRub": 162307.37, //стоимость страхового полиса в рублях
"assistances": [ //массив ассистансов, обслуживающих данный страховой полис. в большинстве случаев тут один элемент, но в случае неопределенности со стороны страховой компании, тут их может быть несколько
{
"code": "best", //внутренний символьный код ассистанса
"name": " Best Service" //название ассистанса
}
],
"matchRating": 0.7137, //рейтинг соответствия продукта запросу. Чем ближе к 1, тем больше соответствие.
"matchDetails": { //дополнительные параметры соотнесения продукта с запросом
"totalServices": 20, //общее количество услуг в продукте
"additionalServices": 19, //количество дополнительных услуг в продукте (которых нет в запросе, но есть в продукте)
"missingServices": 0, //количество отстутствующих услуг (есть в запросе, но нет в продукте)
"matchingServices": 1, //количество услуг, соответствующих запросу
"higherSumms": 0, //количество услуг с большей страховой суммой
"lowerSumms": 0, //количество услуг с меньшей страховой суммой
"matchingSumms": 1, //количество услуг с совпадающей страховой суммой
"expertRaiting": 0, //экспертный рейтинг страхового продукта (не используется, тут всегда 0)
"isLimited": 0, //является ли этот продукт ограниченным (всегда 0, ограниченные не продаем)
"priceRating": 0.007, //рейтинг стоимости (чем выше, тем сравнительно дороже продукт)
"payoutRating": 0.01065 //рейтинг выгодности для продажи (не применяется)
},
"serviceProduct": { //массив услуг, входящих в состав продукта (со страховыми суммами)
...
"searchActivities": 0,
"legal": 5000,
"deathRepatriation": 10000,
"medicine": 50000,
...
},
"info": { //массив дополнительных сведений о расчете, сюда включается франшиза
"medicine": [
{
"type": "franchise", //тип сведений: franscise - франшиза, других не припомню
"value": "30" //м.б. число, тогда следует интерпретировать как абсолютное значение в валюте расчета или текст (который надо показать пользователю)
}
]
},
"services": [...], //для внутреннего использования и отладки, разбивка стоимости по услугам в соответствии с примененными правилами расчета
"infoPerTourist": [...] //для внутреннего использования и отладки, разбивка стоимости по туристам в соответсвии с примененными правилами расчета
}
Массив структуры, аналогичной той, что в data, за тем исключением, что для каждой страховой компании в нем оставлено по одному, наиболее подходящему продукту (т.е. тому, у которого matchRating
максимальный). Алгоритм отсечения тот же, что и на cherehapa.ru. Массив отсортирован по убыванию matchRating
продукта.
Массив символьных кодов ассистансов, присутствующих в результатах расчета. См. https://api.cherehapa.ru/v2/assistance
"assistances": [
"best",
"europ",
"gva",
"class",
"remed",
"apc"
],
При сборе предварительных сведений об условиях страхования, страховая сумма по медицинскому страхованию у пользователя не спрашивается, однако от этого параметра достаточно сильно зависит выдача результатов. В зависимости от направления и текущего курса (по законодательству траховая сумма не может быть меньше 2 млн. руб.) количество страховых компаний в выдаче может сильно варироваться. Если выбранная по-умолчанию страховая сумма слишком маленькая, то компаний может быть слишком много, что отпугнет пользователя. Выбор слишком большой страховой суммы может создать ощущение навязывания более дорогих продуктов. Поэтому мы делаем предварительный расчет со всеми доступными страховыми суммами по медицинскому страхованию и выбираем минимальную страховую сумму, при которой количество страховых компаний выше заданного порога (сейчас - 6).
Этот элемент появляется в выдаче только в том случае, если в запросе присутствует указание на необходимость проведения предварительного расчета: preCalc[]=medicine
, при этом параметр service[medicine]=...
можно не указывать, он будет выбран автоматически.
"preCalc": {
"serviceCode": [ //коды услуг, по которым проводятся предварительные расчеты (medicine)
"medicine"
],
"serviceValues": [ //перечень доступных страховых сумм
"30000",
"35000",
"40000",
"50000",
"100000"
],
"companiesCount": { //количество страховых компаний в результатах расчета по каждой страховой сумме
"30000": 3,
"35000": 5,
"40000": 4,
"50000": 8,
"100000": 8
},
"serviceValue": "50000" //выбранная сумма медицинского страхования
}
Исходный запрос на расчет с некоторыми дополнительными полями. Примечание - если в запросе возраст туриста передается числом, то в некоторых случаях это может привести в неточностях к расчетах, т.к. при указании точной даты рождения может быть применен возрастной коэффициент (для его применения разные страховые компании могут использовать возраст на дату покупки, возраст на дату начала действия страхового полиса, возраст на дату окончания действия страхового полиса, возраст на бОльшую часть поездки). Расхождения встречаются редко, но если турист отмечает День Рождения в поездки, то возможны.
"request": {
"dateStart": "10.12.2017", //дата начала поездки
"dateEnd": "09.12.2018", //дата окончания поездки
"insuredDays": 365, //срок действия страхового полиса (в днях)
"currency": "EUR", //валюта страхования
"currencyRate": { //курсы валют на дату расчета
"USD": "59.6325",
"EUR": "70.3604"
},
"country": [ //символьные коды выбранных стран
"thailand"
],
"service": { //символьные коды и выбранные страховые суммы для страховых услуг (по услугам типа вкл/выкл - 0/1)
"medicine": 50000,
"urgentStomatology": 0
},
"tourist": [ //данные о туристах (в расчетах кроме возраста/даты рождения ничего не нужно)
{
"age": 24, //возраст на дату покупки страхового полиса
"endAge": 24, //возраст на дату окончания действия страхового полиса
"beginAge": 24, //возраст на дату начала действия страхового полиса
"longestAge": 24 //возраст на бОльшую часть поездки (т.е. если 6/10 дней туристу было 24 года и 4/10 - 25, то тут будет 24)
},
{
"age": 43,
"endAge": 43,
"beginAge": 43,
"longestAge": 43
}
],
"sport": [ //массив кодов выбранных видов спорта
"boxing"
],
"filterCompanies": [ //массив страховых компаний, по которым отфильтровать выдачу
...
{
"id": "23", //числовой код страховой компании
"code": "alfa", //символьный код страховой компании
"name": "АльфаСтрахование" //название страховой компании
},
...
]
}
Справочные данные по значениям полей можно получить из справочных методов API:
- Список стран: https://api.cherehapa.ru/v2/country
- Список групп стран: https://api.cherehapa.ru/v2/countryGroup
- Список видов спорта: https://api.cherehapa.ru/v2/sport
- Список услуг: https://api.cherehapa.ru/v2/service
- Список ассистансов: https://api.cherehapa.ru/v2/assistance