Know Your Customer
...
ID Data Verification
US
US DL Verification
introduction us driver's license verification is a solution set to streamline the process of verifying the authenticity of driver's licenses within the united states leveraging data from the american association of motor vehicle administrators (aamva) , this api will perform comprehensive checks by comparing multiple parameters from the aamva's database against user/client provided information this verification process ensures the high level of accuracy and security in a world where trust and accuracy matter, our api ensures that the driver's license details you receive are not just valid but also meticulously verified us driver's license a united states driver's license, is an official document issued by state governments within the united states that authorizes individuals to operate motor vehicles legally on the country's roadways it serves as both a form of personal identification and a permit to drive a car, motorcycle, or other types of motor vehicles, depending on the specific type of driver's license here are some key points to understand about the u s driver's license 1\ legal requirement in the united states, it is typically a legal requirement to possess a valid driver's license in order to drive a motor vehicle on public roads driving without a valid license can result in legal penalties 2\ state based driver's licenses in the u s are issued by individual states and territories each state has its own department of motor vehicles (dmv) or equivalent agency responsible for issuing and regulating driver's licenses 3\ types of driver's licenses there are various types of driver's licenses, including a regular driver's license for operating standard passenger vehicles, commercial driver's licenses (cdl) for driving commercial vehicles like trucks and buses, and learner's permits for those who are learning to drive 4\ identification driver's licenses also serve as a form of personal identification they typically include the driver's photograph, full legal name, date of birth, and residential address 5\ age restrictions some states issue driver's licenses to individuals as young as 16 for regular driving, while others have minimum age requirements for specific types of licenses, such as motorcycle endorsements 6\ expiry driver's licenses have expiration dates, typically requiring renewal every few years the expiration date can vary from state to state 7\ driving records each state maintains a driving record for license holders, which includes information on traffic violations, accidents, and other driving related incidents 8\ interstate recognition u s driver's licenses are generally recognized and accepted throughout the country this means that you can typically use your home state's license when traveling or moving to a different state what is aamva the american association of motor vehicle administrators (aamva) is a non profit organization that serves as a central authority and resource for motor vehicle and driver licensing agencies across the united states and canada at present 41 usa states are members of aamva aamva facilitates cooperation and collaboration among these agencies to improve and standardize various aspects of motor vehicle administration and regulation here's a brief context about aamva membership aamva's membership includes all u s states, canadian provinces, the district of columbia, and u s territories this extensive membership makes it a key organization for promoting uniformity in motor vehicle and driver licensing practices functions aamva provides a range of services, including research, information sharing, best practices, and the development of standards and specifications for driver licensing, vehicle registration, and other related functions data exchange aamva plays a vital role in standardizing data sharing and information exchange among member jurisdictions this is particularly important for activities such as driver's license verification and motor vehicle record sharing overview of us dl verification api us driver's license verification api offers a reliable and efficient way to verify driver's license details, enhancing data accuracy and security across a wide range of applications the api provides real time verification of driver's license details, offering a robust set of verification metrics and seamless integration capabilities api applications b2b (business to business) applications insurance companies insurance providers can use this api to validate driver's license details when customers apply for auto insurance car rental agencies car rental companies can integrate this api to confirm the validity of driver's licenses before renting vehicles employers and background check services employers and background check services can utilize this api for verifying driver's license information transportation and logistics companies businesses in the transportation and logistics sector can employ this api to verify the driver's licenses of their delivery personnel b2c (business to consumer) applications consumer auto insurance individuals seeking auto insurance can use this api to verify their driver's license details during the online application process ride sharing and carpooling services ride sharing and carpooling platforms can incorporate this api to validate the driver's licenses of drivers peer to peer car rentals platforms that facilitate peer to peer car rentals can offer drivers the option to verify their licenses through this api job seekers individuals applying for jobs that involve driving, such as delivery or transportation roles, can use this api to validate their driver's license information api details you must first login before sending the request the authorization header in the request must include the access token obtained from the login api call need to pass the following information providing personfullname, nationalid, persondob is mandatory firstname (required) middlename lastname (required) dateofbirth sex address addressline2 city state (required) zip ssn driverlicensenumber (required) driverlicenseissuedate driverlicenseexpirationdate confidencethreshold sample curl curl location 'https //api preproduction signzy us/api/v3/dl verification' \\ \ header 'content type application/json' \\ \ header 'authorization \<token>' \\ \ data '{ "firstname" \<string>, "middlename" \<string>, "lastname" \<string>, "dateofbirth" \<yyyy mm dd>, "sex" \<m or f>, "address" \<string>, "addressline2" \<string>, "city" \<string>, "state" \<string>, "zip" \<string>, "ssn" \<string>, "driverlicensenumber" \<string>, "driverlicenseissuedate" \<yyyy mm dd>, "driverlicenseexpirationdate" \<yyyy mm dd>, "confidencethreshold" \<number> }'curl location 'https //api signzy us/api/v3/dl verification' \\ \ header 'content type application/json' \\ \ header 'authorization \<token>' \\ \ data '{ "firstname" \<string>, "middlename" \<string>, "lastname" \<string>, "dateofbirth" \<yyyy mm dd>, "sex" \<m or f>, "address" \<string>, "addressline2" \<string>, "city" \<string>, "state" \<string>, "zip" \<string>, "ssn" \<string>, "driverlicensenumber" \<string>, "driverlicenseissuedate" \<yyyy mm dd>, "driverlicenseexpirationdate" \<yyyy mm dd>, "confidencethreshold" \<number> }' request body parameters parameter data type required description firstname string yes required first name of the individual middlename string no optional middle name of the individual lastname string yes required last name of the individual dateofbirth string no optional date of birth of the individual (iso 8601) (yyyy mm dd format ) sex string no optional gender of the individual(only m or f values allowed) address string no optional street address of the individual addressline2 string no optional address line 2 (if applicable) city string no optional city of residence state string yes required state of residence should be of two letter state code (list provided above) zip string no optional zip code of the location ssn string no optional social security number driverlicensenumber string yes required driver's license number driverlicenseissuedate string no optional driver's license issue date (iso 8601) (yyyy mm dd format ) driverlicenseexpirationdate string no optional driver's license expiration date (iso 8601) (yyyy mm dd format ) confidencethreshold number no optional confidence threshold provided by the user only numeric values from 0 7 to 1 allowed(if not passed, default value of 0 7 will be added) sample response validation successful 200 { "result" { "driverlicenseverificationresult" { "documentcategorymatch" "true", "personlastnameexactmatch" "true", "personlastnamefuzzyprimarymatch" "", "personlastnamefuzzyalternatematch" "", "personfirstnameexactmatch" "true", "personfirstnamefuzzyprimarymatch" "", "personfirstnamefuzzyalternatematch" "", "personmiddlenameexactmatch" "false", "personmiddlenamefuzzyprimarymatch" "false", "personmiddlenamefuzzyalternatematch" "false", "personmiddleinitialmatch" "false", "personbirthdatematch" "true", "driverlicenseissuedatematch" "true", "driverlicenseexpirationdatematch" "true", "driverlicensenumbermatch" "true", "addressline1match" "true", "addressline2match" "", "addresscitymatch" "true", "addressstatecodematch" "true", "addresszip5match" "true", "addresszip4match" "", "personsexcodematch" "true", "addressline1fuzzymatch" "" }, "confidencethreshold" 0 7, "confidencescore" 1, "validationresult" "validation successful" } } validation failure 200 { "result" { "driverlicenseverificationresult" { "documentcategorymatch" "true", "personlastnameexactmatch" "true", "personlastnamefuzzyprimarymatch" "", "personlastnamefuzzyalternatematch" "", "personfirstnameexactmatch" "false", "personfirstnamefuzzyprimarymatch" "false", "personfirstnamefuzzyalternatematch" "false", "personmiddlenameexactmatch" "false", "personmiddlenamefuzzyprimarymatch" "false", "personmiddlenamefuzzyalternatematch" "false", "personmiddleinitialmatch" "false", "personbirthdatematch" "false", "driverlicenseissuedatematch" "true", "driverlicenseexpirationdatematch" "true", "driverlicensenumbermatch" "true", "addressline1match" "true", "addressline2match" "", "addresscitymatch" "true", "addressstatecodematch" "true", "addresszip5match" "true", "addresszip4match" "", "personsexcodematch" "true", "addressline1fuzzymatch" "" }, "confidencethreshold" 0 85, "confidencescore" 0 8, "validationresult" "validation failed" } } unsupported state 200 { "result" { { "servicename" "dmv verification", "servicedescription" "driver license data verification", "error" "\<statename> state is not yet supported by dmv data verification service check back later ", "success" false } } state server unavailable 200 { "result" { { "servicename" "dmv verification", "servicedescription" "driver license data verification", "error" "\<statename> state server is temporarily unavailable please, try again later", "success" false } } error in processing 200 { "result" { { "servicename" "dmv verification", "servicedescription" "driver license data verification", "error" "an error has occurred while processing your request, please contact us", "success" false } } unable to complete request 200 { "result" { { "servicename" "dmv verification", "servicedescription" "driver license data verification", "error" "unable to complete request, please contact us", "success" false } } subscription expired 200 { "result" { { "servicename" "dmv verification", "servicedescription" "driver license data verification", "error" "our subscription to the screening service dmv verification has expired please contact signzy at help\@signzy com", "success" false } } response body parameters parameter data type description driverlicenseverificationresult object verification details for the driver's license confidencethreshold string confidence threshold from request( assigned as 0 7 by default if not provided) confidencescore number confidence score calculated based on driverlicenseverificationresult details value may vary from 0 to 1 validationresult number final validation result for dl verification (value is "validation successful" if confidencescore is greater than or equal to threshold, else "validation failed" ) driverlicenseverificationresult parameters name type description documentcategorymatch string indicates if the document category matches personlastnameexactmatch string indicates if the person's last name is an exact match personlastnamefuzzyprimarymatch string indicates if the person's last name is a fuzzy primary match personlastnamefuzzyalternatematch string indicates if the person's last name is a fuzzy alternate match personfirstnameexactmatch string provides the information if indicates if the person's first name is an exact match personfirstnamefuzzyprimarymatch string indicates if the person's first name is a fuzzy primary match personfirstnamefuzzyalternatematch string indicates if the person's first name is a fuzzy alternate match personmiddlenameexactmatch string indicates if the person's middle name is an exact match personmiddlenamefuzzyprimarymatch string indicates if the person's middle name is a fuzzy primary match personmiddlenamefuzzyalternatematch string based on a check against indicates if the person's middle name is a fuzzy alternate match personmiddleinitialmatch string indicates if the person's middle initial is a match personbirthdatematch number indicates if the person's birth driverlicenseissuedatematch string indicates if the driver's license issue date matches driverlicenseexpirationdatematch string indicates if the driver's license expiration date matches driverlicensenumbermatch string indicates if the driver's license number matches addressline1match string indicates if address line 1 matches addressline2match string indicates if address line 2 matches addresscitymatch string indicates if the address city matches addressstatecodematch string indicates if the address state code matches addresszip5match string indicates if the zip5 of the address matches addresszip4match string indicates if the zip4 of the address matches personsexcodematch string indicates if the person's gender code matches( m or f) addressline1fuzzymatch string indicates if address line 1 matches driverlicenseverificationresult parameters values for all the parameters in driverlicenseverificationresult, their values will be "true" (if validation for corresponding request param is successful), "false" (if validation for corresponding request param is failure) or "" (if the corresponding request param is either not provided from the client or has invalid/corrupt value) confidence score logic our validation process checks specific details like names, license numbers, and dates you provide each detail has a different importance the api checks specific details to calculate a validation score namely \['driverlicensenumber', 'firstname', 'lastname', 'statecode', 'persondob', 'driverlicenseissuedate', 'driverlicenseexpirationdate'] weight importance each detail has a different level of importance in the check for instance 'driverlicensenumber' matching is most crucial (given the highest weight of 0 50) exact matches in 'firstname' or 'lastname' are important too (weighted at 0 10 each), while close matches count a bit less (0 075) 'state' match, birthdate, and specific dates on the license carry moderate weight (0 10) dates like 'driverlicenseissuedate' and 'driverlicenseexpirationdate' are less critical (0 05) scoring system the api assigns scores to each detail based on whether they match exactly or closely these scores are added up, and if the total reaches 1, it means everything matched perfectly if the total is slightly less than 1, it implies some details didn't match as well validation threshold the goal is to achieve a combined score of 0 70 or higher this benchmark ensures that most parts match well if the total score meets or exceeds 0 70, the api considers it a successful validation if it falls below, it indicates some discrepancies in general, we suggest keeping the passing score at 0 70 or higher to ensure a strong verification if you're unsure, we can leave it as is, and we'll use 0 70 as the default passing score for the verification states supported by dmv state abbreviation state name al alabama az arizona ar arkansas co colorado ct connecticut fl florida ga georgia hi hawaii id idaho il illinois in indiana ia iowa ks kanas ky kentucky me maine md maryland ma massachusetts mi michigan ms mississippi mo missouri mt montana ne nebraska nv nevada nh new hampshire nj new jersey nm new mexico nc north carolina nd north dakota oh ohio ok oklahoma or oregon ri rhode island sc south carolina sd south dakota tn tennessee tx texas vt vermont va virginia wa washington wv west virginia wi wisconsin wy wyoming states not supported by dmv state abbreviation state name ak alaska ca california de delaware dc district of columbia la louisiana mn minnesota ny new york pa pennsylvania ut utah sample error empty firstname 400 { "error" { "name" "error", "message" "firstname is not allowed to be empty", "status" 400, "reason" "validation error", "type" "bad request", "statuscode" "400" } } firstname not passed 400 { "error" { "name" "error", "message" "\\"firstname\\" is required", "status" 400, "reason" "validation error", "type" "bad request", "statuscode" "400" } } malformatted firstname 400 { "error" { "name" "error", "message" "bad request firstname is invalid ", "status" 400, "reason" "validation error", "type" "bad request", "statuscode" "400" } } empty lastname 400 { "error" { "name" "error", "message" "lastname is not allowed to be empty", "status" 400, "reason" "validation error", "type" "bad request", "statuscode" "400" } } lastname not passed 400 { "error" { "name" "error", "message" "\\"lastname\\" is required", "status" 400, "reason" "validation error", "type" "bad request", "statuscode" "400" } } malformatted lastname 400 { "error" { "name" "error", "message" "bad request lastname is invalid ", "reason" "validation error", "type" "bad request", "statuscode" "400" } } empty state 400 { "error" { "name" "error", "message" "state is not allowed to be empty", "status" 400, "reason" "validation error", "type" "bad request", "statuscode" "400" } } state not passed 400 { "error" { "name" "error", "message" "\\"state\\" is required", "status" 400, "reason" "validation error", "type" "bad request", "statuscode" "400" } }e malformatted state 400 { "error" { "name" "error", "message" "bad request state is invalid ", "status" 400, "reason" "validation error", "type" "bad request", "statuscode" "400" } } unsupported state 400 { "error" { "name" "error", "message" "bad request input state is not supported by dmv ", "status" 400, "reason" "bad request", "type" "bad request", "statuscode" "400" } } empty middlename 400 { "error" { "name" "error", "message" "middlename is not allowed to be empty", "status" 400, "reason" "validation error", "type" "bad request", "statuscode" "400" } } malformatted middlename 400 { "error" { "name" "error", "message" "bad request middlename is invalid ", "status" 400, "reason" "validation error", "type" "bad request", "statuscode" "400" } } empty dateofbirth 400 { "error" { "name" "error", "message" "dateofbirth is not allowed to be empty", "status" 400, "reason" "validation error", "type" "bad request", "statuscode" "400" } } malformatted dateofbirth 400 { "error" { "name" "error", "message" "bad request dateofbirth is invalid ", "status" 400, "reason" "validation error", "type" "bad request", "statuscode" "400" } } empty sex 400 { "error" { "name" "error", "message" "sex is not allowed to be empty", "status" 400, "reason" "validation error", "type" "bad request", "statuscode" "400" } } malformatted sex 400 { "error" { "name" "error", "message" "\\"sex\\" must be one of \[m, f]", "status" 400, "reason" "validation error", "type" "bad request", "statuscode" "400" } } empty address 400 { "error" { "name" "error", "message" "address is not allowed to be empty", "status" 400, "reason" "validation error", "type" "bad request", "statuscode" "400" } } malformatted address 400 { "error" { "name" "error", "message" "bad request address is invalid ", "status" 400, "reason" "validation error", "type" "bad request", "statuscode" "400" } } empty addressline2 400 { "error" { "name" "error", "message" "addressline2 is not allowed to be empty", "status" 400, "reason" "validation error", "type" "bad request", "statuscode" "400" } } malformatted addressline2 400 { "error" { "name" "error", "message" "bad request addressline2 is invalid ", "status" 400, "reason" "validation error", "type" "bad request", "statuscode" "400" } } bad request 400 { "error" { "name" "error", "message" "bad request invalid input data ", "status" 400, "reason" "validation error", "type" "bad request", "statuscode" "400" } } upstream error 409 { "error" { "name" "error", "message" "error in getting data from upstream", "status" 409, "reason" "error", "type" "conflict", "statuscode" 409 } } internal server error 500 { "error" { "name" "error", "message" "internal server error", "status" 500, "reason" "error", "type" "conflict", "statuscode" 500 } } error response parameters parameter description error this parameter contains the error error name the error name error message the error message error status s tatus of the api error reason reason for error error type type of the error error statuscode request status code from signzy getting help please feel free to contact us if you have any questions, require clarification, or have ideas for how to make the documents or any of our services better you can reach out to us at help\@signzy com we strive to provide prompt and reliable assistance, ensuring your queries are addressed effectively we value your feedback and are committed to making your experience smooth and enjoyable our team is dedicated to assisting you with any needs you may have thank you for choosing our services we look forward to helping you!