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
}
}
Предыдущая
Следующая