Enhanced KYC
Required Class: ID Api Class
Running Enhanced KYC on Python
Get your Smile ID
Partner ID
Get your API Key (take note of the environment you are running the job in)
Get the ID information from your users
Submit the Job to Smile ID
Interpret your results
Get your Partner ID
You can find your Partner ID in the menu list when logged into the portal.

Get your API Key
Your api key is in the developer section of the portal.
Click on the Generate New API Key button
Copy your api key (ensure you are in the right environment)


Get the ID information from your users
To submit an Enhanced KYC job you need the ID information of your user. Depending on the ID type you are attempting to query, the required information varies. For the comprehensive list of required information for each ID Type, check the Supported ID Types section of the docs.
Submit the Job to Smile ID
You can copy the sample code below and edit with your partner and job details.
from smile_id_core import IdApi, ServerError
# Initialize Values
partner_id = "<Your partner ID>"; # login to the Smile ID portal to view your partner id
api_key = "<Your API key>"; # copy your API key from the Smile ID portal
sid_server = <0 or 1>; # Use 0 for the sandbox server, use 1 for production server
connection = IdApi(partner_id, api_key, sid_server)
# Create required tracking parameters
partner_params = {
"user_id": "<put your unique ID for the user here>",
"job_id": "<put your unique job ID here>",
"job_type": 5,
}
# Create ID info
id_info_params = {
"first_name": "<first name>",
"last_name": "<surname>",
"country": "<2-letter country code>",
"id_type": "<id type>",
"id_number": "<valid id number>",
"dob": "<date of birth>", # yyyy-mm-dd
"phone_number": "<phone number>"
}
# Set the options for the job
option_params = {
"signature": True
}
# Submit the Job
try:
response = connection.submit_job(partner_params, id_info_params, options_params=option_params)
except ValueError:
# some of your params entered for a job are not valid or missing
print("handle ValueError")
except ServerError:
# Server returned an error
print("handle ServerError")
Example Response Body
Your response will return a JSON String containing the below:
{
"SmileJobID": "0000001105",
"PartnerParams": {
"user_id": "T6yzdOezucdsPrY0QG9LYNDGOrC",
"job_id": "FS1kd1dd15JUpd87gTBDapvFxv0",
"job_type": 5
},
"ResultText": "ID Number Validated",
"ResultCode": "1012",
"Actions": {
"Verify_ID_Number": "Verified",
"Return_Personal_Info": "Returned"
},
"Country": "NG",
"IDType": "DRIVERS_LICENSE",
"IDNumber": "ABC000000000",
"ExpirationDate": "2017-10-28",
"FullName": "John Doe",
"DOB": "1900-09-20",
"Photo": "SomeBase64Image",
"signature": "iWyc...P0=",
"timestamp": "2022-03-13T11:44:10.231Z"
}
Interpret your Results
You can read more about result codes and responses in the Enhanced KYC section of the docs.
Last updated
Was this helpful?