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

Сделки

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

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

Запрос​

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

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

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

Имя (name)Тип значения (value)Пример значенияОписание
STATUSarray[string]["COMPLETED", "PAYMENT_IN_PROGRESS"]Возвращает сделки с указанными статусами (см. справочник ниже)
ANNOUNCEMENT_IDarray[number][812, 759]Поиск сделок, привязанных к конкретным ID объявлений
GROUP_IDarray[string]["6942bde29c4ba8df5b14653f"]Фильтрация по ID тэга сделки (Mongo ObjectId)
GROUP_PRESENCEbooleantruetrue — только сделки с хотя бы одним тэгом; false — только без тэгов
INDIVIDUAL_INNarray[string]["160285864492"]Фильтрация по ИНН исполнителей
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"}Диапазон дат последнего изменения сделки
AMOUNTдиапазон чисел{"from": 10000, "to": 100000}Диапазон суммы сделки в копейках
LAST_PAYMENT_STATUSarray[string]["SUCCESS"]Фильтрация по статусу последней выплаты: IN_PROGRESS, SUCCESS, FAILED
LAST_PAYMENT_SUBSTATUSarray[string]["BALANCE_ERROR"]Фильтрация по субстатусу последней выплаты (см. «Субстатусы выплаты» ниже)
WORK_TIMEstring"Пн–Пт, 9:00–18:00"Отбор по времени выполнения задачи из объявления (поле advertisementWorkTime); при массиве берётся первое значение

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

Поле (field)Описание
STATUSСтатус сделки
ANNOUNCEMENT_IDID объявления
CREATED_ATДата создания сделки
UPDATED_ATДата последнего изменения сделки
AMOUNTСумма сделки
FULL_NAMEФИО исполнителя

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

Текстовый поиск (query) выполняет поиск частичного совпадения по полю назначение платежа.

Доступные статусы сделок (STATUS)​

СтатусОписание
WORK_IN_PROGRESSИсполнитель выполняет работу
AWAITING_PAYMENTРабота завершена, сделка ожидает подтверждения оплаты со стороны компании
PAYMENT_IN_PROGRESSПлатеж отправлен в банк и находится в процессе обработки
COMPLETEDВыплата успешно проведена, сделка закрыта
REJECTEDСделка была отклонена или произошла ошибка при оплате
PROPOSEDЭтап предварительного предложения условий сделки
CANCELLEDСделка отменена
PAYMENT_FAILED_CRITICALКритическая ошибка при проведении платежа

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

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

Пример ответа​

{
"requestId": "1739132245678-abc-123",
"success": true,
"result": {
"lastId": "65b2a1f8e4b0a1234567890b",
"items": [
{
"id": "65b2a1f8e4b0a1234567890a",
"offerId": "offer_98765",
"announcementId": 812,
"status": "COMPLETED",
"amount": 150000,
"firstName": "Иван",
"inn": "770102030405",
"updatedAt": "2026-02-09T14:30:00.000Z"
},
{
"id": "65b29f12e4b0b9876543210c",
"offerId": "offer_98766",
"announcementId": 810,
"status": "PAYMENT_IN_PROGRESS",
"amount": 275050,
"firstName": "Алексей",
"inn": "500100200300",
"updatedAt": "2026-02-09T15:00:00.000Z"
}
]
}
}

Таблица значений полей ответа​

ПолеОписание
requestIdУникальный ID запроса
successСтатус выполнения
resultКонтейнер данных
lastIdID последней записи
itemsСписок сделок
items.idID сделки
items.offerIdID предложения
items.announcementIdID объявления
items.statusСтатус сделки
items.amountСумма сделки
items.firstNameИмя исполнителя
items.innИНН исполнителя
items.updatedAtДата обновления

Получение сделки по ID​

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

Запрос​

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

Path Parameters​

ПараметрОписание
organisationIdИдентификатор организации
dealIdИдентификатор сделки

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

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

Пример ответа​

