generateQrString method

String generateQrString({
  1. required DateTime issueDateTime,
  2. required double totalWithVat,
  3. required double vatTotal,
})

Generates a Phase-1 QR string (base64 of TLV tags 1–5).

Works for both simplified (B2C) and standard (B2B) Phase-1 invoices — the format is identical. Call initialize first.

issueDateTime - Invoice issue timestamp (emitted as ISO 8601 yyyy-MM-ddTHH:mm:ss). totalWithVat - Invoice total including VAT. vatTotal - Total VAT amount.

Implementation

String generateQrString({
  required DateTime issueDateTime,
  required double totalWithVat,
  required double vatTotal,
}) {
  _requireInitialized();
  _validateAmounts(totalWithVat, vatTotal);

  final tlv = generateTlv({
    1: _sellerName!,
    2: _sellerTRN!,
    3: DateFormat("yyyy-MM-dd'T'HH:mm:ss").format(issueDateTime),
    4: totalWithVat.toStringAsFixed(2),
    5: vatTotal.toStringAsFixed(2),
  });
  return tlvToBase64(tlv);
}