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=numVerify
Exemple : 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=numVerify
Condition 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=numVerify
Condition 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=numVerify
Condition 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=numVerify
Condition 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=numVerify
Condition 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=numVerify
Condition 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=numVerify
Exemple : 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=numVerify
Aucune 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=numVerify
Le 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=numVerify
La 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=numVerify
Erreur 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.