IDR
Halaman beranda MEMESAN Informasi

Dokumentasi API

Integrasikan sistem pembelian otomatis ke dalam aplikasi Anda. Dukungan penuh untuk fitur: membuat pesanan, memeriksa status, melihat daftar produk, dan banyak lagi.

API Version 1.0 - RESTful
Base URL https://jualsosmed.com/api/v1
Content-Type application/json
Response JSON
Kelola Kunci API Mengakses trang API Keys untuk membuat, mengelola, dan melihat riwayat penggunaan API Anda.

Semua permintaan ke API harus memiliki header berikut:

Header Menggambarkan
X-API-Key Kunci API Anda (40 karakter, dimulai dengan sk_live_)
X-API-Secret Rahasia API Anda (74 karakter, dimulai dengan sk_secret_)
Content-Type application/json (cho permintaan POST)
Contoh header
HTTP Headers
X-API-Key: sk_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6
X-API-Secret: sk_secret_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b8c9d0e1f2
Content-Type: application/json
Perhatikan keamanan Jaga Kunci API dan Rahasia API Anda tetap aman. Jangan membagikan atau berkomitmen pada kode sumber. Gunakan variabel lingkungan untuk penyimpanan.
POST https://jualsosmed.com/api/v1/orders/create
Badan Permintaan
Parameter Type Menggambarkan
items Wajib array Daftar produk yang akan dibeli
items[].plan_id Wajib integer ID paket produk (diambil dari /products/list)
items[].quantity integer Kuantitas pembelian (default: 1)
items[].fields object Bidang tambahan (jika diperlukan oleh rencana)
coupon_code string Kode diskon (jika ada)
Kode sampel
PHP
<?php
$apiKey = 'sk_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6';
$apiSecret = 'sk_secret_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b8c9d0e1f2';

$data = [
    'items' => [
        ['plan_id' => 18, 'quantity' => 1, 'fields' => ['email_dang_nhap' => 'user@example.com']]
    ],
    'coupon_code' => ''
];

$ch = curl_init('https://jualsosmed.com/api/v1/orders/create');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => json_encode($data),
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'X-API-Key: ' . $apiKey,
        'X-API-Secret: ' . $apiSecret
    ]
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

print_r($response);
?>
Contoh tanggapan
Success Response
{
  "success": true,
  "message": "Đơn hàng đã được tạo thành công",
  "data": {
    "orders": [{
      "trans_id": "ORD1703750400ABC",
      "product_name": "Sản phẩm Premium",
      "status": "completed",
      "total": 100000
    }],
    "summary": {
      "total_amount": 100000,
      "new_balance": 400000
    }
  }
}
GET https://jualsosmed.com/api/v1/orders/status?trans_id={trans_id}
Parameter Kueri
Parameter Type Menggambarkan
trans_id Wajib string Kode transaksi hasil pembuatan order
Kode sampel
PHP
<?php
$transId = 'ORD1703750400ABC';
$url = 'https://jualsosmed.com/api/v1/orders/status?trans_id=' . $transId;

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'X-API-Key: sk_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6',
        'X-API-Secret: sk_secret_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b8c9d0e1f2'
    ]
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($response);
?>
Contoh tanggapan
Success Response
{
  "success": true,
  "timestamp": 1770020629,
  "request_id": "req_69805f15a5ed77.94324321",
  "data": {
    "order": {
      "id": 36,
      "trans_id": "PO8153690",
      "user_id": 1,
      "product": {
        "id": 21,
        "name": "Sản phẩm Figma",
        "slug": "san-pham-figma",
        "image": "https://example.com/product.jpg"
      },
      "plan": {
        "id": 19,
        "name": "Figma Edu 1 năm - Tài khoản",
        "is_instant": true
      },
      "quantity": 2,
      "total_price": 1600000,
      "sale_price": 400000,
      "discount_amount": 0,
      "coupon_code": null,
      "final_amount": 400000,
      "fields_data": [],
      "status": "completed",
      "payment_status": "paid",
      "order_source": "api",
      "created_at": "2026-02-02 15:23:14",
      "updated_at": "2026-02-02 15:23:14"
    },
    "delivery": {
      "items": ["Account: user@mail.com | Pass: abc123", "Account: user2@mail.com | Pass: xyz789"],
      "delivered_count": 2,
      "expected_count": 2
    },
    "execution_time": 0.0238
  }
}
GET https://jualsosmed.com/api/v1/orders/list
Parameter Kueri
Parameter Type Menggambarkan
page integer Jumlah halaman (default: 1)
limit integer Nomor/halaman (default: 20, maks: 100)
status string Lọc: tertunda, diproses, selesai, dibatalkan
Kode sampel
cURL
curl "https://jualsosmed.com/api/v1/orders/list?page=1&limit=20&status=completed" \
  -H "X-API-Key: sk_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6" \
  -H "X-API-Secret: sk_secret_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b8c9d0e1f2"
