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

Отчёты

Отчёт — это выгрузка списка (исполнителей, операций, сделок, документов) в файл. Работа асинхронная: вы заказываете отчёт, сервис формирует его в фоне, а затем отдаёт временную ссылку на скачивание. Готовый файл живёт ограниченное время — до момента expiresAt.

Порядок работы: создать → дождаться COMPLETED → забрать ссылку.

Все методы требуют доступ org.reports.read и scope report в токене.

 

Создание отчёта​

Заказывает формирование отчёта. Возвращает идентификатор, по которому дальше отслеживается готовность.

Запрос​

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

Path Parameters​

ПараметрТипОбязательныйОписание
organisationIdstring (uuid)ДаИдентификатор организации

Заголовки​

ЗаголовокТипОбязательныйОписание
x-idempotency-keystringДаКлюч идемпотентности. Повтор с тем же ключом и телом вернёт сохранённый ответ

Request Body​

ПолеТипОбязательныйОписание
typestringДаТип отчёта (см. справочник ниже)
paramsarray[obj]ДаПараметры выгрузки в формате { "name": …, "value": … }
emailstringНетАдрес, на который отправить готовый отчёт

Справочник типов (type)​

ТипЧто выгружает
CONTRACTOR_LIST_REPORTСписок исполнителей
OPERATION_LIST_REPORTСписок операций (выплат)
DOCUMENT_LIST_REPORTСписок документов
SIGNED_DOCUMENTS_ARCHIVE_REPORTАрхив подписанных документов
TASK_ANNOUNCEMENT_LIST_REPORTСписок объявлений о задачах
TASK_ANNOUNCEMENT_SUGGESTIONS_LIST_REPORTСписок предложений по объявлениям
DEAL_LIST_REPORTСписок сделок
DEAL_DOCUMENTS_PACKAGE_REPORTПакет документов по сделкам

Набор params зависит от типа отчёта и описан в разделе Параметры отчётов.

Общие правила параметров​

Каждый элемент params — объект { "name": …, "value": … }. Имя параметра зависит от типа отчёта: набор для каждого типа описан в разделе Параметры отчётов. Неизвестное для этого типа имя — ошибка запроса, а не молча проигнорированный параметр.

Виды значений

ВидФорма valueПример
Список строкarray[string]["160285864492"]
Список чиселarray[number], целые[189433, 189434]
Одно значение enumstring"CONTRACT"
Булевоbooleantrue
Строкаstring"Иванов"
Диапазон дат{ "from": …, "to": … }, обе границы ISO 8601, from раньше to{"from": "2026-01-01T00:00:00.000Z", "to": "2026-01-31T23:59:59.999Z"}
Диапазон суммы{ "from": …, "to": … }, целые копейки, from меньше to{"from": 10000, "to": 100000}

Дата проверяется по календарю: 2026-06-31 не пройдёт валидацию. Список и одиночное значение не взаимозаменяемы — у части параметров маркетплейс принимает ровно одно значение, это указано в таблице параметров.

Ограничение диапазона времени

Отчёт без ограничения по времени заказать нельзя. Предельная ширина диапазона зависит от типа отчёта:

Тип отчётаПредел
Списочные отчёты730 дней
SIGNED_DOCUMENTS_ARCHIVE_REPORT, DEAL_DOCUMENTS_PACKAGE_REPORT92 дня

Каким именно диапазоном ограничить выборку — выбирает вызывающий: у каждого типа отчёта есть несколько параметров-диапазонов, и в предел должен уложиться хотя бы один из переданных. Фильтры складываются по «И», поэтому более широкий второй диапазон выборку не расширит.

730 дней — значение по умолчанию. Для TASK_ANNOUNCEMENT_LIST_REPORT предел берётся из квоты организации, если она задана, поэтому фактический лимит может отличаться от табличного.

Параметр FIELDS

FIELDS есть у каждого типа отчёта и задаёт набор колонок файла. Значения — из таблицы «Значения FIELDS» соответствующего типа, порядок колонок в файле от порядка значений не зависит. Без FIELDS в файл попадают все колонки.

Ограничения, из-за которых выдача может оказаться неполной

