Заездо Developers
Метод API · v1

Получение пользователя

Поиск пользователя Заездо по внешнему идентификатору (например 1С), получение назначенных ролей и их распределения по площадкам. По запросу дополнительно проверяется возможность назначения сотрудника ответственным за визит – наличие у него права работать с определенной площадкой.

GEThttps://app.zaezdo.pro/api/v1/users/{source_id}
Bearer Token Без тела запросаHTTPS
На этой странице

Параметры запроса#

Можно получить полную информацию о правах пользователя или добавить проверку конкретной площадки.

Здесь "AfoninGA" — идентификатор сотрудника в 1С (или внешней системе учёта).

ПараметрОбяз.Описание
source_idstring · pathДаИдентификатор сотрудника в 1С, передаётся в URL; максимум 80 символов.
site_source_idstring · queryНетИдентификатор площадки в 1С, передаётся в query-параметре для проверки права назначения ответственным.

Примеры запроса#

HTTP
GET /api/v1/users/AfoninGA?site_source_id=WH-SEVER HTTP/1.1
Host: app.zaezdo.pro
Authorization: Bearer ВАШ_API_ТОКЕН
Accept: application/json

Успешный ответ и права пользователя#

HTTP 200 · JSON
{
  "source_id": "AfoninGA",
  "full_name": "Анна Соколова",
  "is_active": true,
  "has_account": true,
  "roles": [
    {
      "code": "MANAGER",
      "name": "Менеджер",
      "scope": "SELECTED_SITES",
      "sites": [
        {
          "source_id": "WH-SEVER",
          "name": "Склад Север"
        },
        {
          "source_id": "WH-YUG",
          "name": "Склад Юг"
        }
      ]
    },
    {
      "code": "DISPATCHER",
      "name": "Диспетчер",
      "scope": "ALL_SITES",
      "sites": []
    },
    {
      "code": "CHECKPOINT",
      "name": "Сотрудник КПП / охрана",
      "scope": "SELECTED_SITES",
      "sites": [
        {
          "source_id": "WH-SEVER",
          "name": "Склад Север"
        }
      ]
    }
  ],
  "can_be_responsible_for_site": {
    "site_source_id": "WH-SEVER",
    "allowed": true
  }
}

В обоих режимах метод возвращает данные пользователя и все его роли. Если передан site_source_id, в ответ дополнительно включается can_be_responsible_for_site.

Если site_source_id не передан, ответ содержит все те же данные и роли, но объект can_be_responsible_for_site полностью отсутствует.

Поля ответа

Поле ответаНазначение
source_idИдентификатор сотрудника в 1С, указанный для синхронизации в Заездо.
full_nameФИО сотрудника в Заездо.
is_activeПризнак активности сотрудника (true / false).
has_accountНаличие действующей учётной записи для входа в Заездо.
roles[]Массив назначенных сотруднику ролей.
roles[].code / nameКод роли и её наименование.
roles[].scopeОбласть действия роли: ALL_SITES или SELECTED_SITES.
roles[].sites[]Список площадок, на которых действует роль, если scope = SELECTED_SITES.
can_be_responsible_for_siteНеобязательный результат проверки конкретной площадки: site_source_id, allowed и, при отказе, reason.

Роли и область действия

Роль и доступные ей площадки описываются вместе — это позволяет внешней системе понять фактическое распределение прав.

Значение scopeКак интерпретировать
ALL_SITESРоль действует на всех площадках компании. При этом sites = [] — это не отсутствие доступа.
SELECTED_SITESРоль действует только на площадках из массива sites[].

Поддерживаемые коды ролей:

Код ролиНаименование
CLIENT_ADMINАдминистратор клиента
MANAGERМенеджер
DISPATCHERДиспетчер
CHECKPOINTСотрудник КПП / охрана
WAREHOUSE_OPERATORОператор склада
LOGISTICS_MANAGERРуководитель склада / логистики

Возможность назначения ответственным

Проверка выполняется только при наличии параметра site_source_id. Заездо проверяет одновременно:

  • сотрудник активен (is_active = true);
  • имеет действующую учётную запись (has_account = true);
  • ему назначена роль MANAGER;
  • роль MANAGER действует на указанной активной площадке.

РЕЗУЛЬТАТ УСПЕШНОЙ ПРОВЕРКИ · ФРАГМЕНТ ОТВЕТА

JSON
{
  "can_be_responsible_for_site": {
    "site_source_id": "WH-SEVER",
    "allowed": true
  }
}

ОТКАЗ В НАЗНАЧЕНИИ · ФРАГМЕНТ ОТВЕТА

JSON
{
  "can_be_responsible_for_site": {
    "site_source_id": "WH-SEVER",
    "allowed": false,
    "reason": "MANAGER_NO_SITE_ACCESS"
  }
}

Отказ в назначении не является ошибкой HTTP: метод возвращает 200 OK с данными сотрудника и allowed = false.

Код причиныЧто означает
MANAGER_INACTIVEСотрудник неактивен.
MANAGER_NO_ACCOUNTНет действующей учётной записи.
MANAGER_NOT_MANAGERНет роли менеджера.
MANAGER_NO_SITE_ACCESSНет роли менеджера на указанной площадке.
SITE_INACTIVEПлощадка отключена.

Порядок проверки запроса#

Проверки выполняются по этапам. При ошибке метод возвращает результат текущего этапа и не переходит к следующему.