Contoh tanggapan
Success Response
{
  "success": true,
  "data": {
    "orders": [{
      "id": 1234,
      "trans_id": "ORD-1705678901-ABC123",
      "product": {
        "id": 10,
        "name": "Windows 11 Pro Key",
        "slug": "windows-11-pro-key"
      },
      "plan": {
        "id": 5,
        "name": "Gói Retail - Vĩnh viễn"
      },
      "quantity": 2,
      "total_price": 1500000,
      "final_amount": 1350000,
      "status": "completed",
      "payment_status": "paid",
      "created_at": "2026-01-19 10:30:00"
    }],
    "pagination": {
      "current_page": 1,
      "per_page": 20,
      "total": 45,
      "total_pages": 3,
      "has_more": true
    },
    "execution_time": 0.0234
  }
}
GET https://jualsosmed.com/api/v1/products/list
Parameter Kueri
Parameter Type Menggambarkan
page integer Jumlah halaman (default: 1)
limit integer Số lượng/trang (mặc định: 10, tối đa: 100)
category_id integer Filter berdasarkan kategori
search string Cari berdasarkan nama
sort string Sắp xếp: newest, oldest, price_asc, price_desc, bestseller
Phân trang API trả về tối đa 100 sản phẩm/trang. Sử dụng tham số page và kiểm tra pagination.has_more trong response để lấy tất cả sản phẩm.
Kode sampel
PHP - Lấy tất cả sản phẩm (phân trang)
<?php
$apiKey = 'sk_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6';
$apiSecret = 'sk_secret_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b8c9d0e1f2';
$baseUrl = 'https://jualsosmed.com/api/v1';

$allProducts = [];
$page = 1;
$limit = 100; // Tối đa 100 sản phẩm/trang

do {
    $url = $baseUrl . '/products/list?page=' . $page . '&limit=' . $limit;

    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER => [
            'X-API-Key: ' . $apiKey,
            'X-API-Secret: ' . $apiSecret
        ]
    ]);

    $response = json_decode(curl_exec($ch), true);
    curl_close($ch);

    if (!$response['success']) break;

    $products = $response['data']['products'] ?? [];
    $allProducts = array_merge($allProducts, $products);

    $hasMore = $response['data']['pagination']['has_more'] ?? false;
    $page++;
} while ($hasMore);

echo 'Tổng sản phẩm: ' . count($allProducts);
?>
Bidang Respons (Rencana)
Field Type Menggambarkan
id integer ID paket produk
name string Nama paket produk
price float Harga asli
sale_price float Harga promosi (jika ada)
final_price float Harga akhir (harga_jual prioritas jika tersedia)
is_instant boolean Pengiriman otomatis
duration_type string Jenis durasi: seumur hidup (abadi), hari (hari), bulan (bulan), tahun (tahun)
duration_value integer|null Nilai jangka waktu (misal: 30 hari, 1 bulan). Null jika durasi_tipe = seumur hidup
stock_count integer Kuantitas inventaris (jika is_instant = true)
in_stock boolean Ada stok atau tidak
fields array Daftar bidang yang harus dimasukkan saat melakukan pemesanan
Contoh tanggapan
Success Response
{
  "success": true,
  "timestamp": 1769604661,
  "request_id": "req_697a063503ed57.32834148",
  "data": {
    "products": [{
      "id": 29,
      "name": "Key Adobe Creative Cloud All Apps",
      "slug": "key-adobe-creative-cloud-all-apps",
      "image": "https://example.com/product.jpg",
      "description": "<p>Mô tả sản phẩm...</p>",
      "category": {
        "id": 5,
        "name": "Học Tập",
        "slug": "hoc-tap",
        "image": "https://example.com/category.jpg"
      },
      "categories": [
        {"id": 5, "name": "Học Tập", "slug": "hoc-tap", "image": "https://example.com/category.jpg"},
        {"id": 14, "name": "Làm việc", "slug": "lam-viec", "image": null}
      ],
      "min_price": 375000,
      "max_price": 1650000,
      "sold": 24,
      "rating": 4.5,
      "plans": [{
        "id": 319,
        "name": "Tài khoản 1 tháng",
        "price": 375000,
        "sale_price": 0,
        "final_price": 375000,
        "is_instant": true,
        "duration_type": "month",
        "duration_value": 1,
        "stock_count": 50,
        "in_stock": true,
        "description": "",
        "fields": []
      }, {
        "id": 320,
        "name": "Nâng chính chủ 1 Tháng",
        "price": 1650000,
        "sale_price": 0,
        "final_price": 1650000,
        "is_instant": false,
        "duration_type": "month",
        "duration_value": 3,
        "stock_count": 0,
        "in_stock": true,
        "description": "",
        "fields": [
          {"key": "email", "label": "Email", "type": "email", "required": true},
          {"key": "mat_khau", "label": "Mật khẩu", "type": "password", "required": true}
        ]
      }]
    }],
    "pagination": {
      "current_page": 1,
      "per_page": 10,
      "total": 21,
      "total_pages": 3,
      "has_more": true
    },
    "execution_time": 0.0828
  }
}
GET https://jualsosmed.com/api/v1/categories/list
Parameter Kueri
Parameter Type Menggambarkan
parent_id integer Filter berdasarkan kategori induk
include_children boolean Sertakan subkategori (0 atau 1)
include_products boolean Sertakan kuantitas produk (0 atau 1)
Kode sampel
cURL
curl "https://jualsosmed.com/api/v1/categories/list?include_children=1" \
  -H "X-API-Key: sk_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6" \
  -H "X-API-Secret: sk_secret_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b8c9d0e1f2"
