ID

Scan capability overview

The Anyline ID plugin provides the functionality to scan MRZ documents, driving licenses and identity cards in one scan plugin.

Supported alphabet options in configuration: latin, arabic, cyrillic. Current implementation supports Latin characters only.

The scannable data fields that can be scanned with the Anyline ID scanner depend on the type that is scanned.

For each scan result, the ID plugin generates a new, generic ID object, containing all relevant information.

Supported document types

Driving Licenses and ID Cards

With the ID plugin, you can scan various layouts of driving licenses and ID cards from various countries. The layout name contains information about the supported document.

The naming schema for all layouts is built from multiple segments in the following fashion: [ISO 3661-1 alpha2]_[category]_[type]_[version]_[side] e.g. AT_DVL_O_04001_F.

Document categories:

  • DVL: driving licenses

  • IDC: identification card

Document types:

  • O: ordinary (default, e.g. national ID for IDC or a standard driver’s license for DVL)

Document version:

  • Official European Council version where available

  • Others are assigned a unique identifier for distinguishing documents that otherwise share all other layout code attributes

Document side:

  • F: front side

  • B: back side

MRZ Documents

If a document containing MRZ information is scanned with the ID plugin, the content will be the same as for the MRZ Scan Capability. MRZ is available on any ICAO standard Machine Readable Travel Document.

Supported fields

Driving Licenses and ID Cards

Field Name Driving License ID Card

additionalInformation

additionalInformation1

additionalInformation2

address

age

audit

authority

cardAccessNumber

cityNumber

conditions

dateOfBirth

dateOfExpiry

dateOfIssue

dateOfRegistration

degreeOfDisability

divisionNumber

documentDiscriminator

documentNumber

duplicate

duration

educationalInstitution

endorsements

eyes

firstIssued

firstName

folio

fullName

hair

headOfFamily

height

lastName

licenseClass

licenseType

maidenName

militaryRank

municipalityNumber

nationality

office

parentsFirstName

parish

personalNumber

placeAndDateOfBirth

placeOfBirth

previousType

province

restrictions

sex

socialSecurityNumber

stateNumber

voterId

weight

MRZ Documents

The Anyline MRZ field names are according to the ICAO standard field names.

In addition to the supported field names on MRZ documents, the following table also lists equivalent field names on other document types if available. Some fields are only available on MRZ documents. For these, there is no equivalent field name in the table below.

The MRZ and ID plugins are not using the same result names for specific fields.
Field Name MRZ Equivalent Field Name on Other Document Types

surname

lastName

givenNames

firstName

dateOfBirth

dateOfBirth

dateOfExpiry

dateOfExpiry

documentNumber

documentNumber

documentType

documentType

issuingCountryCode

N/A

nationalityCountryCode

N/A

sex

sex

personalNumber

personalNumber

optionalData

N/A

checkDigitDateOfExpiry

N/A

checkDigitDocumentNumber

N/A

checkDigitDateOfBirth

N/A

checkDigitPersonalNumber

N/A

checkDigitFinal

N/A

allCheckDigitsValid

N/A

vizAddress

address

vizDateOfIssue

dateOfIssue

vizSurname

lastName

vizGivenNames

firstName

vizDateOfBirth

dateOfBirth

vizDateOfExpiry

dateOfExpiry

List of supported document categories and countries

Latin Cards

These are all layouts supported with the Latin script.

The Latin script currently supports the following characters: ", ', (, ), *, ,, -, ., /, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, <, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, À, Á, Â, Ä, Æ, Ç, È, É, Ê, Ë, Í, Î, Ï, Ñ, Ó, Ô, Ö, Ù, Ú, Û, Ü, Ý, ß, à, á, â, ä, æ, ç, è, é, ê, ë, í, î, ï, ó, ô, ö, ù, û, ü, ÿ, ą, ć, ę, Ğ, ğ, İ, ı, ń, Œ, œ, Ş, ş, Ÿ, ż, ú, ñ, Ġ, ý, Ć. Any character not in this list will either be represented as its base character or omitted in the result.

European Driving Licenses

Country Code Layout Whitelist code

Austria

AT

AT_DVL_O_04001_F

AT_DVL_O_04001_F

AT_DVL_O_05001_F

AT_DVL_O_05002-05001_F

AT_DVL_O_05002_F

Croatia

HR

HR_DVL_O_02001_F

HR_DVL_O_02001_F

Germany

DE

DE_DVL_O_02001_F

DE_DVL_O_02006-02003-02002-02001_F

DE_DVL_O_02002_F

DE_DVL_O_02003_F

DE_DVL_O_02006_F

DE_DVL_O_02007_F

DE_DVL_O_02007_F

Italy

IT

IT_DVL_O_06001_F

IT_DVL_O_06001_F

Portugal

PT

PT_DVL_O_06001_F

PT_DVL_O_06001_F

Spain

ES

ES_DVL_O_04002_F

ES_DVL_O_04002_F

European Identity Cards

Country Code Layout Whitelist code

Italy

IT

IT_IDC_O_04004_F

IT_IDC_O_04004_F

Portugal

PT

PT_IDC_O_03001_F

PT_IDC_O_03005-03004-03003-03002-03001_F, PT_IDC_O_03005-03004-03003-03002-03001_F_v2

PT_IDC_O_03002_F

PT_IDC_O_03003_F

PT_IDC_O_03004_F

PT_IDC_O_03005_F

