QRIS Parser is a Dart package for parsing QRIS (EMVCo) strings into structured data with CRC validation, making it safe to use for payment applications, PPOB systems, e-wallets, and backend validation services.
This package is designed for developers working with QRIS and digital payment systems, especially in Indonesia.
- Parse QRIS strings into structured data
- EMVCo-compliant CRC validation
- Supports static and dynamic QRIS
- Compatible with Flutter and Dart backend
- Lightweight with no heavy dependencies
- Easy integration with PPOB and payment flows
QRIS uses the EMVCo TLV format which is:
- Long and hard to read manually
- Error-prone when parsed incorrectly
- Required to be CRC-validated before processing
This package helps:
- Reduce QRIS parsing complexity
- Prevent payment-related bugs
- Safely validate QRIS before sending to a payment gateways
Add this to your pubspec.yaml:
dependencies:
qris_parser: ^1.0.1Then run:
flutter pub getimport 'package:qris_parser/qris_parser.dart';
void main() {
final qrisString = '00020101021226610016ID.CO.QRIS.WWW...';
final result = QrisParser.parse(qrisString);
if (result.isValid) {
print('Merchant Name : ${result.merchantName}');
print('Merchant City : ${result.merchantCity}');
print('Amount : ${result.amount}');
print('CRC Valid : ${result.isCrcValid}');
} else {
print('Invalid QRIS');
}
}{
"merchantName": "TOKO MAJU JAYA",
"merchantCity": "JAKARTA",
"merchantCategoryCode": "5411",
"transactionAmount": 10000,
"countryCode": "ID",
"currency": "IDR",
"crcValid": true
}| Field | Description |
|---|---|
| Merchant Name | Merchant name |
| Merchant City | Merchant city |
| MCC | Merchant Category Code |
| Transaction Amount | Payment amount |
| Country Code | Country code |
| Currency | Currency |
| CRC | Checksum validation |
CRC validation is performed automatically during parsing.
if (result.isCrcValid) {
// QRIS is valid and safe to process
}- PPOB applications
- QRIS payment gateways
- Backend validation services
- QRIS scanner applications
- Payment simulators
- Fraud prevention systems
- This package does not perform payments
- It only parses and validates QRIS structures
- Always comply with local regulations and payment gateway requirements
- Support for QRIS CPM
- Custom EMV tag support
- Detailed error handling and debug mode
- Go and Node.js versions
- QRIS payment simulator
Contributions are welcome.
- Fork the repository
- Create a feature branch
- Commit your changes
- Open a Pull Request
MIT License
Free to use for personal and commercial projects.
QRIS Parser adalah package Dart untuk mem-parsing string QRIS (EMVCo) menjadi data terstruktur dengan validasi CRC, sehingga aman digunakan untuk aplikasi payment, PPOB, e-wallet, dan backend validation.
- Parsing QRIS ke struktur data
- Validasi CRC sesuai standar EMVCo
- Mendukung QRIS statis dan dinamis
- Kompatibel dengan Flutter dan backend Dart
- Ringan tanpa dependency berat
- Mudah diintegrasikan ke sistem PPOB
Tambahkan ke pubspec.yaml:
dependencies:
qris_parser: ^1.0.1Kemudian jalankan:
flutter pub getfinal result = QrisParser.parse(qrisString);
if (result.isValid) {
print(result.merchantName);
}- Package ini tidak melakukan proses pembayaran
- Hanya parsing dan validasi struktur QRIS
- Pastikan mematuhi regulasi Bank Indonesia dan payment gateway terkait