Delivery & retry
Matching notifications are saved to the Room database first, then QRIS Hook immediately tries to deliver them from a background coroutine. WebhookDeliveryWorker is the retry/fallback path.
NotificationProcessorreads the current settings.- If
QRIS Hook Activeis off, the notification is ignored. - If
Debug Modeis on, raw payloads are saved and webhook delivery is skipped. - In normal mode, the notification is matched against the selected merchant parsers.
- Every valid event is queued with status
Pending. - The event is marked
Sendingand sent as a JSONPOST. - A 2xx response →
Sent. A failure →Failedand a retry worker is enqueued.
Statuses
Section titled “Statuses”| Status | Meaning |
|---|---|
Pending |
Queued, waiting to enter delivery. |
Sending |
Delivery is being attempted. |
Sent |
The webhook returned 2xx. |
Failed |
The last attempt failed; the event stays eligible for retry. |
- The worker processes non-
Sentevents oldest first, up to 10 per batch. - Non-2xx responses, network errors, invalid URLs, timeouts, and network security errors are recorded as failures (
lastError,lastResponseCode,attempts, etc.). - WorkManager retries with exponential backoff starting at 30 seconds.
- There is no maximum retry limit; failed events stay queued until sent or app data is cleared.