International ID/Passports

Model V2. Published on May 10, 2024.

Introduction

FormX is a powerful tool that can extract information from a variety of identity documents including passports, ID cards, and driver's licenses.

Supported Countries and ID Types

The following countries and ID types are currently supported by FormX:

CountryType
All countriesPassport, Driver's License, Identity Cards
Hong KongIdentity Card
TaiwanNational Identification Card
MacauIdentity Card
SingaporeNRIC, Work passes

The list of supported countries and ID types is constantly growing, so if the one you need is not listed, please contact us for more information.

How to Use FormX

  1. Log in to the FormX Portal.
  2. Go to the Extractors page and click on "Create new extractor."
  3. Choose "Government ID/Passport" and give your extractor a name.
  4. Your extractor is now set up! To test it out, simply drag and drop a photo into the "Test" tab to view the extracted result.

Attributes

There are general attributes Formx will return for all types of ID/passport if such data exists.
Some document types may have additional attributes. Check it out below.

General attributes

These are the general attributes:

Attribute nameMeaningValue
type_of_idThe type of documenttype.country.subdivision e.g. id.hkg , driverslicense.usa.ny , other
nameFull name of the holderString, Variable length in latin script
surnameSurname/Family name of the holderString, Variable length in latin script
given_nameGiven names of the holderString, Variable length in latin script
name_non_latinName of the holder in non-latin scriptString, Variable length in non-latin script
surname_non_latinSurname/Family name of the holder in non-latin scriptString, Variable length in non-latin script
given_name_non_latingiven names of the holder in non-latin scriptString, Variable length in non-latin script
date_of_birthDate of birth of the holderYYYY-MM-DD or YYYY-MM or YYYY
date_of_issueIssue date of the documentYYYY-MM-DD
date_of_expiryExpiry date of the documentYYYY-MM-DD
sexSex or gender of the holderM, F, or X
place_of_birthCity or State of the holder’s birthplaceString, Variable length
nationalityNationality of the holder as printed on the documentString, Variable length
nationality_codeNationality of the holder in 3-letter code as defined in ICAO Doc 9303-3String, three letters
issuing_authorityIssuing organization of the document as printed in the documentString, Variable length
personal_numberPersonal identification number given to holder by the issuing State or organization.String, Variable length e.g. HKID number: A123456(7)
document_numberThe number given by the issuer to identify the documentString, Variable length
portraitThe bounding box of the portrait of the holderArray [x1,y1,x2,y2]
signatureThe bounding box of the signature of the holderArray [x1,y1,x2,y2]
addressAddress of the holderString, Variable length

Passport attributes

If the uploaded document has type_of_id = "passport", these are the attributes one can get.

Attribute name

Meaning

Value

type_of_id

The type of document

String, "passport"

surname

Surname or family name of the holder

String, Variable length in latin script

given_name

Given names of the holder

String, Variable length in latin script

surname_non_latin

Surname or family name of the holder in non-latin script

String, Variable length in non-latin script

given_name_non_latin

Given name of the holder in non-latin script

String, Variable length in non-latin script

type

Passport type

String, Variable length

country_code

Country code

String, Variable length

passport_number

Passport number

String, Variable length

personal_number

Personal identification number given to holder by the issuing State or organization.

String, Variable length e.g. HKID number: A123456(7)

nationality_alpha_3

Nationality of the passport holder as listed in MRZ. It follows the standard of ISO 3166 alpha 3 with modification.

String, 1-3 characters

nationality

A conversion of nationality_alpha_3to its English counterparts by FormX

String, Variable length

sex

Sex or gender of the holder

M, F, or X

date_of_birth

Date of birth of the holder

YYYY-MM-DD or YYYY-MM or YYYY

date_of_expiry

Expiry date of the document

YYYY-MM-DD

place_of_birth

City or State of the holder’s birthplace

String, Variable length

portrait

The bounding box of the portrait of the holder

Array oduction

For

signature

The bounding box of the signature of the holder

Array oduction

For

mrz_upper_line

The upper line of MRZ

String, Variable length

mrz_lower_line

The second line of MRZ

String, Variable length

mrz_validation

Validation results of a series of checking done by FormX to validate the information extracted from MRZ.

Dictionary with validation items in boolean. An example:\

{  
  "is_passport_number_valid": true,  
  "is_date_of_birth_valid": true,  
  "is_date_of_expiry_valid": true,  
  "is_personal_number_valid": true,  
  "is_composite_check_digit_valid": true  
}

Hong Kong ID attributes

If the uploaded document has type_of_id = "id.hkg", these are the attributes one can get.

Attribute Name

Meaning

Data Type

type_of_id

The type of document

String, "id.hkg"

chinese_commercial_code

A numeric or alphanumeric code used for administrative identification in Hong Kong

String, variable length

name

Full name of the holder

String, variable length

name_non_latin

Name of the holder in non-Latin script

String, variable length

