# Verified A simple Ruby Gem to verify and parse MRZ codes on passports. Useful if you need to meet KYC or Money Laundering requirements. ## Examples Setup a new instance ```ruby passport = Verified::Passport.new("mrz_code_1", "mrz_code_2") ``` and you're done! Use it like this: ```ruby passport.verified? # => true passport.last_name # => LAST passport.gender # => M ``` ## Installation Add this line to your application's Gemfile: ```ruby gem 'verified' ``` And then execute: $ bundle Or install it yourself as: $ gem install verified ## Usage ### Passport Setup your passport instance like so: ```ruby passport = Verified::Passport.new("mrz_line_1", "mrz_line_2") ``` ``` mrz_line_1: The first line of a Passport MRZ (the long strip of text on the bottom). (string, required) mrz_line_2: The second line of a Passport MRZ (the long strip of text on the bottom). (string, required) ``` It then can be called using any of the folllowing methods: ``` verified? : Returns true if it's a valid passport MRZ, false if it's not. issuing_state : Issuing country of the passport last_name : Last name on the passport first_names : Array of first names on the passport (First and any middle names) passport_number : Passport Number nationality : Nationality of the person on the passport. Different from the issuing state (eg. Swedish person who is also a citizen of UK.) date_of_birth : Date of Birth, given as a Ruby Date object. gender : Gender, given as M, F or nil if not specified. expiry_date : Expiry date of the passport, given as a Ruby Date object. personal_number : Personal number, if chosen to be given by issuer. Nil if not specified. ``` ### UK Drivers License This is coming soon, as I'm currently waiting for the DVLA to respond to a freedom of information request that will allow me to understand how the check digits in UK driver numbers are calculated so I can verify them. Feel free to follow the [FOI request on WhatDoTheyKnow](https://www.whatdotheyknow.com/request/what_check_digit_algorithm_is_us#incoming-670731) and I'll update the gem as soon as I can once I have a response. ## Development After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment. To install the gem onto your local machine, run `bundle exec rake install`. ## Contributing Bug reports and pull requests are welcome on GitHub at https://github.com/rubymeow/verified. ## License The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT). MRZ parsing based on Document 9303 (Machine Readable Travel Documents - Part 1 - Machine Readable Passports. Volume 1 - Passports with Machine Readable Data Stored in Optical Character Recognition format) by the ICAO which can be found here: http://www.icao.int/publications/pages/publication.aspx?docnum=9303 Warning: This is by no means a KYC solution on it's own. This merely parses MRZ's and validates they are valid **mrz codes**. This does **not** confirm the document you are verifying is legitimate.