Expertise technical

SMS OTP qui n'arrive pas au Maroc : 7 causes réelles et comment les corriger

Sms otp pas reçu maroc : causes réelles, méthode de diagnostic et solutions concrètes pour le marché marocain.

Dernière mise à jour : 8 juillet 2026
SMS OTP qui n'arrive pas au Maroc : 7 causes réelles et comment les corriger

Lundi matin, 9h30. Un ticket de support tombe côté client : *"Je n'arrive pas à me connecter, je ne reçois pas le code SMS sur mon numéro Inwi."* Vous testez sur votre propre numéro IAM, le code arrive instantanément. Vous regardez les logs de votre API : le statut est en "Pending".

C'est un scénario classique quand on intègre de l'authentification OTP au Maroc. Un SMS qui n'arrive pas (ou qui arrive 15 minutes plus tard) n'est pas forcément lié à une panne globale. Souvent, la friction vient d'un détail de configuration de votre côté, ou d'une règle stricte côté opérateur. Voici les 7 causes les plus fréquentes qui bloquent la réception d'un [OTP au Maroc](/fr/guides/otp-authentication-maroc/), et comment réagir sans perdre de temps.

Les 7 causes les plus fréquentes

### 1. Le Sender ID n'est pas whiteliste chez l'opérateur concerné Un Sender ID peut être validé chez Maroc Telecom, mais pas encore actif chez Orange ou inwi. C'est le motif n°1 des disparités de réception. Si l'API renvoie un HTTP `400` ou `403` avec un message mentionnant une restriction de Sender ID, c'est là qu'il faut creuser. L'activation multi-opérateur n'est jamais instantanée. ### 2. Le numéro de destination est invalide ou mal formaté Au Maroc, le format local (`06XXXXXXXX` ou `07XXXXXXXX`) doit être converti au format international (`2126XXXXXXXX`) avant l'envoi. Si votre backend ou votre formulaire front-end ne force pas cette conversion, l'opérateur rejettera la requête avec une erreur HTTP `400 Bad Request` (Invalid Destination Address). ### 3. La saturation réseau aux heures de pointe Les soirs de Ramadan (juste avant ou après le Ftour) ou les veilles d'Aïd, le trafic SMS explose. Les opérateurs mettent en place des files d'attente (throttling). Un SMS OTP qui prend normalement moins de 3 secondes peut mettre 15 à 20 minutes à arriver. Dans ce cas, votre statut restera bloqué sur `Pending`. ### 4. Le contenu est détecté comme SPAM Si votre OTP inclut des liens raccourcis (bit.ly), des caractères non standards, ou des mots-clés blacklistés ("gratuit", "gagnez"), le filtre anti-spam réseau peut le bloquer silencieusement. L'API peut renvoyer un statut `Delivered` alors que le message est bloqué côté opérateur. Restez sur un format ultra-basique : "Votre code de validation est le : 123456." ### 5. Une erreur d'encodage (Unicode vs GSM-7) Si vous envoyez un message OTP en arabe sans configurer l'encodage `UCS-2` (ou Unicode) dans les headers de votre requête API, le message peut arriver sous forme de points d'interrogation (`????`) ou être scindé et rejeté. ### 6. Le mobile du destinataire est hors réseau Cela paraît évident, mais un téléphone en mode avion, éteint, ou sans couverture réseau ne recevra pas le message. L'opérateur gardera le SMS en file d'attente pendant une durée limitée (le *Validity Period*, souvent 24h à 48h) avant de l'abandonner définitivement (statut `Failed`). ### 7. Le compte API est à sec ou suspendu Une erreur `401 Unauthorized` ou `402 Payment Required` dans vos logs indique généralement que votre solde de crédits est épuisé, ou que votre compte a été suspendu pour activité suspecte (volume anormalement élevé).

Comment lire le code de statut DLR

Ne devinez pas ce qui se passe : écoutez les Webhooks de statut (Delivery Reports ou DLR) que [notre API](/fr/api/) vous renvoie. - **`Delivered`** : Le téléphone a confirmé au réseau qu'il a bien reçu le SMS. Si le client dit qu'il ne l'a pas, demandez-lui de vérifier ses SMS bloqués (filtre anti-spam iOS/Android). - **`Pending`** : Le SMS est dans les serveurs de l'opérateur (IAM, Orange ou inwi). Le téléphone cible est probablement hors ligne ou le réseau est surchargé. Patientez. - **`Failed`** : L'envoi a échoué. Le numéro n'existe pas, n'est plus attribué, ou le SMS a expiré dans la file d'attente. - **`Unknown` / `Rejected`** : L'opérateur a refusé le message, souvent à cause d'un filtre anti-spam ou d'un Sender ID non autorisé.

Checklist de diagnostic en 5 minutes

Lorsqu'un utilisateur se plaint, effectuez ces 3 vérifications dans vos logs : 1. **Vérifiez la réponse de l'API lors de l'envoi initial (POST).** Avez-vous reçu un code HTTP `200/202` (Succès) ou une erreur `400/401` ? 2. **Consultez le statut DLR final (le webhook).** Est-il en `Pending`, `Failed` ou `Delivered` ? 3. **Comparez par opérateur.** Le problème survient-il uniquement sur les numéros `0661` (IAM) ou `0614` (Orange) ? Cela indique souvent un souci de whitelisting de Sender ID spécifique à un opérateur.

Quand contacter le support vs corriger soi-même

- **Corrigez vous-même** : Erreurs HTTP `400` (numéro mal formaté, erreur de syntaxe JSON), erreurs `401` (clé API invalide), ou statut `Failed` isolé sur un seul numéro (souvent lié au mobile du client). - **Contactez le support** : Statut `Unknown` ou `Rejected` systématique sur vos envois, délais de `Pending` dépassant les 2 heures sur plusieurs numéros différents, ou un Sender ID qui passe chez Orange mais pas chez inwi. Dans ce cas, ouvrez un ticket avec les `message_id` concernés pour que nous puissions analyser les logs SMPP bruts côté opérateur.

💡 Pourquoi choisir EnvoiSMS pour votre entreprise ?

Délivrabilité Critique

Moins de 4 secondes pour vos OTP via des canaux directs opérateurs IAM, Inwi et Orange Maroc.

💰

Optimisation du Budget

WhatsApp Business API à 0,33 MAD par message. Le meilleur ROI conversationnel.

🛡️

Données Souveraines (CNDP)

Hébergement conforme aux réglementations de protection des données personnelles locales.

Articles suggérés

Formatage SMS au Maroc : Sauts de ligne, Encodage GSM-7 vs UCS-2 et Optimisation des Coûts
technical

Formatage SMS au Maroc : Sauts de ligne, Encodage GSM-7 vs UCS-2 et Optimisation des Coûts

Formatage WhatsApp Business au Maroc : Texte Enrichi, Emojis et Boutons Interactifs
technical

Formatage WhatsApp Business au Maroc : Texte Enrichi, Emojis et Boutons Interactifs

Verify API : Sécuriser les accès et optimiser le coût des OTP au Maroc
technical

Verify API : Sécuriser les accès et optimiser le coût des OTP au Maroc