v2.0 — Perombakan besar
Baru
- Dasbor mobile baru dengan cetak invoice QRIS, link bayar, analitik, dan mode demo.
- Endpoint
GET /api/stats(khusus dasbor),GET /api/audit,POST /api/me/password, danPOST /api/me/webhook/test. - Filter
status,q, dan kursorbeforepadaGET /api/invoices. - Tombol kirim tes webhook dan putar ulang secret.
- Dokumentasi API dan halaman pendukung.
Perbaikan bug
- Pembayaran ganda: satu pembayaran bisa mengkredit dua invoice bernominal sama (termasuk antar merchant). Sekarang hanya invoice terbaru yang diklaim.
- Biaya dan waktu lunas: respons invoice yang baru lunas mengembalikan
fee0 danpaid_atkosong. Sekarang nilainya dibaca ulang dari database. - PATCH /api/me: sebelumnya
webhook_urlikut terhapus bila tidak dikirim. Sekarang hanya field yang dikirim yang diubah. - Pembatas laju: login, PIN, token admin, dan API key kini hanya menghitung percobaan gagal, sehingga pengguna yang benar tidak terkunci.
- Mode layanan: nilai
PROVIDERselainsandboxataugatewaysebelumnya diam-diam jatuh ke sandbox. Sekarang ditolak (502). - Galat tak terduga: body JSON
nullatau array, serta header Originnull, tidak lagi menyebabkan500. Semua galat dijawab JSON. - Daftar invoice: hanya invoice yang masih hidup yang disegarkan ke gateway, dan jumlah per halaman dibatasi.
- Basis data:
schema.sqlidempoten, ditambah indeks untuk kueri dasbor, dan sesi kedaluwarsa dibersihkan berkala.
Perubahan perilaku
GET /api/invoicesmenambahkan fieldnextuntuk paginasi.- Payload webhook
invoice.paidmenambahkannet_amountdanfee. - Maksimal 10 API key aktif per akun.