Phone API — Validar y estandarizar un número de teléfono

Support DQE
Support DQE
  • Actualización
Validación de teléfono - API Classic

El endpoint /TEL/ valida y estandariza un número de teléfono fijo o móvil, con verificación de nivel 2 opcional para números de móvil franceses.

Cuándo usar este endpoint - Utilice /TEL/ con la integración heredada XML/formularios de DQE para validar un número de teléfono y obtener su operador y tipo. ¿Busca la integración JSON moderna en su lugar? Consulte Restful Phone API (/phonelookup) →

/TEL/

Solicitud

Se admiten tanto GET como POST.

{SERVER_ADDRESS} y {LICENCE_CODE} son proporcionados por DQE al crear su cuenta. Póngase en contacto con su gestor de cuenta de DQE para obtener estas credenciales.
GEThttps://{SERVER_ADDRESS}/TEL/?Pays={COUNTRY_CODE}&Tel={TEL}&Format={FORMAT}&Status=Y&TimeOut={TIME}&Separator={SYMBOL}&Licence={LICENCE_CODE}

Ejemplos de código

Número de móvil válido

curl "https://{SERVER_ADDRESS}/TEL/?Pays=FRA&Tel=0611223344&Licence={LICENCE_CODE}"
fetch("https://{SERVER_ADDRESS}/TEL/?" + new URLSearchParams({ Pays: "FRA", Tel: "0611223344", Licence: "{LICENCE_CODE}" })) .then(r => r.json()) .then(data => console.log(data));
import requests response = requests.get( "https://{SERVER_ADDRESS}/TEL/", params={ "Pays": "FRA", "Tel": "0611223344", "Licence": "{LICENCE_CODE}", }, ) print(response.json())
<?php $params = http_build_query([ 'Pays' => 'FRA', 'Tel' => '0611223344', 'Licence' => '{LICENCE_CODE}', ]); $ch = curl_init("https://{SERVER_ADDRESS}/TEL/?{$params}"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response, true);
const axios = require('axios'); axios.get('https://{SERVER_ADDRESS}/TEL/', { params: { Pays: 'FRA', Tel: '0611223344', Licence: '{LICENCE_CODE}' } }) .then(response => console.log(response.data));
HttpClient client = HttpClient.newHttpClient(); String url = "https://{SERVER_ADDRESS}/TEL/" + "?Pays=FRA&Tel=0611223344&Licence={LICENCE_CODE}"; HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(url)) .GET() .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body());
using var client = new HttpClient(); var url = "https://{SERVER_ADDRESS}/TEL/" + "?Pays=FRA&Tel=0611223344&Licence={LICENCE_CODE}"; var response = await client.GetAsync(url); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);
package main import ( "fmt" "io" "net/http" ) func main() { url := "https://{SERVER_ADDRESS}/TEL/" + "?Pays=FRA&Tel=0611223344&Licence={LICENCE_CODE}" resp, err := http.Get(url) if err != nil { panic(err) } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body)) }
POSThttps://{SERVER_ADDRESS}/TEL/

Envíe todos los parámetros en el cuerpo de la solicitud usando Content-Type: application/x-www-form-urlencoded. La dirección del servidor permanece en la URL.

Ejemplos de código

Número de móvil válido

curl -X POST "https://{SERVER_ADDRESS}/TEL/" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "Pays=FRA" \ -d "Tel=0611223344" \ -d "Licence={LICENCE_CODE}"
fetch("https://{SERVER_ADDRESS}/TEL/", { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: new URLSearchParams({ Pays: "FRA", Tel: "0611223344", Licence: "{LICENCE_CODE}" }) }) .then(r => r.json()) .then(data => console.log(data));
import requests response = requests.post( "https://{SERVER_ADDRESS}/TEL/", data={ "Pays": "FRA", "Tel": "0611223344", "Licence": "{LICENCE_CODE}", }, ) print(response.json())
<?php $ch = curl_init("https://{SERVER_ADDRESS}/TEL/"); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([ 'Pays' => 'FRA', 'Tel' => '0611223344', 'Licence' => '{LICENCE_CODE}', ])); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response, true);
const axios = require('axios'); const qs = require('querystring'); axios.post('https://{SERVER_ADDRESS}/TEL/', qs.stringify({ Pays: 'FRA', Tel: '0611223344', Licence: '{LICENCE_CODE}' })) .then(response => console.log(response.data));
HttpClient client = HttpClient.newHttpClient(); String form = "Pays=FRA&Tel=0611223344&Licence={LICENCE_CODE}"; HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://{SERVER_ADDRESS}/TEL/")) .header("Content-Type", "application/x-www-form-urlencoded") .POST(HttpRequest.BodyPublishers.ofString(form)) .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body());
using var client = new HttpClient(); var form = new Dictionary<string, string> { ["Pays"] = "FRA", ["Tel"] = "0611223344", ["Licence"] = "{LICENCE_CODE}" }; var response = await client.PostAsync( "https://{SERVER_ADDRESS}/TEL/", new FormUrlEncodedContent(form)); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);
package main import ( "fmt" "io" "net/http" "net/url" ) func main() { form := url.Values{} form.Set("Pays", "FRA") form.Set("Tel", "0611223344") form.Set("Licence", "{LICENCE_CODE}") resp, err := http.PostForm("https://{SERVER_ADDRESS}/TEL/", form) if err != nil { panic(err) } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body)) }

Parámetros

