Найти заказы исполнителя и получить их детали

Статья обновлена November 12, 2026

Стенд по умолчанию — test. Только чтение. Порядок работы для агента.

Используйте сценарий, чтобы найти доступные заказы по условиям пользователя или получить сведения по известным идентификаторам. Для последовательного чтения изменений откройте Получать изменения заказов исполнителя.

Перед началом

Нужен действующий токен с ролью исполнителя и правами, указанными в карточках методов. Идентификаторы заказов можно получить от пользователя, из предыдущего поиска или из ленты изменений. Храните токен, реальные запросы и ответы в локальном клиенте.

Если пользователь указал организацию исполнителя, уточните, нужны ли назначенные ей заказы или все заказы, которые ей видны.

  • Для заказов, назначенных организации, передайте её идентификатор в data.filter.executorIds запроса поиска. Фильтр относится к победителям торгов. Если ни одна указанная организация недоступна, поиск может сохранить исходную область доступа токена. Назначение проверяйте по возвращённым карточкам.
  • Для всех заказов, видимых одной организации, используйте клиент с подтверждённым правом чтения заказов только для этой организации. Если область доступа клиента неизвестна или включает другие организации, остановитесь и сообщите, что не можете подтвердить выдачу для выбранной организации.

Порядок вызовов

Методы поиска и деталей возвращают JSON. Если клиент передал байты, разберите ответ перед чтением data.

  1. Если идентификаторы заказов уже известны, перейдите сразу к получению деталей.
  2. Сопоставьте условия пользователя с фильтрами из POST /api/orders/v0/transferOrder/getOrderIdsForExecutor, которые влияют на выдачу. Карточка также описывает область организаций, форматы, сортировку и лимиты.
  3. Если нужен поиск по адресу или месту, а проверенных координат нет, вызовите POST /api/geocoder/v2. При неоднозначном результате уточните место. Передайте выбранные координаты и согласованный с пользователем радиус в фильтр заказов.
  4. Вызовите метод поиска из второго шага и прочитайте data.orderIds. Если поле отсутствует или не является массивом, остановитесь и проверьте ответ. При data.orderIds: [] сообщите, что в ответе нет совпадений, и завершите поиск без запроса деталей. Пустой список сам по себе не подтверждает доступ к выбранной организации.
  5. Вызовите POST /api/orders/v0/transferOrder/getFlatForExecutor, только если известен хотя бы один нужный непустой идентификатор. Уберите повторы и передайте выбранные идентификаторы в data.exactOrderIds.
  6. Используйте карточки с data.orders[].id из запроса. Для заказов, назначенных одной организации, сверьте data.orders[].executor.id каждой такой карточки с идентификатором выбранной организации. Если поле отсутствует или отличается, остановитесь и сообщите, что область результата не удалось подтвердить. Сведения о заказах в таком случае оставьте в клиенте.
  7. Оставьте полную карточку в клиенте. Сообщите только запрошенные сведения, которые можно раскрыть по карточке метода и правилам работы с чувствительными данными. Если в ответе нет нужного заказа, сообщите об этом.

Если запрос не дал ожидаемого результата

  • Если API отклонил фильтр или он не влияет на выдачу, сверьте его с карточкой метода и исправьте запрос.
  • При ошибке авторизации проверьте доступ к API. Сохраните исходную область организаций.
  • Если геокодер не нашёл подходящего адреса или вернул несколько вариантов, уточните место у пользователя.
  • Повторяйте только после временных ошибок, перечисленных в карточке соответствующего метода.