Coming soon
AML · Sanctions Screening · Fraud Scoring

Screen Smarter.
Score with Confidence.

Real-time AML and sanctions screening that cuts false positives — paired with granular fraud risk scores on every transaction, account, and event. One platform, tuned to your business.

Trusted by compliance teams worldwide
SaaS or On-Premise Regulator-ready audit trails API-first integration Sub-second response

97%
False positive reduction
<50ms
Screening response time
200+
Watchlists & PEP sources
99.9
Platform uptime SLA

Two disciplines,
one unified platform.

nex8lens combines deep compliance intelligence with real-time decisioning — so your team catches what matters, faster.

AML & Sanctions Screening

Stay Ahead
of Sanctions.

Real-time screening against global watchlists, PEP databases, and adverse media — with match explanations your analysts can act on in seconds, not hours.

  • Global OFAC, UN, EU, and local sanctions lists
  • Politically exposed persons (PEP) detection
  • Fuzzy-match logic with configurable thresholds
  • Full audit trail for regulatory examination
  • Ongoing monitoring with automatic re-screening
Fraud Scoring

Every Transaction,
Scored.

Granular risk scores on every payment, account, and event — tuned to your business, explained in plain language, and ready to act on in milliseconds.

  • Explainable AI scoring with reason codes
  • Custom risk thresholds per channel or product
  • Behavioral analytics and velocity checks
  • Network graph analysis for linked fraud rings
  • Feedback loop to retrain models on your data

Intelligence at
every touchpoint.

01

Ingest & normalize

Connect your transaction streams, onboarding flows, and event data via REST API or batch file. nex8lens normalizes and enriches in real time — no schema changes required on your end.

02

Screen & score

Every event is simultaneously screened against global sanctions and PEP lists, and scored by your custom fraud models. Both signals surface together in a single response payload.

03

Decide & act

Route to automated decisions, analyst queues, or case management. Every action is logged, timestamped, and linked to the risk signal that triggered it — keeping you exam-ready.


Built for teams
who can't afford gaps.

Customizable rules engine

Write, test, and deploy rules without engineering tickets. Scenario-based logic with version control and rollback.

Explainable AI

Every score comes with human-readable reason codes. Justify decisions to customers, auditors, and regulators alike.

Case management

Integrated investigation workspace with SLA tracking, analyst notes, and SAR/CTR filing support built in.

SaaS or on-premise

Deploy in your cloud, ours, or air-gapped. Data never leaves your perimeter unless you want it to.

Real-time & batch

Sub-50ms API for live decisioning. Scheduled batch runs for portfolio re-screening and periodic review.

Regulator-ready reporting

Immutable audit logs, configurable retention policies, and one-click export in formats regulators recognize.

Integrate in minutes,
not weeks.

A single REST API for both AML/sanctions screening and fraud scoring. One request, one response, full signal.

Authentication

All API requests must include your API key in the Authorization header. Keys are scoped per environment — use cs_live_ prefixed keys in production and cs_test_ in sandbox. Never expose keys client-side.

# Pass your API key in every request
curl https://api.nex8lens.com/v1/screen \
  -H "Authorization: Bearer cs_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ ... }'
import nex8lens

client = nex8lens.Client("cs_live_YOUR_API_KEY")

# All methods on client are pre-authenticated
result = client.screen.create({ ... })
import nex8lens from '@nex8signal/node'

const client = new nex8lens({
  apiKey: process.env.nex8signal_API_KEY
})

// All methods on client are pre-authenticated
const result = await client.screen.create({ ... })

POST /v1/screen AML & Sanctions

Screen an entity — individual, business, or account — against global watchlists, sanctions lists, and PEP databases in real time. Returns match results, risk indicators, and a recommended action.

Request body

FieldTypeDescription
entity_typerequiredstringType of entity being screened. One of individual, business, account.
namerequiredstringFull legal name of the entity. For individuals, use format Last, First Middle where possible.
doboptionalstringDate of birth in ISO 8601 format YYYY-MM-DD. Improves match precision for individuals.
countryoptionalstringISO 3166-1 alpha-2 country code. Used to weight regional watchlists.
identifiersoptionalobjectKnown identifiers: passport, national_id, tax_id, registration_number.
listsoptionalarrayRestrict screening to specific list IDs. Defaults to all lists enabled for your account.
match_thresholdoptionalnumberFuzzy match sensitivity from 0.0 to 1.0. Defaults to your account setting (typically 0.85).
curl -X POST https://api.nex8lens.com/v1/screen \
  -H "Authorization: Bearer cs_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "entity_type": "individual",
    "name": "John Edward Smith",
    "dob": "1975-04-22",
    "country": "GB",
    "identifiers": {
      "passport": "GB123456789"
    },
    "match_threshold": 0.85
  }'
result = client.screen.create(
    entity_type="individual",
    name="John Edward Smith",
    dob="1975-04-22",
    country="GB",
    identifiers={"passport": "GB123456789"},
    match_threshold=0.85
)
const result = await client.screen.create({
  entity_type: 'individual',
  name: 'John Edward Smith',
  dob: '1975-04-22',
  country: 'GB',
  identifiers: { passport: 'GB123456789' },
  match_threshold: 0.85
})

Response

200 OK
{
  "screening_id": "scr_01HX4K9NZ3M8PQRST",
  "status": "completed",
  "recommendation": "review",  // clear | review | block
  "matches": [
    {
      "match_id": "mch_7Z2X",
      "list": "OFAC_SDN",
      "match_score": 0.91,
      "matched_name": "John E. Smith",
      "entity_type": "individual",
      "sanctions_programs": ["IRAN"],
      "listed_on": "2021-03-15"
    }
  ],
  "pep_result": { "is_pep": false },
  "latency_ms": 38,
  "screened_at": "2026-05-30T10:14:22Z"
}