ОграничениеЗначениеЧто происходит
Строк в отчёте с документами10 000Отчёт формируется, но файлы не скачиваются: в архиве только опись и файл ATTENTION.txt с пояснением
Строк в списочном отчёте1 000 000Выгрузка обрывается на пределе, в архив кладётся файл ATTENTION.txt с пояснением
Незавершённых отчётов организации одновременно3Новый отчёт не создаётся, ответ 400 MAXIMUM_ACTIVE_REPORTS
Отчётов организации за сутки по МСК100Новый отчёт не создаётся, ответ 400 DAILY_REPORTS_LIMIT
Срок хранения готового файла7 сутокОтчёт переходит в статус EXPIRED, ссылку получить нельзя

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

curl --location "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/reports" \
--header "Content-Type: application/json" \
--header "x-idempotency-key: 7fe908ac-bf7d-4b7a-b6d1-8aff2a2e2cdf" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ" \
--data '{
"type": "CONTRACTOR_LIST_REPORT",
"params": [
{ "name": "CREATED_AT", "value": { "from": "2026-01-01T00:00:00.000Z", "to": "2026-03-31T23:59:59.999Z" } },
{ "name": "STATUS", "value": ["ACTIVE"] }
],
"email": "buh@example.com"
}'

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

Код ответа — 201.

{
"requestId": "97c5678a-8c6a-4688-8452-68ab606fe049",
"result": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"type": "CONTRACTOR_LIST_REPORT",
"status": "CREATED"
},
"success": true
}

Возможные ошибки​

КодОписание
400Запрос не прошёл валидацию
403Недостаточно прав либо организация вне доступа токена
409Ключ идемпотентности уже использован с другим телом

Кодом 400 отдаются и превышенные лимиты: MAXIMUM_ACTIVE_REPORTS — у организации уже три незавершённых отчёта, DAILY_REPORTS_LIMIT — исчерпаны 100 отчётов за сутки по МСК.

 

Параметры отчётов​

Для каждого типа отчёта — свой набор имён params. Общая форма значений, ограничения диапазонов и правило FIELDS описаны в разделе Общие правила параметров.

Колонка «Обязательный» читается так: Да — параметр нужен всегда, Нет — необязателен, Условно — обязательность зависит от других переданных параметров, правило указано над таблицей.

 

CONTRACTOR_LIST_REPORT​

Список исполнителей организации.

Обязательно: хотя бы один из CREATED_AT, UPDATED_AT, ID, GROUP_ID.

Имя (name)Тип значения (value)ОбязательныйОписание
FIELDSarray[string]НетКолонки файла, см. таблицу ниже
IDarray[string] (uuid)УсловноОтбор по идентификаторам исполнителей
INNarray[string]НетОтбор по ИНН
SNILSarray[string]НетОтбор по СНИЛС
STATUSarray[string]НетСтатусы исполнителя: ACTIVE, ARCHIVED, BLOCKED
TYPEarray[string]НетТипы исполнителя, см. Исполнители
CITIZENSHIParray[string]НетГражданства, коды стран
GENDERarray[string]НетПол: male / female
BIRTHDAYarray[string]НетДаты рождения. Это список дат, а не диапазон
GROUP_IDarray[string] (uuid)УсловноОтбор по идентификаторам групп исполнителей
NPD_STATUSbooleanНетПодключение к НПД
NPD_BINDING_STATUSarray[string]НетСтатус привязки к платформе в «Мой налог»: BOUND, REQUESTED, REJECTED, NONE
CREATED_ATдиапазон датУсловноДиапазон дат добавления исполнителя, не больше 730 дней
UPDATED_ATдиапазон датУсловноДиапазон дат последнего изменения, не больше 730 дней

Значения FIELDS​

ЗначениеКолонка в файле
idID исполнителя
innИНН исполнителя
lastNameФамилия
nameИмя
middleNameОтчество
birthdayДата рождения
genderПол
typeТип исполнителя
statusСтатус исполнителя
loginТелефон
npdStatusСтатус подключения к НПД
autoSignActsАвтоматическое подписание актов
cardNumberНомер карты
bankAccountNumberНомер расчетного счета
fpsPhoneСБП (номер телефона)
groupsГруппы исполнителя
createdAtДата добавления исполнителя
citizenshipГражданство
descriptionПримечание

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

