El lunes por la mañana, a las 9:30, un ticket de soporte cae en el lado del cliente: *"No puedo conectarme, no recibo el código SMS en mi número Inwi."* Estás probando en tu propio número IAM, el código llega de inmediato.
Es un escenario clásico cuando se integra la autenticación OTP en Marruecos. Un SMS que no llega (o que llega 15 minutos más tarde) no está necesariamente relacionado con una falla global. A menudo, la fricción viene de un detalle de configuración de su lado, o de una regla estricta del lado de la operadora.
Aquí están las 7 causas más comunes que bloquean la recepción de un OTP en Marruecos, y cómo reaccionar sin perder tiempo.
Las 7 causas más frecuentes
1. El Sender ID no está listado en la lista blanca del operador correspondiente Un Sender ID puede ser validado en Maroc Telecom, pero todavía no está activo en Orange o inwi. Esta es la razón número 1 de las disparidades de recepción. Si la API devuelve un HTTP 400 o 403 con un mensaje que menciona una restricción de Sender ID, es ahí donde hay que cavar. La activación multioperador nunca es instantánea.
2. El número de destino es inválido o mal formatado En Marruecos, el formato local (06XXXXXXXX o 07XXXXXXXX) debe ser convertido al formato internacional (2126XXXXXX) antes de ser enviado. Si su backend o formulario front-end no obliga esta conversión, el operador rechazará la solicitud con un error HTTP 400 Bad Request (Invalid Destination Address).
3. La saturación de la red en las horas de punta Las noches de Ramadán (justo antes o después del Ftour) o las vísperas de Id, el tráfico SMS explota. Los operadores establecen filas de espera (throttling). Un SMS OTP que normalmente toma menos de 3 segundos puede tardar 15 a 20 minutos en llegar. En este caso, su estado permanecerá bloqueado en Pending.
4. El contenido se detecta como SPAM Si su OTP incluye enlaces abreviados (bit.ly), caracteres no estándar o palabras clave en lista negra ("gratuito", "ganar"), el filtro anti-spam de la red puede bloquearlo silenciosamente. La API puede devolver un estado 'Delivered' mientras el mensaje está bloqueado por el operador. Manténgase en un formato ultra básico: "Su código de validación es: 123456".
5.Un error de codificación (Unicode vs GSM-7) Si envía un mensaje OTP en árabe sin configurar la codificación UCS-2 (o Unicode) en los encabezados de su consulta de API, el mensaje puede llegar como puntos de consulta (????) o ser dividido y rechazado.
6. El móvil del destinatario está fuera de red Esto parece obvio, pero un teléfono en modo avión, apagado, o sin cobertura de red no recibirá el mensaje. El operador mantendrá el SMS en fila durante un tiempo limitado (el Validity Period, a menudo 24h a 48h) antes de abandonarlo definitivamente (estado Failed).
7. La cuenta de API está seca o suspendida Un error '401 Unauthorized' o '402 Payment Required' en sus registros suele indicar que su saldo de créditos se ha agotado, o que su cuenta ha sido suspendida por actividad sospechosa (volumen anormalmente alto).
Cómo leer el código de estado DLR
No adivinen lo que está sucediendo: escuchen los Webhooks de estado (Delivery Reports o DLR) que nuestra API les envía.
Delivered: El teléfono ha confirmado a la red que ha recibido el SMS. Si el cliente dice que no lo tiene, pídele que compruebe sus SMS bloqueados (filtro anti-spam iOS/Android).
Pending: El SMS está en los servidores del operador (IAM, Orange o inwi). El teléfono de destino probablemente esté fuera de línea o la red está sobrecargada.
Failed: El envío falló.El número no existe, ya no se asigna, o el SMS ha expirado en la fila de espera.
Unknown/Rejected: El operador ha rechazado el mensaje, a menudo debido a un filtro anti-spam o un identificador de remitente no autorizado.
Para saber si una tasa de Delivered baja en un operador es anormal, compárela con las tasas de entrega por operador (IAM, Orange, Inwi) que publicamos, calculadas sobre estos mismos acuses finales: barómetro SMS Marruecos (en inglés).
Checklist de diagnóstico en 5 minutos
Cuando un usuario se queja, realice estas 3 verificaciones en sus registros:
Compruebe la respuesta de la API en el envío inicial (POST). ¿Ha recibido un código HTTP 200/202 (Éxito) o un error 400/401?
Consulte el estado final del DLR (el webhook). ¿Está en ‘Pending’, ‘Failed’ o ‘Delivered’?
Comparar por operador. ¿Solo ocurre el problema con los números 0661 (IAM) o 0614 (Orange)? Esto a menudo indica un problema de lista blanca de Sender ID específico de un operador.
Cuándo contactar con el soporte vs corregir usted mismo
Corrige usted mismo: Errores HTTP 400 (número mal formatado, error de sintaxis JSON), errores 401 (clave de API inválida), o estado Failed aislado en un único número (a menudo relacionado con el móvil del cliente).
Contacta con el soporte técnico: Estatus 'Unknown' o 'Rejected' sistemático en tus envíos, tiempos de 'Pending' superiores a 2 horas en varios números diferentes, o un Sender ID que pasa a Orange pero no a inwi. En este caso, abre un ticket con los 'message_id' pertinentes para que podamos analizar los registros de enrutamiento brutos con nuestros socios de enrutamiento.
¿Por qué elegir EnvoiSMS para su negocio?
Entrega a Operadores
Rutas locales hacia IAM, Orange e Inwi, con conmutación automática entre rutas y estado de entrega enviado por webhook.
Optimización de Costes
WhatsApp Business API desde 0,65 MAD por mensaje. El mejor retorno de inversión.
Conformidad CNDP
Alojamiento que cumple con las regulaciones de protección de datos personales locales.
Preguntas frecuentes
¿Cuál es la latencia de enrutamiento en las redes IAM, Inwi y Orange?
En nuestras rutas locales hacia Maroc Telecom (IAM), Orange e inwi, la latencia media de entrega es de entre 2 y 4 segundos para los flujos transaccionales.
¿Cómo gestiona la plataforma el formato de los números marroquíes?
EnvoiSMS normaliza automáticamente los números introducidos (06..., 07..., 00212...) al estándar E.164 (+212) para evitar cualquier fallo en la entrega.