Subscriptions dan dunning
Langganan tanpa auto-debit, invoice hosted lewat QRIS atau VA, dan alur dunning.
QRIS dan virtual account tidak bisa didebit otomatis. Karena itu Nyaur tidak menarik uang dari pembeli secara otomatis. Setiap periode, Nyaur membuat invoice hosted yang dibayar pembeli lewat QRIS atau VA, lalu menjalankan dunning bila belum dibayar.
Membuat langganan
Langganan lahir dari pembayaran pertama sebuah harga berulang (recurring bukan one_time, lihat Products dan prices). Setelah pembayaran lunas, event subscription.created terkirim.
Siklus periode
- Saat periode berakhir, Nyaur membuka order dan invoice baru untuk periode berikutnya, dengan
dueAt3 hari setelah invoice dibuat. - Pembeli membayar invoice lewat QRIS atau VA. Setelah lunas:
subscription.renewed,order.paid, dan langganan berlanjut. - Bila lewat jatuh tempo, dunning berjalan.
Panjang periode mengikuti recurring dan intervalCount. Tanggal akhir bulan dijepit ke hari terakhir bulan itu (31 Januari berlanjut ke 28 atau 29 Februari).
Dunning
| Percobaan | Terjadi pada | Status langganan |
|---|---|---|
| 1 | Jatuh tempo | past_due dan event subscription.past_due |
| 2 | Jatuh tempo + 1 hari | unpaid dan event subscription.past_due lagi |
| 3 | Jatuh tempo + 2 hari | Dibatalkan, invoice uncollectible |
Nyaur menjalankan tick dunning dari cron tiap 5 menit. Tick yang berulang pada jendela yang sama tidak menghabiskan percobaan. Pembayaran invoice kapan pun sebelum percobaan ketiga mengembalikan langganan ke active dan mereset hitungan.
Payload subscription.past_due memuat attempt, invoiceId, dueAt, dan status. Dengarkan event ini untuk mengirim pengingat atau membatasi akses sementara.
Membatalkan
Pembatalan dilakukan dari dashboard:
- Sebelum periode berakhir: langganan hanya diberi tanda
cancelAtPeriodEnd. Pembeli tetap punya akses sampai akhir periode yang sudah dibayar. Tanda ini bisa dicabut (resume). - Setelah periode lewat: pembatalan langsung. Event
subscription.canceled.
Pembeli juga bisa membatalkan dari portal pelanggan di nyaur.id/portal.
Event
subscription.created, subscription.renewed, subscription.past_due, subscription.canceled. Lihat Webhooks.