Logo Site EngageLab Mark Colored TransparentDocumentation
Rechercher

SIM Swap

Le SIM Swap (changement de carte) fait référence au processus d'association du numéro de téléphone d'un utilisateur à une nouvelle carte SIM. Cela se produit généralement dans les scénarios suivants : déclaration de perte et remplacement de carte, mise à niveau de la carte SIM, portabilité du numéro, activation de services multi-SIM, ou lorsqu'un nouvel utilisateur hérite d'un numéro précédemment utilisé par quelqu'un d'autre.

Les attaquants peuvent utiliser le SIM Swap pour pirater le numéro de téléphone d'une autre personne, intercepter les codes de vérification par SMS, puis réinitialiser les mots de passe et prendre le contrôle des comptes. L'API SIM Swap permet de détecter en temps réel si un numéro de téléphone spécifié a fait l'objet d'un changement de carte SIM, aidant ainsi les entreprises à identifier les risques potentiels de piratage de SIM lors d'étapes critiques telles que la vérification OTP par SMS, et à réduire la probabilité de prise de contrôle de compte.

Remarque : Actuellement, la vérification du SIM Swap n'est prise en charge que pour les numéros des pays/régions suivants : Brésil, Indonésie.

Cette API fournit deux interfaces indépendantes :

  • Retrieve Date : interroger l'heure du dernier SIM Swap survenu pour un numéro de téléphone spécifié
  • Check : détecter si un SIM Swap s'est produit pour un numéro de téléphone spécifié au cours des N dernières heures

Vérification d'appel

Ces deux interfaces utilisent la méthode d'authentification HTTP Basic Auth, en ajoutant Authorization dans l'en-tête HTTP :

Authorization: Basic ${base64_auth_string}
              
              Authorization: Basic ${base64_auth_string}

            
Afficher ce bloc de code dans la fenêtre flottante

L'algorithme de génération de ${base64_auth_string} est : base64(dev_key:dev_secret).

Pour plus de détails, veuillez vous référer à Vérification d'appel pour savoir comment effectuer l'authentification de l'API.


Retrieve Date

Interroger l'heure du dernier SIM Swap survenu pour un numéro de téléphone spécifié.

Adresse d'appel

POST https://otp.api.engagelab.cc/v1/sim-swap/retrieve-date

Exemple de requête

Un objet de requête est exprimé au format JSON, l'en-tête de la requête doit donc inclure Content-Type: application/json.

En-tête de requête

POST /v1/sim-swap/retrieve-date HTTP/1.1 Content-Type: application/json Authorization: Basic ${base64_auth_string}
              
              POST /v1/sim-swap/retrieve-date HTTP/1.1
Content-Type: application/json
Authorization: Basic ${base64_auth_string}

            
Afficher ce bloc de code dans la fenêtre flottante

Corps de requête

{ "phone_number": "+381692223535" }
              
              {
  "phone_number": "+381692223535"
}

            
Afficher ce bloc de code dans la fenêtre flottante

Paramètres de requête

Paramètre Type Option Description
phone_number String Obligatoire Le numéro de téléphone cible à interroger, le format E.164 est recommandé

Paramètres de retour

Retour de succès

Champ Type Option Description
request_id String Obligatoire ID de l'enregistrement de la requête actuelle
latest_sim_change String / null Obligatoire Heure du dernier SIM Swap, au format RFC3339 ; renvoie l'heure de la première activation si la carte n'a jamais été changée ; renvoie null lorsque les données ne peuvent pas être renvoyées en raison des réglementations sur la confidentialité

Exemple de retour de succès :

{ "request_id": "2055136570436075520", "latest_sim_change": "2026-05-01T15:00:00Z" }
              
              {
  "request_id": "2055136570436075520",
  "latest_sim_change": "2026-05-01T15:00:00Z"
}

            
Afficher ce bloc de code dans la fenêtre flottante

Retour d'échec

Le code d'état HTTP est 4xx ou 5xx, et le corps de la réponse contient les champs suivants :

