Skip to content

Kpi settings ​

Employee KPI configuration

INFO

Каждый ответ приходит в общем конверте — code, message, messages, status_code, time — а полезная нагрузка лежит в data. Таблицы ниже описывают содержимое data.

POST /kpi-settings/create ​

Create a new KPI settings record for a given period and set of employees.

Тело запроса

ПолеТипОбязательноОписание
organization_idstringДаOrganization ObjectId this KPI setting belongs to
namestringНетOptional display name for the KPI setting
currency_idstringДаCurrency ObjectId used for monetary KPI metrics
user_idsstring[]ДаObjectIds of the employees this KPI setting applies to
periodstringДаKPI evaluation period. Допустимые значения: week, month, quarter, year
calculation_methodstringДаHow the bonus is calculated across tiers: progressive (each tier adds to the previous) or threshold (only the matched tier applies). Допустимые значения: progressive, threshold
date_fromstring (date-time)ДаStart date of the KPI period
date_tostring (date-time)ДаEnd date of the KPI period
yearnumberДаCalendar year of the KPI period
quarterstringНетQuarter label (e.g. Q1) when period is quarter
monthstringНетMonth label when period is month
weekstringНетWeek label when period is week
filter_enabledbooleanНетWhether product/customer filters are active for this KPI setting. По умолчанию: false
filterobjectНетOptional product and customer scope filters
filter.is_all_categoriesbooleanНет
filter.customer_category_idsstring[]НетCustomer category ObjectIds to include
filter.customer_nested_category_idsstring[]Нет
filter.customer_idsstring[]НетSpecific customer ObjectIds to include
filter.product_category_idsstring[]Нет
filter.product_nested_category_idsstring[]Нет
filter.product_idsstring[]НетSpecific product ObjectIds to include
conditionsobject[]ДаOne or more KPI plan conditions defining the performance metric and tier thresholds
conditions[].logical_operatorbooleanДаtrue = AND with the next condition, false = OR
conditions[].source_metric_codestringДаThe performance metric used to evaluate this condition. Допустимые значения: net_sales, sales_count, avg_net_sales, profit, paid, paid_percent, items_sold
conditions[].tiersobject[]ДаThreshold tiers for this condition
conditions[].tiers[].min_valuenumberДаMinimum metric value for this tier to activate
conditions[].tiers[].max_valuenumberНетMaximum metric value for this tier (omit for the top tier)
bonus_metric_codestringДаHow the bonus amount is computed from the employee's results. Допустимые значения: percent_of_net_sales, percent_of_payment, percent_of_profit, per_sale, fixed_amount, per_item_sold
bonusesnumber[]ДаBonus amounts or percentages, one entry per tier in the conditions
json
{
  "organization_id": "string",
  "name": "string",
  "currency_id": "string",
  "user_ids": [
    "string"
  ],
  "period": "week",
  "calculation_method": "progressive",
  "date_from": "2025-05-01T12:00:00Z",
  "date_to": "2025-05-01T12:00:00Z",
  "year": 0,
  "quarter": "string",
  "month": "string",
  "week": "string",
  "filter_enabled": false,
  "filter": {
    "is_all_categories": false,
    "customer_category_ids": [
      "string"
    ],
    "customer_nested_category_ids": [
      "string"
    ],
    "customer_ids": [
      "string"
    ],
    "product_category_ids": [
      "string"
    ],
    "product_nested_category_ids": [
      "string"
    ],
    "product_ids": [
      "string"
    ]
  },
  "conditions": [
    {
      "logical_operator": false,
      "source_metric_code": "net_sales",
      "tiers": []
    }
  ],
  "bonus_metric_code": "percent_of_net_sales",
  "bonuses": [
    0
  ]
}

Ответ

