Dokumentasi API

API Reseller GMJ Roaming

Domain API : https://api.gmjroaming.com

Untuk dapat mengakses API GMJ Roaming sebagai Reseller, ikuti langkah-langkah berikut:

1. Membuat Akun Reseller

Langkah pertama adalah mendaftar untuk akun reseller melalui dashboard GMJ Roaming. Kunjungi console.gmjroaming.com untuk melakukan registrasi. Pastikan data yang Anda masukkan benar dan lengkap agar proses pendaftaran berjalan lancar.

2. Login dan Masuk ke Menu Developer

Setelah akun Anda berhasil dibuat, silakan login menggunakan kredensial yang sudah didaftarkan. Setelah login, navigasikan ke menu Developer yang tersedia di dashboard untuk memperoleh informasi terkait kunci API yang diperlukan untuk mengakses berbagai fitur API.

3. Melakukan Pembayaran untuk Aktivasi eSIM

Untuk mulai menggunakan layanan eSIM, Anda perlu melakukan pembayaran untuk aktivasi eSIM yang sesuai dengan paket yang Anda pilih. Pembayaran ini harus diselesaikan sebelum Anda dapat menggunakan fitur API yang berkaitan dengan pengelolaan eSIM.

Setelah langkah-langkah tersebut selesai, Anda dapat mengakses API GMJ Roaming melalui endpoint yang tersedia di api. Untuk informasi lebih lanjut tentang cara menggunakan API, Anda dapat mengacu pada dokumentasi ini yang menyediakan panduan lengkap mengenai setiap endpoint dan cara penggunaannya.

Profile

Kategori User berfokus pada manajemen data pengguna, termasuk mengambil informasi profil pengguna dan memperbarui data pengguna. API ini memungkinkan reseller untuk mengelola informasi profil mereka dengan mudah, memastikan data yang digunakan dalam transaksi atau operasi API lainnya tetap akurat dan terkini.

Endpoint yang Tersedia:

1. GET /api/v1/user

Endpoint ini digunakan untuk mengambil informasi profil pengguna yang terdaftar. Dengan menggunakan API ini, Anda dapat memverifikasi dan menampilkan data terkait akun reseller seperti nama, email, dan informasi penting lainnya.

2. POST /api/v1/update-user

Endpoint ini memungkinkan reseller untuk memperbarui informasi profil mereka. Anda dapat memperbarui data seperti nama dan email yang terdaftar di akun reseller, memastikan informasi yang tersedia di dashboard dan API selalu sesuai dengan data terbaru.

get_profile

GET/api/v1/user

Endpoint ini digunakan untuk mengambil informasi profil pengguna yang sedang login.

Header:

Nama Header Tipe Deskripsi
x-api-key String Kunci API untuk otorisasi akses ke API

Response Success (200):

  {
    "status": "success",
    "code": 200,
    "messages": "Berhasil mengambil data user",
    "data": {
      "name": "GMJ Roaming",
      "email": "email",
      "image": "https://console.gmjroaming.com/lorem.jpg",
      "join_date": "2025-01-11",
      "balance": 0.41,
      "access_code": "lorem-ipsum",
      "created_at": "2025-01-11T02:16:36.000000Z",
      "updated_at": "2025-07-02T18:12:47.000000Z",
      "phone": null
    }
  }

Response Success (200):

{
    "message": "Invalid API key"
}

Catatan:

- Pastikan untuk menyertakan header x-api-key yang valid untuk otorisasi.

update_profile

POST/api/v1/update-user

Endpoint ini digunakan untuk memperbarui informasi profil pengguna, seperti nama, email, nomor telepon, dan password. Field name dan email bersifat wajib.

Header:

Nama Header Tipe Deskripsi
x-api-key String Kunci API untuk otorisasi akses ke API

Body:

Body permintaan harus menggunakan format form-data dan dapat berisi field berikut:

Nama Field Tipe Deskripsi Wajib
name String Nama pengguna yang baru. Ya
email String Alamat email pengguna yang baru Ya
phone String Nomor telepon pengguna yang baru Tidak
password String Password baru untuk pengguna. tidak

Response Success (200):

{
    "status": "success",
    "code": 200,
    "message": "Data pengguna berhasil diperbarui.",
    "data": {
    "name": "Lorem Ipsum",
    "email": "email",
    "image": "https://console.gmjroaming.com/lorem.jpg",
    "join_date": "2025-01-11",
    "balance": 0.41,
    "access_code": "lorem-ipsum",
    "created_at": "2025-01-11T02:16:36.000000Z",
    "updated_at": "2025-07-02T19:22:49.000000Z",
    "phone": null
    }
}

Response Error (422):

                            {
"status": "error",
"code": 422,
"message": "Validasi gagal. Harap periksa input Anda.",
"errors": {
    "name": [
    "The name field is required."
    ],
    "email": [
    "The email field is required."
    ]
    }
    }

Catatan:

- name dan email adalah field yang wajib ada dalam permintaan ini.

