Dokumentasi API Jual-akun.com

Dokumentasi integrasi API Jual-akun.com

Secara umum, API ini membantu platform kamu mengambil data kategori dan katalog produk dari Jual-akun.com untuk ditampilkan kepada calon pembeli. API profile dapat digunakan untuk membaca informasi akun pemilik API key, seperti saldo, agar bisa ditampilkan di dashboard atau laporan admin platform kamu. Saat pembeli sudah membayar dan status pesanan di platform kamu lunas, sistem kamu mengirim request pembelian ke Jual-akun.com menggunakan saldo akun Jual-akun.com. Jika saldo mencukupi, order akan dibuat; item ready stock langsung dikirim atau ditampilkan ke pembeli, sedangkan produk pre-order akan diproses sampai item siap.

API Key

{api_key}

API key bersifat rahasia. Jangan bagikan kepada siapa pun.

API key lama akan tidak berlaku setelah diganti.

API ini hanya boleh digunakan untuk integrasi server-to-server. Jangan memanggil API Jual-akun.com langsung dari frontend, JavaScript browser, aplikasi mobile publik, atau source code yang bisa dilihat pengguna. Simpan API key di backend/server kamu, misalnya di file .env atau secret manager, lalu frontend kamu cukup memanggil backend milik kamu. Jika API key diletakkan di sisi pengguna, orang lain dapat menyalinnya dan melakukan pembelian produk menggunakan saldo akun Anda.

Header autentikasi

Semua contoh endpoint di bawah menggunakan header X-Api-Key.

Rate limit berjalan berlapis: request akan dibatasi dari IP terlebih dahulu, lalu API key divalidasi, kemudian request valid dibatasi per API key. Endpoint baca data maksimal 60 request per menit per API key, sedangkan endpoint pembelian maksimal 10 request per menit per API key. Jika melewati batas, API akan mengembalikan response 429 Too Many Requests.

X-Api-Key: {api_key}

Endpoint

GET Profile pemilik API key

Request

curl -X GET "https://jual-akun.com/api/v1/public/profile.php" \ -H "X-Api-Key: {api_key}"

GET Daftar kategori

Request

curl -X GET "https://jual-akun.com/api/v1/public/categories.php" \ -H "X-Api-Key: {api_key}"

GET Daftar kategori dan produk

Request

curl -X GET "https://jual-akun.com/api/v1/public/products.php" \ -H "X-Api-Key: {api_key}"
type=ready_stock
curl -X GET "https://jual-akun.com/api/v1/public/products.php?type=ready_stock" \ -H "X-Api-Key: {api_key}"

Keterangan: Hanya menampilkan produk item siap kirim.

type=pre_order
curl -X GET "https://jual-akun.com/api/v1/public/products.php?type=pre_order" \ -H "X-Api-Key: {api_key}"

Keterangan: Hanya menampilkan produk pre-order. Jika belum ada produk pre-order aktif, response tetap 200 OK tetapi data berisi array kosong.

category={category_id}
curl -X GET "https://jual-akun.com/api/v1/public/products.php?category=8" \ -H "X-Api-Key: {api_key}"

Keterangan: Hanya menampilkan produk dari kategori ID 8.

GET Detail produk

Request

curl -X GET "https://jual-akun.com/api/v1/public/product.php?product=710" \ -H "X-Api-Key: {api_key}"

GET Detail order / item yang dibeli

Request

curl -X GET "https://jual-akun.com/api/v1/public/orders.php?order=API-202607-K8M2Q9Z7P4X1N6B3" \ -H "X-Api-Key: {api_key}"

Gunakan trans_id. Backend wajib memastikan order milik user pemilik API key.

POST Membeli produk

Request

curl -X POST "https://jual-akun.com/api/v1/public/buy_product.php" \ -H "X-Api-Key: {api_key}" \ -F "action=buyProduct" \ -F "id=710" \ -F "amount=1" \ -F "invoice_external=INV-TOKO-000123"

Form-data:

Field Keterangan
actionbuyProduct
idID produk Jual-akun.com
amountJumlah pembelian
couponOpsional, kode diskon jika ada
invoice_external Wajib dikirim saat membuat pembelian. Isi dengan nomor invoice/order dari sistem atau platform kamu sendiri, bukan invoice dari Jual-akun.com.
Contoh: jika platform kamu punya invoice INV-TOKO-000123, maka kirim invoice_external=INV-TOKO-000123.
Jika request dengan invoice_external yang sama dikirim ulang karena timeout/error, API akan mengembalikan transaksi yang sama dan saldo tidak akan terpotong dua kali. Field external_order_id tetap didukung sebagai alias, tetapi disarankan memakai invoice_external.

Header wajib: X-Api-Key: {api_key}

Contoh Response 200 OK

200 OK Profile pemilik API key

{
  "status": "success",
  "success": true,
  "msg": "Profile fetched successfully.",
  "message": "Profile fetched successfully.",
  "data": {
    "user_id": 5,
    "username": "username",
    "email": "[email protected]",
    "phone": "6281234567890",
    "balance": 150000,
    "is_active": true,
    "created_at": "2026-07-11T10:00:00+07:00"
  }
}

