Mulai dalam Tiga Langkah
Partner API dirancang untuk reseller yang ingin mengintegrasikan produk Ezkielyna ke bot atau aplikasi mereka.
/partner_api. Key hanya ditampilkan satu kali.Autentikasi yang Aman
Base URL: https://ezkielyna.store/partner/v1
# Header Autentikasi Standar
Authorization: Bearer YOUR_PARTNER_API_KEY
Idempotency-Key: unique_key_for_each_write
# Contoh Cek Saldo & Status
curl -s https://ezkielyna.store/partner/v1/balance -H "Authorization: Bearer YOUR_PARTNER_API_KEY"
Idempotency-Key unik. Retry dengan key yang sama mengembalikan hasil awal; body berbeda dengan key sama ditolak dengan 409.
Katalog & Saldo
Endpoint pembacaan data katalog produk, saldo wallet partner, riwayat order, dan invoice topup.
| Method | Endpoint | Fungsi |
|---|---|---|
| GET | /products |
SKU yang tersedia melalui Partner API (170+ SKU) dan harga partner resmi. |
| GET | /balance |
Partner Balance serta limit transaksi harian. |
| GET | /orders |
Riwayat order partner dan status pemenuhan. |
| GET | /orders/po_{id} |
Baca status spesifik satu order dan kredensial delivery. |
| GET | /topups |
Riwayat top-up Partner Balance dan invoice pembayaran. |
curl -s https://ezkielyna.store/partner/v1/products -H "Authorization: Bearer YOUR_PARTNER_API_KEY"
Harga Dikontrol Ezkielyna
Reseller tidak dapat mengubah harga produk melalui Partner API. Harga pada GET /products adalah harga partner resmi dan otomatis menjadi dasar pemotongan Partner Balance.
Jangan mengirim field harga atau markup sebagai sumber kebenaran. Harga dihitung server-side oleh Ezkielyna dan field harga dari client tidak mengubah total order.
Simulasi Margin Keuntungan Reseller
Pilih produk dan tentukan harga jual ke customer untuk menghitung estimasi profit:
Buat Order
Hanya SKU dari GET /products yang bisa dipesan. Harga dihitung server-side; jangan kirim harga dari aplikasi kamu.
curl -X POST https://ezkielyna.store/partner/v1/purchases -H "Authorization: Bearer YOUR_PARTNER_API_KEY" -H "Idempotency-Key: order_20260817_0001" -H "Content-Type: application/json" -d '{
"product_code": "api-credit-25",
"quantity": 1,
"customer_reference": "INV-1001"
}'
Gunakan GET /orders/po_123 untuk membaca status dan delivery setelah order selesai.
Top-up Partner Balance
Top-up terikat ke akun reseller dan hanya dikredit setelah pembayaran diverifikasi server-side.
# 1. Top-up via QRIS
curl -X POST https://ezkielyna.store/partner/v1/topups -H "Authorization: Bearer YOUR_PARTNER_API_KEY" -H "Idempotency-Key: topup_20260817_0001" -H "Content-Type: application/json" -d '{"payment_method":"qris","amount":50000}'
# 2. Top-up via USDT BSC
curl -X POST https://ezkielyna.store/partner/v1/topups -H "Authorization: Bearer YOUR_PARTNER_API_KEY" -H "Idempotency-Key: topup_20260817_0002" -H "Content-Type: application/json" -d '{"payment_method":"usdt","amount":50000,"rail":"usdt_bsc"}'
Setelah membayar, cek GET /topups/ptp_123. Untuk USDT, ikuti persis nominal dan network pada invoice.
Template Integrasi Siap Pakai
Contoh modul integrasi lengkap untuk menghubungkan bot Telegram, web app, atau backend toko Anda ke Partner API:
import requests, uuid
class EzkielynaPartnerClient:
def __init__(self, api_key: str, base_url: str = "https://ezkielyna.store/partner/v1"):
self.api_key = api_key
self.base_url = base_url.rstrip("/")
self.session = requests.Session()
self.session.headers.update({
"Authorization": f"Bearer {self.api_key}",
"Content-Type": "application/json"
})
def get_balance(self) -> dict:
# Check partner balance and daily limit
res = self.session.get(f"{self.base_url}/balance")
res.raise_for_status()
return res.json()["balance"]
def list_products(self) -> list:
# Fetch entire active digital products catalog
res = self.session.get(f"{self.base_url}/products")
res.raise_for_status()
return res.json()["products"]
def purchase(self, product_code: str, quantity: int = 1, customer_ref: str = "") -> dict:
# Purchase instant product with Idempotency protection
idempotency_key = f"ord_{uuid.uuid4().hex}"
payload = {
"product_code": product_code,
"quantity": quantity,
"customer_reference": customer_ref
}
res = self.session.post(
f"{self.base_url}/purchases",
json=payload,
headers={"Idempotency-Key": idempotency_key}
)
return res.json()
# Usage Example:
# client = EzkielynaPartnerClient("ezk_live_YOUR_KEY")
# print(client.get_balance())
# order = client.purchase("api-credit-25", quantity=1, customer_ref="INV-BOT-001")
# print("Delivered Credentials:", order["order"].get("delivery", []))
Error & Retry
| Code | Arti | Aksi |
|---|---|---|
UNAUTHORIZED |
Key salah atau sudah dicabut. | Periksa environment key. |
INSUFFICIENT_BALANCE |
Saldo partner kurang. | Top-up lalu ulangi request. |
RATE_LIMITED |
Limit request tercapai. | Tunggu sesuai Retry-After. |
IDEMPOTENCY_CONFLICT |
Key dipakai untuk body berbeda. | Buat key baru; jangan ubah body saat retry. |
PAYMENT_METHOD_UNAVAILABLE |
Rail belum aktif. | Pilih method/rail yang tersedia. |
request_id dari respons ke support. Jangan kirim API key atau detail delivery.
Pertanyaan Umum
request_id dan order_code dari respon API ke Customer Support via WhatsApp di +62 857-1099-9204 untuk klaim garansi ganti baru instan.