is_permanent_resident

Permanent resident status

Boolean

sex

Sex or gender of the holder

M, F, or X

date_of_birth

Date of birth of the holder

String, YYYY-MM-DD

date_of_issue

Issue date of the document

String, YYYY-MM-DD

personal_number

Personal identification number

String, variable length

portrait

Portrait photo

String
If a portrait photo is detected, value "portrait" will be returned

Macau ID attributes

If the uploaded document has type_of_id = "id.mac", these are the attributes one can get.

Attribute Name

Meaning

Data Type

type_of_id

The type of document

String, "id.mac"

given_name

Given name of the holder

String, variable length

given_name_non_latin

Given name of the holder in non-Latin script

String, variable length

chin_commercial_code_given_names

Chinese commercial code for given names

String, variable length

date_of_birth

Date of birth of the holder

String, YYYY-MM-DD

surname

Surname/Family name of the holder

String, variable length

surname_non_latin

Surname/Family name of the holder in non-Latin script

String, variable length

chin_commercial_code_surname

Chinese commercial code for surname

String, variable length

is_permanent_resident

Permanent resident status

Boolean

sex

Sex or gender of the holder (M, F, X)

M, F, or X

date_of_expiry

Expiry date of the document

String, YYYY-MM-DD

date_of_issue

Issue date of the document

String, YYYY-MM-DD

date_of_first_issue

Date of first issue of the document

String, YYYY-MM-DD

height

Height of the holder in meters

Float

personal_number

Personal identification number

String, variable length

signature

Signature of the holder

String
If a signature is detected, value "signature" will be returned

portrait

Portrait photo

String
If a portrait photo is detected, value "portrait" will be returned

Taiwan ID attributes

If the uploaded document has type_of_id = "id.twn", these are the attributes one can get.

Attribute Name

Meaning

Data Type

type_of_id

The type of document

String, id.twn

name

Full name of the holder

String, variable length

date_of_birth

Date of birth of the holder

String, YYYY-MM-DD

personal_number

Personal identification number

String, variable length

sex

Sex or gender of the holder

M, F, or X

date_of_issue

Issue date of the document

String, YYYY-MM-DD

portrait

Portrait photo

String
If a portrait photo is detected, value "portrait" will be returned

Singapore NRIC attributes

FormX returns a different set of attributes for the front and the back of a Singapore NRIC.

If the uploaded document has type_of_id = "id.sgp"and form_type = "nric_front", these are the attributes one can get.

Attribute NameMeaningData Type
type_of_idThe type of documentString, "id.sgp"
form_typeSpecific form type of the documentString, "nric_front"
nameFull name of the holderString, variable length
personal_numberPersonal identification numberString, variable length
date_of_birthDate of birth of the holderString, YYYY-MM-DD
sexSex or gender of the holderM, F, or X
place_of_birthPlace of birth of the holderString, variable length
raceRace of the holderString, variable length

If the uploaded document has type_of_id = "id.sgp"and form_type = "nric_back", these are the attributes one can get.

Attribute NameMeaningData Type
type_of_idThe type of documentString, "id.sgp"
form_typeSpecific form type of the documentString, "nric_back"
personal_numberPersonal identification numberString, variable length
addressResidential address of the holderString, variable length
postal_codePostal code of the holder's addressString, variable length
date_of_issueIssue date of the documentString, YYYY-MM-DD

Thailand ID attributes

If the uploaded document has type_of_id = "id.tha"and form_type = "thai_national_id_card", these are the attributes one can get.

Attribute Name

Meaning

Data Type

type_of_id

The type of document

String, "id.tha"

form_type

Specific form type of the document

String, "thai_national_id_card"

personal_number

Personal identification number

String, variable length

request_number

Request number associated with the ID

String, variable length

name_non_latin

Full name of the holder in non-Latin script

String, variable length

given_name

Given name of the holder

String, variable length

surname

Surname of the holder

String, variable length

date_of_birth

Date of birth of the holder

String, YYYY-MM-DD

religion

Religion of the holder

String, variable length

address

Residential address of the holder

String, variable length

date_of_issue

Issue date of the document

String, YYYY-MM-DD

date_of_expiry

Expiry date of the document

String, YYYY-MM-DD

portrait

Portrait photo

String
If a portrait photo is detected, value "portrait" will be returned

signature

Signature of the holder

String
If a portrait photo is detected, value "signature" will be returned


ID Liveness Detection

In most KYC processes, they require users to take pictures of their IDs using their phone cameras. FormX provide detection models to flag images that are in high risk of fraud. There are three ID spoofing types that our models can detect:

  1. Color Copy
    • This involves scanned images, or scanned images printed on paper in color.
  2. Greyscale Copy
    • Scanned copies in greyscale
  3. Screen Replay
    • Photos of IDs displayed on the screen of another device.

To learn more about this feature, please refer to the ID Liveness Detection (Beta) page.