- Jika field phone atau password tidak ingin diperbarui, Anda dapat mengabaikannya dalam body permintaan.

- Format email yang tidak valid akan menyebabkan error dengan status 422.

eSIM Store

Kategori eSIM Store menyediakan berbagai endpoint yang memungkinkan pengguna untuk mengelola layanan eSIM, mulai dari mendapatkan daftar eSIM yang tersedia, memilih paket top-up yang sesuai, hingga melakukan top-up dan checkout eSIM. Folder ini memberikan solusi efisien bagi reseller eSIM untuk mengakses dan mengelola berbagai layanan terkait eSIM dengan API yang aman dan mudah diintegrasikan.

Endpoint yang Tersedia:

1. GET /api/v1/list-esim

Endpoint ini digunakan untuk mengambil daftar eSIM yang tersedia berdasarkan kode lokasi negara. Dengan menggunakan API ini, Anda dapat mendapatkan berbagai pilihan eSIM yang dapat dibeli berdasarkan lokasi geografis, seperti Indonesia, Malaysia, Singapura, dan negara lainnya. Data yang diambil mencakup informasi paket eSIM, harga, masa berlaku, dan lainnya.

2. GET /api/v1/list-topupdataplan

Endpoint ini digunakan untuk mengambil daftar rencana top-up data yang tersedia untuk eSIM berdasarkan ICCID. API ini memungkinkan reseller untuk melihat berbagai pilihan paket data tambahan yang dapat ditambahkan ke eSIM yang sudah terdaftar, memberikan fleksibilitas dalam memilih paket sesuai kebutuhan pelanggan.

3. POST /api/v1/topup-esim

Endpoint ini digunakan untuk melakukan top-up pada eSIM dengan memilih paket data tertentu. Dengan API ini, Anda dapat melakukan transaksi top-up secara langsung untuk eSIM yang sudah terdaftar, dengan memasukkan ICCID, kode paket top-up, dan informasi transaksi lainnya. Proses top-up akan mengisi ulang kuota atau layanan data yang tersedia pada eSIM yang bersangkutan.

4. POST /api/v1/checkout

Endpoint ini digunakan untuk melakukan checkout pembelian paket eSIM. Dengan menggunakan API ini, Anda dapat melakukan pembelian dan memproses transaksi untuk berbagai paket eSIM yang tersedia. Pembayaran dapat dilakukan dengan memilih paket yang diinginkan dan menentukan jumlahnya, sehingga memudahkan proses transaksi untuk reseller dan pelanggan.

get_list_esim

GET/api/v1/list-esim

Endpoint ini digunakan untuk mengambil daftar eSIM yang tersedia berdasarkan kode lokasi negara yang disertakan dalam permintaan. Kode lokasi harus menggunakan format Alpha-2 (misalnya, "ID" untuk Indonesia, "MY" untuk Malaysia, "SG" untuk Singapura, dll.).

Header:

Nama Header Tipe Deskripsi
x-api-key String Kunci API untuk otorisasi akses ke API

Body (raw):

{
    "locationCode": "ID"
}

Response Success (200):

{
"status": "success",
"code": 200,
"message": "Data paket berhasil diambil.",
"data": [
{
    "is_favorite": false,
    "packageCode": "JC056",
    "slug": "ID_1_7",
    "name": "Indonesia 1GB 7Days",
    "currencyCode": "USD",
    "priceUsd": "0.80",
    "priceRaw": 8000,
    "volume": 1073741824,
    "smsStatus": 2,
    "dataType": 1,
    "unusedValidTime": 180,
    "duration": 7,
    "durationUnit": "DAY",
    "location": "ID",
    "description": "Indonesia 1GB 7Days",
    "activeType": 2,
    "speed": "3G/4G/5G",
    "ipExport": "HK",
    "supportTopUpType": 2,
    "fupPolicy": "",
    "locationNetworkList": [
    {
        "locationName": "Indonesia",
        "locationLogo": "https://static.redteago.com/img/flags/id.png",
        "locationCode": "ID",
        "operatorList": [
        {
            "operatorName": "Telkomsel",
            "networkType": "5G"
        }
        ]
    }
    ]
}
]
}

Response Error (404):

  {
    "status": "error",
    "code": 404,
    "message": "Paket tidak ditemukan atau gagal mengambil data dari API."
  }

Response Error (400):

  {
    "status": "error",
    "code": 400,
    "message": "locationCode tidak diinputkan."
  }

Catatan:

- Pastikan untuk menyertakan header x-api-key yang valid untuk otorisasi.

- locationCode harus menggunakan format kode negara Alpha-2 yang valid.

- Jika Anda tidak menyertakan locationCode atau mengirimkan kode negara yang tidak valid, API akan merespons dengan error 400.

get_list_topup_dataplan

GET/api/v1/list-topupdataplan

Endpoint ini digunakan untuk mengambil daftar rencana top-up data yang tersedia untuk eSIM berdasarkan kode ICCID (Integrated Circuit Card Identifier) yang disertakan dalam permintaan. Kode ICCID adalah kode unik untuk setiap eSIM.