200 OK Daftar kategori

{
  "status": "success",
  "success": true,
  "msg": "Categories fetched successfully.",
  "message": "Categories fetched successfully.",
  "data": [
    {
      "id": 8,
      "name": "Akun FB",
      "slug": "akun-fb",
      "product_count": 12
    }
  ]
}

200 OK Daftar produk

{
  "status": "success",
  "success": true,
  "msg": "Products fetched successfully.",
  "message": "Products fetched successfully.",
  "data": [
    {
      "id": 710,
      "title": "Akun FB Tua Murah 2009 sd 2023 + BISA UNTUK NAMPUNG FP/BM (Kode ke email smvmail) (UID 10001xxx) Live Ads Negara Random + 2FA ON + Cocok untuk IKLAN & induk FP/BM",
      "product_type": "ready_stock",
      "is_pre_order": false,
      "is_ready_stock": true,
      "price": 65000,
      "stock": 10,
      "can_buy": true,
      "categories": [
        {
          "id": 8,
          "name": "Akun FB",
          "slug": "akun-fb"
        }
      ]
    }
  ],
  "meta": {
    "current_page": 1,
    "per_page": 20,
    "last_page": 1,
    "total": 1,
    "has_more": false
  }
}

200 OK Detail produk

{
  "status": "success",
  "success": true,
  "msg": "Product detail fetched successfully.",
  "message": "Product detail fetched successfully.",
  "data": {
    "id": 710,
    "title": "Akun FB Tua Murah 2009 sd 2023 + BISA UNTUK NAMPUNG FP/BM (Kode ke email smvmail) (UID 10001xxx) Live Ads Negara Random + 2FA ON + Cocok untuk IKLAN & induk FP/BM",
    "product_type": "ready_stock",
    "price": 65000,
    "stock": 10,
    "description": "Deskripsi produk dalam teks biasa.",
    "description_html": "<p>Deskripsi produk</p>",
    "images": [
      "https://jual-akun.com/storage/product/contoh-produk.jpg"
    ]
  }
}

200 OK Detail order / item yang dibeli

{
  "status": "success",
  "success": true,
  "msg": "Order fetched successfully.",
  "message": "Order fetched successfully.",
  "trans_id": "API-202607-K8M2Q9Z7P4X1N6B3",
  "invoice": "INV52026070000001",
  "invoice_external": "INV-PLATFORM-KAMU-0001",
  "external_order_id": "INV-PLATFORM-KAMU-0001",
  "product_id": 710,
  "product_title": "Akun FB Tua Murah 2009 sd 2023 + BISA UNTUK NAMPUNG FP/BM (Kode ke email smvmail) (UID 10001xxx) Live Ads Negara Random + 2FA ON + Cocok untuk IKLAN & induk FP/BM",
  "product_name": "Akun FB Tua Murah 2009 sd 2023 + BISA UNTUK NAMPUNG FP/BM (Kode ke email smvmail) (UID 10001xxx) Live Ads Negara Random + 2FA ON + Cocok untuk IKLAN & induk FP/BM",
  "product_type": "ready_stock",
  "quantity": 1,
  "unit_price": 65000,
  "total_price": 65000,
  "payment_method": "saldo",
  "payment_name": "Saldo",
  "payment_status": "PAID",
  "fulfillment_status": "completed",
  "paid_at": "2026-07-11T10:00:00+07:00",
  "created_at": "2026-07-11T10:00:00+07:00",
  "pre_order": null,
  "data": [
    "[email protected]|password123"
  ],
  "items": [
    {
      "transaction_detail_id": 9001,
      "product_detail_id": 12001,
      "content": "[email protected]|password123"
    }
  ]
}

Contoh Response error yang perlu ditangani

401 API key kosong atau tidak valid

{
  "status": "error",
  "success": false,
  "msg": "API key tidak valid atau sudah kedaluwarsa.",
  "message": "API key tidak valid atau sudah kedaluwarsa."
}

404 Produk atau order tidak ditemukan

{
  "status": "error",
  "success": false,
  "msg": "Produk tidak ditemukan atau tidak aktif.",
  "message": "Produk tidak ditemukan atau tidak aktif."
}

409 invoice_external sudah dipakai untuk detail order berbeda

{
  "status": "error",
  "success": false,
  "msg": "invoice_external sudah pernah digunakan untuk order dengan detail yang berbeda. Gunakan invoice_external baru untuk order baru, atau kirim ulang detail yang sama untuk retry.",
  "message": "invoice_external sudah pernah digunakan untuk order dengan detail yang berbeda. Gunakan invoice_external baru untuk order baru, atau kirim ulang detail yang sama untuk retry.",
  "error_code": "INVOICE_EXTERNAL_CONFLICT",
  "existing_order": {
    "trans_id": "API-202607-P9M4X2Q8Z1B7N3C6",
    "product_id": 710,
    "quantity": 1,
    "total_price": 65000
  },
  "requested_order": {
    "product_id": 711,
    "quantity": 1,
    "total_price": 70000
  }
}