curl --location "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/reports" \
--header "Content-Type: application/json" \
--header "x-idempotency-key: 7fe908ac-bf7d-4b7a-b6d1-8aff2a2e2cdf" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ" \
--data '{
"type": "CONTRACTOR_LIST_REPORT",
"params": [
{ "name": "CREATED_AT", "value": { "from": "2026-01-01T00:00:00.000Z", "to": "2026-03-31T23:59:59.999Z" } },
{ "name": "STATUS", "value": ["ACTIVE"] },
{ "name": "FIELDS", "value": ["id", "inn", "lastName", "name", "middleName", "status"] }
]
}'

 

OPERATION_LIST_REPORT​

Список операций (выплат).

Обязательно: хотя бы один из CREATED_AT, REGISTRATION_AT.

Имя (name)Тип значения (value)ОбязательныйОписание
FIELDSarray[string]НетКолонки файла, см. таблицу ниже
IDarray[string] (uuid)НетОтбор по идентификаторам выплат
REGISTRY_IDarray[string] (uuid)НетОтбор по идентификаторам реестров
INDIVIDUAL_IDarray[string] (uuid)НетОтбор по идентификаторам исполнителей
STATUSarray[string]НетСтатусы выплаты, см. Операции
PAYMENT_METHOD_TYPEarray[string]НетТип способа выплаты, см. Операции
CONTRACTOR_FULL_NAMEstringНетПоиск по ФИО исполнителя
AMOUNTдиапазон суммыНетДиапазон суммы выплаты в копейках
CREATED_ATдиапазон датУсловноДиапазон дат создания выплаты, не больше 730 дней
REGISTRATION_ATдиапазон датУсловноДиапазон дат проведения выплаты, не больше 730 дней

CREATED_AT — когда выплата была заведена, REGISTRATION_AT — когда она была фактически проведена. Для отчётности за период, как правило, нужен REGISTRATION_AT: выплата, созданная в конце месяца, может быть проведена уже в следующем.

Значения FIELDS​

ЗначениеКолонка в файле
idID операции
numberНомер операции
registryIdID реестра
statusСтатус операции
contractorIdID исполнителя
fullNameФИО исполнителя
innИНН исполнителя
amountСумма выплаты (руб.)
partnerCommissionКомиссия платформы (руб.)
taxRetentionУдержано на налог (руб.)
purposeНазначение платежа
paymentMethodTypeСпособ выплаты
paymentDetailsРеквизиты
createdAtДата создания
registrationAtДата проведения

Колонка «Дата проведения» заполнена только у выплат с итогом — успешных или завершившихся ошибкой. У выплат в работе она пустая. Суммы в файле — в рублях, а не в копейках.

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

curl --location "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/reports" \
--header "Content-Type: application/json" \
--header "x-idempotency-key: 7fe908ac-bf7d-4b7a-b6d1-8aff2a2e2cdf" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ" \
--data '{
"type": "OPERATION_LIST_REPORT",
"params": [
{ "name": "REGISTRATION_AT", "value": { "from": "2026-01-01T00:00:00.000Z", "to": "2026-01-31T23:59:59.999Z" } },
{ "name": "STATUS", "value": ["PAYED_SUCCESS"] }
]
}'

 

DOCUMENT_LIST_REPORT​

Список документов ЭДО.

Обязательно: хотя бы один из ID, CREATED_DATE, DATE_START, DATE_END.

Имя (name)Тип значения (value)ОбязательныйОписание
FIELDSarray[string]НетКолонки файла, см. таблицу ниже
IDarray[number]УсловноОтбор по идентификаторам документов
UUIDarray[string]НетОтбор по UUID документов
NAMEstringНетПоиск по названию документа
TYPEstringНетТип документа, одно значение, см. ЭДО
STATUSarray[string]НетСтатусы документа, см. ЭДО
CONTRACTOR_IDarray[string] (uuid)НетОтбор по идентификаторам исполнителей
COST_OF_WORKnumberНетСтоимость работ, целое число
PERIODnumberНетСрок действия в днях, целое число
CREATED_DATEдиапазон датУсловноДиапазон дат создания документа, не больше 730 дней
DATE_STARTдиапазон датУсловноДиапазон дат начала действия, не больше 730 дней
DATE_ENDдиапазон датУсловноДиапазон дат окончания действия, не больше 730 дней

Значения FIELDS​

ЗначениеКолонка в файле
idID документа
uuidUUID документа
nameНазвание документа
typeТип документа
statusСтатус документа
createdAtДата создания
numberНомер документа
startDateДата начала
endDateДата окончания
durationСрок действия, дней
estimatedCostСтоимость, руб.
prolongationПролонгация
linkedContractIdID связанного договора
companySignedAtДата подписания компанией
recipientSignedAtДата подписания исполнителем
recipient.idID исполнителя
recipient.innИНН исполнителя
recipient.loginЛогин исполнителя
recipient.fullNameФИО исполнителя

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

