Skip to content

Add a bank-authored rule

POST
/v1/rules/custom
curl --request POST \
--url http://localhost:8080/v1/rules/custom \
--header 'Content-Type: application/json' \
--data '{ "id": "example", "title": "example", "severity": "example", "field": "example", "comparison": "example", "kind": "example", "docType": "example" }'

Creates a declarative rule; a canonical field plus one comparison: agree (every source must agree, under the bank’s tolerances), matches_lar (documents must match the approval record) or present (the field must exist, optionally on one document type). The id is derived from the title (CUSTOM-…) unless given. Evaluated by the same deterministic engine as the shipped catalog. Administrators only. 400 with reasons when the spec is invalid, 409 for a duplicate id.

Media typeapplication/json

Wire shape for creating/editing a custom rule; maps 1:1 onto CustomRuleSpec.

object
id
null | string
title
string
severity
string
field
string
comparison
string
kind
null | string
docType
null | string
Examplegenerated
{
"id": "example",
"title": "example",
"severity": "example",
"field": "example",
"comparison": "example",
"kind": "example",
"docType": "example"
}

OK

Media typeapplication/json
object
rulesetVersion
required
string
rules
required
Array<object>

One row of the Rules page: a shipped or bank-authored rule with its policy state.

object
id
required
string
version
required
string
severity
required
string
title
required
string
fields
required
Array<string>
enabled
required
boolean
isCustom
required
boolean
spec
required
One of:
null
Examplegenerated
{
"rulesetVersion": "example",
"rules": [
{
"id": "example",
"version": "example",
"severity": "example",
"title": "example",
"fields": [
"example"
],
"enabled": true,
"isCustom": true,
"spec": {
"id": "example",
"title": "example",
"severity": "example",
"field": "example",
"comparison": "example",
"kind": "example",
"docType": "example"
}
}
]
}