422 Validasi gagal

{
  "status": "error",
  "success": false,
  "msg": "invoice_external wajib diisi agar retry pembelian tidak memotong saldo dua kali.",
  "message": "invoice_external wajib diisi agar retry pembelian tidak memotong saldo dua kali."
}

422 Saldo tidak mencukupi

{
  "status": "error",
  "success": false,
  "msg": "Saldo tidak mencukupi.",
  "message": "Saldo tidak mencukupi.",
  "required_balance": 65000,
  "balance": 10000
}

405 Method salah

{
  "message": "The GET method is not supported for this route. Supported methods: POST."
}

Response 200 OK - pembelian ready stock

{
  "status": "success",
  "success": true,
  "msg": "Order created successfully.",
  "message": "Order created successfully.",
  "trans_id": "API-202607-K8M2Q9Z7P4X1N6B3",
  "invoice": "INV52026070000001",
  "invoice_external": "INV-PLATFORM-KAMU-0001",
  "external_order_id": "INV-PLATFORM-KAMU-0001",
  "product_id": 710,
  "product_title": "Akun FB Tua Murah 2009 sd 2023 + BISA UNTUK NAMPUNG FP/BM (Kode ke email smvmail) (UID 10001xxx) Live Ads Negara Random + 2FA ON + Cocok untuk IKLAN & induk FP/BM",
  "product_name": "Akun FB Tua Murah 2009 sd 2023 + BISA UNTUK NAMPUNG FP/BM (Kode ke email smvmail) (UID 10001xxx) Live Ads Negara Random + 2FA ON + Cocok untuk IKLAN & induk FP/BM",
  "product_type": "ready_stock",
  "quantity": 2,
  "unit_price": 65000,
  "total_price": 130000,
  "payment_method": "saldo",
  "payment_name": "Saldo",
  "payment_status": "PAID",
  "fulfillment_status": "completed",
  "paid_at": "2026-07-11T10:00:00+07:00",
  "created_at": "2026-07-11T10:00:00+07:00",
  "pre_order": null,
  "data": [
    "[email protected]|password123",
    "[email protected]|password456"
  ],
  "items": [
    {
      "transaction_detail_id": 9001,
      "product_detail_id": 12001,
      "content": "[email protected]|password123"
    },
    {
      "transaction_detail_id": 9002,
      "product_detail_id": 12002,
      "content": "[email protected]|password456"
    }
  ]
}

Response 200 OK - pre-order saat baru dibuat

Setelah pembelian pre-order berhasil dibuat, item belum langsung tersedia. Simpan trans_id dari response ini, lalu gunakan endpoint detail order untuk mengecek status pesanan secara berkala.

{
  "status": "success",
  "success": true,
  "msg": "Pre-order created successfully.",
  "message": "Pre-order created successfully.",
  "trans_id": "API-202607-P9M4X2Q8Z1B7N3C6",
  "invoice": "INV52026070000002",
  "invoice_external": "INV-PLATFORM-KAMU-0002",
  "external_order_id": "INV-PLATFORM-KAMU-0002",
  "product_id": 710,
  "product_title": "Produk Pre-order",
  "product_name": "Produk Pre-order",
  "product_type": "pre_order",
  "quantity": 1,
  "unit_price": 65000,
  "total_price": 65000,
  "payment_method": "saldo",
  "payment_name": "Saldo",
  "payment_status": "PAID",
  "fulfillment_status": "processing",
  "paid_at": "2026-07-11T10:00:00+07:00",
  "created_at": "2026-07-11T10:00:00+07:00",
  "pre_order": {
    "is_ready": false,
    "message": "Pesanan pre-order sedang diproses.",
    "detail_items": null
  },
  "data": [],
  "items": []
}

Response 200 OK - pre-order saat item sudah siap

Cek ulang order menggunakan X-Api-Key + trans_id. Jika pre_order.is_ready bernilai true, item sudah bisa ditampilkan atau dikirim ke pembeli di platform kamu.

{
  "status": "success",
  "success": true,
  "msg": "Order fetched successfully.",
  "message": "Order fetched successfully.",
  "trans_id": "API-202607-P9M4X2Q8Z1B7N3C6",
  "invoice": "INV52026070000002",
  "invoice_external": "INV-PLATFORM-KAMU-0002",
  "external_order_id": "INV-PLATFORM-KAMU-0002",
  "product_id": 710,
  "product_title": "Produk Pre-order",
  "product_name": "Produk Pre-order",
  "product_type": "pre_order",
  "quantity": 1,
  "unit_price": 65000,
  "total_price": 65000,
  "payment_method": "saldo",
  "payment_name": "Saldo",
  "payment_status": "PAID",
  "fulfillment_status": "completed",
  "paid_at": "2026-07-11T10:00:00+07:00",
  "created_at": "2026-07-11T10:00:00+07:00",
  "pre_order": {
    "is_ready": true,
    "message": "Pesanan pre-order sudah siap.",
    "detail_items": "[email protected]|password123"
  },
  "data": [
    "[email protected]|password123"
  ],
  "items": []
}