ID Mobile — Einen SIM-Karten-Tausch erkennen

Support DQE
Support DQE
  • Aktualisiert
Simswap - ID Mobile API

Verwenden Sie diesen Endpunkt, um zu prüfen, ob die mit einer Telefonnummer verknüpfte SIM-Karte innerhalb eines bestimmten Zeitraums ausgetauscht wurde.

Verwandte ID Mobile-Dokumentation:
Voraussetzung - Simswap benötigt ein zuvor über den ID Mobile Access-Token-Endpunkt bezogenes token. Rufen Sie zuerst ACCESS_TOKEN auf und übergeben Sie den zurückgegebenen Wert access_token unten als Parameter token.

simswap

Anfrage

GET und POST werden beide unterstützt.

{SERVER_ADDRESS} und {LICENCE_CODE} werden von DQE bei der Kontoerstellung bereitgestellt. Wenden Sie sich an Ihren DQE-Kundenbetreuer, um diese Zugangsdaten zu erhalten.
GEThttps://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&licence={LICENCE_CODE}&scope=simswap&period={PERIOD}&name={NAME}

Codebeispiele

Auf SIM-Tausch für eine Telefonnummer prüfen

curl "https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&licence={LICENCE_CODE}&scope=simswap&period={PERIOD}&name={NAME}"
fetch("https://{SERVER_ADDRESS}/IDMOBILE/?" + new URLSearchParams({ number: "{NUM}", token: "{TOKEN}", licence: "{LICENCE_CODE}", scope: "simswap", period: "{PERIOD}", name: "{NAME}" })) .then(r => r.json()) .then(data => console.log(data));
import requests response = requests.get( "https://{SERVER_ADDRESS}/IDMOBILE/", params={ "number": "{NUM}", "token": "{TOKEN}", "licence": "{LICENCE_CODE}", "scope": "simswap", "period": "{PERIOD}", "name": "{NAME}", }, ) print(response.json())
<?php $params = http_build_query([ 'number' => '{NUM}', 'token' => '{TOKEN}', 'licence' => '{LICENCE_CODE}', 'scope' => 'simswap', 'period' => '{PERIOD}', 'name' => '{NAME}', ]); $ch = curl_init("https://{SERVER_ADDRESS}/IDMOBILE/?{$params}"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response, true);
const axios = require('axios'); axios.get('https://{SERVER_ADDRESS}/IDMOBILE/', { params: { number: '{NUM}', token: '{TOKEN}', licence: '{LICENCE_CODE}', scope: 'simswap', period: '{PERIOD}', name: '{NAME}' } }) .then(response => console.log(response.data));
HttpClient client = HttpClient.newHttpClient(); String url = "https://{SERVER_ADDRESS}/IDMOBILE/" + "?number={NUM}&token={TOKEN}&licence={LICENCE_CODE}&scope=simswap&period={PERIOD}&name={NAME}"; HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(url)) .GET() .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body());
using var client = new HttpClient(); var url = "https://{SERVER_ADDRESS}/IDMOBILE/" + "?number={NUM}&token={TOKEN}&licence={LICENCE_CODE}&scope=simswap&period={PERIOD}&name={NAME}"; var response = await client.GetAsync(url); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);
package main import ( "fmt" "io" "net/http" ) func main() { url := "https://{SERVER_ADDRESS}/IDMOBILE/" + "?number={NUM}&token={TOKEN}&licence={LICENCE_CODE}&scope=simswap&period={PERIOD}&name={NAME}" resp, err := http.Get(url) if err != nil { panic(err) } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body)) }
POSThttps://{SERVER_ADDRESS}/IDMOBILE/

Fügen Sie die folgenden Parameter im Anfragetext mit Content-Type: application/x-www-form-urlencoded hinzu.

Codebeispiele

Auf SIM-Tausch für eine Telefonnummer prüfen