POST /v1/score Fraud Scoring

Score a transaction or event for fraud risk. Returns a risk score from 0–1000, human-readable reason codes, and a recommended action. Designed for sub-50ms inline decisioning.

Request body

FieldTypeDescription
event_typerequiredstringType of event. One of payment, login, onboarding, withdrawal, account_change.
amountoptionalnumberTransaction amount in minor currency units (e.g. cents). Required for payment events.
currencyoptionalstringISO 4217 currency code. Required for payment events.
account_idrequiredstringYour internal account or user identifier. Used for behavioral history and velocity checks.
deviceoptionalobjectDevice signals: ip, fingerprint, user_agent, timezone.
metadataoptionalobjectArbitrary key-value pairs passed through to the response. Max 20 keys, 512 chars per value.
curl -X POST https://api.nex8lens.com/v1/score \
  -H "Authorization: Bearer cs_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "event_type": "payment",
    "amount": 149900,
    "currency": "USD",
    "account_id": "usr_4g8x2kqz",
    "device": {
      "ip": "203.0.113.42",
      "fingerprint": "fp_a3b9c1d2",
      "user_agent": "Mozilla/5.0..."
    }
  }'
result = client.score.create(
    event_type="payment",
    amount=149900,
    currency="USD",
    account_id="usr_4g8x2kqz",
    device={
        "ip": "203.0.113.42",
        "fingerprint": "fp_a3b9c1d2",
        "user_agent": "Mozilla/5.0..."
    }
)
const result = await client.score.create({
  event_type: 'payment',
  amount: 149900,
  currency: 'USD',
  account_id: 'usr_4g8x2kqz',
  device: {
    ip: '203.0.113.42',
    fingerprint: 'fp_a3b9c1d2',
    user_agent: 'Mozilla/5.0...'
  }
})

Response

200 OK
{
  "score_id": "scr_01HX5RNPQ7W2ABCDE",
  "risk_score": 742,        // 0 (low) – 1000 (high)
  "risk_band": "high",       // low | medium | high | critical
  "recommendation": "review", // allow | review | block
  "reason_codes": [
    {
      "code": "VELOCITY_BREACH_24H",
      "description": "Account exceeded 5 transactions in 24h",
      "weight": 0.38
    },
    {
      "code": "NEW_DEVICE_HIGH_VALUE",
      "description": "First seen device, transaction over $500",
      "weight": 0.29
    }
  ],
  "model_version": "v3.4.1",
  "latency_ms": 22,
  "scored_at": "2026-05-30T10:14:44Z"
}

POST /v1/evaluate Combined

Run AML/sanctions screening and fraud scoring in a single atomic request. Both signals are evaluated simultaneously and returned together — ideal for onboarding flows and high-value payment authorization.

curl -X POST https://api.nex8lens.com/v1/evaluate \
  -H "Authorization: Bearer cs_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "entity": {
      "entity_type": "individual",
      "name": "Jane A. Doe",
      "country": "US"
    },
    "event": {
      "event_type": "payment",
      "amount": 500000,
      "currency": "USD",
      "account_id": "usr_7h3m9prt"
    }
  }'
result = client.evaluate.create(
    entity={
        "entity_type": "individual",
        "name": "Jane A. Doe",
        "country": "US"
    },
    event={
        "event_type": "payment",
        "amount": 500000,
        "currency": "USD",
        "account_id": "usr_7h3m9prt"
    }
)
const result = await client.evaluate.create({
  entity: {
    entity_type: 'individual',
    name: 'Jane A. Doe',
    country: 'US'
  },
  event: {
    event_type: 'payment',
    amount: 500000,
    currency: 'USD',
    account_id: 'usr_7h3m9prt'
  }
})

Response

200 OK
{
  "evaluation_id": "evl_01HX6ZZPQ9Y3FGHIJ",
  "overall_recommendation": "block",
  "screening": {
    "screening_id": "scr_01HX6ABCD",
    "recommendation": "block",
    "matches": [ /* ... */ ]
  },
  "scoring": {
    "score_id": "scr_01HX6EFGH",
    "risk_score": 891,
    "risk_band": "critical",
    "recommendation": "block",
    "reason_codes": [ /* ... */ ]
  },
  "latency_ms": 44,
  "evaluated_at": "2026-05-30T10:15:01Z"
}

GET /v1/cases/{id} Case Management

Retrieve a case by its ID — including all linked screening and scoring events, analyst notes, disposition, and audit log entries.

curl https://api.nex8lens.com/v1/cases/cas_01HX7MNOP \
  -H "Authorization: Bearer cs_live_YOUR_API_KEY"
case = client.cases.retrieve("cas_01HX7MNOP")
const cas = await client.cases.retrieve('cas_01HX7MNOP')

Error codes

HTTP statusCodeDescription
400invalid_requestMissing or malformed fields. Check the errors array in the response for field-level detail.
401unauthorizedAPI key missing, invalid, or expired. Verify your Authorization header.
403forbiddenYour key does not have permission for this endpoint or environment.
429rate_limit_exceededRequest volume exceeded your plan limit. See Retry-After header for backoff window.
500internal_errorUnexpected server error. Retryable with exponential backoff. Contact support if persistent.

Rate limits

PlanTypeLimit
Starterstring500 requests / minute, 50K / day
Growthstring2,000 requests / minute, 500K / day
EnterprisestringCustom limits — contact sales

All responses include X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers. On-premise deployments are not subject to these limits.


Ready to screen smarter
and score with confidence?

Talk to a specialist. We'll walk through your current stack and show you exactly where nex8lens fits — no generic demos.

SaaS On-Premise Private Cloud Air-gapped