ID Scanning And Verification
Get Started With ID Capture
Quick overview
ID Capture provides the capability to scan personal identification documents, such as identity cards, passports or visas. In this guide you will learn step by step how to add ID Capture to your application. Roughly, the steps are:
Note
Using ID Capture at the same time as other modes (e.g. Barcode Capture or Text Capture) is currently not supported.
Create a DataCaptureContext.
Access a Camera.
Use IdCaptureSettings to configure the scan process.
Implement an IIdCaptureListener to receive scan results.
Set up DataCaptureView and IdCaptureOverlay to see the camera feed and the scan UI.
Begin the scanning by adding an IdCapture to DataCaptureContext and starting a camera.
Prerequisites
Before starting with adding a capture mode, make sure that you have a valid Scandit Data Capture SDK license key and that you added the necessary dependencies. If you have not done that yet, check out this guide.
Note
You can retrieve your Scandit Data Capture SDK license key, by signing in to your account at ssl.scandit.com/dashboard/sign-in.
Internal dependencies
Some of the Scandit Data Capture SDK modules depend on others to work:
Module |
Dependencies |
---|---|
Scandit.DataCapture.Core.Xamarin |
No dependencies |
Scandit.DataCapture.BarcodeCapture.Xamarin |
|
Scandit.DataCapture.Parser.Xamarin |
|
Scandit.DataCapture.TextCapture.Xamarin |
|
Scandit.DataCapture.IdCapture.Xamarin |
|
If you’re only scanning barcode based documents, you only need to add the Scandit.DataCapture.IdCapture.Xamarin nuget package.
If you’re also scanning MRZ or VIZ documents, you also need to add the Scandit.DataCapture.TextCapture.Xamarin nuget package.
Please note that your license may support only a subset of ID Capture features. If you would like to use additional features please contact us at support@scandit.com.
Show loading status with default UI
To show some feedback to the user about the loading status you have two options: use the default UI provided with the SDK or subscribe to the loading status and update your own custom UI. Let’s see how we you can show the default UI first:
Show loading status with custom UI
You can also just subscribe for the loading status of the library by simply attaching a listener like this:
Note
We suggest to serve the library files with the proper headers Content-Length and Content-Encoding if any compression is present. In case of totally missing information we will show an estimated progress
Create the Data Capture Context
The first step to add capture capabilities to your application is to create a new data capture context. The context expects a valid Scandit Data Capture SDK license key during construction.
DataCaptureContext context = DataCaptureContext.ForLicenseKey("-- ENTER YOUR SCANDIT LICENSE KEY HERE --");
Add the Camera
You need to also create the Camera:
camera = Camera.GetDefaultCamera();
if (camera != null)
{
// Use the settings recommended by id capture.
camera.ApplySettingsAsync(IdCapture.RecommendedCameraSettings);
context.SetFrameSourceAsync(camera);
}
Create ID Capture Settings
Use IdCaptureSettings to configure the types of documents that you’d like to scan. Check IdDocumentType for all the available options.
Warning
Using IdDocumentType.DlViz or IdDocumentType.IdCardViz together with any MRZ document (IdDocumentType.IdCardMrz, IdDocumentType.VisaMrz, IdDocumentType.PassportMrz, IdDocumentType.SwissDlMrz) while SupportedSides.FrontAndBack is enabled is currently not supported.
IdCaptureSettings settings = new IdCaptureSettings
{
SupportedDocuments = IdDocumentType.IdCardViz | IdDocumentType.DlViz | IdDocumentType.AamvaBarcode
};
Implement the Listener
To receive scan results, implement IIdCaptureListener. A result is delivered as CapturedId. This class contains data common for all kinds of personal identification documents. For more specific information use its non-null result properties (for example CapturedId.AamvaBarcode).
Alternatively to register IIdCaptureListener interface it is possible to subscribe to corresponding events. For example:
idCapture.IdCaptured += (object sender, IdCaptureEventArgs args) =>
{
CapturedId capturedId = args.Session.NewlyCapturedId;
// The recognized fields of the captured ID can vary based on the type.
if (capturedId.CapturedResultType == CapturedResultType.MrzResult)
{
// Handle the information extracted.
}
else if (capturedId.CapturedResultType == CapturedResultType.VizResult)
{
// Handle the information extracted.
}
else if (capturedId.CapturedResultType == CapturedResultType.AamvaBarcodeResult)
{
// Handle the information extracted.
}
else if (capturedId.CapturedResultType == CapturedResultType.UsUniformedServicesBarcodeResult)
{
// Handle the information extracted.
}
};
Create a new ID Capture mode with the chosen settings. Then register the listener:
idCapture = IdCapture.Create(context, settings);
idCapture.AddListener(new MyListener())
Use a Capture View to Visualize the Scan Process
When using the built-in camera as frame source, you will typically want to display the camera preview on the screen together with UI elements that guide the user through the capturing process. To do that, add a DataCaptureView to your view hierarchy:
DataCaptureView dataCaptureView = DataCaptureView.Create(this, dataCaptureContext);
SetContentView(dataCaptureView);
Then create an instance of IdCaptureOverlay attached to the view:
overlay = IdCaptureOverlay.Create(idCapture, dataCaptureView);
The overlay chooses the displayed UI automatically, based on the selected IdCaptureSettings. If you prefer to show a different UI or to temporarily hide it, set the appropriate IdCaptureOverlay.IdLayout.
Turn on the Camera
Finally, turn on the camera to start scanning:
camera.SwitchToDesiredStateAsync(FrameSourceState.On);
And this is it. You can now scan documents.
Capture both the front and the back side of documents
By default, when IdDocumentType.DlViz or IdDocumentType.IdCardViz are selected, Id Capture scans only the front side of documents. Sometimes however, you may be interested in extracting combined information from both the front and the back side.
Currently the combined result contains the following information: * AAMVA-compliant documents (for example US Driver’s Licenses): the human-readable front side of the document and the data encoded in the PDF417 barcode in the back; * European IDs: the human-readable sections of the front and the back side, and the data encoded in the Machine Readable Zone (MRZ); * Other documents: the human-readable section of the front and the back side (if present).
First, enable scanning of both sides of documents in IdCaptureSettings:
settings.SupportedDocuments = IdDocumentType.IdCardViz | IdDocumentType.DlViz;
settings.SupportedSides = SupportedSides.FrontAndBack;
Start by scanning the front side of a document. After you receive the result in IIdCaptureListener, inspect VizResult.BackSideCaptureSupported. If scanning of the back side of your document is supported, flip the document and capture the back side as well. The next result that you receive is a combined result that contains the information from both sides. You may verify this by checking VizResult.CapturedSides. After both sides of the document are scanned, you may proceed with another document.
Sometimes, you may not be interested in scanning the back side of a document, after you completed the front scan. For example, your user may decide to cancel the process. Internally, Id Capture maintains the state of the scan, that helps it to provide better combined results. To abandon capturing the back of a document, reset this state by calling:
idCapture.Reset();
Otherwise, Id Capture may assume that the front side of a new document is actually the back side of an old one, and provide you with nonsensical results.
Use ID Validate to detect fake IDs
ID Validate is a fake ID detection software. It currently supports documents that follow the Driver License/Identification Card specification by the American Association of Motor Vehicle Administrators (AAMVA).
The following two verifiers are available:
AamvaVizBarcodeComparisonVerifier: Validates the authenticity of the document by comparing the data from the VIZ and from the barcode on the back.
AamvaBarcodeVerifier: Validates the authenticity of the document by scanning the barcode on the back.
To enable ID Validate for your subscription, please reach out to support@scandit.com.
List of supported documents
Machine Readable Zone documents (MRZ)
Scandit ID Capture supports all versions of Machine Readable Travel Documents (MRTD) specified by the International Civil Aviation Organization (ICAO). This includes all documents of the types TD1 (ID cards), TD2 (other official travel documents), TD3/MRP (passports) and MRV (visas). In addition, ID Capture supports some non-ICAO standards. A non-exhaustive list of supported documents can be found below.
Region |
Supported Document Types |
---|---|
Worldwide |
Passport (TD3) |
Europe |
All ID Cards (TD1/TD2) |
USA |
|
Canada |
Enhanced Driver’s License (TD1) |
Switzerland |
Driver’s License (non-ICAO) |
Asia |
|
More information can be found in the API documentation of CapturedId and MrzResult.
Barcode ID Formats
ID Capture supports the following documents with PDF417 barcodes:
Country |
Supported Document Types |
---|---|
USA |
|
Argentina |
ID Card (Documento Nacional de Identidad): the PDF417 on the front side of the document. More information can be found in the API Documentation of CapturedId and ArgentinaIdBarcodeResult. |
Colombia |
ID Card (Cédula de Ciudadanía): the PDF417 on the back side of the document. More information can be found in the API Documentation of CapturedId and ColombiaIdBarcodeResult. |
South Africa |
|
Human-readable texts
ID Capture supports the scanning of human-readable texts (for example a Visual Inspection Zone (VIZ)) from both the front and the back side of documents. More information can be found here. The full list of supported documents can be found below.
Asia:
Country
Supported Document Types
Afghanistan
ID Card
Armenia
ID Card
Azerbaijan
ID Card
Bangladesh
ID Card
Brunei
ID Card
Cambodia
ID Card
Hong Kong
ID Card
India
PAN Card, Voter ID
India - Karnataka
Driver’s License
India - Maharashtra
Driver’s License
Indonesia
Driver’s License, ID Card
Kyrgyzstan
ID Card
Malaysia
Driver’s License, MyKAS, MyKad, MyKid, MyPR, MyTentera, Refugee ID, i-Kad
Maldives
ID Card
Myanmar
Driver’s License
Pakistan
Consular ID, ID Card
Pakistan - Punjab
Driver’s License
Philippines
Driver’s License, ID Card, Multipurpose ID, Professional ID, Social Security Card
Singapore
Driver’s License, Employment Pass, Fin Card, ID Card, Resident ID, S Pass, Work Permit
Sri Lanka
Driver’s License, ID Card
Thailand
Alien ID, ID Card
Europe:
Country
Supported Document Types
Albania
Driver’s License, ID Card
Austria
Driver’s License, ID Card
Belarus
Driver’s License
Belgium
Driver’s License, ID Card, Minors ID, Residence Permit, Resident ID
Bosnia And Herzegovina
Driver’s License, ID Card
Bulgaria
Driver’s License, ID Card
Croatia
Driver’s License, ID Card
Cyprus
Driver’s License, ID Card, Residence Permit
Czechia
Driver’s License, ID Card, Residence Permit
Denmark
Driver’s License
Estonia
Driver’s License, ID Card
Finland
Alien ID, Driver’s License, ID Card, Residence Permit
France
Driver’s License, ID Card
Georgia
Driver’s License, ID Card
Germany
Driver’s License, ID Card, Residence Permit
Greece
Driver’s License, ID Card, Residence Permit
Hungary
Driver’s License, ID Card
Ireland
Driver’s License, Passport Card, Public Services Card
Italy
Driver’s License, ID Card, Residence Permit
Kosovo
Driver’s License, ID Card
Latvia
Alien ID, Driver’s License, ID Card
Liechtenstein
ID Card
Lithuania
Driver’s License, ID Card
Luxembourg
Driver’s License, ID Card, Residence Permit
Malta
Driver’s License, ID Card, Residence Permit
Montenegro
Driver’s License, ID Card
Netherlands
Driver’s License, ID Card, Residence Permit
North Macedonia
Driver’s License, ID Card
Norway
Driver’s License, ID Card, Residence Permit
Poland
Driver’s License, ID Card
Portugal
Driver’s License, ID Card
Romania
Driver’s License, ID Card
Russia
Driver’s License
Serbia
Driver’s License
Slovakia
Driver’s License, ID Card, Residence Permit
Slovenia
Driver’s License, ID Card, Residence Permit
Spain
Alien ID, Driver’s License, ID Card, Residence Permit
Sweden
Driver’s License, ID Card, Residence Permit, Social Security Card
Switzerland
Driver’s License, ID Card, Residence Permit
UK
Driver’s License, Proof Of Age Card, Residence Permit
Ukraine
Driver’s License, ID Card, Residence Permit, Temporary Residence Permit
Latin America & the Caribbean:
Country
Supported Document Types
Argentina
Alien ID, ID Card
Bahamas
Driver’s License
Bolivia
Driver’s License, ID Card, Minors ID
Brazil
Driver’s License
Brazil - Rio De Janeiro
ID Card
Brazil - Sao Paolo
ID Card
Chile
Alien ID, Driver’s License, ID Card
Colombia
Alien ID, Driver’s License, ID Card, Minors ID
Costa Rica
ID Card
Dominican Republic
ID Card
Ecuador
Driver’s License, ID Card
El Salvador
ID Card
Guatemala
Consular ID, Driver’s License, ID Card
Haiti
Driver’s License, ID Card
Jamaica
Driver’s License
Mexico
Voter ID
Mexico - Aguascalientes
Driver’s License
Mexico - Baja California
Driver’s License
Mexico - Chiapas
Driver’s License
Mexico - Chihuahua
Driver’s License
Mexico - Ciudad De Mexico
Driver’s License
Mexico - Coahuila
Driver’s License
Mexico - Colima
Driver’s License
Mexico - Durango
Driver’s License
Mexico - Guanajuato
Driver’s License
Mexico - Hidalgo
Driver’s License
Mexico - Jalisco
Driver’s License
Mexico - Mexico
Driver’s License
Mexico - Michoacan
Driver’s License
Mexico - Morelos
Driver’s License
Mexico - Nuevo Leon
Driver’s License
Mexico - Oaxaca
Driver’s License
Mexico - Quintana Roo Solidaridad
Driver’s License
Mexico - San Luis Potosi
Driver’s License
Mexico - Tamaulipas
Driver’s License
Mexico - Tlaxcala
Driver’s License
Mexico - Zacatecas
Driver’s License
Nicaragua
ID Card
Panama
Driver’s License, ID Card, Residence Permit, Temporary Residence Permit
Paraguay
Driver’s License, ID Card
Peru
Driver’s License, ID Card
Puerto Rico
Driver’s License
Trinidad And Tobago
Driver’s License, ID Card
Uruguay
ID Card
Venezuela
Driver’s License, ID Card
The Middle East & Africa:
Country
Supported Document Types
Algeria
Driver’s License, ID Card
Bahrain
ID Card
Botswana
ID Card
Burkina Faso
ID Card
Cameroon
ID Card
Egypt
ID Card (incl. Arabic script)
Ghana
Driver’s License, ID Card
Israel
Driver’s License
Ivory Coast
Driver’s License, ID Card
Jordan
ID Card (incl. Arabic script)
Kenya
ID Card
Kuwait
Driver’s License, ID Card, Resident ID
Mauritius
ID Card
Morocco
Driver’s License, ID Card
Mozambique
ID Card
Nigeria
Driver’s License, ID Card, Voter ID
Oman
ID Card, Resident ID
Qatar
Driver’s License, Residence Permit
Rwanda
ID Card
Saudi Arabia
Driver’s License, Resident ID
Senegal
ID Card
South Africa
Driver’s License, ID Card
Tanzania
Driver’s License
Tunisia
Driver’s License
Togo
ID Card
Turkey
Driver’s License, ID Card
UAE
Driver’s License, ID Card (incl. Arabic script), Resident ID (incl. Arabic script)
Uganda
Driver’s License, ID Card
Zimbabwe
ID Card
Northern America:
Country
Supported Document Types
Canada
Residence Permit, Tribal ID
Canada - Alberta
Driver’s License, ID Card
Canada - British Columbia
Driver’s License, Public Services Card, ID Card
Canada - Manitoba
Driver’s License, ID Card
Canada - New Brunswick
Driver’s License
Canada - Newfoundland And Labrador
Driver’s License
Canada - Nova Scotia
Driver’s License
Canada - Ontario
Driver’s License, Health Insurance Card, ID Card
Canada - Quebec
Driver’s License
Canada - Saskatchewan
Driver’s License
Canada - Yukon
Driver’s License
USA
Border Crossing Card, Global Entry Card, Green Card, Military ID, Passport Card, Veteran ID, Work Permit
USA - Alabama
Driver’s License*, ID Card*
USA - Alaska
Driver’s License, ID Card
USA - Arizona
Driver’s License*, ID Card*
USA - Arkansas
Driver’s License*, ID Card*
USA - California
Driver’s License*, ID Card*
USA - Colorado
Driver’s License*, ID Card
USA - Connecticut
Driver’s License*, ID Card
USA - Delaware
Driver’s License*
USA - District Of Columbia
Driver’s License*, ID Card*
USA - Florida
Driver’s License*, ID Card*
USA - Georgia
Driver’s License*, ID Card*
USA - Hawaii
Driver’s License*, ID Card
USA - Idaho
Driver’s License*, ID Card
USA - Illinois
Driver’s License*, ID Card*
USA - Indiana
Driver’s License, ID Card
USA - Iowa
Driver’s License*, ID Card*
USA - Kansas
Driver’s License*, ID Card*
USA - Kentucky
Driver’s License*, ID Card*
USA - Louisiana
Driver’s License
USA - Maine
Driver’s License*, ID Card
USA - Maryland
Driver’s License*, ID Card*
USA - Massachusetts
Driver’s License*, ID Card*
USA - Michigan
Driver’s License*, ID Card*
USA - Minnesota
Driver’s License*, ID Card*
USA - Mississippi
Driver’s License*, ID Card*
USA - Missouri
Driver’s License*, ID Card*
USA - Montana
Driver’s License, ID Card
USA - Nebraska
Driver’s License*, ID Card
USA - Nevada
Driver’s License*, ID Card*
USA - New Hampshire
Driver’s License*
USA - New Jersey
Driver’s License*, ID Card*
USA - New Mexico
Driver’s License*, ID Card
USA - New York
Driver’s License*, ID Card*
USA - New York City
ID Card
USA - North Carolina
Driver’s License*, ID Card*
USA - North Dakota
Driver’s License*
USA - Ohio
Driver’s License*, ID Card*
USA - Oklahoma
Driver’s License*, ID Card*
USA - Oregon
Driver’s License*, ID Card
USA - Pennsylvania
Driver’s License*, ID Card*
USA - Rhode Island
Driver’s License*, ID Card
USA - South Carolina
Driver’s License*, ID Card*
USA - South Dakota
Driver’s License*
USA - Tennessee
Driver’s License*, ID Card*
USA - Texas
Driver’s License*, ID Card*
USA - Utah
Driver’s License*, ID Card*
USA - Vermont
Driver’s License
USA - Virginia
Driver’s License*, ID Card
USA - Washington
Driver’s License*, ID Card*
USA - West Virginia
Driver’s License
USA - Wisconsin
Driver’s License*, ID Card
USA - Wyoming
Driver’s License, ID Card
*vertical format also supported
Oceania:
Country
Supported Document Types
Australia - Australian Capital Territory
Driver’s License
Australia - New South Wales
Driver’s License, ID Card
Australia - Northern Territory
Driver’s License, Proof Of Age Card
Australia - Queensland
Driver’s License
Australia - South Australia
Driver’s License, Proof Of Age Card
Australia - Tasmania
Driver’s License
Australia - Victoria
Driver’s License, Proof Of Age Card
Australia - Western Australia
Driver’s License
New Zealand
Driver’s License