curl -X POST "https://{SERVER_ADDRESS}/IDMOBILE/" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "licence={LICENCE_CODE}" \ -d "number={NUM}" \ -d "token={TOKEN}" \ -d "scope=simswap" \ -d "period={PERIOD}" \ -d "name={NAME}"
fetch("https://{SERVER_ADDRESS}/IDMOBILE/", { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: new URLSearchParams({ licence: "{LICENCE_CODE}", number: "{NUM}", token: "{TOKEN}", scope: "simswap", period: "{PERIOD}", name: "{NAME}" }) }) .then(r => r.json()) .then(data => console.log(data));
import requests response = requests.post( "https://{SERVER_ADDRESS}/IDMOBILE/", data={ "licence": "{LICENCE_CODE}", "number": "{NUM}", "token": "{TOKEN}", "scope": "simswap", "period": "{PERIOD}", "name": "{NAME}", }, ) print(response.json())
<?php $ch = curl_init("https://{SERVER_ADDRESS}/IDMOBILE/"); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([ 'licence' => '{LICENCE_CODE}', 'number' => '{NUM}', 'token' => '{TOKEN}', 'scope' => 'simswap', 'period' => '{PERIOD}', 'name' => '{NAME}', ])); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response, true);
const axios = require('axios'); const qs = require('querystring'); axios.post('https://{SERVER_ADDRESS}/IDMOBILE/', qs.stringify({ licence: '{LICENCE_CODE}', number: '{NUM}', token: '{TOKEN}', scope: 'simswap', period: '{PERIOD}', name: '{NAME}' })) .then(response => console.log(response.data));
HttpClient client = HttpClient.newHttpClient(); String form = "licence={LICENCE_CODE}&number={NUM}&token={TOKEN}&scope=simswap&period={PERIOD}&name={NAME}"; HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://{SERVER_ADDRESS}/IDMOBILE/")) .header("Content-Type", "application/x-www-form-urlencoded") .POST(HttpRequest.BodyPublishers.ofString(form)) .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body());
using var client = new HttpClient(); var form = new Dictionary<string, string> { ["licence"] = "{LICENCE_CODE}", ["number"] = "{NUM}", ["token"] = "{TOKEN}", ["scope"] = "simswap", ["period"] = "{PERIOD}", ["name"] = "{NAME}" }; var response = await client.PostAsync( "https://{SERVER_ADDRESS}/IDMOBILE/", new FormUrlEncodedContent(form)); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);
package main import ( "fmt" "io" "net/http" "net/url" ) func main() { form := url.Values{} form.Set("licence", "{LICENCE_CODE}") form.Set("number", "{NUM}") form.Set("token", "{TOKEN}") form.Set("scope", "simswap") form.Set("period", "{PERIOD}") form.Set("name", "{NAME}") resp, err := http.PostForm("https://{SERVER_ADDRESS}/IDMOBILE/", form) if err != nil { panic(err) } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body)) }

Parameter

Parameter Beschreibung Pflicht/Opt
SERVER_ADDRESS Adresse des DQE-Servers, der die Daten verarbeitet. Erforderlich
licence Ihnen zugewiesene Nummer als Lizenzcode. Erforderlich
number Telefonnummer. Erforderlich
token Durch Authentifizierung abgerufenes Token. Erforderlich
scope Statischer Wert. Muss für diesen Scope simswap sein.
Fester Wert: simswap
Erforderlich
period Zurückliegender Zeitraum, für den die SIM-Tausch-Prüfung durchgeführt wird. Wert in Stunden. Erforderlich
name Kundenname in der DQE-Datenbank. Erforderlich
Scopes kombinieren — simswap kann in einer einzigen Anfrage mit matching_notp (Betrugsbewertung) kombiniert werden, z. B. scope=simswap,matching_notp, sowie beliebig mit info (Telefonnummer-Zusatzinformationen), z. B. scope=simswap,info. Siehe die info-Felder unten. Wenden Sie sich an Ihren DQE-Kundenbetreuer für Hinweise zur vollständigen kombinierten Antwortstruktur von `simswap`+`matching_notp`.

info-Zusatzfelder — werden zusätzlich zu den eigenen Feldern dieses Endpunkts zurückgegeben, wenn info im scope enthalten ist:

Feld Beschreibung Beispiel
telorigine Telefonnummer in der Anfrage. 0600000000
tel Formatierte Telefonnummer. +33600000000
geolocation Geografische Lage der Telefonnummer. FRANCE
operator Aktueller Betreiber der Telefonnummer, sofern vorhanden. ORANGE
oldoperator Vorheriger Betreiber der Telefonnummer. SFR
ported Gibt an, ob die Telefonnummer portiert wurde, sofern vorhanden. Y
type Art der Telefonnummer. MOBILE
iderror Fehlercode der Prüfung (0 oder 1). 1

Antwort

Die API gibt ein JSON-Objekt mit den folgenden Schlüsseln zurück.

Schlüssel Beschreibung Typ
status Statusbezeichnung der Anfrage. String
operator Betreiber der Telefonnummer. String
swapped Gibt an, ob die SIM-Karte ausgetauscht wurde: true oder false. String

Antwortbeispiel

Beispiel einer Simswap-Antwort
{ "status": "success", "operator": "Orange", "swapped": "false" }

Fehler

