sumsub/agent-skills17 files

Sumsub Create Kyt Rules

Configure KYT transaction monitoring rules with tags, applicant risk scoring and risk levels. TRIGGER when the user says "create / add / set up KYT rules / TM rules", "configure transaction monitoring", describes scoring logic (flag/block/hold transactions by amount, country, direction, peer, or other conditions), wants to "update / change / edit an existing rule" (by name or title), asks to "configure applicant scoring / risk scoring / assessment", "set up tags", "define risk levels / thresholds", or "configure applicant risk". SKIP for applicant levels, questionnaires, PoA presets, workflows, or non-TM tasks.

Specification
Skill ID
sumsub/agent-skills/sumsub-create-kyt-rules
Publisher
sumsub
Repository
agent-skills
Installs
0
Files
17
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

sumsub/agent-skills/sumsub-create-kyt-rulesInstalls these files
  • SKILL.md
  • examples/eval-finance-hold.json
  • examples/minimal.json
  • references/kyt-rule-schema.md
  • scripts/create_kyt_client_list.sh
  • scripts/get_kyt_applicant_assessment.sh
  • scripts/get_kyt_bundle.sh
  • scripts/get_kyt_client_list.sh
  • scripts/get_kyt_risk_level_settings.sh
  • scripts/get_kyt_rule.sh
  • scripts/get_kyt_rules.sh
  • scripts/get_kyt_tags.sh
  • scripts/patch_kyt_applicant_assessment.sh
  • scripts/patch_kyt_risk_level_settings.sh
  • scripts/post_kyt_rule.sh
  • scripts/post_kyt_tag.sh
  • scripts/sumsub_curl.sh

What this skill tells the agent

Sumsub — KYT Rules, Applicant Scoring & Risk Levels

Configures the full KYT transaction monitoring stack:

  • Rules — translates user intent into KytTxnRule payloads and POSTs them one at a time. Supports creating new rules and modifying existing ones (by posting a new revision). New rules always start in testMode (dryRun: true) — they appear in dryScore but do not affect the live outcome until activated in the dashboard.
  • Tags & applicant scoring — creates and configures tags (named risk markers) and the assessment that maps tag weights into a composite applicant risk score.
  • Risk levels — configures the score thresholds that translate a numeric risk score into a human-readable label (e.g. Low / Med / High).

Rules, tags, and risk levels form a single pipeline: a rule fires → applies tags → tags accumulate a weighted score → score maps to a risk level.

Endpoints

MethodPathDescriptionResponse
GET/resources/api/agent/tm/rules/-/installedList existing rules. Supports ?limit=<n> and ?offset=<n>. Requires seeKytRules.{ list: { items: [...] } }
POST/resources/api/agent/tm/rulesCreate a new rule or a new revision. For creation omit id and name. For a revision include the existing name slug and "id": null. Requires manageKytRules.200 rule object · 400 error message
GET/resources/api/agent/tm/rules/-/bundle/{bundleName}/{category}List rules in a bundle by name and installation status. category: installed, available, archived. Requires seeKytRules.{ list: { items: [...] } }
GET/resources/api/agent/tm/rules/{id}Read one rule by id. Requires seeKytRules.rule object
GET/resources/api/agent/tm/settings/tagsList all KYT tags with their assessment configuration and linked rules.{ tags: [...] }
POST/resources/api/agent/tm/settings/tagCreate or update a KYT tag. Body: {"tag": {"name": "...", "styleClass": "...", "color": "#RRGGBBAA", "scorable": true, "includeInReporting": true, "scoreWeight": 1.0}}. color must be 8-digit hex. Requires manageKytSettings.200 empty body
GET/resources/api/agent/tm/settings/applicantAssessmentGet current applicant assessment scoring configuration (tag weights, hierarchy, company beneficiary weights).assessment settings object
PATCH/resources/api/agent/tm/settings/applicantAssessmentReplace applicant assessment scoring configuration. Requires manageKytSettings.200 updated assessment settings
GET/resources/api/agent/tm/settings/riskLevelGet current applicant risk level thresholds.risk level settings object
PATCH/resources/api/agent/tm/settings/riskLevelReplace risk level thresholds. Body: min 2 items, each with label (≤256), rangeFrom (≥0), styleClass — one of: grey, black, blue, green, cyan, teal, lime, yellow, orange, volcano, red, pink, fuchsia, purple, purpleLight. Requires manageKytSettings.200 updated risk level settings
GET/resources/api/agent/tm/clientLists/{listName}Fetch a client list by name. 404 if not found. Requires seeClientLists.client list object
POST/resources/api/agent/tm/clientLists/{listName}Create a client list (idempotent). Requires manageClientLists.client list object

