Skip to main content
POST
/
v2
/
intel
/
kyc
/
match
/
{phone}
KYC Match
curl --request POST \
  --url https://api.prelude.dev/v2/intel/kyc/match/{phone} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "given_name": "<string>",
  "family_name": "<string>",
  "address": "<string>",
  "postal_code": "<string>",
  "locality": "<string>",
  "region": "<string>",
  "country": "<string>",
  "birthdate": "2023-12-25",
  "email": "jsmith@example.com"
}
'
{
  "request_id": "01HVE0000000000000000000000",
  "phone_number": "+33612345678",
  "country_code": "FR",
  "operator": "orange_fr",
  "given_name_match": "true",
  "family_name_match": "false",
  "family_name_match_score": 82,
  "address_match": "false",
  "address_match_score": 64,
  "postal_code_match": "true",
  "locality_match": "true",
  "region_match": "not_available",
  "country_match": "true",
  "birthdate_match": "true",
  "email_match": "not_available"
}
KYC Match is currently available for France (Orange, SFR, Bouygues) and must be enabled for your account. Contact us to get access. Numbers on other operators return unsupported_operator.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

phone
string<phone_number>
required

An E.164 formatted phone number whose subscriber identity to match against.

Body

application/json

The identity attributes to verify. Only the fields you want checked need to be sent; at least one attribute is required. Each operator can answer a subset of these attributes - any attribute the operator does not support resolves to not_available rather than false.

given_name
string

The end-user's given (first) name.

Example:

"Jean"

family_name
string

The end-user's family (last) name.

Example:

"Dupont"

address
string

The street address.

Example:

"12 rue de la Paix"

postal_code
string

The postal code. Compared exactly.

Example:

"75002"

locality
string

The locality (city).

Example:

"Paris"

region
string

The region, state, or province.

Example:

"Île-de-France"

country
string

The ISO 3166-1 alpha-2 country code. Compared exactly.

Example:

"FR"

birthdate
string<date>

The date of birth in ISO 8601 (YYYY-MM-DD) format. Compared exactly.

Example:

"1990-01-15"

email
string<email>

The email address.

Example:

"jean.dupont@example.com"

Response

OK

The per-attribute match result. Each <attribute>_match field is one of true, false, or not_available (the operator could not answer for that attribute). Fuzzy attributes additionally return a <attribute>_match_score (0-99 similarity) when they do not match exactly; the score is omitted on a match or when not_available.

request_id
string

A string that identifies this specific request. Report it back to us to help us diagnose your issues.

Example:

"01HVE0000000000000000000000"

phone_number
string

The phone number that was matched, in E.164 format.

Example:

"+33612345678"

country_code
string

The country code of the phone number.

Example:

"FR"

operator
string

The mobile operator that answered the match.

Example:

"orange_fr"

given_name_match
enum<string>

Whether the given name matched the operator's record.

Available options:
true,
false,
not_available
Example:

"true"

given_name_match_score
integer

Similarity score (0-99) for the given name. Returned only on a non-match.

Required range: 0 <= x <= 99
family_name_match
enum<string>

Whether the family name matched the operator's record.

Available options:
true,
false,
not_available
Example:

"false"

family_name_match_score
integer

Similarity score (0-99) for the family name. Returned only on a non-match.

Required range: 0 <= x <= 99
Example:

82

address_match
enum<string>

Whether the street address matched the operator's record.

Available options:
true,
false,
not_available
Example:

"false"

address_match_score
integer

Similarity score (0-99) for the address. Returned only on a non-match.

Required range: 0 <= x <= 99
Example:

64

postal_code_match
enum<string>

Whether the postal code matched the operator's record. Compared exactly; never scored.

Available options:
true,
false,
not_available
Example:

"true"

locality_match
enum<string>

Whether the locality matched the operator's record.

Available options:
true,
false,
not_available
Example:

"true"

locality_match_score
integer

Similarity score (0-99) for the locality. Returned only on a non-match.

Required range: 0 <= x <= 99
region_match
enum<string>

Whether the region matched the operator's record.

Available options:
true,
false,
not_available
Example:

"not_available"

region_match_score
integer

Similarity score (0-99) for the region. Returned only on a non-match.

Required range: 0 <= x <= 99
country_match
enum<string>

Whether the country matched the operator's record. Compared exactly; never scored.

Available options:
true,
false,
not_available
Example:

"true"

birthdate_match
enum<string>

Whether the date of birth matched the operator's record. Compared exactly; never scored.

Available options:
true,
false,
not_available
Example:

"true"

email_match
enum<string>

Whether the email address matched the operator's record.

Available options:
true,
false,
not_available
Example:

"not_available"

email_match_score
integer

Similarity score (0-99) for the email. Returned only on a non-match.

Required range: 0 <= x <= 99