Bearer API key
API key dibuat admin dan dikirim di header Authorization.
Integrasi untuk aplikasi partner yang ingin menjual voucher premium Clipku.
API key dibuat admin dan dikirim di header Authorization.
Voucher langsung memotong saldo reseller. Saldo kurang akan ditolak.
externalRef mencegah voucher dobel saat request diulang.
Endpoint reseller memakai Bearer API key. Endpoint admin untuk membuat reseller dan topup saldo memakai session admin.
# Reseller endpoint
Authorization: Bearer ckrs_live_xxxxxxxxx
# Admin endpoint
Cookie: clipku_session=ADMIN_SESSION_TOKENBase URL: https://drama.clipku.com
/api/admin/resellersBuat reseller dan API keyBuat akun reseller baru. API key hanya tampil sekali pada response pembuatan.
/api/admin/resellersTopup saldo resellerTambah saldo reseller melalui API admin. Endpoint ini membutuhkan session admin.
/api/reseller/plansCek saldo dan paketAmbil saldo reseller terbaru beserta daftar paket aktif.
/api/reseller/vouchersBuat voucherBuat satu atau beberapa voucher memakai saldo reseller.
/api/reseller/vouchers/{externalRef}Cek order voucherAmbil ulang status order dan daftar voucher berdasarkan externalRef.
Admin membuat reseller untuk owner yang sudah terdaftar. Simpan apiKey dari response karena hanya tampil sekali.
curl -X POST https://drama.clipku.com/api/admin/resellers \
-H "Content-Type: application/json" \
-H "Cookie: clipku_session=ADMIN_SESSION_TOKEN" \
-d '{
"name": "Partner Store",
"ownerEmail": "partner@example.com",
"initialBalance": 100000
}'initialBalance opsional. Jika diisi, saldo awal langsung masuk ke reseller baru.
{
"message": "Reseller dibuat. Simpan API key karena tidak akan ditampilkan lagi.",
"reseller": {
"id": "clx_reseller_id",
"name": "Partner Store",
"keyPreview": "ckrs_live_...abcd12",
"balance": "100000.00",
"isActive": true
},
"apiKey": "ckrs_live_xxxxxxxxx"
}Topup saldo dilakukan lewat API admin. Nilai addBalance bersifat increment, bukan mengganti saldo lama.
curl -X PATCH https://drama.clipku.com/api/admin/resellers \
-H "Content-Type: application/json" \
-H "Cookie: clipku_session=ADMIN_SESSION_TOKEN" \
-d '{
"id": "clx_reseller_id",
"action": "UPDATE_RESELLER",
"addBalance": 100000
}'Response mengembalikan saldo terbaru reseller dan update tercatat di audit admin.
{
"message": "Reseller diperbarui.",
"reseller": {
"id": "clx_reseller_id",
"name": "Partner Store",
"keyPreview": "ckrs_live_...abcd12",
"balance": "250000.00",
"isActive": true,
"updatedAt": "2026-07-11T08:10:00.000Z"
}
}Gunakan API key reseller untuk mengambil saldo terbaru dan daftar paket yang bisa dibuat voucher.
curl https://drama.clipku.com/api/reseller/plans \
-H "Authorization: Bearer ckrs_live_xxxxxxxxx"Nilai balance dan price dikembalikan sebagai decimal.
{
"reseller": {
"id": "clx_reseller_id",
"name": "Partner Store",
"balance": "150000.00"
},
"plans": [
{
"id": "clx_plan_id",
"slug": "premium-30-hari",
"name": "Premium 30 Hari",
"price": "10000.00",
"durationDays": 30
}
]
}Kirim planId atau planSlug, jumlah voucher, dan externalRef.
curl -X POST https://drama.clipku.com/api/reseller/vouchers \
-H "Authorization: Bearer ckrs_live_xxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"planSlug": "premium-30-hari",
"quantity": 5,
"externalRef": "ORDER-APP-001"
}'Simpan externalRef dan kode voucher di sistem Anda.
{
"success": true,
"idempotent": false,
"order": {
"id": "clx_order_id",
"externalRef": "ORDER-APP-001",
"status": "COMPLETED",
"quantity": 5,
"amount": "50000"
},
"vouchers": [
{
"code": "CKAB-CDEF-1234-5678",
"durationDays": 30
}
]
}Pakai externalRef yang sama dengan request pembuatan voucher.
curl https://drama.clipku.com/api/reseller/vouchers/ORDER-APP-001 \
-H "Authorization: Bearer ckrs_live_xxxxxxxxx"Status voucher menampilkan apakah kode masih tersedia atau sudah dipakai.
{
"order": {
"id": "clx_order_id",
"externalRef": "ORDER-APP-001",
"status": "COMPLETED",
"quantity": 5,
"amount": "50000.00",
"createdAt": "2026-07-11T08:00:00.000Z"
},
"plan": {
"slug": "premium-30-hari",
"name": "Premium 30 Hari",
"durationDays": 30
},
"vouchers": [
{
"code": "CKAB-CDEF-1234-5678",
"codePreview": "CKAB...5678",
"status": "AVAILABLE",
"redeemedAt": null,
"expiresAt": null
}
]
}Status order menunjukkan hasil pembuatan voucher. Status voucher menunjukkan apakah kode masih bisa dipakai.
Order status:
- COMPLETED: voucher berhasil dibuat dan saldo sudah terpotong.
Voucher status:
- AVAILABLE: kode belum digunakan.
- REDEEMED: kode sudah dipakai user.
- EXPIRED: kode sudah melewati expiresAt.Semua error utama dikembalikan sebagai JSON dengan field message. Validasi input dapat menyertakan field issues.
{
"message": "Saldo reseller tidak cukup."
}
Kode HTTP umum:
- 400: input tidak valid.
- 401: API key reseller salah atau tidak dikirim.
- 402: saldo reseller kurang.
- 403: session admin tidak valid.
- 404: paket, reseller, atau order tidak ditemukan.
- 422: request validasi bisnis ditolak.
- 429: terlalu banyak request.externalRef untuk satu order agar retry tidak membuat voucher dobel.Integrasi untuk aplikasi partner yang ingin menjual voucher premium Clipku.
API key dibuat admin dan dikirim di header Authorization.
Voucher langsung memotong saldo reseller. Saldo kurang akan ditolak.
externalRef mencegah voucher dobel saat request diulang.
Endpoint reseller memakai Bearer API key. Endpoint admin untuk membuat reseller dan topup saldo memakai session admin.
# Reseller endpoint
Authorization: Bearer ckrs_live_xxxxxxxxx
# Admin endpoint
Cookie: clipku_session=ADMIN_SESSION_TOKENBase URL: https://drama.clipku.com
/api/admin/resellersBuat reseller dan API keyBuat akun reseller baru. API key hanya tampil sekali pada response pembuatan.
/api/admin/resellersTopup saldo resellerTambah saldo reseller melalui API admin. Endpoint ini membutuhkan session admin.
/api/reseller/plansCek saldo dan paketAmbil saldo reseller terbaru beserta daftar paket aktif.
/api/reseller/vouchersBuat voucherBuat satu atau beberapa voucher memakai saldo reseller.
/api/reseller/vouchers/{externalRef}Cek order voucherAmbil ulang status order dan daftar voucher berdasarkan externalRef.
Admin membuat reseller untuk owner yang sudah terdaftar. Simpan apiKey dari response karena hanya tampil sekali.
curl -X POST https://drama.clipku.com/api/admin/resellers \
-H "Content-Type: application/json" \
-H "Cookie: clipku_session=ADMIN_SESSION_TOKEN" \
-d '{
"name": "Partner Store",
"ownerEmail": "partner@example.com",
"initialBalance": 100000
}'initialBalance opsional. Jika diisi, saldo awal langsung masuk ke reseller baru.
{
"message": "Reseller dibuat. Simpan API key karena tidak akan ditampilkan lagi.",
"reseller": {
"id": "clx_reseller_id",
"name": "Partner Store",
"keyPreview": "ckrs_live_...abcd12",
"balance": "100000.00",
"isActive": true
},
"apiKey": "ckrs_live_xxxxxxxxx"
}Topup saldo dilakukan lewat API admin. Nilai addBalance bersifat increment, bukan mengganti saldo lama.
curl -X PATCH https://drama.clipku.com/api/admin/resellers \
-H "Content-Type: application/json" \
-H "Cookie: clipku_session=ADMIN_SESSION_TOKEN" \
-d '{
"id": "clx_reseller_id",
"action": "UPDATE_RESELLER",
"addBalance": 100000
}'Response mengembalikan saldo terbaru reseller dan update tercatat di audit admin.
{
"message": "Reseller diperbarui.",
"reseller": {
"id": "clx_reseller_id",
"name": "Partner Store",
"keyPreview": "ckrs_live_...abcd12",
"balance": "250000.00",
"isActive": true,
"updatedAt": "2026-07-11T08:10:00.000Z"
}
}Gunakan API key reseller untuk mengambil saldo terbaru dan daftar paket yang bisa dibuat voucher.
curl https://drama.clipku.com/api/reseller/plans \
-H "Authorization: Bearer ckrs_live_xxxxxxxxx"Nilai balance dan price dikembalikan sebagai decimal.
{
"reseller": {
"id": "clx_reseller_id",
"name": "Partner Store",
"balance": "150000.00"
},
"plans": [
{
"id": "clx_plan_id",
"slug": "premium-30-hari",
"name": "Premium 30 Hari",
"price": "10000.00",
"durationDays": 30
}
]
}Kirim planId atau planSlug, jumlah voucher, dan externalRef.
curl -X POST https://drama.clipku.com/api/reseller/vouchers \
-H "Authorization: Bearer ckrs_live_xxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"planSlug": "premium-30-hari",
"quantity": 5,
"externalRef": "ORDER-APP-001"
}'Simpan externalRef dan kode voucher di sistem Anda.
{
"success": true,
"idempotent": false,
"order": {
"id": "clx_order_id",
"externalRef": "ORDER-APP-001",
"status": "COMPLETED",
"quantity": 5,
"amount": "50000"
},
"vouchers": [
{
"code": "CKAB-CDEF-1234-5678",
"durationDays": 30
}
]
}Pakai externalRef yang sama dengan request pembuatan voucher.
curl https://drama.clipku.com/api/reseller/vouchers/ORDER-APP-001 \
-H "Authorization: Bearer ckrs_live_xxxxxxxxx"Status voucher menampilkan apakah kode masih tersedia atau sudah dipakai.
{
"order": {
"id": "clx_order_id",
"externalRef": "ORDER-APP-001",
"status": "COMPLETED",
"quantity": 5,
"amount": "50000.00",
"createdAt": "2026-07-11T08:00:00.000Z"
},
"plan": {
"slug": "premium-30-hari",
"name": "Premium 30 Hari",
"durationDays": 30
},
"vouchers": [
{
"code": "CKAB-CDEF-1234-5678",
"codePreview": "CKAB...5678",
"status": "AVAILABLE",
"redeemedAt": null,
"expiresAt": null
}
]
}Status order menunjukkan hasil pembuatan voucher. Status voucher menunjukkan apakah kode masih bisa dipakai.
Order status:
- COMPLETED: voucher berhasil dibuat dan saldo sudah terpotong.
Voucher status:
- AVAILABLE: kode belum digunakan.
- REDEEMED: kode sudah dipakai user.
- EXPIRED: kode sudah melewati expiresAt.Semua error utama dikembalikan sebagai JSON dengan field message. Validasi input dapat menyertakan field issues.
{
"message": "Saldo reseller tidak cukup."
}
Kode HTTP umum:
- 400: input tidak valid.
- 401: API key reseller salah atau tidak dikirim.
- 402: saldo reseller kurang.
- 403: session admin tidak valid.
- 404: paket, reseller, atau order tidak ditemukan.
- 422: request validasi bisnis ditolak.
- 429: terlalu banyak request.externalRef untuk satu order agar retry tidak membuat voucher dobel.