Интеграция со СБИС

Получить список точек продаж по API

Получить список точек продаж по API

Запрос возвращает информацию о точках продаж. Чтобы запрос корректно отработал, на точке продаж должно быть настроено рабочее место с фискальным регистратором или виртуальной ККТ.

Перед получением точек продаж выполните сервисную авторизацию и в заголовке запроса передайте полученный token.

Метод запроса: GET

Адрес запроса: https://api.sbis.ru/retail/point/list?

Структура запроса

Пример в формате *.php
Пример запроса в формате *.py

В качестве примера используется функция «cURL».

<?php
$ch = curl_init();
curl_setopt_array($ch, array(
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_FOLLOWLOCATION => false,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_URL => 'https://api.sbis.ru/retail/point/list?product=restaurant&withPhones=true&withPrices=true&withSchedule=true&page=0&pageSize=10',
    CURLOPT_HEADER => 0,
    CURLOPT_HTTPHEADER =>  array(
        'Content-type: charset=utf-8',
        'X-SBISAccessToken: WJbMyxUZ1JpSmshaFlTQyEpSGpydVlUIyFqXVtaZyloUGxtNW8vPGdOKVMsWWpnJSg7a3dSaWdeTDsybExfTzIwMjAtMTAtMTMgMDk6MTM6MjEuODc3OTkz'
        )
));
$response = curl_exec($ch);
curl_close($ch);
?>

В качестве примера используется библиотека «Requests».

import requests
parameters = {
    'withPhones': 'true',
    'withPrices': 'true'
}
url = 'https://api.sbis.ru/retail/point/list?'  
headers = {
"X-SBISAccessToken": "MlU3cjkmREE4elU5NihQKmglfFB0N1dqNH43W3BGPiVCYiZnZ21GUzlpLU1ERVFII2MmZUA4bG98N1ddOClBKjIwMjAtMTAtMTMgMTI6MDQ6MTMuODkzNjA4"
}  
response = requests.get(url, params=parameters, headers=headers)
print(response.text)

ПараметрТипОписание
pointId StringИдентификатор точки продаж.
productStringНазвание продукта точки продаж.
Продукты
withPhonesbooleanФлаг передачи всех или одного номера телефона по точке продаж. По умолчанию «false»
withPricesbooleanФлаг передачи идентификаторов всех прайсов по точке продаж. По умолчанию «false»
withSchedulebooleanФлаг передачи подробного режима работы точки продаж. По умолчанию «false»
pageintegerНомер страницы.
pageSizeintegerРазмер страницы. Возможные значения от «0» до «500»

Структура ответа

{
  "salesPoints": [
    {
      "id": 0,
      "name": "string",
      "address": "string",
      "locality": "string",
      "image": "string",
      "defaultPriceList": 0,
      "phone": "string",
      "phones": [
        "string"
      ],
      "worktime": {
        "start": "string",
        "stop": "string",
        "workdays": [
          0
        ],
        "schedule": {
          "mainSchedule": [
            {
              "daysOfTheWeek": [
                0
              ],
              "workStartTime": 0,
              "workEndTime": 0,
              "breakStartTime": 0,
              "breakEndTime": 0
            }
          ],
          "exceptionSchedule": [
            {
              "exceptionIntervalDates": [
                "2020-08-26"
              ],
              "workStartTime": 0,
              "workEndTime": 0,
              "breakStartTime": 0,
              "breakEndTime": 0
            }
          ]
        }
      },
      "latitude": "string",
      "longitude": "string",
      "product": "restaurant",
      "prices": [
        0
      ],
      "halls": [
        {
          "id": 0,
          "name": "string",
          "plan": {
            "id": 0,
            "name": "string",
            "active": true,
            "background": {
              "position": "string",
              "repeat": "string",
              "size": 0,
              "url": "string"
            },
            "relation": {
              "left": 0,
              "top": 0,
              "right": 0,
              "bottom": 0
            },
            "items": [
              {
                "id": 0,
                "name": "string",
                "position": {
                  "x": 0,
                  "y": 0,
                  "z": 0
                },
                "booking": {
                  "enabled": false,
                  "busy": false,
                  "capacity": 0,
                  "endTime": "string"
                }
              }
            ]
          }
        }
      ]
    }
  ],
  "outcome": {
    "hasMore": false
  }
}

