Utiliza este endpoint para verificar si el número de teléfono enviado en la solicitud coincide con el número que inicia la solicitud. El proceso consta de dos pasos: iniciar la solicitud de verificación y luego recuperar el resultado.
Related ID Mobile documentation:
Paso 1: Solicitar la verificación
Solicitud
Se admiten tanto GET como POST. Esto abre una página de consentimiento que el usuario final debe aceptar antes de poder recuperar el resultado en el paso 2.
Ejemplos de código
Solicitar un enlace de consentimiento de Number Verify
Añade los siguientes parámetros en el cuerpo de la solicitud usando Content-Type: application/x-www-form-urlencoded:
Ejemplos de código
Solicitar un enlace de consentimiento de Number Verify
Parámetros
| Parámetro | Descripción | Obl / Opc |
|---|---|---|
| SERVER_ADDRESS | Dirección del servidor DQE que procesará los datos. | Mandatory |
| licence | Número que se te asigna como código de licencia. | Mandatory |
| number | Número de teléfono. | Mandatory |
| token | Token obtenido mediante la autenticación. | Mandatory |
| mode | Valor estático. Debe ser 2. |
Mandatory |
| name | Nombre del partner en la base de datos de DQE, normalmente el nombre de tu empresa. | Mandatory |
| scope | Valor estático. Debe ser numVerify para este scope. |
Mandatory |
| redirect_uri | URL de redirección. DQE añade el token de sesión y el estado a la redirección. | Optional |
numVerify se puede combinar con info (información del número de teléfono) en una sola solicitud, por ejemplo scope=numVerify,info. Consulta los campos de info más abajo.Campos adicionales de info — se devuelven además de los campos propios de este endpoint cuando se incluye info en scope:
| Campo | Descripción | Ejemplo |
|---|---|---|
| telorigine | Número de teléfono de la solicitud. | 0600000000 |
| tel | Número de teléfono formateado. | +33600000000 |
| geolocation | Situación geográfica del número de teléfono. | FRANCE |
| operator | Operador actual del número de teléfono, si está suscrito. | ORANGE |
| oldoperator | Operador anterior del número de teléfono. | SFR |
| ported | Indica si el número de teléfono está portado, si está suscrito. | Y |
| type | Tipo de número de teléfono. | MOBILE |
| iderror | Código de error de la comprobación (0 o 1). |
1 |
Respuesta
En caso de éxito, la API devuelve un objeto JSON que contiene la URL de la página de consentimiento que debe presentarse al usuario final.
| Clave | Descripción | Tipo |
|---|---|---|
| status | success |
String |
| operator | Operador. | String |
| url | URL de la API del operador. | String |
Ejemplo de respuesta
Ejemplo de respuesta correcta
Errores
user_infos y a su clave phone, que pertenecen a otros scopes (como Matching without OTP) — la propia solicitud de Number Verify no tiene esos campos, por lo que no se espera que estos códigos se activen en una llamada estándar de Number Verify.| ID de error | Tipo de error | Ejemplo de solicitud | Respuesta |
|---|---|---|---|
| 01 | invalid request |
https://{SERVER_ADDRESS}/IDMOBILE/?token={TOKEN}&mode=2&name={NAME}&licence={LICENCE_CODE}&scope=numVerifyEjemplo: falta el parámetro
number. |
{"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 |
No se activa con los parámetros propios de Number Verify Este código proviene de una capa de validación compartida entre los scopes de ID Mobile y hace referencia a los campos
user_infos/phone utilizados por otros scopes (como Matching without OTP). Number Verify no tiene ese parámetro. |
{"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 |
No se activa con los parámetros propios de Number Verify Este código proviene de una capa de validación compartida entre los scopes de ID Mobile y hace referencia a los campos
user_infos/phone utilizados por otros scopes (como Matching without OTP). Number Verify no tiene ese parámetro. |
{"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) |
No se activa con los parámetros propios de Number Verify Este código proviene de una capa de validación compartida entre los scopes de ID Mobile y hace referencia a los campos
user_infos/phone utilizados por otros scopes (como Matching without OTP). Number Verify no tiene ese parámetro. |
{"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=numVerifyCondición del lado del operador — una solicitud sintácticamente válida puede fallar aquí.
|
{"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=numVerifyCondición del lado del operador.
|
{"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=numVerifyCondición del lado del operador — tu licencia no está autorizada para este operador.
|
{"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=numVerifyCondición del lado del operador.
|
{"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=numVerifyCondición del lado del operador.
|
{"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=numVerifyCondición del lado del operador.
|
{"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"} |
Probar la API
Haz clic en el botón de abajo para probar este endpoint en directo en tu navegador.
Abrir consola
Una vez que el usuario final haya aceptado (o rechazado) la página de consentimiento del paso 1, llama a este endpoint para recuperar el resultado de la verificación.
Paso 2: Recuperar el resultado
Solicitud
Se admiten tanto GET como POST.
Ejemplos de código
Recuperar el resultado de Number Verify
Añade los siguientes parámetros en el cuerpo de la solicitud usando Content-Type: application/x-www-form-urlencoded:
Ejemplos de código
Recuperar el resultado de Number Verify
Parámetros
| Parámetro | Descripción | Obl / Opc |
|---|---|---|
| SERVER_ADDRESS | Dirección del servidor DQE que procesará los datos. | Mandatory |
| Licence | Número que se te asigna como código de licencia. | Mandatory |
| token | Token obtenido mediante la autenticación. | Mandatory |
| scope | Valor estático. Debe ser numVerify para este scope. |
Mandatory |
Respuesta
Éxito
| Clave | Descripción | Tipo |
|---|---|---|
| status |
success: information was successfully retrieved. |
String |
| scope | Contiene el scope enviado previamente. | String |
| numVerify | Siempre es true cuando esta clave está presente — confirma que el número de teléfono coincide. Un número de teléfono que no coincide nunca se devuelve como numVerify: false en una respuesta correcta; en su lugar, se devuelve como el error 20 (consulta Errores más abajo). |
Boolean |
Pendiente
Se devuelve mientras DQE sigue esperando la respuesta del operador — vuelve a consultar el paso 2 tras una breve espera.
| Clave | Descripción | Tipo |
|---|---|---|
| status |
pending: DQE is waiting for the operator response. |
String |
| scope | Contiene numVerify. |
String |
Ejemplo de respuesta
Ejemplo de respuesta correcta
Ejemplo de respuesta pendiente
Errores
| ID de error | Tipo de error | Ejemplo de solicitud | Respuesta |
|---|---|---|---|
| 01 | invalid request |
https://{SERVER_ADDRESS}/GET/?Licence={LICENCE_CODE}&scope=numVerifyExample: missing
token parameter. |
{"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=numVerifyNo se recibieron datos tras la validación 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=numVerifyEl número de teléfono enviado en la solicitud no coincide con el que inicia la solicitud — esto equivale a un resultado
numVerify: false, devuelto como error en lugar de como respuesta correcta. |
{"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 validación OTP fue rechazada.
|
{"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=numVerifyError del servidor.
|
{"status": "error", "error_id": "99", "error_type": "internal server error"} |
Example error response
Probar la API
Haz clic en el botón de abajo para probar este endpoint en directo en tu navegador.