fintech_card_core
Headless Flutter plugin for payment card reading — NFC (EMV), OCR, and manual entry — with optional UI widgets.
NFC · Camera OCR · Manual form
Platforms
| Platform | Min | Notes |
|---|---|---|
| Android | API 24+ | IsoDep NFC + CardScan SSD (TFLite) |
| iOS | 13+ | CoreNFC bridge + CardScan SSD (CoreML) |
Web and desktop are not supported.
Install
dependencies:
fintech_card_core: ^0.1.4
import 'package:fintech_card_core/fintech_card_core.dart';
Quick start
final controller = CardReaderController();
controller.stateStream.listen((state) {
switch (state) {
case CardReaderSuccessState(:final data):
print(data.maskedPan); // **** **** **** 1234
case CardReaderErrorState(:final exception):
print(exception.message);
default:
break;
}
});
await controller.startNfcScan();
// await controller.startOcrScan();
// await controller.submitManualInput(
// pan: '4111111111111111',
// expiryDate: '12/28',
// cvv: '123',
// );
controller.dispose();
Camera overlay
final card = await CardScannerOverlay.show(
context,
controller: controller,
enableCoachingHints: true, // timed lighting / torch tips
sideLightHint: 'Hold the card in side lighting',
torchHint: 'Move away from bright light — turn on the torch',
);
Smart card form
SmartCardInput(
controller: controller,
scheme: CardInputScheme.autoDetect, // or humoAndUzcard, americanExpress, …
)
iOS NFC setup
Host apps must add NFC entitlements and Info.plist keys. See doc/IOS_NFC_SETUP.md.
Important: Standard CoreNFC (
NFCTagReaderSession) does not allow payment-related AIDs. Android IsoDep can read EMV payment cards; the same card generally cannot be read on iOS without Apple’s separate payment NFC programs.
Privacy
This plugin reads card PANs and related fields on-device. Do not log full PANs,
persist them insecurely, or send them to analytics. Prefer CardData.maskedPan
for display.
License
MIT. CardScan SSD OCR ports are MIT (Stripe / Bouncer); see third_party/.