Parámetro Descripción Obl / Opc
Licence Código de licencia asignado a su cuenta. Póngase en contacto con soporte si todavía no tiene uno. Obligatorio
Pays Código de país ISO de 3 letras. Obligatorio
Tel Número de teléfono a validar. Obligatorio
Format Nivel de formato deseado. Consulte la tabla de valores de formato a continuación. Opcional
Status Y activa la verificación de nivel 2 para números de móvil franceses y devuelve los campos adicionales Status y LabelStatus. Opcional
TimeOut Tiempo máximo de consulta para la verificación, en segundos. Ejemplo: 0.5 para 500 ms. Opcional
Separator Carácter separador utilizado en el número de teléfono formateado. Valores aceptados: - y .. Solo funciona con los formatos que utilizan espacios (1, 2, 3, 4, 6). Opcional

Valores de formato

Los siguientes valores se aplican al parámetro Format tanto en solicitudes GET como POST.

Valor Descripción Ejemplos (Alemania / Francia / EE. UU.)
0 Formato nacional sin espacios 0301234567 / 0123456789 / (202)555-0123
1 Formato nacional con agrupación de dígitos específica del país 030 1234567 / 01 23 45 67 89 / (202) 555-0123
2 Formato internacional con agrupación de dígitos específica del país +49 30 1234567 / +33 1 23 45 67 89 / +1 202-555-0123
3 Formato internacional con espacio entre el código de país y el número de abonado +49 301234567 / +33 123456789 / +1 2025550123
4 Formato internacional con prefijo de línea y número de abonado compacto +49 (0)301234567 / +33 (0)123456789 / +1 (0)2025550123
5 Formato internacional sin espacios +49301234567 / +33123456789 / +12025550123
6 Formato internacional con prefijo de línea y agrupación de dígitos específica del país +49 (0) 30 1234567 / +33 (0) 1 23 45 67 89 / +1 (0) (202) 555-0123
7 Formato nacional con agrupación de dígitos específica del país separada por puntos 030.1234567 / 01.23.45.67.89 / (202).555-0123
8 Formato internacional con agrupación de dígitos específica del país separada por puntos +49.30.1234567 / +33.1.23.45.67.89 / +1.202-555-0123
9 Formato internacional sin espacios y sin signo más inicial 49301234567 / 33123456789 / 1202-555-0123

Respuesta

Si la solicitud es correcta, la API devuelve un objeto JSON con una única clave "1" — un artefacto heredado de la implementación de este endpoint — que envuelve los campos de resultado reales que se detallan a continuación.

Nivel 1 frente a Nivel 2 - TelOrigine, Geolocation, Tel, Operator, IdError, OldOperator y Type se devuelven siempre (verificación de nivel 1: existencia y formato del número de teléfono). LabelStatus y un valor Status actualizado solo se añaden cuando se pasa Status=Y en la solicitud (verificación de nivel 2, solo números móviles franceses).

Campos de la verificación de nivel 1

Clave Descripción Tipo
TelOrigine Número de teléfono analizado. String
Geolocation Ubicación donde el número fue asignado inicialmente. String
Tel Número de teléfono formateado según el formato seleccionado. String
Ported Vacío en la verificación de nivel 1. String
Operator Operador al que se asignó inicialmente el número de teléfono. String
IdError 2: sintaxis válida; 1: válido y atribuido; 0: número no válido o inexistente. Integer
OldOperator Operador original del número de teléfono. String
Type MOBILE o FIXED_LINE o FIXED_LINE_OR_MOBILE o vacío. String

Campos de la verificación de nivel 2

Advertencia: ya no se proporciona la información de alcanzabilidad (reachable). Esta variable se conserva por motivos históricos.

La verificación de nivel 2 proporciona el estado de actividad e información del operador. Actívela pasando Status=Y en la solicitud. La respuesta JSON contiene los siguientes campos adicionales (o actualizados):

Clave Descripción Tipo
Ported Y si el número ha sido portado, N en caso contrario. String(1)
Operator Operador actual del número de teléfono. String
OldOperator Operador anterior cuando el número ha sido portado. String
LabelStatus Reachable o No reachable information (solo móvil). String
Status 0: reachable; 1: no reachable information. String

Ejemplo de respuesta

Nivel 1 (estándar)
{ "1": { "TelOrigine": "+12XXXXXXXXX", "Geolocation": "UNITED STATES OF AMERICA", "Tel": "+12345678910", "Ported": "", "Operator": "FIRST COMMUNICATIONS", "IdError": 1, "OldOperator": "FIRST COMMUNICATIONS", "Type": "MOBILE" } }
Nivel 2 (con Status=Y)
{ "1": { "TelOrigine": "0XXXXXXXXX", "Geolocation": "FRANCE", "LabelStatus": "Not Reachable", "Tel": "0XXXXXXXXX", "Ported": "N", "Status": "1", "Operator": "ORANGE", "IdError": 1, "OldOperator": "", "Type": "MOBILE" } }

Errores

Tipo de error Tipo de respuesta
Parámetro Licence ausente Error Licence Down en la respuesta JSON.
Parámetro Licence vacío Error Licence Down en la respuesta JSON.
Número de licencia incorrecto Error Licence Down en la respuesta JSON.
Parámetro Tel ausente o vacío 400 Bad Request
Error tipográfico en un parámetro 400 Bad Request

Ejemplo de error de licencia:

{ "1": { "TelOrigine": "06XXXXXXXX", "Geolocation": "", "Tel": "", "Ported": "", "Operator": "", "IdError": 0, "OldOperator": "", "Error": "Licence Down" } }

Probar la API

Haga clic en el botón de abajo para probar este endpoint en vivo desde su navegador.

Abrir consola

Ver también

Relacionada con

¿Fue útil este artículo?

Usuarios a los que les pareció útil: 0 de 0