Diese Fehlercodes gelten übergreifend für alle ID Mobile-Scopes — die API kennzeichnet Fehler über den Code, nicht über den Endpunkt. Die Codes 09 und 12–17 hängen von der Berechtigung der Telefonnummer und der Konfiguration des abgefragten Betreibers ab und nicht von einem einzelnen fehlerhaften Parameter; das gezeigte Beispiel ist ein syntaktisch gültiger Simswap-Aufruf, und der Fehler wird abhängig vom Konto-/Betreiber-/Nummernstatus zurückgegeben.

ID Fehlertyp Beispielanfrage Antwort
01 invalid request https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&licence={LICENCE_CODE}&period={PERIOD}&name={NAME}
{"status": "error", "error_type": "invalid request", "error_id": "01"}
02 invalid licence key https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&licence={INCORRECT_LICENCE_CODE}&scope=simswap&period={PERIOD}&name={NAME}
{"status": "error", "error_type": "invalid licence key", "error_id": "02"}
04 invalid scope https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&licence={LICENCE_CODE}&scope=unknown&period={PERIOD}&name={NAME}
{"status": "error", "error_type": "invalid scope", "error_id": "04"}
05 missing or empty parameter (user_infos) for this scope Wird durch die eigenen Parameter von Simswap nicht ausgelöst (plattformweiter Fehlercode)
{"status": "error", "error_type": "missing or empty parameter (user_infos) for this scope", "error_id": "05"}
06 bad parameter format (user_infos) is not a valid JSON Wird durch die eigenen Parameter von Simswap nicht ausgelöst (plattformweiter Fehlercode)
{"status": "error", "error_type": "bad parameter format (user_infos) is not a valid JSON", "error_id": "06"}
07 missing mandatory key in user informations (phone) Wird durch die eigenen Parameter von Simswap nicht ausgelöst (plattformweiter Fehlercode)
{"status": "error", "error_type": "missing mandatory key in user informations (phone)", "error_id": "07"}
09 ineligible phone number https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&licence={LICENCE_CODE}&scope=simswap&period={PERIOD}&name={NAME}
{"status": "error", "error_type": "ineligible phone number", "error_id": "09"}
10 invalid phone number https://{SERVER_ADDRESS}/IDMOBILE/?number={INVALID_NUM}&token={TOKEN}&licence={LICENCE_CODE}&scope=simswap&period={PERIOD}&name={NAME}
{"status": "error", "error_type": "invalid phone number", "error_id": "10"}
11 phone number is empty https://{SERVER_ADDRESS}/IDMOBILE/?number=&token={TOKEN}&licence={LICENCE_CODE}&scope=simswap&period={PERIOD}&name={NAME}
{"status": "error", "error_type": "phone number is empty", "error_id": "11"}
12 phone check failed https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&licence={LICENCE_CODE}&scope=simswap&period={PERIOD}&name={NAME}
{"status": "error", "error_type": "phone check failed", "error_id": "12"}
13 operator [Operator Name] not found https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&licence={LICENCE_CODE}&scope=simswap&period={PERIOD}&name={NAME}
{"status": "error", "error_type": "operator [Operator Name] not found", "error_id": "13"}
14 operator [Operator Name] not authorized for this licence https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&licence={LICENCE_CODE}&scope=simswap&period={PERIOD}&name={NAME}
{"status": "error", "error_type": "operator [Operator Name] not authorized for this licence", "error_id": "14"}
15 operator [Operator Name] not supported yet https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&licence={LICENCE_CODE}&scope=simswap&period={PERIOD}&name={NAME}
{"status": "error", "error_type": "operator [Operator Name] not supported yet", "error_id": "15"}
16 operator [Operator Name] unreachable https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&licence={LICENCE_CODE}&scope=simswap&period={PERIOD}&name={NAME}
{"status": "error", "error_type": "operator [Operator Name] unreachable", "error_id": "16"}
17 scope not supported by this operator [Operator Name] yet https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={TOKEN}&licence={LICENCE_CODE}&scope=simswap&period={PERIOD}&name={NAME}
{"status": "error", "error_type": "scope not supported by this operator [Operator Name] yet", "error_id": "17"}
30 invalid or expired token https://{SERVER_ADDRESS}/IDMOBILE/?number={NUM}&token={EXPIRED_TOKEN}&licence={LICENCE_CODE}&scope=simswap&period={PERIOD}&name={NAME}
{"status": "error", "error_type": "invalid or expired token", "error_id": "30"}

API testen

Klicken Sie auf die Schaltfläche unten, um diesen Endpunkt live in Ihrem Browser zu testen.

Konsole öffnen

Siehe auch

War dieser Beitrag hilfreich?

0 von 0 fanden dies hilfreich