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

Выплаты

Выплата — заявка на перечисление партнёру заработанного вознаграждения. Через внешний API заявку можно посмотреть, создать и провести по статусам — например, если решение о выплате принимает ваша бухгалтерская система, а не администратор в интерфейсе.

Все пути ниже даны относительно базового адреса /api/external, каждый запрос требует заголовок x-api-key — см. Внешний API.

СтатусЧто означает
Requestedзаявка создана, ждёт решения
Approvedподтверждена, ждёт перечисления
Paidденьги перечислены партнёру
Rejectedотклонена
Canceledпартнёр отменил заявку сам, в личном кабинете

Заявка создаётся сразу в статусе Requested. Перевести её в Approved, Paid или Rejected можно и через внешний API, и из админки — этим методом или соответствующей кнопкой в карточке заявки. Статус Canceled доступен только партнёру: ни администратор, ни внешний API отменить чужую заявку не могут.

GET /api/external/payout
x-api-key: ваш-ключ

Метод возвращает все заявки контура одним списком — без пагинации и без фильтра по статусу, в отличие от списка в админке. Заявки отсортированы по дате создания, от новых к старым.

[
{
"id": "7c1f…",
"partner": { "id": "3d21…", "firstName": "Иван", "lastName": "Иванов", "middleName": null, "email": "partner@example.com" },
"amount": 15000,
"status": "Paid",
"requisites": "Карта 2200 **** **** 1234",
"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"
}
]
ПолеЧто означает
partnerпартнёр, которому предназначена выплата
amountсумма выплаты
requisitesреквизиты для перечисления, свободный текст
partnerCommentкомментарий партнёра — заполняется, когда он сам создаёт или отменяет заявку в личном кабинете
adminCommentкомментарий администратора либо ваш комментарий при создании или смене статуса через API
processedByадминистратор, который перевёл заявку в Paid из админки; null, если заявка ещё не выплачена или выплачена через API
processedAtдата перевода в Paid; null, пока заявка не выплачена
POST /api/external/payout
x-api-key: ваш-ключ
Content-Type: application/json
{
"partnerId": "3d21…",
"amount": 15000,
"requisites": "Карта 2200 **** **** 1234",
"adminComment": "Ежемесячная выплата"
}
ПолеОбязательноеОписание
partnerIdдаid партнёра из списка партнёров
amountдасумма выплаты
requisitesнетреквизиты для перечисления
adminCommentнеткомментарий к заявке

Перед созданием заявки метод проверяет: партнёр существует и не заблокирован, у него нет другой активной заявки (в статусе Requested или Approved), сумма не меньше минимальной, заданной в настройках контура, и не превышает баланс, доступный партнёру к выводу, а ИНН партнёра заполнен и проходит проверку по контрольным цифрам.

Проверку ИНН можно отключить для всего контура переключателем Требовать ИНН для выплат в общих настройках — он включён по умолчанию. Пока он включён, ИНН партнёра сохраняется в заявку: значение фиксируется на момент создания и не меняется, даже если позже ИНН в профиле исправят.

В ответ приходит созданная заявка со статусом Requested и историей статусов из одной записи:

{
"id": "7c1f…",
"partner": { "id": "3d21…", "firstName": "Иван", "lastName": "Иванов", "middleName": null, "email": "partner@example.com" },
"amount": 15000,
"status": "Requested",
"requisites": "Карта 2200 **** **** 1234",
"partnerComment": null,
"adminComment": "Ежемесячная выплата",
"processedBy": null,
"createdAt": "2026-09-08T10:00:00.000Z",
"updatedAt": "2026-09-08T10:00:00.000Z",
"processedAt": 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 } }
}
]
}
PUT /api/external/payout/{id}/status
x-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Партнер заблокировану заблокированного партнёра заявку не создать
400Уже есть активная заявка на выплатудождитесь решения по прежней заявке или её отмены партнёром
400Некорректная сумма выводасумма должна быть положительным числом
400Минимальная сумма вывода: …увеличьте сумму до указанной в сообщении
400Доступно для вывода: …сумма превышает баланс, доступный партнёру к выводу
400Для вывода средств заполните ИНН в профилеу партнёра не заполнен ИНН — внесите его в карточке партнёра или через интерфейс администратора
400ИНН в профиле указан некорректно…ИНН не проходит проверку по контрольным цифрам: 12 знаков у физлица, самозанятого и ИП, 10 у юридического лица
400Допустимые статусы: Approved, Paid, Rejectedпередайте один из этих трёх статусов
404Партнер не найденпроверьте partnerId
409Недопустимый переход статусазаявки с таким id нет, либо её текущий статус не допускает такой переход — см. таблицу переходов выше
  • Внешний API — базовый адрес, ключи и остальные методы
  • Партнёры — список партнёров, которым можно создать выплату
  • Выплаты — тот же список и карточка заявки в интерфейсе администратора