Utilisez cet endpoint pour vérifier si le numéro de téléphone envoyé dans la requête correspond au numéro à l'origine de la requête. Le processus comporte deux étapes : initier la demande de vérification, puis récupérer le résultat.
Documentation ID Mobile associée :
Étape 1 : Demander la vérification
Requête
Les méthodes GET et POST sont toutes deux prises en charge. Cela ouvre une page de consentement que l'utilisateur final doit accepter avant que le résultat puisse être récupéré à l'étape 2.
Exemples de code
Demander un lien de consentement Number Verify
Ajoutez les paramètres suivants dans le corps de la requête au format Content-Type: application/x-www-form-urlencoded :
Exemples de code
Demander un lien de consentement Number Verify
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 | Valeur statique. Doit être 2. |
Obligatoire |
| name | Nom du partenaire dans la base de données DQE, généralement le nom de votre société. | Obligatoire |
| scope | Valeur statique. Doit être numVerify pour ce scope. |
Obligatoire |
| redirect_uri | URL de redirection. DQE ajoute le jeton de session et le statut à la redirection. | Optionnel |
numVerify peut être combiné avec info (intelligence sur le numéro de téléphone) en une seule requête, par ex. scope=numVerify,info. Voir les champs info ci-dessous.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 |
Réponse
En cas de succès, l'API renvoie un objet JSON contenant l'URL de la page de consentement à présenter à l'utilisateur final.
| Clé | Description | Type |
|---|---|---|
| status | success |
String |
| operator | Opérateur. | String |
| url | URL de l'API de l'opérateur. | String |
Exemple de réponse
Exemple de réponse réussie
Erreurs
user_infos et à sa clé phone, qui appartiennent à d'autres scopes (comme Matching without OTP) — la requête propre à Number Verify ne comporte pas ces champs, donc ces codes ne sont pas censés être déclenchés par un appel Number Verify standard.| 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}&scope=numVerifyExemple : paramètre
number manquant. |
{"status": "error", "error_id": "01", "error_type": "invalid request"} |
| 02 | invalid licence key | https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&mode=2&name={NAME}&licence={INCORRECT_LICENCE_CODE}&scope=numVerify |
{"status": "error", "error_id": "02", "error_type": "invalid licence key"} |
| 04 | invalid scope | https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&mode=2&name={NAME}&licence={LICENCE_CODE}&scope=wrongScope |
{"status": "error", "error_id": "04", "error_type": "invalid scope"} |
| 05 | missing or empty parameter (user_infos) for this scope |
Non déclenché par les paramètres propres à Number Verify Ce code provient d'une couche de validation partagée entre les scopes ID Mobile et fait référence aux champs
user_infos/phone utilisés par d'autres scopes (comme Matching without OTP). Number Verify ne possède pas ce paramètre. |
{"status": "error", "error_id": "05", "error_type": "missing or empty parameter (user_infos) for this scope"} |
| 06 | bad parameter format (user_infos) is not a valid JSON |
Non déclenché par les paramètres propres à Number Verify Ce code provient d'une couche de validation partagée entre les scopes ID Mobile et fait référence aux champs
user_infos/phone utilisés par d'autres scopes (comme Matching without OTP). Number Verify ne possède pas ce paramètre. |
{"status": "error", "error_id": "06", "error_type": "bad parameter format (user_infos) is not a valid JSON"} |
| 07 | missing mandatory key in user informations (phone) |
Non déclenché par les paramètres propres à Number Verify Ce code provient d'une couche de validation partagée entre les scopes ID Mobile et fait référence aux champs
user_infos/phone utilisés par d'autres scopes (comme Matching without OTP). Number Verify ne possède pas ce paramètre. |
{"status": "error", "error_id": "07", "error_type": "missing mandatory key in user informations (phone)"} |
| 09 | ineligible phone number | https://{SERVER_ADDRESS}/IDMOBILE/?number={INELIGIBLE_NUMBER}&token={TOKEN}&mode=2&name={NAME}&licence={LICENCE_CODE}&scope=numVerify |
{"status": "error", "error_id": "09", "error_type": "ineligible phone number"} |
| 10 | invalid phone number | https://{SERVER_ADDRESS}/IDMOBILE/?number={INVALID_NUMBER}&token={TOKEN}&mode=2&name={NAME}&licence={LICENCE_CODE}&scope=numVerify |
{"status": "error", "error_id": "10", "error_type": "invalid phone number"} |
| 11 | phone number is empty | https://{SERVER_ADDRESS}/IDMOBILE/?number=&token={TOKEN}&mode=2&name={NAME}&licence={LICENCE_CODE}&scope=numVerify |
{"status": "error", "error_id": "11", "error_type": "phone number is empty"} |
| 12 | phone check failed |
https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&mode=2&name={NAME}&licence={LICENCE_CODE}&scope=numVerifyCondition côté opérateur — une requête syntaxiquement valide peut tout de même échouer ici.
|
{"status": "error", "error_id": "12", "error_type": "phone check failed"} |
| 13 | operator [Operator Name] not found |
https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&mode=2&name={NAME}&licence={LICENCE_CODE}&scope=numVerifyCondition côté opérateur.
|
{"status": "error", "error_id": "13", "error_type": "operator [Operator Name] not found"} |
| 14 | operator [Operator Name] not authorized for this licence |
https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&mode=2&name={NAME}&licence={LICENCE_CODE}&scope=numVerifyCondition côté opérateur — votre licence n'est pas autorisée pour cet opérateur.
|
{"status": "error", "error_id": "14", "error_type": "operator [Operator Name] not authorized for this licence"} |
| 15 | operator [Operator Name] not supported yet |
https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&mode=2&name={NAME}&licence={LICENCE_CODE}&scope=numVerifyCondition côté opérateur.
|
{"status": "error", "error_id": "15", "error_type": "operator [Operator Name] not supported yet"} |
| 16 | operator [Operator Name] unreachable |
https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&mode=2&name={NAME}&licence={LICENCE_CODE}&scope=numVerifyCondition côté opérateur.
|
{"status": "error", "error_id": "16", "error_type": "operator [Operator Name] unreachable"} |
| 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}&scope=numVerifyCondition côté opérateur.
|
{"status": "error", "error_id": "17", "error_type": "scope not supported by this operator [Operator Name] yet"} |
| 30 | invalid or expired token | https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={EXPIRED_TOKEN}&mode=2&name={NAME}&licence={LICENCE_CODE}&scope=numVerify |
{"status": "error", "error_id": "30", "error_type": "invalid or expired token"} |
Tester l'API
Cliquez sur le bouton ci-dessous pour tester cet endpoint en direct dans votre navigateur.
Ouvrir la console
Une fois que l'utilisateur final a accepté (ou refusé) la page de consentement de l'étape 1, appelez cet endpoint pour récupérer le résultat de la vérification.
Étape 2 : Récupérer le résultat
Requête
Les méthodes GET et POST sont toutes deux prises en charge.
Exemples de code
Récupérer le résultat Number Verify
Ajoutez les paramètres suivants dans le corps de la requête au format Content-Type: application/x-www-form-urlencoded :
Exemples de code
Récupérer le résultat Number Verify
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 |
| token | Jeton récupéré lors de l'authentification. | Obligatoire |
| scope | Valeur statique. Doit être numVerify pour ce scope. |
Obligatoire |
Réponse
Succès
| Clé | Description | Type |
|---|---|---|
| status |
success : les informations ont été récupérées avec succès. |
String |
| scope | Contient le scope précédemment envoyé. | String |
| numVerify | Toujours true lorsque cette clé est présente — cela confirme que le numéro de téléphone correspond. Un numéro de téléphone qui ne correspond pas n'est jamais renvoyé sous la forme numVerify: false dans une réponse réussie ; il est renvoyé sous forme d'erreur 20 à la place (voir Erreurs ci-dessous). |
Boolean |
En attente
Renvoyé tant que DQE attend encore la réponse de l'opérateur — interrogez à nouveau l'étape 2 après un court délai.
| Clé | Description | Type |
|---|---|---|
| status |
pending : DQE attend la réponse de l'opérateur. |
String |
| scope | Contient numVerify. |
String |
Exemple de réponse
Exemple de réponse réussie
Exemple de réponse en attente
Erreurs
| ID d'erreur | Type d'erreur | Exemple de requête | Réponse |
|---|---|---|---|
| 01 | invalid request |
https://{SERVER_ADDRESS}/GET/?Licence={LICENCE_CODE}&scope=numVerifyExemple : paramètre
token manquant. |
{"status": "error", "error_id": "01", "error_type": "invalid request"} |
| 02 | invalid licence key | https://{SERVER_ADDRESS}/GET/?token={TOKEN}&Licence={INCORRECT_LICENCE_CODE}&scope=numVerify |
{"status": "error", "error_id": "02", "error_type": "invalid licence key"} |
| 04 | invalid scope | https://{SERVER_ADDRESS}/GET/?token={TOKEN}&Licence={LICENCE_CODE}&scope=wrongScope |
{"status": "error", "error_id": "04", "error_type": "invalid scope"} |
| 18 | failed to retrieve data from operator |
https://{SERVER_ADDRESS}/GET/?token={TOKEN}&Licence={LICENCE_CODE}&scope=numVerifyAucune donnée n'a été reçue après la validation de l'OTP.
|
{"status": "error", "error_id": "18", "error_type": "failed to retrieve data from operator"} |
| 20 | Not the same phone number between the phone in the request |
https://{SERVER_ADDRESS}/GET/?token={TOKEN}&Licence={LICENCE_CODE}&scope=numVerifyLe numéro de téléphone envoyé dans la requête ne correspond pas à celui à l'origine de la requête — cela équivaut à un résultat
numVerify: false, renvoyé sous forme d'erreur plutôt que de réponse réussie. |
{"status": "error", "error_id": "20", "error_type": "Not the same phone number between the phone in the request"} |
| 21 | access denied |
https://{SERVER_ADDRESS}/GET/?token={TOKEN}&Licence={LICENCE_CODE}&scope=numVerifyLa validation de l'OTP a été refusée.
|
{"status": "error", "error_id": "21", "error_type": "access denied"} |
| 30 | invalid or expired token | https://{SERVER_ADDRESS}/GET/?token={EXPIRED_TOKEN}&Licence={LICENCE_CODE}&scope=numVerify |
{"status": "error", "error_id": "30", "error_type": "invalid or expired token"} |
| 99 | internal server error |
https://{SERVER_ADDRESS}/GET/?token={TOKEN}&Licence={LICENCE_CODE}&scope=numVerifyErreur serveur.
|
{"status": "error", "error_id": "99", "error_type": "internal server error"} |
Exemple de réponse d'erreur
Tester l'API
Cliquez sur le bouton ci-dessous pour tester cet endpoint en direct dans votre navigateur.