payments without a gateway
The Order Lifecycle
Orders land as PENDING with a live 24-hour countdown. Buyers pay by QRIS, upload the transaction proof (atas nama + screenshot → AVIF on Cloudinary), and every admin gets notified. Approve moves it to PAID and issues a licence per item automatically; reject returns it with a visible reason. Expired orders cancel themselves, lazily.




