TDS Risk
Products
Trust Score — £0.35/check Mobile KYC — £0.45/check
Use cases
Consumer Lending Insurance Fintech & Payments iGaming Lead Generation Lead buying Affiliate Networks Account Creation
Developers
Getting Started Reason Codes Rule Studio Postman Collection Changelog System Status
Company
Pricing About Us Enterprise Contact Case Studies ROI Calculator Security & Compliance FAQ Trust Centre Sign up free →
Mobile KYC · £0.45 per check

Mobile KYC API: does the identity match the number used?

Match the applicant's name, address, postcode and date of birth against network-held information associated with the actual UK mobile number used. Unlike an OTP, Mobile KYC checks identity-to-number alignment — with no document upload or customer redirect.

Does not affect credit files — ever
5
Fields scored
<2s
Per check
4
UK carriers
£0.45
Flat rate
Mobile KYC — live checkLive signal
phoneNumber
+44 7700 900123
POST /api/kyc
MATCHING AGAINST THE CARRIER RECORD
VodafoneEEO2Three
firstName
Jane
100 ✓
lastName
Smith
100 ✓
nameScore
Jane Smith
100 ✓
address
12 Park Lane, AB12 3CD
100 ✓
dob
14 / 03 / 1988
match ✓
✓ 5/5 identity matchmobile · postpaid · not lost/stolen
The gap Mobile KYC closes

Mobile KYC catches real identities used with the wrong number.

Fraudsters apply with genuine, stolen details and their own mobile number. Every usual check passes, because each one proves something different. Only Mobile KYC checks whether the submitted identity aligns with the network-held information associated with the actual number used.

CheckWhat it actually provesStolen identity + fraudster's phone
Form validationThe details are complete and well-formedPasses
Identity / credit searchThe person exists at that addressPasses
SMS one-time passcodeSomeone controls the numberPasses
Mobile KYCThe submitted identity matches this number0/5 match
Field-by-field match

Match identity details to the actual mobile number used.

Each field is scored against the carrier's record for that exact number — including the full address and postcode. The details can pass every other check and still not belong to the number provided.

FieldSubmittedPasses other checks?Matches the number?
First nameJaneYes ✓0 / 100 ✗
Last nameSmithYes ✓0 / 100 ✗
Name scoreJane SmithYes ✓0 / 100 ✗
Address12 Park Lane, AB12 3CDYes ✓0 / 100 ✗
Date of birth14/03/1988Yes ✓No match ✗
Account type——Prepaid · higher risk
Lost or stolen——No
ResultDetails check outReal identity0/5 match

Illustrative example.

How it works

Mobile identity verification in one API call.

No document upload, no redirect and no extra customer step. Mobile KYC uses the details your journey already collects.

Your application Decisioning layer Identity details TDS Risk Real-time carrier-derived signals nameScoreaddressScoredob Record lookup Carrier record Account holder nameAddress + postcodeDate of birthLost / stolen status NO DOCUMENTS · REAL-TIME · YOUR SYSTEM DECIDES
  • ✓Uses details your journey already collects
  • ✓No document upload, selfie or redirect
  • ✓Each field checked individually
  • ✓Lost or stolen status and account type returned
  • ✓No footprint on credit files
  • ✓Signed audit record on every check
API reference

Mobile KYC API request and response.

REST, JSON and synchronous. The same flow as the quickstart guide: send the request, read the response, go live.

1

Make your first API call

⏱️ ~2 minutes

Send the mobile number with the identity details your journey already collects. No documents, no redirect.

POST/api/kyc
curl -X POST "https://www.thedatasupermarket.com/api/kyc" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "customerReference": "kyc-2026-000391",
    "leadSourceId": "WEB_FORM_001",
    "phoneNumber": "447911123456",
    "firstName": "Jane",
    "lastName": "Smith",
    "address": "12 Park Lane",
    "city": "London",
    "region": "Greater London",
    "postalCode": "AB12 3CD",
    "dob": "1988-03-14"
  }'
customerReference must be unique per call. Use a UUID or your internal transaction ID — it is recorded in the audit trail.
2

Understand the response

⏱️ ~2 minutes reading

A successful Mobile KYC response looks like this. Here is what each field means and how to use it in your own rules.

