mrz-generator
v1.1.1
Published
Enable a type TD1 and TD3 MRZ (Machine Readable Zone) text generation and MRV type B
Downloads
177
Readme
MRZ Generator
The module allows to create a MRZ (Machine Readable Zone) of type TD1 TD3.
The module allows to create a MRV (Machine Readable Zone) of type MRV B. For more information, check the following page: https://en.wikipedia.org/wiki/Machine-readable_passport
Installation
Last version:
npm install --save https://github.com/pgendre/n26-challenge-mrz-generator.git
The x.y.z version:
npm install --save https://github.com/pgendre/n26-challenge-mrz-generator.git#x.y.z
N26 challenge
To get a concrete example, run tests :
npm test
The MRZ of type TD3 should be displayed in your console. Associated input data :
{
"passport": {
"mrzType": "td3",
"type": "p",
"issuingCountry": "FRA",
"number": "11av56868",
"expirationDate": "11 May 2021 00:00:00 GMT"
},
"user": {
"surname": "Gendre",
"givenNames": "Pierre Joseph Alexandre",
"nationality": "FRA",
"dateOfBirth": "17 Oct 1986 00:12:00 GMT",
"sex": "male"
}
}
The MRZVof type MRV B should be displayed in your console. Associated input data :
{
"passport": {
"mrzType": "mrvb",
"type": "v",
"issuingCountry": "VEN",
"number": "2912960",
"expirationDate": "01 Mar 2029 00:00:00 GMT",
"optionalField1":"281122"
},
"user": {
"surname": "FUENTES MORA",
"givenNames": "GLADYS",
"nationality": "COL",
"dateOfBirth": "16 Oct 1970 00:12:00 GMT",
"sex": "female"
}
}
The verification can be done with the picture located in the following directory:
./passport_picture
Basic usage
import { generateMrz } from 'mrz-generator'
const inputData = {
passport: {
mrzType: 'td1',
type: 'p',
issuingCountry: 'FRA',
number: '11av56868',
expirationDate: '11 May 2021 00:00:00 GMT',
},
user: {
surname: 'Gendre',
givenNames: 'Pierre Joseh Alexandre',
nationality: 'FRA',
dateOfBirth: '17 Oct 1986 00:12:00 GMT',
sex: 'male'
}
}
const basicTest => {
try {
const mrz = generateMrz(inputData)
console.log(mrz)
// > 'P<FRA11AV568680<<<<<<<<<<<<<<<\n8610175M2105116FRA<<<<<<<<<<<<\nGENDRE<<PIERRE<JOSEPH<ALEXANDR'
} catch (e) {
console.error(e)
}
}
API Specification
Format of input data:
| 1 level key | 2 level key | Required | Format | Description | Example | | ----------- | -------------- | -------- |-----------------------| ----------------------------------------- | ----------------- | | passport | mrzType | Yes | 'td1' , 'td3' or mrvb | Type of mrz. | 'td1' | | | type | Yes | AlphaNum(1) | Type of passport. | 'i' | | | typePrecision | No | AlphaNum(1) | Precise the type of passport. | 'd' | | | issuingCountry | Yes | Country ISO * | Document issuing country. | 'ALB' | | | number | Yes | AlphaNum(9) | Document number. | 'AD98FR334' | | | expirationDate | Yes | Stringified Date | Format is free. Document expiration date. | '2023-06-24' | | | optionalField1 | No | AlphaNum(-) | Optional field. | '54 option32' | | | optionalField2 | No | AlphaNum(-) | Optional field (only available for TD1). | 'other 98' | | user | surname | Yes | Alpha(-)** | User surname. | 'Willson Mark' | | | givenNames | Yes | Alpha(-)** | User given names. | 'John Max Steven' | | | nationality | Yes | Country ISO * | User nationality. | 'BEL' | | | dateOfBirth | Yes | Stringified Date | User date of birth. | '1988-03-15' | | | sex | Yes | 'male'or'female' | User sex. | 'female' | | | | | or'unspecified' |
* : See the list below to get correct country code. ** : Are allowed hyphens, spaces and apostrophes.
Countries format
ABW Aruba AFG Afghanistan AGO Angola AIA Anguilla ALA Åland Islands ALB Albania AND Andorra ARE United Arab Emirates ARG Argentina ARM Armenia ASM American Samoa ATA Antarctica ATF French Southern Territories ATG Antigua and Barbuda AUS Australia AUT Austria AZE Azerbaijan BDI Burundi BEL Belgium BEN Benin BES Bonaire, Sint Eustatius and Saba BFA Burkina Faso BGD Bangladesh BGR Bulgaria BHR Bahrain BHS Bahamas BIH Bosnia and Herzegovina BLM Saint Barthélemy BLR Belarus BLZ Belize BMU Bermuda BOL Bolivia (Plurinational State of) BRA Brazil BRB Barbados BRN Brunei Darussalam BTN Bhutan BVT Bouvet Island BWA Botswana CAF Central African Republic CAN Canada CCK Cocos (Keeling) Islands CHE Switzerland CHL Chile CHN China CIV Côte d'Ivoire CMR Cameroon COD Congo, Democratic Republic of the COG Congo COK Cook Islands COL Colombia COM Comoros CPV Cabo Verde CRI Costa Rica CUB Cuba CUW Curaçao CXR Christmas Island CYM Cayman Islands CYP Cyprus CZE Czechia D Germany DJI Djibouti DMA Dominica DNK Denmark DOM Dominican Republic DZA Algeria ECU Ecuador EGY Egypt ERI Eritrea ESH Western Sahara ESP Spain EST Estonia ETH Ethiopia FIN Finland FJI Fiji FLK Falkland Islands (Malvinas) FRA France FRO Faroe Islands FSM Micronesia (Federated States of) GAB Gabon GBR United Kingdom of Great Britain and Northern Ireland GEO Georgia GGY Guernsey GHA Ghana GIB Gibraltar GIN Guinea GLP Guadeloupe GMB Gambia GNB Guinea-Bissau GNQ Equatorial Guinea GRC Greece GRD Grenada GRL Greenland GTM Guatemala GUF French Guiana GUM Guam GUY Guyana HKG Hong Kong HMD Heard Island and McDonald Islands HND Honduras HRV Croatia HTI Haiti HUN Hungary IDN Indonesia IMN Isle of Man IND India IOT British Indian Ocean Territory IRL Ireland IRN Iran (Islamic Republic of) IRQ Iraq ISL Iceland ISR Israel ITA Italy JAM Jamaica JEY Jersey JOR Jordan JPN Japan KAZ Kazakhstan KEN Kenya KGZ Kyrgyzstan KHM Cambodia KIR Kiribati KNA Saint Kitts and Nevis KOR Korea, Republic of KWT Kuwait LAO Lao People's Democratic Republic LBN Lebanon LBR Liberia LBY Libya LCA Saint Lucia LIE Liechtenstein LKA Sri Lanka LSO Lesotho LTU Lithuania LUX Luxembourg LVA Latvia MAC Macao MAF Saint Martin (French part) MAR Morocco MCO Monaco MDA Moldova, Republic of MDG Madagascar MDV Maldives MEX Mexico MHL Marshall Islands MKD North Macedonia MLI Mali MLT Malta MMR Myanmar MNE Montenegro MNG Mongolia MNP Northern Mariana Islands MOZ Mozambique MRT Mauritania MSR Montserrat MTQ Martinique MUS Mauritius MWI Malawi MYS Malaysia MYT Mayotte NAM Namibia NCL New Caledonia NER Niger NFK Norfolk Island NGA Nigeria NIC Nicaragua NIU Niue NLD Netherlands NOR Norway NPL Nepal NRU Nauru NZL New Zealand OMN Oman PAK Pakistan PAN Panama PCN Pitcairn PER Peru PHL Philippines PLW Palau PNG Papua New Guinea POL Poland PRI Puerto Rico PRK Korea (Democratic People's Republic of) PRT Portugal PRY Paraguay PSE Palestine, State of PYF French Polynesia QAT Qatar REU Réunion ROU Romania RUS Russian Federation RWA Rwanda SAU Saudi Arabia SDN Sudan SEN Senegal SGP Singapore SGS South Georgia and the South Sandwich Islands SHN Saint Helena, Ascension and Tristan da Cunha SJM Svalbard and Jan Mayen SLB Solomon Islands SLE Sierra Leone SLV El Salvador SMR San Marino SOM Somalia SPM Saint Pierre and Miquelon SRB Serbia SSD South Sudan STP Sao Tome and Principe SUR Suriname SVK Slovakia SVN Slovenia SWE Sweden SWZ Eswatini SXM Sint Maarten (Dutch part) SYC Seychelles SYR Syrian Arab Republic TCA Turks and Caicos Islands TCD Chad TGO Togo THA Thailand TJK Tajikistan TKL Tokelau TKM Turkmenistan TLS Timor-Leste TON Tonga TTO Trinidad and Tobago TUN Tunisia TUR Turkey TUV Tuvalu TWN Taiwan, Province of China TZA Tanzania, United Republic of UGA Uganda UKR Ukraine UMI United States Minor Outlying Islands URY Uruguay USA United States of America UZB Uzbekistan VAT Holy See VCT Saint Vincent and the Grenadines VEN Venezuela (Bolivarian Republic of) VGB Virgin Islands (British) VIR Virgin Islands (U.S.) VNM Viet Nam VUT Vanuatu WLF Wallis and Futuna WSM Samoa YEM Yemen ZAF South Africa ZMB Zambia ZWE Zimbabwe