Skip to content
Transaction Monitoring

Real-time AML transaction monitoring for financial institutions

Every transaction is evaluated before money moves. When something warrants attention, a case opens automatically — evidence already assembled.

<50 ms
P99 decision latency
Pre-auth
Before money moves
Real-time
Not batch, not T+1
Compliance Decision API

One call in your payment handler. Four possible answers.

The decision arrives before money moves — with the reasoning already attached.

Synchronous by design. Under 50 ms P99, fast enough to sit inside the authorisation path rather than beside it.

Four states, four handler paths. CLEAR and FLAGGED proceed, HELD_FOR_REVIEW holds, BLOCKED declines and reverses. Never ambiguous.

Reasons, not scores. Every response names the rules that fired, their configured version, and the customer risk state after this transaction.

Idempotent and fail-safe. A retry returns the original decision and evidence ref. If a decision cannot be recorded, it is not returned.

Full API reference
POST /v1/decidein your handler
{
  "customerId": "cus_8f21a",
  "amount": 45000000,
  "currency": "NGN",
  "kycTier": "T2",
  "direction": "OUTBOUND",
  "eventType": "transfer"
}
200 OK·31 ms
{
  "decision": "FLAGGED",
  "reasons": ["VELOCITY_24H_EXCEEDED"],
  "ruleIdsFired": ["velocity.rolling_24h@v4"],
  "requiredActions": ["PROCEED"],
  "customerRiskState": "ACTIVE",
  "caseId": "case_77e10",
  "evidenceRef": "b91f4a72-5c1e-4d3a-9f2b-6e0a2c9a5f31",
  "timestamp": "2026-04-02T14:37:11.000Z"
}
How it works

From transaction to decision in milliseconds

0 mselapsed at this step
010203040506
Step 01 · pre-authorisationtxn_9a7f21

Transaction received

Your handler calls Fintegrity before it moves money — inside the authorisation path, not after it.

POST /v1/decide₦450,000 · transfer
Request accepted

Step 01 · pre-authorisation: Transaction received. Request accepted, 0 ms elapsed.

Rule library

Eight monitoring capabilities, configurable to your model

Every rule is configurable to your transaction volumes, customer segments, and regulatory exposure. Out of the box, Fintegrity ships with CBN and NFIU-aligned default thresholds that you tune rather than build from scratch.

Velocity

Rolling-window velocity rules

Counts and amounts across 5-minute, 1-hour, 24-hour and 7-day windows.

Thresholds

Amount and KYC tier enforcement

Hard-block anything above a customer's verified tier limit.

Patterns

Structuring detection

Sequences of just-below-threshold transfers to the same counterparty.

New accounts

New-account risk window

Elevated monitoring on fresh accounts — the mule onboarding signature.

Timing

Rapid in-out detection

Funds received and swept out within minutes, across multiple hops.

Counterparty

Counterparty concentration

Unusual concentration toward one counterparty, relative to the profile.

Behaviour

Profile-relative anomaly

Measured against the customer's own 90-day baseline.

Corridors

Corridor and channel risk

Elevated scrutiny per corridor, channel and transaction type.

Your rules, your thresholds

Change a threshold as fast as the risk changes — without an engineering release.

Tuned per segment. Thresholds and windows differ by customer segment, channel and product — not one global number.

Tested before it ships. Replay a changed rule against last month's traffic to see what it would have caught before it goes live.

Versioned by default. Every decision records the exact rule version that produced it, so a tuning change never rewrites history.

Configuration audit trail. Who changed what, when, and what it replaced — available to your reviewers and your regulator.

Case management

Case management built for the analyst’s screen

Most tools dump alerts in a queue and leave the analyst to gather the evidence. We assemble it first, then open the case.

Pre-assembled evidence

Transaction, profile, risk state and triggering rule, all present at open.

Automatic case creation

Alerts create structured cases. No manual ticket raising.

Alert context preserved

The exact state at alert time is frozen in the evidence pack.

Analyst-ready from day one

A structured investigation workflow, not a raw data dump.

01ALERT
Pattern fires

Velocity threshold exceeded in 24h window.

02CASE
Case auto-created

Evidence assembled, analyst assigned.

03REVIEW
Investigation

Analyst reviews timeline and profile.

04CLOSED
Disposition

Cleared, escalated, or SAR filed.

Audit trail & evidence

Evidence that answers the examiner

Written at decision time, not assembled when the enquiry arrives.

Recorded before the answer returns. The decision is evidenced first. No unevidenced approvals, ever.

Append-only, never edited. A record that can be altered is a document, not evidence. Ours cannot be altered.

Complete on its own. Transaction, customer state, rules and versions, analyst actions and timestamps in WAT — one artefact, no cross-referencing.

A query, not a project. Pull the full pack for any customer or transaction on demand, in the format your MLRO hands over.

Evidence packevd_b91f4a72c
Decision and required actionFLAGGED
Rules fired, with versionvelocity@v4
Customer risk state at decisionACTIVE · T2
Case actions and analyst notes3 entries
Server-side timestamps14:37 WAT
…a72c…c9a2…81ffappend-only chain
Integration

Sits in-line with your existing payment rails

Not a payment processor. The compliance layer between your product and your rails.

One API call

POST /v1/decide before any debit or credit executes. Synchronous response in under 50 ms P99.

Works with any rails

Mono, Flutterwave, Paystack, NIBSS, in-house ledgers — Fintegrity sits above the rails, not inside them.

No changes to your UX

The monitoring logic is invisible to your customers. Decisions happen at the infrastructure layer.

Connects to Case Management

Alerts automatically create cases. Your compliance team works in Fintegrity’s investigation interface.

POST https://api.dev.getfintegrity.com/v1/decide

{
  "customerId": "cus_8f21a",
  "amount": 45000000,
  "currency": "NGN",
  "kycTier": "T2",
  "direction": "OUTBOUND",
  "eventType": "transfer",
  "counterpartyId": "cpt_31b7c",
  "metadata": { "channel": "mobile" }
}
200 OK·31 ms
{
  "decision": "FLAGGED",
  "reasons": ["VELOCITY_24H_EXCEEDED"],
  "ruleIdsFired": ["velocity.rolling_24h@v4"],
  "requiredActions": ["PROCEED"],
  "caseId": "case_77e10",
  "evidenceRef": "b91f4a72-5c1e-4d3a-9f2b-6e0a2c9a5f31"
}

See Fintegrity monitor transactions in your business

We’ll walk you through a live configuration tuned to your transaction volumes, customer segments, and regulatory exposure.