Общие сведения

Для установки настроек интеграции используется метод setup. 

Запрос установки настроек отправляется по адресу  POST {{baseURL}}/integration/setup

В ответ возвращается Location для передачи настроек. Далее нужно выполнить PUT запрос на полученный Location. В ответ возвращается результат передачи настроек.

Запросы выполняются парами POST → PUT. Первый запрос открывает сессию передачи данных с авторизацией. Второй запрос выполняет непосредственную передачу данных. Пары запросов должны выполняться в одном соединении.

Настройки передаются в файле с разметкой JSON.

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

  • type – Строка – тип учетной системы, для определения типа новой учетной системы при заполнении настроек.
    (например "bank")

Поля возможных к передаче для установки настроек, обрабатываемых интерфейсом подсистемы:

  • name – Строка – наименование настройки
  • use_notices – Булево – признак использования оповещений внешней учетной системы при создании/изменении данных в приложении
  • notice_settings – ТаблицаЗначений –  настройки оповещений.
    • url – Строка - адрес отправки оповещений
    • authentication_type - ПеречислениеСсылка.СпособыАутентификации - тип аутентификации (anonymous, basic)
    • login – Строка - логин аутентификации (используется при basic-аутентификации)
    • password – Строка - пароль аутентификации (используется при basic-аутентификации)
    • use_certificate – Булево - признак использования сертификата при установке соединения
    • certificate_name – Строка - имя сертификата (используется, если задано свойство use_certificate)
    • certificate_password – Строка - пароль сертификата (используется, если задано свойство use_certificate);
    • certificate_data – ДвоичныеДанные- двоичные данные сертификата в base64 (используется, если задано свойство use_certificate)
    • use_sign – Булево - признак использования подписи данных
    • sign_key – Строка - ключ подписи, секретное слово, для подписи отправляемых данных. 
      Подпись выполняется с помощью алгоритма HMACSHA-256.

В демо-конфигурации в объекте учетной системы ИнтеграцииСБанками также обрабатываются настройки:

  • id – Строка - БИК(и) банка возможна передача в виде строки или в виде массива
  • dbo_url – Строка - адрес страницы личного кабинета для подписания документов
  • app_title – Строка - устанавливаемый заголовок приложения (может использоваться как часть брендирования приложения)
Пример тела запроса
{
   "type": "bank",
   "name": "Банк Бизнес"
   "id": ["044525555"],
   "dbo_url": "https://example.com/cabinet/main",
   "app_title": "Бухгалтерия 1C (Банк Бизнес)",
   "use_notices": false,
   "notice_settings": {
       "url": "https://example.com/cabinet/notice",
       "authentication_type": "anonymous"
   }
}

Настройки записываются в учетную систему.

Ответ возвращается в формате JSON с полями:

  • general - Структура - основной раздел
    • response - Число - код возврата
    • error – Булево - признак ошибки
    • message – Строка - подробности ошибки (заполняется, если возникла ошибка)
  • result - Структура результат (в данном случае не заполняется)

Это стандартизированный формат ответа, используемый во всех запросах.

Положительный ответ
{
  "general": {
    "response": 10200,
    "error": false,
    "message": ""   
  }
}

Варианты кодов возврата возвращаемых ответов

Код возврата

Это ошибка

Описание

110200
Выполнено
310400ДаОшибка данных. Описание ошибки находится в поле message.
510500ДаВнутренняя ошибка. Описание ошибки находится в поле message.

Примеры ошибок:

Если выполняется настройка без передачи настроек
{
   "general": {
     "response": 10400,
     "error": true,
     "message": "Настройки не заданы."
   } 
}
Если выполняется первоначальная настройка без передачи типа учетной системы
{
   "general": {
     "response": 10400,
     "error": true,
     "message": "Отсутствует свойство 'type'."
   }
}

Добавление своих проверок при установке настроек, реализовано в демо-конфигурации в справочнике ИнтеграцииСБанками:

{
   "general": {
     "response": 10400,
     "error": true,
     "message": "Идентификатор банка отличается от установленного."
   }
}

Пример установки настроек

Отправка настроек выполняется двумя запросами. Первый запрос открывает сессию (передается заголовок IBSession: start) и возвращает Location для загрузки настроек с сессионными Cookie, которые нужно использовать для второго запроса. Второй запрос на адрес полученного Location передает настройки и закрывает сессию (передается заголовок IBSession: finish).

  1. Открытие сессии отправки настроек

    Запрос
    POST https://example.com/a/smtl/1/hs/dt/storage/integration/setup
    Authorization: Basic base64_encode(user:password) или Bearer access_token
    IBSession: start
    Ответ
    200 OK
    Content-Length: 0
    Accept-Ranges: bytes
    Location: https://example.com:443/a/smtl/1/hs/dt/upload/a49dd89633c992e35c718bbaf4ec6603bc4a8c176b0133c44ba35ecafafa313f     
    Set-Cookie: ibsession=5e633e7a-16cb-4262-9adb-1bb5712980f7;Path=/a/smtl/1/;Version=1
  2. Отправка настроек

    Запрос
    PUT <заголовок Location предыдущего ответа>
    Cookie: <заголовок Set-Cookie предыдущего ответа>
    IBSession: finish
          
    { 
     "type": "bank",
     "name": "ПАО Банк"
     "id": ["044525999"],
     "dbo_url": "https://sample-bank.com/my/documents",
     "use_notices": false
    }
    Ответ
    201
    Content-Type: application/json; charset=UTF-8
    Content-Length: 73
    
    {
    "general": {
    "response": 10200,
    "error": false,
    "message": ""
    }
    }