Langsung ke konten
iRoamly Shop

Dokumentasi API

Referensi iRoamly Shop API: autentikasi, paket, pembelian dan pengiriman, perpanjangan, serta penggunaan.

Ikhtisar

Penjelasan Dasar

Untuk menjamin keamanan informasi yang dikirim ke server, mekanisme keamanan berikut diterapkan:

  1. 1.Semua antarmuka menggunakan koneksi aman HTTPS secure.
  2. 2.AuthKey yang ditetapkan untuk Anda, digunakan untuk autentikasi API (panjang maksimal: 32 karakter).
  3. 3.AuthSecret yang ditetapkan untuk Anda, digunakan untuk membuat hash permintaan (panjang maksimal: 50 karakter).
  4. 4.Permintaan menggunakan hash SHA-256 untuk autentikasi.
Ikhtisar

Standar Antarmuka

Base Path:https://api.iroamly.shop/
Protokol Permintaan:HTTPS
Metode Permintaan:GET / POST
Format Transfer Data:application/json

Parameter Header Permintaan:

AuthKey: Kunci autentikasi pelanggan, tipe String

Certification: String berisi hash SHA-256 dari gabungan AuthKey+AuthSecret dengan urutan tersebut.

/common/getPlanItem tidak memerlukan header AuthKey atau Certification.

Endpoint API

Ambil Daftar Paket Regional

URL Permintaan:https://api.iroamly.shop/common/getPlanItem
Metode Permintaan:GET

Header AuthKey atau Certification tidak diperlukan.

Parameter Permintaan:

ParameterDeskripsiTipe
regionMenerima kode ISO2, nama negara (tidak peka huruf besar/kecil), atau format standar (mis. united-states).String

Format Respons:

Berhasil: HTTP 200. Paket dikembalikan di data.list.

Selalu mengembalikan HTTP 200. Jika tidak ada data, data.list berupa array kosong dan msg bernilai Success.

Deskripsi Field Respons:

FieldDeskripsiTipe
planNama paket (mencakup wilayah, jenis, kuota data, dan durasi).String
productCodeID paket unik untuk pembelian atau kueri.String
dataKuota data (mis. 10GB, Unlimited, 500MB).String
typeJenis paket (mis. Total, Daily, Unlimited).String
plan_typeKategori paket (mis. default).String
package_typeJenis paket layanan (mis. Data Only).String
durationMasa berlaku dalam hari (mis. 10).String
speedKecepatan jaringan (mis. 4G / 5G).String
operatorOperator yang didukung (mis. T-Mobile/AT&T).String
regionNama resmi wilayah (mis. United States).String
region_indexPengenal wilayah standar (huruf kecil dengan tanda hubung, mis. united-states).String
creditHarga paket dalam kredit (bukan USD).Float
remarkCatatan tambahan (mis. aturan pembatasan kecepatan).String
created_atStempel waktu pembuatan paket (format ISO 8601).String
Contoh Permintaan
"https://api.iroamly.shop/common/getPlanItem?region=US"
Contoh Respons
{
  "code": 0,
  "data": {
    list:[
     {
       "plan": "United States-eSIM-10GB-10 Days-Total",
       "productCode": "iRoamly-unite-584535",
       "data": "10GB",
       "type": "Total",
       "package_type": "Data Only",
       "duration": "10",
       "speed": "4G / 5G",
       "operator": "T-Mobile/AT&T",
       "region": "United States",
       "region_index": "united-states",
       "credit": 6.43,
       "remark": "After accumulating 10GB, the speed will be reduced to 128 Kbps",
       "created_at": "2025-05-16T04:02:31Z"
     }
    ]
  }
}
Endpoint API

Pembelian langsung kode QR

URL Permintaan:https://api.iroamly.shop/openapi/purchaseqrcode
Metode Permintaan:POST

Parameter Permintaan:

ParameterDeskripsiTipe
emailAlamat email untuk menerima kode QR. Jika kosong, email tidak akan dikirim.String
productListKumpulan produkObject[]

Field productList:

FieldDeskripsiTipe
planNama paket. Isi salah satu dari plan atau productCode.String
productCodeID paket (productCode dari Ambil Daftar Paket Regional). Isi salah satu dari productCode atau plan.String
quantityJumlahInt
Paket Uji:iRoamly-Test-10GB

Langkah berikutnya: Gunakan Kueri Kode QR (https://api.iroamly.shop/openapi/qrcodeQuery) untuk mendapatkan kode QR

Contoh Parameter
{
  "email": "2m827n32d@gmail.com",
  "productList": [
    {
      "plan": "United States-eSIM-10GB-10 Days-Total",
      "quantity": 2
    },
    {
      "plan": "Albania-10GB-15 Days-Total",
      "quantity": 1
    }
  ]
}
Contoh Respons
{
  "code": 1,
  "data": {
    "orderId": "Open-Global-DXDWFBKG578913",
    "redeem_list": [
      {
        "productCode": "",
        "plan": "United States-eSIM-10GB-10 Days-Total",
        "redeemCode": "tjMxpYfvk5dFMQg",
        "status": 0,
        "expire_at": "2026-03-01"
      },
      {
        "productCode": "",
        "plan": "United States-eSIM-10GB-10 Days-Total",
        "redeemCode": "gKPzYhseX1wRmSi",
        "status": 0,
        "expire_at": "2026-03-01"
      },
      {
        "productCode": "",
        "plan": "Albania-10GB-15 Days-Total",
        "redeemCode": "sLSHNkAv2ojbNBG",
        "status": 0,
        "expire_at": "2026-03-01"
      }
    ]
  },
  "msg": "success"
}
Endpoint API

Beli Kode Penukaran

URL Permintaan:https://api.iroamly.shop/openapi/purchaseCode
Metode Permintaan:POST

Parameter Permintaan:

ParameterDeskripsiTipe
emailEmailString
productListKumpulan produkObject[]

Field productList:

FieldDeskripsiTipe
planNama paket. Isi salah satu dari plan atau productCode.String
productCodeID paket (productCode dari Ambil Daftar Paket Regional). Isi salah satu dari productCode atau plan.String
quantityJumlahInt
Paket Uji:iRoamly-Test-10GB
Contoh Parameter
{
  "email": "2m827n32d@gmail.com",
  "productList": [
    {
      "plan": "United States-eSIM-10GB-10 Days-Total",
      "quantity": 2
    },
    {
      "plan": "Albania-10GB-15 Days-Total",
      "quantity": 1
    }
  ]
}
Contoh Respons
{
  "code": 1,
  "msg": "success",
  "orderId": "xxx-xxxx-sd9hn8df333" // Order number, can be used to query redeem code
}
Endpoint API

Kueri Kode Penukaran

URL Permintaan:https://api.iroamly.shop/openapi/codeQuery
Metode Permintaan:POST

Parameter Permintaan:

ParameterDeskripsiTipe
orderIdNomor pesananString
Contoh Parameter
{
  "orderId": "xxx-xxx-dh239jdu28",
}
Contoh Respons
{
  "code": 1,
  "msg": "success",
  "data": [
    {
      "productCode": "m8hed7h2fed",
      "redeemCode": "3cd2m3f23f3f3",
      "expire_at": "2024-06-30", // Expiry date
      "plan": "United States-eSIM-10GB-10 Days-Total",
      "status": 0
    },
    {
      "productCode": "v2jf28dj2w",
      "redeemCode": "d923j29ef2323",
      "expire_at": "2024-06-30",
      "plan": "Albania-10GB-15 Days-Total",
      "status": 2
    }
  ]
}
Endpoint API

Konversi ke Kode QR

(Catatan: Kode QR dikirim ke alamat email yang ditentukan setelah konversi. Batch yang lebih besar mungkin memerlukan waktu pemrosesan lebih lama.)

URL Permintaan:https://api.iroamly.shop/openapi/redeemQRcode
Metode Permintaan:POST

Parameter Permintaan:

ParameterDeskripsiTipe
emailEmailString
codeListKumpulan kode penukaranObject[]

Field productList:

FieldDeskripsiTipe
redeemCodeKode penukaranString
Contoh Parameter
{
  "email": "2m827n32d@gmail.com",
  "codeList": [
    {
      "redeemCode": "m8hed7h2fed",
    },
    {
      "redeemCode": "cn88beg9edj",
    }
  ]
}
Contoh Respons
{
  "code": 1,
  "msg": "success",
}
Endpoint API

Kueri Kode QR

URL Permintaan:https://api.iroamly.shop/openapi/qrcodeQuery
Metode Permintaan:POST

Parameter Permintaan:

ParameterDeskripsiTipe
redeemCodeKode penukaranString

Deskripsi Field Respons:

FieldDeskripsiTipe
redeemCodeKode penukaranString
qrcodeURL gambar kode QRString
statusStatus kode penukaran (lihat Definisi Status Kode Penukaran)Int
qrcode_contentIsi kode QR (string aktivasi LPA, mis. LPA:1$…)String
iscouldrenewalApakah eSIM dapat diperpanjang: 1 - dapat diperpanjang 0 - tidak dapat diperpanjangInt
Contoh Parameter
{
  "redeemCode": "m8hed7h2fed",
}
Contoh Respons
{
  "code": 1,
  "msg": "success",
  "redeemCode": "m8hed7h2fed",
  "qrcode": "https://dsfjigewafe/qrcode.jpg"
}
Endpoint API

Ambil Status Paket Perpanjangan

URL Permintaan:https://api.iroamly.shop/openapi/getRenewPlanStatus
Metode Permintaan:POST

Parameter Permintaan:

ParameterDeskripsiTipe
redeemCodeKode penukaranString

Deskripsi Field Respons:

code tingkat atas pada respons menunjukkan apakah kode penukaran dapat diperpanjang: 0 - dapat diperpanjang, -1 - tidak dapat diperpanjang. Opsi perpanjangan tercantum di data.renewList:

FieldDeskripsiTipe
renewtypeJenis perpanjangan: 0 - Aktif saat paket saat ini berakhir 1 - Aktif segera (sisa data dihapus) 2 - Aktif pada waktu yang ditentukanInt
starttimeAwal rentang waktu aktivasi opsional: waktu aktivasi paling awal yang dapat Anda pilih (jenis perpanjangan 2).String
endtimeAkhir rentang waktu aktivasi opsional: waktu aktivasi paling akhir yang dapat Anda pilih (jenis perpanjangan 2).String
Contoh Parameter
{
  "redeemCode": "3cd2m3f23f3f3",
}
Contoh Respons
{
  "code": 0,
  "data": {
    "renewList": [
      {
        "renewtype": 1,
        "starttime": "0001-01-01T00:00:00Z",
        "endtime": "0001-01-01T00:00:00Z"
      },
      {
        "renewtype": 2,
        "starttime": "2025-08-04 06:13:08",
        "endtime": "2025-09-20 14:23:51"
      }
    ],
    "lasttime": "0001-01-01T00:00:00Z"
  },
  "msg": "Success"
}
Endpoint API

Kode Perpanjangan

(Catatan: Saat memperpanjang, grup perpanjangan paket yang dipilih harus sama dengan grup perpanjangan paket asli.)

URL Permintaan:https://api.iroamly.shop/openapi/renewcode
Metode Permintaan:POST

Parameter Permintaan:

ParameterDeskripsiTipe
redeemCodeKode yang perlu diperpanjangString
planPaket PerpanjanganString
renewtypeJenis perpanjangan: 0 - Aktif saat paket saat ini berakhir 1 - Aktif segera (sisa data dihapus) 2 - Aktif pada waktu yang ditentukanInt
renewtimeTanggal dan Waktu Berlaku (wajib). Format: YYYY-MM-DDTHH:mm:ssZString
Contoh Parameter
{
  redeemCode: "DEF456UVW",
  plan: "basic_yearly",
  renewtype: 0,
  renewtime: "2024-12-31T23:59:59Z"
}
Contoh Respons
{
  code: 1,
  data: {
    orderId: "Open-Global-DXDWFBKG578913",
    plan: "United States-eSIM-10GB-10 Days-Total",
    redeemCode: "tjMxpYfvk5dFMQg",
    status: 0,
    expire_at: "2026-03-01"
  },
  msg: "success"
}
Endpoint API

Ambil Statistik Paket

URL Permintaan:https://api.iroamly.shop/openapi/getnetworkflow
Metode Permintaan:GET

Parameter Permintaan:

ParameterDeskripsiTipe
redeemCodeKode penukaran yang akan dikueri.String

Deskripsi Field Respons:

ParameterDeskripsiTipe
status0 - Tidak aktif 1 - Aktif 2 - Kedaluwarsa 9 - Tidak validInt
flow_useData yang digunakan dalam siklus tagihan (dalam MB)String
flow_totalTotal data dalam siklus tagihan (dalam MB, atau unlimited)String
start_dataWaktu mulai paketString
end_dataWaktu berakhir paketString
installDevicePerangkat terpasangString
installCountJumlah pemasanganString
installTimeWaktu pemasanganString
Contoh Valid
{
  code: 1,
  status: 0,
  flow_use: "300",
  flow_total: "1024",
  start_data: "2025-10-25T15:04:05Z07:00",
  end_data: "2025-11-25T15:04:05Z07:00",
  installDevice: "iPhone 15",
  installCount: "1",
  installTime: "2025-10-25T15:04:05Z06:00"
}
Contoh Tidak Valid
{
  code: -1,
  msg: "error message"
}
Definisi

Definisi Kode Status Respons

KodeDeskripsi
1Berhasil
2Autentikasi parameter permintaan gagal
3Parameter tidak diberikan sesuai ketentuan
4Kode produk tidak ada
5Kredit tidak cukup
6Kode penukaran tidak ada
7Kode penukaran sudah ditukarkan atau tidak ada
-1Permintaan gagal

Berhasil ditandai dengan code 1, kecuali /common/getPlanItem dan /openapi/getRenewPlanStatus, yang mengembalikan code 0 jika berhasil.

Definisi

Definisi Status Kode Penukaran

StatusDeskripsi
0Belum ditukarkan
1Sedang ditukarkan
2Sudah ditukarkan
3Penukaran gagal
Referensi Kode

Beli Kode Penukaran (Python)

python
import requests
import json
import hashlib

# URL for the request
url = "https://api.iroamly.shop/openapi/purchaseCode"

# Provided AuthKey and AuthSecret, remember to replace them with real values
auth_key = "YOUR_AUTH_KEY_HERE"
auth_secret = "YOUR_AUTH_SECRET_HERE" 


# Calculating Certification
combined = auth_key + auth_secret
certification = hashlib.sha256(combined.encode()).hexdigest()

# Header parameters for the request
headers = {
    "Content-Type": "application/json",
    "AuthKey": auth_key,
    "Certification": certification
}

# Example data for the request body
data = {
    "email": "2m827n32d@gmail.com",
    "productList": [
        {
            "productCode": "m8hed7h2fed2398dsnh",
            "quantity": 2
        },
        {
            "productCode": "cn88beg9edjdfj2sj0a",
            "quantity": 1
        }
    ]
}

# Sending POST request
response = requests.post(url, headers=headers, data=json.dumps(data))

# Printing the response content
print(response.text)

# Example of response
{
    "code":1,
    "msg":"success",
    "orderId":"xxx-xxxx-sd9hn8df333"
}
Referensi Kode

Kueri Kode Penukaran (Python)

python
import requests
import json
import hashlib

# URL for the request
url = "https://api.iroamly.shop/openapi/codeQuery"

# Provided AuthKey and AuthSecret, remember to replace them with real values
auth_key = "YOUR_AUTH_KEY_HERE"
auth_secret = "YOUR_AUTH_SECRET_HERE" 


# Calculating Certification
combined = auth_key + auth_secret
certification = hashlib.sha256(combined.encode()).hexdigest()

# Header parameters for the request
headers = {
    "Content-Type": "application/json",
    "AuthKey": auth_key,
    "Certification": certification
}

# Example data for the request body
data = {
    "orderId":"xxx-xxx-dh239jdu28"
}

# Sending POST request
response = requests.post(url, headers=headers, data=json.dumps(data))

# Printing the response content
print(response.text)

# Example of response
{
 "code":1,
 "data":
    [
     {"productCode":"m8hed7h2fed2398dsnh","redeemCode":"nDb4TDCn6vMhbQv","status":0,"expire_at":"2024-07-04"},
     {"productCode":"m8hed7h2fed2398dsnh","redeemCode":"oA7AWAmo76BwoGj","status":0,"expire_at":"2024-07-04"},
     {"productCode":"cn88beg9edjdfj2sj0a","redeemCode":"XRdDeSxBVNbvCpU","status":0,"expire_at":"2024-07-04"}
    ],
 "msg":"success"
}
Referensi Kode

Konversi ke Kode QR (Python)

python
import requests
import json
import hashlib

# URL for the request
url = "https://api.iroamly.shop/openapi/redeemQRcode"

# Provided AuthKey and AuthSecret, remember to replace them with real values
auth_key = "YOUR_AUTH_KEY_HERE"
auth_secret = "YOUR_AUTH_SECRET_HERE" 


# Calculating Certification
combined = auth_key + auth_secret
certification = hashlib.sha256(combined.encode()).hexdigest()

# Header parameters for the request
headers = {
    "Content-Type": "application/json",
    "AuthKey": auth_key,
    "Certification": certification
}

# Example data for the request body
data = {
    "email": "2m827n32d@gmail.com",
    "codeList": [
        {
            "redeemCode": "nDb4TDCn6vMhbQv",
        },
        {
            "redeemCode": "XRdDeSxBVNbvCpU",
        }
    ]
}

# Sending POST request
response = requests.post(url, headers=headers, data=json.dumps(data))

# Printing the response content
print(response.text)

# Example of response
{"code":1,"msg":"success"}
Referensi Kode

Kueri Kode QR (Python)

python
import requests
import json
import hashlib

# URL for the request
url = "https://api.iroamly.shop/openapi/qrcodeQuery"

# Provided AuthKey and AuthSecret, remember to replace them with real values
auth_key = "YOUR_AUTH_KEY_HERE"
auth_secret = "YOUR_AUTH_SECRET_HERE" 


# Calculating Certification
combined = auth_key + auth_secret
certification = hashlib.sha256(combined.encode()).hexdigest()

# Header parameters for the request
headers = {
    "Content-Type": "application/json",
    "AuthKey": auth_key,
    "Certification": certification
}

# Example data for the request body
data = {
    "redeemCode":"XRdDeSxBVNbvCpU"
}

# Sending POST request
response = requests.post(url, headers=headers, data=json.dumps(data))

# Printing the response content
print(response.text)

# Example of response
{
 "code":1,
 "qrcode":"https:/code.tokyoesim.com/20231220/1703048857317.65625d0a779f4598d55d77bda43ecd80.png",
 "msg":"success",
 "redeemCode":"XRdDeSxBVNbvCpU"
}