{
"requestId": "8f7f6bfb-fd46-4048-ae6f-cb20f7b5dcaa",
"result": {
"id": "58735973801a37083e40b33c",
"offerId": "69846072912b38194f51c430",
"announcementId": 123,
"organisationId": "6942bde29c4ba8df5b14653f",
"executorId": "6968d0e58adb5d56f5420178",
"status": "AWAITING_PAYMENT",
"amount": 200000,
"paymentPurpose": "Pay",
"stateChangedBy": {
"_id": "6968d0e58adb5d56f5420178",
"name": "Иван",
"lastName": "Иванов",
"phone": "+79998887766",
"type": "selfworker"
},
"declineComment": null,
"createdAt": "2026-02-05T09:19:00.449Z",
"updatedAt": "2026-02-05T09:21:12.230Z",
"phone": "+79998887766",
"firstName": "Иван",
"lastName": "Иванов",
"middleName": "",
"inn": "111122223333",
"advertisementName": "тттт",
"lastPaymentStatus": "FAILED",
"lastPaymentSubstatus": "BALANCE_ERROR",
"payments": [
{
"id": "6984a1c2e4b0a12345678901",
"createdAt": "2026-02-05T09:20:01.120Z",
"updatedAt": "2026-02-05T09:21:12.230Z",
"platformPaymentId": "0b8f6a52-3c1d-4e7a-9f2b-6d4c8e1a7b35",
"platformPaymentNumber": 1001,
"dealId": "58735973801a37083e40b33c",
"amount": 200000,
"purpose": "Pay",
"status": "FAILED",
"substatus": "BALANCE_ERROR",
"contractor": {
"platformId": "3f2a9c4e-7b1d-4a6e-8c5f-1e9d2b7a4c60",
"inn": "111122223333",
"name": "Иванов Иван",
"phone": "+79998887766"
},
"paymentMethod": {
"type": "BANK_CARD",
"details": {
"first4": "1111",
"last4": "4444"
}
},
"processedAt": "2026-02-05T09:21:12.230Z"
}
]
},
"success": true
}

Ответ (Response Body)​

ПолеОписание
requestIdУникальный ID транзакции запроса
successСтатус выполнения запроса (true/false)
resultОбъект с подробными данными сделки
idУникальный системный ID сделки
offerIdID оффера, на базе которого создана сделка
announcementIdЧисловой ID связанного объявления
organisationIdID организации-заказчика
executorIdВнутренний ID исполнителя в Маркетплейсе (только для чтения). С исполнителями организации сопоставлять по inn
statusТекущий статус сделки
amountСумма сделки в копейках
paymentPurposeНазначение платежа
stateChangedByКто последним изменил статус: объект _id, name, lastName, phone, type (selfworker — исполнитель, organisation — организация, customer); null — статус изменила система
declineCommentnull
createdAtДата и время создания сделки
updatedAtДата последнего обновления сделки
phoneКонтактный телефон исполнителя
firstNameИмя исполнителя
lastNameФамилия исполнителя
innИНН исполнителя
advertisementNameНазвание услуги из объявления
lastPaymentStatusСтатус последней выплаты: IN_PROGRESS, SUCCESS, FAILED; null — выплат не было
lastPaymentSubstatusСубстатус последней выплаты (см. «Субстатусы выплаты» ниже); null — нет
paymentsМассив выплат по сделке (см. ниже)

В примере выше выплата отклонена финансовым сервисом из-за нехватки средств на счёте (BALANCE_ERROR), и сделка вернулась в статус AWAITING_PAYMENT: после пополнения счёта оплату можно повторить.

Поля объекта выплаты (payments[])​

