Расчет - Базовые понятия
В ПКАСКО существует 2 типа расчета:
- Базовый или общий - всегда идет по фиксированному набору параметров и использует справочники ПКАСКО
- Уточняющий - набор параметров зависит от конкретного калькулятора, оперирует справониками конкретного калькулятора
Базовый расчет
Первым расчетом всегда должен идти базовый. В ответе на базовый расчет каждый калькулятор отдает набор своих установленные данных и результат расчета. Также калькулятор может вернуть сообщение об ошибке расчета.
При базовом расчете подхватываются все необходимые настройки аккаунта для конкретного калькулятора.
Базовый расчет происходит по всем компаниям, которые включены в настройках аккаунта ПКАСКО.
Если Вам необхоимо сделать расчет только по некоторым компаниям из вашего аккаунта, то к адресу запроса нужно добавить параметр codes и перечислить нужные коды калькуляторов через запятую.
ЗАПРОС:
POST https://pkasko.com/kasko/calc?api=1&codes=RESOWebservice,Ingosstrah
ОПИСАНИЕ
api: (int) - вернуть уникальный идентификатор расчета
codes: (string) - коды калькуляторов через запятую
timeout: (int) - кол-во секунд, выделенное на расчет (калькуляторы, не успевшие произвести расчет, будут проигнорированы)
Ответ на базовый расчет представляет собой массив результатов расчета, каждый элемент которого - это результат одного калькулятора.
ОТВЕТ
[
// успешный расчет
{
"info": { // информация о калькуляторе и дополнительные данные
"code": "RenessansWebservice" // код калькулятора (обязательно всегда в ответе)
},
"data": { // набор установленные данных этого калькулятора (для уточняющего расчета)
...,
"orig": { ... }, // оригинальные данные расчета
"meta": { ... }, // мета-информация по расчету
"hidden": { ... }, // служебная информация
"source": { ... } // копия первого расчета
...
},
"result": { ... }, // результат расчета (содержимое зависит от вида страхования)
"warnings": [ ... ] // предупреждения (индексный массив)
},
// расчет с ошибкой
{
"info": {
"code": "RESOWebservice"
},
"error": {
"message": "Сообщение об ошибке в расчете"
}
}
]
Блок info - унифицированный ответ от калькулятора по определённым значениям.
"info": {
"code": "RenessansWebservice", // код калькулятора
}
Блок data - данные расчета нужного калькулятора.
"data": {
"carNew": "Нет",
"owner": "Физическое лицо",
"explDate": "2018-05-08",
"multidrive": "Ограниченный список",
"orig": { ... },
"meta": { ... },
"hidden": { ... },
"source": { ... },
...
}
Уточняющий расчет
Если необходимо уточнить базовый расчет по каким-то конкретным параметрам калькулятора, то в этом случае делается уточняющих расчет по данным, которые были получение из базового. В ответе на уточняющий запрос приходит весь набор установленных данных, результат расчета, справочники значений, разделы и порядок их расположения. Также калькулятор может вернуть сообщение об ошибке расчета.
Структура ответа на уточняющий запрос:
{
"data": { ... },
"result": { ... },
"values": { ... }, // справочники значений (все возможные варианты значений)
"options": { ... }, // список опций и их типы
"order": [ ... ], // сортировка разделов и опций в них относительно друг-друга
"warnings": [ ... ]
}
Блок values - справочники значений опций (все возможные варианты значений). Ключ - имя опции, значение - варианты (индексный массив). Для полей с типом "input" в значении всегда будет массив с одним элементом
"values": {
"carNew": [
"Нет",
"Да"
],
"owner": [
"Физическое лицо",
"Юридическое лицо"
],
"explDate": [
"2018-05-08"
],
"multidrive": [
"Ограниченный список",
"С ограничением минимального стажа и возраста",
"Без ограничений"
],
"credit": [
"Нет",
"ВТБ 24",
"Сбербанк",
"Другой"
],
"withoutCertificatesGlass": [
"Отсутствует",
"1 раз",
"2 раза",
"Без ограничений"
],
"withoutCertificatesBody": [
"Отсутствует",
"1 раз",
"2 раза",
"Без ограничений"
],
"franchise": [
null
]
}
Блок options - список разделов, находящихся в них опций, названия опций и типы. Данный блок сделан для интерфейсов, чтобы отображать параметры расчеты сгруппированные по разделам.
"options": {
"Транспортное средство": {
"carNew": {
"title": "Новое ТС",
"type": "select"
},
"explDate": {
"title": "Дата начала эксплуатации",
"type": "input"
}
},
"Базовые параметры": {
"owner": {
"title": "Страхователь",
"type": "select"
},
"credit": {
"title": "Кредитное ТС",
"type": "select"
}
},
"Условия страхования": {
"withoutCertificatesBody": {
"title": "Выплата без справок (кузов)",
"type": "select"
},
"withoutCertificatesGlass": {
"title": "Выплата без справок (стеклянные элементы)",
"type": "select"
}
},
"Лица, допущенные к управлению": {
"multidrive": {
"title": "Мультидрайв",
"type": "select"
}
},
"Франшиза": {
"franchise": {
"title": "Франшиза",
"type": "input"
}
}
}
Блок order - сортировка параметров внутри разделов. Данный блок сделан для интерфейсов, чтобы в правильном порядке разместить разделы и опции.
"order": [
{
"group": "Транспортное средство",
"options": [
"carNew",
"explDate"
]
},
{
"group": "Базовые параметры",
"options": [
"owner",
"credit"
]
},
{
"group": "Условия страхования",
"options": [
"withoutCertificatesBody",
"withoutCertificatesGlass"
]
},
{
"group": "Лица, допущенные к управлению",
"options": [
"multidrive"
]
}
{
"group": "Франшиза",
"options": [
"franchise"
]
}
]
Обработка ошибок
В случае ошибки в расчете формат ответа будет выглядеть следующим образом
{
"info": {
"code": "RESOWebservice"
},
"error": {
"message": "С указанными данными ТС не страхуется или требуется согласование"
}
}
