Lightweight JavaScript SDK for QRIS payment integration via PopPay gateway. Works in any browser environment with zero heavy dependencies.
No heavy dependencies. Minimal footprint for fast page loads.
Supports both ESM and UMD module formats out of the box.
Dynamic amount, payor info, and custom invoice data at runtime.
Real-time status via WebSocket with polling fallback.
// Initialize QRIS payment const sdk = new QrisSDK({ amount: 50000, invoice: 'INV-20260406-0001', notes: 'Pembayaran order #123', payor_name: 'Budi Santoso', payor_email: '[email protected]', expirationInterval: 300, onSuccess: (data) => console.log('Paid!', data), onFailed: (err) => console.log('Failed', err), }); sdk.openPayment();
Fill in the form and trigger a real QRIS payment flow. Domain must be registered with PopPay for live transactions.
31 automated tests across 6 categories verifying SDK loading, constructor, validation, edge cases, methods, and callbacks.
View orders from the current session (standalone) or from the backend API when connected.
No orders yet. Make a payment to see transaction history.
All available parameters for the QrisSDK constructor.
This is a standalone test harness for the @manjopackage/qris-payment-sdk.
It runs entirely in the browser without a build step. Optionally connect to a Node.js Express
backend at http://localhost:3000 for order persistence via MySQL.
Open index.html directly or serve via a local server
(python3 -m http.server 8080). Orders are stored in
localStorage. No backend required.
Toggle "Connect to API" in the demo section. The Express server handles order creation, persistence, and payment status tracking via MySQL.
Live QRIS payments require your domain to be registered in the PopPay admin panel. Test in a registered environment for full payment flows.