ПолеТипОписание
idstringID записи о выплате в сделке
createdAtstringДата создания записи (ISO 8601)
updatedAtstringДата последнего обновления записи (ISO 8601)
platformPaymentIdstring (uuid)ID выплаты — совпадает с id операции в разделе «Операции»; у исторических выплат отсутствует
platformPaymentNumbernumberНомер выплаты для отображения (number операции); у исторических выплат отсутствует
externalPaymentIdnumberID исторической выплаты; у новых выплат отсутствует
externalRegistryIdnumberID реестра исторической выплаты; у новых выплат отсутствует
dealIdstringСсылка на сделку
amountnumberСумма выплаты в копейках
purposestringНазначение платежа
statusstringУпрощённый статус выплаты: IN_PROGRESS, SUCCESS, FAILED
substatusstringПричина ошибки выплаты (опционально, см. «Субстатусы выплаты» ниже)
taxRatePercentnumberНалоговая ставка НПД в процентах
serviceCommissionnumberКомиссия сервиса «Самозанятые» в копейках
contractobjectСнимок договора (см. «Поля объекта договора/акта» ниже)
actobjectСнимок акта выполненных работ (см. «Поля объекта договора/акта» ниже)
receiptobjectСнимок чека (см. «Поля объекта чека» ниже)
contractorobjectСнимок данных исполнителя (см. «Поля снимка исполнителя» ниже)
paymentMethodobjectСнимок способа выплаты (см. «Поля способа выплаты» ниже)
processedAtstringДата обработки выплаты (ISO 8601)

Поля объекта договора/акта (payments[].contract, payments[].act)​

ПолеТипОписание
uuidstringUUID документа
namestringНазвание документа
hashstringSHA256 хеш документа
statusstringСтатус документа
urlstringURL документа
signedUrlstringURL подписанного документа
signedAtstringДата подписания (ISO 8601)
createdAtstringДата создания (ISO 8601)
externalDocumentIdnumberЧисловой идентификатор документа в ЭДО

Поля объекта чека (payments[].receipt)​

ПолеТипОписание
idnumberЧисловой ID исторического чека; у чеков, зарегистрированных платформой, отсутствует (чек определяется по fnsReceiptId)
servicestringНазвание сервиса
amountnumberСумма в копейках
quantitynumberКоличество предоставленных услуг
fnsReceiptIdstringID чека в ФНС
urlstringURL чека на внешнем ресурсе (ФНС)
localUrlstringURL оффлайн-чека в системе
datestringДата чека
contractorInnstringИНН получателя платежа
innstringИНН компании или плательщика
incomeTypestringИсточник/тип дохода
messagestringСообщение по чеку
attributesarrayАтрибуты чека (name, value, title, views)

Поля снимка исполнителя (payments[].contractor)​

ПолеТипОписание
platformIdstring (uuid)ID исполнителя в организации (как в разделе «Исполнители»); у исторических выплат отсутствует
innstringИНН исполнителя
namestringФИО или название
phonestringТелефон
externalIdnumberID исполнителя исторической выплаты; у новых выплат отсутствует

Поля способа выплаты (payments[].paymentMethod)​

ПолеТипОписание
typestringТип способа оплаты: BANK_CARD, BANK_ACCOUNT, BANK_FPS
detailsobjectРеквизиты, состав зависит от type (см. ниже)

Состав details в зависимости от type:

typeПоля details
BANK_CARDfirst4 — первые 4 цифры карты, last4 — последние 4 цифры карты
BANK_ACCOUNTaccountNumber — номер счёта, bik — БИК банка
BANK_FPSphone — телефон в СБП, bankName — банк, bankId — ID банка в СБП

Субстатусы выплаты (substatus, lastPaymentSubstatus)​

Субстатус заполняется у неуспешной выплаты и объясняет причину ошибки. Основные значения:

СубстатусОписание
BALANCE_ERRORФинансовый сервис отказал в выплате: на счёте организации не хватило средств
PAYOUT_LIMIT_EXCEEDEDФинансовый сервис отказал в выплате: превышен лимит тарифа
SELFEMPLOYED_MAX_LIMIT_ERRORФинансовый сервис отказал в выплате: превышен годовой лимит дохода самозанятого
PROVIDER_REJECTEDФинансовый сервис отказал в выплате по иной причине
RECEIPT_REGISTRATION_REJECTEDФНС окончательно отказала в регистрации дохода (не самозанятый, нет привязки, лимит, данные); выплата не отправлялась
RECEIPT_REGISTRATION_TIMEOUTДоход не удалось зарегистрировать в ФНС за отведённый срок; выплата не отправлялась
REQUISITE_RESTRICTEDРеквизит выплаты в стоп-листе платформы; выплата не отправлялась
CONTRACTOR_NOT_FOUNDИсполнитель не найден в организации
CONTRACTOR_HAS_WRONG_STATUSИсполнитель не активен в организации
SELFEMPLOYED_NOT_BOUNDИсполнитель не привязал платформу как партнёра в «Мой налог»
PAYMENT_METHOD_NOT_FOUNDУ исполнителя нет реквизитов для выплаты
CONTRACTOR_REQUISITE_IS_WRONGТип реквизитов исполнителя не поддерживается
CONTRACT_NOT_FOUNDНет подписанного договора с исполнителем
ACT_NOT_SIGNEDАкт не подписан исполнителем в срок
CONNECT_DEAL_TO_PAYMENT_ERRORНе удалось связать выплату со сделкой до запуска оплаты
CREATE_REGISTRY_WITH_PAYOUT_ERRORНе удалось создать или запустить реестр с выплатой
PAY_REGISTRY_ERRORИсход запуска оплаты реестра неизвестен; требуется ручная проверка

Прочие значения перечисления (SERVICE_ERROR, FNS_ERROR, ACT_REJECT_ERROR, SELFEMPLOYED_LIMIT_ERROR, LEGAL_IS_BLOCKED_ERROR, SUPPORT_CANCEL, BLOCKED_BY_FROD, PROVIDER_NOT_SUPPORT_PHYSICAL_PAYMENT, NOT_SELFEMPLOYED, AMOUNT_NOT_SPECIFIED, PURPOSE_NOT_SPECIFIED, REGISTRY_UNSUPPORTED_CONTRACTOR_TYPE, COMPANY_DISABLED_EDO, CREATE_PAY_REGISTRY_TASK_ERROR) встречаются у исторических выплат.

После неуспешной выплаты сделка возвращается в статус AWAITING_PAYMENT, и оплату можно повторить. Исключение — PAY_REGISTRY_ERROR и CREATE_PAY_REGISTRY_TASK_ERROR: оплата могла быть запущена, поэтому сделка остаётся в PAYMENT_IN_PROGRESS до ручной проверки.

Доступные статусы сделок (STATUS)​

СтатусОписание
WORK_IN_PROGRESSИсполнитель выполняет работу
AWAITING_PAYMENTРабота завершена, сделка ожидает подтверждения оплаты со стороны компании
PAYMENT_IN_PROGRESSПлатеж отправлен в банк и находится в процессе обработки
COMPLETEDВыплата успешно проведена, сделка закрыта
REJECTEDСделка была отклонена или произошла ошибка при оплате
PROPOSEDЭтап предварительного предложения условий сделки

Формирование предложения по выплате (Акт)​

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

Запрос​

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

Path Parameters​

ПараметрОписание
organisationIdИдентификатор организации
dealIdИдентификатор сделки

Request Body​

ПолеТипОбязательноОписание
amountnumberДаСумма выплаты в копейках
paymentPurposestringДаНазначение платежа

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

ПараметрПравило
amountЦелое положительное число, максимум 100 000 000 копеек (1 000 000 рублей)
paymentPurposeНепустая строка

Таблица ограничений по статусам​

Статус сделкиРазрешено отправлять актОписание причины
PROPOSEDНетБыла уже предложена сумма
WORK_IN_PROGRESSДаРабота выполняется или завершена, можно фиксировать сумму
AWAITING_PAYMENTНетСделка уже в процессе оплаты
PAYMENT_IN_PROGRESSНетДеньги уже отправлены в банк. Изменение суммы невозможно
COMPLETEDНетСделка успешно выплачена и закрыта
REJECTEDДаСделка была отклонена

Пример​

