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 nameMeaningValue
type_of_idThe type of documentString, "passport"
surnameSurname or family name of the holderString, Variable length in latin script
given_nameGiven names of the holderString, Variable length in latin script
surname_non_latinSurname or family name of the holder in non-latin scriptString, Variable length in non-latin script
given_name_non_latinGiven name of the holder in non-latin scriptString, Variable length in non-latin script
typePassport typeString, Variable length
country_codeCountry codeString, Variable length
passport_numberPassport numberString, Variable length
personal_numberPersonal identification number given to holder by the issuing State or organization.String, Variable length e.g. HKID number: A123456(7)
nationality_alpha_3Nationality of the passport holder as listed in MRZ. It follows the standard of ISO 3166 alpha 3 with modification.String, 1-3 characters
nationalityA conversion of nationality_alpha_3to its English counterparts by FormXString, Variable length
sexSex or gender of the holderM, F, or X
date_of_birthDate of birth of the holderYYYY-MM-DD or YYYY-MM or YYYY
date_of_expiryExpiry date of the documentYYYY-MM-DD
place_of_birthCity or State of the holder’s birthplaceString, 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]
mrz_upper_lineThe upper line of MRZString, Variable length
mrz_lower_lineThe second line of MRZString, Variable length
mrz_validationValidation 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 NameMeaningData Type
type_of_idThe type of documentString, "id.hkg"
chinese_commercial_codeA numeric or alphanumeric code used for administrative identification in Hong KongString, variable length
nameFull name of the holderString, variable length
name_non_latinName of the holder in non-Latin scriptString, variable length
is_permanent_residentPermanent resident statusBoolean
sexSex or gender of the holderM, F, or X
date_of_birthDate of birth of the holderString, YYYY-MM-DD
date_of_issueIssue date of the documentString, YYYY-MM-DD
personal_numberPersonal identification numberString, variable length
portraitPortrait photoString
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 NameMeaningData Type
type_of_idThe type of documentString, "id.mac"
given_nameGiven name of the holderString, variable length
given_name_non_latinGiven name of the holder in non-Latin scriptString, variable length
chin_commercial_code_given_namesChinese commercial code for given namesString, variable length
date_of_birthDate of birth of the holderString, YYYY-MM-DD
surnameSurname/Family name of the holderString, variable length
surname_non_latinSurname/Family name of the holder in non-Latin scriptString, variable length
chin_commercial_code_surnameChinese commercial code for surnameString, variable length
is_permanent_residentPermanent resident statusBoolean
sexSex or gender of the holder (M, F, X)M, F, or X
date_of_expiryExpiry date of the documentString, YYYY-MM-DD
date_of_issueIssue date of the documentString, YYYY-MM-DD
date_of_first_issueDate of first issue of the documentString, YYYY-MM-DD
heightHeight of the holder in metersFloat
personal_numberPersonal identification numberString, variable length
signatureSignature of the holderString
If a signature is detected, value "signature" will be returned
portraitPortrait photoString
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 NameMeaningData Type
type_of_idThe type of documentString, id.twn
nameFull name of the holderString, variable length
date_of_birthDate of birth of the holderString, YYYY-MM-DD
personal_numberPersonal identification numberString, variable length
sexSex or gender of the holder M, F, or X
date_of_issueIssue date of the documentString, YYYY-MM-DD
portraitPortrait photoString
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 NameMeaningData Type
type_of_idThe type of documentString, "id.tha"
form_typeSpecific form type of the documentString, "thai_national_id_card"
personal_numberPersonal identification numberString, variable length
request_numberRequest number associated with the IDString, variable length
name_non_latinFull name of the holder in non-Latin scriptString, variable length
given_nameGiven name of the holderString, variable length
surnameSurname of the holderString, variable length
date_of_birthDate of birth of the holderString, YYYY-MM-DD
religionReligion of the holderString, variable length
addressResidential address of the holderString, variable length
date_of_issueIssue date of the documentString, YYYY-MM-DD
date_of_expiryExpiry date of the documentString, YYYY-MM-DD
portraitPortrait photoString
If a portrait photo is detected, value "portrait" will be returned
signatureSignature of the holderString
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.