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

ЭДО

Фильтрация документов​

Метод предназначен для поиска и получения списка документов компании с использованием фильтров и постраничной навигации.

Запрос​

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

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

Path Parameters​

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

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

Имя (name)Тип значения (value)Пример значенияОписание
IDnumber / array[number][123, 124]Фильтрация по ID документов
UUIDstring / array[string]["550e8400-e29b-41d4-a716-446655440000"]Фильтрация по UUID документов
NAMEstring / array[string]"Договор"Поиск по названию документа
TYPEstring / array[string]["CONTRACT", "ACT"]Тип документа (см. справочник ниже)
STATUSstring / array[string]["SIGNED", "ON_SIGN"]Статус документа (см. справочник ниже)
DATE_STARTдиапазон дат{"from": "2026-01-01T00:00:00.000Z", "to": "2026-01-31T23:59:59.999Z"}Диапазон даты начала действия
DATE_ENDдиапазон дат{"from": "2026-01-01T00:00:00.000Z", "to": "2026-12-31T23:59:59.999Z"}Диапазон даты окончания действия
CREATED_DATEдиапазон дат{"from": "2026-01-01T00:00:00.000Z", "to": "2026-01-31T23:59:59.999Z"}Диапазон дат создания документа
COST_OF_WORKдиапазон чисел{"from": 10000, "to": 100000}Диапазон стоимости работ в копейках
PERIODnumber / array[number]30Срок действия в днях
CONTRACTOR_IDstring (uuid) / array[uuid]["3f2b8c1e-5a7d-4e9f-8b6a-1c2d3e4f5a6b"]Фильтрация по ID исполнителей

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

Поле (field)Описание
IDID документа
NAMEНазвание документа
TYPEТип документа
STATUSСтатус документа
DATE_STARTДата начала
DATE_ENDДата окончания
CREATED_DATEДата создания
COST_OF_WORKСтоимость работ
PERIODСрок действия
UUIDUUID документа
CONTRACTOR_IDID исполнителя

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

ТипОписание
DOCUMENTПроизвольный документ
CONTRACTДоговор
ACTАкт

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

СтатусОписание
NEWНовый, не отправлен на подпись
ON_SIGNОтправлен на подпись
SIGNEDПодписан обеими сторонами
SIGNED_BY_COMPANYПодписан только компанией
SIGNED_BY_INDIVIDUALПодписан только исполнителем
REJECTEDОтклонён
BLOCKEDЗаблокирован
EXPIREDИстёк срок подписания
CANCELEDРасторгнут
FORMINGВ процессе формирования
FORMING_SIGNВ процессе формирования подписи

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

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

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

{
"requestId": "1a2b3c4d-5e6f-7890-abcd-ef0123456789",
"success": true,
"result": {
"lastId": 123,
"items": [
{
"id": 123,
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"name": "Договор оказания услуг",
"status": "SIGNED",
"type": "CONTRACT",
"hash": "a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e",
"createdAt": "2026-01-15T14:30:00Z",
"recipient": {
"id": "3f2b8c1e-5a7d-4e9f-8b6a-1c2d3e4f5a6b",
"inn": "770123456789",
"login": "contractor1",
"name": "Иван",
"lastName": "Иванов",
"middleName": "Иванович"
},
"metadata": {
"startDate": "2026-01-15T14:30:00Z",
"duration": 365,
"estimatedCost": 100000
}
}
]
}
}

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

ПолеОписание
requestIdУникальный идентификатор запроса
successСтатус выполнения запроса (true/false)
resultКонтейнер с данными выборки
lastIdИдентификатор последнего элемента
itemsМассив объектов документов
idУникальный ID документа
uuidUUID документа
nameНазвание документа
statusСтатус документа
typeТип документа
hashSHA256 хеш документа
createdAtДата создания (ISO 8601)
companySignПодпись компании (опционально)
recipientSignПодпись исполнителя (опционально)
recipientКраткая информация об исполнителе
metadataМетаданные документа (зависят от типа)

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

CodeОписание
VALIDATION_ERRORОшибка валидации
FORBIDDEN_ERRORОшибка авторизации
UNKNOWN_ERRORОшибка сервера

 

Получение документа​

Метод API предназначен для получения детальной информации по конкретному документу.