Contoh tanggapan
Success Response
{
  "success": true,
  "timestamp": 1770022554,
  "request_id": "req_6980669a4793d9.70486853",
  "data": {
    "categories": [{
      "id": 3,
      "name": "Giải Trí",
      "slug": "giai-tri",
      "description": "",
      "image": "https://example.com/category/DOQ4.png",
      "parent_id": 1,
      "sort_order": 9
    }, {
      "id": 5,
      "name": "Học Tập",
      "slug": "hoc-tap",
      "description": "",
      "image": "https://example.com/category/9IRK.png",
      "parent_id": 1,
      "sort_order": 4
    }, {
      "id": 1,
      "name": "Tiện Ích",
      "slug": "tien-ich",
      "description": "",
      "image": "https://example.com/category/EIT3.png",
      "parent_id": 0,
      "sort_order": 0
    }],
    "total": 15,
    "execution_time": 0.0341
  }
}
GET https://jualsosmed.com/api/v1/account/balance
Kode sampel
cURL
curl "https://jualsosmed.com/api/v1/account/balance" \
  -H "X-API-Key: sk_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6" \
  -H "X-API-Secret: sk_secret_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b8c9d0e1f2"
Contoh tanggapan
Success Response
{
  "success": true,
  "timestamp": 1770022345,
  "request_id": "req_698065c9694a56.14017855",
  "data": {
    "user": {
      "id": 1,
      "username": "admin",
      "email": "admin@cmsnt.co"
    },
    "balance": {
      "current": 93537500,
      "total_deposited": 100000000,
      "currency": "VND",
      "formatted": "93.537.500đ"
    },
    "execution_time": 0.0258
  }
}
GET https://jualsosmed.com/api/v1/account/info
Kode sampel
cURL
curl "https://jualsosmed.com/api/v1/account/info" \
  -H "X-API-Key: sk_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6" \
  -H "X-API-Secret: sk_secret_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b8c9d0e1f2"
Contoh tanggapan
Success Response
{
  "success": true,
  "timestamp": 1770022432,
  "request_id": "req_69806620805ae3.29218122",
  "data": {
    "user": {
      "id": 1,
      "username": "admin",
      "email": "admin@cmsnt.co",
      "phone": "",
      "balance": 93537500,
      "total_deposited": 100000000,
      "created_at": null
    },
    "api_key": {
      "name": "API Key",
      "permissions": [
        "orders.create",
        "orders.list",
        "orders.status",
        "products.list",
        "account.balance",
        "account.info"
      ],
      "rate_limit": 60,
      "daily_limit": 10000,
      "expires_at": null,
      "created_at": "2026-02-02 14:53:35"
    },
    "orders_summary": {
      "total": 12,
      "pending": 3,
      "completed": 8
    },
    "api_usage_today": {
      "period": "day",
      "start_time": "2026-02-02 00:00:00",
      "total_requests": 5,
      "success_requests": 5,
      "failed_requests": 0,
      "success_rate": 100
    },
    "execution_time": 0.0449
  }
}
Kode kesalahan HTTP Menggambarkan
INVALID_API_KEY 401 Kunci API tidak valid
INVALID_API_SECRET 401 Rahasia API salah
DISABLED_API_KEY 401 Kunci API telah dinonaktifkan
RATE_LIMIT_EXCEEDED 429 Batas permintaan terlampaui
IP_NOT_ALLOWED 403 Akses IP tidak diperbolehkan
PERMISSION_DENIED 403 Tidak ada hak untuk tampil
INSUFFICIENT_BALANCE 400 Saldo tidak mencukupi
PRODUCT_NOT_FOUND 404 Produk tidak ada
OUT_OF_STOCK 400 Stok produk habis
Format Respon Kesalahan
Error Response
{
  "success": false,
  "message": "Số dư không đủ để thanh toán",
  "data": {
    "error_code": "INSUFFICIENT_BALANCE"
  }
}