Example Mobile KYC response
200 OK
{
  "status": 0,                  // 0 = success ✓
  "ipMatch": true,              // IP on your key's whitelist ✓
  "customerReference": "kyc-2026-000391",
  "leadSource": "WEB_FORM_001",
  "requestId": "TDS68ba77c4e02fd",
  "signature": "9c0e41d7aa3f5b18e26d0c94f7b1…",
  "response": {
    "troubleshootingId": "b48c6082-2d18-4b4f-8aa1-4a891bb134d5",
    "numberInfo": {
      "carrier": "EE",
      "countryCode": "GB",
      "lineType": "mobile",     // Not VoIP, not landline ✓
      "isLostStolen": false,    // Not reported lost or stolen ✓
      "accountType": "postpay"  // Prepaid = higher risk
    },
    "verified": true,           // Identity verified against the number ✓
    "name": {
      "firstName": 100,         // 100 or 0
      "lastName": 100,          // 100 or 0
      "nameScore": 100          // 0–100. 100 = exact
    },
    "address": {
      "addressScore": 100       // 100 or 0
    },
    "dob": true,                // Date of birth matches ✓
    "indicators": [],           // No reason codes ✓
    "identifiers": []
  },
  "audit_url": "https://www.thedatasupermarket.com/tds-verify/audit-summary/…",
  "policy_version": "1.1",
  "policy_hash": "abc123…",
  "latency_ms": 1240
}
status
0 = success. Any non-zero value means the check failed — see the error reference for what each code means.0 = success ✓
ipMatch
Whether the request came from an IP address on your API key's whitelist. Returns false if the requesting IP is not whitelisted — in which case no other data fields are returned. If no whitelist is configured on the key, this is always true.true = whitelisted ✓
requestId
Unique identifier for this API call. Use it when contacting support or cross-referencing audit logs.Unique ID per call
signature
Cryptographic signature for this response. Pass it with requestId to Risk Recall to retrieve the frozen original result later.Per-call signature
verified
Indicator of verified identity between the mobile number and the identity data submitted. It can still be true when an individual field such as first name or address does not match, so check the individual scores below too.true = identity verified ✓
name.nameScore
Combined name match from 0 to 100. For example, if Jane Smith is submitted and the network holds Janet Smith, firstName is 0, lastName is 100 and nameScore is 70 — which still passes.100 = exact match ✓
name.firstName
First-name match against the network record: 100 or 0.100 = match ✓
name.lastName
Last-name match against the network record: 100 or 0.100 = match ✓
address.addressScore
Address match against the network record, including postcode: 100 or 0.100 = match ✓
dob
Date of birth match against the carrier account record.true = matches ✓
numberInfo.isLostStolen
true = the handset has been reported lost or stolen — a critical signal for device-based account takeover.false = not reported ✓
numberInfo.accountType
For example prepay or postpay. Prepaid = higher risk."postpay"
numberInfo.carrier
The current carrier for the number, queried live — not cached."EE"
numberInfo.lineType
Anything other than "mobile" is worth a rule. fixedvoip and nonfixedvoip are associated with fraud; landlines can't receive OTPs."mobile" = valid ✓
indicators
Array of reason codes, e.g. LA for a low-tenure address. See the searchable reference below.[] = no issues ✓
audit_url
Permanent link to the immutable, signed audit record for this check.Permanent URL
policy_version
The privacy policy version in effect for this check. Proves which terms applied at the time."1.1"
latency_ms
Time in milliseconds to return the carrier response. Typically under 2 seconds.1240 ms ✓
3

Go live

⏱️ You're ready

Sandbox and production share the same headers, request body and response shape. Switch to your production endpoint and every check queries live UK carrier data with a signed audit record.

You're live. Every check now queries live UK carrier data in real time. Responses arrive in under 2 seconds. Each check deducts from your credit balance and produces a permanent, signed audit record.
Production base URL
LIVE
// Switch from sandbox to production
// Sandbox:    https://www.thedatasupermarket.com/api/sandbox/kyc
// Production: https://www.thedatasupermarket.com/api/kyc
// Same headers, same request body, same response shape
Full schema and sandbox requests are in the Postman collection. Import it to see every field, example responses and error codes. Open Postman →
Reason codes

All 7 Mobile KYC reason codes.

When data is missing or partial, you're told why. Nothing is hidden behind a single pass or fail. See the full reason codes reference.

Mobile KYC reason codes
Risk signalInformational
INPhone number is from a different country than the country request field.
LALow tenure address.
DTData retrieval timeout.
NCName and address information isn't available.
XBDate of birth isn't available in the data.
CNFirst and last names combined in one field.
UVUnable to verify the address.
Mobile KYC and Trust Score

Two APIs. Use either — or both in one journey.