Запрос​

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

Path Parameters​

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

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

curl --location "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/documents/123" \
--header "accept: application/json" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ"

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

{
"requestId": "2b3c4d5e-6f70-8901-bcde-f01234567890",
"result": {
"id": 123,
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"name": "Договор оказания услуг",
"status": "SIGNED",
"type": "CONTRACT",
"hash": "a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e",
"createdAt": "2026-01-15T14:30:00Z",
"companySign": {
"uuid": "1e74aa0c-6ba9-37d6-b1bf-8d2fa1c09407",
"fullName": "Петров Пётр Петрович",
"signedAt": "2026-01-15T14:35:00Z",
"signingMethod": "+79161234567"
},
"recipientSign": {
"uuid": "2e74aa0c-6ba9-37d6-b1bf-8d2fa1c09408",
"fullName": "Иванов Иван Иванович",
"signedAt": "2026-01-15T14:40:00Z",
"signingMethod": "+79998887766"
},
"recipient": {
"id": "3f2b8c1e-5a7d-4e9f-8b6a-1c2d3e4f5a6b",
"inn": "770123456789",
"login": "contractor1",
"name": "Иван",
"lastName": "Иванов",
"middleName": "Иванович"
},
"metadata": {
"number": "123",
"startDate": "2026-01-15T14:30:00Z",
"duration": 365,
"estimatedCost": 100000
}
},
"success": true
}

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

ПолеОписание
idУникальный ID документа
uuidUUID документа
nameНазвание документа
statusТекущий статус документа
typeТип документа (DOCUMENT / CONTRACT / ACT)
hashSHA256 хеш документа
createdAtДата создания (ISO 8601)
companySignОбъект подписи компании (uuid, fullName, signedAt, signingMethod)
recipientSignОбъект подписи исполнителя
recipientИнформация об исполнителе (id, ИНН, login, ФИО)
metadataМетаданные документа. Поля зависят от типа: для CONTRACT — number, startDate, duration, estimatedCost, prolongation; для ACT — number, contract; для DOCUMENT — number, typeUpload, duration
historyИстория изменений (опционально, см. отдельный эндпоинт)

Поля подписи (companySign, recipientSign)​

ПолеТипОписание
uuidstringUUID подписи
fullNamestringПолное имя подписавшего
signedAtstringДата подписания (ISO 8601)
signingMethodstringМетод подписания

Поля получателя (recipient)​

ПолеТипОписание
idstring (uuid)ID исполнителя в организации
innstringИНН исполнителя
loginstringЛогин исполнителя
namestringИмя исполнителя
lastNamestringФамилия исполнителя
middleNamestringОтчество исполнителя

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

CodeОписание
FORBIDDEN_ERRORОшибка авторизации
DOCUMENT_NOT_FOUNDДокумент с указанным documentId не найден
DOCUMENT_DELETEDДокумент был удалён
UNKNOWN_ERRORОшибка сервера

 

Получение истории документа​

Метод возвращает список записей истории изменений документа.

Запрос​

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

Path Parameters​

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

Справочник операций (operation)​

ЗначениеОписание
CREATEDДокумент создан
CHANGEDДокумент изменён
SENT_TO_SIGNОтправлен на подпись
SIGNEDПодписан
SIGNED_BY_COMPANYПодписан компанией
SIGNED_BY_INDIVIDUALПодписан исполнителем
REJECTEDОтклонён
CANCELEDРасторгнут
EXTENSIONПродление
START_FORMINGНачало формирования
START_FORMING_SIGNНачало формирования подписи

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

curl --location "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/documents/123/history" \
--header "accept: application/json" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ"

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

{
"requestId": "3c4d5e6f-7081-9012-cdef-012345678901",
"result": [
{
"id": 1,
"documentId": 123,
"operation": "CREATED",
"actor": {
"type": "SENDER",
"name": "Петров Пётр Петрович",
"login": "manager1"
},
"createdAt": "2026-01-15T14:30:00Z"
},
{
"id": 2,
"documentId": 123,
"operation": "SIGNED_BY_COMPANY",
"actor": {
"type": "SENDER",
"name": "Петров Пётр Петрович",
"login": "manager1"
},
"createdAt": "2026-01-15T14:35:00Z"
}
],
"success": true
}

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

