United States Telco 1

eKYC leverages U.S. telco databases to streamline and enhance the customer identity verification process by accessing telecommunications data for more accurate and efficient authentication, reducing fraud, and ensuring regulatory compliance.

Integration

eKYC module configuration for the US Telco source requires that both phone is a mandatory field as you are verifying the other fields (eg. name) against the phone. You will even notice in our API responses a "phoneNameMatch" for example.

Module configuration

In a flow, configure eKYC check and make sure to only check on Name, Address, Phone. See below

eKYB module configuration

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 Authentication

All endpoints require authentication headers to be specified as stated in Incode API Documentation

POST /omni/externalVerification/ekyc

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.

  • plugins: must be ["kyc"]: (mandatory)
  • source:: (mandatory) String. Must be: "US_TELCO_1".
  • phone: (mandatory) String. Phone number of the individual (eg. +14081234567)
  • firstName:: (mandatory) String. First name of the individual.
  • surName: (mandatory) String. Last name of the individual.
  • street: (optional) String. Full street including house number and apartment number.
  • city: (optional) String. City of the individual's address. (eg. San Francisco).
  • state: (optional) String. Two letter state of the individual's address (eg. CA).
  • postalCode: (optional) String. postalCode formatted based on per-country postalCode basis.
  • country: (mandatory) String. Two letter Alpha-2 country code. (Must be US).
  • dateOfBirth: (optional) String. Format: yyyy-mm-dd (eg. 1986-01-04)
  • email: (optional) String. Email address of the individual (eg. [email protected])
  • dlNumber: (optional) String. Driver's license number of individual (eg. F1234566)
  • dlState: (optional) String. Two letter driver's license state of individual (eg. CA)
  • last4SSN: (optional) String. Last 4 digits of SSN (eg. 1234)

Direct API Response

📘

API Authentication

All 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.

