Выдать бонусы

POST /user-bonuses

Выдает бонусы исполнителям.

Сумма бонуса может составлять от 5 ₽ до 10 000 ₽ одному исполнителю единовременно.

Ограничение

Вы можете отправить не более 10 000 таких запросов в день.

См. полный список ограничений на странице Ограничение количества запросов.

В одном запросе нельзя передавать одному исполнителю несколько бонусов с одинаковой ценой, названием и сообщением. Будет возвращен ответ со статусом 409.

Пример ошибки c HTTP статусом «409»
{
  "user_id": {
    "code": "ENTITY_CONFLICT",
    "message": "It is not allowed to apply multiple bonuses with the same amount, title, message and comment to same user in single operation"
  }
}

Примеры запросов

curl -X POST 'https://tasks.yandex.ru/api/v1/user-bonuses' \
     -H 'Authorization: OAuth PlaceYourRealOAuthToken_Here' \
     -H 'Content-Type: application/json' \
     -d '{"user_id":"fac97860c7929add8048ed2ef63b66fd", "amount":5, "public_title":{"EN":"Perfect job!"}, "public_message":{"EN":"You are the best!"}}'
import requests

url = "https://tasks.yandex.ru/api/v1/user-bonuses"
headers = {
  'Authorization': 'OAuth PlaceYourRealOAuthToken_Here',
  'Content-Type': 'application/json'
}
payload = {
  "user_id": "fac97860c7929add8048ed2ef63b66fd",
  "amount": 5,
  "public_title": {
    "EN": "Perfect job!"
  },
  "public_message": {
    "EN": "You are the best!"
  }
}
response = requests.post(url, headers=headers, json=payload)

print(response.text)
var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://tasks.yandex.ru/api/v1/user-bonuses',
  'qs': {},
  'headers': {
    'Authorization': 'OAuth PlaceYourRealOAuthToken_Here',
    'Content-Type': 'application/json'
  },
  'body': JSON.stringify({
    "user_id": "fac97860c7929add8048ed2ef63b66fd",
    "amount": 5,
    "public_title": {
      "EN": "Perfect job!"
    },
    "public_message": {
      "EN": "You are the best!"
    }
  })
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

Заголовки

Заголовок

Описание

Authorization

API-токен для авторизации аккаунта. В качестве префикса добавьте OAuth.

Content-Type

Указывает формат данных (application/json) в передаваемом теле запроса.

Query-параметры

Указываются в ссылке после знака вопроса, перечисляются через &.

Параметр

Описание

async_mode

boolean

Способ обработки запроса:

  • true — отложенный. В результате запроса создается асинхронная операция, выполняемая в фоновом режиме. Ответ содержит сведения об операции (время начала и окончания, статус, количество бонусов).
  • false — синхронный. Ответ содержит сведения о выданных бонусах. В одном запросе можно отправить не более 100 бонусов.

По умолчанию значение false.

skip_invalid_items

boolean

Параметры валидации JSON-объектов:

  • true — выдать бонус, если JSON-объект со сведениями о бонусе прошел валидацию. В противном случае пропустить выдачу бонуса.
  • false — остановить операцию и не выдавать бонусы, если хотя бы один JSON-объект не прошел валидацию.

По умолчанию значение false.

operation_id

string

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

Тело и параметры запроса

Пример тела запроса
{
  "user_id": "21c4f092ebad180cf56b9babe0ef9f19",
  "amount": 5,
  "assignment_id": "6946cefa-32af-4f62-b530-8d2c71fa2966",
  "private_comment": "Good job!",
  "public_title": {
    "EN": "Completed tasks"
  },
  "public_message": {
    "EN": "10 tasks successfully completed"
  },
  "without_message": false
}

Параметр

Описание

user_id*

string

Идентификатор исполнителя.

amount*

float

Сумма бонуса в рублях.

assignment_id

string

Идентификатор ответа исполнителя на задание, за которое выплачивается бонус.

private_comment

string

Комментарий, доступный только заказчику.

public_title

object

Заголовок сообщения для исполнителя. Может быть на нескольких языках (сообщение придет на языке исполнителя).

Формат: "<язык RU/EN/TR/ID/FR>": "<текст заголовка>".

Пример:

{
  "EN": "Title in English",
  "RU": "Заголовок на русском"
}

public_message

object

Текст сообщения для исполнителя. Может быть текст на нескольких языках (сообщение придет на языке исполнителя).

Формат: "<язык RU/EN/TR/ID/FR>": "<текст сообщения>".

Пример:

{
  "EN": "Message text in English",
  "RU": "Текст сообщения на русском"
}

without_message

boolean

Позволяет не отправлять исполнителю сообщение о бонусе. По умолчанию false.

Для того чтобы выдать бонус без сообщения, нужно указать null для public_title и public_message и true для without_message.

Ответ

Один бонус
{
  "user_id": "21c4f092ebad180cf56b9babe0ef9f19",
  "amount": 5,
  "assignment_id": "6946cefa-32af-4f62-b530-8d2c71fa2966",
  "private_comment": "Good job!",
  "public_title": {
    "EN": "Completed tasks"
  },
  "public_message": {
    "EN": "10 tasks successfully completed"
  },
  "without_message": false,
  "id": "2092",
  "created": "2021-02-12T10:37:36.631"
}

Параметр

Описание

user_id

string

Идентификатор исполнителя.

amount

float

Сумма бонуса в рублях.

assignment_id

string

Идентификатор ответа исполнителя на задание, за которое выплачивается бонус.

private_comment

string

