Перейти к основному содержимому

Предложения

Фильтрация предложений​

Метод API предназначен для поиска и получения списка откликов исполнителей на объявления компании с использованием расширенных фильтров.

Запрос​

Метод: POST URL: https://b2b.selfwork.ru/openapi/v2/organisation/{organisationId}/suggestions/filter

Общая структура запроса описана в разделе Фильтрация: общая структура.

Доступные фильтры (filters)​

Имя (name)Тип значения (value)Пример значенияОписание
ANNOUNCEMENT_IDarray[number][759, 811]Фильтр по ID объявлений
STATUSarray[string]["NEW", "ACCEPTED"]Статусы предложения (см. справочник ниже)
CREATED_ATдиапазон дат{"from": "2026-02-01T00:00:00.000Z", "to": "2026-02-28T23:59:59.999Z"}Диапазон дат создания
EXPIRE_ATдиапазон дат{"from": "2026-02-01T00:00:00.000Z", "to": "2026-02-28T23:59:59.999Z"}Диапазон дат истечения срока предложения
INDIVIDUAL_INNarray[string]["160285864492"]Фильтрация по ИНН исполнителей
TASK_INVITE_LINK_IDarray[string]["550e8400-e29b-41d4-a716-446655440000"]Фильтрация по ссылкам-приглашениям

Доступные сортировки​

Поле (field)Описание
CREATED_ATДата создания предложения
EXPIRE_ATДата истечения срока предложения
STATUSСтатус предложения
ANNOUNCEMENT_IDID объявления
FULL_NAMEФИО исполнителя

Поля, обрабатываемые по query​

Текстовый поиск (query) выполняет поиск частичного совпадения по ФИО исполнителя, ИНН исполнителя, тексту услуги из объявления.

Статусы предложения​

СтатусОписание
NEWПредложение только что создано, ещё не просмотрено
READПредложение просмотрено заказчиком
ACCEPTEDПредложение принято
HIDDENПредложение скрыто
CANCELLEDПредложение отменено

Пример полного запроса​

curl --location "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/suggestions/filter" \
--header "accept: application/json" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ" \
--data '{
"filters": [
{
"name": "ANNOUNCEMENT_ID",
"value": [759, 811]
},
{
"name": "EXPIRE_AT",
"value": {
"from": "2026-02-01T00:00:00.000Z",
"to": "2026-02-09T23:59:59.999Z"
}
},
{
"name": "STATUS",
"value": ["NEW", "ACCEPTED"]
},
{
"name": "CREATED_AT",
"value": {
"from": "2026-02-01T00:00:00.000Z",
"to": "2026-02-09T23:59:59.999Z"
}
}
],
"pagination": {
"limit": 20,
"lastId": null
}
}'

Пример успешного ответа​

{
"requestId": "e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b",
"success": true,
"result": {
"lastId": "6989d690cb32113e8cb4911e",
"items": [
{
"id": "6989d690cb32113e8cb4911e",
"announcementId": 811,
"executorId": "6968d0e58adb5d56f5420178",
"organisationId": "6942bde29c4ba8df5b14653f",
"status": "NEW",
"createdAt": "2026-02-09T12:44:00.235Z",
"updatedAt": "2026-02-09T12:44:00.235Z",
"expireAt": "2026-03-11T12:44:00.235Z",
"announcement": {
"id": 811,
"categories": [
"5f2d2620af74f046a9a86845",
"5fc965daaf6b9e0514304f37"
],
"service": "Доставка документов",
"createdAt": "2026-02-09T12:43:50.661Z",
"price": 143100,
"stats": {
"viewCount": 12,
"offerCount": 1
},
"address": "г. Москва, ул. Лесная, д. 5",
"status": "PUBLISHED",
"reward": "1431 руб.",
"workTime": "Сегодня",
"description": "Просьба срочно сегодня доставить документы"
},
"executor": {
"id": "6968d0e58adb5d56f5420178",
"phone": "+79998887766",
"firstName": "Иван",
"lastName": "Иванов",
"middleName": "",
"inn": "111122223333"
},
"taskInviteLink": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"taskAnnouncementId": 811,
"token": "k7fd2mqrx9ab",
"name": "Телеграм-канал «Работа рядом»",
"status": "ACTIVE",
"expiresAt": null
}
}
]
}
}

Описание полей ответа​

ПолеОписание
requestIdУникальный ID запроса
successУказывает на успешность выполнения запроса (true или false)
resultКонтейнер с данными ответа
result.lastIdID последнего элемента в текущем списке
result.itemsМассив найденных предложений (откликов)

Поля объекта предложения (items[])​