ПолеОписание
idID записи истории
documentIdID документа
operationТип операции (см. справочник выше)
actorИнициатор операции (см. «Поля инициатора» ниже)
createdAtДата операции (ISO 8601)
metaДополнительная информация (опционально, произвольный объект)

Поля инициатора (actor)​

ПолеТипОписание
typestringТип инициатора: SENDER, RECIPIENT, SYSTEM
namestringФИО пользователя
loginstringЛогин пользователя

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

CodeОписание
FORBIDDEN_ERRORОшибка авторизации
DOCUMENT_NOT_FOUNDДокумент с указанным documentId не найден
DOCUMENT_HISTORY_NOT_FOUNDИстория по документу отсутствует
UNKNOWN_ERRORОшибка сервера

 

Скачивание документа​

Метод возвращает ссылку для скачивания документа в выбранном формате.

Запрос​

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

Path Parameters​

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

Query Parameters​

ПараметрТипОбязательныйОписание
typestringДаТип скачиваемого файла: ORIGINAL — исходный документ, STAMPED — документ с штампами подписей

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

curl --location --request POST "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/documents/123/download?type=STAMPED" \
--header "accept: application/json" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ"

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

{
"requestId": "4d5e6f70-8192-0123-defa-123456789012",
"result": {
"downloadUrl": "https://files.selfwork.ru/documents/123/stamped.pdf?token=..."
},
"success": true
}

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

ПолеОписание
requestIdУникальный идентификатор запроса
successСтатус выполнения
result.downloadUrlВременная ссылка для скачивания файла

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

CodeОписание
VALIDATION_ERRORНе указан или некорректен query-параметр type
FORBIDDEN_ERRORОшибка авторизации
DOCUMENT_NOT_FOUNDДокумент с указанным documentId не найден
DOCUMENT_SIGNED_URL_NOT_EXISTSПодписанная версия документа недоступна для скачивания
DOCUMENT_DELETEDДокумент был удалён
UNKNOWN_ERRORОшибка сервера

 

Создание документа​

Метод создаёт новый документ (договор, акт или произвольный документ) для исполнителя.

Запрос​

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

Path Parameters​

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

Request Body​

Уровень 1Уровень 2ТипОбязательное полеОписание
namestringДаНазвание документа (1–128 символов)
typestringДаТип документа: DOCUMENT, CONTRACT, ACT
contractorobjectДаИнформация об исполнителе
idstring (uuid)ДаID исполнителя
metadataobjectДаМетаданные документа. Структура зависит от type
typeUploadstringДаСпособ загрузки документа. На текущий момент поддерживается только FILE — PDF-файл в Base64 в поле data
datastringДаPDF документ в Base64, префикс data:application/pdf;base64,...
durationint32Зависит от типаСрок действия в днях (1–365). Обязательно для CONTRACT
startDatestringНетДата начала (ISO 8601). Только для CONTRACT
estimatedCostint32НетОриентировочная стоимость работ в копейках. Только для CONTRACT
prolongationbooleanНетФлаг автопролонгации. Только для CONTRACT
contractobjectЗависит от типаСвязанный договор ({ "id": 123, "name": "..." }). Обязательно для ACT

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

ПараметрПравило
nameСтрока длиной 1–128 символов
typeОдно из значений DOCUMENT / CONTRACT / ACT
contractor.idUUID существующего исполнителя организации
metadata.typeUploadДолжно быть равно FILE
metadata.dataBase64-строка PDF, начинающаяся с data:application/pdf;base64,
metadata.durationЦелое число от 1 до 365
metadata.estimatedCostПоложительное число в копейках

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

curl --location "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/documents" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ" \
--data '{
"name": "Договор оказания услуг",
"type": "CONTRACT",
"contractor": { "id": "3f2b8c1e-5a7d-4e9f-8b6a-1c2d3e4f5a6b" },
"metadata": {
"typeUpload": "FILE",
"data": "data:application/pdf;base64,JVBERi0xLjQKJ...",
"startDate": "2026-01-15T14:30:00Z",
"duration": 365,
"estimatedCost": 100000
}
}'

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

