Отклики
Фильтрация откликов (Offers)
Метод предназначен для получения списка откликов исполнителей на объявления компании с применением гибких фильтров и постраничной навигации
Метод: POST URL: https://b2b.selfwork.ru/openapi/v2/organisation/{organisationId}/offers/filter
Общая структура запроса описана в разделе Фильтрация: общая структура.
Доступные фильтры (filters)
| Имя (name) | Тип значения (value) | Пример значения | Описание |
|---|---|---|---|
| ID | array[string] | ["698b08e4535a85cec7d3fa21"] | Фильтрация по конкретным ID откликов (Mongo ObjectId) |
| STATUS | array[string] | ["ACCEPTED", "REJECTED"] | Фильтрация по статусам отклика (см. справочник ниже) |
| ANNOUNCEMENT_ID | array[number] | [809, 810] | Фильтрация по ID объявлений |
| CREATED_AT | диапазон дат | {"from": "2026-02-01T00:00:00.000Z", "to": "2026-02-28T23:59:59.999Z"} | Диапазон дат создания отклика |
| UPDATED_AT | диапазон дат | {"from": "2026-02-01T00:00:00.000Z", "to": "2026-02-28T23:59:59.999Z"} | Диапазон дат последнего изменения отклика |
| INDIVIDUAL_INN | array[string] | ["160285864492"] | Фильтрация по ИНН исполнителей |
| TASK_INVITE_LINK_ID | array[string] | ["550e8400-e29b-41d4-a716-446655440000"] | Фильтрация по ссылкам-приглашениям |
Доступные сортировки
| Поле (field) | Описание |
|---|---|
| STATUS | Статус отклика |
| ANNOUNCEMENT_ID | ID объявления |
| CREATED_AT | Дата создания отклика |
| UPDATED_AT | Дата последнего изменения отклика |
| FULL_NAME | ФИО исполнителя |
Поля, обрабатываемые по query
Текстовый поиск (query) выполняет поиск частичного совпадения по услуге и описанию объявления, на которое был создан отклик.
Доступные статусы откликов (STATUS)
| Статус | Описание |
|---|---|
| APPLIED | Отклик подан, ожидает рассмотрения |
| ACCEPTED | Отклик принят заказчиком |
| REJECTED | Отклик отклонён заказчиком |
Пример запроса
curl --location "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/offers/filter" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ" \
--data '{
"filters": [
{ "name": "STATUS", "value": ["ACCEPTED"] },
{ "name": "ANNOUNCEMENT_ID", "value": [809, 810] }
],
"pagination": { "limit": 10, "lastId": null }
}'
Пример ответа
{
"requestId": "25f4f954-a53d-44f5-8154-f6b5ff4ef7a8",
"result": {
"lastId": "698b08e4535a85cec7d3fa21",
"items": [
{
"id": "698b08e4535a85cec7d3fa21",
"createdAt": "2026-02-10T10:31:00.480Z",
"updatedAt": "2026-02-10T10:31:00.480Z",
"createdBy": "6968d0e58adb5d56f5420178",
"toId": "6942bde29c4ba8df5b14653f",
"announcementId": 809,
"description": "",
"price": 0,
"status": "ACCEPTED",
"phone": "+79998887766",
"firstName": "Иван",
"lastName": "Иванов",
"middleName": "",
"inn": "111122223333",
"taskInviteLink": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"taskAnnouncementId": 809,
"token": "k7fd2mqrx9ab",
"name": "Телеграм-канал «Работа рядом»",
"status": "ACTIVE",
"expiresAt": null
}
}
]
},
"success": true
}
Структура ответа (Response Body)
| Поле | Описание |
|---|---|
| requestId | Уникальный идентификатор транзакции запроса |
| success | Флаг успешности выполнения запроса |
| result.lastId | Идентификатор последнего элемента в текущей выборке |
| result.items | Список объектов найденных откликов |
Описание полей объекта отклика (items)
| Ключ | Описание |
|---|---|
| id | Уникальный системный идентификатор отклика |
| announcementId | ID объявления, на которое сделан отклик |
| status | Текущий статус |
| price | Предложенная цена в копейках |
| firstName | Имя исполнителя |
| lastName | Фамилия исполнителя |
| inn | ИНН исполнителя |
| phone | Контактный номер телефона |
| createdAt | Дата создания в формате |
| updatedAt | Дата последнего изменения в формате |
| createdBy | Системный ID пользователя, создавшего отклик |
| toId | Системный ID организации-получателя |
| taskInviteLink | Ссылка-приглашение, по которой пришёл отклик |
Принятие откликов исполнителей
Метод предназначен для массового или точечного подтверждения откликов, поданных исполнителями на объявления компании. После успешного принятия статус отклика меняется на ACCEPTED
Метод: POST URL: https://b2b.selfwork.ru/openapi/v2/organisation/{organisationId}/offers/accept
Request Body (JSON)
| Поле | Тип | Обязательность | Описание |
|---|---|---|---|
| offers | array[string] | Да | Массив строковых идентификаторов откликов (ID отклика) |
Правила валидации
| Параметр | Правило |
|---|---|
| offers | Массив не может быть пустым. Каждый элемент — строка в формате Mongo ObjectId |
Пример тела запроса:
curl -X 'POST' \
"https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/offers/accept" \
-H "accept: application/json" \
-H "Authorization: Bearer ВАШ_API_КЛЮЧ" \
-d '{
"offers": [
"698b0486535a85cec7d3f47e",
"587a9375424z74bdc6c2e36d"
]
}'
Пример успешного ответа:
{
"requestId": "a9cee689-b069-4a61-bdaa-4983fcebcb53",
"result": {
"successfulItems": [
{
"id": "698b0486535a85cec7d3f47e",
"createdAt": "2026-02-10T10:12:22.165Z",
"updatedAt": "2026-02-10T10:12:22.165Z",
"createdBy": "6989f195684a224f7a7ef0e8",
"toId": "6942bde29c4ba8df5b14653f",
"announcementId": 809,
"description": "",
"price": 0,
"status": "ACCEPTED"
},
{
"id": "587a9375424z74bdc6c2e36d",
"createdAt": "2026-02-10T10:12:22.165Z",
"updatedAt": "2026-02-10T10:12:22.165Z",
"createdBy": "6989f195684a224f7a7ef0e8",
"toId": "6942bde29c4ba8df5b14653f",
"announcementId": 809,
"description": "",
"price": 0,
"status": "ACCEPTED"
}
],
"errors": []
},
"success": true
}
Ответ (Response Body)
| Поле | Описание |
|---|---|
| requestId | Уникальный идентификатор запроса |
| success | Общий статус выполнения запроса |
| result | Контейнер с результатами обработки массива переданных ID |
| successfulItems | Список объектов откликов, которые были успешно приняты |
| id | Уникальный системный идентификатор отклика |
| announcementId | ID объявления (задачи), на которое откликнулся исполнитель |
| status | Текущий статус отклика. В успешном ответе этого метода всегда ACCEPTED |
| price | Стоимость, указанная в отклике (в копейках). 0 означает, что цена не была указана исполнителем или зафиксирована по ставке объявления |
| description | Сопроводительное письмо или комментарий исполнителя к отклику |
| createdBy | Системный ID пользователя (исполнителя), создавшего этот отклик |
| toId | Системный ID организации (компании), которой адресован отклик |
| createdAt | Дата и время создания отклика |
| updatedAt | Дата и время последнего изменения |
| errors | Список откликов, которые не удалось принять (например, из-за неверного статуса). Если массив пуст [], значит все переданные ID обработаны успешно. |
Возможные ошибки:
| Сообщение об ошибке | Причина |
|---|---|
| Offer not found or has wrong status | Отклик уже принят, отклонен или ID не существует |
| Документ не найден для контрагента | У исполнителя (самозанятого) отсутствуют или не подписаны необходимые документы для работы с юрлицом |
Отклонение откликов исполнителей
Метод позволяет компании отклонить один или несколько откликов. После успешного выполнения статус отклика изменяется на REJECTED.
Метод: POST URL: https://b2b.selfwork.ru/openapi/v2/organisation/{organisationId}/offers/decline
Request Body (JSON)
| Поле | Тип | Обязательность | Описание |
|---|---|---|---|
| offers | array[string] | Да | Массив строковых идентификаторов откликов (ID отклика) |
Правила валидации
| Параметр | Правило |
|---|---|
| offers | Массив не может быть пустым. Каждый элемент — строка в формате Mongo ObjectId |
Пример тела запроса:
curl -X 'POST' \
"https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/offers/decline" \
-H "accept: application/json" \
-H "Authorization: Bearer ВАШ_API_КЛЮЧ" \
-d '{
"offers": [
"698b0486535a85cec7d3f47e",
"587a9375424z74bdc6c2e36d"
]
}'
Пример успешного ответа:
{
"requestId": "a9cee689-b069-4a61-bdaa-4983fcebcb53",
"result": {
"successfulItems": [
{
"id": "698b0486535a85cec7d3f47e",
"createdAt": "2026-02-10T10:12:22.165Z",
"updatedAt": "2026-02-10T10:12:22.165Z",
"createdBy": "6989f195684a224f7a7ef0e8",
"toId": "6942bde29c4ba8df5b14653f",
"announcementId": 809,
"description": "",
"price": 0,
"status": "REJECTED"
},
{
"id": "587a9375424z74bdc6c2e36d",
"createdAt": "2026-02-10T10:12:22.165Z",
"updatedAt": "2026-02-10T10:12:22.165Z",
"createdBy": "6989f195684a224f7a7ef0e8",
"toId": "6942bde29c4ba8df5b14653f",
"announcementId": 809,
"description": "",
"price": 0,
"status": "REJECTED"
}
],
"errors": []
},
"success": true
}
Возможные ошибки:
| Сообщение об ошибке | Причина |
|---|---|
| Offer not found or has wrong status | Отклик уже принят, отклонен или ID не существует |