Use this endpoint to compare user-submitted data against operator data, without requiring user consent (OTP). Returns a similarity score for each field.
Related ID Mobile documentation:
Matching without OTP
Request
Both GET and POST are supported. This is a single-step call — the comparison result is returned directly in the response, no consent page or retrieval step is required.
Replace the values in braces with your own information — see the Parameters table below.
Code examples
Compare submitted identity data against the operator's
— user_infos is shown here as the
{INFORMATION} placeholder; see the worked
example below the Parameters table for its real JSON
shape.
Add the following parameters in the request body using
Content-Type: application/x-www-form-urlencoded:
Code examples
Compare submitted identity data against the operator's
Parameters
| Parameter | Description | Mand / Opt |
|---|---|---|
| SERVER_ADDRESS | Address of the DQE server that will process the data. | Mandatory |
| licence | Number assigned to you as your licence code. | Mandatory |
| number | Phone number. | Mandatory |
| token | Token retrieved through authentication. | Mandatory |
| mode |
2: authentication by code.
|
Mandatory |
| name | Partner name in the DQE Software database, usually your company name. | Mandatory |
| code_name |
Optional field containing a code associated with
name.
|
Optional |
| user_infos |
JSON object containing the client information to
compare. See the user_infos keys table
below. Mandatory if the scope is matching_notp.
|
Optional |
| scope |
Static value. Must be matching_notp
for this scope.
|
Mandatory |
| redirect_uri | Redirection URL. DQE adds the session token and status to the redirect. | Optional |
| country | Use only for international Matching without OTP. Expected value: ISO 2-letter country code. | Optional |
| format | Phone number format code (see the DQE Phone API documentation) used to reformat the phone number. | Optional |
| period |
Validity window for the SIM swap check, in hours
(0 to 72). Only relevant when the simswap
scope is combined in — see the note below.
|
Optional |
matching_notp
can be combined with simswap (fraud prevention)
in a single request, e.g. scope=matching_notp,simswap,
and with info (phone number intelligence) in any
combination, e.g. scope=matching_notp,info. The
format parameter is used when the info
scope is combined in, and period becomes relevant
when the simswap scope is combined in. See the
info fields below. Contact your DQE account manager
for guidance on the full combined matching_notp+simswap
response shape.
info add-on fields — returned in addition to this
endpoint's own fields when info is included in
scope:
| Field | Description | Example |
|---|---|---|
| telorigine | Phone number in the request. |
0600000000
|
| tel | Phone number, formatted. |
+33600000000
|
| geolocation | Geographic situation of the phone number. |
FRANCE
|
| operator | Current operator of the phone number, if subscribed. |
ORANGE
|
| oldoperator | Previous operator of the phone number. |
SFR
|
| ported | Indicates if the phone number is ported, if subscribed. |
Y
|
| type | Type of the phone number. |
MOBILE
|
| iderror |
Error code of the check (0 or 1).
|
1
|
user_infos keys — each key must be present, even
if no value is provided:
| Key | Description |
|---|---|
| street_address | Street type and name. |
| postal_code | Postal code. |
| locality | City. |
| country | Country name in full. |
| birthdate |
Date of birth in YYYY-MM-DD format.
|
| Email address. | |
| lastname | Last name. |
| maiden_name | Maiden name. |
| gender |
Gender: M or F.
|
| firstname | First name. |
| phone | Phone number. |
| number | Street number. This key must be present in the JSON payload, but it does not need to be filled in. |
Example user_infos value (all keys present, empty
where unknown)
Response
The API returns a JSON object with a similarity score for each field:
| Key | Description | Type |
|---|---|---|
| family_name | Similarity score for the last name. | Number |
| gender | Similarity score for civility. | Number |
| birthdate | Similarity score for the date of birth. | Number |
| given_name | Similarity score for the first name. | Number |
| address |
Object containing address similarity scores. Keys:
country, postal_code,
street_address, locality.
|
Object |
| Similarity score for the email address. | Number |
Response example
Example success response
Errors
The API returns a JSON object containing status,
error_type and error_id on failure:
| Error ID | Error type | Example request | Response |
|---|---|---|---|
| 01 | invalid request |
https://{SERVER_ADDRESS}/IDMOBILE/?token={TOKEN}&mode=2&name={NAME}&licence={LICENCE_CODE}&user_infos={INFORMATION}&scope=matching_notp
Example: missing
number parameter.
|
{"status": "error", "error_type": "invalid request",
"error_id": "01"}
|
| 02 | invalid licence key |
https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&mode=2&name={NAME}&licence={INCORRECT_LICENCE_CODE}&user_infos={INFORMATION}&scope=matching_notp
|
{"status": "error", "error_type": "invalid licence
key", "error_id": "02"}
|
| 04 | invalid scope |
https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&mode=2&name={NAME}&licence={LICENCE_CODE}&user_infos={INFORMATION}&scope=wrongScope
|
{"status": "error", "error_type": "invalid scope",
"error_id": "04"}
|
| 05 | missing or empty parameter (user_infos) for this scope |
https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&mode=2&name={NAME}&licence={LICENCE_CODE}&scope=matching_notp
Example: missing
user_infos parameter.
|
{"status": "error", "error_type": "missing or
empty parameter (user_infos) for this scope",
"error_id": "05"}
|
| 06 | bad parameter format (user_infos) is not a valid JSON |
https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&mode=2&name={NAME}&licence={LICENCE_CODE}&user_infos=not-valid-json&scope=matching_notp
|
{"status": "error", "error_type": "bad parameter
format (user_infos) is not a valid JSON", "error_id":
"06"}
|
| 07 | missing mandatory key in user informations (phone) |
https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&mode=2&name={NAME}&licence={LICENCE_CODE}&user_infos=%7B...no+phone+key...%7D&scope=matching_notp
Example: the
user_infos JSON object
is missing its phone key.
|
{"status": "error", "error_type": "missing mandatory
key in user informations (phone)", "error_id":
"07"}
|
| 09 | ineligible phone number |
https://{SERVER_ADDRESS}/IDMOBILE/?number={INELIGIBLE_NUMBER}&token={TOKEN}&mode=2&name={NAME}&licence={LICENCE_CODE}&user_infos={INFORMATION}&scope=matching_notp
|
{"status": "error", "error_type": "ineligible
phone number", "error_id": "09"}
|
| 10 | invalid phone number |
https://{SERVER_ADDRESS}/IDMOBILE/?number={INVALID_NUMBER}&token={TOKEN}&mode=2&name={NAME}&licence={LICENCE_CODE}&user_infos={INFORMATION}&scope=matching_notp
|
{"status": "error", "error_type": "invalid phone
number", "error_id": "10"}
|
| 11 | phone number is empty |
https://{SERVER_ADDRESS}/IDMOBILE/?number=&token={TOKEN}&mode=2&name={NAME}&licence={LICENCE_CODE}&user_infos={INFORMATION}&scope=matching_notp
|
{"status": "error", "error_type": "phone number
is empty", "error_id": "11"}
|
| 12 | phone check failed |
https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&mode=2&name={NAME}&licence={LICENCE_CODE}&user_infos={INFORMATION}&scope=matching_notp
Operator-side condition — a syntactically valid
request can still fail here.
|
{"status": "error", "error_type": "phone check
failed", "error_id": "12"}
|
| 13 | operator [Operator Name] not found |
https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&mode=2&name={NAME}&licence={LICENCE_CODE}&user_infos={INFORMATION}&scope=matching_notp
Operator-side condition.
|
{"status": "error", "error_type": "operator [Operator
Name] not found", "error_id": "13"}
|
| 14 | operator [Operator Name] not authorized for this licence |
https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&mode=2&name={NAME}&licence={LICENCE_CODE}&user_infos={INFORMATION}&scope=matching_notp
Operator-side condition — your licence is not
authorised for this operator.
|
{"status": "error", "error_type": "operator [Operator
Name] not authorized for this licence", "error_id":
"14"}
|
| 15 | operator [Operator Name] not supported yet |
https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&mode=2&name={NAME}&licence={LICENCE_CODE}&user_infos={INFORMATION}&scope=matching_notp
Operator-side condition.
|
{"status": "error", "error_type": "operator [Operator
Name] not supported yet", "error_id": "15"}
|
| 16 | operator [Operator Name] unreachable |
https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&mode=2&name={NAME}&licence={LICENCE_CODE}&user_infos={INFORMATION}&scope=matching_notp
Operator-side condition.
|
{"status": "error", "error_type": "operator [Operator
Name] unreachable", "error_id": "16"}
|
| 17 | scope not supported by this operator [Operator Name] yet |
https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&mode=2&name={NAME}&licence={LICENCE_CODE}&user_infos={INFORMATION}&scope=matching_notp
Operator-side condition.
|
{"status": "error", "error_type": "scope not
supported by this operator [Operator Name] yet",
"error_id": "17"}
|
| 30 | invalid or expired token |
https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={EXPIRED_TOKEN}&mode=2&name={NAME}&licence={LICENCE_CODE}&user_infos={INFORMATION}&scope=matching_notp
|
{"status": "error", "error_type": "invalid or
expired token", "error_id": "30"}
|
Example error response
Test the API
Click the button below to test this endpoint live in your browser.