Bab 13 · Developer API
Mulai Cepat
Lima langkah dari nol sampai data penjualan pertama masuk ke sistem Anda, lengkap dengan perintah yang bisa disalin.
Ikuti lima langkah ini berurutan. Total sekitar lima menit, dengan asumsi Anda sudah punya akses admin ke Lensiro.
Langkah 1 — Buat API key
Di aplikasi Lensiro, buka Pengaturan → API Key, lalu klik Buat API Key.
- Isi Nama dengan tujuan integrasinya, misalnya
Integrasi Google Sheets. Nama ini yang muncul kembali di respons/ping. - Kedaluwarsa boleh dikosongkan kalau key tidak perlu masa berlaku.
- Setelah disimpan, key ditampilkan satu kali saja dalam bentuk
lsk_live_.... Salin sekarang dan simpan di tempat aman. Kalau hilang, key lama harus dicabut dan diganti key baru.
Langkah 2 — Siapkan dua variabel
Semua contoh di dokumentasi ini memakai dua nilai berikut:
export BASE="https://app-anda.lensiro.com/api/v1"
export KEY="lsk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Ganti app-anda.lensiro.com dengan alamat yang Anda pakai untuk login ke Lensiro.
Langkah 3 — Cek koneksi
curl -H "Authorization: Bearer $KEY" "$BASE/ping"
{ "ok": true, "key_name": "Integrasi Google Sheets" }
Kalau yang keluar justru {"error":{"code":"missing_api_key"}} atau invalid_api_key, lihat halaman Kode Error & Pemecahan Masalah.
Langkah 4 — Kenali cabang Anda
curl -H "Authorization: Bearer $KEY" "$BASE/branches"
{
"data": [
{ "id": 1, "code": "PST", "name": "Cabang Pusat" },
{ "id": 2, "code": "BDG", "name": "Cabang Bandung" }
]
}
Simpan pemetaan ini. Semua data lain menyebut cabang lewat branch_id, dan Anda tidak perlu menuliskannya secara hardcode.
Langkah 5 — Tarik penjualan pertama
Ambil lima transaksi saja supaya keluarannya kecil dan mudah dibaca:
curl -H "Authorization: Bearer $KEY" "$BASE/sales?limit=5"
Balasannya berbentuk:
{
"data": [ { "id": 18234, "sales_order_number": "SO-PST-1042", "...": "..." } ],
"pagination": {
"next_cursor": "eyJ1IjoiMjAyNi0wOC0xM1QwNTozMDoxMi4wMDBaIiwiaSI6MTgyMzR9",
"has_more": true
}
}
Selesai — Anda sudah menarik data pertama.
Langkah berikutnya
- Data keluar urut dari yang paling lama berubah. Untuk menarik semuanya, ikuti
next_cursorsampaihas_morebernilaifalse. Caranya di Konvensi Respons & Paginasi. - Untuk integrasi berkala (misalnya tiap jam ke Google Sheets), jangan tarik ulang semuanya. Pakai pola
updated_sincedi halaman Panduan Integrasi & Contoh Kode.
Checklist sebelum dianggap siap produksi
- Key disimpan sebagai environment variable atau di secret manager — bukan di dalam kode atau di sel spreadsheet.
- Loop paginasi berhenti berdasarkan
has_more, bukan berdasarkan tebakan jumlah halaman. - Penyimpanan Anda melakukan upsert berdasarkan
id, bukan insert saja. - Polling memakai
include_deleted=truesupaya penghapusan ikut terbawa. - Respons
429ditangani dengan menunggu sesuai headerRetry-After. - Tanggal dari API dianggap UTC dan dikonversi ke WIB (+7) sebelum dipakai untuk rekap harian.

