Skip to main content
Version: v8001

Result object reference

This article describes the structure of the scanning result returned by BlinkID. It documents the parts that are common to every platform. For platform-specific types (image formats, enums, and exact accessor signatures), follow the API reference for your platform:

Result object​

note

Some extracted fields may correspond to similar concepts, yet be named differently. This is due to the differences in naming by the jurisdictions issuing these documents.

documentClassInfo​

General information about the document, specifically its country, region, and type.

dataMatchResult​

Explains whether the data extracted from multiple sides matches. You can inspect the overallState and the statePerField. Useful for diagnostics.

additionalAddressInformation​

Additional address information that isn't included in the address field. Depending on the document type it might correspond to a province, or region code.

additionalNameInformation​

Additional name information that isn't included in the firstName or lastName fields. Might include things like alternative spellings or international variants of a name.

additionalOptionalAddressInformation​

See additionalAddressInformation.

additionalPersonalIdNumber​

Alternative values for the personal ID number.

address​

Address extracted from the document.

bloodType​

Blood type extracted from the document.

cardAccessNumber​

Card access number is a numeric code used to establish secure electronic access to the embedded contactless chip, present on certain IDs.

certificateNumber​

The certificate number is found mostly on UK residence permits, under the "Remarks" field.

countryCode​

ISO country code found on the card.

dateOfBirth​

Date of birth.

dateOfEntry​

Date of entry.

dateOfExpiry​

Date of expiry.

dateOfIssue​

Date when the document was issued.

dependentsInfo​

Some documents list dependents, and this structure contains this information, if it has been extracted.

documentAdditionalNumber​

Additional numbers extracted from the document. These depend on the particular document in question. If an additional number is mandatory on the document, it is listed here.

documentNumber​

Document number, which has regional meanings, but usually refers to unique identifiers of a document.

documentOptionalAdditionalNumber​

If a document has optional additional numbers, they are listed here. See documentAdditionalNumber.

documentSubtype​

Some documents specify additional type information beyond that which is returned in the documentClassInfo structure.

driverLicenseDetailedInfo​

Detailed information extracted from driver licenses. It carries restrictions, endorsements, conditions, the vehicleClass, and vehicleClassesInfo with per-class details.

effectiveDate​

Date that the document is valid from; meaning depends on type of document. Seen on Netherlands residence permits.

eligibilityCategory​

Shows under which immigration provision the person is authorized to work.

employer​

Employer name.

ethnicity​

Ethnicity.

fathersName​

Father's name.

firstName​

First name.

fullName​

Full name. Some documents don't divide into first and last names.

husbandName​

Husband name.

issuingAuthority​

Marks which authority issued the document.

lastName​

Last name.

legalStatus​

Shows the legal status on some identity cards.

localityCode​

Locality code.

maidenName​

Maiden name.

manufacturingYear​

Manufacturing year, mostly refers to the year when a vehicle was manufactured.

maritalStatus​

Marital status.

mothersName​

Mother's name.

municipalityCode​

Municipality code.

municipalityOfRegistration​

Municipality of registration.

nationalInsuranceNumber​

National insurance number, such as the UK National Insurance number.

nationality​

Nationality of the document owner.

parentsInfo​

A list of the document owner's parents, when the document lists them. Each entry has a firstName and a lastName.

personalIdNumber​

Personal identification number. A unique number assigned to the person by the issuing authority.

placeOfBirth​

Place of birth.

pollingStationCode​

Polling station code, found on documents that also serve as voter identification.

profession​

Profession.

race​

Race.

registrationCenterCode​

Registration center code.

religion​

Religion.

remarks​

Free-form remarks printed on the document, most often on residence permits.

residencePermitType​

Type of the residence permit.

residentialStatus​

Residential status of the document owner.

sectionCode​

Section code.

sex​

Sex or gender of the document owner.

socialSecurityStatus​

Social security status of the document owner.

specificDocumentValidity​

Additional validity information specific to certain document types.

Sponsor of the document owner, named on some visas and residence permits.

stateCode​

State code.

stateName​

State name.

vehicleOwner​

Vehicle owner.

vehicleType​

Vehicle type.

visaType​

Visa type.

workRestriction​

Work restriction that applies to the document owner.

dateOfExpiryPermanent​

A boolean that is true when the document never expires.

localizedName​

The document owner's name in the local script or language, when the document also prints a localized variant.

inputImagesScanningSide​

Marks which scanned sides the input images in subResults came from. Used to correlate a returned input image with the side it was captured on.

documentImagesScanningSide​

Marks which scanned sides the cropped document images in subResults came from.

faceImageScanningSide​

Marks which scanned side the returned face image came from.

signatureImageScanningSide​

Marks which scanned side the returned signature image came from.

barcodeImageScanningSide​

Marks which scanned side the returned barcode image came from.

subResults​

The raw, per-side results, with one entry per scanned side. See per-side results.

String results​

Most text fields are string results rather than plain strings, because a document can carry the same field in more than one alphabet (for example, a name printed in both Latin and Cyrillic). A string result holds one value per alphabet: latin, arabic, cyrillic, and greek.

How you read the value differs by platform.

On web, index into the alphabet you want; each alphabet entry has a value:

const firstName = result.firstName?.latin?.value;
const firstNameCyrillic = result.firstName?.cyrillic?.value;

Date results​

Date fields (dateOfBirth, dateOfExpiry, dateOfIssue, and similar) are date results. A date result exposes the parsed parts plus the original text:

  • day, month, year: the parsed numeric components, each undefined/nil when not parsed
  • originalString: the date exactly as printed on the document. This is itself a string result, so it carries one value per alphabet
  • successfullyParsed: whether the string was parsed into numeric parts
  • filledByDomainKnowledge: whether the SDK inferred the date from domain knowledge rather than reading it off the document
const expiry = result.dateOfExpiry;
const year = expiry?.year;
// originalString is a string result, so index into the alphabet you want:
const asPrinted = expiry?.originalString?.latin?.value;

The result also exposes dateOfExpiryPermanent, a boolean that is set when the document never expires.

Document class info​

documentClassInfo identifies the scanned document:

  • country, region, documentType: the classified country, region, and document type
  • countryName: the human-readable issuing country name
  • isoNumericCountryCode, isoAlpha2CountryCode, isoAlpha3CountryCode: ISO country codes for the issuer

Each classification component (country, region, documentType) carries a strongly-typed identifier plus a rawValue string. BlinkID can receive new document classes over the air (OTA), delivered after the SDK was built. When a document matches such a class, the build-time enum has no matching value, so the identifier is absent and only rawValue is populated.

countryName and the ISO country codes are optional and may be absent when the issuer is unknown. documentClassInfo itself is absent when the document could not be classified at all, such as an unsupported document with no class info.

Use it to branch your logic on document type, or to decide whether a document is supported.

Per-side results​

subResults is an array with one entry per scanned side. Each entry is a single-side result containing the raw, zone-level data and the images for that side:

  • viz: data extracted from the Visual Inspection Zone
  • mrz: data extracted from the Machine Readable Zone
  • barcode: data extracted from the barcode
  • inputImage: the full input frame
  • documentImage: the cropped document image
  • faceImage: the cropped face image
  • signatureImage: the cropped signature image
  • barcodeImage: the input frame that contained the scanned barcode

The top-level field values are the SDK's best combined reading across all sides. Reach into subResults only when you need the raw per-zone data or the images. Image formats are platform-specific; see your platform's API reference.