curl --location "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/deals/6985de55458a10588ab84c73/act/send" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ" \
--data '{
"amount": 10000,
"paymentPurpose": "Оплата по счету 456"
}'

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

{
"requestId": "29d7d5e3-3132-4e0d-afa2-025a2ffcb25d",
"result": {
"id": "6978cb90155e1f62d5150a73",
"offerId": "6978cb83155e1f62d5150a56",
"announcementId": 568,
"organisationId": "6942bde29c4ba8df5b14653f",
"executorId": "6964d3202c5f0714d4ef6c0e",
"status": "PROPOSED",
"amount": 10000,
"paymentPurpose": "Оплата по счету 456",
"stateChangedBy": "6942bde29c4ba8df5b14653f",
"declineComment": null,
"createdAt": "2026-01-27T14:28:32.634Z",
"updatedAt": "2026-02-10T11:38:42.929Z",
"phone": "+79998887766",
"firstName": "Иван",
"lastName": "Петров",
"middleName": "",
"inn": "111222333",
"advertisementName": "Test solum"
},
"success": true
}

Ответ (Response Body)​

ПолеОписание
requestIdУникальный идентификатор запроса
successСтатус выполнения запроса
resultОбъект, содержащий актуальные данные сделки после обновления
idУникальный системный идентификатор сделки
offerIdИдентификатор отклика (предложения), на основании которого была создана эта сделка
announcementIdЧисловой ID объявления (задачи), к которому привязана данная сделка
organisationIdУникальный идентификатор организации (заказчика), создавшей сделку
executorIdВнутренний ID исполнителя в Маркетплейсе (только для чтения). С исполнителями организации сопоставлять по inn
statusТекущий статус сделки. В данном контексте PROPOSED или AWAITING_PAYMENT после отправки акта
amountСумма выплаты, указанная в копейках
paymentPurposeТекстовое назначение платежа, которое будет отображено в официальном акте и банковской выписке
stateChangedByИдентификатор пользователя или системного компонента, который последним изменил статус сделки
declineCommentКомментарий к причине отклонения сделки. Заполняется только в случае отказа
createdAtДата и время создания сделки
updatedAtДата и время последнего изменения сделки
phoneКонтактный номер телефона исполнителя
firstNameИмя исполнителя
lastNameФамилия исполнителя
middleNameОтчество исполнителя
innИНН исполнителя
advertisementNameКраткое название (заголовок) услуги из исходного объявления

 

Отправка сделок в оплату​

Метод переводит сделку из статуса "Ожидает оплаты" в статус "Платеж в обработке" и запускает выплату исполнителю со счёта компании. Требует доступ org.deals.pay.

Для сделки создаётся реестр выплат (source: "DEALS", комментарий «Оплата сделок по задачам») с одной выплатой; реестр и выплата видны в разделе «Операции». Итог выплаты приходит асинхронно — см. «Итог выплаты» ниже.

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

Path Parameters​

ПараметрОписание
organisationIdИдентификатор организации
dealIdID сделки, которую нужно оплатить

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

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

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