ПолеТипОписание
_idstringKPI settings ObjectId
organization_idstring
namestring
currency_idstring
user_idsstring[]
periodstringДопустимые значения: week, month, quarter, year
calculation_methodstringДопустимые значения: progressive, threshold
statestringДопустимые значения: draft, active, locked, approved, canceled
date_fromstring (date-time)
date_tostring (date-time)
yearnumber
quarterstring
monthstring
weekstring
filter_enabledboolean
filterobject
filter.is_all_categoriesboolean
filter.customer_category_idsstring[]
filter.customer_nested_category_idsstring[]
filter.customer_idsstring[]
filter.product_category_idsstring[]
filter.product_nested_category_idsstring[]
filter.product_idsstring[]
conditionsobject[]
conditions[].logical_operatorboolean
conditions[].source_metric_codestringДопустимые значения: net_sales, sales_count, avg_net_sales, profit, paid, paid_percent, items_sold
conditions[].tiersobject[]
conditions[].tiers[].min_valuenumber
conditions[].tiers[].max_valuenumber
bonus_metric_codestringДопустимые значения: percent_of_net_sales, percent_of_payment, percent_of_profit, per_sale, fixed_amount, per_item_sold
bonusesnumber[]
created_atstring (date-time)
updated_atstring (date-time)
is_deletedboolean
json
{
  "code": 0,
  "message": "Success",
  "status_code": 200,
  "data": {
    "_id": "string",
    "organization_id": "string",
    "name": "string",
    "currency_id": "string",
    "user_ids": [
      "string"
    ],
    "period": "week",
    "calculation_method": "progressive",
    "state": "draft",
    "date_from": "2025-05-01T12:00:00Z",
    "date_to": "2025-05-01T12:00:00Z",
    "year": 0,
    "quarter": "string",
    "month": "string",
    "week": "string",
    "filter_enabled": false,
    "filter": {
      "is_all_categories": false,
      "customer_category_ids": [
        "string"
      ],
      "customer_nested_category_ids": [
        "string"
      ],
      "customer_ids": [
        "string"
      ],
      "product_category_ids": [
        "string"
      ],
      "product_nested_category_ids": [
        "string"
      ],
      "product_ids": [
        "string"
      ]
    },
    "conditions": [
      {
        "logical_operator": false,
        "source_metric_code": "net_sales",
        "tiers": []
      }
    ],
    "bonus_metric_code": "percent_of_net_sales",
    "bonuses": [
      0
    ],
    "created_at": "2025-05-01T12:00:00Z",
    "updated_at": "2025-05-01T12:00:00Z",
    "is_deleted": false
  },
  "time": "2025-05-01T12:00:00Z"
}

GET /kpi-settings/get-by-id/{id} ​

Fetch a single KPI settings record by ObjectId.

Параметры пути

ПараметрТипОбязательноОписание
idstringДаKPI settings ObjectId

Тело запроса

Тело запроса не требуется.

Ответ

Структура ответа совпадает с POST /kpi-settings/create.

POST /kpi-settings/get-paging ​

Paginated list of KPI settings records, optionally filtered by organization or period.

Тело запроса

ПолеТипОбязательноОписание
pagenumberДаПо умолчанию: 1
limitnumberДаПо умолчанию: 20
organization_idstringНетFilter by organization ObjectId
periodstringНетFilter by KPI period. Допустимые значения: week, month, quarter, year
statestringНетFilter by KPI settings state. Допустимые значения: draft, active, locked, approved, canceled
json
{
  "page": 1,
  "limit": 20,
  "organization_id": "string",
  "period": "week",
  "state": "draft"
}

Ответ

ПолеТипОписание
totalnumber
listobject[]
list[]._idstringKPI settings ObjectId
list[].organization_idstring
list[].namestring
list[].currency_idstring
list[].user_idsstring[]
list[].periodstringДопустимые значения: week, month, quarter, year
list[].calculation_methodstringДопустимые значения: progressive, threshold
list[].statestringДопустимые значения: draft, active, locked, approved, canceled
list[].date_fromstring (date-time)
list[].date_tostring (date-time)
list[].yearnumber
list[].quarterstring
list[].monthstring
list[].weekstring
list[].filter_enabledboolean
list[].filterobject
list[].filter.is_all_categoriesboolean
list[].filter.customer_category_idsstring[]
list[].filter.customer_nested_category_idsstring[]
list[].filter.customer_idsstring[]
list[].filter.product_category_idsstring[]
list[].filter.product_nested_category_idsstring[]
list[].filter.product_idsstring[]
list[].conditionsobject[]
list[].conditions[].logical_operatorboolean
list[].conditions[].source_metric_codestringДопустимые значения: net_sales, sales_count, avg_net_sales, profit, paid, paid_percent, items_sold
list[].conditions[].tiersobject[]
list[].bonus_metric_codestringДопустимые значения: percent_of_net_sales, percent_of_payment, percent_of_profit, per_sale, fixed_amount, per_item_sold
list[].bonusesnumber[]
list[].created_atstring (date-time)
list[].updated_atstring (date-time)
list[].is_deletedboolean
json
{
  "code": 0,
  "message": "Success",
  "status_code": 200,
  "data": {
    "total": 0,
    "list": [
      {
        "_id": "string",
        "organization_id": "string",
        "name": "string",
        "currency_id": "string",
        "user_ids": [],
        "period": "week",
        "calculation_method": "progressive",
        "state": "draft",
        "date_from": "2025-05-01T12:00:00Z",
        "date_to": "2025-05-01T12:00:00Z",
        "year": 0,
        "quarter": "string",
        "month": "string",
        "week": "string",
        "filter_enabled": false,
        "filter": {
          "is_all_categories": null,
          "customer_category_ids": null,
          "customer_nested_category_ids": null,
          "customer_ids": null,
          "product_category_ids": null,
          "product_nested_category_ids": null,
          "product_ids": null
        },
        "conditions": [],
        "bonus_metric_code": "percent_of_net_sales",
        "bonuses": [],
        "created_at": "2025-05-01T12:00:00Z",
        "updated_at": "2025-05-01T12:00:00Z",
        "is_deleted": false
      }
    ]
  },
  "time": "2025-05-01T12:00:00Z"
}