Комментарий, доступный только заказчику.

public_title

object

Заголовок сообщения для исполнителя. Может быть на нескольких языках (сообщение придет на языке исполнителя).

Формат: "<язык RU/EN/TR/ID/FR>": "<текст заголовка>".

Пример:

{
  "EN": "Title in English",
  "RU": "Заголовок на русском"
}

public_message

object

Текст сообщения для исполнителя. Может быть текст на нескольких языках (сообщение придет на языке исполнителя).

Формат: "<язык RU/EN/TR/ID/FR>": "<текст сообщения>".

Пример:

{
  "EN": "Message text in English",
  "RU": "Текст сообщения на русском"
}

without_message

boolean

Позволяет не отправлять исполнителю сообщение о бонусе. По умолчанию false.

Для того чтобы выдать бонус без сообщения, нужно указать null для public_title и public_message и true для without_message.

id

string

Идентификатор бонуса.

created

string

Дата выдачи бонуса по UTC в формате ISO 8601 YYYY-MM-DDThh:mm:ss[.sss]

Несколько бонусов

Формат ответа зависит от значения query-параметра async_mode.

{
  "items": {
    "0": {details of a bonus #0},
    "2": {details of a bonus #2},
    "<N>": {details of a bonus #N}
  },
  "validation_errors": {
    "1": {validation errors for a bonus #1},
    "3": {validation errors for a bonus #3},
    "<N>": {validation errors for a bonus #N}
  }
}

Параметр

Описание

items

string

Объект со сведениями о выданных бонусах.

validation_errors

string

Объект с ошибками валидации. Возвращается, если в запросе используется параметр skip_invalid_items=true.

{
  "id": "26e130ad3652443a3dc5094791e48ef9",
  "type": "USER_BONUS.BATCH_CREATE",
  "status": "SUCCESS",
  "submitted": "2020-12-13T23:32:01",
  "started": "2020-12-13T23:33:00",
  "finished": "2020-12-13T23:34:12",
  "parameters": {
    "skip_invalid_items": true
  },
  "details": {
    "total_count": 2,
    "valid_count": 2,
    "not_valid_count": 0,
    "success_count": 2,
    "failed_count": 0
  }
}

Параметр

Описание

id

string

Идентификатор операции.

type

string

Тип операции:

  • ANALYTICS — получение аналитических данных;
  • POOL.ARCHIVE — отправка пула в архив;
  • POOL.CLONE — клонирование пула;
  • POOL.CLOSE — закрытие пула;
  • POOL.OPEN — открытие пула;
  • PROJECT.ARCHIVE — отправка проекта в архив;
  • SOLUTION.AGGREGATE — агрегация результатов;
  • TASK.BATCH_CREATE — создание нескольких заданий;
  • TASK_SUITE.BATCH_CREATE — создание нескольких страниц заданий;
  • TRAINING.ARCHIVE — отправка обучающего пула в архив;
  • TRAINING.CLONE — клонирование обучающего пула;
  • TRAINING.CLOSE — закрытие обучающего пула;
  • TRAINING.OPEN — открытие обучающего пула;
  • USER_BONUS.BATCH_CREATE — выдача нескольких бонусов исполнителям.

status

string

Статус операции:

  • PENDING — выполнение не началось.
  • RUNNING — выполняется.
  • SUCCESS — успешно выполнена.
  • FAIL — не выполнена.

Отображается для всех операций, кроме создания пула.

submitted

string

Дата и время отправки запроса по UTC в формате ISO 8601: YYYY-MM-DDThh:mm:ss[.sss].

started

string

Дата и время начала операции по UTC в формате ISO 8601: YYYY-MM-DDThh:mm:ss[.sss].

finished

string

Дата и время завершения операции по UTC в формате ISO 8601: YYYY-MM-DDThh:mm:ss[.sss].

progress

integer

Ход выполнения операции в процентах.

parameters

object

Параметры операции (зависят от типа операции). Полный список параметров приведен в таблице Параметры операции.

details

object

Детали выполнения операции. Полный список параметров приведен в таблице Детали выполнения операции.

Параметры операции ('parameters')

Параметр

Описание

project_id

string

Идентификатор проекта, для которого вы хотите получить текущий статус.

pool_id

string

Идентификатор пула, для которого вы хотите получить текущий статус.

training_id

string

Идентификатор обучающего пула, для которого вы хотите получить текущий статус.

open_pool

boolean

Только для заданий и страниц заданий.

Нужно ли открыть пул сразу после создания заданий или страниц заданий, если он закрыт.

allow_defaults

boolean

Только для заданий и страниц заданий.

Настройки перекрытия:

  • true — использовать перекрытие, установленное в настройках пула (в поле defaults.default_overlap_for_new_tasks).
  • false — использовать перекрытие, установленное в параметрах задания или страницы заданий (в поле overlap).

skip_invalid_items

boolean

Только для заданий и страниц заданий.

Параметры валидации JSON-объектов:

  • true — создавать задания, прошедшие валидацию. Пропускать остальные задания (в ответе будут перечислены ошибки).
  • false — останавливать операцию и не создавать задания, если одна или больше заданий не прошли валидацию.

Детали выполнения операции ('details')

Параметр

Описание

total_count

integer

Количество элементов в запросе.

valid_count

integer

Количество элементов, прошедших валидацию.

not_valid_count

integer

Количество элементов, не прошедших валидацию.

success_count

integer

Количество успешно созданных или загруженных элементов.

failed_count

integer

Количество элементов, которые не удалось создать или загрузить.

Обязательный параметр