Skip to main content
Version: 0.1.0

Risk Levels

Every verify() call returns a riskLevel and an allowed boolean. These are independent: a transaction can be allowed: true with riskLevel: high.

Levels

low
Normal risk

Transaction looks safe. No signals flagged.

medium
Elevated risk

Some signals flagged. Consider additional verification.

high
High risk

Strong fraud signals detected. Can still be allowed depending on scenario configuration.

blocked
Blocked

Transaction blocked by backend policy. SDK-only value, always allowed: false.

unknown
Unknown

Risk could not be determined. SDK or backend failure. SDK-only value, always allowed: false.

info

risk_level and allowed are evaluated independently by the backend. The risk level reflects the fraud signal assessment, while the allowed decision is based on your organization's scenario configuration. A high risk transaction can be allowed: true if no rejection scenario triggers.

warning

blocked and unknown are SDK-only values indicating error conditions. When riskLevel is either of these, allowed will be false and the errors array will contain details. The backend only returns low, medium, or high.

Decision Flow

verify() returns result

allowed: true
low
medium
high

Transaction accepted. The risk level tells you how much friction to apply:

  • low: proceed normally
  • medium: proceed with caution, consider step-up verification
  • high: accepted but flagged for review, add friction or monitor
allowed: false
high
blocked
unknown

Transaction rejected. Check result.errors for details:

  • high: rejection scenario triggered
  • blocked: backend policy block (blacklist, jurisdiction)
  • unknown: SDK/network error