Logo Site EngageLab Mark Colored TransparentDokumentation
Suchen

SIM Swap

SIM Swap (SIM-Kartenwechsel) bezeichnet den Vorgang, bei dem die Telefonnummer eines Benutzers an eine neue SIM-Karte gebunden wird. Dies geschieht typischerweise in folgenden Szenarien: Verlustmeldung und Ersatzkarte, Upgrade der SIM-Karte, Rufnummernmitnahme (Portierung), Aktivierung von Multi-SIM-Diensten oder wenn ein neuer Benutzer eine Nummer übernimmt, die zuvor von einer anderen Person verwendet wurde.

Angreifer können SIM Swap nutzen, um die Telefonnummer einer anderen Person zu kapern, SMS-Verifizierungscodes abzufangen und anschließend Passwörter zurückzusetzen sowie Konten zu übernehmen. Die SIM Swap API kann in Echtzeit erkennen, ob für eine bestimmte Telefonnummer ein SIM-Kartenwechsel stattgefunden hat. Dies hilft Unternehmen, potenzielle SIM-Hijacking-Risiken in kritischen Prozessen wie der SMS-OTP-Verifizierung zu identifizieren und die Wahrscheinlichkeit einer Kontoübernahme zu verringern.

Hinweis: Derzeit wird die SIM Swap-Abfrage nur für Nummern in den folgenden Ländern/Regionen unterstützt: Brasilien, Indonesien.

Diese API bietet zwei unabhängige Endpunkte:

  • Retrieve Date: Abfrage des Zeitpunkts des letzten SIM Swaps für eine bestimmte Telefonnummer
  • Check: Erkennung, ob für eine bestimmte Telefonnummer innerhalb der letzten N Stunden ein SIM Swap stattgefunden hat

Aufrufverifizierung

Beide Endpunkte verwenden die HTTP Basic Auth-Authentifizierungsmethode. Fügen Sie Authorization im HTTP-Header hinzu:

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

            
Diesen Codeblock im schwebenden Fenster anzeigen

Der Generierungsalgorithmus für ${base64_auth_string} lautet: base64(dev_key:dev_secret).

Weitere Details zur Durchführung der API-Authentifizierung finden Sie unter Aufrufverifizierung.


Retrieve Date

Abfrage des Zeitpunkts des letzten SIM Swaps für eine bestimmte Telefonnummer.

Aufrufadresse

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

Anfragebeispiel

Ein Anfrageobjekt wird im JSON-Format ausgedrückt, daher muss der Anfrage-Header Content-Type: application/json enthalten.

Anfrage-Header

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}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Anfrage-Body

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

            
Diesen Codeblock im schwebenden Fenster anzeigen

Anfrageparameter

Parameter Typ Option Beschreibung
phone_number String Erforderlich Die abzufragende Zieltelefonnummer, E.164-Format wird empfohlen

Antwortparameter

Erfolgsantwort

Feld Typ Option Beschreibung
request_id String Erforderlich ID des aktuellen Abfragedatensatzes
latest_sim_change String / null Erforderlich Zeitpunkt des letzten SIM Swaps im RFC3339-Format; gibt den Zeitpunkt der ersten Aktivierung zurück, wenn die Karte nie gewechselt wurde; gibt null zurück, wenn Daten aufgrund von Datenschutzbestimmungen nicht zurückgegeben werden können

Beispiel für eine Erfolgsantwort:

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

            
Diesen Codeblock im schwebenden Fenster anzeigen

Fehlerantwort

Der HTTP-Statuscode ist 4xx oder 5xx, und der Antwort-Body enthält die folgenden Felder:

Feld Typ Option Beschreibung
code int Erforderlich Fehlercode, siehe Abschnitt Fehlercodes für Details
message String Erforderlich Fehlerdetails

Beispiele für häufige Fehlerantworten:

Beispiel für Parameterfehler:

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

            
Diesen Codeblock im schwebenden Fenster anzeigen

Beispiel für unzureichendes Guthaben:

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

            
Diesen Codeblock im schwebenden Fenster anzeigen

Beispiel für Nummer nicht im Serviceabdeckungsbereich:

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

            
Diesen Codeblock im schwebenden Fenster anzeigen

Beispiel für allgemeinen Fehler:

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

            
Diesen Codeblock im schwebenden Fenster anzeigen

Check

Erkennung, ob für eine bestimmte Telefonnummer innerhalb der letzten N Stunden ein SIM Swap stattgefunden hat.

Aufrufadresse

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

Anfragebeispiel

Ein Anfrageobjekt wird im JSON-Format ausgedrückt, und der Anfrage-Header muss ebenfalls Content-Type: application/json enthalten.

Anfrage-Header

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}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Anfrage-Body

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

            
Diesen Codeblock im schwebenden Fenster anzeigen

Anfrageparameter

Parameter Typ Option Beschreibung
phone_number String Erforderlich Die abzufragende Zieltelefonnummer, E.164-Format wird empfohlen
max_age Integer Erforderlich Das Abfragefenster in Stunden, Wertebereich 1 ~ 2400

Antwortparameter

Erfolgsantwort

Feld Typ Option Beschreibung
request_id String Erforderlich ID des aktuellen Abfragedatensatzes
swapped Boolean Erforderlich Ob innerhalb des angegebenen Zeitfensters ein SIM Swap stattgefunden hat

Beispiel für eine Erfolgsantwort:

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

            
Diesen Codeblock im schwebenden Fenster anzeigen

Fehlerantwort

Die Struktur ist identisch mit dem Retrieve Date-Endpunkt. Spezifisches Beispiel für eine Fehlerantwort:

Parameterfehler (max_age außerhalb des Bereichs):

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

            
Diesen Codeblock im schwebenden Fenster anzeigen

Fehlercodes

Fehlercode HTTP Code Beschreibung
1000 500 Interner Fehler
2001 401 Authentifizierung fehlgeschlagen, kein korrektes Token angegeben
2002 401 Authentifizierung fehlgeschlagen, Token ist abgelaufen oder wurde deaktiviert
2004 403 Keine Berechtigung zum Aufrufen dieser API
3001 400 Ungültiges Format der Anfrageparameter, bitte prüfen Sie, ob der Inhalt dem JSON-Format entspricht
3002 400 Fehler bei den Anfrageparametern, bitte prüfen Sie, ob die Anfrageparameter die Anforderungen erfüllen
3005 400 Unzureichendes Guthaben
5100 400 Allgemeiner SIM Swap-Fehler
5101 400 Diese Nummer befindet sich nicht im Serviceabdeckungsbereich für SIM Swap, einschließlich Ländern, Betreibern und Nummernsegmenten, die derzeit nicht unterstützt werden, oder die Nummer kann nicht erkannt werden
Icon Solid Transparent White Qiyu
Vertrieb kontaktieren