{
"requestId": "87a5cbe2-2c67-45ad-a183-59fe9cbe71f2",
"result": {
"registry": {
"id": "6a1f3c2e-8b4d-4f7a-9e21-3c5d7b9a1f04",
"number": "17",
"isEdiEnabled": true,
"status": "PROCESSING",
"comment": "Оплата сделок по задачам",
"recipientType": "SELFEMPLOYED",
"totalSum": 10000,
"totalCommission": 0,
"paidSum": 0,
"paidCommission": 0,
"paymentsCount": 1,
"paymentsSuccessCount": 0,
"paymentsErrorCount": 0,
"paymentsProcessingCount": 1,
"createdAt": "2026-02-11T15:38:43.000Z",
"updatedAt": "2026-02-11T15:38:43.000Z",
"paidAt": "2026-02-11T15:38:43.000Z",
"source": "DEALS",
"createdBy": {
"id": "c7d2e1f0-4a3b-4c5d-8e9f-0a1b2c3d4e5f",
"name": "Иванов Иван Иванович"
}
},
"payout": {
"id": "0b8f6a52-3c1d-4e7a-9f2b-6d4c8e1a7b35",
"number": 1001,
"registryId": "6a1f3c2e-8b4d-4f7a-9e21-3c5d7b9a1f04",
"contractor": {
"id": "3f2a9c4e-7b1d-4a6e-8c5f-1e9d2b7a4c60",
"lastName": "Иванов",
"name": "Иван",
"middleName": "Петрович",
"inn": "842495811296"
},
"amount": 10000,
"purpose": "Оплата по счету 456",
"paymentMethod": {
"type": "BANK_CARD",
"details": {
"first4": "1111",
"last4": "4444"
}
},
"status": "CHECKED",
"paymentStatus": "IN_PROGRESS",
"failureReason": null,
"failureMessage": null,
"contract": {
"id": "9d4e2b1a-6c3f-4e8d-a7b5-2f1c0e9d8a76",
"name": "Договор оказания услуг",
"status": "SIGNED",
"url": "https://example.com/contract.pdf",
"signedUrl": "https://example.com/contract-signed.pdf",
"signedAt": "2026-02-01T10:00:00.000Z",
"createdAt": "2026-02-01T09:00:00.000Z"
},
"taxRetention": null,
"subjectType": "TASK_DEAL",
"subjectId": "698c28a82963623c3188c748",
"registrationAt": "2026-02-11T15:38:43.000Z",
"createdAt": "2026-02-11T15:38:43.000Z"
}
},
"success": true
}

Ответ (Response Body)​

Основные поля ответа​

ПолеОписание
requestIdУникальный идентификатор запроса
successОбщий статус выполнения операции
resultКонтейнер, содержащий данные о реестре и выплате

Поля объекта registry​

ПолеТипОписание
idstring (uuid)Идентификатор реестра
numberstringНомер реестра в организации
isEdiEnabledbooleanТребовать подписанный договор и выпускать акт по каждой выплате
statusstringСтатус реестра: NEW, PREPROCESSED, CHECKED_SUCCESS, CHECKED_ERROR, PROCESSED_SUCCESS, PROCESSED_WITH_ERROR, ERROR, CHECKED_NO_PAYOUTS, PROCESSING
commentstringКомментарий к реестру (опционально)
recipientTypestringТип получателей: SELFEMPLOYED, PHYSICAL
totalSumnumberСумма всех выплат реестра в копейках
totalCommissionnumberКомиссия, удержанная финансовым сервисом по выплатам реестра с итогом, в копейках
paidSumnumberСумма успешных выплат в копейках
paidCommissionnumberКомиссия успешных выплат в копейках
paymentsCountnumberКоличество выплат в реестре
paymentsSuccessCountnumberКоличество успешных выплат
paymentsErrorCountnumberКоличество выплат с ошибкой
paymentsProcessingCountnumberКоличество выплат в обработке
createdAt / updatedAtstringДата создания и последнего обновления реестра (ISO 8601)
paidAtstringДата запуска оплаты (ISO 8601, опционально)
processedAtstringДата получения итогового статуса (ISO 8601, опционально)
sourceRegistryIdstring (uuid)Реестр, неуспешные выплаты которого повторяет этот (опционально)
sourcestringКто управляет реестром: MANUAL — кабинет, DEALS — оплата сделок. Реестр DEALS из кабинета не оплачивают, не правят и не удаляют
repeatedRegistryIdstring (uuid)Реестр-повтор этого реестра (опционально)
createdByobjectАвтор реестра: id — идентификатор пользователя (null — реестр создан системой), name — имя пользователя на момент создания

Поля объекта payout​

