Notification listener
Uses NotificationListenerService to catch QRIS payment notifications in real time.
QRIS Hook reads payment notifications from merchant apps on Android and delivers them as JSON to your backend. No third-party API involved.
Uses NotificationListenerService to catch QRIS payment notifications in real time.
JSON POST to any URL, with an optional X-Webhook-Secret header for verification.
Events are stored in Room, sent immediately, and retried by WorkManager with exponential backoff.
Each merchant app has its own parser. Adding one takes a single Kotlin class.
Capture raw notification payloads to build or fix a parser.
No middleman server. Notifications go from the phone straight to your webhook.
Allow QRIS Hook to read notifications in Android settings.
Enter the webhook URL and an optional secret.
Select the merchant apps you want to monitor.
Payments are parsed, queued, then delivered to your backend.
Every payment is sent as JSON with formatted data plus the raw notification.
X-Webhook-Secret: your-secret
{ "event_id": "uuid", "type": "qris.payment.success", "merchant_id": "demo_merchant", "source_app": "Demo Merchant", "received_at": "2030-05-21T12:00:00+07:00", "payment": { "amount": 10000, "currency": "IDR", "sender_name": "John Doe", "payment_source": "Demo" }, "raw": { "title": "string", "text": "string" }}Your app isn't listed? Send a Debug Mode payload to get it supported.
id.co.bri.merchantcom.gojek.gopaymerchantcom.interactive.qrisidSent straight from the app, no GitHub account needed.







Download the latest APK from GitHub Releases, or build it from source.