Header:

Nama Header Tipe Deskripsi
x-api-key String Kunci API untuk otorisasi akses ke API

Body (raw):

{
    "iccid": "898520002632139934500"
}

Response Success (200):

{
    "status": "success",
    "code": 200,
    "message": "Data top-up paket berhasil diambil.",
    "data": [
    {
        "packageCode": "TOPUP_JC056",
        "name": "Indonesia 1GB 7Days",
        "currency_code": "USD",
        "priceUsd": "0.80",
        "priceRaw": 8000,
        "location": "ID",
        "volume": 1073741824,
        "duration": 7,
        "durationUnit": "DAY",
        "country": "Indonesia",
        "locationNetworkList": [
        {
            "locationName": "Indonesia",
            "locationCode": "ID",
            "operatorList": [
            {
                "operatorName": "Telkomsel",
                "networkType": "5G"
            }
            ]
        }
        ]
    }
    ]
}

Catatan:

- Pastikan untuk menyertakan header x-api-key yang valid untuk otorisasi.

- iccid harus disertakan dalam permintaan dan memiliki format yang valid.

topup_dataplan

GET/api/v1/topup-esim

Endpoint ini digunakan untuk melakukan top-up pada eSIM dengan menggunakan data yang diperoleh dari endpoint lainnya seperti /api/v1/myesim dan /api/v1/list-topupdataplan.

Header:

Nama Header Tipe Deskripsi
x-api-key String Kunci API untuk otorisasi akses ke API

Body:

Body permintaan harus menggunakan format form-data dan berisi parameter berikut:

Nama Field Tipe Deskripsi Wajib
iccid String Kode unik eSIM yang didapatkan dari endpoint /api/v1/myesim Ya
packageCodeTopup String Kode paket top-up yang didapatkan dari endpoint /api/v1/list-topupdataplan (contoh: TOPUP_JC057). Ya
esimTranNo String esimTranNo didapatkan dari endpoint /api/v1/myesim. Ya
transaction_id String ID transaksi yang didapatkan dari endpoint /api/v1/myesim. Ya

Response Success (200):

{
    "status": "success",
    "code": 200,
    "message": "Top-up berhasil",
    "currency": "USD",
    "current_balance": "9.20",
    "transaction_id": "trx-dataplan-9999-Lorem",
    "data": {
    "id": 24622,
    "esim_tran_no": "25062711160008",
    "order_no": "B25062711160008",
    "transaction_id": "trx-esim-99999-2JSI",
    "imsi": "454006321394930",
    "iccid": "898520002632234230",
    "sms_status": 2,
    "msisdn": "852196321394930",
    "ac": "LPA:1$rsp-eu.simlessly.com$E7A6D7CDE916435A87D9C799BA18F5E9",
    "qr_code_url": "https://p.qrsim.net/66530067c8424fa58ece2cc4f5cf39c9.png",
    "short_url": "https://p.qrsim.net/66530067c8424fa58ece2cc4f5cf39c9",
    "smdp_status": "ENABLED",
    "eid": "89049032004008882600008966517213",
    "active_type": 2,
    "data_type": 1,
    "activate_time": "2025-06-27 19:29:36",
    "expired_time": "2025-08-15 19:29:36",
    "total_volume": 7516192768,
    "remain": 1073741824,
    "total_duration": 49,
    "duration_unit": "DAY",
    "order_usage": 333766,
    "esim_status": "IN_USE",
    "pin": "2763",
    "puk": "93441545",
    "apn": "mobile",
    "ip_export": "HK",
    "support_top_up_type": 2,
    "send_user": null,
    "created_at": "2025-06-27T11:16:29.000000Z",
    "updated_at": "2025-07-02T20:45:39.000000Z"
    }
}

Response Success (200):

- Pastikan untuk menyertakan header x-api-key yang valid untuk otorisasi.

- Data untuk iccid, packageCodeTopup, esimTranNo, dan transaction_id harus diambil dari endpoint lain seperti /api/v1/myesim dan /api/v1/list-topupdataplan.

- Jika salah satu dari parameter yang diperlukan tidak disertakan atau salah format, API akan merespons dengan error.

checkout_esim

GET/api/v1/checkout

Endpoint ini digunakan untuk melakukan checkout untuk pembelian paket eSIM yang tersedia. Paket yang akan dibeli dapat dipilih berdasarkan packageCode yang didapatkan dari endpoint /api/v1/list-esim.

Header:

Nama Header Tipe Deskripsi
x-api-key String Kunci API untuk otorisasi akses ke API

Body (raw):

[
    {
    "packageCode": "JC056",
    "count": 1
    },
    {
    "packageCode": "JC057",
    "count": 1
    }
]

Response Success (200):

{
    "status": "success",
    "message": "Checkout successful",
    "currency": "USD",
    "current_balance": "0.41",
    "transaction_id": "trx-esim-18-lA0N9"
}