ПолеТипОписание
idstring (uuid)Идентификатор выплаты; совпадает с platformPaymentId в выплатах сделки
numbernumberЧисловой номер выплаты; совпадает с platformPaymentNumber в выплатах сделки
registryIdstring (uuid)Реестр выплаты
contractorobjectИсполнитель: id (UUID исполнителя в организации), lastName, name, middleName, inn
amountnumberСумма выплаты (до удержания налога) в копейках
purposestringНазначение платежа
paymentMethodobject, nullСпособ выплаты: type и details (состав зависит от типа, см. «Поля способа выплаты» выше); null — реквизит не выбран
statusstringСтатус выплаты: NEW, CHECKED, ERROR, PAYING, PAYED_SUCCESS, PAYED_ERROR, PAYED_LIMITS_ERROR, MANUAL_PAY, NETWORK_ERROR, ON_SIGN, SIGNED, DECLINED, REPEATED_PAYMENT, NOT_HAVE_MONEY, CANCELLATION, CANCELED
substatusstringДетализация статуса выплаты (опционально)
paymentStatusstringУпрощённый статус: DRAFT, IN_PROGRESS, SUCCESS, FAILED
failureReasonstring, nullПричина ошибки выплаты (значения — как в «Субстатусах выплаты» выше); null — ошибки нет
failureMessagestring, nullТекст ошибки — от проверки перед оплатой или от финансового сервиса
contractobjectДоговор (опционально): id, name, status, url, signedUrl, signedAt, createdAt
taxRatePercentnumberНалоговая ставка в процентах (у исторических выплат, опционально)
partnerCommissionnumberКомиссия платформы по тарифу в копейках (опционально)
taxRetentionnumber, nullНалог, удержанный в копилку исполнителя, в копейках; null — без удержания
subjectTypestringПредмет выплаты; для оплаты сделки — TASK_DEAL
subjectIdstringИдентификатор предмета выплаты — ID сделки
registrationAtstringДата проведения выплаты (итогового статуса), а до неё — дата создания (ISO 8601)
createdAtstringДата создания выплаты (ISO 8601)

Итог выплаты​

Успешный ответ означает, что выплата прошла проверки и отправлена в обработку (paymentStatus: "IN_PROGRESS"), а не что деньги уже перечислены. Баланс счёта и лимиты тарифа проверяет финансовый сервис при проведении операции, поэтому отказы по ним (BALANCE_ERROR — не хватило средств, PAYOUT_LIMIT_EXCEEDED — превышен лимит тарифа) в ответе метода не приходят: они становятся итогом выплаты.

Итог отслеживайте по сделке: получите сделку по ID и проверьте status, lastPaymentStatus, lastPaymentSubstatus и выплату в payments[], либо найдите выплату в разделе «Операции» по payout.id. При успехе сделка переходит в COMPLETED. При неуспешной выплате сделка, как правило, возвращается в AWAITING_PAYMENT, и оплату можно повторить (см. «Субстатусы выплаты» выше).

Таблица возможных ошибок​

Если сделку не удалось отправить в оплату, метод отвечает ошибкой 400 с кодом OPERATION_FAILED, а сделка остаётся в статусе AWAITING_PAYMENT (откат статуса может занять несколько секунд). Исключение — сбой, при котором исход запуска оплаты неизвестен: сделка остаётся в PAYMENT_IN_PROGRESS, пока сверка не установит исход.

Категория проблемыТекст ошибки в поле messageПричина
СделкаСделка не найденаСделки с таким ID нет в организации
Неверный статусСделка имеет неверный статус для данной операции: PROPOSED (ожидается: AWAITING_PAYMENT)Сделка ещё на согласовании
Неверный статусСделка имеет неверный статус для данной операции: WORK_IN_PROGRESS (ожидается: AWAITING_PAYMENT)Исполнитель ещё не закончил работу
Неверный статусСделка имеет неверный статус для данной операции: PAYMENT_IN_PROGRESS (ожидается: AWAITING_PAYMENT)Оплата уже запущена
Неверный статусСделка имеет неверный статус для данной операции: COMPLETED (ожидается: AWAITING_PAYMENT)Оплата по этой сделке уже успешно завершена
СуммаСумма сделки {dealId} не задана или равна нулюВ сделке нет суммы к оплате
ОграничениеИНН {inn} - сотрудничество с исполнителем ограниченоНа исполнителя заведено ограничение сотрудничества
ИсполнительИсполнитель не найден в организацииИсполнитель не подключён к организации
ИсполнительИсполнитель не активен в организацииСвязь организации с исполнителем не активна
Налоги / НПДИсполнитель не привязал платформу как партнёра в «Мой налог»Нет привязки платформы в «Мой налог»
РеквизитыУ исполнителя нет реквизитов для выплатыУ исполнителя не привязана карта, счёт или СБП
РеквизитыТип реквизитов не поддерживаетсяВыбранный тип реквизитов не поддерживается
ДоговорНет подписанного договора с исполнителемРеестр с ЭДО требует подписанного договора
ПовторСделка {dealId} не переведена в оплату: время на оплату пачки истекло (...), повторите оплатуОплату нужно повторить

