gamification.transaction.create

Scope: gamification

Кто может вызывать: Только admin или manager. Подробнее: Права доступа

Создать транзакцию начисления или списания для одного или нескольких пользователей.

HTTP: POST

Побочные эффекты: создаётся одна или несколько транзакций в истории баланса; при наличии настроек — отправляются уведомления.

Параметры метода

Параметр Тип Обяз. Описание
userId int да* ID одного пользователя
userIds int[] да* Массив ID пользователей (приоритет перед userId)
amount float да Сумма операции
currency string да Валюта: BAL или THX
operationType string да Тип операции: accrual или debit (псевдоним: operation)
accrualType string да Тип начисления (код из справочника начислений модуля)
description string нет Описание транзакции
categoryId int нет ID категории

* Требуется хотя бы один из: userId или userIds.

Возвращаемые данные

result.result — данные о созданной транзакции или массив результатов при передаче нескольких userIds.

Обработка ошибок

Справочник кодов ошибок.

Код Описание
UNAUTHORIZED Пользователь не авторизован
ACCESS_DENIED Вызывающий не является admin/manager
VALIDATION_ERROR Отсутствует обязательный параметр
INVALID_CURRENCY Неизвестная валюта
INVALID_OPERATION Неизвестный тип операции
INVALID_ACCRUAL_TYPE Неизвестный тип начисления
INSUFFICIENT_BALANCE Недостаточно баланса для списания

Пример запроса (POST)

curl -X POST "https://{портал}/rest/{user_id}/{webhook_code}/gamification.transaction.create.json" \
          -H "Content-Type: application/json" \
          -d '{
            "userId": 42,
            "amount": 100,
            "currency": "BAL",
            "operationType": "accrual",
            "accrualType": "manual",
            "description": "Награда за проект"
          }'
        

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

{
          "result": {
            "result": {
              "ID": "123",
              "USER_ID": "42",
              "AMOUNT": "100",
              "CURRENCY": "BAL",
              "OPERATION_TYPE": "accrual",
              "ACCRUAL_TYPE": "manual"
            },
            "total": null,
            "next": null,
            "error": null
          }
        }
        
Предыдущая
Следующая