itc_card_scanner 0.0.1 copy "itc_card_scanner: ^0.0.1" to clipboard
itc_card_scanner: ^0.0.1 copied to clipboard

A Flutter plugin for scanning credit cards using device camera with OCR. Extracts card number, expiry date, cardholder name, and card type.

ITC Card Scanner #

A Flutter plugin for scanning credit cards using device camera with OCR capabilities. Automatically extracts card number, expiry date, cardholder name, and card type.

pub package

Features #

Card Number Detection - Automatically scans and validates card numbers
Expiry Date Extraction - Detects MM/YY format dates
Cardholder Name Recognition - Extracts name from card
Card Type Identification - Detects Visa, MasterCard, Amex, etc.
Real-time Preview - Shows detected information overlay
Cross Platform - Works on both Android and iOS

Supported Card Types #

  • Visa
  • MasterCard
  • American Express
  • Discover
  • JCB
  • Diners Club

Installation #

Add this to your package's pubspec.yaml file:

dependencies:
  itc_card_scanner: ^0.0.1

Then run:

flutter pub get

Platform Setup #

Android #

No additional setup required. Camera permission is handled automatically.

iOS #

Add camera permission to ios/Runner/Info.plist:

<key>NSCameraUsageDescription</key>
<string>This app needs camera access to scan credit cards</string>

Usage #

Basic Usage #

import 'package:itc_card_scanner/itc_card_scanner.dart';

final _scanner = ItcCardScanner();

// Scan a card
final result = await _scanner.scanCard();

if (result != null && result['success'] == true) {
  String cardNumber = result['cardNumber'];
  String expiryDate = result['expiryDate'];
  String cardholderName = result['cardholderName'];
  String cardType = result['cardType'];
  
  print('Card: $cardNumber');
  print('Expiry: $expiryDate');
  print('Name: $cardholderName');
  print('Type: $cardType');
}

With Data Model #

import 'package:itc_card_scanner/itc_card_scanner.dart';

final result = await ItcCardScanner().scanCard();

if (result != null) {
  final cardDetails = ScannedCardDetails.fromMap(result);
  
  if (cardDetails.success) {
    print('Scanned: ${cardDetails.cardNumber}');
    print('Expires: ${cardDetails.expiryDate}');
    print('Holder: ${cardDetails.cardholderName}');
    print('Type: ${cardDetails.cardType}');
  }
}

Example #

import 'package:flutter/material.dart';
import 'package:itc_card_scanner/itc_card_scanner.dart';

class CardScanPage extends StatefulWidget {
  @override
  _CardScanPageState createState() => _CardScanPageState();
}

class _CardScanPageState extends State<CardScanPage> {
  final _scanner = ItcCardScanner();
  String _result = 'Tap scan to start';

  void _scanCard() async {
    try {
      final result = await _scanner.scanCard();
      
      if (result != null && result['success'] == true) {
        setState(() {
          _result = '''
Card Number: ${result['cardNumber']}
Expiry Date: ${result['expiryDate']}
Cardholder: ${result['cardholderName']}
Card Type: ${result['cardType']}
''';
        });
      }
    } catch (e) {
      setState(() {
        _result = 'Error: $e';
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Card Scanner')),
      body: Column(
        children: [
          ElevatedButton(
            onPressed: _scanCard,
            child: Text('Scan Card'),
          ),
          Text(_result),
        ],
      ),
    );
  }
}

API Reference #

Methods #

scanCard()

Launches the card scanner and returns scanned card details.

Returns: Future<Map<String, dynamic>?>

Response Format:

{
  'cardNumber': '1234 5678 9012 3456',
  'expiryDate': '12/25',
  'cardholderName': 'JOHN DOE',
  'cardType': 'Visa',
  'success': true
}

getPlatformVersion()

Returns the current platform version.

Returns: Future<String?>

Data Models #

ScannedCardDetails

class ScannedCardDetails {
  final String cardNumber;
  final String expiryDate;
  final String cardholderName;
  final String cardType;
  final bool success;
}

Requirements #

  • Flutter: >= 3.0.0
  • Dart: >= 3.0.0
  • Android: API level 24+
  • iOS: 12.0+

Privacy #

This plugin only processes card data locally on the device. No card information is transmitted to external servers.

Contributing #

Contributions are welcome! Please read our contributing guidelines and submit pull requests to our repository.

License #

This project is licensed under the MIT License - see the LICENSE file for details.

Support #

For issues and feature requests, please visit our GitHub repository.

2
likes
0
points
21
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter plugin for scanning credit cards using device camera with OCR. Extracts card number, expiry date, cardholder name, and card type.

Topics

#camera #credit-card #scanner #ocr #payment

License

unknown (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on itc_card_scanner

Packages that implement itc_card_scanner