Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Auth API — это протокол авторизации клиента, который использует сервер чата для авторизации клиента во внешней системе (CRM/ДБО).

Table of Contents

Протокол авторизации

  1. Получение токена. Браузер или мобильное приложение получают или генерируют токен клиента для авторизации в чате. Токен — это любая строка. Например, это может быть токен текущей сессии.
  2. Передача токена в SDK. При инициализации SDK чата (виджета, мобильных SDK) браузер или мобильное приложение передает в него токен клиента.
  3. Запрос авторизации по токену. SDK чата отправляет запрос на авторизацию клиента на сервер чата.
  4. Запрос карточки клиента. Сервер чата получает токен и отправляет этот токен в сервис авторизации для авторизации клиента и получение его карточки. Сервисом авторизации может выступать CRM, ДБО и т.д.
  5. Возврат карточки клиента. Сервис авторизации проверяет токен клиента и возвращает карточку клиента или ошибку.
  6. Сохранение информации о клиенте. Сервер чата сохраняет карточку клиента локально.
  7. Возврат сессии авторизации в чате. Сервер чата создает сессию авторизации клиента в чате и возвращает ее в SDK.
  8. Авторизация клиента в SDK завершена.

Запрос

Все запросы отправляются с помощью HTTP GET запросов к REST-сервису.

...

Параметр

Обязательность

Описание

token

да

Токен клиента

Ответ

Response

В случае успешного ответа сервер возвращает статус 200 с ответом в формате application/json.

Поле

Тип

Обязательное

Комментарий

clientAuth API 1.1ClientнетИнформация о клиенте
companyListList<Auth API 1.1Company>нетСписок организаций, к которым относится текущий клиент.




errorCodeStringнетКод ошибки
errorTextStringнетТекст ошибки

Client

Поле

Тип

Обязательное

Комментарий

idLongдаИдентификатор клиента в CRM
nameStringда

ФИО клиента

surnameStringдаФамилия
firstnameStringдаИмя
patronymicStringдаОтчество
typeLongдаКод типа клиента
enabledBooleanдаОбслуживание клиента разрешено
birthDateDateнетДата рождения
extRefStringнетИдентификатор клиента в АБС
cardRefStringнетИдентификатор клиента в карточный системе
bankBranchAuth API 1.1BranchнетИнформация о подразделении клиента
crmURLStringнетПолная ссылка, по которой клиента можно открыть в CRM.
innStringнетИНН клиента.
shortNameStringнетКраткое наименование клиента.




fieldsMap<String, String>нет

Deprecated, нужно использовать fieldList

Поля с дополнительной информацией о клиенте в виде название поле → значение.

fieldListList<Auth API 1.1Field>нетПоля с дополнительной информацией о клиенте, при отображении в интерфейсе оператора учитывается порядок полей.

Branch

Информация об отделении банка.

Поле

Тип

Обязательное

Комментарий

idLongнетИдентификатор подразделения банка во внешней системе
extRefStringнетИдентификатор в АБС подразделения банка
bikStringнетБИК подразделения банка
nameStringнетНаименование подразделения банка

Company

Информация об организации.

Поле

Тип

Обязательное

Комментарий

idLongдаИдентификатор организации во внешней системе
nameStringнетНаименование организации
typeLongнетКод типа организации
enabledBooleanнетОбслуживание организации разрешено
extRefStringнетКод организации в АБС
innString
ИНН
kppString
КПП
residentBoolean
Признак "Нерезидент"
phoneString
Телефоны
shortNameString
Сокращенное наименование
internationalNameString
Международное наименование
ogrnString
ОГРН
ogrnDateDate
Дата ОГРН
internationalAddressString

Field

Поле с дополнительной информацией о клиенте.

Поле

Тип

Обязательное

Комментарий

nameStringдаНазвание поля, которое будет отображаться в интерфейсе оператора
valueStringдаЗначение поля

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

Успешный ответ

В случае успешного ответа сервер возвращает статус 200 с ответом в формате application/json:

...

Code Block
languagejs
{
    "client": {
        "id": "1064775",
        "name": "Давыдов Юрий Викторович",
        "surname": "Давыдов",
        "firstname": "Юрий",
        "patronymic": "Викторович",
        "shortName": "Юрий",
        "birthDate": "1976-03-31",
        "type": "0",
        "enabled": "true",
        "extRef": "1",
        "bankBranch": {
            "id": "720987",
            "extRef": "1",
            "bik": "042809888",
            "name": "ЗАО КБ \"ГЛОБАЛЬНЫЙ РАСЧЕТНЫЙ ЦЕНТР\""
        },
        "fieldList": [
            {
                "name": "ИНН",
                "value": "1234567890"
            },
            {
                "name": "Город",
                "value": "Москва"
            }
        ]
    }
}

Успешный ответ со списком компаний

Code Block
{
    "client": {
        "id": "124625",
        "name": "Царев Алексей Юрьевич",
        "surname": "Царев",
        "firstname": "Алексей",
        "patronymic": "Юрьевич",
        "birthDate": "1973-09-02",
        "type": "2",
        "enabled": "false"
    },
    "companyList": [
        {
            "id": "225760",
            "name": "ООО УралСтройМаш",
            "extRef": "561",
            "inn": "7701028744",
            "kpp": "770001001",
            "resident": "true",
            "phone": "+79093342334",
            "shortName": "ОАО ЛИГА",
            "internationalName": "LIGA JSC",
            "ogrn": "1057703026633",
            "ogrnDate": "2005-02-11"
        },
        {
            "id": "124612",
            "name": "ОАО Капитолий",
            "extRef": "560",
            "inn": "7701058541",
            "kpp": "770001001",
            "resident": "true",
            "phone": "123-34-45",
            "shortName": "ОАО Капитолий",
            "internationalName": "CAPITOLIY JSC",
            "ogrn": "2801283419468",
            "internationalAddress": "",
            "regAddress": ""
        }
    ]
}

Ответ с ошибкой

В случае ошибки сервер возвращает статус не 200, а также может дополнительно возвращать описание ошибки в формате application/json в теле ответа:

Code Block
languagejs
{
    "errorCode": "1001",
    "errorText": "Client not found"
}

Изменения

Версия 1.1

  • В типе Client добавлено поле shortName.
  • В типе Client добавлено поле fieldList.
  • Добавлен тип Field.

...