Catatan:

- Pastikan untuk menyertakan header x-api-key yang valid untuk otorisasi.

- packageCode yang digunakan dalam permintaan ini diambil dari endpoint /api/v1/list-esim, dan hanya kode yang valid yang akan diterima oleh API.

- Jangan lupa untuk menyertakan count yang menunjukkan jumlah paket yang ingin dibeli.

My eSIM

Kategori My eSIM menyediakan endpoint-endpoint yang memungkinkan pengguna untuk mengelola status eSIM mereka, termasuk mendapatkan informasi terkait eSIM, membatalkan, menangguhkan, mengaktifkan kembali, atau mencabut eSIM yang telah terdaftar. Dengan menggunakan API ini, reseller dan pengguna dapat dengan mudah mengelola layanan eSIM secara langsung, melakukan pemeliharaan dan pembaruan status sesuai kebutuhan.

Endpoint yang Tersedia:

1. POST /api/v1/myesim

Endpoint ini digunakan untuk mengambil detail eSIM pengguna dengan berbagai filter. Anda dapat memfilter data berdasarkan ICCID, status eSIM, nama paket, dan ID transaksi. API ini memberikan informasi lengkap tentang status eSIM yang dimiliki, termasuk status penggunaannya, masa berlaku, dan paket yang terpasang.

2. POST /api/v1/cancel-esim

Endpoint ini digunakan untuk membatalkan eSIM yang terdaftar berdasarkan ICCID, ID transaksi, dan kode paket. Dengan API ini, reseller dapat membatalkan eSIM yang tidak lagi digunakan atau yang perlu dihentikan layanannya, memastikan bahwa data terkait eSIM tidak aktif lagi dalam sistem.

3. POST /api/v1/suspend

Endpoint ini digunakan untuk menangguhkan (suspend) eSIM yang terdaftar. API ini memungkinkan reseller untuk menangguhkan layanan eSIM untuk sementara waktu berdasarkan ICCID dan ID transaksi. Penangguhan dapat dilakukan dengan mudah, memberi waktu untuk melakukan verifikasi atau pengelolaan lebih lanjut sebelum eSIM diaktifkan kembali.

4. POST /api/v1/unsuspend

Endpoint ini digunakan untuk mengaktifkan kembali eSIM yang sebelumnya ditangguhkan. API ini memungkinkan reseller untuk mengaktifkan kembali layanan eSIM dengan cepat, sehingga pelanggan dapat kembali menggunakan layanan data dan fitur eSIM yang telah dihentikan sementara.

5. POST /api/v1/revoke

Endpoint ini digunakan untuk mencabut (revoke) eSIM yang terdaftar, menghapus akses dan layanan terkait eSIM tersebut. API ini memungkinkan reseller untuk mencabut eSIM dari sistem, sehingga eSIM tidak lagi aktif atau terhubung dengan layanan data atau komunikasi lainnya.

get_my_esim

POST/api/v1/myesim

Endpoint ini digunakan untuk mengambil data eSIM pengguna dengan filter tertentu, seperti berdasarkan ICCID, status eSIM, nama paket, atau ID transaksi. Pengguna dapat menggunakan parameter filter untuk mendapatkan data eSIM yang spesifik sesuai kebutuhan.

Header:

Nama Header Tipe Deskripsi
x-api-key String Kunci API untuk otorisasi akses ke API

Body (form-data):

Body permintaan harus menggunakan format form-data dan berisi parameter berikut:

Nama Field Tipe Deskripsi Wajib
iccid String Kode unik eSIM yang digunakan untuk mengidentifikasi eSIM (ICCID). Tidak
esim_status String Status eSIM yang ingin difilter. Nilai yang dapat digunakan adalah: IN_USE, USED_UP, CANCEL, GOT_RESOURCE, USED_EXPIRED, REVOKED, SUSPENDED. Tidak
package_name String Nama paket eSIM yang ingin difilter (contoh: "Indonesia 1GB 7Days"). Tidak
transaction_id String ID transaksi yang ingin difilter. Tidak

Response Success (200):