curl --location "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/reports" \
--header "Content-Type: application/json" \
--header "x-idempotency-key: 7fe908ac-bf7d-4b7a-b6d1-8aff2a2e2cdf" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ" \
--data '{
"type": "DOCUMENT_LIST_REPORT",
"params": [
{ "name": "CREATED_DATE", "value": { "from": "2026-01-01T00:00:00.000Z", "to": "2026-03-31T23:59:59.999Z" } },
{ "name": "TYPE", "value": "CONTRACT" }
]
}'

 

SIGNED_DOCUMENTS_ARCHIVE_REPORT​

Архив подписанных документов: zip с описью и файлами документов.

Обязательно: хотя бы один из CREATED_DATE, DATE_START, DATE_END.

Имя (name)Тип значения (value)ОбязательныйОписание
FIELDSarray[string]НетКолонки описи, см. таблицу ниже
CONTRACTOR_PATH_BASEstringНетУстарел. Принимается для совместимости, на результат не влияет, см. ниже
IDarray[number]НетОтбор по идентификаторам документов
UUIDarray[string]НетОтбор по UUID документов
NAMEstringНетПоиск по названию документа
TYPEstringНетТип документа, одно значение, см. ЭДО
CONTRACTOR_IDarray[string] (uuid)НетОтбор по идентификаторам исполнителей
COST_OF_WORKnumberНетСтоимость работ, целое число
PERIODnumberНетСрок действия в днях, целое число
CREATED_DATEдиапазон датУсловноДиапазон дат создания документа, не больше 92 дней
DATE_STARTдиапазон датУсловноДиапазон дат начала действия, не больше 92 дней
DATE_ENDдиапазон датУсловноДиапазон дат окончания действия, не больше 92 дней

Статусы документов отчёт задаёт сам — в архив попадают SIGNED, EXPIRED и CANCELED. Параметр STATUS этот отчёт не принимает.

Диапазон дат здесь ограничен 92 днями, а не 730: год документов — это четыре отчёта подряд, а не один.

Справочник CONTRACTOR_PATH_BASE​

Параметр устарел: папка исполнителя всегда называется ИНН_Фамилия_Имя. Значения ID и INN по-прежнему принимаются и ведут себя одинаково, другие значения — ошибка запроса.

Значения FIELDS​

ЗначениеКолонка в описи
idID документа
uuidUUID документа
nameНазвание документа
typeТип документа
statusСтатус документа
createdAtДата создания
numberНомер документа
startDateДата начала
durationСрок действия (дней)
estimatedCostСтоимость (руб.)
contractIdID связанного договора
recipient.idID исполнителя
recipient.innИНН исполнителя
recipient.loginЛогин исполнителя
recipient.fullNameФИО исполнителя

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

curl --location "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/reports" \
--header "Content-Type: application/json" \
--header "x-idempotency-key: 7fe908ac-bf7d-4b7a-b6d1-8aff2a2e2cdf" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ" \
--data '{
"type": "SIGNED_DOCUMENTS_ARCHIVE_REPORT",
"params": [
{ "name": "CREATED_DATE", "value": { "from": "2026-01-01T00:00:00.000Z", "to": "2026-03-31T23:59:59.999Z" } },
{ "name": "TYPE", "value": "ACT" }
]
}'

 

TASK_ANNOUNCEMENT_LIST_REPORT​

Список объявлений о задачах.

Обязательно: хотя бы один из CREATED_AT, UPDATED_AT.

Имя (name)Тип значения (value)ОбязательныйОписание
FIELDSarray[string]НетКолонки файла, см. таблицу ниже
QUERYstringНетТекстовый поиск по названию услуги и вознаграждению
IDarray[number]НетОтбор по идентификаторам объявлений
STATUSarray[string]НетСтатусы объявления, см. Объявления
CATEGORY_IDarray[string]НетОтбор по категориям, Mongo ObjectId
GROUP_IDarray[string]НетОтбор по тэгам объявлений, Mongo ObjectId
GROUP_PRESENCEbooleanНетtrue — только объявления с тэгами, false — только без тэгов
ADDRESSstringНетПоиск по полному совпадению адреса
CREATED_ATдиапазон датУсловноДиапазон дат создания объявления, не больше 730 дней
UPDATED_ATдиапазон датУсловноДиапазон дат последнего изменения, не больше 730 дней

