СТРУКТУРЫ ДАННЫХ API-ИНТЕРФЕЙСА

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

Программный интерфейс СБИС (API) использует формат JSON-RPC для обмена данными с сервером online.sbis.ru посредством HTTP-запросов/ответов. 

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

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

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

  • адрес сервера:
  • идентификатор сессии X-SBISSessionID
  • кодировка символов в поле Content-Type:
    • «utf-8»: application/json-rpc;charset=utf-8 — рекомендуемая
    • либо «windows-1251»: application/json-rpc;charset=windows-1251
  • данные о вашей информационной системе (в заголовке "User-Agent"): название и ее версия

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

Объект запроса должен содержать:

  • значение "jsonrpc":"2.0", указывающее на версию спецификации JSON-RPC;

  • параметр "method" с названием команды;

  • параметр "params" с объектом передаваемых параметров команды;

  • параметр "id" с целочисленным значением.

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

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

  • значение "jsonrpc":"2.0" указывающее на версию спецификации JSON-RPC;
  • параметр "id" со значением, равным одноимённому из объекта запроса;
  • значение объекта "result" где упаковывается ответ на команду.

Если произошла ошибка, в ответе на запрос должно появиться значение "error"

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

В случае ошибки в объекте ответа в поле "error" содержится значения:

  • "code" — целочисленный код ошибки;
  • "message" — текстовое сообщение об ошибке;
  • "details" — детальное сообщение с подробным описанием причины проблемы;
  • "data"  информации о типе ошибки.

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

POST https://online.sbis.ru/service/?srv=1 HTTP/1.1
Content-Type: application/json-rpc;charset=utf-8
Accept: */*, application/json-rpc
User-Agent: SBISEDOSDK2/1.1.4
X-SBISSessionID: 0000ea78-0000ea79-00ba-d3b85272bc0c4842
{
	"jsonrpc": "2.0",
	"method": "СБИС.ПрочитатьДокумент",
	"params": {
		"Документ": {
			"Идентификатор": "e1756445-f1be-4562-b5cf-4549968b5f4f"
		}
	},
	"id": 0
}

Скачать пример

Пример ответа (упрощенный для наглядности)

{
	"jsonrpc": "2.0",
	"result": {
		...
	}
}

Скачать пример

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

GET https://online.sbis.ru/service/?method=%D0%92%D0%B5%D1%80%D1%81%D0%B
8%D1%8F%D0%92%D0%BD%D0%B5%D1%88%D0%BD%D0%B5%D0%B3%D0%BE%D0%94%D0%BE%D0%B
A%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0.%D0%A1%D0%BE%D1%85%D1%80%D0%B0%D0%
BD%D0%B8%D1%82%D1%8C%D0%9E%D0%B4%D0%B8%D0%BD%D0%A4%D0%B0%D0%B9%D0%BB&par
ams=eyLQmNC00J4iOjMyMX0=&id=0 HTTP/1.1
Content-Type: application/json-rpc;charset=windows-1251
Accept: */*, application/json-rpc
X-SBISSessionID: 0000ea78-0000ea79-00ce-dc4d2645fe204752

Скачать пример

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

HTTP/1.1 200 OK
Content-Type: application/octet-stream; charset=windows-1251
Content-Length: 1555
Content-Range: bytes 0-1554/1555
X-SBISSessionID: 0000ea78-0000ea79-00ce-dc4d2645fe204752
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Accept, Content-type
Content-Disposition: attachment; filename="ON_SFAKT.XML"
Cache-Control: must-revalidate, max-age=0
<?xml version="1.0" encoding="WINDOWS-1251"?>
 <Файл ВерсПрог="0.1 Beta" ВерсФорм="5.01" ИдФайл="ON_SFAKT_9999999998000000001_9999999998000000001
_3333333330000000001_20120823_251a931a-0ce4-4ae6-9d5c-7c5e44cfd7d9">
<Документ КНД="1115101">
<Подписант ПрПодп="1">
<ФИО Имя="Электронных" Отчество="Документов" Фамилия="Отправитель"/>
</Подписант>
<СвСчФакт ДатаПРС="00.00.0000" ДатаСЧ="18.01.2011" НомерПРС=" " НомерСЧ="00000013">
<СведПокуп>
<РегСвед>
<СведЮЛ ИННЮЛ="9999999998" КПП="000000001" НаимОрг="ООО Получатель"/>
</РегСвед>
<АдресСвед>
<АдрПокупРФ Город="385002" Дом="ул.Адмирала Грейга" Индекс="" КодРегион="" Корпус="2" 
НаселПункт="Санкт-Петербург г" Район="Россия" Улица="г.Кронштадт"/>
</АдресСвед>
</СведПокуп>
<СведПрод>
<РегСвед>
<СведЮЛ ИННЮЛ="3333333330" КПП="000000001" НаимОрг="ООО Отправитель"/>
</РегСвед>
<АдресСвед>
<АдрПокупРФ Город="Кронштадт г" Дом="1" Индекс="197762" Кварт=" " 
КодРегион="Санкт-Петербург г" Корпус=" " НаселПункт=" " Район=" " Улица="Арсенальный пер"/>
</АдресСвед>
</СведПрод>
</СвСчФакт>
<ТаблСчФакт ОКВ_СФ="810" СтТРУУчНалВс="708.00" СумНДСВс="108.00">
<СведТРУ ЕдИзм_ТРУ="шт" КодПроисх=" " КолТРУ="12.00000" 
НаимТРУ="&quot;Все о жизни&quot; электронная книга" НалСтав="18.00" 
НомерТД=" " ОКЕИ_ТРУ="796" СтТРУБезНДС="600.00" СтТРУУчНал="708.00"
СтрПроисх=" " СумАкц="0.00" СумНДС="108.00" ЦенаТРУ="0.00"/>
</ТаблСчФакт>
</Документ>
</Файл>

Скачать пример

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

{
 "jsonrpc": "2.0",
 "error": {
     "code": -32000,
     "message": "Сервис оператора временно недоступен.",
     "details": "Ошибка определения АЯ: Сервис \"http://operator-online.sbis.ru/data/service/" 
временно недоступен. Повторите попытку позже.",
     "type": "error",
     "data": {
        "classid": "{00000000-0000-0000-0000-1aa000050000}",
        "addinfo": null
     }
 },
 "id": 0
}

Скачать пример

4
0
Оставьте свой отзыв:
ОТПРАВИТЬ