{
    "status": "success",
    "code": 200,
    "message": "Data eSIM berhasil diambil.",
    "data": [
    {
        "esimTranNo": "2506271550234008",
        "orderNo": "B25062715500006",
        "transactionId": "trx-esim-18-V8ydz",
        "imsi": "454006321382856",
        "iccid": "89852000938473213828561",
        "smsStatus": 2,
        "msisdn": "852196321382856",
        "ac": "LPA:1$rsp-eu.simlessly.com$4EDF70A5ECF040CF9C287546838E1F44",
        "qrCodeUrl": "https://p.qrsim.net/ef1def4e990040f0bf86118dd4b97adc.png",
        "shortUrl": "https://p.qrsim.net/ef1def4e990040f0bf86118dd4b97adc",
        "smdpStatus": "RELEASED",
        "eid": "",
        "activeType": 2,
        "dataType": 1,
        "activateTime": null,
        "expiredTime": "2025-12-24 22:50:17",
        "timeRemaining": "21 Jam",
        "totalVolume": 3221225472,
        "totalDuration": 15,
        "durationUnit": "DAY",
        "orderUsage": 0,
        "esimStatus": "CANCEL",
        "pin": "5154",
        "puk": "50473615",
        "apn": "mobile",
        "ipExport": "HK",
        "supportTopUpType": 2,
        "sendUser": null,
        "packageList": [
        {
            "packageName": "Indonesia 3GB 15Days",
            "packageCode": "JC057",
            "slug": "ID_3_15",
            "duration": 15,
            "volume": 3221225472,
            "locationCode": "ID",
            "createTime": "2025-06-27 22:50:13"
        }
        ]
    }
    ],
    "current_page": 1,
    "per_page": 20,
    "total_pages": 1,
    "next_page_url": null,
    "prev_page_url": null,
    "links": [
    {
        "url": null,
        "label": "« Previous",
        "active": true
    },
    {
        "url": "https://api.gmjroaming.com/api/v1/myesim?page=1",
        "label": "1",
        "active": true
    },
    {
        "url": null,
        "label": "Next »",
        "active": false
    }
    ]
}

Response Success (200):

- Pastikan untuk menyertakan header x-api-key yang valid untuk otorisasi.

- Semua filter bersifat opsional, jadi Anda dapat memilih untuk menggunakan satu atau beberapa filter dalam permintaan.

- Jika tidak ada data yang sesuai dengan filter yang diberikan, respons akan mengembalikan array kosong [] dalam field data.

- esim_status: Status eSIM, yang dapat berupa:

1. IN_USE: Digunakan

2. USED_UP: Habis

3. CANCEL: Dibatalkan

4. GOT_RESOURCE: Baru

5. USED_EXPIRED: Expired

6. REVOKED: Dihapus

7. SUSPENDED: Ditangguhkan

cancel_esim

POST/api/v1/cancel-esim

Endpoint ini digunakan untuk membatalkan eSIM berdasarkan informasi yang diberikan, seperti ICCID, ID transaksi, dan kode paket. Semua data yang dibutuhkan pada field endpoint dapat diperoleh dari endpoint /api/v1/myesim, esim yang dicancel maka akan ada pengembalian saldo pada akun anda.

Header:

Nama Header Tipe Deskripsi
x-api-key String Kunci API untuk otorisasi akses ke API

Body (form-data):

Body permintaan harus menggunakan format form-data dan berisi parameter berikut:

Nama Field Tipe Deskripsi Wajib
iccid String Kode unik eSIM yang didapatkan dari endpoint /api/v1/myesim. Ya
transaction_id String ID transaksi yang didapatkan dari endpoint /api/v1/myesim. Ya
package_code String Kode paket eSIM yang didapatkan dari endpoint /api/v1/myesim. Ya

Response Success (200):

{
    "status": "success",
    "code": 200,
    "message": "eSIM berhasil dibatalkan. Saldo telah dikembalikan.",
    "currency": "USD",
    "current_balance": "11.20",
    "data": {
    "esim_tran_no": "25070218120007",
    "order_no": "B25070218120006",
    "transaction_id": "trx-esim-18-lA0N9",
    "imsi": "454006321372416",
    "iccid": "8985202340263213724166",
    "sms_status": 2,
    "msisdn": "852196321372416",
    "ac": "LPA:1$rsp-eu.simlessly.com$CEC29E9C3D91417A9593053BE4C083CA",
    "qr_code_url": "https://p.qrsim.net/d26caf87645943c19967f50520ce4184.png",
    "short_url": "https://p.qrsim.net/d26caf87645943c19967f50520ce4184",
    "smdp_status": "RELEASED",
    "eid": "",
    "active_type": 2,
    "data_type": 1,
    "activate_time": null,
    "expired_time": "2025-12-30 01:12:47",
    "total_volume": 3221225472,
    "remain": 3221225472,
    "total_duration": 15,
    "duration_unit": "DAY",
    "order_usage": 0,
    "esim_status": "CANCEL",
    "pin": "3191",
    "puk": "66070026",
    "apn": "mobile",
    "ip_export": "HK",
    "support_top_up_type": 2,
    "send_user": null,
    "created_at": "2025-07-02T18:12:48.000000Z",
    "updated_at": "2025-07-02T21:17:58.000000Z"
    }
}

Catatan:

- Pastikan untuk menyertakan header x-api-key yang valid untuk otorisasi.

- Data untuk iccid, transaction_id, dan package_code dapat diperoleh dari endpoint /api/v1/myesim.

- Semua parameter yang disebutkan di atas adalah wajib disertakan dalam permintaan untuk pembatalan eSIM.

suspend_esim

POST/api/v1/suspend

Endpoint ini digunakan untuk menangguhkan (suspend) eSIM berdasarkan informasi yang diberikan, seperti ICCID dan ID transaksi. Data yang dibutuhkan untuk kedua field tersebut dapat diperoleh dari endpoint /api/v1/myesim.

