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.