Значения FIELDS​

ЗначениеКолонка в файле
idID объявления
categoryКатегория
subcategoryПодкатегория
addressАдрес
descriptionОписание
serviceУслуга
priceЦена
rewardУсловия оплаты
workTimeПериод выполнения работы
targetExecutorsQuantityЦелевое количество исполнителей
closeOnTargetExecutorsReachedАвтозакрытие по кол-ву исполнителей
tagsТеги объявления

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

curl --location "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/reports" \
--header "Content-Type: application/json" \
--header "x-idempotency-key: 7fe908ac-bf7d-4b7a-b6d1-8aff2a2e2cdf" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ" \
--data '{
"type": "TASK_ANNOUNCEMENT_LIST_REPORT",
"params": [
{ "name": "CREATED_AT", "value": { "from": "2026-01-01T00:00:00.000Z", "to": "2026-03-31T23:59:59.999Z" } },
{ "name": "STATUS", "value": ["PUBLISHED", "IN_PROGRESS"] }
]
}'

 

TASK_ANNOUNCEMENT_SUGGESTIONS_LIST_REPORT​

Список предложений по объявлениям.

Обязательно: хотя бы один из CREATED_AT, EXPIRE_AT.

Имя (name)Тип значения (value)ОбязательныйОписание
FIELDSarray[string]НетКолонки файла, см. таблицу ниже
QUERYstringНетТекстовый поиск
STATUSarray[string]НетСтатусы предложения, см. Предложения
ANNOUNCEMENT_IDarray[number]НетОтбор по идентификаторам объявлений
INDIVIDUAL_INNarray[string]НетОтбор по ИНН исполнителей
TASK_INVITE_LINK_IDarray[string]НетОтбор по ссылкам-приглашениям
CREATED_ATдиапазон датУсловноДиапазон дат создания предложения, не больше 730 дней
EXPIRE_ATдиапазон датУсловноДиапазон дат истечения предложения, не больше 730 дней

Значения FIELDS​

ЗначениеКолонка в файле
announcementIdID объявления
advertisementNameОбъявление
innИНН Исполнителя
fullNameФИО Исполнителя
phoneТелефон Исполнителя
amountСумма
paymentPurposeОказанные услуги
statusСтатус

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

curl --location "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/reports" \
--header "Content-Type: application/json" \
--header "x-idempotency-key: 7fe908ac-bf7d-4b7a-b6d1-8aff2a2e2cdf" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ" \
--data '{
"type": "TASK_ANNOUNCEMENT_SUGGESTIONS_LIST_REPORT",
"params": [
{ "name": "CREATED_AT", "value": { "from": "2026-02-01T00:00:00.000Z", "to": "2026-02-28T23:59:59.999Z" } },
{ "name": "STATUS", "value": ["ACCEPTED"] }
]
}'

 

DEAL_LIST_REPORT​

Список сделок.

Обязательно: хотя бы один из CREATED_AT, UPDATED_AT, ANNOUNCEMENT_ID, GROUP_ID.

Имя (name)Тип значения (value)ОбязательныйОписание
FIELDSarray[string]НетКолонки файла, см. таблицу ниже
QUERYstringНетТекстовый поиск
STATUSarray[string]НетСтатусы сделки, см. Сделки
ANNOUNCEMENT_IDarray[number]УсловноОтбор по идентификаторам объявлений
GROUP_IDarray[string]УсловноОтбор по тэгам сделок, Mongo ObjectId
GROUP_PRESENCEbooleanНетtrue — только сделки с тэгами, false — только без тэгов
INDIVIDUAL_INNarray[string]НетОтбор по ИНН исполнителей
AMOUNTдиапазон суммыНетДиапазон суммы сделки в копейках
LAST_PAYMENT_STATUSstringНетСтатус последней выплаты, одно значение, см. справочник ниже
LAST_PAYMENT_SUBSTATUSarray[string]НетДетализация статуса выплаты, см. Операции
WORK_TIMEstringНетПериод выполнения работы
CREATED_ATдиапазон датУсловноДиапазон дат создания сделки, не больше 730 дней
UPDATED_ATдиапазон датУсловноДиапазон дат последнего изменения, не больше 730 дней