Header:

Nama Header Tipe Deskripsi
x-api-key String Kunci API untuk otorisasi akses ke API

Body (form-data):

Body permintaan harus menggunakan format form-data dan berisi parameter berikut:

Nama Field Tipe Deskripsi Wajib
iccid String Kode unik eSIM yang didapatkan dari endpoint /api/v1/myesim. Ya
transaction_id String ID transaksi yang didapatkan dari endpoint /api/v1/myesim. Ya

Response Success (200):

{
    "status": "success",
    "code": 200,
    "message": "eSIM berhasil ditangguhkan.",
    "data": {
    "esim_tran_no": "25062711160008",
    "order_no": "B25062711160008",
    "transaction_id": "trx-esim-18-2YM3I",
    "imsi": "454006321394930",
    "iccid": "89852000263213949300",
    "sms_status": 2,
    "msisdn": "852196321394930",
    "ac": "LPA:1$rsp-eu.simlessly.com$E7A6D7CDE916435A87D9C799BA18F5E9",
    "qr_code_url": "https://p.qrsim.net/66530067c8424fa58ece2cc4f5cf39c9.png",
    "short_url": "https://p.qrsim.net/66530067c8424fa58ece2cc4f5cf39c9",
    "smdp_status": "ENABLED",
    "eid": "89049032004008882600008966517213",
    "active_type": 2,
    "data_type": 1,
    "activate_time": "2025-06-27 19:29:36",
    "expired_time": "2025-08-15 19:29:36",
    "total_volume": 7516192768,
    "remain": 1073741824,
    "total_duration": 49,
    "duration_unit": "DAY",
    "order_usage": 333766,
    "esim_status": "SUSPENDED",
    "pin": "2763",
    "puk": "93441545",
    "apn": "mobile",
    "ip_export": "HK",
    "support_top_up_type": 2,
    "send_user": null,
    "created_at": "2025-06-27T11:16:29.000000Z",
    "updated_at": "2025-07-02T21:22:50.000000Z"
    }
}

Catatan:

- Pastikan untuk menyertakan header x-api-key yang valid untuk otorisasi.

- Data untuk iccid dan transaction_id dapat diperoleh dari endpoint /api/v1/myesim.

- Semua parameter yang disebutkan di atas adalah wajib disertakan dalam permintaan untuk suspend eSIM.

unsuspend_esim

POST/api/v1/unsuspend

Endpoint ini digunakan untuk membatalkan Penangguhan (unsuspend) eSIM berdasarkan informasi yang diberikan, seperti ICCID dan ID transaksi. Data yang dibutuhkan untuk kedua field tersebut dapat diperoleh dari endpoint /api/v1/myesim.

Header:

Nama Header Tipe Deskripsi
x-api-key String Kunci API untuk otorisasi akses ke API

Body (form-data):

Body permintaan harus menggunakan format form-data dan berisi parameter berikut:

Nama Field Tipe Deskripsi Wajib
iccid String Kode unik eSIM yang didapatkan dari endpoint /api/v1/myesim. Ya
transaction_id String ID transaksi yang didapatkan dari endpoint /api/v1/myesim. Ya

Response Success (200):

{
    "status": "success",
    "code": 200,
    "message": "eSIM berhasil dibatalkan penangguhannya.",
    "data": {
    "esim_tran_no": "25062711160008",
    "order_no": "B25062711160008",
    "transaction_id": "trx-esim-18-2YM3I",
    "imsi": "454006321394930",
    "iccid": "89852000263213949300",
    "sms_status": 2,
    "msisdn": "852196321394930",
    "ac": "LPA:1$rsp-eu.simlessly.com$E7A6D7CDE916435A87D9C799BA18F5E9",
    "qr_code_url": "https://p.qrsim.net/66530067c8424fa58ece2cc4f5cf39c9.png",
    "short_url": "https://p.qrsim.net/66530067c8424fa58ece2cc4f5cf39c9",
    "smdp_status": "ENABLED",
    "eid": "89049032004008882600008966517213",
    "active_type": 2,
    "data_type": 1,
    "activate_time": "2025-06-27 19:29:36",
    "expired_time": "2025-08-15 19:29:36",
    "total_volume": 7516192768,
    "remain": 1073741824,
    "total_duration": 49,
    "duration_unit": "DAY",
    "order_usage": 333766,
    "esim_status": "IN_USE",
    "pin": "2763",
    "puk": "93441545",
    "apn": "mobile",
    "ip_export": "HK",
    "support_top_up_type": 2,
    "send_user": null,
    "created_at": "2025-06-27T11:16:29.000000Z",
    "updated_at": "2025-07-02T21:22:50.000000Z"
    }
}

Catatan:

- Pastikan untuk menyertakan header x-api-key yang valid untuk otorisasi.

- Data untuk iccid dan transaction_id dapat diperoleh dari endpoint /api/v1/myesim.