Имя поляТипОписание
salesPointsarray[{...}]Описание точки продажи
outcomearray[string]Флаг наличия записей на следующей странице
Структура «salesPoints»
addressstringФактический адрес
defaultPriceListIntegerПрайс по умолчанию
hallsarray[{...}]Список залов и столиков
idIntegerИдентификатор точки продаж, который будет передаваться в другие запросы как параметр «pointId»
imagestringКартинка для точки продаж
latitudestringКоординаты по широте
localitystringГород
longitudestringКоординаты по долготе
namestringКоммерческое название
phonestringПервый номер телефона в списке
phones array[string]Список телефонов
prices array[integer]Список идентификаторов прайс-листов
worktimearray[string]Режим работы
Структура «halls»
id IntegerИдентификатор зала, который будет передаваться в другие запросы как параметр «hallid»
namestringНазвание зала
planstringСхема зала
Структура «plan»
idintegerСхема зала
namestring
activeboolean
background array[{...}]Настройки фонового изображения
relation array[{...}]Координаты относительно начальной точки экрана
itemsarray[{...}]Описание объектов схемы зала
Структура «background»
positionstringНастройки фонового изображения
repeatstring
sizeinteger
urlstring
Структура «relation »
leftintegerКоординаты относительно начальной точки экрана
topinteger
rightinteger
bottominteger
Структура «Items»
idintegerОписание объектов схемы зала
kindinteger
namestring
positionarray[{...}]Координаты объекта схемы зала
bookingarray[{...}]Возможность брони объекта
Структура «position»
x integerКоординаты объекта схемы зала
y integer
z integer
Структура «booking»
enabled booleanВозможность брони объекта
busy boolean
busy boolean
capacity integer
endTime string
Структура «worktime»
startstringВремя режима работы
stopstring
workdaysarray[integer]Рабочие дни
Структура «workdays»
schedulearray[{...}]Расписание
Структура «schedule»
mainSchedulearray[{...}]Основное расписание
exceptionSchedulearray[{...}]Исключения из расписания
Структура «mainSchedule»
daysOfTheWeekarray[integer]Время работы в течении дня
workStartTimeinteger
workEndTimeinteger
breakStartTimeinteger
breakEndTimeinteger
Структура «exceptionSchedule »
exceptionIntervalDatesintegerДни, исключенные из рабочего расписания
workStartTimeintegerИнтервал времени, исключенный из рабочего расписания
workEndTimeinteger
Структура «outcome»
hasMorebooleanФлаг наличия записей на следующей странице

Пример

{
    "salesPoints": [
        
        {
            "address": "г. Ярославль, ул. Чкалова, д. 55, к. ФАКТ",
            "defaultPriceList": null,
            "halls": [],
            "id": 140,
            "image": "/img?params=eyJPYmplY3RUeXBlIjogInBvaW50IiwgIk9iamVjdElkIjogMTQwLCAiUGhvdG9VUkwiOiAiaHR0cDovL3N0b3JhZ2Uuc2Jpcy5ydS9hcGkvdjEvcmV0YWlsX2ZpbGVzLzJiZmQ1ZWEzLThkODgtNGE5MC05ZDkxLTQ0ODA1NDZlODIzMT9obWFjPTBlMDI1YzU2ZmVkOWE0YmY4ZDI2N2VmZWM3OTAwMWJmYzY5NDU0MTUmbW9kZT13cml0ZSIsICJQaG90b0lkIjogbnVsbCwgIlNpemUiOiBudWxsLCAiQWRkaXRpb25hbFBhcmFtcyI6IG51bGx9",
            "latitude": "57.63794",
            "locality": "Ярославль",
            "longitude": "39.84047",
            "name": "Магазин \"У дома\"",
            "phone": "3-33-33",
            "phones": [
                "3-33-33",
                "2222-22-22",
                "1111-11-11"
            ],
            "prices": [
                33,
                11,
                15,
                10,
                9
            ],
            "product": [
                "retail",
                "delivery"
            ],
            "worktime": {
                "schedule": {
                    "exceptionSchedule": [
                        {
                            "breakEndTime": null,
                            "breakStartTime": null,
                            "exceptionIntervalDates": [
                                "2020-08-24",
                                "2020-08-28"
                            ],
                            "workEndTime": 0,
                            "workStartTime": 0
                        }
                    ],
                    "mainSchedule": [
                        {
                            "breakEndTime": 840,
                            "breakStartTime": 780,
                            "daysOfTheWeek": [
                                1,
                                1,
                                1,
                                1,
                                1,
                                1,
                                1
                            ],
                            "workEndTime": 1080,
                            "workStartTime": 540
                        }
                    ]
                },
                "start": "09:00:00",
                "stop": "18:00:00",
                "workdays": [
                    1,
                    1,
                    1,
                    1,
                    1,
                    1,
                    1
                ]
            }
        },
    ],
    "outcome": {
        "hasMore": false
    }
}
Нашли неточность? Выделите текст с ошибкой и нажмите ctrl + enter.