TokoProAPI

Dokumentasi endpoint

Hanya pihak ketiga yang sudah terdaftar yang boleh memanggil API. Setiap request wajib menyertakan public key dan private key.

Autentikasi

Kirim kedua header berikut:

X-Public-Key: pk_...
X-Private-Key: sk_...

Keys didapat setelah registrasi atau di halaman API Keys.

GET /health

Status service. Tidak memerlukan API keys.

curl http://localhost:3000/health
{
  "success": true,
  "service": "TokoProAPI"
}

GET /api/v1/company/:id

Mengambil data perusahaan dari database klien TokoPro. Ganti :id dengan ID perusahaan, misalnya SFT.

Pihak ketiga mengajukan ID perusahaan di dashboard. ID harus ada di tbperusahaan, lalu menunggu konfirmasi pihak TokoPro sebelum API bisa diakses.

curl http://localhost:3000/api/v1/company/SFT -H "X-Public-Key: pk_..." -H "X-Private-Key: sk_..."
{
  "success": true,
  "data": {
    "id": "SFT",
    "namaPerusahaan": "PT Sumber Indo",
    "alamatPerusahaan": "Jl. Contoh No. 1",
    "kotaPerusahaan": "Pontianak"
  }
}

GET /api/v1/company/:id/customers

Menampilkan daftar pelanggan dari tbpelanggan. Response list hanya berisi kode dan nama.

Gunakan parameter opsional q, kota, area, active, limit, dan cursor. Nilai limit default 50 dan maksimal 100.

curl "http://localhost:3000/api/v1/company/SFT/customers?q=SUMBER&area=AR01&active=1&limit=50" -H "X-Public-Key: pk_..." -H "X-Private-Key: sk_..."
{
  "success": true,
  "data": [
    {
      "kode": "CUST001",
      "nama": "Toko Maju"
    }
  ],
  "pagination": {
    "limit": 50,
    "nextCursor": "CUST001"
  }
}

Jika nextCursor tidak null, kirim nilainya pada request selanjutnya: ?cursor=CUST001&limit=50.

GET /api/v1/company/:id/customers/:kode

Mengambil detail satu pelanggan berdasarkan kode. Kode pada URL harus di-URL-encode jika mengandung karakter khusus.

curl http://localhost:3000/api/v1/company/SFT/customers/CUST001 -H "X-Public-Key: pk_..." -H "X-Private-Key: sk_..."
{
  "success": true,
  "data": {
    "kode": "CUST001",
    "nama": "Toko Maju",
    "alamat": "Jl. Contoh No. 1",
    "kota": "Pontianak",
    "telp": "0561...",
    "noHp": "08...",
    "email": "customer@example.com",
    "contactPerson": "Budi",
    "kodeArea": "AR01",
    "kodeRute": "R01",
    "aktif": true
  }
}

Status error