Skip to content

Identity

Phone identity lookup for corroboration

Compare the name and date of birth linked to a mobile number with what your customer told you, as a signal next to a primary ID check.

What it does

Phone Identity, in detail.

Name and birth date match

field_matches says which supplied details agree, and field_confidence scores each name 0–100, tolerant of nicknames.

Masked by default

Assertion responses return masked names and match flags; full-tier workspaces receive the normalized fields.

Pairs with signals and OTP

Add SIM-swap recency and an OTP ownership check on the same number to defend against account takeover.

Number formats checked first

Accepts 070, 071, 080, 081, 090 and 091 numbers in local or +234 form; anything else is rejected before lookup.

How it works

From request to decision.

  1. 1

    POST /v1/verify/phone

    Send the number, purpose code, consent attestation and the fields to compare.

  2. 2

    Compare

    Read match, field_matches and field_confidence.

  3. 3

    Step up on mismatch

    Route mismatches to an OTP check, a face match or your review queue.

Routing and providers

Phone lookups use NIBSS Phone Number Validation, offered as corroboration rather than primary identity.

Use it

One request. One normalized response.

Call POST /v1/verify/phone through @speedmap/node, speedmap for Python.

Request
curl -X POST http://localhost:4000/v1/verify/phone \
  -H "Authorization: Bearer sk_test_..." \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "phone": "08031234567",
  "reason": "financialProducts",
  "consent": {
    "obtained": true
  },
  "match": {
    "last_name": "Griffin"
  }
}'
Response · 200 OK
{
  "reference_id": "spm_7830855f68f893ba6cb4fa95",
  "object": "verification",
  "product": "phone",
  "method": "phone_lookup",
  "status": "verified",
  "match": true,
  "field_matches": {
    "last_name": true
  },
  "mode": "sandbox",
  "subject": "*******4567",
  "summary": {
    "first_name": "A*****",
    "last_name": "O*****",
    "repeat_count_30d": 1,
    "repeat_platform_bucket": "0"
  }
}

Use cases

Where Nigerian teams use it.

Signup corroboration

Flag wallet signups where the number is linked to someone other than the applicant.

Account takeover defence

Re-check the number, with a SIM-swap signal, when credentials or devices change.

Agent and merchant onboarding

Confirm the settlement phone number belongs to the merchant you verified.

Part of:Mobility & logistics

What you get back

The fields you will read.

  • status

    Meaning
    verified when the number is linked to a record, otherwise not_found
  • match / field_matches

    Meaning
    Agreement with the name and date of birth you supplied
  • field_confidence

    Meaning
    0–100 per name field, tolerant of nicknames and spellings
  • subject

    Meaning
    The phone number, masked
  • summary

    Meaning
    Masked first and last name, repeat-subject counters

Assertion tier

Masked names and match flags only.

Full tier

Adds data: the linked names and date of birth. A phone lookup never returns a NIN or BVN on any tier.

Pricing

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

FAQ

Phone Identity questions.

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

Does a phone lookup return a NIN or BVN?
No. It returns names and date of birth only, on every tier.
Does it prove the customer holds the phone?
No. It shows whose identity the number is linked to; use OTP Ownership to prove possession.

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.