A Dart Library for decoding and providing South African identification details from documents such as Driver's licenses and Smart ID's.

Supported Documents

  • x Driver's Licenses
  • x Smart ID Documents
  • Passports
  • Old ID Books


A simple usage example:

import 'dart:convert';

import 'package:rsa_identification/rsa_identification.dart';

void main() {
  // These bytes would be scanned using a barcode scanner.
  var scannedBytes = utf8.encode(
      'SURNAME|NAME|GENDER|NATIONALITY|ID NUMBER|29 Jul 2000|COUNTRY OF BIRTH|CITIZENSHIP STATUS|26 Jan 2017|23370|SMART ID NUMBER|1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890');

  var idDocument = IdDocument.fromBarcodeBytes(scannedBytes);
  print('First Names: ${idDocument.firstNames}');
  print('Last Name: ${idDocument.surname}');
  print('ID Number: ${idDocument.idNumber}');

Features and bugs

Please file feature requests and bugs at the issue tracker.


Support for doing something awesome. [...]