Status Pembayaran
Ringkasan
Bagian berjudul "Ringkasan"Baiyar punya tiga field status terpisah, di tiga level berbeda. Tertukar di antara ketiganya adalah sumber kebingungan paling umum saat mengecek apakah pelanggan sudah membayar:
| Field | Menjawab |
|---|---|
Transaction.status |
Apakah pembayaran ini berhasil, gagal, atau masih terbuka? |
Transaction.current_attempt.status |
Apa yang terjadi pada percobaan spesifik yang sedang berjalan? |
PaymentLink.status |
Apakah link ini sendiri masih bisa dibayar? |
Status Transaction — yang perlu ditindaklanjuti
Bagian berjudul "Status Transaction — yang perlu ditindaklanjuti"Ini field yang perlu di-polling atau dipantau lewat webhook. Ini hasil keseluruhan dari satu pembayaran (dibuat lewat payment link atau direct payment):
| Status | Arti |
|---|---|
pending |
Baru dibuat; percobaan pertama belum kembali dari provider — transient, jarang terlihat |
processing |
Satu percobaan sedang berjalan (pelanggan punya instruksi yang valid dan belum kedaluwarsa) |
succeeded |
Terminal. Satu percobaan berhasil dibayar — memicu payment.paid |
failed |
Percobaan terakhir tidak berhasil dan tidak ada yang sedang berjalan — pelanggan masih bisa coba lagi dengan percobaan baru, selama transaksinya sendiri belum kedaluwarsa |
expired |
Terminal. Tenggat waktu transaksi ini sendiri lewat tanpa keberhasilan — memicu payment.failed |
failed bukan terminal dengan sendirinya — lihat
Pembayaran Langsung untuk cara mencoba lagi dengan
payment_method baru. Hanya succeeded dan expired yang benar-benar
mengakhiri sebuah transaksi.
Status attempt — detail level percobaan
Bagian berjudul "Status attempt — detail level percobaan"current_attempt.status pada respons yang sama adalah status yang
menghadap provider dari percobaan spesifik di balik transaksi di atas —
berguna untuk memahami kenapa sebuah transaksi failed atau membangun UI
yang lebih detail:
| Status | Arti |
|---|---|
pending |
Menunggu tindakan pelanggan |
paid |
Percobaan ini berhasil — transaksinya sekarang juga succeeded |
failed |
Percobaan ini tidak berhasil |
expired |
Jendela waktu percobaan ini sendiri sudah lewat |
cancelled |
Digantikan oleh perubahan metode, atau direset secara eksplisit |
Status payment link — sengaja dipisah
Bagian berjudul "Status payment link — sengaja dipisah"status milik payment link itu sendiri melacak
apakah link-nya masih bisa dipakai — bukan apakah sudah dibayar:
| Status | Arti |
|---|---|
active |
Bisa dibayar sekarang — tetap active walau pembayaran satu-satunya di link sekali pakai sudah berhasil |
cancelled |
Dibatalkan lewat POST /v1/payment-links/{id}/cancel |
inactive |
Sudah melewati expires_at |
Untuk mengetahui apakah link sekali pakai sudah benar-benar dibayar, cek
status transaction-nya, bukan link-nya — field link memang sengaja
tidak berubah untuk itu.
Di mana masing-masing muncul
Bagian berjudul "Di mana masing-masing muncul"- Daftar dan tampilan detail Transaksi di dashboard menampilkan status transaction.
data.statuspada webhook mencerminkan status terminal transaction (succeededataufailed/expired).GET /v1/payment-links/{id}danGET /v1/payments/{id}mengembalikan field-field di atas secara langsung.