Integrasikan sistem pembelian otomatis ke dalam aplikasi Anda. Dukungan penuh untuk fitur: membuat pesanan, memeriksa status, melihat daftar produk, dan banyak lagi.
Informasi dasar tentang API Toko
https://jualsosmed.com/api/v1
application/json
JSON
Cara mengautentikasi permintaan ke API
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) |
X-API-Key: sk_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6 X-API-Secret: sk_secret_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b8c9d0e1f2 Content-Type: application/json
Buat pesanan baru dan bayar secara otomatis
| 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) |
<?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);
?>
{
"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
}
}
}
Periksa status pengiriman dan konten
| Parameter | Type | Menggambarkan |
|---|---|---|
| trans_id Wajib | string | Kode transaksi hasil pembuatan order |
<?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);
?>
{
"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
}
}
Dapatkan daftar pesanan dengan pagination
| 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 |
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"
{
"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
}
}
Dapatkan daftar produk dan paket
| 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 |
page và kiểm tra pagination.has_more trong response để lấy tất cả sản phẩm. <?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);
?>
| 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 |
{
"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
}
}
Dapatkan daftar kategori produk
| 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) |
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"
{
"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
}
}
Lihat saldo akun saat ini
curl "https://jualsosmed.com/api/v1/account/balance" \ -H "X-API-Key: sk_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6" \ -H "X-API-Secret: sk_secret_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b8c9d0e1f2"
{
"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
}
}
Dapatkan informasi akun pengguna
curl "https://jualsosmed.com/api/v1/account/info" \ -H "X-API-Key: sk_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6" \ -H "X-API-Secret: sk_secret_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b8c9d0e1f2"
{
"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
}
}
Daftar kemungkinan kode kesalahan
| 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 |
{
"success": false,
"message": "Số dư không đủ để thanh toán",
"data": {
"error_code": "INSUFFICIENT_BALANCE"
}
}