Skip to content

Bonus tariflari ​

Mijozlar bonus dasturi darajalari (10 tagacha): keshbek foizi, bonus bilan to‘lashning maksimal ulushi va darajaga kirish uchun minimal xaridlar summasi.

MetodManzilVazifasi
GET/company/bonus/tariffBonus tariflari ro‘yxati
PUT/company/bonus/tariffBonus tariflarini saqlash

Bonus tariflari ro‘yxati ​

GET/company/bonus/tariff

Foydalanuvchi kompaniyasining barcha tariflari tartib bo‘yicha (sort_index, kirish summasi o‘sishi bo‘yicha), har biridagi mijozlar soni (clients_count) va oxirgi o‘zgartirgan xodim bilan. Sahifalashsiz.

Sarlavhalar (headers) ​

SarlavhaQiymatTavsif
AuthorizationBearer {token}POST /common/auth/login dan olingan token
Acceptapplication/jsonJavob JSON da
Accept-LanguageruXabarlar va nomlar tili: ru, uz, oz

Javob · 200 ​

Javob maydonlari
MaydonTuriTavsif
[].idintegerID
[].updater_idintegerYangilovchi
[].company_idintegerKompaniya
[].namestringNomlanish
[].cashback_percentintegerCashback (foizlarda)
[].max_percent_for_saleintegerBuyurtmani to‘lash uchun maksimal cashback (foizlarda)
[].min_entryintegerMinimal chegara
[].commentstringIzoh
[].colornullRang
[].sort_indexinteger
[].updated_atstringYangilangan
[].clients_countinteger
[].updaterobject
[].updater.idintegerID
[].updater.typestringTuri
[].updater.role_idintegerRoli
[].updater.company_idintegerKompaniya
[].updater.partner_idnullHamkor
[].updater.usernamestringLogin
[].updater.pinflnullPINFL
[].updater.phonestringTelefon
[].updater.sipuni_sip_numberstringSipuni (SIP-raqam)
[].updater.is_confirmedboolean
[].updater.are_all_companies_availableboolean
[].updater.last_login_atnull
[].updater.created_atstringYaratilgan
[].updater.updated_atstringYangilangan
[].updater.is_deletedboolean
[].updater.profileobject
[].updater.profile.first_namenullIsm
[].updater.profile.last_namenullFamiliya
[].updater.profile.positionnullLavozim
[].updater.profile.birth_datenullTug'ilgan kuni
[].updater.profile.gendernullJinsi
[].updater.profile.full_namestringFISH
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": " "
            }
        }
    }
]

Bonus tariflarini saqlash ​

PUT/company/bonus/tariff

Kompaniyaning barcha tariflarini yuborilgan records bilan almashtiradi (10 tagacha; nomlar va min_entry takrorlanmaydi): yozuvlar min_entry bo‘yicha saralanadi, ortiqcha eski tariflar o‘chiriladi. Saqlangandan so‘ng kompaniyaning barcha mijozlari xaridlar summasiga ko‘ra tariflarga qayta taqsimlanadi. Bo‘sh records barcha tariflarni o‘chiradi.

Formadan (multipart/form-data) PUT metodi POST + ?_method=PUT parametri bilan yuboriladi.

Sarlavhalar (headers) ​

SarlavhaQiymatTavsif
AuthorizationBearer {token}POST /common/auth/login dan olingan token
Acceptapplication/jsonJavob JSON da
Accept-LanguageruXabarlar va nomlar tili: ru, uz, oz

So‘rov tanasi ​

MaydonTuriMajburiyTavsif
recordsobject[]Yo‘qKamida 0 ta element. Maks. 10 ta element
records[].namestringHaNomlanish. Takrorlanmasin. Maks. 255 belgi
records[].cashback_percentintegerHaCashback (foizlarda). Kamida 0. 100 dan oshmasin
records[].max_percent_for_saleintegerHaBuyurtmani to‘lash uchun maksimal cashback (foizlarda). Kamida 0. 100 dan oshmasin
records[].min_entrynumberHaMinimal chegara. Verguldan keyin 2 tagacha raqam. Kamida 0.01. 999999999999.99 dan oshmasin. Takrorlanmasin
records[].commentstringYo‘qIzoh. Maks. 1000 belgi
records[].colorstringYo‘qTarif rangi #RRGGBB formatida. Shablon /^#[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}]}'

Javob · 200 ​

Javob maydonlari
MaydonTuriTavsif
messagestringXabar
json
{
    "message": "Success"
}