Open API v1 Kembali ke Website
REST API JSON Bearer Token Open API v1

Open API Vendira

Open API Vendira menyediakan antarmuka RESTful berbasis JSON untuk mengelola transaksi dan produk dari aplikasi vending machine. Semua endpoint dilindungi Bearer Token.

ℹ️ API ini hanya tersedia untuk klien terdaftar. Hubungi tim Vendira di admin@kasolusi.com atau +62 822-7333-3535 untuk mendapatkan API Key.

Autentikasi

Semua request memerlukan Bearer Token yang dikirim melalui header Authorization.

HTTP Header
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Accept: application/json, text/plain, */*
⚠️ Jangan simpan API Key di sisi klien atau repository publik. Gunakan variabel lingkungan AUTH_KEY untuk menyimpan kredensial.

Base URL

Semua endpoint menggunakan base URL berikut:

Production
https://andromeda.kasolusi.com

Error Handling

API menggunakan HTTP status code standar. Setiap respons menyertakan field status dan message.

200 OK 400 Bad Request 401 Unauthorized 404 Not Found 500 Server Error
Contoh Response Error
{
  "status": false,
  "message": "Unauthorized"
}

GET List Transaksi

GET /admin/transactions

Mengembalikan daftar semua transaksi dengan filter dan pagination. Mendukung pencarian berdasarkan rentang tanggal, mesin, status, dan client.

Contoh Request
GET https://andromeda.kasolusi.com/admin/transactions
    ?start=2025-10-01&end=2025-10-31&machine=66&status=SETTLED&page=1&limit=10
Authorization: Bearer YOUR_API_KEY
Accept: application/json

Query Parameters

ParameterTipeKeterangan
startopsionalTanggal mulai filter — format YYYY-MM-DD
endopsionalTanggal akhir filter — format YYYY-MM-DD
machineopsionalID mesin vending
statusopsionalSETTLED | PENDING | FAILED
clientopsionalID client/operator
searchopsionalPencarian teks bebas (invoice, nama produk)
pageopsionalNomor halaman — default 1
limitopsionalJumlah item per halaman — default 10
Response 200 — OK
{
  "status": true,
  "message": "Berhasil",
  "data": {
    "data": [
      {
        "id": 23824,
        "amount": 7500,
        "machine": {
          "id": 66,
          "code": "RTP800023"
        },
        "detail": [
          {
            "status": "SUCCESS",
            "product": { "name": "Cap Panda Sarang Burung" }
          }
        ],
        "invoice_id": "df381af4-5416-4bdc-b120-d12293a19c02",
        "invoice_number": "MID-BDGFQIQFNF",
        "transaction_status": "SETTLED",
        "created_at": "31-10-2025 21:26:25",
        "paid_timestamp": "31-10-2025 21:26:33"
      }
    ],
    "page": 1,
    "total": 1478,
    "totalAll": 14777
  }
}

Keterangan Field Response

id
number
ID transaksi internal
amount
number
Nominal transaksi dalam IDR (Rupiah)
machine.id
number
ID mesin vending
machine.code
string
Kode unik mesin (mis. RTP800023)
detail[].status
string
SUCCESS | PENDING | FAILED
detail[].product.name
string
Nama produk yang dibeli
invoice_id
string (UUID)
ID invoice internal (UUID)
invoice_number
string
Nomor invoice eksternal (prefix XEN- atau MID-)
transaction_status
string
Status agregat transaksi (mis. SETTLED)
created_at
string
Waktu transaksi dibuat
paid_timestamp
string
Waktu transaksi dibayar
total / totalAll
number
Total data di halaman ini / total keseluruhan

GET Detail Transaksi

GET /admin/transaction/:invoice_number

Mengembalikan detail lengkap satu transaksi berdasarkan invoice_number — termasuk data board, produk, stok, dan status dispensing.

Contoh Request
GET https://andromeda.kasolusi.com/admin/transaction/MID-BDGFQIQFNF
Authorization: Bearer YOUR_API_KEY
Response 200 — OK
{
  "status": true,
  "message": "Berhasil Menyimpan data",
  "data": {
    "id": 23824,
    "invoice_id": "df381af4-5416-4bdc-b120-d12293a19c02",
    "machine_id": 66,
    "invoice_number": "MID-BDGFQIQFNF",
    "transaction_status": "SETTLED",
    "paid_timestamp": "2025-10-31 21:26:33",
    "expiry_date": "2025-11-01 21:26:25",
    "payment_method": "Midtrans",
    "amount": 7500,
    "created_at": "2025-10-31T14:26:25.000000Z",
    "detail": [
      {
        "id": 25929,
        "transaction_id": 23824,
        "board_id": 2066,
        "product_id": 134,
        "quantity": 1,
        "price": 7500,
        "status": "SUCCESS",
        "board": {
          "board": "42",
          "stock": 2,
          "default_stock": 5,
          "status_motor": 1
        },
        "product": {
          "id": 134,
          "name": "Cap Panda Sarang Burung",
          "sku": "8995227500582",
          "price": "1",
          "cost_price": "7000",
          "image": "https://kiwari-assets.oeltimacreation.com/..."
        }
      }
    ]
  }
}

Keterangan Field Tambahan

expiry_date
string
Batas waktu pembayaran transaksi
payment_method
string
Metode pembayaran (mis. Midtrans)
detail[].board_id
number
ID slot/board dalam mesin
detail[].board.board
string
Nomor slot/board fisik pada mesin
detail[].board.stock
number
Stok saat ini setelah transaksi
detail[].board.status_motor
number
1 = motor aktif, 0 = motor mati
detail[].product.sku
string
Barcode/SKU produk
detail[].product.cost_price
string
Harga pokok produk (IDR)

GET List Mesin

GET /admin/machines

Mengembalikan daftar semua mesin vending yang terdaftar — termasuk informasi client, stok, status aktivasi, versi app, dan konfigurasi warna tampilan mesin.

Contoh Request
GET https://andromeda.kasolusi.com/admin/machines
Authorization: Bearer YOUR_API_KEY
Accept: application/json

Query Parameters

ParameterTipeKeterangan
pageopsionalNomor halaman — default 1
limitopsionalJumlah item per halaman — default 10
groupopsionalFilter berdasarkan grup mesin (mis. JAKARTA)
activationopsionalactive | inactive
Response 200 — OK
{
  "status": true,
  "message": "Berhasil",
  "data": {
    "page": 1,
    "totalPage": 28,
    "all": 276,
    "limit": 10,
    "data": [
      {
        "id": 88,
        "name": "PRASMULMEDCILANDAKJKT",
        "code": "RTP800041",
        "group": "NULL",
        "pin": "224468",
        "status": "1",
        "max_stock": 257,
        "address": "Univ Prasmul",
        "payment": "xendit",
        "primary_color": "#001eff",
        "background_color": "#ffffff",
        "stock": 182,
        "activation": "active",
        "app_version": "2.1.4",
        "client": {
          "id": 2,
          "name": "Danpac",
          "logo": "https://kiwari-assets.oeltimacreation.com/...",
          "status": 1,
          "machine": 300,
          "address": "Green Sedayu Bizpark",
          "max_cart": 3,
          "payment": "xendit",
          "membership": "true",
          "payment_provider": null
        }
      }
    ]
  }
}

Keterangan Field Response

id
number
ID mesin internal
name
string
Nama mesin (biasanya gabungan lokasi + kode)
code
string
Kode unik mesin (mis. RTP800041)
group
string
Grup mesin (mis. JAKARTA) atau NULL
status
string
"1" = aktif, "0" = nonaktif
max_stock
number
Kapasitas maksimum stok mesin
stock
number
Stok saat ini dalam mesin
activation
string
active | inactive
app_version
string
Versi aplikasi yang berjalan di mesin
payment
string
Payment gateway mesin (mis. xendit)
primary_color
string (hex)
Warna primer tampilan UI mesin
background_color
string (hex)
Warna background UI mesin
client.name
string
Nama client/operator pemilik mesin
client.max_cart
number
Maksimum item per transaksi
client.membership
string
"true" jika client mengaktifkan fitur membership
totalPage / all
number
Total halaman / total seluruh mesin

GET Board per Mesin

GET /admin/boards?machine=:id

Mengembalikan daftar semua slot (board) dalam satu mesin beserta produk yang ada di tiap slot — termasuk harga, stok saat ini, stok default, dan status motor.

Contoh Request
GET https://andromeda.kasolusi.com/admin/boards?machine=88
Authorization: Bearer YOUR_API_KEY
Accept: application/json

Query Parameters

ParameterTipeKeterangan
machinewajib · numberID mesin yang ingin ditampilkan board-nya
Response 200 — OK
{
  "status": true,
  "message": "Berhasil",
  "data": [
    {
      "id": 3301,
      "machine_id": 88,
      "product_id": 154,
      "board": "1",
      "status_motor": 1,
      "original_price": 7500,
      "price": 7500,
      "stock": 1,
      "default_stock": 4,
      "product": {
        "id": 154,
        "category_id": 10,
        "name": "POP MIE GORENG",
        "image": "https://kiwari-assets.oeltimacreation.com/...",
        "sku": "1010101010111",
        "price": "1",
        "cost_price": "7500",
        "description": "",
        "brand": null
      }
    }
  ]
}

Keterangan Field Response

id
number
ID board/slot
machine_id
number
ID mesin pemilik board ini
board
string
Nomor slot fisik dalam mesin (mis. "1", "42")
status_motor
number
1 = motor aktif/normal, 0 = motor mati/error
price
number
Harga jual produk di slot ini (IDR)
original_price
number
Harga asli sebelum diskon (IDR)
stock
number
Jumlah stok produk saat ini di slot
default_stock
number
Kapasitas default slot (target isi ulang)
product.name
string
Nama produk di slot ini
product.sku
string
Barcode / SKU produk
product.cost_price
string
Harga pokok produk (IDR)
product.image
string (URL)
URL gambar produk dari asset server Kiwari

GET List Produk

GET /admin/products

Mengambil seluruh produk yang terdaftar di katalog vending — termasuk harga, SKU, gambar, dan kategori.

Contoh Request
GET https://andromeda.kasolusi.com/admin/products
Authorization: Bearer YOUR_API_KEY
Accept: application/json
📬 Butuh bantuan integrasi atau endpoint tambahan? Hubungi tim teknis Vendira: admin@kasolusi.com atau WhatsApp +62 822-7333-3535.