iris_payment 0.1.1 copy "iris_payment: ^0.1.1" to clipboard
iris_payment: ^0.1.1 copied to clipboard

Greek IRIS payment QR code generator. Validate AFM (Greek VAT/Tax ID), generate IRIS-standard QR data, and render payment QR codes with customizable styles, colors, and logo overlay.

iris_payment #

Greek IRIS payment QR code generator for Flutter. Validate AFM (Greek VAT/Tax ID), generate IRIS-standard QR data, and render payment QR codes.

IRIS is Greece's instant payment system managed by DIAS Interbanking Systems. Since December 2025, all Greek businesses must accept IRIS payments.

Features #

  • AFM Validation - Greek VAT number (AFM) checksum verification
  • Static QR - IRISTIN{AFM} format for physical store checkout
  • Dynamic QR - IRISCOM{UUID} format for e-commerce transactions
  • QR Parser - Parse scanned IRIS QR strings back to structured data
  • IrisQrCode Widget - Customizable QR code with colors and logo overlay
  • IrisPaymentCard Widget - Ready-to-use payment card with business name
  • Cross-platform - Works on Android, iOS, Web, Windows, macOS, Linux

Installation #

dependencies:
  iris_payment: ^0.1.0

Usage #

Validate an AFM #

import 'package:iris_payment/iris_payment.dart';

// Quick check
AfmValidator.isValid('090000045'); // true

// Detailed result
final result = AfmValidator.validate('123456789');
if (!result.isValid) {
  print(result.message); // "Invalid AFM checksum"
}

// Format (strip whitespace/dashes)
AfmValidator.format('090-000-045'); // "090000045"

Generate IRIS QR Data #

// Static QR for physical store (customer enters amount in bank app)
final data = IrisData.fromAfm('090000045');
print(data.qrString); // "IRISTIN090000045"

// Dynamic QR for e-commerce (amount set by payment gateway)
final tx = IrisData.fromTransactionId('52bb5e73-2ebd-4299-9ccf-e9714b9873fc');
print(tx.qrString); // "IRISCOM52bb5e73-2ebd-4299-9ccf-e9714b9873fc"

// Parse a scanned QR code
final parsed = IrisData.parse('IRISTIN090000045');
print(parsed?.type); // IrisQrType.tin
print(parsed?.afm);  // "090000045"

Display QR Code Widget #

// Simple QR code
IrisQrCode(
  afm: '090000045',
  size: 250,
)

// Customized QR code with logo
IrisQrCode(
  afm: '090000045',
  size: 300,
  foregroundColor: Colors.indigo,
  logo: Image.asset('assets/my_logo.png'),
  logoSize: 70,
)

// Full payment card
IrisPaymentCard(
  afm: '090000045',
  businessName: 'My Coffee Shop',
  qrSize: 200,
)

IRIS QR Format Reference #

Type Format Use Case
Static IRISTIN{9-digit AFM} Physical store POS, printed QR
Dynamic IRISCOM{UUID} E-commerce, payment gateway generated

Static QR: The business displays a fixed QR code. Customers scan with their banking app and enter the amount themselves. Maximum per-transaction: 1,000 EUR.

Dynamic QR: Generated by payment gateways (Cardlink, Nexi, Viva, etc.) for each transaction. Contains a unique ID that maps to a specific amount on the gateway's backend.

AFM Checksum Algorithm #

The Greek AFM is a 9-digit number. The last digit is a check digit:

checksum = (d[0]*256 + d[1]*128 + d[2]*64 + d[3]*32 + d[4]*16 + d[5]*8 + d[6]*4 + d[7]*2) % 11 % 10

The check digit must equal d[8].

License #

MIT License - see LICENSE for details.

0
likes
150
points
55
downloads

Documentation

API reference

Publisher

verified publisherorestislef.gr

Weekly Downloads

Greek IRIS payment QR code generator. Validate AFM (Greek VAT/Tax ID), generate IRIS-standard QR data, and render payment QR codes with customizable styles, colors, and logo overlay.

Homepage
Repository (GitHub)
View/report issues

Topics

#payments #qrcode #greece #iris #fintech

License

MIT (license)

Dependencies

flutter, qr_flutter

More

Packages that depend on iris_payment