Все ошибки приходят в стандартном формате

{
"requestId": "74a00162-35fd-4a7f-bb38-8d358e1eb457",
"error": {
"code": "OPERATION_FAILED",
"message": "ID: 698ccdd.... - [ТЕКСТ ОШИБКИ ИЗ ТАБЛИЦЫ]",
"params": []
},
"success": false
}

 

Отмена сделки​

Метод позволяет компании отменить одну сделку по её уникальному идентификатору. После успешного выполнения запроса возвращается актуальное состояние сделки со статусом CANCELLED.

Запрос​

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

Path Parameters​

ПараметрОписание
organisationIdИдентификатор организации
dealIdИдентификатор сделки

Request Body​

ПолеТипОбязательноОписание
declineCommentstringНетКомментарий к причине отмены сделки

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

curl --location "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/deals/6985de55458a10588ab84c73/cancel" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ" \
--data '{
"declineComment": "Произошла непредвиденная ситуация"
}'

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

{
"requestId": "f55c9e1f-9d4f-4f2d-8a6a-b6f3e89f4621",
"result": {
"id": "6985de55458a10588ab84c73",
"offerId": "6978cb83155e1f62d5150a56",
"announcementId": 568,
"organisationId": "6942bde29c4ba8df5b14653f",
"executorId": "6964d3202c5f0714d4ef6c0e",
"status": "CANCELLED",
"amount": 10000,
"paymentPurpose": "Оплата по счету 456",
"stateChangedBy": "6942bde29c4ba8df5b14653f",
"declineComment": "Произошла непредвиденная ситуация",
"createdAt": "2026-01-27T14:28:32.634Z",
"updatedAt": "2026-02-10T12:05:18.929Z",
"phone": "+79998887766",
"firstName": "Иван",
"lastName": "Петров",
"middleName": "",
"inn": "111222333",
"advertisementName": "Test solum"
},
"success": true
}

Ответ (Response Body)​

ПолеОписание
requestIdУникальный идентификатор запроса
successСтатус выполнения запроса
resultОбъект, содержащий актуальные данные сделки после отмены
idУникальный системный идентификатор сделки
offerIdИдентификатор отклика (предложения), на основании которого была создана сделка
announcementIdЧисловой ID объявления (задачи), к которому привязана данная сделка
organisationIdУникальный идентификатор организации (заказчика), создавшей сделку
executorIdВнутренний ID исполнителя в Маркетплейсе (только для чтения). С исполнителями организации сопоставлять по inn
statusТекущий статус сделки. После успешной отмены принимает значение CANCELLED
amountСумма выплаты, указанная в копейках
paymentPurposeНазначение платежа
stateChangedByИдентификатор пользователя или системного компонента, который последним изменил статус сделки
declineCommentКомментарий к причине отмены сделки
createdAtДата и время создания сделки
updatedAtДата и время последнего изменения сделки
phoneКонтактный номер телефона исполнителя
firstNameИмя исполнителя
lastNameФамилия исполнителя
middleNameОтчество исполнителя
innИНН исполнителя
advertisementNameКраткое название (заголовок) услуги из исходного объявления