{
"requestId": "5e6f7081-9203-1234-efab-234567890123",
"result": {
"id": 124,
"uuid": "650e8400-e29b-41d4-a716-446655440001",
"name": "Договор оказания услуг",
"status": "NEW",
"type": "CONTRACT",
"createdAt": "2026-02-09T12:06:55Z",
"recipient": {
"id": "3f2b8c1e-5a7d-4e9f-8b6a-1c2d3e4f5a6b",
"inn": "770123456789",
"login": "contractor1",
"name": "Иван",
"lastName": "Иванов"
},
"metadata": {
"startDate": "2026-01-15T14:30:00Z",
"duration": 365,
"estimatedCost": 100000
}
},
"success": true
}

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

CodeОписание
VALIDATION_ERRORОшибка валидации тела запроса или метаданных
FORBIDDEN_ERRORОшибка авторизации
COMPANY_DISABLED_EDOУ компании отключён модуль ЭДО
CONTRACTOR_NOT_FOUNDУказанный исполнитель не найден
WRONG_DOCUMENT_CONTRACTOR_TYPEТип исполнителя не позволяет создать документ данного типа
WRONG_DOCUMENT_TYPE_UPLOAD_SPECIFIEDУказан неподдерживаемый способ загрузки (typeUpload)
CANT_READ_DOCUMENT_WITH_SPECIFIED_ENCODED_PDFНе удалось прочитать PDF-файл из Base64 (некорректные данные или формат)
UNABLE_TO_PERFORM_ACTION_WITH_CURRENT_DOCUMENT_DATEДействие невозможно при указанной дате документа (например, startDate в прошлом)
UNKNOWN_ERRORОшибка сервера

 

Обновление документа​

Метод обновляет данные существующего документа. Тип документа изменить нельзя.

Важно: обновление допустимо только для документов в статусе NEW. Для документов в других статусах метод вернёт ошибку UNABLE_TO_PERFORM_ACTION_WITH_CURRENT_DOCUMENT_STATUS.

Запрос​

Метод: PUT URL: https://b2b.selfwork.ru/openapi/v2/organisation/{organisationId}/documents/{documentId}

Path Parameters​

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

Request Body​

Уровень 1Уровень 2ТипОбязательное полеОписание
namestringДаНазвание документа (1–128 символов)
contractorobjectДаИнформация об исполнителе
idstring (uuid)ДаID исполнителя
metadataobjectДаМетаданные документа (тип определяется существующим документом)
durationint32НетСрок действия в днях (1–365)
startDatestringНетДата начала (ISO 8601). Только для CONTRACT
estimatedCostint32НетОриентировочная стоимость в копейках. Только для CONTRACT
prolongationbooleanНетФлаг автопролонгации. Только для CONTRACT

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

curl --location --request PUT "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/documents/124" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ" \
--data '{
"name": "Договор оказания услуг (ред.)",
"contractor": { "id": "3f2b8c1e-5a7d-4e9f-8b6a-1c2d3e4f5a6b" },
"metadata": {
"startDate": "2026-02-01T00:00:00Z",
"duration": 180,
"estimatedCost": 200000
}
}'

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

В теле ответа возвращается обновлённый объект документа в формате, аналогичном методу "Получение документа".

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

CodeОписание
VALIDATION_ERRORОшибка валидации тела запроса или метаданных
FORBIDDEN_ERRORОшибка авторизации
DOCUMENT_NOT_FOUNDДокумент с указанным documentId не найден
DOCUMENT_DELETEDДокумент был удалён
UNABLE_TO_PERFORM_ACTION_WITH_CURRENT_DOCUMENT_STATUSДокумент не в статусе NEW — обновление недоступно
UNABLE_TO_PERFORM_ACTION_WITH_CURRENT_DOCUMENT_DATEДействие невозможно при указанной дате документа
CONTRACTOR_NOT_FOUNDУказанный исполнитель не найден
UNKNOWN_ERRORОшибка сервера

 

Удаление документа​

Метод удаляет документ по его идентификатору.

Важно: удаление допустимо только для документов в статусе NEW. Для документов в других статусах метод вернёт ошибку UNABLE_TO_PERFORM_ACTION_WITH_CURRENT_DOCUMENT_STATUS.

Запрос​

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

Path Parameters​

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

Request Body​

