Ketik alamat server API Anda, mis. https://api.perusahaan.co.id.
Semua contoh di halaman ini ikut berubah dan bisa langsung disalin.
Mulai dari sini
Membaca data SysAd lewat API terdiri dari dua tahap: login untuk mendapat token, lalu memakai token itu pada setiap permintaan data.
Login dilakukan dalam empat langkah singkat:
Cek akunKirim user dan pass. Anda mendapat daftar perusahaan.
Pilih entitasKirim id perusahaan. Anda mendapat daftar entitas.
Pilih tahunKirim id perusahaan dan entitas. Anda mendapat daftar tahun.
Minta tokenKirim semua pilihan tadi. Anda mendapat token.
Sudah tahu id perusahaan, entitas, dan tahunnya? Anda boleh langsung ke langkah 4 (minta token). Langkah 1 sampai 3 hanya untuk mengetahui id yang berlaku bagi akun Anda.
Setelah punya token, kirim di header token pada setiap permintaan data. Contoh mengambil data klien:
Login memakai header user dan pass (dan id lain sesuai langkah).
Data memakai header token. Token berlaku 1 hari dan terikat pada perusahaan, entitas, dan tahun yang dipilih.
Akses lewat HTTPS bila tersedia, karena user, password, dan token ikut terkirim di header.
Membaca dan menulis
Endpoint GET hanya membaca data.
Endpoint POST/PUT mengubah data dan hanya bisa dipakai oleh akun API yang diberi hak menulis. Tanpa hak itu dijawab HTTP 403.
Filter data (options)
Sebagian besar endpoint data menerima options untuk menyaring hasil. Aturannya sama di mana pun:
options adalah array JSON berisi satu objek: [{ ... }]. Hanya objek pertama yang dibaca.
Setiap filter berupa array nilai, mis. "cust_id": ["C00001", "C00002"]. Data yang cocok dengan salah satu nilai ikut tampil (ATAU).
Bila memakai beberapa filter sekaligus, data harus cocok dengan semuanya (DAN).
Filter yang dihilangkan atau berupa array kosong berarti tidak dibatasi. [{}] berarti semua data.
Nilai harus persis sama dengan kode di SysAd (huruf besar/kecil dan spasi).
Cara mengirim (v1).options dikirim sebagai query string dan harus di-URL-encode, mis.
?options=%5B%7B%22cust_id%22%3A%5B%22C00001%22%5D%7D%5D.
Contoh curl dan JavaScript di bawah sudah melakukannya untuk Anda. Pengecualian: endpoint Invoice (AR) tetap membaca options dari header.
Format respons
Semua endpoint menjawab dengan JSON yang bentuknya sama:
Status HTTP error kini 401 atau 403, bukan 200 dengan pengalihan. Isi JSON-nya tetap sama.
Batas login per alamat IP (bawaan 10 permintaan per menit; HTTP 429 bila terlampaui).
Pesan error lebih ringkas. Detail teknis hanya ada di log server.
Filter selalu berparameter. Tanda kutip dan karakter khusus pada nilai filter kini aman dan dianggap teks biasa.
Endpoint /api/v1/finance/ar yang tertulis di dokumentasi lama tidak pernah berfungsi. Alamat yang benar adalah /api/v1/finance/ar/get.
Perubahan data persetujuan (approval)
Persetujuan plan kini disimpan sebagai array JSON (name, role, time untuk tiap approver) dan dibaca dari satu tempat yang sama di Daftar plan dan Setujui plan.
Kolom app_by pada respons plan kini berisi array JSON tersebut (berupa teks). Kolom app_datedihapus; waktu persetujuan ada di dalam array (time).
Setujui plan (v1) kini memakai format app_by yang sama dengan versi awal: teks berisi array JSON. Teks biasa seperti "Budi" ditolak.
Referensi endpoint
Login
Empat langkah awal untuk mendapatkan token. Dipakai oleh semua versi.
GET/api/lgn/meCek akun dan daftar perusahaan
Memeriksa username dan password Anda, lalu menampilkan daftar perusahaan (company) yang boleh Anda akses. Ini langkah pertama setiap kali login. Perlu user dan pass di header
Catatan. Hasilnya bisa kosong bila akun belum diberi akses ke perusahaan mana pun.
Tahun dalam bentuk teks. Dikirim sebagai header year saat meminta token.
Value
string
Sama dengan Year.
Text
string
Tahun untuk ditampilkan.
GET/api/lgn/tokenMinta token akses
Menukar kredensial dan pilihan perusahaan/entitas/tahun dengan sebuah token. Token inilah yang dikirim di header token pada semua endpoint data. Perlu user dan pass di header
Catatan. Token berlaku 1 hari. Setelah itu minta token baru dengan langkah yang sama.
Catatan. Token terikat pada perusahaan, entitas, dan tahun yang Anda pilih. Ganti salah satunya berarti minta token baru.
Perhatian. Perlakukan token seperti password: jangan ditaruh di URL, kode publik, atau log.
Perhatian. Endpoint login dibatasi per alamat IP (bawaan 10 permintaan per menit; administrator dapat mengubahnya). Bila terlampaui dijawab HTTP 429; tunggu 1 menit.
Total nilai budget setahun, dihitung sesuai jenis budget (Original/Forecast/CPRP).
POST/api/v1/master/budget/createBuat budget baru
Membuat satu budget baru untuk sebuah produk. Nomor budget dibuat otomatis oleh sistem dan dikembalikan di respons. Perlu header token, akun harus berhak menulis
Catatan. Hanya objek pertama di dalam array yang diproses. Untuk membuat beberapa budget, kirim satu permintaan per budget.
Perhatian. Butuh akun API yang diberi hak menulis. Tanpa hak itu dijawab HTTP 403.
Perhatian. Bila po_id sudah dipakai, respons berisi success:false, pesan "PO Id ... already exist.", dan result berisi budget yang sudah ada.
Nomor plan, format NOMOR.PLAN/JENIS.GRUP, mis. AAA.260001/T.01 (T = televisi, grup 01).
cust_id
string
Kode klien.
cust
string
Nama klien.
product_id
string
Kode produk.
product
string
Nama produk.
p_date
string
Tanggal plan. Bisa kosong (null).
desc
string
Keterangan plan.
from
string
Awal periode tayang.
to
string
Akhir periode tayang.
ref
string
Nomor referensi/PO klien.
budget_id
string
Nomor budget yang dipakai.
app_by
string
Data persetujuan (approval) berupa array JSON (teks) berisi name, role, dan time setiap approver. Kosong bila belum disetujui.
order_id
string
Nomor order media.
order_date
string
Tanggal order.
ins
number
Jumlah penayangan/insertion.
value
number
Nilai gross.
paid
number
Nilai yang dibayarkan.
nett
number
Nilai nett.
media
string
Jenis media.
adtype_id
string
Jenis iklan.
mcs_id
string
Nomor MCS.
mcs_date
string
Tanggal MCS.
ar_id
string
Nomor invoice (piutang).
ar_date
string
Tanggal invoice. Bisa kosong (null).
status
string
Status plan.
fee
number
Fee agensi.
PUT/api/v1/media/plan/approveSetujui plan media
Mencatat persetujuan (approval) pada satu atau beberapa plan. Data persetujuan disimpan sebagai array JSON berisi nama, jabatan, dan waktu setiap approver. Perlu header token, akun harus berhak menulis
Catatan. Nilai app_by yang disimpan akan menggantikan data persetujuan sebelumnya pada plan itu. Untuk beberapa approver, masukkan semuanya dalam satu array.
Catatan. Data persetujuan yang sama bisa dibaca kembali lewat Daftar plan (kolom app_by).
Perhatian. Butuh akun API yang diberi hak menulis. Tanpa hak itu dijawab HTTP 403.
Perhatian. app_by harus berupa teks (string) yang isinya JSON, bukan array JSON langsung. Bila formatnya salah, respons berisi success:false dengan pesan "app_by must be in correct json format." atau menyebut properti yang kurang (name, role, atau time).
Respons berisi "Invalid token" padahal token saya benar?
Bila status HTTP-nya 200 tetapi pesannya Invalid token, biasanya yang salah adalah isi options:
bukan JSON yang valid, bukan berbentuk array, atau (untuk v1) belum di-URL-encode. Periksa dengan alat seperti jsonlint.com.
Bila status HTTP-nya 401, token memang tidak dikenali atau sudah kedaluwarsa; minta token baru.
Hasilnya kosong ([]) padahal datanya ada?
Periksa bahwa token dibuat untuk perusahaan, entitas, dan tahun yang tepat; data dibaca per tahun sesuai token.
Periksa juga filternya: kode klien/produk harus persis sama, dan beberapa filter sekaligus berarti semuanya harus cocok.
Berapa lama token berlaku? Haruskah login ulang tiap kali?
Token berlaku 1 hari. Simpan token dan pakai berulang sampai kedaluwarsa. Anda tidak perlu login untuk setiap permintaan.
Saya tidak bisa membuat atau menyetujui data (HTTP 403)
Akun API Anda belum diberi hak menulis. Hubungi administrator SysAd Anda untuk mengaktifkannya.
Contoh curl tidak jalan di Windows
Contoh memakai tanda kutip tunggal (') dan \ untuk menyambung baris, yang cocok untuk Git Bash, Linux, dan macOS.
Di Command Prompt Windows, tulis perintahnya dalam satu baris dan ganti kutip tunggal dengan kutip ganda (kutip ganda di dalam JSON diberi \).
Cara termudah: pakai aplikasi seperti Postman atau Insomnia, atau gunakan contoh JavaScript.