Akurata POS Kasir dan pembukuan toko
Untuk Developer Aplikasi

Dokumentasi API Terbuka.

Integrasikan aplikasi POS kasir buatan Anda (Android/iOS/Windows) dengan database Akurata POS secara real-time melalui REST API yang aman dan cepat.

Pengenalan API

API ini menggunakan metode arsitektur REST untuk pertukaran data JSON secara stateless. API dirancang khusus untuk menghubungkan aplikasi POS (Point of Sale) eksternal dengan server Akurata POS.

Spesifikasi Umum

  • Base URL: https://akurata.my.id/api/pos/
  • Format Data: JSON (Content-Type: application/json)
  • Autentikasi: Bearer Token.
Perhatian: Semua request (kecuali Login) wajib menyertakan header otorisasi HTTP berikut:
Authorization: Bearer <API_TOKEN>

1. Login (Generate Token)

Digunakan untuk memvalidasi user (kasir) dan mendapatkan API_TOKEN.

  • Endpoint: /auth.php
  • Method: POST

Request Body (JSON):

{
  "email": "kasir@toko.com",
  "password": "password123"
}

Response (200 OK):

{
  "status": "success",
  "message": "Login berhasil.",
  "data": {
    "token": "4a7b9c8d... (simpan token ini di aplikasi)",
    "user": {
      "id": 12,
      "name": "Budi Kasir",
      "email": "kasir@toko.com",
      "role": "cashier"
    },
    "outlet": {
      "id": 1,
      "name": "Cabang Utama"
    }
  }
}
Simpan token yang didapat di atas menggunakan penyimpanan lokal (misal: SharedPreferences di Android) untuk digunakan pada request selanjutnya.

2. Ambil Daftar Produk

Digunakan untuk memuat daftar produk dan stok terkini untuk ditampilkan di layar mesin kasir.

  • Endpoint: /products.php
  • Method: GET
  • Header Wajib: Authorization: Bearer <API_TOKEN>

Response (200 OK):

{
  "status": "success",
  "data": [
    {
      "id": 101,
      "name": "Kopi Susu Gula Aren",
      "sku": "KOP-001",
      "barcode": "8991234567890",
      "category": "Minuman",
      "type": "simple",
      "stock": 50,
      "sell_price": 18000,
      "buy_price": 10000
    }
  ]
}

3. Kirim Transaksi Baru (Checkout)

Digunakan ketika pelanggan sudah selesai membayar. Endpoint ini akan mencatat penjualan di laporan web dan otomatis mengurangi stok produk di server.

  • Endpoint: /transactions.php
  • Method: POST
  • Header Wajib: Authorization: Bearer <API_TOKEN>

Request Body (JSON):

{
  "payment_method": "cash",
  "discount": 0,
  "tax": 0,
  "items": [
    {
      "product_id": 101,
      "qty": 2
    }
  ]
}

Catatan: Harga barang (price) tidak perlu dikirim karena server akan menggunakan harga asli dari database demi keamanan. Anda hanya perlu mengirimkan ID produk dan jumlah (qty).

Response (200 OK):

{
  "status": "success",
  "message": "Transaksi berhasil disimpan.",
  "data": {
    "transaction_id": 892,
    "invoice_no": "POS-260702-0001",
    "total": 51000
  }
}

Penanganan Error

Jika terjadi kesalahan (seperti token salah, produk tidak ada, dll), server akan membalas dengan status HTTP 400, 401, atau 500, beserta pesan error JSON berikut:

{
  "error": "Token tidak valid atau sesi telah berakhir."
}