Phase 1
Overview
In phase 1 we will focus on the following:
- Creating an application with the following applicant-level verifications (sometimes referred to as stipulations):
residenceidentity
- Submitting a driver's license image file to satisfy the verifications above
- Receiving the analyses back from Informed
Checklist
Locate the Python script
In your terminal navigate to the the destination directory containing the unzipped folder:
cd <local directory>/implementation_guide_phases/phase1/python
tip
The accompanying zip file can be accessed here.
Install requirements
While in the directory above, ensure you have the necessary python modules available:
pip install -r requirements.txt
Update the webhook
Update the value of the webhook variable at the top of main.py with the callback endpoint you created.
Run the script
Once the checklist above is complete, run:
python main.py
You can look over the printouts in your terminal to see:
- All the stages described below:
- payload printouts
- synchronous responses
- steps taken to push payloads and files to Informed
- That the payloads match the specifications in the documentation
- The synchronous responses received from Informed
Verify Results
The script did the following:
- Converted the CSV data into a valid JSON payload (as described in register application)
- Submitted the payload to Informed and received an
app_idfrom Informed in the synchronous response - Used this
app_idto send a list of filenames to Informed and received URL's for each image (the filenames are taken from../test_images/<app_ref_id>) - Used these URL's to upload all the files to their respective URL's
- Asynchronous responses were sent to the
webhookprovided - The webhook received one
extractionsresponse for each file uploaded and oneverificationsresponse once all files have been classified, extracted, and verified by Informed
Continue to phase 2 to see the process of adding the Income verification.
Example app registration payload
register app payload (seen in terminal at run)
{
"application_reference_id": "Phase1_appid_001_ea03ac83-28dc-49c5-8523-5ee1974abec0",
"application_date": "2021-07-20T00:00:00",
"contract_date": "2021-08-02T00:00:00",
"contract_type": "Paper",
"applicants": {
"applicant1": {
"first_name": "Jo",
"middle_name": "M",
"last_name": "Boren",
"suffix": "JR",
"phone": "919-123-3456",
"ssn": "123445678",
"date_of_birth": "1972-04-11",
"address_info": [
{
"address": {
"street_address": "8717 S 4th Ave",
"city": "Inglewood",
"state": "CA",
"zip": "90305"
},
"start_date": "2019-11-21",
"is_current": true
}
],
"employment_info": [
{
"employment_type": "Employed",
"employer_name": "Home Depot",
"occupation": "Stocker",
"income": {
"period": "Monthly",
"amount": 4000.0
},
"start_date": "2018-04-13",
"is_current": true
}
],
"additional_incomes": [
{
"source": "Other",
"income": {
"period": "Monthly",
"amount": 300.0
}
}
]
}
},
"verifications": {
"residence": [
{
"belongs_to": "applicant1"
}
],
"identity": [
{
"belongs_to": "applicant1"
}
]
},
"services": [
"extract",
"verify"
],
"webhook": "https://your.callback.com/here"
}
Example asynchronous extractions response
extractions response (received at callback url)
{
"event_type": "extractions",
"application_id": "15d6f126-b33f-4beb-8587-c8add4482cf9",
"application_reference_id": "Phase1_appid_001_ea03ac83-28dc-49c5-8523-5ee1974abec0",
"documents": {
"driver_license_front": [
{
"data_action": "create",
"document_id": "93c9bc2f-5eea-4ada-a059-040b8efa475f",
"file_ids": [
"5cdbafa6-1ab7-4d84-8a1d-0c0d0f1d9686"
],
"file_reference_ids": [
"../test_images/appid_001/DriversLicense.png"
],
"url": "https://file-location-in-S3.com",
"extracted_data": {
"applicants": {
"applicant1": {
"address": {
"street_address": "8717 South 4th Avenue",
"street_2": null,
"city": "Inglewood",
"state": "CA",
"zip": "90305"
},
"first_name": "Jo",
"middle_name": null,
"last_name": "Boren",
"suffix": null,
"dob": "1965-10-12"
}
},
"expiration_date": "2027-10-12",
"issue_state": "CA",
"id_number": "D1234568"
},
"updated_at": "2023-04-24T18:58:19Z"
}
]
}
}
Example asynchronous verifications response
verifications response (received at callback url)
{
"event_type": "verifications",
"application_id": "15d6f126-b33f-4beb-8587-c8add4482cf9",
"application_reference_id": "Phase1_appid_001_ea03ac83-28dc-49c5-8523-5ee1974abec0",
"data_sources": {
"image_files": [
{
"file_id": "5cdbafa6-1ab7-4d84-8a1d-0c0d0f1d9686",
"file_reference_id": "../test_images/appid_001/DriversLicense.png"
}
],
"structured_data": []
},
"verifications": {
"residence": [
{
"status": "pass",
"belongs_to": "applicant1",
"updated_at": "2023-04-24 18:58:19 +0000",
"description": "Informed searched for a Driver's License and found one in the deal jacket. The Driver's License matches the applicant's name. The Driver's License matches the applicant's address. The Driver's License was issued by a U.S. State. The Driver's License is not expired.",
"verification_questions": {},
"acceptable_documents": {
"driver_license_front": [
{
"document_id": "93c9bc2f-5eea-4ada-a059-040b8efa475f",
"file_ids": [
"5cdbafa6-1ab7-4d84-8a1d-0c0d0f1d9686"
],
"file_reference_ids": [
"../test_images/appid_001/DriversLicense.png"
],
"category": "Driver's License",
"document_questions": {
"matches_applicant_name": {
"question": "Matches the applicant's name?",
"expected": "Jo Boren",
"answer": "Jo Boren",
"status": "pass"
},
"is_us_issued_id": {
"question": "Is a US Driver's License?",
"expected": true,
"answer": "CA",
"status": "pass"
},
"is_expired": {
"question": "Expired?",
"expected": ">08/02/2021",
"answer": "10/12/2027",
"status": "pass"
},
"matches_applicant_address": {
"question": "Matches the applicant's address?",
"expected": "8717 S 4th Ave Inglewood CA 90305",
"answer": "8717 S 4th Ave, Inglewood, CA 90305, USA",
"status": "pass"
}
}
}
]
},
"recommendations": []
}
],
"identity": [
{
"status": "pass",
"belongs_to": "applicant1",
"updated_at": "2023-04-24 18:58:19 +0000",
"description": "Informed searched for a Driver's License and found one in the deal jacket. The Driver's License matches the applicant's name. The Driver's License is not expired. The Driver's License was issued by a U.S. State. The Driver's License may not show the same Identification Number as provided by the Applicant; a manual review is needed. The Driver's License may not show the same Expiration Date as provided by the Applicant; a manual review is needed.",
"verification_questions": {},
"acceptable_documents": {
"driver_license_front": [
{
"document_id": "93c9bc2f-5eea-4ada-a059-040b8efa475f",
"file_ids": [
"5cdbafa6-1ab7-4d84-8a1d-0c0d0f1d9686"
],
"file_reference_ids": [
"../test_images/appid_001/DriversLicense.png"
],
"category": "Driver's License",
"document_questions": {
"matches_applicant_name": {
"question": "Matches the applicant's name?",
"expected": "Jo Boren",
"answer": "Jo Boren",
"status": "pass"
},
"is_us_issued_id": {
"question": "Is a US Driver's License?",
"expected": true,
"answer": "CA",
"status": "pass"
},
"is_expired": {
"question": "Expired?",
"expected": ">08/02/2021",
"answer": "10/12/2027",
"status": "pass"
},
"matches_cudl_driver_license_id": {
"question": "Matches Drivers License identification number?",
"expected": "",
"answer": "D1234568",
"status": "review"
},
"matches_cudl_driver_license_expiration_date": {
"question": "Matches Drivers License expiration date?",
"expected": "",
"answer": "2027-10-12",
"status": "review"
}
}
}
]
},
"recommendations": []
}
]
}
}