Skip to content

API Reference

Checks whether NFC is available and enabled on the current device.

Starts an NFC session and streams card reading output through callbacks.

await MrtCardReader.startSession(
onStatus: (status) {},
onBalance: (balance) {},
onTransactions: (transactions) {},
onError: (exception) {},
timeout: const Duration(seconds: 30),
);

Key callback inputs

  • onStatus: scan progress and status updates.
  • onBalance: current card balance (paisa).
  • onTransactions: parsed transaction list.
  • onError: typed exception callback (recommended).
  • timeout: optional session timeout.

Use MrtCardReaderInstance if you need explicit session lifecycle management.

final reader = MrtCardReaderInstance(
logger: ConsoleLogger(),
timeout: const Duration(seconds: 60),
);
await reader.startSession(
onStatus: (status) => print(status),
onBalance: (balance) => print(balance),
onTransactions: (transactions) => print(transactions),
onError: (exception) => print(exception),
);
if (reader.isSessionActive) {
print('Reading in progress...');
}
await reader.cancelSession();

Common fields exposed in each transaction item:

  • fixedHeader
  • timestamp
  • transactionType
  • fromStation
  • toStation
  • balance
  • cost
  • trailing
  • isTopup

Utility methods include copyWith, toMap, fromMap, and toString.

The package includes explicit exceptions for predictable error handling:

  • MrtException
  • NfcNotAvailableException
  • InvalidCardException
  • DataCorruptionException
  • NfcTimeoutException
  • SessionAlreadyActiveException