Serve for rule

get

request
GET /api/v2/bonus/rules/service/48 HTTP/1.1
Table 52. /api/v2/bonus/rules/service/{ruleId}
Parameter Description

ruleId

ruleId

response
HTTP/1.1 200 OK

{
  "id" : 48,
  "name" : "Новое правило",
  "priceFrom" : 0.0,
  "priceTo" : 1000000.0,
  "bonusPoints" : 100,
  "discount" : null,
  "duration" : null,
  "mobileBonusPoints" : null,
  "mobileDiscount" : null,
  "departments" : [ {
    "id" : 1000000003,
    "name" : "Первый магазин"
  } ],
  "active" : true,
  "ruleType" : "SERVE",
  "startDate" : "2025-08-27",
  "finishDate" : "2026-08-27",
  "lastUpdate" : "2025-08-27",
  "creator" : {
    "id" : 9000000008,
    "firstName" : "topmanager",
    "familyName" : "topmanager",
    "patronymicName" : "topmanager",
    "fullName" : "topmanager topmanager topmanager",
    "shortName" : "topmanager t. t."
  },
  "cancelDate" : null,
  "canceller" : null,
  "services" : [ {
    "id" : 1000000001,
    "name" : "Изготовление линз",
    "price" : 0.0
  } ]
}
Table 53. response description
Path Type Description

id

Number

id

name

String

name

ruleType

String

Тип правила

startDate

String

Дата начала действия правила

finishDate

String

Дата конца действия правила

priceFrom

Number

Нижний порог ценника

priceTo

Number

Верхний порог ценника

bonusPoints

Number

Бонусы (для накопительного правила)

discount

Number

Скидка (для ненакопительного правила)

duration

Number

duration

mobileBonusPoints

Number

mobileBonusPoints

mobileDiscount

Number

mobileDiscount

lastUpdate

String

Время последнего изменения

creator

Object

Пользователь, создавший правило

creator.id

Number

creator.id

creator.firstName

String

creator.firstName

creator.familyName

String

creator.familyName

creator.patronymicName

String

creator.patronymicName

cancelDate

String

Время отмены правила

canceller

Object

Пользователь, отменивший правило

canceller.id

Number

canceller.id

canceller.firstName

String

canceller.firstName

canceller.familyName

String

canceller.familyName

canceller.patronymicName

String

canceller.patronymicName

active

Boolean

Активно ли правило

departments

Array

Департаменты, в которых действует это правило. Пустой список = правило действует во всех департаментах

services

Array

services

services

request
GET /api/v2/bonus/rules/services HTTP/1.1
response
HTTP/1.1 200 OK

[ {
  "id" : 1000000100,
  "name" : "1",
  "price" : 1.0
}, {
  "id" : 1000000101,
  "name" : "Изготовление очков",
  "price" : 300.0
}, {
  "id" : 1000000000,
  "name" : "Изготовление очков (с перем. стоимостью)",
  "price" : 0.0
}, {
  "id" : 1000000102,
  "name" : "Проверка зрения",
  "price" : 500.0
}, {
  "id" : 1000000103,
  "name" : "Тестовая услуга",
  "price" : 500.0
} ]
Table 54. response description
Path Type Description

[]

Array

Типы услуг

[].id

Number

id

[].name

String

name

[].price

Number

price

create

request
POST /api/v2/bonus/rules/service HTTP/1.1

{
  "mode" : "SPENDING",
  "name" : "Новое правило на всё",
  "priceFrom" : 1000.0,
  "priceTo" : 100000.0,
  "points" : 100,
  "mobilePoints" : null,
  "departmentIds" : [ 1000000003 ],
  "startDate" : "2025-08-27",
  "finishDate" : "2026-08-27",
  "servicesId" : null
}
Table 55. request description
Path Type Description Constraints

mode

String

Тип бонусного правила: [SPENDING, ACCUMULATION]

Must not be null

name

String

name

Length must be between 0 and 100 inclusive.
Must not be null

startDate

String

Дата начала действия правила

finishDate

String

Дата конца действия правила

priceFrom

Number

Нижний порог ценника

priceTo

Number

Верхний порог ценника

points

Number

Скидка по бонусному правилу (независимо от типа)

Must not be null

mobilePoints

Number

?

departmentIds

Array

Id департаментов

servicesId

Array

Id услуг

response
HTTP/1.1 201 Created
Location: /api/v2/bonus/rules/service/42

{
  "id" : 42,
  "name" : "Новое правило на всё",
  "priceFrom" : 1000.0,
  "priceTo" : 100000.0,
  "bonusPoints" : null,
  "discount" : 100,
  "duration" : null,
  "mobileBonusPoints" : null,
  "mobileDiscount" : null,
  "departments" : null,
  "active" : true,
  "ruleType" : "SERVE",
  "startDate" : "2025-08-27",
  "finishDate" : "2026-08-27",
  "lastUpdate" : "2025-08-27",
  "creator" : {
    "id" : 9000000008,
    "firstName" : "topmanager",
    "familyName" : "topmanager",
    "patronymicName" : "topmanager",
    "fullName" : "topmanager topmanager topmanager",
    "shortName" : "topmanager t. t."
  },
  "cancelDate" : null,
  "canceller" : null,
  "services" : [ ]
}
Table 56. response description
Path Type Description

id

Number

id

name

String

name

ruleType

String

Тип правила

startDate

String

Дата начала действия правила

finishDate

String

Дата конца действия правила

priceFrom

Number

Нижний порог ценника

priceTo

Number

Верхний порог ценника

bonusPoints

Number

Бонусы (для накопительного правила)

discount

Number

Скидка (для ненакопительного правила)

duration

Number

duration

mobileBonusPoints

Number

mobileBonusPoints

mobileDiscount

Number

mobileDiscount

lastUpdate

String

Время последнего изменения

creator

Object

Пользователь, создавший правило

creator.id

Number

creator.id

creator.firstName

String

creator.firstName

creator.familyName

String

creator.familyName

creator.patronymicName

String

creator.patronymicName

cancelDate

String

Время отмены правила

canceller

Object

Пользователь, отменивший правило

canceller.id

Number

canceller.id

canceller.firstName

String

canceller.firstName

canceller.familyName

String

canceller.familyName

canceller.patronymicName

String

canceller.patronymicName

active

Boolean

Активно ли правило

departments

Array

Департаменты, в которых действует это правило. Пустой список = правило действует во всех департаментах

services

Array

services