diff --git a/.nvmrc b/.nvmrc index 4a972748..860cc500 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v18.14.1 +v18.17.1 diff --git a/cypress/fixtures/services.json b/cypress/fixtures/services.json index 53b4f9b0..22cbbd9b 100644 --- a/cypress/fixtures/services.json +++ b/cypress/fixtures/services.json @@ -1,964 +1,2360 @@ { - "hosted_web": { - "doc_verification": { - "GH": { - "name": "Ghana", - "id_types": { - "NHIS": { - "label": "National Health Insurance Card" - }, - "NATIONAL_ID": { - "label": "National ID" - }, - "NATIONAL_ID_NON_CITIZEN": { - "label": "National ID" - }, - "VOTER_ID": { - "label": "Voter's ID" - }, - "PASSPORT": { - "label": "Passport" - }, - "DRIVERS_LICENSE": { - "label": "Driver's License" - }, - "ECOWAS_ID": { - "label": "ECOWAS ID" - } - } - }, - "RW": { - "name": "Rwanda", - "id_types": { - "NATIONAL_ID": { - "label": "National ID" - }, - "PASSPORT": { - "label": "Passport" - }, - "DRIVERS_LICENSE": { - "label": "Driver's License" - }, - "RWANDA_CARD": { - "label": "Rwanda Card" - } - } - }, - "CI": { - "name": "Cote d'Ivoire", - "id_types": { - "NATIONAL_ID": { - "label": "National ID" - }, - "PASSPORT": { - "label": "Passport" - } - } - }, - "TZ": { - "name": "Tanzania", - "id_types": { - "NATIONAL_ID": { - "label": "National ID" - }, - "VOTER_ID": { - "label": "Voter's ID" - }, - "PASSPORT": { - "label": "Passport" - } - } - }, - "ZA": { - "name": "South Africa", - "id_types": { - "NATIONAL_ID_DOC": { - "label": "National ID Document" - }, - "NATIONAL_ID": { - "label": "National ID" - }, - "PASSPORT": { - "label": "Passport" - }, - "DRIVERS_LICENSE": { - "label": "Driver's License" - } - } - }, - "MU": { - "name": "Mauritius", - "id_types": { - "NATIONAL_ID": { - "label": "National ID" - }, - "PASSPORT": { - "label": "Passport" - } - } - }, - "CM": { - "name": "Cameroon", - "id_types": { - "NATIONAL_ID": { - "label": "National ID" - }, - "EPASSPORT": { - "label": "Passport" - }, - "PASSPORT": { - "label": "Passport" - } - } - }, - "MW": { - "name": "Malawi", - "id_types": { - "PASSPORT": { - "label": "Passport" - }, - "DRIVERS_LICENSE": { - "label": "Driver's License" - } - } - }, - "UG": { - "name": "Uganda", - "id_types": { - "NATIONAL_ID": { - "label": "National ID" - }, - "PASSPORT": { - "label": "Passport" - } - } - }, - "NA": { - "name": "Namibia", - "id_types": { - "NATIONAL_ID": { - "label": "National ID" - }, - "PASSPORT": { - "label": "Passport" - }, - "DRIVERS_LICENSE": { - "label": "Driver's License" - } - } - }, - "ZM": { - "name": "Zimbabwe", - "id_types": { - "PASSPORT": { - "label": "Passport" - }, - "DRIVERS_LICENSE": { - "label": "Driver's License" - } - } - }, - "BW": { - "name": "Botswana", - "id_types": { - "NATIONAL_ID": { - "label": "National ID" - }, - "PASSPORT": { - "label": "Passport" - }, - "DRIVERS_LICENSE": { - "label": "Driver's License" - } - } - }, - "NG": { - "name": "Nigeria", - "id_types": { - "VOTER_ID": { - "label": "Voter's ID" - }, - "NIN": { - "label": "National ID" - }, - "PASSPORT": { - "label": "Passport" - }, - "DRIVERS_LICENSE": { - "label": "Driver's License" - } - } - }, - "GA": { - "name": "Gabon", - "id_types": { - "PASSPORT": { - "label": "Passport" - } - } - }, - "KE": { - "name": "Kenya", - "id_types": { - "NATIONAL_ID": { - "label": "National ID" - }, - "PASSPORT": { - "label": "Passport" - } - } - }, - "SN": { - "name": "Senegal", - "id_types": { - "NATIONAL_ID": { - "label": "National ID" - }, - "PASSPORT": { - "label": "Passport" - }, - "ECOWAS_ID": { - "label": "ECOWAS ID" - } - } - } - }, - "biometric_kyc": { - "GH": { - "name": "Ghana", - "id_types": { - "SSNIT": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "SSNIT", - "test_data": "C000000000000", - "id_number_regex": "^[A-Z]{1}[A-Z0-9]{12,14}$/i" - }, - "VOTER_ID": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "Voter ID", - "test_data": "0000000000", - "id_number_regex": "^[0-9]{10,12}$" - }, - "NEW_VOTER_ID": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "New Voter ID", - "test_data": "0000000000", - "id_number_regex": "^[0-9]{10,12}$" - }, - "NATIONAL_ID": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "National ID", - "test_data": "", - "id_number_regex": "^GHA-[A-Z0-9]{9}-[A-Z0-9]{1}$/i" - }, - "DRIVERS_LICENSE": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "Driver's License", - "test_data": "B0000000", - "id_number_regex": "^[A-Z0-9]{6,10}$/i" - }, - "PASSPORT": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "Passport", - "test_data": "G0000000", - "id_number_regex": "^G[A-Z0-9]{7,9}$/i" - } - } - }, - "NG": { - "name": "Nigeria", - "id_types": { - "TIN": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "Tax Identification Number", - "test_data": "00000000-0000", - "id_number_regex": "^[0-9]{8,}-[0-9]{4,}$" - }, - "VOTER_ID": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "Voter ID Number", - "test_data": "0000000000000000000", - "id_number_regex": "^([A-Z0-9]{19}|[A-Z0-9]{9})$/i" - }, - "NIN": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "National ID", - "test_data": "00000000000", - "id_number_regex": "^[0-9]{11}$" - }, - "NIN_SLIP": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "National ID (Slip)", - "test_data": "00000000000", - "id_number_regex": "^[0-9]{11}$" - }, - "BVN": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "Bank Verification Number", - "test_data": "00000000000", - "id_number_regex": "^[0-9]{11}$" - }, - "BVN_MFA": { - "required_fields": [ - "country", - "id_type", - "session_id", - "user_id", - "job_id" - ], - "label": "Bank Verification Number (MFA)", - "test_data": "00000000000", - "id_number_regex": "^[0-9]{11}$" - }, - "DRIVERS_LICENSE": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id", - "first_name", - "last_name", - "dob", - "day", - "month", - "year" - ], - "label": "Driver's License", - "test_data": "ABC000000000", - "id_number_regex": "^(?=.*[0-9])(?=.*[A-Z])[A-Z0-9]{3}([ -]{1})?[A-Z0-9]{6,12}$/i" - } - } - }, - "KE": { - "name": "Kenya", - "id_types": { - "NATIONAL_ID": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "National ID", - "test_data": "A00000000", - "id_number_regex": "^[0-9]{1,9}$" - }, - "ALIEN_CARD": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "Alien Card", - "test_data": "000000", - "id_number_regex": "^[0-9]{6,9}$" - }, - "PASSPORT": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "Passport", - "test_data": "00000000", - "id_number_regex": "^[A-Z0-9]{7,9}$" - } - } - }, - "ZA": { - "name": "South Africa", - "id_types": { - "NATIONAL_ID": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "National ID", - "test_data": "0000000000000", - "id_number_regex": "^[0-9]{13}$" - } - } - } - }, - "basic_kyc": { - "GH": { - "name": "Ghana", - "id_types": { - "SSNIT": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "SSNIT", - "test_data": "C000000000000", - "id_number_regex": "^[A-Z]{1}[A-Z0-9]{12,14}$/i" - }, - "VOTER_ID": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "Voter ID", - "test_data": "0000000000", - "id_number_regex": "^[0-9]{10,12}$" - }, - "NEW_VOTER_ID": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "New Voter ID", - "test_data": "0000000000", - "id_number_regex": "^[0-9]{10,12}$" - }, - "NATIONAL_ID": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "National ID", - "test_data": "", - "id_number_regex": "^GHA-[A-Z0-9]{9}-[A-Z0-9]{1}$/i" - }, - "DRIVERS_LICENSE": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "Driver's License", - "test_data": "B0000000", - "id_number_regex": "^[A-Z0-9]{6,10}$/i" - }, - "PASSPORT": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "Passport", - "test_data": "G0000000", - "id_number_regex": "^G[A-Z0-9]{7,9}$/i" - } - } - }, - "NG": { - "name": "Nigeria", - "id_types": { - "TIN": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "Tax Identification Number", - "test_data": "00000000-0000", - "id_number_regex": "^[0-9]{8,}-[0-9]{4,}$" - }, - "VOTER_ID": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "Voter ID Number", - "test_data": "0000000000000000000", - "id_number_regex": "^([A-Z0-9]{19}|[A-Z0-9]{9})$/i" - }, - "NIN": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "National ID", - "test_data": "00000000000", - "id_number_regex": "^[0-9]{11}$" - }, - "NIN_SLIP": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "National ID (Slip)", - "test_data": "00000000000", - "id_number_regex": "^[0-9]{11}$" - }, - "BVN": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id", - "first_name", - "last_name" - ], - "label": "Bank Verification Number", - "test_data": "00000000000", - "id_number_regex": "^[0-9]{11}$" - }, - "BVN_MFA": { - "required_fields": [ - "country", - "id_type", - "user_id", - "job_id", - "first_name", - "last_name" - ], - "label": "Bank Verification Number (MFA)", - "test_data": "00000000000", - "id_number_regex": "^[0-9]{11}$" - }, - "DRIVERS_LICENSE": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id", - "first_name", - "last_name", - "dob", - "day", - "month", - "year" - ], - "label": "Driver's License", - "test_data": "ABC000000000", - "id_number_regex": "^(?=.*[0-9])(?=.*[A-Z])[A-Z0-9]{3}([ -]{1})?[A-Z0-9]{6,12}$/i" - } - } - }, - "KE": { - "name": "Kenya", - "id_types": { - "NATIONAL_ID": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "National ID", - "test_data": "A00000000", - "id_number_regex": "^[0-9]{1,9}$" - }, - "ALIEN_CARD": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "Alien Card", - "test_data": "000000", - "id_number_regex": "^[0-9]{6,9}$" - }, - "PASSPORT": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "Passport", - "test_data": "00000000", - "id_number_regex": "^[A-Z0-9]{7,9}$" - }, - "DRIVERS_LICENSE": { - "required_fields": [ - "country", - "id_type", - "id_number", - "citizenship", - "user_id", - "job_id" - ], - "label": "Driver's License", - "test_data": "00000000", - "id_number_regex": "^[0-9]{1,9}$" - } - } - }, - "ZA": { - "name": "South Africa", - "id_types": { - "NATIONAL_ID": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "National ID", - "test_data": "0000000000000", - "id_number_regex": "^[0-9]{13}$" - } - } - } - }, - "enhanced_kyc": { - "GH": { - "name": "Ghana", - "id_types": { - "SSNIT": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "SSNIT", - "test_data": "C000000000000", - "id_number_regex": "^[A-Z]{1}[A-Z0-9]{12,14}$/i" - }, - "VOTER_ID": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "Voter ID", - "test_data": "0000000000", - "id_number_regex": "^[0-9]{10,12}$" - }, - "NEW_VOTER_ID": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "New Voter ID", - "test_data": "0000000000", - "id_number_regex": "^[0-9]{10,12}$" - }, - "NATIONAL_ID": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "National ID", - "test_data": "", - "id_number_regex": "^GHA-[A-Z0-9]{9}-[A-Z0-9]{1}$/i" - }, - "DRIVERS_LICENSE": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "Driver's License", - "test_data": "B0000000", - "id_number_regex": "^[A-Z0-9]{6,10}$/i" - }, - "PASSPORT": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "Passport", - "test_data": "G0000000", - "id_number_regex": "^G[A-Z0-9]{7,9}$/i" - } - } - }, - "NG": { - "name": "Nigeria", - "id_types": { - "TIN": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "Tax Identification Number", - "test_data": "00000000-0000", - "id_number_regex": "^[0-9]{8,}-[0-9]{4,}$" - }, - "VOTER_ID": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "Voter ID Number", - "test_data": "0000000000000000000", - "id_number_regex": "^([A-Z0-9]{19}|[A-Z0-9]{9})$/i" - }, - "NIN": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "National ID", - "test_data": "00000000000", - "id_number_regex": "^[0-9]{11}$" - }, - "NIN_SLIP": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "National ID (Slip)", - "test_data": "00000000000", - "id_number_regex": "^[0-9]{11}$" - }, - "BVN": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "Bank Verification Number", - "test_data": "00000000000", - "id_number_regex": "^[0-9]{11}$" - }, - "BVN_MFA": { - "required_fields": [ - "country", - "id_type", - "user_id", - "job_id" - ], - "label": "Bank Verification Number (MFA)", - "test_data": "00000000000", - "id_number_regex": "^[0-9]{11}$" - }, - "DRIVERS_LICENSE": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id", - "first_name", - "last_name", - "dob", - "day", - "month", - "year" - ], - "label": "Driver's License", - "test_data": "ABC000000000", - "id_number_regex": "^(?=.*[0-9])(?=.*[A-Z])[A-Z0-9]{3}([ -]{1})?[A-Z0-9]{6,12}$/i" - } - } - }, - "KE": { - "name": "Kenya", - "id_types": { - "NATIONAL_ID": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "National ID", - "test_data": "A00000000", - "id_number_regex": "^[0-9]{1,9}$" - }, - "ALIEN_CARD": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "Alien Card", - "test_data": "000000", - "id_number_regex": "^[0-9]{6,9}$" - }, - "PASSPORT": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "Passport", - "test_data": "00000000", - "id_number_regex": "^[A-Z0-9]{7,9}$" - }, - "KRA_PIN": { - "required_fields": [ - "country", - "id_type", - "id_number", - "citizenship", - "user_id", - "job_id" - ], - "label": "KRA PIN", - "test_data": "00000000", - "id_number_regex": "^[0-9]{1,9}$" - }, - "DRIVERS_LICENSE": { - "required_fields": [ - "country", - "id_type", - "id_number", - "citizenship", - "user_id", - "job_id" - ], - "label": "Driver's License", - "test_data": "00000000", - "id_number_regex": "^[0-9]{1,9}$" - } - } - }, - "ZA": { - "name": "South Africa", - "id_types": { - "NATIONAL_ID": { - "required_fields": [ - "country", - "id_type", - "id_number", - "user_id", - "job_id" - ], - "label": "National ID", - "test_data": "0000000000000", - "id_number_regex": "^[0-9]{13}$" - } - } - } + "hosted_web": { + "basic_kyc": { + "GH": { + "name": "Ghana", + "id_types": { + "SSNIT": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "SSNIT", + "test_data": "C000000000000", + "id_number_regex": "^[A-Z]{1}[A-Z0-9]{12,14}$" + }, + "VOTER_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Voter ID", + "test_data": "0000000000", + "id_number_regex": "^[0-9]{10,12}$" + }, + "NEW_VOTER_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "New Voter ID", + "test_data": "0000000000", + "id_number_regex": "^[0-9]{10,12}$" + }, + "NATIONAL_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID", + "test_data": "", + "id_number_regex": "^GHA-[A-Z0-9]{9}-[A-Z0-9]{1}$" + }, + "DRIVERS_LICENSE": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Driver's License", + "test_data": "B0000000", + "id_number_regex": "^[A-Z0-9]{6,10}$" + }, + "PASSPORT": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Passport", + "test_data": "G0000000", + "id_number_regex": "^[A-Z][0-9]{7,9}$" + } } + }, + "NG": { + "name": "Nigeria", + "id_types": { + "NIN": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID", + "test_data": "00000000000", + "id_number_regex": "^[0-9]{11}$" + }, + "NIN_SLIP": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID (Slip)", + "test_data": "00000000000", + "id_number_regex": "^[0-9]{11}$" + }, + "V_NIN": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Virtual NIN", + "test_data": "0000000000000000", + "id_number_regex": "^[a-zA-Z0-9]{16}$" + }, + "BANK_ACCOUNT": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id", + "bank_code" + ], + "id_number_regex": "^[0-9]{10}$", + "label": "Bank Account Verification" + }, + "VOTER_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Voter ID", + "test_data": "0000000000000000000", + "id_number_regex": "^[a-zA-Z0-9 ]{9,20}$" + }, + "BVN": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id", + "first_name", + "last_name" + ], + "label": "Bank Verification Number", + "test_data": "00000000000", + "id_number_regex": "^[0-9]{11}$" + }, + "BVN_MFA": { + "required_fields": [ + "country", + "id_type", + "session_id", + "user_id", + "job_id", + "first_name", + "last_name" + ], + "label": "Bank Verification Number (MFA)", + "test_data": "00000000000", + "id_number_regex": "^[0-9]{11}$" + }, + "NIN_V2": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID (NIN)", + "test_data": "00000000000", + "id_number_regex": "^[0-9]{11}$" + }, + "DRIVERS_LICENSE": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id", + "first_name", + "last_name", + "dob", + "day", + "month", + "year" + ], + "label": "Driver's License", + "test_data": "ABC000000000", + "id_number_regex": "^(?=.*[0-9])(?=.*[A-Z])[A-Z0-9]{3}([ -]{1})?[A-Z0-9]{6,12}$" + } + } + }, + "KE": { + "name": "Kenya", + "id_types": { + "KRA_PIN": { + "required_fields": [ + "country", + "id_type", + "id_number", + "citizenship", + "user_id", + "job_id" + ], + "label": "KRA PIN", + "test_data": "00000000", + "id_number_regex": "^[0-9]{1,9}$" + }, + "NATIONAL_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID", + "test_data": "00000000", + "id_number_regex": "^[0-9]{1,9}$" + }, + "ALIEN_CARD": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Alien Card", + "test_data": "000000", + "id_number_regex": "^[0-9]{6,9}$" + }, + "DRIVERS_LICENSE": { + "required_fields": [ + "country", + "id_type", + "id_number", + "citizenship", + "user_id", + "job_id" + ], + "label": "Driver's License", + "test_data": "00000000", + "id_number_regex": "^[0-9]{1,9}$" + }, + "PASSPORT": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Passport", + "test_data": "A00000000", + "id_number_regex": "^[A-Z0-9]{7,9}$" + }, + "NATIONAL_ID_NO_PHOTO": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID No Photo", + "test_data": "00000000", + "id_number_regex": "^[0-9]{1,9}$" + } + } + }, + "UG": { + "name": "Uganda", + "id_types": { + "NATIONAL_ID_NO_PHOTO": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID No Photo", + "test_data": "00000000000000", + "id_number_regex": "^[A-Z0-9]{14}$" + } + } + }, + "ZA": { + "name": "South Africa", + "id_types": { + "NATIONAL_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID", + "test_data": "0000000000000", + "id_number_regex": "^[0-9]{13}$" + }, + "NATIONAL_ID_NO_PHOTO": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID No Photo", + "test_data": "0000000000000", + "id_number_regex": "^[0-9]{13}$" + } + } + } + }, + "biometric_kyc": { + "GH": { + "name": "Ghana", + "id_types": { + "SSNIT": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "SSNIT", + "test_data": "C000000000000", + "id_number_regex": "^[A-Z]{1}[A-Z0-9]{12,14}$" + }, + "VOTER_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Voter ID", + "test_data": "0000000000", + "id_number_regex": "^[0-9]{10,12}$" + }, + "NEW_VOTER_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "New Voter ID", + "test_data": "0000000000", + "id_number_regex": "^[0-9]{10,12}$" + }, + "NATIONAL_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID", + "test_data": "", + "id_number_regex": "^GHA-[A-Z0-9]{9}-[A-Z0-9]{1}$" + }, + "DRIVERS_LICENSE": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Driver's License", + "test_data": "B0000000", + "id_number_regex": "^[A-Z0-9]{6,10}$" + }, + "PASSPORT": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Passport", + "test_data": "G0000000", + "id_number_regex": "^[A-Z][0-9]{7,9}$" + } + } + }, + "NG": { + "name": "Nigeria", + "id_types": { + "NIN": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID", + "test_data": "00000000000", + "id_number_regex": "^[0-9]{11}$" + }, + "NIN_SLIP": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID (Slip)", + "test_data": "00000000000", + "id_number_regex": "^[0-9]{11}$" + }, + "V_NIN": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Virtual NIN", + "test_data": "0000000000000000", + "id_number_regex": "^[a-zA-Z0-9]{16}$" + }, + "VOTER_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Voter ID", + "test_data": "0000000000000000000", + "id_number_regex": "^[a-zA-Z0-9 ]{9,20}$" + }, + "BVN": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Bank Verification Number", + "test_data": "00000000000", + "id_number_regex": "^[0-9]{11}$" + }, + "BVN_MFA": { + "required_fields": [ + "country", + "id_type", + "session_id", + "user_id", + "job_id" + ], + "label": "Bank Verification Number (MFA)", + "test_data": "00000000000", + "id_number_regex": "^[0-9]{11}$" + }, + "NIN_V2": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID (NIN)", + "test_data": "00000000000", + "id_number_regex": "^[0-9]{11}$" + }, + "DRIVERS_LICENSE": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id", + "first_name", + "last_name", + "dob", + "day", + "month", + "year" + ], + "label": "Driver's License", + "test_data": "ABC000000000", + "id_number_regex": "^(?=.*[0-9])(?=.*[A-Z])[A-Z0-9]{3}([ -]{1})?[A-Z0-9]{6,12}$" + } + } + }, + "KE": { + "name": "Kenya", + "id_types": { + "KRA_PIN": { + "required_fields": [ + "country", + "id_type", + "id_number", + "citizenship", + "user_id", + "job_id" + ], + "label": "KRA PIN", + "test_data": "00000000", + "id_number_regex": "^[0-9]{1,9}$" + }, + "NATIONAL_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID", + "test_data": "00000000", + "id_number_regex": "^[0-9]{1,9}$" + }, + "ALIEN_CARD": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Alien Card", + "test_data": "000000", + "id_number_regex": "^[0-9]{6,9}$" + }, + "DRIVERS_LICENSE": { + "required_fields": [ + "country", + "id_type", + "id_number", + "citizenship", + "user_id", + "job_id" + ], + "label": "Driver's License", + "test_data": "00000000", + "id_number_regex": "^[0-9]{1,9}$" + }, + "PASSPORT": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Passport", + "test_data": "00000000", + "id_number_regex": "^[A-Z0-9]{7,9}$" + }, + "NATIONAL_ID_NO_PHOTO": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID No Photo", + "test_data": "00000000", + "id_number_regex": "^[0-9]{1,9}$" + } + } + }, + "ZA": { + "name": "South Africa", + "id_types": { + "NATIONAL_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID", + "test_data": "0000000000000", + "id_number_regex": "^[0-9]{13}$" + } + } + } + }, + "enhanced_kyc": { + "GH": { + "name": "Ghana", + "id_types": { + "SSNIT": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "SSNIT", + "test_data": "C000000000000", + "id_number_regex": "^[A-Z]{1}[A-Z0-9]{12,14}$/i" + }, + "VOTER_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Voter ID", + "test_data": "0000000000", + "id_number_regex": "^[0-9]{10,12}$" + }, + "NEW_VOTER_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "New Voter ID", + "test_data": "0000000000", + "id_number_regex": "^[0-9]{10,12}$" + }, + "NATIONAL_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID", + "test_data": "", + "id_number_regex": "^GHA-[A-Z0-9]{9}-[A-Z0-9]{1}$/i" + }, + "DRIVERS_LICENSE": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Driver's License", + "test_data": "B0000000", + "id_number_regex": "^[A-Z0-9]{6,10}$/i" + }, + "PASSPORT": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Passport", + "test_data": "G0000000", + "id_number_regex": "^[A-Z][0-9]{7,9}$" + } + } + }, + "NG": { + "name": "Nigeria", + "id_types": { + "NIN": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID", + "test_data": "00000000000", + "id_number_regex": "^[0-9]{11}$" + }, + "NIN_SLIP": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID (Slip)", + "test_data": "00000000000", + "id_number_regex": "^[0-9]{11}$" + }, + "V_NIN": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Virtual NIN", + "test_data": "0000000000000000", + "id_number_regex": "^[a-zA-Z0-9]{16}$" + }, + "BANK_ACCOUNT": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id", + "bank_code" + ], + "id_number_regex": "^[0-9]{10}$", + "label": "Bank Account Verification" + }, + "VOTER_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Voter ID", + "test_data": "0000000000000000000", + "id_number_regex": "^[a-zA-Z0-9 ]{9,20}$" + }, + "BVN": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Bank Verification Number", + "test_data": "00000000000", + "id_number_regex": "^[0-9]{11}$" + }, + "BVN_MFA": { + "required_fields": [ + "country", + "id_type", + "session_id", + "user_id", + "job_id" + ], + "label": "Bank Verification Number (MFA)", + "test_data": "00000000000", + "id_number_regex": "^[0-9]{11}$" + }, + "NIN_V2": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID (NIN)", + "test_data": "00000000000", + "id_number_regex": "^[0-9]{11}$" + }, + "DRIVERS_LICENSE": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id", + "first_name", + "last_name", + "dob", + "day", + "month", + "year" + ], + "label": "Driver's License", + "test_data": "ABC000000000", + "id_number_regex": "^(?=.*[0-9])(?=.*[A-Z])[A-Z0-9]{3}([ -]{1})?[A-Z0-9]{6,12}$" + } + } + }, + "KE": { + "name": "Kenya", + "id_types": { + "KRA_PIN": { + "required_fields": [ + "country", + "id_type", + "id_number", + "citizenship", + "user_id", + "job_id" + ], + "label": "KRA PIN", + "test_data": "00000000", + "id_number_regex": "^[0-9]{1,9}$" + }, + "NATIONAL_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID", + "test_data": "00000000", + "id_number_regex": "^[0-9]{1,9}$" + }, + "ALIEN_CARD": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Alien Card", + "test_data": "000000", + "id_number_regex": "^[0-9]{6,9}$" + }, + "DRIVERS_LICENSE": { + "required_fields": [ + "country", + "id_type", + "id_number", + "citizenship", + "user_id", + "job_id" + ], + "label": "Driver's License", + "test_data": "00000000", + "id_number_regex": "^[0-9]{1,9}$" + }, + "PASSPORT": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Passport", + "test_data": "00000000", + "id_number_regex": "^[A-Z0-9]{7,9}$" + }, + "NATIONAL_ID_NO_PHOTO": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID No Photo", + "test_data": "00000000", + "id_number_regex": "^[0-9]{1,9}$" + } + } + }, + "UG": { + "name": "Uganda", + "id_types": { + "NATIONAL_ID_NO_PHOTO": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID No Photo", + "test_data": "00000000000000", + "id_number_regex": "^[A-Z0-9]{14}$" + } + } + }, + "ZA": { + "name": "South Africa", + "id_types": { + "NATIONAL_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID", + "test_data": "0000000000000", + "id_number_regex": "^[0-9]{13}$" + }, + "NATIONAL_ID_NO_PHOTO": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID No Photo", + "test_data": "0000000000000", + "id_number_regex": "^[0-9]{13}$" + } + } + } + }, + "doc_verification": { + "PT": { + "name": "Portugal", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "HR": { + "name": "Croatia", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "HU": { + "name": "Hungary", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "IE": { + "name": "Ireland", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "AD": { + "name": "Andorra", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "ZA": { + "name": "South Africa", + "id_types": { + "GREEN_BOOK": { + "label": "National ID Document (Green Book)" + }, + "RESIDENT_CARD": { + "label": "Residence Permit" + }, + "NATIONAL_ID": { + "label": "National ID" + }, + "TRAVEL_DOCUMENT": { + "label": "Travel Document" + }, + "DRIVERS_LICENSE": { + "label": "Driver's License" + }, + "PASSPORT": { + "label": "Passport" + } + } + }, + "IS": { + "name": "Iceland", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "AL": { + "name": "Albania", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "IT": { + "name": "Italy", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "AO": { + "name": "Angola", + "id_types": { + "RESIDENT_CARD": { + "label": "Residence permit" + }, + "NATIONAL_ID": { + "label": "National ID" + }, + "DRIVERS_LICENSE": { + "label": "Driver's License" + }, + "PASSPORT": { + "label": "Passport" + } + } + }, + "AT": { + "name": "Austria", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "ZM": { + "name": "Zambia", + "id_types": { + "DRIVERS_LICENSE": { + "label": "Driver's License" + }, + "PASSPORT": { + "label": "Passport" + }, + "REGISTRATION_CARD": { + "label": "Registration Card" + } + } + }, + "RO": { + "name": "Romania", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "ZW": { + "name": "Zimbabwe", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "BA": { + "name": "Bosnia and Herzegovina", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "RS": { + "name": "Serbia", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "BE": { + "name": "Belgium", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "JM": { + "name": "Jamaica", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "BF": { + "name": "Burkina Faso", + "id_types": { + "NATIONAL_ID": { + "label": "National ID" + }, + "PASSPORT": { + "label": "Passport" + } + } + }, + "BG": { + "name": "Bulgaria", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "RW": { + "name": "Rwanda", + "id_types": { + "NON_CITIZEN_ID": { + "label": "Foreigner Id Card " + }, + "NATIONAL_ID": { + "label": "National ID" + }, + "DRIVERS_LICENSE": { + "label": "Driver's License" + }, + "PASSPORT": { + "label": "Passport" + } + } + }, + "BI": { + "name": "Burundi", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "BJ": { + "name": "Benin", + "id_types": { + "NATIONAL_ID": { + "label": "National ID" + }, + "RESIDENT_CARD": { + "label": "Resident Card" + }, + "PASSPORT": { + "label": "Passport" + } + } + }, + "BM": { + "name": "Bermuda", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "SC": { + "name": "Seychelles", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "BS": { + "name": "Bahamas", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "SD": { + "name": "Sudan", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "SE": { + "name": "Sweden", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "BW": { + "name": "Botswana", + "id_types": { + "RESIDENT_CARD": { + "label": "Residence Permit" + }, + "NATIONAL_ID": { + "label": "National ID" + }, + "DRIVERS_LICENSE": { + "label": "Driver's License" + }, + "PASSPORT": { + "label": "Passport" + } + } + }, + "SI": { + "name": "Slovenia", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "BY": { + "name": "Belarus", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "SK": { + "name": "Slovakia", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "SL": { + "name": "Sierra Leone", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "KE": { + "name": "Kenya", + "id_types": { + "NATIONAL_ID": { + "label": "National ID" + }, + "PASSPORT": { + "label": "Passport" + }, + "NATIONAL_ID_NO_PHOTO": { + "label": "National ID No Photo" + } + } + }, + "SM": { + "name": "San Marino", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "SN": { + "name": "Senegal", + "id_types": { + "NATIONAL_ID": { + "label": "National ID" + }, + "PASSPORT": { + "label": "Passport" + }, + "ECOWAS_ID": { + "label": "Ecowas ID" + } + } + }, + "SO": { + "name": "Somalia", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "CA": { + "name": "Canada", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "SS": { + "name": "South Sudan", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "CD": { + "name": "Democratic Republic of the Congo", + "id_types": { + "VOTER_ID": { + "label": "Voter Card" + }, + "DRIVERS_LICENSE": { + "label": "Driver's License" + }, + "PASSPORT": { + "label": "Passport" + } + } + }, + "ST": { + "name": "Sao Tome and Principe", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "KM": { + "name": "Comoros", + "id_types": { + "RESIDENT_CARD": { + "label": "Resident Card" + }, + "PASSPORT": { + "label": "Passport" + } + } + }, + "CG": { + "name": "Congo", + "id_types": { + "RESIDENT_CARD": { + "label": "Resident Card" + }, + "PASSPORT": { + "label": "Passport" + } + } + }, + "CH": { + "name": "Switzerland", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "CI": { + "name": "Côte d'Ivoire", + "id_types": { + "HEALTH_INSURANCE_ID": { + "label": "Health Insurance ID" + }, + "RESIDENT_CARD": { + "label": "Resident Card" + }, + "NATIONAL_ID": { + "label": "National ID" + }, + "ATTESTATION_CARD": { + "label": "Temporary National ID" + }, + "DRIVERS_LICENSE": { + "label": "Driver's License" + }, + "PASSPORT": { + "label": "Passport" + } + } + }, + "CM": { + "name": "Cameroon", + "id_types": { + "NATIONAL_ID": { + "label": "National ID" + }, + "RESIDENT_CARD": { + "label": "Resident Card" + }, + "PASSPORT": { + "label": "Passport" + } + } + }, + "TD": { + "name": "Chad", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "CV": { + "name": "Cabo Verde", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "TG": { + "name": "Togo", + "id_types": { + "RESIDENT_CARD": { + "label": "Residence Permit" + }, + "PASSPORT": { + "label": "Passport" + } + } + }, + "CZ": { + "name": "Czechia", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "TN": { + "name": "Tunisia", + "id_types": { + "NATIONAL_ID": { + "label": "National ID" + }, + "DRIVERS_LICENSE": { + "label": "Driver's License" + }, + "PASSPORT": { + "label": "Passport" + } + } + }, + "LI": { + "name": "Liechtenstein", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "DE": { + "name": "Germany", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "DJ": { + "name": "Djibouti", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "LR": { + "name": "Liberia", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "TZ": { + "name": "United Republic of Tanzania", + "id_types": { + "HEALTH_INSURANCE_ID": { + "label": "Health Insurance ID" + }, + "RESIDENT_CARD": { + "label": "Resident Id Card" + }, + "VOTER_ID": { + "label": "Voter's ID" + }, + "NATIONAL_ID": { + "label": "National ID" + }, + "DRIVERS_LICENSE": { + "label": "Driver's License" + }, + "PASSPORT": { + "label": "Passport" + } + } + }, + "DK": { + "name": "Denmark", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "LS": { + "name": "Lesotho", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "LT": { + "name": "Lithuania", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "LU": { + "name": "Luxembourg", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "LV": { + "name": "Latvia", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "UA": { + "name": "Ukraine", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "LY": { + "name": "Libya", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "UG": { + "name": "Uganda", + "id_types": { + "NATIONAL_ID": { + "label": "National ID" + }, + "DRIVERS_LICENSE": { + "label": "Driver's License" + }, + "PASSPORT": { + "label": "Passport" + } + } + }, + "MA": { + "name": "Morocco", + "id_types": { + "NATIONAL_ID": { + "label": "National ID" + }, + "DRIVERS_LICENSE": { + "label": "Driver's License" + }, + "PASSPORT": { + "label": "Passport" + } + } + }, + "DZ": { + "name": "Algeria", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "MC": { + "name": "Monaco", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "MD": { + "name": "Republic of Moldova", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "ME": { + "name": "Montenegro", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "MG": { + "name": "Madagascar", + "id_types": { + "RESIDENT_CARD": { + "label": "Residence Permit" + }, + "PASSPORT": { + "label": "Passport" + } + } + }, + "MK": { + "name": "Republic of North Macedonia", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "US": { + "name": "United States of America", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "ML": { + "name": "Mali", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "EE": { + "name": "Estonia", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "EG": { + "name": "Egypt", + "id_types": { + "NATIONAL_ID": { + "label": "National ID" + }, + "PASSPORT": { + "label": "Passport" + } + } + }, + "MT": { + "name": "Malta", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "MU": { + "name": "Mauritius", + "id_types": { + "NATIONAL_ID": { + "label": "National ID" + }, + "PASSPORT": { + "label": "Passport" + } + } + }, + "MW": { + "name": "Malawi", + "id_types": { + "DRIVERS_LICENSE": { + "label": "Driver's License" + }, + "PASSPORT": { + "label": "Passport" + } + } + }, + "VA": { + "name": "Holy See", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "ER": { + "name": "Eritrea", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "MZ": { + "name": "Mozambique", + "id_types": { + "NATIONAL_ID": { + "label": "National ID" + }, + "RESIDENT_CARD": { + "label": "Residence permit" + }, + "PASSPORT": { + "label": "Passport" + } + } + }, + "ES": { + "name": "Spain", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "ET": { + "name": "Ethiopia", + "id_types": { + "NON_CITIZEN_ID": { + "label": "Foreign Nationals Id Card" + }, + "RESIDENT_CARD": { + "label": "Addis Ababa City Resident Card" + }, + "PASSPORT": { + "label": "Passport" + } + } + }, + "NA": { + "name": "Namibia", + "id_types": { + "NATIONAL_ID": { + "label": "National ID" + }, + "DRIVERS_LICENSE": { + "label": "Driver's License" + }, + "PASSPORT": { + "label": "Passport" + } + } + }, + "NE": { + "name": "Niger", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "NG": { + "name": "Nigeria", + "id_types": { + "RESIDENT_CARD": { + "label": "Residence permit" + }, + "VOTER_ID": { + "label": "Voter's ID" + }, + "NATIONAL_ID": { + "label": "National ID" + }, + "DRIVERS_LICENSE": { + "label": "Driver's License" + }, + "PASSPORT": { + "label": "Passport" + } + } + }, + "NL": { + "name": "Netherlands", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "NO": { + "name": "Norway", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "FI": { + "name": "Finland", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "FR": { + "name": "France", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "GA": { + "name": "Gabon", + "id_types": { + "HEALTH_INSURANCE_ID": { + "label": "Health Insurance ID" + }, + "PASSPORT": { + "label": "Passport" + } + } + }, + "GB": { + "name": "United Kingdom of Great Britain and Northern Ireland", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "GH": { + "name": "Ghana", + "id_types": { + "SSNIT": { + "label": "SSNIT" + }, + "NATIONAL_ID": { + "label": "National ID" + }, + "NATIONAL_ID_NON_CITIZEN": { + "label": "National ID Non Citizen" + }, + "GHANA_CARD": { + "label": "Ghana Card" + }, + "VOTER_ID": { + "label": "Voter's ID" + }, + "DRIVERS_LICENSE": { + "label": "Driver's License" + }, + "PASSPORT": { + "label": "Passport" + } + } + }, + "GM": { + "name": "Gambia", + "id_types": { + "RESIDENT_CARD": { + "label": "Residence Permit" + }, + "PASSPORT": { + "label": "Passport" + } + } + }, + "GN": { + "name": "Guinea", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "GQ": { + "name": "Equatorial Guinea", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "GR": { + "name": "Greece", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "GW": { + "name": "Guinea-Bissau", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "XK": { + "name": "Republic of Kosovo", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + }, + "PL": { + "name": "Poland", + "id_types": { + "PASSPORT": { + "label": "Passport" + } + } + } + }, + "enhanced_document_verification": { + "GH": { + "name": "Ghana", + "id_types": { + "SSNIT": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "SSNIT", + "test_data": "C000000000000", + "id_number_regex": "^[A-Z]{1}[A-Z0-9]{12,14}$/i" + }, + "VOTER_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Voter ID", + "test_data": "0000000000", + "id_number_regex": "^[0-9]{10,12}$" + }, + "DRIVERS_LICENSE": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Driver's License", + "test_data": "B0000000", + "id_number_regex": "^[A-Z0-9]{6,10}$/i" + }, + "PASSPORT": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Passport", + "test_data": "G0000000", + "id_number_regex": "^[A-Z][0-9]{7,9}$" + } + } + }, + "NG": { + "name": "Nigeria", + "id_types": { + "VOTER_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Voter ID", + "test_data": "0000000000000000000", + "id_number_regex": "^[a-zA-Z0-9 ]{9,20}$" + }, + "DRIVERS_LICENSE": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id", + "first_name", + "last_name", + "dob", + "day", + "month", + "year" + ], + "label": "Driver's License", + "test_data": "ABC000000000", + "id_number_regex": "^(?=.*[0-9])(?=.*[A-Z])[A-Z0-9]{3}([ -]{1})?[A-Z0-9]{6,12}$" + } + } + }, + "KE": { + "name": "Kenya", + "id_types": { + "NATIONAL_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID", + "test_data": "00000000", + "id_number_regex": "^[0-9]{1,9}$" + }, + "ALIEN_CARD": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Alien Card", + "test_data": "000000", + "id_number_regex": "^[0-9]{6,9}$" + }, + "PASSPORT": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Passport", + "test_data": "00000000", + "id_number_regex": "^[A-Z0-9]{7,9}$" + } + } + }, + "ZA": { + "name": "South Africa", + "id_types": { + "NATIONAL_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID", + "test_data": "0000000000000", + "id_number_regex": "^[0-9]{13}$" + } + } + } + }, + "ekyc_smartselfie": { + "GH": { + "name": "Ghana", + "id_types": { + "SSNIT": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "SSNIT", + "test_data": "C000000000000", + "id_number_regex": "^[A-Z]{1}[A-Z0-9]{12,14}$/i" + }, + "VOTER_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Voter ID", + "test_data": "0000000000", + "id_number_regex": "^[0-9]{10,12}$" + }, + "NEW_VOTER_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "New Voter ID", + "test_data": "0000000000", + "id_number_regex": "^[0-9]{10,12}$" + }, + "NATIONAL_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID", + "test_data": "", + "id_number_regex": "^GHA-[A-Z0-9]{9}-[A-Z0-9]{1}$/i" + }, + "DRIVERS_LICENSE": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Driver's License", + "test_data": "B0000000", + "id_number_regex": "^[A-Z0-9]{6,10}$/i" + }, + "PASSPORT": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Passport", + "test_data": "G0000000", + "id_number_regex": "^[A-Z][0-9]{7,9}$" + } + } + }, + "NG": { + "name": "Nigeria", + "id_types": { + "NIN": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID", + "test_data": "00000000000", + "id_number_regex": "^[0-9]{11}$" + }, + "NIN_SLIP": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID (Slip)", + "test_data": "00000000000", + "id_number_regex": "^[0-9]{11}$" + }, + "V_NIN": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Virtual NIN", + "test_data": "0000000000000000", + "id_number_regex": "^[a-zA-Z0-9]{16}$" + }, + "VOTER_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Voter ID", + "test_data": "0000000000000000000", + "id_number_regex": "^([A-Z0-9]{19}|[A-Z0-9]{9})$/i" + }, + "BVN": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Bank Verification Number", + "test_data": "00000000000", + "id_number_regex": "^[0-9]{11}$" + }, + "NIN_V2": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID (NIN)", + "test_data": "00000000000", + "id_number_regex": "^[0-9]{11}$" + }, + "DRIVERS_LICENSE": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id", + "first_name", + "last_name", + "dob", + "day", + "month", + "year" + ], + "label": "Driver's License", + "test_data": "ABC000000000", + "id_number_regex": "^(?=.*[0-9])(?=.*[A-Z])[A-Z0-9]{3}([ -]{1})?[A-Z0-9]{6,12}$" + } + } + }, + "KE": { + "name": "Kenya", + "id_types": { + "KRA_PIN": { + "required_fields": [ + "country", + "id_type", + "id_number", + "citizenship", + "user_id", + "job_id" + ], + "label": "KRA PIN", + "test_data": "00000000", + "id_number_regex": "^[0-9]{1,9}$" + }, + "NATIONAL_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID", + "test_data": "A00000000", + "id_number_regex": "^[0-9]{1,9}$" + }, + "ALIEN_CARD": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Alien Card", + "test_data": "000000", + "id_number_regex": "^[0-9]{6,9}$" + }, + "DRIVERS_LICENSE": { + "required_fields": [ + "country", + "id_type", + "id_number", + "citizenship", + "user_id", + "job_id" + ], + "label": "Driver's License", + "test_data": "00000000", + "id_number_regex": "^[0-9]{1,9}$" + }, + "PASSPORT": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "Passport", + "test_data": "00000000", + "id_number_regex": "^[A-Z0-9]{7,9}$" + }, + "NATIONAL_ID_NO_PHOTO": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID No Photo", + "test_data": "00000000", + "id_number_regex": "^[0-9]{1,9}$" + } + } + }, + "ZA": { + "name": "South Africa", + "id_types": { + "NATIONAL_ID": { + "required_fields": [ + "country", + "id_type", + "id_number", + "user_id", + "job_id" + ], + "label": "National ID", + "test_data": "0000000000000", + "id_number_regex": "^[0-9]{13}$" + } + } + } } + } } diff --git a/cypress/pages/enhanced_document_verification.html b/cypress/pages/enhanced_document_verification.html new file mode 100644 index 00000000..12e33348 --- /dev/null +++ b/cypress/pages/enhanced_document_verification.html @@ -0,0 +1,46 @@ + + + + + + + + + + + + + diff --git a/cypress/support/commands.js b/cypress/support/commands.js index 9f14d5ed..f2960512 100644 --- a/cypress/support/commands.js +++ b/cypress/support/commands.js @@ -147,11 +147,33 @@ Cypress.Commands.add('selectNINIDType', () => { .click(); }); +Cypress.Commands.add('selectVOTERIDType', () => { + cy + .loadIDOptions(); + + cy.log('selectingVoterIdType'); + + cy + .getIFrameBody() + .find('#country') + .select('NG') + + cy + .getIFrameBody() + .find('#id_type') + .select('VOTER_ID') + + cy + .getIFrameBody() + .find('#submitConfig') + .click(); +}); + Cypress.Commands.add('selectPASSPORTIDType', () => { cy .loadIDOptions(); - cy.log('selectingNINIDType'); + cy.log('selectingPASSPORTIDType'); cy .getIFrameBody() diff --git a/cypress/tests/document-verification.cy.js b/cypress/tests/document-verification.cy.js index ea1e95e7..5049cbdd 100644 --- a/cypress/tests/document-verification.cy.js +++ b/cypress/tests/document-verification.cy.js @@ -20,8 +20,20 @@ describe('document verification', () => { cy.visit('/document-verification'); + cy + .getIFrameBody() + .find('#country') + .select('NG') + + cy + .getIFrameBody() + .find('#id_type') + .select('NATIONAL_ID') - cy.selectNINIDType(); + cy + .getIFrameBody() + .find('#submitConfig') + .click(); cy.navigateThroughCameraScreens(); }); @@ -31,7 +43,7 @@ describe('document verification', () => { .getIFrameBody() .find('smart-camera-web') .invoke('attr', 'document-type') - .should('eq', 'NIN') + .should('eq', 'NATIONAL_ID') cy .getIFrameBody() diff --git a/cypress/tests/enhanced-document-verification.cy.js b/cypress/tests/enhanced-document-verification.cy.js new file mode 100644 index 00000000..b4218662 --- /dev/null +++ b/cypress/tests/enhanced-document-verification.cy.js @@ -0,0 +1,98 @@ +describe('enhanced document verification', () => { + beforeEach(() => { + cy + .intercept({ + method: 'POST', + url: '*upload*' + }, { + upload_url: "https://smile-uploads-development01.s3.us-west-2.amazonaws.com/videos/212/212-0000060103-0gdzke3mdtlco5k0sdfh6vifzcrd3n/ekyc_smartselfie.zip" + }).as('getUploadURL'); + + cy + .intercept({ + method: 'PUT', + url: 'https://smile-uploads-development01.s3.us-west-2.amazonaws.com/videos/212/212-0000060103-0gdzke3mdtlco5k0sdfh6vifzcrd3n/ekyc_smartselfie.zip' + }, { + statusCode: 200 + }).as('successfulUpload'); + + cy.loadIDOptions(); + + cy.visit('/enhanced_document_verification'); + + cy.selectVOTERIDType(); + + cy.navigateThroughCameraScreens(); + }); + + it('should capture selfie and id image', () => { + cy + .getIFrameBody() + .find('smart-camera-web') + .invoke('attr', 'document-type') + .should('eq', 'VOTER_ID') + + cy + .getIFrameBody() + .find('smart-camera-web') + .shadow() + .find('#id-entry-screen') + .should('be.visible'); + + cy + .getIFrameBody() + .find('smart-camera-web') + .shadow() + .find('#id-entry-screen #take-photo') + .click(); + + cy + .getIFrameBody() + .find('smart-camera-web') + .shadow() + .find('#id-camera-screen') + .should('be.visible'); + + cy + .getIFrameBody() + .find('smart-camera-web') + .shadow() + .find('#capture-id-image') + .click(); + + cy + .wait(2000); + + cy + .getIFrameBody() + .find('smart-camera-web') + .shadow() + .find('#id-camera-screen') + .should('not.be.visible'); + + cy + .getIFrameBody() + .find('smart-camera-web') + .shadow() + .find('#select-id-image') + .click(); + + cy + .getIFrameBody() + .find('smart-camera-web') + .shadow() + .find('#id-review-screen') + .should('not.be.visible'); + + cy + .wait('@getUploadURL'); + + cy + .wait('@successfulUpload'); + + cy + .getIFrameBody() + .find('#complete-screen') + .should('be.visible'); + }); +}); diff --git a/cypress/tests/id-selection.cy.js b/cypress/tests/id-selection.cy.js index 5f7dfe34..174e26c1 100644 --- a/cypress/tests/id-selection.cy.js +++ b/cypress/tests/id-selection.cy.js @@ -133,7 +133,7 @@ describe('No ID Selection', () => { }).as('successfulUpload'); cy - .selectNINIDType() + .selectPASSPORTIDType() cy .navigateThroughCameraScreens(); @@ -142,7 +142,7 @@ describe('No ID Selection', () => { .getIFrameBody() .find('smart-camera-web') .invoke('attr', 'document-type') - .should('eq', 'NIN') + .should('eq', 'PASSPORT') cy .getIFrameBody() diff --git a/cypress/tests/kra-verification.cy.js b/cypress/tests/kra-verification.cy.js index ae4130c5..1b0ce110 100644 --- a/cypress/tests/kra-verification.cy.js +++ b/cypress/tests/kra-verification.cy.js @@ -9,6 +9,9 @@ describe('KE Drivers License verification basic kyc', () => { body: { success: true } }).as('submitIdVerification'); + cy + .loadIDOptions(); + cy.visit('/kra-verification-basic-kyc'); cy diff --git a/src/enhanced-document-verification.html b/src/enhanced-document-verification.html new file mode 100644 index 00000000..d638c3f7 --- /dev/null +++ b/src/enhanced-document-verification.html @@ -0,0 +1,260 @@ + + + + + + + Document Verification — Smile Identity + + + + + + + + + + + + + + + + + + + +
+
+ +
+

+ +

+ Setting up +

+ +

+ Just a few more seconds +
+ We are setting up your verification flow +

+ +

+ Powered by SmileID + +

+
+ + + + + + + + + + +
+ + + + + diff --git a/src/js/enhanced-document-verification.js b/src/js/enhanced-document-verification.js new file mode 100644 index 00000000..0e212db3 --- /dev/null +++ b/src/js/enhanced-document-verification.js @@ -0,0 +1,412 @@ +var enhancedDocumentVerification = function enhancedDocumentVerification() { + 'use strict'; + + // NOTE: In order to support prior integrations, we have `live` and + // `production` pointing to the same URL + const endpoints = { + 'sandbox': 'https://testapi.smileidentity.com/v1', + 'live': 'https://api.smileidentity.com/v1', + 'production': 'https://api.smileidentity.com/v1' + } + + const referenceWindow = window.parent; + referenceWindow.postMessage('SmileIdentity::ChildPageReady', '*'); + + var config; + var activeScreen; + var id_info, images, partner_params; + var productConstraints; + + var LoadingScreen = document.querySelector('#loading-screen'); + var SelectIDType = document.querySelector('#select-id-type'); + var SmartCameraWeb = document.querySelector('smart-camera-web'); + var UploadProgressScreen = document.querySelector('#upload-progress-screen'); + var UploadFailureScreen = document.querySelector('#upload-failure-screen'); + var CompleteScreen = document.querySelector('#complete-screen'); + + var CloseIframeButtons = document.querySelectorAll('.close-iframe'); + var RetryUploadButton = document.querySelector('#retry-upload'); + + var fileToUpload, uploadURL; + + async function getProductConstraints() { + try { + const response = await fetch(`${endpoints[config.environment]}/services`); + const json = await response.json(); + + return json.hosted_web['enhanced_document_verification']; + } catch (e) { + throw new Error("Failed to get supported ID types", { cause: e }); + } + } + + window.addEventListener('message', async event => { + if (event.data && event.data.includes('SmileIdentity::Configuration')) { + config = JSON.parse(event.data); + activeScreen = LoadingScreen; + + try { + productConstraints = await getProductConstraints(); + initializeSession(productConstraints); + getPartnerParams(); + } catch (e) { + throw e; + } + } + }, false); + + function initializeSession(constraints) { + const supportedCountries = Object.keys(constraints) + .map(countryCode => ({ + code: countryCode, + name: constraints[countryCode].name + })).sort((a, b) => { + if (a.name < b.name) { + return -1; + } else if (a.name > b.name) { + return 1; + } else { + return 0; + } + }).map(item => item.code); + + let validCountries = []; + + if (config.id_selection) { + const selectedCountryList = Object.keys(config.id_selection); + validCountries = supportedCountries.filter((value) => + selectedCountryList.includes(value) + ); + + if (validCountries.length === 1) { + const selectedCountry = validCountries[0]; + id_info = { + country: validCountries[0] + }; + + const idTypes = config.id_selection[selectedCountry]; + if (idTypes.length === 1 || typeof idTypes === 'string') { + id_info.id_type = Array.isArray(idTypes) ? idTypes[0] : idTypes; + + // ACTION: set initial screen + SmartCameraWeb.setAttribute('document-type', id_info.id_type) + // ACTION: set document capture mode + if (config.document_capture_modes) { + SmartCameraWeb.setAttribute('document-capture-modes', config.document_capture_modes.join(',')) + } + // Hide the back button that takes the user back to the id selection screen + // from startcamera web + SmartCameraWeb.setAttribute('hide-back-to-host', true); + setActiveScreen(SmartCameraWeb); + } + } + } else { + validCountries = supportedCountries; + } + + if (!id_info || !id_info.id_type) { + const selectCountry = SelectIDType.querySelector('#country'); + const selectIDType = SelectIDType.querySelector('#id_type'); + const hostedWebConfigForm = document.querySelector('form[name="hosted-web-config"]'); + + // ACTION: Enable Country Selection + selectCountry.disabled = false; + + // ACTION: Enable select screen + setActiveScreen(SelectIDType); + + function loadIdTypes(countryCode) { + if (countryCode) { + const constrainedIDTypes = Object.keys(productConstraints[countryCode].id_types); + const validIDTypes = config.id_selection ? config.id_selection[countryCode] : constrainedIDTypes; + const selectedIDTypes = validIDTypes.filter(value => constrainedIDTypes.includes(value)); + + // ACTION: Reset ID Type + selectIDType.innerHTML = ""; + + // ACTION: Load the default