Spain

ES

ES_IDC_O_05001_F

ES_IDC_O_05001_F

ES_IDC_O_06001_F

ES_IDC_O_06001_F

Filtering Scannable Documents Types

By default, every document supported by the ID plugin is enabled. This includes MRZ documents, driving licenses and identity cards.

If this is not desired, then it is possible to configure which specific layouts to enable. To do this, one needs to add the "allowedLayouts": {} keyword-dictionary pair to the universalIdConfig. The contents of this dictionary will control the filtering.

MRZ

In order to enable MRZ scanning one has to include the mrz keyword with an empty list as its value inside the dictionary corresponding to the "allowedLayouts" keyword: "allowedLayouts": {"mrz": []}.

The MRZ scanning is either enabled or disabled. There is no option to enable only for specific types and therefore the values within the corresponding list are not checked.

Driving Licenses

In order to enable driver license scanning one has to include the drivingLicense keyword with a list as its value inside the dictionary corresponding to the "allowedLayouts" keyword. The filtering is controlled by the values of the list. If it is empty then all supported driving license types will be allowed for scanning: "allowedLayouts": {"drivingLicense": []}

If the list has elements in them then only layouts that correspond to those will be allowed to be scanned from the driving licenses. The following configuration for example only enables the AT_DVL_O_04001_F from the driving license layouts: "allowedLayouts": {"drivingLicense": ["AT_DVL_O_04001_F"]}

Take note that certain values correspond to multiple layouts. The following configuration for example only enables the AT_DVL_O_04001_F, AT_DVL_O_05001_F and AT_DVL_O_05002_F layouts from the driving license layouts: "allowedLayouts": {"drivingLicense": ["AT_DVL_O_04001_F", "AT_DVL_O_05002-05001_F"]}

For the accepted filter values, see the whitelist codes within the layout listing tables.

Identity Cards

In order to enable identity card scanning one has to include the idFront keyword with a list as its value inside the dictionary corresponding to the "allowedLayouts" keyword. The filtering is controlled by the values of the list. If it is empty then all supported identity card types will be allowed for scanning: "allowedLayouts": {"idFront": []}

If the list has elements in them then only layouts that correspond to those will be allowed to be scanned from the identity cards. See Driving Licenses for filtering examples.

Multiple Filters

Using filters at the same time for different type of documents is simple. One only has to insert them into the dictionary corresponding to the "allowedLayouts" keyword at the same time. The rules described previously regarding filtering still applies (see Driving Licenses).

The following configuration for example enables MRZ scanning and allows all layouts from the driving licenses and from the identity cards: "allowedLayouts": {"mrz": [], "drivingLicense": [], "idFront": []}

If a non valid string is used as a keyword in the "allowedLayouts" dictionary, or within one of the lists inside it, no error is thrown. The non valid value is simply not taken into consideration. This is the case for typos and for elements that should belong to other keywords.
The configuration "allowedLayouts": {} does not allow any documents to be scanned. To scan all supported layouts set the default from the configuration above.

Configuration Parameters

Universal ID Config

alphabet

Sets a specific character set for scanning.

  • Type: string

  • Default: "latin"

  • Options: "latin", "arabic", "cyrillic" (current implementation supports Latin only)

allowedLayouts

Specifies the document types to be scanned and optionally further specifies which types of layout are scanned per type.

  • Type: object

  • Properties:

    • mrz: Array of allowed MRZ layouts

    • drivingLicense: Array of allowed driving license layouts

    • idFront: Array of allowed ID card layouts

Field Configuration (drivingLicense, idFront, mrz)

Each document type can have field-specific configurations with the following options:

scanOption

Determines whether a field is considered optional, mandatory, disabled or follows a default behavior.

  • Type: string

  • Default: "default"

  • Options: "mandatory", "optional", "disabled", "default"

minConfidence

Sets the minimum confidence which has to be reached in order to trigger a scan result for this field.

  • Type: integer

  • Default: 60

  • Range: 0 to 100

MRZ Config

strictMode

When enabled, a result is only returned if all check digits on the scanned document are valid.

  • Type: boolean

  • Default: false

  • Note: This can improve the quality of the returned result, but might also increase the scan duration. The scanned document must follow the ICAO standard.

minConfidence

Sets a minimum confidence which has to be reached in order to trigger a scan result.

  • Type: integer

  • Range: 0 to 100

cropAndTransformID

Sets whether to crop and transform the ID document image.

  • Type: boolean

  • Default: false

mrzFieldScanOptions

Configure which text fields shall be captured mandatory, optional or not at all.

  • Type: object

  • Supported fields: surname, givenNames, dateOfBirth, dateOfExpiry, documentNumber, documentType, issuingCountryCode, nationalityCountryCode, sex, personalNumber, optionalData, vizAddress, vizDateOfIssue, vizSurname, vizGivenNames, vizDateOfBirth, vizDateOfExpiry

  • Each field can be set to: "mandatory", "optional", "disabled", or "default"

Usage Examples

For practical code examples including preset configurations, custom layouts, MRZ strict mode, field validation, and result handling, see the ID Plugin Quick Start Guide.

Limitations

  • Some special characters are not supported yet: Scanning data with unsupported characters may work, but the result will contain errors for these text parts.

Optimal view plugin settings

Ratio from size

Modifications to the following settings are not recommended and may cause issues with the scan accuracy.

Property Name Value

width

1.61

height

1.00