- Semua parameter yang disebutkan di atas adalah wajib disertakan dalam permintaan untuk unsuspend eSIM.

revoke_esim

POST/api/v1/revoke

Endpoint ini digunakan untuk mencabut (revoke) eSIM yang telah diaktifkan sebelumnya berdasarkan informasi yang diberikan, seperti ICCID dan ID transaksi. Data yang dibutuhkan untuk kedua field tersebut dapat diperoleh dari endpoint /api/v1/myesim.

Header:

Nama Header Tipe Deskripsi
x-api-key String Kunci API untuk otorisasi akses ke API

Body (form-data):

Body permintaan harus menggunakan format form-data dan berisi parameter berikut:

Nama Field Tipe Deskripsi Wajib
iccid String Kode unik eSIM yang didapatkan dari endpoint /api/v1/myesim. Ya
transaction_id String ID transaksi yang didapatkan dari endpoint /api/v1/myesim. Ya

Response Success (200):

{
    "status": "success",
    "code": 200,
    "message": "eSIM berhasil dihapus.",
    "data": {
    "esim_tran_no": "25062913450008",
    "order_no": "B25062913450007",
    "transaction_id": "trx-esim-18-fHFm0",
    "imsi": "454006321385470",
    "iccid": "89852000263213854708",
    "sms_status": 2,
    "msisdn": "852196321385470",
    "ac": "LPA:1$rsp-eu.simlessly.com$E1592E38219A47D28235E4191F04EA30",
    "qr_code_url": "https://p.qrsim.net/f999928bc3d3425e8f514e094c6c167f.png",
    "short_url": "https://p.qrsim.net/f999928bc3d3425e8f514e094c6c167f",
    "smdp_status": "RELEASED",
    "eid": "",
    "active_type": 2,
    "data_type": 1,
    "activate_time": null,
    "expired_time": "2025-12-26 20:45:12",
    "total_volume": 1073741824,
    "remain": 1073741824,
    "total_duration": 7,
    "duration_unit": "DAY",
    "order_usage": 0,
    "esim_status": "REVOKED",
    "pin": "0047",
    "puk": "09297279",
    "apn": "mobile",
    "ip_export": "HK",
    "support_top_up_type": 2,
    "send_user": null,
    "created_at": "2025-06-29T13:45:12.000000Z",
    "updated_at": "2025-07-02T21:47:12.000000Z"
    }
}

Catatan:

- Pastikan untuk menyertakan header x-api-key yang valid untuk otorisasi.

- Data untuk iccid dan transaction_id dapat diperoleh dari endpoint /api/v1/myesim.

- Semua parameter yang disebutkan di atas adalah wajib disertakan dalam permintaan untuk revoke eSIM.

Announcements

Kategori Announcements menyediakan endpoint yang memungkinkan pengguna untuk mengakses pengumuman terbaru yang terkait dengan layanan atau informasi penting dari GMJ Roaming. Dengan menggunakan API ini, reseller dan pengguna dapat memperoleh informasi terbaru tentang layanan eSIM, promosi, pembaruan, atau pengumuman lainnya yang dapat mempengaruhi operasional layanan eSIM.

Endpoint yang Tersedia:

1. GET /api/v1/announcement

Endpoint ini digunakan untuk mengambil pengumuman terbaru yang dikeluarkan oleh GMJ Roaming. API ini memberikan informasi terkait pembaruan layanan, promosi, atau hal-hal penting lainnya yang perlu diketahui oleh reseller dan pengguna. Endpoint ini dapat digunakan untuk tetap up-to-date dengan pengumuman yang resmi.

get_announcment

GET/api/v1/announcement

Endpoint ini digunakan untuk mencabut (revoke) eSIM yang telah diaktifkan sebelumnya berdasarkan informasi yang diberikan, seperti ICCID dan ID transaksi. Data yang dibutuhkan untuk kedua field tersebut dapat diperoleh dari endpoint /api/v1/myesim.

Header:

Nama Header Tipe Deskripsi
x-api-key String Kunci API untuk otorisasi akses ke API

Response Success (200):