ПолеТипОписание
idstringУникальный ID предложения (используется как lastId)
announcementIdnumberID объявления, к которому относится отклик
executorIdstringВнутренний ID исполнителя в Маркетплейсе. Только для чтения: на вход методы API его не принимают, исполнителя везде указывают по ИНН. С исполнителями организации («Фильтрация исполнителей», id — UUID) сопоставлять по executor.inn
organisationIdstringID организации
statusstringСтатус предложения: NEW, READ, ACCEPTED, HIDDEN, CANCELLED
amountnumberСумма сделки в копейках
paymentPurposestringНазначение платежа
createdAtstringДата и время создания (ISO 8601)
updatedAtstringДата последнего изменения (например, смена статуса)
expireAtstringДата, до которой объявление показывается в предложенных
announcementobjectКраткая информация об объявлении (см. ниже)
executorobjectДанные исполнителя (см. ниже)
taskInviteLinkobjectСсылка-приглашение, по которой пришёл отклик

Поля объявления (announcement)​

ПолеТипОписание
idnumberID объявления
categoriesarray[string]Категории (Mongo ObjectId)
servicestringНазвание задачи
createdAtstringДата создания (ISO 8601)
pricenumberСтоимость в копейках
statsobjectСтатистика: viewCount, offerCount
addressstringАдрес выполнения задачи
statusstringСтатус объявления (например, PUBLISHED)
rewardstringТекстовое описание вознаграждения
workTimestringОписание времени исполнения задачи
descriptionstringОписание задачи
targetExecutorsQuantitynumberЦелевое количество исполнителей
optionsobjectОпции объявления (closeOnTargetExecutorsReached)
groupsarray[string]Тэги объявления

Поля исполнителя (executor)​

ПолеТипОписание
idstringID исполнителя
phonestringКонтактный телефон
firstNamestringИмя исполнителя
lastNamestringФамилия исполнителя
middleNamestringОтчество исполнителя
innstringИНН исполнителя

 

Отправка предложений объявления исполнителям​

Метод API предназначен для отправки предложений по конкретному объявлению списку исполнителей, идентифицируемых по ИНН.

Запрос​

Метод: POST URL: https://b2b.selfwork.ru/openapi/v2/organisation/{organisationId}/suggestions/send

Request Body​

Уровень 1Уровень 2ТипОбязательное полеОписание
itemsarray[obj]ДаСписок объектов для отправки предложений
innstringДаИНН исполнителя
announcementIdint32ДаID объявления, которое предлагается исполнителю
ignoreErrorsbooleanНетtrue - продолжать отправку при ошибке в одном из элементов; false - прервать операцию

Правила валидации​

ПараметрПравило
itemsМассив объектов, не может быть пустым
items[].innСтрока, валидный ИНН исполнителя
items[].announcementIdЧисловой ID объявления

Пример запроса​

curl -X 'POST' \
"https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/suggestions/send" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ВАШ_API_КЛЮЧ" \
-d '{
"items": [
{
"inn": "123456789012",
"announcementId": 321
}
],
"ignoreErrors": true
}'

Пример успешного ответа:​

{
"requestId": "6745a9b9-10da-4cac-a7bb-574d0cb35389",
"result": {
"successfulItems": [
{
"inn": "160285864492"
}
],
"errors": []
},
"success": true
}

Описание полей ответа:​

КлючОписание
requestIdУникальный идентификатор запроса
successСтатус выполнения запроса (true/false)
resultОбъект с результатами обработки списка
successfulItemsСписок ИНН исполнителей, которым успешно отправлено предложение
errorsСписок ошибок по конкретным ИНН (если возникли)

 

Удаление предложений​

Удаляет предложения по их ID. Требует доступ org.task-suggestions.write.

Запрос​

Метод: DELETE URL: https://b2b.selfwork.ru/openapi/v2/organisation/{organisationId}/suggestions/remove

Request Body​

ПолеТипОбязательное полеОписание
idsarray[string]ДаМассив ID предложений (минимум 1 элемент)

Пример запроса​

curl -X 'DELETE' \
"https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/suggestions/remove" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ВАШ_API_КЛЮЧ" \
-d '{
"ids": ["507f1f77bcf86cd799439011", "507f1f77bcf86cd799439012"]
}'

Пример успешного ответа​

{
"requestId": "97c5678a-8c6a-4688-8452-68ab606fe049",
"result": {
"successfulItems": ["507f1f77bcf86cd799439011"],
"errors": []
},
"success": true
}

Описание полей ответа​

КлючОписание
requestIdУникальный идентификатор запроса
successСтатус выполнения запроса (true/false)
resultОбъект с результатами обработки списка
successfulItemsСписок ID успешно удалённых предложений
errorsСписок ошибок по конкретным ID (если есть)