¿Qué comprueba la validación de números de teléfono?

La validación de números de teléfono comprueba un número contra las reglas de numeración de su país, lo que establece que el número podría existir, no que alguien sea localizable en él.

Tres preguntas diferentes se esconden dentro de la palabra validación. Una pregunta si el número tiene la forma de un número real. Otra pregunta si alguna red responde por él. Otra pregunta si la persona con la que hablas lo posee. Cada una necesita una comprobación distinta. Cada una deja algo sin resolver.

¿Qué puede decirte una comprobación de formato?

Que el número pertenece a un rango que un operador tiene permitido asignar.

libphonenumber de Google trata un rango como válido cuando los operadores pueden asignar libremente sus números a suscriptores. Su FAQ:

A valid number range is one from which numbers can be freely assigned by carriers to users.

La validez no dice nada sobre si un número concreto ha sido asignado o responde. La misma página:

Do not rely on libphonenumber to determine whether numbers are currently assigned to a specific user and reachable.

Una comprobación de formato responde una pregunta sobre el plan de numeración. No dice nada sobre si el rango ha sido asignado a alguien, ni sobre si un teléfono suena.

Llamar tampoco es una prueba sustituta. El FAQ da dos razones por las que una llamada puede conectarse a un número que no es válido. Algunos países ignoran los dígitos sobrantes al final, así que 1800 MICROSOFT llega a un número más corto. Durante una renumeración, algunos operadores mantienen números antiguos en funcionamiento después de que hayan dejado de funcionar en general.

¿Qué añade una consulta de red?

Las partes de la respuesta que solo una red posee.

Una consulta pregunta a fuentes de operadores e inteligencia de números sobre un número específico en lugar de sobre su rango. Eso mueve varias preguntas de desconocido a respondido:

ComprobaciónQué devuelveQué deja sin resolver
FormatoEl número se analiza y pertenece a un rango asignableSi el rango está asignado a alguien
Tipo de líneaSi el número es móvil, fijo, VoIP, gratuito o máquina a máquinaA qué servicio está asignado el rango con mayor precisión
Red de servicioLa red que responde por el número ahora y la que lo emitióSi un terminal está encendido
Estado de portabilidadCuándo el número cambió de red por última vezNada sobre el suscriptor
PresenciaSi el número está registrado y puede recibir tráfico en este momentoQuién tiene el terminal
PosesiónNada. Una consulta nunca pregunta a la personaSi tu usuario controla el número

La última fila es la que importa en un flujo de registro. Ninguna consulta establece la posesión, porque una consulta nunca involucra a la persona.

¿Qué solo puede probar un desafío de verificación?

Que quien está en tu flujo puede recibir tráfico en ese número.

El FAQ de libphonenumber trata un desafío como la única respuesta viable, porque la práctica de numeración varía demasiado entre países para que cualquier otra cosa lo resuelva:

This is not technically feasible without such a verification step given the complicated international world we live in, with varying standardization practices in different regions.

Enviar un código y aceptarlo de vuelta es, por tanto, un tipo de comprobación diferente de los dos anteriores. Cuesta un mensaje y un viaje de ida y vuelta. También es el único que vincula el número con la persona frente a ti. Qué significa OTP cubre el código en sí, y la guía de Verify cubre la ejecución del desafío.

¿Cómo leo una comprobación que nadie pudo responder?

Como desconocido, que no es lo mismo que no.

Un número cuya presencia no se pudo determinar no es un número inalcanzable. Tratar ambos como iguales bloquea a clientes cuyas redes simplemente no respondieron.

Bird los mantiene separados en la respuesta. Cada propiedad que solicitas informa su propio status:

  • ok: la propiedad fue respondida y su valor está presente.
  • unavailable: no llegó respuesta, así que el bloque es null.
  • inconclusive: llegó una respuesta que no resuelve la propiedad.

Solo ok contiene un valor. Un bloque de presencia con status: ok y reachable: false es un negativo real, porque la red respondió e informó que el número es inalcanzable.

