NAME Parser::AAMVA::License - AAMVA Driver's License Magnetic Stripe Parser

DESCRIPTION

License is a parser/decoder for the American Association of Motor Vehicle Administrators(AAMVA) format that is used to encode the magnetic stripe found on Driver's Licenses in the US and Canada. Most data is available both in its raw and decoded form. You should refer to the latest specification at www.aamva.org for details on the field contents. Starting and ending sentinals in the track data are optional.

Load the tracks you have available, only track 1 is mandatory. Not all magnetic stripe readers can read track 3.

SYNOPSIS

        $track1='%ORSPRINGFIELD ^ SIMPSON $HOMER$J ^ 742 EVERGREEN TERR ^?';    # % and ? are sentinals. 
        $track2 =';6360291234567890123=180119550512=?';                                         # ; and ? are sentinals.
        
        $p = new Parse::AAMVA::License;
        
        $p->loadtrack( 1, $track1 );
        $p->loadtrack( 2, $track2 );
        $p->loadtrack( 3, $track3 );
        
        $p->parse_magstripe;

FIELDS

        Field Name              AAMVA Field #                   Track
        
        state                   State/Province 2                1 
        city                    City Name 3                     1 
        fname                   First Name 4                    1 
        lname                   Last Name 4                     1 
        middle                  Middle Name 4                   1 
        address1                Address Line 1 5                1 
        address2                Address Line 2 5                1 
        id                      ISO Id 2                        2 
        license                 License Number 3/7              2 Includes overflow from field 7 
        expdate                 Expiration 5                    2 YYYY-MM-DD (1) 
        birthdate               Birth Date 6                    2 YYYY-MM-DD 
        cdsversion              CDS Version 2                   3 
        jdversion               Juris. Version 3                3 
        postalcode              Postal/Zip Code 4               3 
        dlclass                 License Class 5                 3 
        restrictions            Lic. Restrictions 6             3 
        endorsements            Lic. Endorsements 7             3 
        sex                     Sex 1=Male, 2=Female 8          3 
        height                  Height in in. or cm. 9          3 (2) 
        weight                  Weight in lbs or kg. 10         3 (2) 
        haircolor               Hair Color 11                   3 (3) 
        eyecolor                Eye Color 12                    3 
        did                     Optionally defined by
                                        jurisdiction 13,14,15   3

(1). If expiration date year is 2077, license never expires. Otherwise, this field represents the last valid date.

(2). Height is in inches or cm depending on country. Weight is in pounds or kg. Call the country method to determine country of origin: USA, MEX or CAN.

(3). This the raw hair color, e.g. BRO. For a description, call the haircolor method.

METHODS

$p->loadtrack(tracknumber,string);
 Load the magnetic stripe track
$p->parse_magstripe
 Parse loaded magstripe data. Returns null.
 
$p->country

Attempts to determine country of origin from the ISO ID. Returns CAN, MEX or USA.

$p->haircolor
 Returns the ANSI D20 hair color definition
 BAL Bald
 BLK Black
 BLN Blond
 BRO Brown
 GRY Grey
 RED Red/Auburn
 SDY Sandy
 WHI White
 UNK Unknown
 

ACCESSING FIELDS

 Decoded fields are accessed directly via an anonymous hash:
 Ex. print $p->{license};

EXAMPLE

 $p=new Parse:AAMVA:License;
 $p->loadtrack(1,$track1);
 $p->loadtrack(2,$track2);
 $p->loadtrack(3,$track3);
 $p->parse_magstripe;

 print "Name: ".$p->{fname}.' '.$p->{lname};
 print "Birth Date: ".$p->{birthdate};

AUTHOR Curt Evans, <bitflurry at gmail.com>

COPYRIGHT

Copyright Curt Evans, 2014. This program is free software; you can redistribute it and/or modify it under the terms of either: a) the GNU General Public License; either version 2 of the License, or (at your option) any later version. You should have received a copy of the GNU General Public License along with this program; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA b) the Perl Artistic License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.