Присоединяйтесь!
  1. Saby
  2. База знаний
  3. Электронный документооборот
  4. API ЭДО
  5. Структура данных

Структура данных API-интерфейса

Структура данных API-интерфейса

Для обмена данными программный интерфейс Saby API использует формат JSON. Обмен с online.sbis.ru происходит с помощью HTTP-запросов/ответов. Серверы работают в часовом поясе UTC+3 (Москва). Все даты и время в ответах системы указаны в московском времени.

  • POST — запросы на выполнение команд;
  • GET — запросы для получения содержимого указанного ресурса, данных вложений или электронных подписей (ЭП).

Заголовок запроса

В заголовке запроса обязательно указывается:

  • адрес сервера:
    1. для команд аутентификацииhttps://online.sbis.ru/auth/service/;
    2. для прочих командhttps://online.sbis.ru/service/?srv=1 HTTP/1.1;
  • идентификатор сессии — в поле X-SBISSessionID;
  • кодировка символов — в поле Content-Type:
    1. application/json-rpc;charset=utf-8 — рекомендуем utf-8;
    2. application/json-rpc;charset=windows-1251 — windows-1251;
  • размер запроса в байтах — в поле Content-Length;
  • название и версия системы, с которой настроена интеграция — в поле User-Agent.

Объект запроса

Объект запроса содержит:

  • значение и версию спецификации JSON-RPC — «jsonrpc»:«2.0»;
  • параметр «method» с названием команды;
  • параметр «params» с объектом параметров команды;
  • параметр «id» со строковым или целочисленным значением.

Объект ответа

В ответ на запрос с сервера возвращается JSON-структура:

  • значение и версия спецификации JSON-RPC — «jsonrpc»:«2.0»;
  • параметр «id» со значением из объекта запроса;
  • значение объекта «result», содержащее ответ на команду.

Если произошла ошибка, в ответе на запрос вернется «error».

Объект ошибки

Если вернулась ошибка, в объекте ответа в поле «error» будут указаны:

  • «code» — код ошибки;
  • «message» — текст ошибки;
  • «details» — подробное описание;
  • «data» — тип ошибки.

Пример POST-запроса

Пример ответа (упрощенный)

Пример GET-запроса для получения содержимого из вложения

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

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

Нашли неточность? Выделите текст с ошибкой и нажмите ctrl + enter.
Продолжая пользоваться сайтом, вы даете согласие на обработку персональных данных. Если вы не согласны, покиньте сайт.