Справочник LAST_PAYMENT_STATUS​

ЗначениеОписание
NO_PAYMENTSВыплат по сделке не было
HAVE_PAYMENT_ERRORПо сделке есть выплата с ошибкой
SUCCESS_PAYMENTПо сделке есть успешная выплата

Значения FIELDS​

ЗначениеКолонка в файле
dealIdID задания
announcementIdID объявления
advertisementNameОбъявление
innИНН Исполнителя
phoneТелефон Исполнителя
fullNameФИО Исполнителя
amountСумма
paymentPurposeОказанные услуги
tagsТеги сделки

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

curl --location "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/reports" \
--header "Content-Type: application/json" \
--header "x-idempotency-key: 7fe908ac-bf7d-4b7a-b6d1-8aff2a2e2cdf" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ" \
--data '{
"type": "DEAL_LIST_REPORT",
"params": [
{ "name": "CREATED_AT", "value": { "from": "2026-01-01T00:00:00.000Z", "to": "2026-03-31T23:59:59.999Z" } },
{ "name": "STATUS", "value": ["COMPLETED"] }
]
}'

 

DEAL_DOCUMENTS_PACKAGE_REPORT​

Пакет документов по сделкам: zip с описью, договорами, актами и чеками.

Обязательно: хотя бы один из CREATED_AT, UPDATED_AT, ANNOUNCEMENT_ID.

Имя (name)Тип значения (value)ОбязательныйОписание
FIELDSarray[string]НетКолонки описи, см. таблицу ниже
QUERYstringНетТекстовый поиск
DIRECTORY_STRUCTUREstringНетРаскладка папок в архиве, см. справочник ниже. По умолчанию CONTRACTOR_CONTRACT_DEAL
CONTRACTOR_PATH_BASEstringНетУстарел. Принимается для совместимости, на результат не влияет, см. ниже
ANNOUNCEMENT_IDarray[number]УсловноОтбор по идентификаторам объявлений
GROUP_IDarray[string]НетОтбор по тэгам сделок, Mongo ObjectId
GROUP_PRESENCEbooleanНетtrue — только сделки с тэгами, false — только без тэгов
INDIVIDUAL_INNarray[string]НетОтбор по ИНН исполнителей
AMOUNTдиапазон суммыНетДиапазон суммы сделки в копейках
LAST_PAYMENT_STATUSstringНетСтатус последней выплаты, одно значение, см. Сделки
LAST_PAYMENT_SUBSTATUSarray[string]НетДетализация статуса выплаты, см. Операции
WORK_TIMEstringНетПериод выполнения работы
CREATED_ATдиапазон датУсловноДиапазон дат создания сделки, не больше 92 дней
UPDATED_ATдиапазон датУсловноДиапазон дат последнего изменения, не больше 92 дней

Пакет собирается только по завершённым заданиям — этот фильтр отчёт задаёт сам.

CREATED_AT — диапазон дат создания сделки, то есть момента принятия отклика. Чтобы выгрузить документы по сделкам, завершённым за нужный период, берите UPDATED_AT: в выборку попадают только завершённые сделки, поэтому их последнее изменение и есть завершение. Точную дату выплаты по каждой строке видно в описи — колонка «Дата выплаты».

Справочник DIRECTORY_STRUCTURE​

ЗначениеРаскладка папок
CONTRACTOR_CONTRACT_DEALИсполнитель → Договор → Задание. Договор лежит один раз, в корне своей ветки
CONTRACTOR_DEALИсполнитель → Задание. Папка задания самодостаточна, договор дублируется

Справочник CONTRACTOR_PATH_BASE​

Параметр устарел: папка исполнителя всегда называется ИНН_Фамилия_Имя. Значения ID и INN по-прежнему принимаются и ведут себя одинаково, другие значения — ошибка запроса.

Значения FIELDS​

ЗначениеКолонка в описи
announcementId№ объявления
dealId№ задания
advertisementNameНазвание задания
fullNameИсполнитель
innИНН
paymentProcessedAtДата выплаты
paymentAmountСумма выплаты
paymentCommissionКомиссия сервиса
contractДоговор
actАкт
receiptЧек

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