ЭтапРезультат при ошибке
1. Авторизация401 — нет действующего токена или интеграция отключена. 403 — компания отключена.
2. Проверка параметров422 — source_id или переданный site_source_id некорректен. Все ошибки параметров перечисляются в errors[].
3. Поиск записей404 — по корректным идентификаторам не найден пользователь и/или площадка. Все ненайденные записи перечисляются в errors[].
4. Проверка назначения200 — возвращаются данные пользователя и, если передан site_source_id, результат allowed: true или false.

Без site_source_id поиск площадки и проверка назначения не выполняются. Пустой переданный site_source_id — это некорректный параметр, а не отсутствие параметра.

Если идентификатор пользователя некорректен, а площадка не существует, сначала возвращается 422. Поиск площадки начнётся только после исправления параметров.

Коды и описания ошибок#

HTTP · код / полеТочный текст сообщения
401HTTPUNAUTHORIZEDТребуется действующий Bearer-токен интеграции.
403HTTPTENANT_INACTIVEКомпания отключена в Заездо.
404HTTPRESOURCE_NOT_FOUNDНе найдены записи по переданным идентификаторам.
422HTTPVALIDATION_ERRORОшибка проверки параметров запроса.
429HTTPRATE_LIMITEDПревышено допустимое количество запросов. Повторите запрос позже.
500HTTPINTERNAL_ERRORВнутренняя ошибка Заездо.
503HTTPSERVICE_UNAVAILABLEСервис Заездо временно недоступен.
404ПолеUSER_NOT_FOUNDsource_idПользователь с указанным source_id не найден.
404ПолеSITE_NOT_FOUNDsite_source_idПлощадка с указанным site_source_id не найдена.
422ПолеINVALID_SOURCE_IDsource_idНекорректный идентификатор сотрудника.
422ПолеINVALID_SITE_SOURCE_IDsite_source_idНекорректный идентификатор площадки.

Для HTTP 404 поиск выполнен, но запись не найдена. Для HTTP 422 поиск ещё не выполнялся: сначала нужно исправить параметры.

Пользователь, у которого не заполнен source_id, не может быть найден по идентификатору из 1С. Неактивный пользователь или отключённая площадка считаются найденными: это не основание для 404.

Формат ошибки и примеры

ПолеКак использовать
codeОбщая категория ошибки для программной обработки.
messageТочный общий текст ошибки.
errors[]Для 404 и 422: все ошибки остановившего этапа. Каждый элемент содержит field, code и message.
request_idИдентификатор запроса. Передайте его поддержке при обращении.

HTTP 404 · НЕ НАЙДЕНЫ ПОЛЬЗОВАТЕЛЬ И ПЛОЩАДКА

JSON
{
  "code": "RESOURCE_NOT_FOUND",
  "message": "Не найдены записи по переданным идентификаторам.",
  "errors": [
    {
      "field": "source_id",
      "code": "USER_NOT_FOUND",
      "message": "Пользователь с указанным source_id не найден."
    },
    {
      "field": "site_source_id",
      "code": "SITE_NOT_FOUND",
      "message": "Площадка с указанным site_source_id не найдена."
    }
  ],
  "request_id": "req-123456"
}

Если не найдена только одна запись, errors[] содержит один элемент. Верхнеуровневый code остаётся RESOURCE_NOT_FOUND.

HTTP 422 · НЕКОРРЕКТНЫ ОБА ИДЕНТИФИКАТОРА

JSON
{
  "code": "VALIDATION_ERROR",
  "message": "Ошибка проверки параметров запроса.",
  "errors": [
    {
      "field": "source_id",
      "code": "INVALID_SOURCE_ID",
      "message": "Некорректный идентификатор сотрудника."
    },
    {
      "field": "site_source_id",
      "code": "INVALID_SITE_SOURCE_ID",
      "message": "Некорректный идентификатор площадки."
    }
  ],
  "request_id": "req-123457"
}

Что делать при получении ответа

Для программной обработки используйте HTTP-статус и поля code, errors[].field, errors[].code. Покажите пользователю все errors[].message; если массива нет — общий message. Не определяйте тип ошибки по тексту сообщения.

ОтветЧто делать интегратору
401 / 403Проверьте токен, активность интеграции и компании. Не повторяйте запрос без устранения причины.
422Исправьте все параметры, перечисленные в errors[], и отправьте запрос повторно.
404Проверьте source_id пользователя и площадки, а также их сопоставление в Заездо. После исправления повторите запрос.
200, allowed: falseЗапрос выполнен. Причина отказа указана в reason; исправьте её до создания визита.
429Выдержите паузу, указанную в заголовке Retry-After.
500 / 503Повторите GET после паузы; при повторяющейся ошибке передайте request_id поддержке.

Проверка users не закрепляет права на будущее. При создании визита Заездо проверяет возможность назначения ответственного повторно.

Использование при создании визита#

Например, в 1С (или в другой внешней системе) у контрагента ответственным менеджером указан пользователь с кодом "AfoninGA". Перед созданием визита можно проверить его права на площадке "WH-SEVER".

ПРОВЕРКА ПОЛЬЗОВАТЕЛЯ И ПЛОЩАДКИ

HTTP
GET /api/v1/users/AfoninGA?site_source_id=WH-SEVER

Если сервер вернул 200 OK и allowed = true, при создании визита передаётся:

ФРАГМЕНТ ЗАПРОСА POST /api/v1/visits

JSON
{
  "responsible_user_source_id": "AfoninGA"
}

Заездо назначает указанного сотрудника ответственным за визит. Если сотрудник не может быть назначен, визит не создаётся.

← К соответствующему шагу «Быстрого старта»

↑ ↓ выбрать · Enter открытьПоиск работает локально