See `references/kyt-rule-schema.md` for the full rule SumScript expression field reference and type system.

Auth — App Token + secret (sandbox only)

This skill talks to the public Sumsub API and signs each request per the authentication reference. The full how-it-works writeup lives in the `sumsub-api-auth` skill — read it if you hit 401 Invalid signature.

⚠️ Sandbox tokens only. Do not accept or use a production App Token here. If the user offers one, refuse and ask them to generate a sandbox pair at <https://cockpit.sumsub.com/checkus/home?sbx=true> (Connect Sumsub to your AI agent -> Build & configure -> Generate token). Token + secret are shown once — copy both before closing the dialog. The helper script enforces this — it rejects tokens that don't start with sbx:.
VarExample
SUMSUB_APP_TOKENsbx:... — sandbox App Token from the dashboard.
SUMSUB_SECRET_KEYThe paired secret shown once at token creation.
SUMSUB_BASEOptional. Defaults to https://api.sumsub.com.

If the user has already supplied credentials in conversation, reuse them; otherwise ask once before running. Never echo the secret back.

Tenant Entitlements

Entitlements are gated per transaction type, not globally. Each types value needs any one of the keys listed for it — not all of them. There is no baseline entitlement that every rule requires: KYT is the entitlement for the finance type, nothing more.

Rule types valueEnabled by any one of
financeKYT
travelRuleTRAVEL_RULE
kycTM_INDIVIDUAL_APPLICANT_SCORING · TM_COMPANY_APPLICANT_SCORING · KYT_ANTI_FRAUD · KYT · DEVICE_INTELLIGENCE
userPlatformEventKYT_ANTI_FRAUD · KYT
scheduledEventTM_SCHEDULED_EVENTS · KYT

A tenant that has only TRAVEL_RULE can create travelRule rules. A tenant that has only DEVICE_INTELLIGENCE can create kyc rules. Neither needs KYT. Do not require KYT for a type whose row does not list it.

Before creating or modifying a rule, run bash scripts/check_permissions.sh from the `sumsub-check-permissions` skill directory. The response body is {"allowedChecks": {"<KEY>": "<description>", ...}} — the keys of allowedChecks are the enabled entitlements. There is no allowed array.

Stop only when the requested type is not enabled — i.e. none of the keys on that type's row appear in allowedChecks. Do not build or POST that rule. Name the type as the user sees it (see Transaction Types — kyc is "Verification session events", never "kyc"), list the keys that would enable it joined by "or", and tell the user to contact their CSM or Sumsub support. Do not offer a different transaction type as a workaround — if the user wants a travelRule rule, a finance rule is not a substitute.

If the entitlement request itself fails (non-200, timeout), warn the user that entitlements could not be verified and proceed anyway. The backend is the authority and enforces the same gate on POST — see the No allowed transaction types found row in step 6.

Note on scheduled rules. The scheduled trigger mode is licensed by TM_SCHEDULED_EVENTS specifically, while the scheduledEvent type is also enabled by KYT. A tenant with only KYT may therefore pass this gate and still be refused by the backend on noEventTrigger. Build the rule as usual and surface the backend error verbatim if that happens.

Procedure

  1. Fetch tenant entitlements — only when creating or modifying a rule. Run sumsub-check-permissions and keep the keys of allowedChecks. Once you know the rule's types, check that row in Tenant Entitlements and abort if none of its keys are present.

Skip this step entirely for work that is not a rule: tags, applicant assessment, risk levels, and client lists need no entitlement. Do not look for an entitlements endpoint other than the one sumsub-check-permissions calls — there is no other one.

  1. Determine mode — create or modify.

More from sumsub

Use this skill in a project

Open any RiverX project, search the Skills panel for sumsub/agent-skills/sumsub-create-kyt-rules, and install it in one click.

Use this skill