Тело запроса не требуется (Empty Body).

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

curl --location --request DELETE "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/documents/124" \
--header "accept: application/json" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ"

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

{
"requestId": "6f708192-0314-2345-fabc-345678901234",
"result": {},
"success": true
}

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

CodeОписание
FORBIDDEN_ERRORОшибка авторизации
DOCUMENT_NOT_FOUNDДокумент с указанным documentId не найден
DOCUMENT_DELETEDДокумент уже был удалён
UNABLE_TO_PERFORM_ACTION_WITH_CURRENT_DOCUMENT_STATUSДокумент не в статусе NEW — удаление недоступно
UNKNOWN_ERRORОшибка сервера

 

Отправка документов на подписание​

Метод отправляет один или несколько документов исполнителю на подписание.

Запрос​

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

Path Parameters​

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

Request Body​

ПолеТипОбязательноОписание
idsarray[int32]ДаСписок ID документов для отправки на подпись

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

curl --location "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/documents/send-for-signing" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ" \
--data '{
"ids": [124, 125]
}'

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

{
"requestId": "81920314-2536-4567-bcde-567890123456",
"result": {
"successful": [124, 125],
"failed": []
},
"success": true
}

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

ПолеОписание
successfulСписок ID успешно отправленных на подпись документов
failedСписок объектов с ID документов, отправка которых не удалась, и причинами ошибок ({ "id": ..., "error": "..." })

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

Документы обрабатываются массово: документы с ошибками попадают в failed, валидные — отправляются на подпись и попадают в successful. Возможные ошибки уровня запроса и наиболее частые причины попадания документа в failed:

CodeОписание
VALIDATION_ERRORНекорректное тело запроса
FORBIDDEN_ERRORОшибка авторизации
DOCUMENT_NOT_FOUNDДокумент не найден
UNABLE_TO_PERFORM_ACTION_WITH_CURRENT_DOCUMENT_STATUSТекущий статус документа не позволяет отправить его на подпись
WRONG_DOCUMENT_CONTRACTOR_TYPEТип исполнителя несовместим с подписанием данного типа документа
UNKNOWN_ERRORОшибка сервера

 

Подписание документов​

Метод подписывает один или несколько документов от имени компании.

Запрос​

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

Path Parameters​

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

Request Body​

ПолеТипОбязательноОписание
idsarray[int32]ДаСписок ID документов для подписания

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

curl --location "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/documents/sign" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ" \
--data '{
"ids": [124, 125]
}'

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

{
"requestId": "92031425-3647-5678-cdef-678901234567",
"result": {
"successful": [124, 125],
"failed": []
},
"success": true
}

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

ПолеОписание
successfulСписок ID успешно подписанных документов
failedСписок объектов с ID документов, подписание которых не удалось, и причинами ошибок

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

Документы обрабатываются массово. Возможные ошибки уровня запроса и попадания в failed:

CodeОписание
VALIDATION_ERRORНекорректное тело запроса
FORBIDDEN_ERRORОшибка авторизации
DOCUMENT_NOT_FOUNDДокумент не найден
UNABLE_TO_PERFORM_ACTION_WITH_CURRENT_DOCUMENT_STATUSДокумент не находится в статусе, допускающем подписание
UNKNOWN_ERRORОшибка сервера

 

Отклонение документов​

Метод отклоняет один или несколько документов.

Запрос​

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

Path Parameters​

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

Request Body​

ПолеТипОбязательноОписание
idsarray[int32]ДаСписок ID документов для отклонения

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

curl --location "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/documents/reject" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ" \
--data '{
"ids": [124]
}'

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

{
"requestId": "a3142536-4758-6789-def0-789012345678",
"result": {
"successful": [124],
"failed": []
},
"success": true
}

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

CodeОписание
VALIDATION_ERRORНекорректное тело запроса
FORBIDDEN_ERRORОшибка авторизации
DOCUMENT_NOT_FOUNDДокумент не найден
UNABLE_TO_PERFORM_ACTION_WITH_CURRENT_DOCUMENT_STATUSДокумент не находится в статусе, допускающем отклонение
UNKNOWN_ERRORОшибка сервера

 

Расторжение документов​

Метод расторгает один или несколько документов.

Запрос​

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

Path Parameters​

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

