Canada
Canada eKYC non-doc verification leverages Canada's source of truth to validate individuals. It is essential in eKYC processes for ensuring identity authenticity, regulatory compliance, and enhanced security. It helps prevent fraud, boosts user trust, and streamlines operations through automated and efficient verification methods.
Integration
User input flow
eKYC module configuration gives various options to specify different search criteria with various sources of truth for each country (eg. US has multiple via Telco, Credit Bureau, and Driver's License). User data can be collected via a user input flow by using pre-selected fields where users can type in their name or date of birth, etc. See an example below:

eKYC user input flow example
Module configuration
The module configuration can be leveraged to select the applicable fields for the input data you would like to collect from the end user.

eKYC Module configuration
Direct API Approach
All module configurations and user data can be forwarded directly in the request for performing an eKYC search. This will override existing configuration and data collected about the user.
API AuthenticationAll endpoints require authentication headers to be specified as stated in Incode API Documentation
POST /omni/externalVerification/kyc
This endpoint performs an eKYC check for the individual specified. Note: Endpoint can have empty body {} and in that case information will be pulled from module configuration and session details.
- country: (mandatory) String. Two letter Alpha-2 country code. (Must be CA).
 - firstName:: (mandatory) String. First name of the individual.
 - surName: (mandatory) String. Last name of the individual.
 - middleName:: (optional) String.
 - street: (mandatory) String. (Address = street + houseNo in CA)
 - city: (mandatory) String. City of the individual's address. (eg. Toronto).
 - state: (optional) String.
 - postalCode: (mandatory) String. postalCode formatted based on per-country postalCode basis.
 - dateOfBirth: (mandatory) String. Format: YYYY-MM-DD (preferred) or DD-MM-YYYY format. (eg. 1980-06-01)
 - phone: (optional) String.
 
Example Incode request:
{
    "plugins": ["kyc"],
	  "source": "CA_RES_CREDIT" //new eKYC source for Data Zoo //mandatory
    "firstName": "Daniel", //mandatory
    "middleName": "", //optional
    "surName": "Whitmore ", //mandatory
    "street": "2799 Maplewood Crescent", //mandatory - houseNo + street
    "city" : "Ottawa", //mandatory
    "state": "ON", // mandatory
    "postalCode": "K1R7X5", //mandatory
    "country": "CA", //mandatory
    "dateOfBirth" : "1991-08-02", //mandatory
    "phone": "+12048900252", //optional
}Direct API Response
API AuthenticationAll endpoints require authentication headers to be specified as stated in Incode API Documentation
Note: Endpoint can have empty body {} and in that case information will be pulled from module configuration and session details.
Example Incode response:
{
    "kyc": [
        {
            "key": "firstNameMatch",
            "status": "Exact"; 
        },
        {
            "key": "middleNameMatch",
            "status": "Exact"
        },
        {
            "key": "lastNameMatch",
            "status": "Approximate Match"
        },
        {
            "key": "fullNameMatch",
            "status": "Fuzzy"
        },
        {
            "key": "dobMatch",
            "status": "Exact"
        },
        {
            "key": "streetMatch",
            "status": "Exact"
        },
        {
            "key": "cityMatch",
            "status": "Exact"
        },
        {
            "key": "stateMatch",
            "status": "Exact"
        },
        {
            "key": "postalCodeMatch",
            "status": "Exact"
        },
        {
            "key": "fullAddressMatch",
            "status": "Fuzzy"
        },
        {
            "key": "phoneMatch",
            "status": "No Match"
        },
        {
            "key": "overallLevel",
            "status": "Low"
        }
    ]
}Please refer to error response to see conventional HTTP response codes to indicate the success or failure of an API request. For Canada, custom 400 error messages if taxId, or country is “ “ or null:
Incode API Key  | Status  | Definition  | 
|---|---|---|
firstNameMatch  | exact, nomatch  | Matches first name submitted against the name associated to the value in the source of truth.  | 
middleNameMatch  | exact, nomatch  | Matches middle name submitted against the name associated to the value in the source of truth.  | 
lastNameMatch  | exact, nomatch  | Matches last name submitted against the name associated to the value in the source of truth.  | 
fullNameMatch (first_name, last_name, middle_name)  | exact, nomatch  | Matches full name (first_name, last_name, middle_name) submitted against the full name associated to the value in the source of truth.  | 
dobMatch  | exact, nomatch  | Matches date of birth submitted against the date of birth associated to the value in the source of truth  | 
streetMatch  | exact, nomatch  | Matches street submitted against the street associated to the value in the source of truth (address1)  | 
cityMatch  | exact, nomatch  | Matches city submitted against the city associated to the value in the source of truth  | 
stateMatch  | exact, nomatch  | Matches state submitted against the state associated to the value in the source of truth  | 
postalCodeMatch  | exact, nomatch  | Matches postal code submitted against the postal code associated to the value in the source of truth  | 
fullAddressMatch (StreetMatch, cityMatch, stateMatch, postalCodeMatch)  | exact, fuzzy, nomatch  | Matches full address (street, city, state, zip) submitted against the full address associated to the value in the source of truth  | 
phoneMatch  | exact, nomatch  | Matches phone submitted against the phone associated to the value in the source of truth  | 
overallLevel  | low, medium, high  | Overall Risk Level is focused on the risk associated to the submitted full name, full address and date of birth. See context below for more information around how low, medium, and high are calculated  | 
overallLevel
Single Session Dashboard Result

Single Session Dashboard Result
Updated about 11 hours ago
