Logo Site EngageLab Mark Colored TransparentDokumen
Cari

SIM Swap

SIM Swap (pergantian kartu SIM) adalah proses menghubungkan nomor telepon pengguna dengan kartu SIM baru. Hal ini biasanya terjadi pada situasi berikut: melaporkan kehilangan dan mengganti kartu, meningkatkan kartu SIM, porting nomor ke jaringan lain, mengaktifkan layanan multi-SIM, atau pengguna baru mewarisi nomor yang sebelumnya digunakan oleh orang lain.

Penyerang dapat menggunakan SIM Swap untuk membajak nomor telepon orang lain, mencegat kode verifikasi SMS, dan kemudian mereset kata sandi serta mengambil alih akun. SIM Swap API dapat mendeteksi secara real-time apakah nomor telepon yang ditentukan telah mengalami pergantian kartu SIM, membantu bisnis mengidentifikasi potensi risiko pembajakan SIM pada proses penting seperti verifikasi SMS OTP, dan mengurangi kemungkinan pengambilalihan akun.

Catatan: Saat ini, pengecekan SIM Swap hanya didukung untuk nomor di negara/wilayah berikut: Brasil, Indonesia.

API ini menyediakan dua endpoint independen:

  • Retrieve Date: Menanyakan waktu terjadinya SIM Swap terakhir untuk nomor telepon yang ditentukan
  • Check: Mendeteksi apakah SIM Swap telah terjadi pada nomor telepon yang ditentukan dalam N jam terakhir

Verifikasi Pemanggilan

Kedua endpoint ini menggunakan metode verifikasi HTTP Basic Auth, dengan menambahkan Authorization di HTTP Header:

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

            
Tampilkan blok kode ini di jendela mengambang

Algoritma pembuatan ${base64_auth_string} adalah: base64(dev_key:dev_secret).

Untuk detail lebih lanjut, silakan merujuk ke Verifikasi Pemanggilan untuk mempelajari cara melakukan autentikasi API.


Retrieve Date

Menanyakan waktu terjadinya SIM Swap terakhir untuk nomor telepon yang ditentukan.

URL Pemanggilan

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

Contoh Request

Objek request diekspresikan dalam format JSON, sehingga header request harus menyertakan Content-Type: application/json.

Header Request

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}

            
Tampilkan blok kode ini di jendela mengambang

Body Request

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

            
Tampilkan blok kode ini di jendela mengambang

Parameter Request

Parameter Tipe Opsi Keterangan
phone_number String Wajib Nomor telepon target yang akan ditanyakan, disarankan menggunakan format E.164

Parameter Response

Respons Sukses

Field Tipe Opsi Deskripsi
request_id String Wajib ID catatan permintaan saat ini
latest_sim_change String / null Wajib Waktu SIM Swap terakhir, format RFC3339; mengembalikan waktu aktivasi pertama jika kartu belum pernah diganti; bernilai null jika data tidak dapat dikembalikan karena batasan regulasi privasi

Contoh respons sukses:

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

            
Tampilkan blok kode ini di jendela mengambang

Respons Gagal

HTTP Status Code adalah 4xx atau 5xx, dan body respons berisi field berikut:

Field Tipe Opsi Deskripsi
code int Wajib Kode error, lihat penjelasan Kode Error untuk detailnya
message String Wajib Detail error

Contoh respons gagal yang umum:

Contoh parameter error:

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

            
Tampilkan blok kode ini di jendela mengambang

Contoh saldo tidak cukup:

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

            
Tampilkan blok kode ini di jendela mengambang

Contoh nomor di luar jangkauan layanan:

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

            
Tampilkan blok kode ini di jendela mengambang

Contoh kegagalan umum:

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

            
Tampilkan blok kode ini di jendela mengambang

Check

Mendeteksi apakah SIM Swap telah terjadi pada nomor telepon yang ditentukan dalam N jam terakhir.

URL Pemanggilan

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

Contoh Request

Objek request diekspresikan dalam format JSON, dan header request juga harus menyertakan Content-Type: application/json.

Header Request

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}

            
Tampilkan blok kode ini di jendela mengambang

Body Request

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

            
Tampilkan blok kode ini di jendela mengambang

Parameter Request

Parameter Tipe Opsi Keterangan
phone_number String Wajib Nomor telepon target yang akan ditanyakan, disarankan menggunakan format E.164
max_age Integer Wajib Jendela waktu pengecekan, dalam jam, rentang nilai 1 ~ 2400

Parameter Response

Respons Sukses

Field Tipe Opsi Deskripsi
request_id String Wajib ID catatan permintaan saat ini
swapped Boolean Wajib Apakah SIM Swap telah terjadi dalam jendela waktu yang ditentukan

Contoh respons sukses:

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

            
Tampilkan blok kode ini di jendela mengambang

Respons Gagal

Strukturnya sama dengan endpoint Retrieve Date. Contoh respons gagal khusus:

Parameter error (max_age di luar rentang):

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

            
Tampilkan blok kode ini di jendela mengambang

Kode Error

Kode Error HTTP Code Keterangan
1000 500 Error internal
2001 401 Autentikasi gagal, tidak menyertakan token yang benar
2002 401 Autentikasi gagal, token telah kedaluwarsa atau dinonaktifkan
2004 403 Tidak ada izin untuk memanggil API ini
3001 400 Format parameter request tidak valid, silakan periksa apakah konten JSON sesuai dengan format parameter
3002 400 Parameter request salah, silakan periksa apakah parameter request memenuhi persyaratan
3005 400 Saldo tidak cukup
5100 400 Kegagalan umum SIM Swap
5101 400 Nomor ini tidak berada dalam jangkauan layanan SIM Swap, termasuk negara, operator, dan segmen nomor yang saat ini tidak didukung, atau nomor tidak dapat dikenali
Icon Solid Transparent White Qiyu
Hubungi Sales