Champ Type Option Description
code int Obligatoire Code d'erreur, voir la section Codes d'erreur pour plus de détails
message String Obligatoire Détails de l'erreur

Exemples courants de retour d'échec :

Exemple d'erreur de paramètre :

{ "code": 3002, "message": "invalid phone_number" }
              
              {
  "code": 3002,
  "message": "invalid phone_number"
}

            
Afficher ce bloc de code dans la fenêtre flottante

Exemple de solde insuffisant :

{ "code": 3005, "message": "balance not enough" }
              
              {
  "code": 3005,
  "message": "balance not enough"
}

            
Afficher ce bloc de code dans la fenêtre flottante

Exemple de numéro hors de la zone de couverture du service :

{ "code": 5101, "message": "phone number is not in sim swap service coverage" }
              
              {
  "code": 5101,
  "message": "phone number is not in sim swap service coverage"
}

            
Afficher ce bloc de code dans la fenêtre flottante

Exemple d'échec général :

{ "code": 5100, "message": "failed to retrieve sim swap date" }
              
              {
  "code": 5100,
  "message": "failed to retrieve sim swap date"
}

            
Afficher ce bloc de code dans la fenêtre flottante

Check

Détecter si un SIM Swap s'est produit pour un numéro de téléphone spécifié au cours des N dernières heures.

Adresse d'appel

POST https://otp.api.engagelab.cc/v1/sim-swap/check

Exemple de requête

Un objet de requête est exprimé au format JSON, et l'en-tête de la requête doit également inclure Content-Type: application/json.

En-tête de requête

POST /v1/sim-swap/check HTTP/1.1 Content-Type: application/json Authorization: Basic ${base64_auth_string}
              
              POST /v1/sim-swap/check HTTP/1.1
Content-Type: application/json
Authorization: Basic ${base64_auth_string}

            
Afficher ce bloc de code dans la fenêtre flottante

Corps de requête

{ "phone_number": "+381692223535", "max_age": 400 }
              
              {
  "phone_number": "+381692223535",
  "max_age": 400
}

            
Afficher ce bloc de code dans la fenêtre flottante

Paramètres de requête

Paramètre Type Option Description
phone_number String Obligatoire Le numéro de téléphone cible à interroger, le format E.164 est recommandé
max_age Integer Obligatoire La fenêtre d'interrogation, en heures, plage de valeurs 1 ~ 2400

Paramètres de retour

Retour de succès

Champ Type Option Description
request_id String Obligatoire ID de l'enregistrement de la requête actuelle
swapped Boolean Obligatoire Si un SIM Swap s'est produit dans la fenêtre de temps spécifiée

Exemple de retour de succès :

{ "request_id": "2055136570293469184", "swapped": true }
              
              {
  "request_id": "2055136570293469184",
  "swapped": true
}

            
Afficher ce bloc de code dans la fenêtre flottante

Retour d'échec

La structure est identique à celle de l'interface Retrieve Date. Exemple spécifique de retour d'échec :

Erreur de paramètre (max_age hors limites) :

{ "code": 3002, "message": "max_age must be between 1 and 2400" }
              
              {
  "code": 3002,
  "message": "max_age must be between 1 and 2400"
}

            
Afficher ce bloc de code dans la fenêtre flottante

Codes d'erreur

Code d'erreur Code HTTP Description
1000 500 Erreur interne
2001 401 Échec de l'authentification, le token correct n'a pas été fourni
2002 401 Échec de l'authentification, le token a expiré ou a été désactivé
2004 403 Aucune autorisation pour appeler cette API
3001 400 Format de paramètre de requête non valide, veuillez vérifier s'il est conforme au format de contenu JSON
3002 400 Erreur de paramètre de requête, veuillez vérifier si les paramètres de requête répondent aux exigences
3005 400 Solde insuffisant
5100 400 Échec général du SIM Swap
5101 400 Ce numéro n'est pas dans la zone de couverture du service SIM Swap, y compris les pays, les opérateurs et les segments de numéros qui ne sont actuellement pas pris en charge, ou le numéro ne peut pas être reconnu
Icon Solid Transparent White Qiyu
Contactez-nous