Skip to main content
POST
/
api
/
business-logic-rules
Create a new business-logic rule for the authenticated organization
curl --request POST \
  --url https://app.solya.app/api/business-logic-rules \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "actionFamily": "RESTOCK_PLAN",
  "category": "ORDERING",
  "conditions": {
    "operator": "AND",
    "rules": [
      {
        "conditionOperator": "LOWER_THAN",
        "metricId": "order_total_value",
        "periodFilter": null,
        "thresholdValue": 500,
        "type": "METRIC"
      }
    ]
  },
  "description": "Warn when a restock item total is below the supplier minimum",
  "enforcementMode": "WARN",
  "evaluationPoints": [
    "PRE_PLAN_ITEM_ADD"
  ],
  "logAllEvaluations": false,
  "name": "Minimum order value",
  "priority": 1,
  "scope": {
    "checkLevel": "PLAN_ITEM"
  },
  "validationHooks": [
    "RESTOCK_PRE_ADD_ITEM"
  ]
}
'
{
  "actionFamily": "RESTOCK_PLAN",
  "category": "ORDERING",
  "conditions": {
    "operator": "AND",
    "rules": [
      {
        "conditionOperator": "LOWER_THAN",
        "metricId": "order_total_value",
        "periodFilter": null,
        "thresholdValue": 500,
        "type": "METRIC"
      }
    ]
  },
  "createdAt": "2026-06-04T10:00:00.000Z",
  "description": "Warn when a restock item total is below the supplier minimum",
  "enforcementMode": "WARN",
  "evaluationPoints": [
    "PRE_PLAN_ITEM_ADD"
  ],
  "id": "rule-uuid-new-1",
  "isActive": true,
  "logAllEvaluations": false,
  "name": "Minimum order value",
  "phase": null,
  "priority": 1,
  "ruleGroupIds": [
    "ruleset-uuid-default"
  ],
  "scope": {
    "checkLevel": "PLAN_ITEM"
  },
  "sourceTemplateId": null,
  "updatedAt": null,
  "validationHooks": [
    "RESTOCK_PRE_ADD_ITEM"
  ],
  "violationMessage": null
}

Authorizations

Authorization
string
header
required

User session token issued by NextAuth. For human users accessing Solya via the web application.

Body

application/json
category
enum<string>
required
Available options:
CAPACITY,
ASSORTMENT,
ORDERING,
TRANSFER,
PRICING,
DISTRIBUTION,
COMPLIANCE
conditions
object
required
name
string
required
Required string length: 1 - 255
scope
object
required
actionFamily
enum<string> | null
Available options:
RESTOCK_PLAN,
REBALANCE_PLAN,
MARKDOWN_PLAN,
PRE_SEASON_PLAN,
RECOMMENDATION,
WORKFLOW,
SUPPLIER_RETURN_PLAN,
SUPPLIER_EXCHANGE_PLAN
description
string | null
enforcementMode
enum<string>
default:WARN
Available options:
BLOCK,
WARN,
LOG
evaluationPoints
enum<string>[]
Available options:
PRE_PLAN_ITEM_ADD,
PRE_PLAN_VALIDATE,
RECOMMENDATION_GENERATION,
WORKFLOW_EXECUTION,
MANUAL_CHECK
logAllEvaluations
boolean
default:true
phase
enum<string> | null
Available options:
SCORING,
SIZING,
SOURCING,
APPROVAL
priority
integer
default:0
Required range: 0 <= x <= 9007199254740991
ruleGroupIds
string[]
Minimum string length: 1
sourceTemplateId
string | null
Maximum string length: 100
validationHooks
enum<string>[]
Available options:
RESTOCK_PRE_ADD_ITEM,
RESTOCK_PRE_VALIDATE_ITEM,
RESTOCK_PRE_CHANGE_STATUS,
REBALANCE_PRE_ADD_ITEM,
REBALANCE_PRE_VALIDATE_ITEM,
REBALANCE_PRE_CHANGE_STATUS,
MARKDOWN_PRE_ADD_ITEM,
MARKDOWN_PRE_VALIDATE_ITEM,
PRE_SEASON_PRE_ADD_ITEM,
PRE_SEASON_PRE_VALIDATE_ITEM,
PRE_SEASON_PRE_CHANGE_STATUS,
RECOMMENDATION_PRE_GENERATE,
MANUAL_CHECK,
SUPPLIER_RETURN_PRE_ADD_ITEM,
SUPPLIER_RETURN_PRE_CHANGE_STATUS,
SUPPLIER_EXCHANGE_PRE_ADD_ITEM,
SUPPLIER_EXCHANGE_PRE_CHANGE_STATUS
violationMessage
object

Response

Successful response

data
object
required
success
enum<boolean>
required
Available options:
true