Skip to content

Risk & compliance

SIM swap, BVN changes and watchlist in one score

A 0–100 risk score from SIM-swap recency, recent BVN changes and NIBSS watchlist status, with each factor and its weight.

What it does

Fraud Signals, in detail.

One score to act on

Signals combine into risk_score and risk_level, so your rules read one number.

Explainable factors

Each factor, such as sim_swap_7d or bvn_name_change_30d, comes with its weight and a plain-language detail.

SIM swap and BVN changes

Recent SIM swaps and BVN name or phone changes are common precursors to account takeover.

No personal data in the summary

Webhooks and MCP receive scores, factor codes and flags; BVN change history stays in the full-tier record.

How it works

From request to decision.

  1. 1

    POST /v1/signals

    Send the phone, the BVN or both, with the purpose code.

  2. 2

    Read risk_level

    low, medium or high, with factors.

  3. 3

    Apply your policy

    Allow, step up with OTP or face, or open a review case with a rule.

Routing and providers

Signals combine NIBSS SIM Swap, BVN Demographic Update and watchlist data.

Use it

One request. One normalized response.

Call POST /v1/signals through @speedmap/node, speedmap for Python, or the check_signals tool in Speedmap Connect.

Request
curl -X POST http://localhost:4000/v1/signals \
  -H "Authorization: Bearer sk_test_..." \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "phone": "08099990000",
  "bvn": "22222222226",
  "reason": "financialProducts",
  "consent": {
    "obtained": true
  }
}'
Response · 200 OK
{
  "reference_id": "spm_7d9f1b3e5a7c9e1b3d5f7a9c",
  "object": "verification",
  "product": "signals",
  "method": "risk_signals",
  "status": "verified",
  "match": null,
  "mode": "sandbox",
  "subject": "*******2226",
  "summary": {
    "risk_score": 35,
    "risk_level": "medium",
    "factors": [
      {
        "code": "sim_swap_7d",
        "weight": 35,
        "detail": "SIM swapped 2 day(s) ago"
      }
    ],
    "sim_swap_recent": true,
    "days_since_sim_swap": 2,
    "bvn_demographic_changes": 0,
    "bvn_demographic_changes_30d": 0,
    "watchlisted": false
  }
}

Use cases

Where Nigerian teams use it.

Before a high-value transfer

Hold the transfer if the SIM was swapped this week.

Lending at onboarding

Route watchlisted or recently changed BVNs to enhanced due diligence.

Credential resets

Score the phone and BVN before a password, PIN or device reset.

Agent cash-out

Score agents’ phones before large float withdrawals.

Part of:LendingPayments & payouts

What you get back

The fields you will read.

  • summary.risk_score / risk_level

    Meaning
    0–100 and low, medium, high
  • summary.factors

    Meaning
    code, weight and detail per factor
  • summary.sim_swap_recent / days_since_sim_swap

    Meaning
    SIM swap recency (recent means within 30 days)
  • summary.bvn_demographic_changes / _30d

    Meaning
    How many changes the BVN record has had, and how many in the last 30 days
  • summary.watchlisted

    Meaning
    NIBSS watchlist flag

Assertion tier

Scores, factors and flags only. No personal data.

Full tier

Adds data.sim_swap (last swap time) and data.bvn_changes (field, previous and new value, institution and date of each change).

Pricing

Billed per live check on the Scale up plan. Failed calls and idempotent retries are never billed.

FAQ

Fraud Signals questions.

Need more detail? Read the documentation or talk to our team.

How is the score calculated?
Weights add up to a cap of 100: watchlisted 60, SIM swap in 7 days 35, in 30 days 15, BVN name change 20, BVN phone change 10. 60 and above is high, 30 and above medium.
Is Fraud Signals an AML screening product?
No. Sanctions and PEP screening is the AML Screening product.

Start verifying in minutes. Go live when you’re ready.

Create your account in under a minute and explore the full dashboard. We switch your workspace live after a short compliance review.