Skip to content

Бонусные тарифы ​

Уровни бонусной программы клиентов (до 10): процент кешбэка, максимальная доля оплаты бонусами и минимальная сумма покупок для входа в уровень.

МетодАдресНазначение
GET/company/bonus/tariffСписок бонусных тарифов
PUT/company/bonus/tariffСохранить бонусные тарифы

Список бонусных тарифов ​

GET/company/bonus/tariff

Все тарифы компании пользователя по порядку (sort_index, по возрастанию суммы входа) с числом клиентов в каждом (clients_count) и последним изменившим сотрудником. Без пагинации.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Ответ · 200 ​

Поля ответа
ПолеТипОписание
[].idintegerID
[].updater_idintegerОбновитель
[].company_idintegerКомпания
[].namestringНазвание
[].cashback_percentintegerКэшбэк (в процентах)
[].max_percent_for_saleintegerМаксимальный кэшбэк для оплаты заказа (в процентах)
[].min_entryintegerМинимальный порог
[].commentstringКомментарий
[].colornullЦвет
[].sort_indexinteger
[].updated_atstringОбновлено
[].clients_countinteger
[].updaterobject
[].updater.idintegerID
[].updater.typestringТип
[].updater.role_idintegerРоль
[].updater.company_idintegerКомпания
[].updater.partner_idnullПартнёр
[].updater.usernamestringЛогин
[].updater.pinflnullПИНФЛ
[].updater.phonestringТелефон
[].updater.sipuni_sip_numberstringVoIP - Sipuni (SIP-номер)
[].updater.is_confirmedboolean
[].updater.are_all_companies_availableboolean
[].updater.last_login_atnull
[].updater.created_atstringСоздано
[].updater.updated_atstringОбновлено
[].updater.is_deletedboolean
[].updater.profileobject
[].updater.profile.first_namenullИмя
[].updater.profile.last_namenullФамилия
[].updater.profile.positionnullДолжность
[].updater.profile.birth_datenullДата рождения
[].updater.profile.gendernullПол
[].updater.profile.full_namestringФИО
json
[
    {
        "id": 1,
        "updater_id": 2,
        "company_id": 1,
        "name": "Tariff 1",
        "cashback_percent": 10,
        "max_percent_for_sale": 30,
        "min_entry": 1000,
        "comment": "Comment 1",
        "color": null,
        "sort_index": 0,
        "updated_at": "2026-09-30 12:16:43",
        "clients_count": 1,
        "updater": {
            "id": 2,
            "type": "director",
            "role_id": 2,
            "company_id": 1,
            "partner_id": null,
            "username": "director_1@local.host",
            "pinfl": null,
            "phone": "998020000001",
            "sipuni_sip_number": "210",
            "is_confirmed": true,
            "are_all_companies_available": false,
            "last_login_at": null,
            "created_at": "2026-09-30 12:16:43",
            "updated_at": "2026-09-30 12:16:43",
            "is_deleted": false,
            "profile": {
                "first_name": null,
                "last_name": null,
                "position": null,
                "birth_date": null,
                "gender": null,
                "full_name": " "
            }
        }
    },
    {
        "id": 2,
        "updater_id": 2,
        "company_id": 1,
        "name": "Tariff 2",
        "cashback_percent": 20,
        "max_percent_for_sale": 50,
        "min_entry": 2000,
        "comment": "Comment 2",
        "color": null,
        "sort_index": 1,
        "updated_at": "2026-09-30 12:16:43",
        "clients_count": 0,
        "updater": {
            "id": 2,
            "type": "director",
            "role_id": 2,
            "company_id": 1,
            "partner_id": null,
            "username": "director_1@local.host",
            "pinfl": null,
            "phone": "998020000001",
            "sipuni_sip_number": "210",
            "is_confirmed": true,
            "are_all_companies_available": false,
            "last_login_at": null,
            "created_at": "2026-09-30 12:16:43",
            "updated_at": "2026-09-30 12:16:43",
            "is_deleted": false,
            "profile": {
                "first_name": null,
                "last_name": null,
                "position": null,
                "birth_date": null,
                "gender": null,
                "full_name": " "
            }
        }
    }
]

Сохранить бонусные тарифы ​

PUT/company/bonus/tariff

Заменяет весь набор тарифов компании переданным records (до 10; названия и min_entry не повторяются): записи сортируются по min_entry, лишние старые тарифы удаляются. После сохранения все клиенты компании пересчитываются по тарифам согласно их сумме покупок. Пустой records удаляет все тарифы.

Из формы (multipart/form-data) метод PUT отправляется как POST с параметром ?_method=PUT.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Тело запроса ​

ПолеТипОбязательноОписание
recordsobject[]НетМин. 0 элементов. Макс. 10 элементов
records[].namestringДаНазвание. Без повторов. Макс. 255 символов
records[].cashback_percentintegerДаКэшбэк (в процентах). Не меньше 0. Не больше 100
records[].max_percent_for_saleintegerДаМаксимальный кэшбэк для оплаты заказа (в процентах). Не меньше 0. Не больше 100
records[].min_entrynumberДаМинимальный порог. До 2 знаков после запятой. Не меньше 0.01. Не больше 999999999999.99. Без повторов
records[].commentstringНетКомментарий. Макс. 1000 символов
records[].colorstringНетЦвет тарифа в формате #RRGGBB. Шаблон /^#[0-9A-Fa-f]{6}$/
json
{
    "records": [
        {
            "name": "Tariff 1",
            "cashback_percent": 10,
            "max_percent_for_sale": 10,
            "min_entry": 100,
            "comment": "Comment 1",
            "color": "#22C55E"
        },
        {
            "name": "Tariff 2",
            "cashback_percent": 20,
            "max_percent_for_sale": 20,
            "min_entry": 200,
            "comment": "Comment 2",
            "color": null
        },
        {
            "name": "Tariff 3",
            "cashback_percent": 30,
            "max_percent_for_sale": 30,
            "min_entry": 300,
            "comment": "Comment 3",
            "color": null
        }
    ]
}
bash
curl -X PUT "https://api.wasyt.uz/company/bonus/tariff" \
  -H "Accept: application/json" \
  -H "Accept-Language: ru" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"records":[{"name":"Tariff 1","cashback_percent":10,"max_percent_for_sale":10,"min_entry":100,"comment":"Comment 1","color":"#22C55E"},{"name":"Tariff 2","cashback_percent":20,"max_percent_for_sale":20,"min_entry":200,"comment":"Comment 2","color":null},{"name":"Tariff 3","cashback_percent":30,"max_percent_for_sale":30,"min_entry":300,"comment":"Comment 3","color":null}]}'

Ответ · 200 ​

Поля ответа
ПолеТипОписание
messagestringСообщение
json
{
    "message": "Success"
}