romanian_eid_sdk 1.0.1
romanian_eid_sdk: ^1.0.1 copied to clipboard
Flutter plugin for reading Romanian electronic identity documents (passports and ID cards) via NFC.
Romanian eID SDK for Flutter #
Flutter plugin for reading Romanian electronic identity documents (passports and ID cards) via NFC.
Features #
- Read Romanian ID cards using PACE (CAN + PIN)
- Read Romanian passports using BAC
- MRZ and OCR scanning via camera
- Real-time reading progress callbacks
- CSCA certificate validation (Passive Authentication)
- Cross-platform support (iOS and Android)
Requirements #
iOS #
- iOS 15.0 or later
- iPhone 7 or later (NFC capable)
- Xcode 15.0 or later
Android #
- Android 8.0 (API 28) or later
- NFC capable device
- Valid license key from Up2Date Software SRL
Installation #
Add to your pubspec.yaml:
dependencies:
romanian_eid_sdk: ^1.0.0
Android Setup #
- Add the eIDRomania SDK repository to your app's
android/settings.gradle.kts:
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
// eIDRomania Android SDK (public read access — no credentials required)
maven {
url = uri("https://europe-west1-maven.pkg.dev/eid-romania/eid-romania-sdk")
}
}
}
- Add NFC permissions to
android/app/src/main/AndroidManifest.xml:
<uses-permission android:name="android.permission.NFC" />
<uses-feature android:name="android.hardware.nfc" android:required="true" />
iOS Setup #
-
Add NFC capability in Xcode:
- Select your project target → "Signing & Capabilities"
- Click "+ Capability" → "Near Field Communication Tag Reading"
-
Add to
ios/Runner/Info.plist:
<key>NFCReaderUsageDescription</key>
<string>This app uses NFC to read electronic identity documents.</string>
<key>com.apple.developer.nfc.readersession.iso7816.select-identifiers</key>
<array>
<string>A0000002471001</string>
<string>A000000077030C60000000FE00000500</string>
<string>E828BD080FA000000167454441544100</string>
</array>
Usage #
Initialize #
import 'package:romanian_eid_sdk/romanian_eid_sdk.dart';
await RomanianEidSdk.initialize('YOUR_LICENSE_KEY');
Read ID Card (PACE) #
// Listen to progress
RomanianEidSdk.progressStream.listen((progress) {
print('${progress.percentage}%: ${progress.message}');
});
// Read with CAN + PIN
final result = await RomanianEidSdk.readIDCard(
can: '123456',
pin: '1234', // optional — omit for CAN-only read
);
print('Name: ${result.fullName}');
print('CNP: ${result.cnp}');
print('Address: ${result.permanentAddress}');
print('Photo: ${result.facialImageBase64 != null}');
print('Authentic: ${result.cscaValidated}');
Read Passport (BAC) #
final result = await RomanianEidSdk.readPassport(
documentNumber: '123456789',
dateOfBirth: '901231', // YYMMDD
dateOfExpiry: '301231', // YYMMDD
);
print('Name: ${result.fullName}');
print('Nationality: ${result.nationality}');
Error Handling #
try {
final result = await RomanianEidSdk.readIDCard(can: '123456');
} on PlatformException catch (e) {
switch (e.code) {
case EIDErrorCode.invalidCan:
print('CAN incorect');
break;
case EIDErrorCode.invalidPin:
print('PIN incorect');
break;
case EIDErrorCode.connectionLost:
print('Cardul a fost îndepărtat');
break;
case EIDErrorCode.nfcNotAvailable:
print('NFC nu este disponibil');
break;
}
}
License #
Proprietary — Up2Date Software SRL. All rights reserved. Contact: office@up2date.ro