API White Label
API для управления White Label аккаунтами в системе Revo. Позволяет получать информацию о White Label, управлять пользователями и балансом.
Аутентификация
Все запросы к API White Label должны включать заголовок X-WhiteLabel-Key
с API ключом White Label.
X-WhiteLabel-Key: your_api_key_here
Структура White Label
Поле | Тип | Описание |
---|---|---|
id | integer | Уникальный идентификатор White Label |
name | string | Название White Label (уникальное в системе) |
balance | decimal | Баланс White Label |
api_key | string | API ключ для доступа к API |
created_at | datetime | Дата создания |
updated_at | datetime | Дата обновления |
Получение информации о White Label
GET /api/v1/whitelabel
Получает информацию о White Label, включая баланс и API ключ.
Заголовки запроса
Заголовок | Значение |
---|---|
X-WhiteLabel-Key | YOUR_API_KEY |
Accept | application/json |
Пример ответа
{
"error": "",
"result": {
"white_label": {
"id": 1,
"name": "MyCompany",
"balance": 5000.50,
"api_key": "abcdef1234567890...",
"users_count": 25,
"created_at": "2025-03-10T12:00:00.000000Z",
"updated_at": "2025-03-15T14:30:00.000000Z"
}
}
}
Обновление API ключа White Label
POST /api/v1/whitelabel/regenerate-api-key
Генерирует и сохраняет новый API ключ для White Label.
Заголовки запроса
Заголовок | Значение |
---|---|
X-WhiteLabel-Key | YOUR_API_KEY |
Accept | application/json |
Пример ответа
{
"error": "",
"result": {
"white_label": {
"id": 1,
"name": "MyCompany",
"api_key": "new_api_key_abcdef1234567890...",
"updated_at": "2025-03-20T10:15:00.000000Z"
},
"message": "API ключ успешно обновлен"
}
}
После обновления API ключа все предыдущие ключи становятся недействительными. Убедитесь, что вы обновили ключ во всех местах, где используете API.
Получение списка пользователей White Label
GET /api/v1/whitelabel/users?limit=50&offset=0
Получает список пользователей, принадлежащих White Label.
Заголовки запроса
Заголовок | Значение |
---|---|
X-WhiteLabel-Key | YOUR_API_KEY |
Accept | application/json |
Параметры запроса
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
limit | integer | Нет | Количество пользователей в ответе (по умолчанию 50) |
offset | integer | Нет | Смещение для пагинации (по умолчанию 0) |
search | string | Нет | Поиск по имени, email или username |
sort_field | string | Нет | Поле для сортировки (по умолчанию created_at) |
sort_direction | string | Нет | Направление сортировки (asc или desc, по умолчанию desc) |
Пример ответа
{
"error": "",
"result": [
{
"id": 1,
"name": "Иван Иванов",
"email": "ivan@example.com",
"username": "ivanivanov",
"plan": "pro",
"credit": 150,
"is_admin": true,
"created_at": "2025-03-10T12:00:00.000000Z",
"updated_at": "2025-03-15T14:30:00.000000Z"
},
{
"id": 2,
"name": "Петр Петров",
"email": "petr@example.com",
"username": "petrpetrov",
"plan": "basic",
"credit": 50,
"is_admin": false,
"created_at": "2025-03-11T10:00:00.000000Z",
"updated_at": "2025-03-12T09:45:00.000000Z"
}
],
"total": 25
}
Пополнение баланса пользователя
POST /api/v1/whitelabel/top-up-user
Пополняет баланс указанного пользователя White Label за счет баланса White Label.
Заголовки запроса
Заголовок | Значение |
---|---|
X-WhiteLabel-Key | YOUR_API_KEY |
Accept | application/json |
Content-Type | application/json |
Параметры запроса
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
user_id | integer | Да | ID пользователя для пополнения баланса |
amount | decimal | Да | Сумма пополнения (мин. 1) |
description | string | Нет | Описание операции (по умолчанию "Пополнение баланса от White Label") |
Пример запроса
{
"user_id": 2,
"amount": 100,
"description": "Премия за качественную работу"
}
Пример ответа
{
"error": "",
"result": {
"message": "Баланс пользователя успешно пополнен",
"user": {
"id": 2,
"name": "Петр Петров",
"email": "petr@example.com",
"credit": 150
},
"white_label": {
"id": 1,
"name": "MyCompany",
"balance": 4900.50
},
"amount": 100
}
}
Получение статистики White Label
GET /api/v1/whitelabel/statistics?period=month
Получает статистику использования системы пользователями White Label.
Заголовки запроса
Заголовок | Значение |
---|---|
X-WhiteLabel-Key | YOUR_API_KEY |
Accept | application/json |
Параметры запроса
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
period | string | Нет | Период статистики: week, month, quarter, year (по умолчанию month) |
Пример ответа
{
"error": "",
"result": {
"white_label": {
"id": 1,
"name": "MyCompany",
"balance": 4900.50
},
"period": "month",
"start_date": "2025-02-20T10:15:00.000000Z",
"users": {
"total": 25,
"new": 3
},
"projects": {
"total": 50,
"active": 35
},
"tasks": {
"total": 1250,
"period": 350
},
"credits_spent": 750
}
}
Коды ошибок API
Код ошибки | Описание |
---|---|
401 | Ошибка аутентификации (API ключ не предоставлен или неверный) |
400 | Ошибка в запросе (неверные параметры) |
404 | Запрашиваемый ресурс не найден |
422 | Ошибка валидации данных |
500 | Внутренняя ошибка сервера |
Дополнительная информация
Пополнение баланса
При пополнении баланса пользователя:
- Сумма пополнения вычитается из баланса White Label
- Кредиты добавляются пользователю с указанным описанием
- Операция сохраняется в истории баланса пользователя
- Баланс White Label не может стать отрицательным
API ключ
API ключ White Label используется для аутентификации запросов к API. При обновлении ключа все предыдущие ключи становятся недействительными. Храните ключ в безопасном месте и не передавайте его третьим лицам.
Создание пользователей
Пользователи White Label создаются через стандартный API регистрации с указанием поля owner_company
, соответствующего названию White Label.