Fraud & AML decision engine

Every decision, with its reasoning attached.

Krino scores every incoming event against rules your own team wrote, in milliseconds, and puts anything suspicious in front of your analysts as a case. You see exactly which rule contributed what — so you can answer an auditor, a disputing customer and a regulator with more than a number.

Self-hosted — data never leaves Rule changes — no release cycle Device intelligence — included
tx-88214 · card_payment 34 ms
Disposable email provider+40
Datacenter IP egress+30
6 cards on one device in 24h+22
Basket above customer average
92 Block and reviewthreshold: 60 · case opened
Krino dashboard: today's decisions, open cases and seven-day trend charts
Dashboard · today's decisions, open cases and the seven-day trend
The status quo

Why does changing one rule take weeks?

Fraud patterns change in a week. If changing a rule waits on a software release, that week is a loss.

Rules live in the codebase

The risk team spots a pattern, explains it to an engineer, joins the backlog and waits for a release. The gap between noticing and stopping is measured in weeks.

The score is a black box

The vendor returns a number. When a customer asks why they were declined, or an auditor asks for the reasoning, that number is all you have.

Your data leaves

Transaction and customer records land in someone else's cloud. Under most regulatory regimes that is a file of its own.

The path

How a transaction moves through Krino.

Event arrives

A payment, a login attempt, a signup — one API call, in your own data model with your own field names.

Signals are derived

Email, phone, IP and device signals come from lists held inside your infrastructure. Nothing is queried outside.

Rules run

The scenario's rules are evaluated together and each adds its score. Around 34 ms.

A decision returns

Approve, review, block-and-review or decline — with the contribution of every rule in the same response.

Measurement

What if I moved the threshold?

Krino re-reads past decisions at new thresholds and shows how many would have landed differently. Not a forecast — a replay of decisions already made. The same screen shows how often each rule fired and how often it actually changed the outcome; a rule that fires constantly but is never decisive is adding noise to every score.

Analytics screen with threshold simulation histogram and rule performance table
Threshold simulation · 240 decisions, four outcomes, three thresholds

Nor do you have to wait after publishing a new version: a screen streams decisions as they are recorded — outcome, score, scenario, customer and the case opened, if one was. The first minute tells you now what the dashboard will say in half an hour: whether the thresholds held, which rule fires more often than you expected, and whether the volume landing in the queue is a number your team can carry.

Difference

Why Krino?

 Typical approachKrino
Changing a ruleEngineer plus a release, days to weeksRisk team, on screen, immediately
Data modelThe vendor's schema; your fields don't fitYou define your own tables and fields
Where data livesThe vendor's cloud, often another jurisdictionYour own servers — nothing leaves
Decision rationaleA score comes back; the detail is closedWhich rule, how many points — one by one
Device intelligenceSeparate product, separate contractIncluded
Sanctions screeningSeparate product, usually priced per queryIncluded, matched locally
Investigation workflowSpreadsheets, email, a separate ticket toolIn the product, with an audit trail
Testing before releaseHopeShadow mode against live traffic, or against last month's transactions
Record of a rule changeVersions kept, the difference visible to nobodyTwo versions side by side — sentences, not JSON
Publish approvalWhoever changed it publishes itSecond approval: the requester cannot approve their own request
Integration

Two endpoints. One afternoon.

You send the transaction, you get the decision. The reasoning comes back in the same response.

Asking for a decision
POST /api/decisions
{
  "object_type": "card_payment",
  "scenario_id": "019f8e68-…",
  "trigger_object": {
    "object_id": "tx-88214",
    "updated_at": "2026-08-06 10:00:00",
    "basket_total": 12500.00,
    "customer_no": "4471",
    "client_ip": "203.0.113.45"
  }
}
What comes back
{
  "decision": {
    "outcome": "BlockAndReview",
    "score": 92
  },
  "rule_executions": [
    { "rule_name": "Disposable email",
      "outcome": "hit", "score": 40 },
    { "rule_name": "Datacenter IP",
      "outcome": "hit", "score": 30 }
  ],
  "execution_time_ms": 34
}

Ask for the rule detail and the response also carries where the time went: reading data, counting velocity windows, running the rules. When an integration slows down you do not have to go hunting in dashboards for the step that grew — a dashboard gives you a percentile, and a percentile cannot be asked about one transaction.

When you would rather not wait on the decision, send events separately and receive the outcome over a signed webhook. Details in the documentation.

Pricing

One plan, one price.

No per-transaction fee, no module-by-module upsell. It installs on your own infrastructure; the licence is a flat monthly figure.

Self-hosted
$1,499 / month

Pay annually and save 20%

Unlimited rules, scenarios and users. Onboarding support and version upgrades included.

See what's included

Everything included

  • Rule and scenario engine
  • Device intelligence
  • Sanctions and PEP screening
  • Case management
  • Shadow test runs
  • Scheduled runs
  • Webhooks and API
  • Version upgrades
Payback

How much are you losing a month?

Put your own numbers in. Nothing is converted — whatever currency you enter is the currency you get back.

12 basis points is 0.12% of volume.
An assumption, not a measurement. Put your own target in.
Prevented loss per month $89,250
Prevented loss per year $1,071,000

Krino costs $1,499/mo. One plan, no per-transaction fee, and it does not grow with your volume. Pricing →

Let's see it on your data.

The best demo is the one built from last month's transactions. Leave your details and we'll come back within two working days to set it up on an anonymised sample.

Deployment

Your details are used for this request only. You can also email us directly.

Your request reached us.

We'll come back within two working days. If it's urgent, write to muhammet.sahin@dakicksoft.com.