PUT /kpi-settings/update/{id} ​

Update an existing KPI settings record.

Параметры пути

ПараметрТипОбязательноОписание
idstringДаKPI settings ObjectId

Тело запроса

ПолеТипОбязательноОписание
organization_idstringДаOrganization ObjectId this KPI setting belongs to
namestringНетOptional display name for the KPI setting
currency_idstringДаCurrency ObjectId used for monetary KPI metrics
user_idsstring[]ДаObjectIds of the employees this KPI setting applies to
periodstringДаKPI evaluation period. Допустимые значения: week, month, quarter, year
calculation_methodstringДаHow the bonus is calculated across tiers: progressive (each tier adds to the previous) or threshold (only the matched tier applies). Допустимые значения: progressive, threshold
date_fromstring (date-time)ДаStart date of the KPI period
date_tostring (date-time)ДаEnd date of the KPI period
yearnumberДаCalendar year of the KPI period
quarterstringНетQuarter label (e.g. Q1) when period is quarter
monthstringНетMonth label when period is month
weekstringНетWeek label when period is week
filter_enabledbooleanНетWhether product/customer filters are active for this KPI setting. По умолчанию: false
filterobjectНетOptional product and customer scope filters
filter.is_all_categoriesbooleanНет
filter.customer_category_idsstring[]НетCustomer category ObjectIds to include
filter.customer_nested_category_idsstring[]Нет
filter.customer_idsstring[]НетSpecific customer ObjectIds to include
filter.product_category_idsstring[]Нет
filter.product_nested_category_idsstring[]Нет
filter.product_idsstring[]НетSpecific product ObjectIds to include
conditionsobject[]ДаOne or more KPI plan conditions defining the performance metric and tier thresholds
conditions[].logical_operatorbooleanДаtrue = AND with the next condition, false = OR
conditions[].source_metric_codestringДаThe performance metric used to evaluate this condition. Допустимые значения: net_sales, sales_count, avg_net_sales, profit, paid, paid_percent, items_sold
conditions[].tiersobject[]ДаThreshold tiers for this condition
conditions[].tiers[].min_valuenumberДаMinimum metric value for this tier to activate
conditions[].tiers[].max_valuenumberНетMaximum metric value for this tier (omit for the top tier)
bonus_metric_codestringДаHow the bonus amount is computed from the employee's results. Допустимые значения: percent_of_net_sales, percent_of_payment, percent_of_profit, per_sale, fixed_amount, per_item_sold
bonusesnumber[]ДаBonus amounts or percentages, one entry per tier in the conditions
json
{
  "organization_id": "string",
  "name": "string",
  "currency_id": "string",
  "user_ids": [
    "string"
  ],
  "period": "week",
  "calculation_method": "progressive",
  "date_from": "2025-05-01T12:00:00Z",
  "date_to": "2025-05-01T12:00:00Z",
  "year": 0,
  "quarter": "string",
  "month": "string",
  "week": "string",
  "filter_enabled": false,
  "filter": {
    "is_all_categories": false,
    "customer_category_ids": [
      "string"
    ],
    "customer_nested_category_ids": [
      "string"
    ],
    "customer_ids": [
      "string"
    ],
    "product_category_ids": [
      "string"
    ],
    "product_nested_category_ids": [
      "string"
    ],
    "product_ids": [
      "string"
    ]
  },
  "conditions": [
    {
      "logical_operator": false,
      "source_metric_code": "net_sales",
      "tiers": []
    }
  ],
  "bonus_metric_code": "percent_of_net_sales",
  "bonuses": [
    0
  ]
}

Ответ

Структура ответа совпадает с POST /kpi-settings/create.

DELETE /kpi-settings/delete/{id} ​

Soft-delete a KPI settings record by ObjectId.

Параметры пути

ПараметрТипОбязательноОписание
idstringДаKPI settings ObjectId

Тело запроса

Тело запроса не требуется.

Ответ

json
{
  "code": 0,
  "message": "Success",
  "status_code": 200,
  "data": "ok",
  "time": "2025-05-01T12:00:00Z"
}

PUT /kpi-settings/set-status/{id} ​

Change the status (state) of a KPI settings record. Allowed transitions: locked, approved, canceled.

Параметры пути

ПараметрТипОбязательноОписание
idstringДаKPI settings ObjectId

Тело запроса

ПолеТипОбязательноОписание
statusstringДаNew status for the KPI settings record. Допустимые значения: locked, approved, canceled
json
{
  "status": "locked"
}

Ответ

Структура ответа совпадает с POST /kpi-settings/create.


Эта страница сгенерирована из спецификации OpenAPI.

Bito 2.0 Integration API