{
    "kyc": [
        {
            "key": "nameRiskLevel",
            "status": "low"
        },
        {
            "key": "addressRiskLevel",
            "status": "medium"
        },
        {
            "key": "phoneLevel",
            "status": "low",
            "reasonCodes": [
                "PML",
                "PPC5"
            ]
        },
        {
            "key": "dlNumberCheck",
            "status": "No Match",
            "reasonCodes": [
                "PDL"
            ]
        },
        {
            "key": "dlStateCheck",
            "status": "No Match"
        },
        {
            "key": "phoneDobMatch",
            "status": "Exact"
        },
        {
            "key": "phoneNameMatch",
            "status": "Exact"
        },
        {
            "key": "phoneAddressMatch",
            "status": "Partial Match",
            "reasonCodes": [
                "APA"
            ]
        },
        {
            "key": "phoneCityMatch",
            "status": "Exact"
        },
        {
            "key": "phoneZipcodeMatch",
            "status": "Exact"
        },
        {
            "key": "phoneStateMatch",
            "status": "Exact"
        },
        {
            "key": "overallLevel",
            "status": "low"
        }
    ]

US API KeyStatusDefinition
phoneNameMatchexact, nomatchMatches name submitted against the name associated to the phone in the source of truth.
phoneDobMatchexact, nomatchMatches date of birth submitted against the date of birth associated to the phone in the source of truth
last4SSNexact, nomatchMatches last 4 digits of SSN (US taxID) submitted against the city associated to the phone in the source of truth
phoneCityMatchexact, nomatchMatches city submitted against the city associated to the phone in the source of truth
phoneStateMatchexact, nomatchMatches state submitted against the state associated to the phone in the source of truth
phoneZipcodeMatchexact, nomatchMatches zip code submitted against the zip code associated to the phone in the source of truth
phoneAddressMatchexact, partialmatch, nomatchMatches address submitted against the address associated to the phone in the source of truth
phoneEmailMatchexact, nomatchMatches email address submitted against the email address associated to the phone in the source of truth
overallLevellow, medium, highOverall Risk Level is focused on the risk associated to the submitted address

See context below for more information around how low, medium, and high are calculated
phoneLevellow, medium, highPhone Risk Level is focused on the risk associated to the submitted phone
addressRiskLevellow, medium, highAddress Risk Level is focused on the risk associated to the submitted address

See context below for more information around how low, medium, and high are calculated
nameRiskLevellow, medium, highName Risk Level is focused on the risk associated to the submitted name

See context below for more information around how low, medium, and high are calculated
dlStateCheckexact, nomatchMatches Driver's License state submitted against the state associated to the phone in the source of truth
dlNumberCheckexact, nomatchMatches Driver's License number submitted against the number associated to the phone in the source of truth


overallLevel

overallLevel is the API response key for the submitted name. The fields low, medium, and high are mapped to a proprietary fuzzy matching algorithm that is mapped to a score from 0 to 100.

As a default, overallLevel will return:

  • low: when phoneNameMatch & phoneAddressMatch are exact
  • medium:
    • Rule 1: when phoneNameMatch is exact & phoneAddressMatch are partialmatch or nomatch OR
    • Rule 2: when phoneNameMatch is nomatch & phoneAddressMatch is a partialmatch
  • high: when phoneNameMatch & phoneAddressMatch are nomatch

nameRiskLevel

nameRiskLevel is the API response key for the submitted name. The fields low, medium, and high are mapped to a proprietary fuzzy matching algorithm that is mapped to a score from 0 to 100.

As a default, nameRiskLevel will return:

  • low: matching score is between 70-100
  • medium: matching score is between 30-70
  • high: matching score is less than 30

addressRiskLevel

addressRiskLevel is the API response key for the submitted name. The fields low, medium, and high are mapped to a proprietary fuzzy matching algorithm that is mapped to a score from 0 to 100.

As a default, addressRiskLevel will return:

  • low: matching score is 70 <= score <= 100
  • medium: matching score is between 30 <= score < 70
  • high: matching score <= 30

Please refer to error response to see conventional HTTP response codes to indicate the success or failure of an API request.


Single Session Dashboard Result

eKYB module configuration

eKYC Single Session Dashboard result


See above in the example single session dashboard results, you can see the bottom section "Codes" that can help you further interpret the results of matches and risk levels in your single session dashboard. All reason codes can be accessed here. Below you can see all the potential applicable reason codes that might be populated from this source:


Reason CodeDESCRIPTION
PAESome empty address fields where completed through address normalization for the address match check
PAUDThe address provided in the request is an undeliverable address
PABAThe address provided in the request is a business address
PACFThe address provided in the request matches the address of a U.S.correctional facility
PNCThe first and last name provided in the request are combined in one field
PADUThe address provided in the request is a dual address (e.g. 123 Main St PO Box 99)
PDIThe phone record data has a death indicator (i.e. it has been identified as that person having died)
PTOThe phone record data retrieval timed out
PFNA family name was found and used in the name matching calculation
PAHRThe address provided in the request is for a high-rise (i.e. contains apartment or building sub-units)
PAINThe address provided in the request is inactive (e.g. new developments may have addresses but will be 'inactive' until somebody moves in. Or, after Hurricane Katrina, addresses in the affected area were marked as inactive for a time.)
PALTThe address provided in low tenure
PAMAThe address provided in the request is tied to multiple active addresses (e.g. the address might be missing a suite or apartment number)
PAMLThe address provided in the request is a military address
PAVNThe address provided in the request is valid and has been normalized prior to calculating the match score
PANNThere is no name and address information associated with the phone number provided
PNNSThere is no network status information associated with the phone number provided
PNMBThe phone number provided is not a mobile line type
PNNA nickname was found and used in the name matching calculation (e.g. Bill matches with William)
PNOThe phone number provided has been matched with the identity information (e.g. name, address), and a newer ownership or association has recently been connected to the phone number
PNPBThe phone number provided is a non-personal business line
PNSThe first and last name provided were swapped compared to the phone number records
PNUThe phone number provided has been updated
PODThe ownership match for the provided phone number was found prior to a disconnect date
PMLThe phone number provided has been matched with the identity information (e.g. name, address) for more than 90 days (long tenure)
PMOThe phone number provided has been matched with the identity information (e.g. name, address), and the ownership or association to this phone number was not recent, however, there is no known, newer ownership or association found, a.k.a., the ownership is 'older'.
PMSTThe phone number provided has been matched with the identity information (e.g. name, address) for between 8 and 90 days (short tenure)
PMUThe phone number provided has been matched with the identity information (e.g. name, address) for an unknown amount of time (unknown tenure)
PMVSThe phone number provided has been matched with the identity information (e.g. name, address) for less than 7 days (very short tenure)
PPC3The postal code provided matches the first 3 digits of the address on record for this phone number
PPC5The postal code provided matches the first 5 digits of the address on record for this phone number
PPC6The postal code provided matches the first 6 digits of the address on record for this phone number (Canadian phone numbers only)
PPC9The postal code provided matches the first 9 digits of the address on record for this phone number
PAPMThe address provided is associated with a Private Mailbox operator (e.g. UPS Store)
PMNAThe provided mobile phone number is not active (available for most carriers with consent)
PAPOThe address provided is a PO Box
PPRTThe provided phone number is currently in a ported state.
PPVA successful person search verification was run for the provided phone number
PILEThe number of identities associated with the phone number has exceeded our phone data provider's suggested limit. This could be an indication of a higher risk of fraudulent activity.
PABMThe address provided resulted in a better match than the normalized address
PHRLThe provided phone number is associated with a high-risk line type (Non-Fixed VoIP or Prepaid MVNO) - (available for most carriers with consent)
PRMThe provided phone number identity matching was only based on raw user data
PSMSNThe person identity matched has multiple unique SSNs. This can indicate a higher risk of the identity being synthetic.
PSMDBThe person identity matched has multiple unique SSNs. This can indicate a higher risk of the identity being synthetic.
PSMRNThe person identity matched has a high number of relatives with the same/similar name. This may indicate the identity is synthetic.
PSDBMThe person identity matched has a SSN issued prior to either the submitted DOB or the selected person identity's DOB (if no DOB was submitted). This can indicate a higher risk of the identity being synthetic.
PANVThe address provided could not be verified
PAVThe address provided is vacant (i.e. unoccupied in the past 90 days)