This is a Dart Package:
-
This package follows the EMVCo standard for parsing data for interoperable QR code payments in the banking sector or Fintech.
-
For now, it only decode data for Colombian QR codes 🇨🇴. Each country has its own EMV variant.
-
Coming soon: 🇧🇷 🇲🇽
-
For 🇨🇴:
- VERSIÓN 1.4 – 2025
- Fecha de vigencia: A partir del 21/11/2025 según documentación
- Package operando correctamente con QRs Bancolombia (estáticos, dinámicos), Wompi App Empresas, Llaves...
Getting started
You can create a test:
void main() {
test('parser', () {
final result = EmvQR.decode('@redeban@bancolombia@finandina@breb@ach@etc...');
debugPrint(result); //EmvQrEntity
expect(result, isA<EmvQrEntity>()); //All tests passed!
});
}
Usage
const qrEntity = EmvQR.decode('yourEMVQrStringHere');
printn(qrEntity); // EmvQrEntity Object
Quick Example
Do you want to access the transaction amount to be paid/collected (generally for dynamic QR codes)?
It's simple:
const qrEntity = EmvQR.decode('yourEMVQrStringHere');
print(qrEntity.transactionAmount.amount) // 123000 $$$ type int
I've included PDF documentation in the repository's assets to provide more context and information about each of the established fields. You can access it using EmvQrEntity.property.subproperty.
Issues 🦗
If there is a problem with any data analysis, it is suggested to read the logs first; if it is still unclear, open an issue in the repository and leave the QR or String you are using for testing.
Message 👀
Did I help you? You can contact me; it would make my day 😁☕️
Libraries
- config/enums/shared/emv_be_requested_customer
- config/enums/shared/emv_channel_type
- config/enums/shared/emv_condition_type
- config/enums/shared/emv_gui_type
- config/enums/shared/emv_product_type
- config/enums/shared/emv_qr_type
- config/enums/shared/emv_transaction_type
- config/helpers/emv_parser
- config/injection/emv_qr_injection
- config/shared/debug_print
- data/implementations/emv_qr_repository_impl
- data/services/co/emv_qr_co_service
- data/services/shared/emv_qr_service
- domain/entities/co/emv_qr_co
- domain/entities/shared/emv_qr_entity
- domain/entities/shared/tlv
- domain/repositories/emv_qr_repository
- domain/usecase/emv_qr_usecase
- emv_qr_core