Request Body​

ПолеТипОбязательноОписание
idsarray[int32]ДаСписок ID документов для расторжения

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

curl --location "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/documents/terminate" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ" \
--data '{
"ids": [124]
}'

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

{
"requestId": "b4253647-5869-789a-ef01-890123456789",
"result": {
"successful": [124],
"failed": []
},
"success": true
}

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

CodeОписание
VALIDATION_ERRORНекорректное тело запроса
FORBIDDEN_ERRORОшибка авторизации
DOCUMENT_NOT_FOUNDДокумент не найден
UNABLE_TO_PERFORM_ACTION_WITH_CURRENT_DOCUMENT_STATUSДокумент не находится в статусе, допускающем расторжение
UNABLE_TO_PERFORM_ACTION_WITH_CURRENT_DOCUMENT_DATEРасторжение невозможно при текущей дате документа
UNKNOWN_ERRORОшибка сервера

 

Импорт документов из файла​

Метод импортирует список документов из Excel-файла. Поддерживаются документы одного типа за раз.

Запрос​

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

Path Parameters​

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

Request Body​

ПолеТипОбязательноОписание
datastringДаExcel-файл в кодировке Base64. Префикс: data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64, (либо vnd.ms-excel/msexcel/x-msexcel)
typestringДаТип импортируемых документов: DOCUMENT / CONTRACT / ACT
ignoreErrorsbooleanНетСоздать документы по валидным строкам, даже если в файле есть ошибочные. По умолчанию false: любая ошибка строки останавливает импорт, документы не создаются

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

ПараметрПравило
dataСтрока Base64 c корректным MIME-префиксом для Excel
typeОдно из значений DOCUMENT / CONTRACT / ACT
ignoreErrorstrue / false

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

curl --location "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/documents/import" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ" \
--data '{
"data": "data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,UEsDBBQABg...",
"type": "CONTRACT",
"ignoreErrors": true
}'

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

{
"requestId": "c5364758-697a-89ab-f012-901234567890",
"result": {
"successfulItems": [
{
"id": 124,
"uuid": "650e8400-e29b-41d4-a716-446655440001",
"name": "Договор оказания услуг",
"status": "NEW",
"type": "CONTRACT",
"hash": "a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e",
"createdAt": "2026-02-09T12:06:55Z",
"recipient": {
"id": "3f2b8c1e-5a7d-4e9f-8b6a-1c2d3e4f5a6b",
"inn": "770123456789",
"login": "contractor1",
"name": "Иван",
"lastName": "Иванов",
"middleName": "Иванович"
},
"metadata": {
"startDate": "2026-02-10T00:00:00Z",
"duration": 365,
"estimatedCost": 100000
}
}
],
"errors": [
{
"row": 4,
"message": "Исполнитель с ИНН 770000000000 не найден в организации",
"attributes": { "inn": "770000000000" }
}
]
},
"success": true
}

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

ПолеОписание
successfulItemsСозданные документы в формате метода «Получение документа»
errorsОшибки импорта по строкам файла
errors[].rowНомер строки в файле
errors[].messageТекст ошибки (несколько ошибок одной строки перечисляются через ; )
errors[].attributesДополнительные атрибуты ошибки, например inn — ИНН исполнителя из строки (опционально)

Если в файле есть ошибочные строки, а ignoreErrors не передан или равен false, метод возвращает успешный ответ с пустым successfulItems и полным списком errors — ни один документ не создаётся. С ignoreErrors: true документы создаются по валидным строкам; отказ ЭДО по отдельной строке тоже попадает в errors, остальные строки продолжают обрабатываться.

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

Построчные ошибки импорта возвращаются в поле errors тела успешного ответа (см. выше). Ниже — ошибки уровня запроса:

CodeОписание
VALIDATION_ERRORОшибка валидации тела запроса (неверный MIME-префикс, отсутствует поле type, и т.п.)
FORBIDDEN_ERRORОшибка авторизации
COMPANY_DISABLED_EDOУ компании отключён модуль ЭДО
CANT_READ_DOCUMENT_WITH_SPECIFIED_ENCODED_XLSXНе удалось прочитать Excel-файл из Base64 (некорректные данные или формат)
UNKNOWN_ERRORОшибка сервера