curl --location "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/reports" \
--header "Content-Type: application/json" \
--header "x-idempotency-key: 7fe908ac-bf7d-4b7a-b6d1-8aff2a2e2cdf" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ" \
--data '{
"type": "DEAL_DOCUMENTS_PACKAGE_REPORT",
"params": [
{ "name": "UPDATED_AT", "value": { "from": "2026-01-01T00:00:00.000Z", "to": "2026-03-31T23:59:59.999Z" } },
{ "name": "DIRECTORY_STRUCTURE", "value": "CONTRACTOR_DEAL" }
]
}'

 

Получение статуса отчёта​

Короткий ответ для опроса готовности. Опрашивайте, пока статус не станет COMPLETED или FAILED.

Запрос​

Метод: GET URL: https://b2b.selfwork.ru/openapi/v2/organisation/{organisationId}/reports/{reportId}/status

Path Parameters​

ПараметрТипОбязательныйОписание
organisationIdstring (uuid)ДаИдентификатор организации
reportIdstring (uuid)ДаИдентификатор отчёта

Справочник статусов (status)​

СтатусОписание
CREATEDОтчёт заказан, формирование ещё не началось
IN_PROGRESSФормируется
COMPLETEDГотов, можно забирать ссылку
FAILEDСформировать не удалось, причина в errorMessage
EXPIREDСрок хранения истёк, файл больше недоступен
CANCELLEDФормирование отменено

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

{
"requestId": "97c5678a-8c6a-4688-8452-68ab606fe049",
"result": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"type": "CONTRACTOR_LIST_REPORT",
"status": "COMPLETED"
},
"success": true
}

 

Получение ссылки на скачивание​

Возвращает временную ссылку на готовый файл. Работает, пока отчёт в статусе COMPLETED и не истёк expiresAt.

Формат файла по ссылке не фиксирован, и на него нельзя опираться по типу отчёта. Списочный отчёт приходит как .xlsx, но если выгрузка не уложилась в один файл или была обрезана на лимите — как .zip с частями и файлом ATTENTION.txt. Отчёты с документами (SIGNED_DOCUMENTS_ARCHIVE_REPORT, DEAL_DOCUMENTS_PACKAGE_REPORT) — всегда .zip.

Запрос​

Метод: GET URL: https://b2b.selfwork.ru/openapi/v2/organisation/{organisationId}/reports/{reportId}/download

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

{
"requestId": "97c5678a-8c6a-4688-8452-68ab606fe049",
"result": {
"url": "https://storage.yandexcloud.net/bucket/reports/..."
},
"success": true
}

 

Деталка отчёта​

Полная карточка отчёта: кто заказал, с какими параметрами, когда сформирован и до какого момента доступен.

Запрос​

Метод: GET URL: https://b2b.selfwork.ru/openapi/v2/organisation/{organisationId}/reports/{reportId}

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

ПолеТипОписание
idstring (uuid)Идентификатор отчёта
typestringТип отчёта
statusstringСтатус отчёта
organisationIdstring (uuid)Идентификатор организации
createdByobjectКто заказал: id, email, firstName, lastName, middleName
paramsarray[obj]Параметры, с которыми отчёт был заказан
fileIdstringИдентификатор готового файла
emailstringАдрес, на который отправляется готовый отчёт
errorMessagestringПричина, по которой отчёт не сформирован
completedAtstringМомент формирования (ISO 8601)
expiresAtstringДо какого момента файл доступен. null, пока отчёт не сформирован
createdAtstringДата создания
updatedAtstringДата обновления
deletedAtstringДата удаления. null — отчёт не удалён

 

Фильтр отчётов​

Список ранее заказанных отчётов. Общая структура тела — в разделе Фильтрация.

Запрос​

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

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

КлючТип значенияОписание
TYPEСписок строк (enum)Тип отчёта
STATUSСписок строк (enum)Статус отчёта
CREATED_BYСписок строкКто заказал
FILE_IDСписок строкИдентификатор файла
CREATED_ATДиапазон дат {from, to}Дата создания

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

ПолеОписание
CREATED_ATПо дате создания
UPDATED_ATПо дате обновления
COMPLETED_ATПо дате формирования
STATUSПо статусу
TYPEПо типу

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

curl --location "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/reports/filter" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ" \
--data '{
"filters": [
{ "name": "TYPE", "value": "CONTRACTOR_LIST_REPORT" },
{ "name": "STATUS", "value": ["COMPLETED"] }
],
"order": [{ "field": "CREATED_AT", "sort": "DESC" }],
"pagination": { "limit": 20, "lastId": null }
}'