Выплаты
Выплата — заявка на перечисление партнёру заработанного вознаграждения. Через внешний API заявку можно посмотреть, создать и провести по статусам — например, если решение о выплате принимает ваша бухгалтерская система, а не администратор в интерфейсе.
Все пути ниже даны относительно базового адреса /api/external, каждый запрос
требует заголовок x-api-key — см. Внешний API.
Какие бывают статусы выплаты
Заголовок раздела «Какие бывают статусы выплаты»| Статус | Что означает |
|---|---|
Requested | заявка создана, ждёт решения |
Approved | подтверждена, ждёт перечисления |
Paid | деньги перечислены партнёру |
Rejected | отклонена |
Canceled | партнёр отменил заявку сам, в личном кабинете |
Заявка создаётся сразу в статусе Requested. Перевести её в Approved, Paid
или Rejected можно и через внешний API, и из админки — этим
методом или соответствующей кнопкой в карточке заявки. Статус Canceled
доступен только партнёру: ни администратор, ни внешний API отменить чужую
заявку не могут.
Как получить список выплат
Заголовок раздела «Как получить список выплат»GET /api/external/payoutx-api-key: ваш-ключМетод возвращает все заявки контура одним списком — без пагинации и без фильтра по статусу, в отличие от списка в админке. Заявки отсортированы по дате создания, от новых к старым.
[ { "id": "7c1f…", "number": 42, "partner": { "id": "3d21…", "firstName": "Иван", "lastName": "Иванов", "middleName": null, "email": "partner@example.com" }, "amount": 15000, "status": "Paid", "requisiteId": "9b3e…", "requisite": { "type": "BankAccount" }, "innSnapshot": "500100732259", "partnerComment": null, "adminComment": "Ежемесячная выплата", "processedBy": { "id": "a001…", "email": "admin@example.com", "firstName": "Пётр", "lastName": "Петров", "middleName": null }, "createdAt": "2026-08-01T10:00:00.000Z", "updatedAt": "2026-08-03T09:00:00.000Z", "processedAt": "2026-08-03T09:00:00.000Z" }]| Поле | Что означает |
|---|---|
number | номер заявки для людей — его видят администратор и партнёр в интерфейсе и он печатается в акте |
partner | партнёр, которому предназначена выплата |
amount | сумма выплаты в копейках: 15000 — это 150 рублей |
requisiteId | идентификатор реквизитов, по которым заявка должна быть оплачена; null, если контур реквизиты не собирает |
requisite.type | способ выплаты: BankAccount — банковский счёт, Sbp — перевод по номеру телефона |
innSnapshot | ИНН партнёра на момент создания заявки; может быть null, если проверка ИНН в контуре выключена |
partnerComment | комментарий партнёра — заполняется, когда он сам создаёт или отменяет заявку в личном кабинете |
adminComment | комментарий администратора либо ваш комментарий при создании или смене статуса через API |
processedBy | администратор, который перевёл заявку в Paid из админки; null, если заявка ещё не выплачена или выплачена через API |
processedAt | дата перевода в Paid; null, пока заявка не выплачена |
Как создать заявку на выплату
Заголовок раздела «Как создать заявку на выплату»POST /api/external/payoutx-api-key: ваш-ключContent-Type: application/json
{ "partnerId": "3d21…", "amount": 15000, "adminComment": "Ежемесячная выплата"}| Поле | Обязательное | Описание |
|---|---|---|
partnerId | да | id партнёра из списка партнёров |
amount | да | сумма выплаты в копейках, целым числом: 15000 — это 150 рублей, максимум — 2 000 000 рублей (200000000) |
adminComment | нет | комментарий к заявке |
Реквизиты в теле запроса не передаются: заявка берёт актуальные реквизиты партнёра и запоминает их. Заполнить реквизиты через внешний API нельзя — это делает либо сам партнёр в личном кабинете, либо администратор в его карточке.
Перед созданием заявки метод проверяет: партнёр существует и не заблокирован, у
него нет другой активной заявки (в статусе Requested или Approved), сумма
не меньше минимальной, заданной в настройках контура, и не превышает баланс,
доступный партнёру к выводу, ИНН партнёра заполнен и проходит проверку по
контрольным цифрам, а реквизиты выплаты указаны.
Если в контуре включён выпуск актов по выплатам, у самозанятого, ИП и юрлица ИНН проверяется всегда — даже при выключенном Требовать ИНН для выплат: он печатается в акте. Принятия оферты партнёрской программы метод не требует — это проверяется только у заявок, которые партнёр подаёт сам из кабинета.
Проверку ИНН можно отключить для всего контура переключателем Требовать ИНН для выплат в общих настройках — он включён по умолчанию. Пока он включён, ИНН партнёра сохраняется в заявку: значение фиксируется на момент создания и не меняется, даже если позже ИНН в профиле исправят.
В ответ приходит созданная заявка со статусом Requested и историей статусов
из одной записи:
{ "id": "7c1f…", "number": 43, "partner": { "id": "3d21…", "firstName": "Иван", "lastName": "Иванов", "middleName": null, "email": "partner@example.com" }, "amount": 15000, "status": "Requested", "requisiteId": "9b3e…", "requisite": { "type": "BankAccount" }, "innSnapshot": "500100732259", "partnerComment": null, "adminComment": "Ежемесячная выплата", "processedBy": null, "createdAt": "2026-09-08T10:00:00.000Z", "updatedAt": "2026-09-08T10:00:00.000Z", "processedAt": null, "allocations": [ { "amount": 15000, "entry": { "id": "l001…", "type": "Accrual", "amount": 20000, "availableAt": "2026-08-20T00:00:00.000Z", "createdAt": "2026-08-06T12:00:00.000Z", "leadId": "d4e5…" } } ], "act": null, "history": [ { "id": "e001…", "status": "Requested", "comment": "Ежемесячная выплата", "createdAt": "2026-09-08T10:00:00.000Z", "changedByAdmin": null, "changedByApiKey": { "id": "k001…", "title": "CRM", "admin": { "id": "a001…", "email": "admin@example.com", "firstName": "Пётр", "lastName": "Петров", "middleName": null } } } ]}Ответ на создание и смену статуса содержит два поля, которых нет в списке:
| Поле | Что означает |
|---|---|
allocations | состав заявки: из каких начислений собрана сумма. amount — сколько взято из начисления, entry.amount — его полная сумма: начисление может войти в заявку частично. entry.type — Accrual (начисление за лида, leadId заполнен) или Adjustment (ручная корректировка) |
act | акт по выплате: { "id", "number", "issuedAt", "signedOutsideAt", "partnerSignedAt" }. Появляется после перевода в Paid, если в контуре включён выпуск актов и акт выпустился. number — строка вида "2026-17", signedOutsideAt — когда администратор отметил акт подписанным вне платформы, иначе null; partnerSignedAt — когда партнёр подписал акт простой электронной подписью в кабинете, иначе null. Заполнено не больше одного из двух. До выплаты и без акта — null |
Скачать PDF акта через внешний API нельзя — он доступен в админке и в кабинете партнёра.
Как получить реквизиты для перечисления
Заголовок раздела «Как получить реквизиты для перечисления»GET /api/external/payout/{id}/requisitesx-api-key: ваш-ключСписки и карточка заявки реквизитов не содержат — только requisiteId и способ
выплаты. Значения отдаёт отдельный метод, и отдаёт их целиком: он и нужен
затем, чтобы ваша бухгалтерская система сформировала платёж.
{ "requisite": { "id": "9b3e…", "type": "BankAccount", "recipientName": "Иванов Иван Иванович", "accountNumber": "40702810638050013199", "bic": "044525225", "phone": null, "sbpBankName": null, "createdAt": "2026-09-01T10:00:00.000Z", "archivedAt": null, "masked": false }}| Поле | Что означает |
|---|---|
type | BankAccount — заполнены accountNumber и bic; Sbp — заполнен phone |
recipientName | имя получателя платежа так, как оно указано в банке |
accountNumber | номер счёта, 20 цифр; null у Sbp |
bic | БИК банка получателя, 9 цифр; null у Sbp |
phone | номер телефона в формате +7XXXXXXXXXX; null у BankAccount |
sbpBankName | банк получателя, если партнёр его указал |
archivedAt | момент, когда партнёр заменил эти реквизиты новыми; null, если они всё ещё актуальны |
masked | всегда false — этот метод отдаёт полное значение |
Возвращаются реквизиты из заявки, а не текущие реквизиты партнёра: если он
успел их заменить, archivedAt будет заполнен, но платить нужно по тому, что
отдал метод. Если контур реквизиты не собирает, в requisite придёт null.
Как изменить статус выплаты
Заголовок раздела «Как изменить статус выплаты»PUT /api/external/payout/{id}/statusx-api-key: ваш-ключContent-Type: application/json
{ "status": "Approved", "comment": "Проверено" }| Поле | Обязательное | Описание |
|---|---|---|
status | да | Approved, Paid или Rejected |
comment | нет | комментарий к смене статуса |
Допустимый переход зависит от текущего статуса заявки:
| Новый статус | Из какого статуса |
|---|---|
Approved | только из Requested |
Paid | только из Approved |
Rejected | из Requested или Approved |
В ответ приходит заявка целиком, в том же формате, что и при создании. По
history видно, кто и когда менял статус: changedByAdmin заполнен, если
статус сменили из админки, changedByApiKey — если через внешний API; второе
поле пары при этом равно null.
Какие ошибки возвращают методы выплат
Заголовок раздела «Какие ошибки возвращают методы выплат»| Ответ | Сообщение | Что делать |
|---|---|---|
400 | Партнер обязателен | передайте partnerId |
400 | Сумма выплаты обязательна и указывается в копейках целым числом | передайте amount целым числом копеек — без дробной части |
400 | Сумма выплаты должна быть больше нуля | минимум — одна копейка (1) |
400 | Партнер заблокирован | у заблокированного партнёра заявку не создать |
400 | Уже есть активная заявка на выплату | дождитесь решения по прежней заявке или её отмены партнёром |
400 | Некорректная сумма вывода | сумма должна быть положительным числом |
400 | Минимальная сумма вывода: … | увеличьте сумму до указанной в сообщении; в тексте ошибки сумма приводится в рублях, а передаётся в копейках |
400 | Доступно для вывода: … | сумма превышает баланс, доступный партнёру к выводу |
400 | Для вывода средств заполните ИНН в профиле | у партнёра не заполнен ИНН — внесите его в карточке партнёра или через интерфейс администратора |
400 | ИНН в профиле указан некорректно… | ИНН не проходит проверку по контрольным цифрам: 12 знаков у физлица, самозанятого и ИП, 10 у юридического лица |
400 | Для акта по выплате у партнёра нужен корректный ИНН — заполните его в карточке партнёра | включён выпуск актов, а у самозанятого, ИП или юрлица ИНН не заполнен или не подходит статусу — переключатель «Требовать ИНН для выплат» эту проверку не снимает |
400 | Для вывода средств заполните реквизиты выплаты в профиле | партнёр не указал, куда переводить деньги — это делает он сам или администратор в его карточке |
400 | Допустимые статусы: Approved, Paid, Rejected | передайте один из этих трёх статусов |
404 | Партнер не найден | проверьте partnerId |
409 | Недопустимый переход статуса | заявки с таким id нет, либо её текущий статус не допускает такой переход — см. таблицу переходов выше |
Читать также
Заголовок раздела «Читать также»- Внешний API — базовый адрес, ключи и остальные методы
- Партнёры — список партнёров, которым можно создать выплату
- Выплаты — тот же список и карточка заявки в интерфейсе администратора