Evalúa primero ok. Trata todo lo demás como no respondido. El vocabulario de estados es un enum abierto, así que un valor no reconocido es un estado futuro, no un error. Evaluar ok sigue siendo correcto a medida que el vocabulario crece.

¿Cómo elijo un proveedor de consulta telefónica?

Elige el proveedor cuyos campos, cobertura de mercado y reglas de facturación coincidan con la decisión que necesitas tomar.

Punto de decisiónBird LookupPreguntas para hacer sobre otro proveedor
Sintaxis y validezRequiere un número internacional e informa si se ajusta al plan de numeración.¿Normaliza la entrada y rechaza números malformados sin adivinar?
Tipo de línea y operadorDevuelve tipo de línea, red de servicio y red emisora en el resultado base.¿Qué campos de operador y tipo de línea incluye, y son actuales o de asignación?
PortabilidadInforma el estado de portabilidad en el resultado base y puede devolver datos adicionales de portabilidad.¿Muestra el operador actual, el operador original o el historial de movimientos?
FrescuraPresencia y roaming consultan condiciones de red actuales; los demás campos describen numeración y asignación.¿Qué campos son en tiempo real, en caché o con marca de tiempo?
Resultados desconocidosCada propiedad solicitada tiene estado ok, unavailable o inconclusive.¿Puedes distinguir una propiedad sin respuesta de un resultado negativo?
Cobertura de mercadoUna propiedad puede no estar disponible para un número u operador incluso cuando la consulta tiene éxito.¿Qué países y operadores soportan cada propiedad?
FacturaciónLa consulta base se factura una vez. Las propiedades opcionales se facturan solo al entregarse, y las fallidas no se facturan.¿Cuánto cuesta una propiedad sin respuesta y qué complementos cambian la factura?

Las alternativas clasificadas documentan distintas compensaciones. Twilio Lookup ofrece formato y validación básicos. Los paquetes opcionales cubren tipo de línea, estado de línea, intercambio de SIM, identidad, nombre del llamante, números reasignados y señales de riesgo. La cobertura y las condiciones de aprobación varían por paquete y mercado.

La documentación de validación telefónica de Abstract API describe campos de validez, país, operador y tipo de línea. La página de validación y consulta de operador de Veriphone describe resultados de validez, país, operador, tipo de línea y operador actual. Ambos publican reglas separadas de cobertura y créditos. La cobertura documentada, el comportamiento ante resultados desconocidos y la facturación de cada proveedor determinan si se ajusta a una decisión de registro o enrutamiento.

¿Cómo consulto uno en Bird?

Envía el número al endpoint de consulta. Lee los bloques que solicitaste.

POST /v1/lookup/phone-number recibe un phone_number y un array opcional type. Cada consulta devuelve las redes de servicio y emisora, el estado de portabilidad, el país y el tipo de línea. El array type añade classification, porting, presence, roaming, sim_swap o score, cada uno facturado por separado y solo cuando se entrega. La consulta no contacta al número.

Reutilizar un Idempotency-Key devuelve el resultado almacenado en lugar de realizar y facturar una segunda consulta. La guía de consulta cubre el flujo y la referencia de API cubre los campos.

En resumen

  1. Válido significa que el rango existe, no que el número esté en uso.

    La biblioteca de números de teléfono de Google define un rango válido como aquel del que los operadores pueden asignar números libremente a los usuarios.

  2. Una llamada conectada no prueba que un número sea válido.

    Algunos países ignoran los dígitos sobrantes al final, y algunos operadores mantienen números antiguos en funcionamiento durante una renumeración mucho después de que dejen de funcionar en otros casos.

  3. Solo un desafío prueba la posesión.

    Enviar un código y recibirlo de vuelta es la única comprobación que establece quién posee el número, y por eso la verificación existe como un paso separado.

  4. Una comprobación sin respuesta no es una respuesta negativa.

    Bird informa cada propiedad solicitada con su propio estado, de modo que una propiedad que nadie pudo responder se distingue de una respondida como no.

Construye sobre la misma red.

Obtén una clave API de prueba de inmediato. El acceso a producción se desbloquea cuando añades un método de pago y verificas un remitente.

Tu próxima idea. Lista para conectar.