Risk Summary Writer
Write a plain-language risk summary from the results of company or invoice checks, for a reviewer who is not technical.
risk-narrative-generate Example
{
"flags": [
{
"finding": "The company domain is only 15 days old",
"severity": "high",
"recommendation": "Verify the company through additional channels before proceeding"
}
],
"summary": "1 of 3 checks flagged an issue. The domain age is under 30 days, which warrants attention.",
"raw_checks": {
"company_exists": {
"pass": true
},
"domain_age_days": {
"data": {
"age_days": 15
},
"pass": false
},
"sanctions_clear": {
"pass": true
}
},
"risk_level": "low",
"risk_score": 25,
"passed_checks": [
"company exists",
"sanctions clear"
],
"checks_performed": 3,
"data_sources_consulted": [
"Claude Sonnet risk assessment"
]
} Inputs
| Field | Type | Required | What it is |
|---|---|---|---|
context | one of kyb, invoice_fraud | Yes | Context for the risk assessment (kyb or invoice_fraud) |
check_results | object | Yes | Structured check results from upstream capabilities |
Output fields
How reliably each field appears in a successful answer.
| Field | Type | Appears |
|---|---|---|
flags | array | Always (present in every successful answer) |
summary | string | Always (present in every successful answer) |
raw_checks | object | Always (present in every successful answer) |
risk_level | string | Always (present in every successful answer) |
risk_score | number | Always (present in every successful answer) |
passed_checks | array | Always (present in every successful answer) |
checks_performed | integer | Always (present in every successful answer) |
data_sources_consulted | array | Usually (present for most inputs) |
How to call it
The same tool through each route. MCP clients reach it through Strale’s server at https://api.strale.io/mcp; the call below is what the agent sends.
# Needs an API key. max_price_cents caps what this call may cost.
curl -X POST https://api.strale.io/v1/do \
-H "Authorization: Bearer $STRALE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"capability_slug": "risk-narrative-generate",
"inputs": {
"check_results": {
"company_exists": {
"pass": true
}
},
"context": "kyb"
},
"max_price_cents": 5
}' {
"tool": "strale_execute",
"arguments": {
"slug": "risk-narrative-generate",
"inputs": {
"check_results": {
"company_exists": {
"pass": true
}
},
"context": "kyb"
},
"max_price_cents": 5
}
} import { Strale } from "straleio";
const strale = new Strale({ apiKey: process.env.STRALE_API_KEY! });
const result = await strale.do({
capability_slug: "risk-narrative-generate",
inputs: {
"check_results": {
"company_exists": {
"pass": true
}
},
"context": "kyb"
},
max_price_cents: 5,
}); import os
from straleio import Strale, DoRequest
strale = Strale(api_key=os.environ["STRALE_API_KEY"])
result = strale.do(DoRequest(
capability_slug="risk-narrative-generate",
inputs={
"check_results": {
"company_exists": {
"pass": True,
},
},
"context": "kyb",
},
max_price_cents=5,
)) # No account. The first request answers 402 with the price in USDC;
# an x402 client pays it from your wallet and repeats the request.
curl -i -X POST https://api.strale.io/x402/v2/risk-narrative-generate \
-H 'Content-Type: application/json' \
-d '{
"check_results": {
"company_exists": {
"pass": true
}
},
"context": "kyb"
}' Limitations
AI-generated narrative may oversimplify complex risk scenarios
Risk narratives are generated by AI and may oversimplify complex scenarios. The narrative should be reviewed by a qualified professional for high-stakes decisions.
Wording rules are enforced but not guaranteed
The AI is instructed to follow specific wording rules (e.g., never say "safe to pay") but adherence is not 100% guaranteed. Automated wording checks are recommended.
Context-dependent output quality
Narrative quality depends on the completeness of input check_results. Missing or incomplete check data will produce less useful narratives.
Bundled checks that include it
- KYB Complete — Sweden €2.50
- Invoice Verify — Sweden €2.50
- KYB Complete — Norway €2.50
- Invoice Verify — Norway €2.50
- KYB Complete — Finland €2.50
- Invoice Verify — Finland €2.50
- KYB Complete — United Kingdom €2.50
- Invoice Verify — United Kingdom €2.50
- KYB Complete — Germany €2.50
- Invoice Verify — Germany €2.50
- KYB Complete — France €2.50
- Invoice Verify — France €2.50
- KYB Complete — Belgium €2.50
- Invoice Verify — Belgium €2.50
- KYB Complete — Austria €2.50
- Invoice Verify — Austria €2.50
- KYB Complete — Ireland €2.50
- Invoice Verify — Ireland €2.50
- KYB Complete — Spain €2.50
- Invoice Verify — Spain €2.50
- KYB Complete — Switzerland €2.50
- Invoice Verify — Switzerland €2.50
- KYB Complete — Poland €2.50
- KYB Complete — Singapore €2.70
- Invoice Verify — Poland €2.50
- Invoice Verify — Singapore €2.77
- KYB Complete — Croatia €2.50
- Invoice Verify — Croatia €2.50
- KYB Complete — Greece €2.50
- Invoice Verify — Greece €2.50
- KYB Complete — United States €2.50
- Invoice Verify — United States €2.50
- KYB Complete — Canada €2.50
- Invoice Verify — Canada €2.50
- KYB Complete — Australia €2.50
- Invoice Verify — Australia €2.50