API Bot JENA Coffee
Untuk bot WhatsApp, chatbot AI, atau sistem lain yang ingin membaca menu dan membuat invoice pesanan.
Cara memulai
- Pemilik membuka aplikasi JENA Coffee, menu Tim, kartu Bot WhatsApp & AI, lalu menekan Buat kunci.
- Kunci berbentuk
jena_…dan hanya tampil sekali. Simpan di pengaturan rahasia bot, jangan di dalam pesan chat. - Kirim kunci di setiap permintaan sebagai header
Authorization: Bearer jena_…
Alamat dasar API:
1. Lihat menu & harga
GET/api/bot/menu
Daftar produk yang sedang dijual, kategori, dan rekening pembayaran.
curl BASE/api/bot/menu \
-H "Authorization: Bearer jena_KUNCI_ANDA"
{
"business": { "name": "JENA Coffee", "payment": { "bank": "BCA", "account_number": "0710511799", "account_name": "LARAS", "note": "Pesanan akan kami proses setelah pembayaran kami terima." } },
"categories": ["Favorit", "Kopi", "Non-kopi", "Teh & segar"],
"products": [ { "id": "p1", "name": "Ube Cream", "category": "Favorit", "price": 16000 } ]
}
2. Buat invoice dari pesanan
POST/api/bot/invoices
Harga selalu diambil dari menu JENA, bukan dari bot. Produk ditulis dengan name (nama persis seperti di menu) atau id. Invoice baru langsung muncul di menu Invoice aplikasi dengan status Belum lunas.
curl -X POST BASE/api/bot/invoices \
-H "Authorization: Bearer jena_KUNCI_ANDA" \
-H "Content-Type: application/json" \
-d '{
"customer": { "name": "Bu Rina", "phone": "081234567890", "address": "Jl. Merdeka 12" },
"items": [ { "name": "Ube Cream", "qty": 10 }, { "name": "Americano", "qty": 5 } ],
"note": "Diambil Sabtu pukul 10.00",
"due_days": 1
}'
Jawaban berisi nomor invoice, total, dan message: teks tagihan siap dikirim ke customer lewat WhatsApp.
{
"no": "INV-2611-0007", "status": "belum_lunas", "total": 185000, "due": "2026-11-09",
"payment": { "bank": "BCA", "account_number": "0710511799", "account_name": "LARAS" },
"message": "Halo Bu Rina, ... *Total: Rp185.000* ..."
}
| Field | Wajib | Keterangan |
|---|---|---|
customer.name | Ya | Nama customer, maks. 80 karakter. |
customer.phone | Tidak | Nomor WhatsApp, dipakai untuk cek status. |
customer.address | Tidak | Alamat atau keterangan pengambilan. |
items[] | Ya | 1–50 produk, masing-masing name atau id, dan qty 1–999. |
note | Tidak | Catatan yang tercetak di invoice. |
due_days | Tidak | Jatuh tempo, hari dari sekarang (0–30). Bawaan 1. |
3. Cek status pembayaran
GET/api/bot/invoices/{no}
curl BASE/api/bot/invoices/INV-2611-0007 \
-H "Authorization: Bearer jena_KUNCI_ANDA"
Nilai status: belum_lunas, lunas, atau dibatalkan. Status menjadi lunas setelah kasir atau pemilik menekan Tandai lunas di aplikasi.
GET/api/bot/invoices?phone=081234567890 menampilkan 20 invoice terakhir untuk nomor tersebut.
Kode kesalahan
| Kode | Arti |
|---|---|
| 400 | Isi permintaan salah, misalnya produk tidak ada di menu. Pesan error menjelaskan apa yang perlu diperbaiki. |
| 401 | Kunci tidak dikirim, salah, atau sudah dicabut pemilik. |
| 404 | Invoice atau alamat API tidak ditemukan. |
| 500 | Gangguan di server. Coba lagi beberapa saat kemudian. |
Keamanan
- Bot hanya bisa melihat menu, membuat invoice, dan mengecek status invoice. Bot tidak bisa melihat laporan penjualan, akun PIC, atau mengubah harga.
- Pemilik bisa mencabut kunci kapan saja dari menu Tim. Kunci yang dicabut langsung berhenti bekerja.
- Buat satu kunci per bot supaya mudah dicabut kalau salah satunya bocor.