{
    "status": "success",
    "code": 200,
    "message": "Data pengumuman berhasil diambil.",
    "data": [
    {
        "title": "2025 Q1 Update!",
        "description": "Hi Partner ! Saat ini kami hadirkan “Opsi ESIM yang support TikTok, ChatGPT, dan aplikasi lainnya” yaitu esim IP Singapura.\r\nIP Singapura yang baru ditambahkan akan menambahkan akhiran (nonhkip) dan slug menambahkan \"_nonhkip\". Rencana dengan opsi keluar SG:\r\n🇨🇳 Tiongkok Daratan\r\n🇯🇵Jepang\r\n🇹🇭 Thailand\r\n🇮🇩 Indonesia\r\nPenambahan yang akan datang dalam beberapa minggu ke depan meliputi:\r\n🇰🇷 Korea Selatan\r\n🇸🇬 Singapura\r\n🇲🇴 Makau (Cina)\r\n🇲🇾 Malaysia\r\n🇻🇳 Vietnam",
        "status": "active",
        "created_at": "2025-03-24T22:59:30.000000Z",
        "updated_at": "2025-03-26T19:07:13.000000Z"
    },
    {
        "title": "Depreciate 1 GB / 7 Days For Indonesia",
        "description": "Hi Partner ! Untuk mendukung kemajuan bisnis perusahaan Anda, kami telah menurunkan harga eSIM 1 GB / 7 Days For Indonesia menjadi $0.8, Semoga dengan ini dapat meningkatkan penjualan ESIM perusahaan anda. Hormat kami. Muhamad Syarif H. Direksi Of GMJ BUSINESS GROUP",
        "status": "active",
        "created_at": "2025-03-17T11:53:02.000000Z",
        "updated_at": "2025-03-17T11:55:10.000000Z"
    },
    {
        "title": "Depreciate",
        "description": "Hi Partner !\r\nUntuk mendukung kemajuan bisnis perusahaan Anda, kami telah menurunkan sedikit harga eSIM untuk semua negara, agar lebih kompetitif di pasar.\r\nSemoga dengan ini dapat meningkatkan penjualan ESIM perusahaan anda. \r\nHormat kami. Muhamad Syarif H. Direksi Of GMJ BUSINESS GROUP",
        "status": "active",
        "created_at": "2025-03-13T19:55:37.000000Z",
        "updated_at": "2025-03-13T20:00:20.000000Z"
    }
    ]
}

Catatan:

- Pastikan untuk menyertakan header x-api-key yang valid untuk otorisasi.

Transactions

Kategori Transactions menyediakan endpoint yang memungkinkan pengguna untuk mengelola dan mengakses riwayat transaksi terkait layanan eSIM. Dengan menggunakan API ini, reseller dan pengguna dapat melihat detail transaksi yang telah dilakukan, memeriksa status transaksi, serta mengelola berbagai aktivitas keuangan yang berhubungan dengan pembelian, top-up, dan layanan lainnya. Semua transaksi dapat dipantau dengan mudah melalui endpoint ini, memberikan transparansi dan kontrol penuh atas semua transaksi yang terjadi.

Endpoint yang Tersedia:

1. POST /api/v1/history-transaction

Endpoint ini digunakan untuk mengambil riwayat transaksi berdasarkan filter yang diberikan. Pengguna dapat memfilter transaksi dengan parameter seperti transaction_id, activity (misalnya: Refund Saldo, Balance Topup, Esim Purchase, Data Plan Purchase, Payment API), serta rentang tanggal (start_date dan end_date). API ini memberikan laporan transaksi yang jelas dan terperinci sesuai dengan kriteria yang ditentukan.

get_history_transactions

GET/api/v1/history-transaction

Endpoint ini digunakan untuk mengambil riwayat transaksi berdasarkan filter yang diberikan. Anda dapat memfilter transaksi menggunakan transaction_id, activity, serta rentang tanggal menggunakan start_date dan end_date.

Header:

Nama Header Tipe Deskripsi
x-api-key String Kunci API untuk otorisasi akses ke API

Query Params:

Nama Field Tipe Deskripsi Wajib
transaction_id String ID transaksi yang ingin difilter. Tidak
activity String Jenis aktivitas transaksi. Nilai yang tersedia: Refund Saldo, Balance Topup, Esim Purchase, Data Plan Purchase, Payment API. Tidak
start_date String Tanggal mulai transaksi dalam format Y-m-d. Tidak
end_date String Tanggal akhir transaksi dalam format Y-m-d. Tidak

Response Success (200):

{
    "status": "success",
    "code": 200,
    "message": "Data transaksi berhasil diambil.",
    "data": [
    {
        "id": 14069,
        "xendit_id": null,
        "transaction_id": "trx-refund-18-Bw9PB",
        "user_id": 18,
        "topup_id": null,
        "activity": "Refund Saldo",
        "qty_esim": null,
        "balance": "2.41",
        "amount": "0.80",
        "currency": "IDR",
        "payment_method": null,
        "payment_fee": "0.70",
        "total_amount": "0.80",
        "va_number": null,
        "qris_image": null,
        "status": "Success",
        "expires_at": null,
        "reference_code": null,
        "created_at": "2025-07-02T10:53:39.000000Z",
        "updated_at": "2025-07-02T10:53:39.000000Z"
    }
    ],
    "current_page": 1,
    "per_page": 20,
    "total_pages": 1,
    "next_page_url": null,
    "prev_page_url": null,
    "links": [
    {
        "url": null,
        "label": "« Previous",
        "active": true
    },
    {
        "url": "https://api.gmjroaming.com/api/v1/history-transaction?page=1",
        "label": "1",
        "active": true
    },
    {
        "url": null,
        "label": "Next »",
        "active": false
    }
    ]
}

Catatan:

- Pastikan untuk menyertakan header x-api-key yang valid untuk otorisasi.