Separate calls, one account, one audit trail. Pick the check the journey needs.

01
Trust Score — what does the network know about the number?
0–1000 risk score from live carrier signals: SIM swap recency, line type, call forwarding, porting and reason codes. Ideal on every submission.
£0.35 per check
02
Mobile KYC — does the identity belong to the number?
Name, address, postcode and date of birth matched against the carrier record for that number, plus lost or stolen status and account type.
£0.45 per check
03
Use both in the same journey
Run Trust Score on every submission and add Mobile KYC where identity confirmation matters — onboarding, account changes or higher-risk applications.
Separate calls · one audit trail
Evidence on every check

Every Mobile KYC check is signed, frozen and recallable.

Each response carries a requestId, a cryptographic signature and a permanent audit_url. The audit record proves the check ran under your declared legal basis and the privacy notice in force at that moment — without exposing the result. Risk Recall retrieves the original result later using the request ID and signature.

✓Legal basis and use case locked at API key creation
✓Privacy notice version and hash captured per check
✓Output frozen — never silently re-run
✓Retention you configure, deletion recorded in your Account Audit Log
View an example audit record →
audit record · exampleSIGNED & FROZEN
requestIdTDS68ba778a51ccb
legal_basislegitimate_interest
use_casefraud_prevention
policy_version1.1
output_frozentrue
re_executionnone · Risk Recall available
The audit record never contains the check result. The result is retrieved separately, by an authorised user, through Risk Recall.
Pricing

Infrastructure pricing. One price for everyone.

We built automation, not headcount — so a startup pays exactly what a bank pays.

★ Recommended
Trust Score
£0.35
per check — same for everyone
✓ 10 checks or 10 million — same price
✓Real-time 0–1000 trust score
✓SIM swap timestamps + riskLevel
✓13 reason codes + lineType + phoneRisk
✓Immutable signed audit trail per check
✓Credits never expire · no contract
Explore Trust Score →

* Does not affect credit files. Used solely for fraud prevention and identity verification. Full pricing details + philosophy →

Mobile KYC FAQ

Mobile KYC questions, answered.

If it's not here, ask us directly — we reply within one UK business day.

What is a Mobile KYC API? +

Mobile KYC checks whether the name, address, postcode and date of birth submitted with an application match the carrier's own record for the mobile number provided. It checks whether the submitted identity matches the network-held information associated with the actual number used — something form checks, credit searches and SMS codes cannot.

What does Mobile KYC check? +

First name, last name, address including postcode, and date of birth — each scored separately against the carrier record for that number. It also returns lost or stolen status, account type (for example prepaid or postpaid), carrier, line type and a verified indicator.

How is Mobile KYC different from a credit or identity check? +

A credit or identity search confirms that a person exists at an address. Fraudsters use real, stolen identities, so those checks pass. Mobile KYC asks a different question: does that person actually hold this mobile number?

Does an OTP verify that the identity belongs to the mobile number? +

No. An OTP shows that someone can receive a code on the number. Mobile KYC checks whether the submitted identity details match network-held information associated with that actual number. A fraudster can use a number they control and still complete an OTP.

Does the customer need to upload documents? +

No. Mobile KYC uses the details already captured in your journey. There is no document upload, selfie or redirect.

What happens if the carrier doesn't hold the data? +

You are told explicitly. Reason codes such as NC (name and address not available), XB (date of birth not available) and UV (unable to verify the address) are returned, and you decide how to treat them.

Does a Mobile KYC check affect a customer's credit file? +

No. Mobile KYC is not a credit search and leaves no footprint on the customer's credit file. It does not assess affordability or creditworthiness.

Should I use Mobile KYC with Trust Score? +

They are separate APIs that answer different questions. Many teams run Trust Score on every submission and add Mobile KYC where the journey needs identity confirmation — at onboarding, account changes or higher-risk applications.

How much does Mobile KYC cost? +

£0.45 per check, excluding VAT, at any volume. There is no contract, no minimum volume and no setup fee, and prepaid credits never expire.

Get started

Run your first Mobile KYC identity match in minutes.

No sales call, no contract. Sign up, generate a key and see a live match.

Start with the quickstart Open the Postman collection
⚡
Getting started
First check in 10 minutes. cURL, JavaScript and Python examples.
Open quickstart →
📋
Reason codes reference
Every signal we return and what it means.
Browse reason codes →
🔒
Trust Centre
Security documentation, compliance evidence and procurement answers.
Visit the Trust Centre →