Utilisez cet endpoint pour comparer les données soumises par l'utilisateur aux données de l'opérateur, sans nécessiter le consentement de l'utilisateur (OTP). Renvoie un score de similarité pour chaque champ.
Documentation ID Mobile associée :
Matching without OTP
Requête
Les méthodes GET et POST sont toutes deux prises en charge. Il s'agit d'un appel en une seule étape — le résultat de la comparaison est renvoyé directement dans la réponse, aucune page de consentement ni étape de récupération n'est nécessaire.
Remplacez les valeurs entre accolades par vos propres informations — voir le tableau des paramètres ci-dessous.
Exemples de code
Comparez les données d'identité soumises à celles de l'opérateur — user_infos est représenté ici par le placeholder {INFORMATION} ; voir l'exemple détaillé sous le tableau des paramètres pour sa véritable structure JSON.
Ajoutez les paramètres suivants dans le corps de la requête au format Content-Type: application/x-www-form-urlencoded :
Exemples de code
Comparez les données d'identité soumises à celles de l'opérateur
Paramètres
| Parameter | Description | Obl / Opt |
|---|---|---|
| SERVER_ADDRESS | Adresse du serveur DQE qui traitera les données. | Obligatoire |
| licence | Numéro qui vous a été attribué comme code de licence. | Obligatoire |
| number | Numéro de téléphone. | Obligatoire |
| token | Jeton récupéré lors de l'authentification. | Obligatoire |
| mode |
2 : authentification par code. |
Obligatoire |
| name | Nom du partenaire dans la base de données DQE Software, généralement le nom de votre société. | Obligatoire |
| code_name | Champ optionnel contenant un code associé à name. |
Optionnel |
| user_infos | Objet JSON contenant les informations client à comparer. Voir le tableau des clés user_infos ci-dessous. Obligatoire si le scope est matching_notp. |
Optionnel |
| scope | Valeur statique. Doit être matching_notp pour ce scope. |
Obligatoire |
| redirect_uri | URL de redirection. DQE ajoute le jeton de session et le statut à la redirection. | Optionnel |
| country | À utiliser uniquement pour Matching without OTP à l'international. Valeur attendue : code pays ISO à 2 lettres. | Optionnel |
| format | Code de format de numéro de téléphone (voir la documentation de l'API Phone de DQE) utilisé pour reformater le numéro. | Optionnel |
| period | Fenêtre de validité du contrôle de changement de SIM, en heures (0 à 72). Pertinent uniquement lorsque le scope simswap est combiné — voir la remarque ci-dessous. |
Optionnel |
matching_notp peut être combiné avec simswap (prévention de la fraude) en une seule requête, par ex. scope=matching_notp,simswap, et avec info (intelligence sur le numéro de téléphone) dans n'importe quelle combinaison, par ex. scope=matching_notp,info. Le paramètre format est utilisé lorsque le scope info est combiné, et period devient pertinent lorsque le scope simswap est combiné. Voir les champs info ci-dessous. Contactez votre chargé de compte DQE pour plus d'informations sur la forme complète de la réponse combinée matching_notp+simswap.Champs additionnels info — renvoyés en complément des champs propres à cet endpoint lorsque info est inclus dans scope :
| Champ | Description | Exemple |
|---|---|---|
| telorigine | Numéro de téléphone de la requête. | 0600000000 |
| tel | Numéro de téléphone, formaté. | +33600000000 |
| geolocation | Situation géographique du numéro de téléphone. | FRANCE |
| operator | Opérateur actuel du numéro de téléphone, si souscrit. | ORANGE |
| oldoperator | Opérateur précédent du numéro de téléphone. | SFR |
| ported | Indique si le numéro de téléphone a été porté, si souscrit. | Y |
| type | Type du numéro de téléphone. | MOBILE |
| iderror | Code d'erreur du contrôle (0 ou 1). |
1 |
Clés de user_infos — chaque clé doit être présente, même si aucune valeur n'est fournie :
| Key | Description |
|---|---|
| street_address | Type et nom de la voie. |
| postal_code | Code postal. |
| locality | Ville. |
| country | Nom complet du pays. |
| birthdate | Date de naissance au format YYYY-MM-DD. |
| Adresse e-mail. | |
| lastname | Nom de famille. |
| maiden_name | Nom de jeune fille. |
| gender | Genre : M ou F. |
| firstname | Prénom. |
| phone | Numéro de téléphone. |
| number | Numéro de rue. Cette clé doit être présente dans le payload JSON, mais n'a pas besoin d'être renseignée. |
Exemple de valeur user_infos (toutes les clés présentes, vides si inconnues)
Réponse
L'API renvoie un objet JSON avec un score de similarité pour chaque champ :
| Clé | Description | Type |
|---|---|---|
| family_name | Score de similarité pour le nom de famille. | Number |
| gender | Score de similarité pour la civilité. | Number |
| birthdate | Score de similarité pour la date de naissance. | Number |
| given_name | Score de similarité pour le prénom. | Number |
| address | Objet contenant les scores de similarité de l'adresse. Clés : country, postal_code, street_address, locality. |
Object |
| Score de similarité pour l'adresse e-mail. | Number |
Exemple de réponse
Exemple de réponse réussie
Erreurs
L'API renvoie un objet JSON contenant status, error_type et error_id en cas d'échec :
| ID d'erreur | Type d'erreur | Exemple de requête | Réponse |
|---|---|---|---|
| 01 | invalid request |
https://{SERVER_ADDRESS}/IDMOBILE/?token={TOKEN}&mode=2&name={NAME}&licence={LICENCE_CODE}&user_infos={INFORMATION}&scope=matching_notpExemple : paramètre
number manquant. |
{"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_notpExemple : paramètre
user_infos manquant. |
{"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_notpExemple : l'objet JSON
user_infos n'a pas sa clé phone. |
{"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_notpCondition côté opérateur — une requête syntaxiquement valide peut tout de même échouer ici.
|
{"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_notpCondition côté opérateur.
|
{"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_notpCondition côté opérateur — votre licence n'est pas autorisée pour cet opérateur.
|
{"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_notpCondition côté opérateur.
|
{"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_notpCondition côté opérateur.
|
{"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_notpCondition côté opérateur.
|
{"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"} |
Exemple de réponse d'erreur
Tester l'API
Cliquez sur le bouton ci-dessous pour tester cet endpoint en direct dans votre navigateur.