idvCheck allows a client to submit details for sanction checking, electronic kyc and manual kyc using the same api call.

The api can be set up using one of five modes. Depending on the mode in use the api will return a result out of a possible list. The result is composed of 3 parts: ErrorCode, Error description, Data. Data is only used when error code 0021 is returned.

Mode 1 - Sanctions check only

0020 Sanctions - No Match
0021 Sanctions - Requires Investigation

Mode 2 - Sanctions check, electronic kyc, manual kyc

0018 eKYC Approved
0019 eKYC Pending
0021 Sanctions - Requires Investigation

Mode 3 - Sanctions check, manual kyc

0020 Sanctions - No Match
0021 Sanctions - Requires Investigation

Mode 4 - Electronic kyc, manual kyc

0018 eKYC Approved
0019 eKYC Pending

Mode 5 - Manual kyc

0000 Successful submission.

For all modes

Any other code returned would signify that an error had occurred during the call of the service. An exhaustive list of codes is found here. An exhaustive list of keywords retuned in the data field can be found here. Calling the idvcheck api also results in an aysynchrons call (postback) to the client. This call contains more details of the result. Information about this call can be found here.

Integration

This document outlines a method that can be used to rapidly integrate to idvcheck. In order to integrate you need to create two modules. The first module is used to register an application to idvcheck. The UniqueId field identifies each application. No two submitted applications by same organisation can contain the same UniqueId field. The application can contain the documents that need to be verified by idvcheck, or the documents can be sent in subsequent calls to api. If documents are sent in subsequent calls of the api, the calls must share the same UniqueId field. The second module is used to receive results from idvcheck once the verification process is completed. idv will post the result of the verification to a URL of your choice into a parameter called DATA. The data submitted will include all the data used for verification plus a new field with the result of the verification.

Registering an application

  1. Download Rapid Integration Kit library in ZIP format and extract (RIK.dll) to a folder of your choice
  2. Open Visual Studio and create a new console application.
  3. From the Solution Explorer panel right click references and click Add reference 
  4. Select the Browse tab and browse to the folder chosen in step 1
  5. Select RIK.dll and click on OK. RIK should now appear under the references section
  6. Double Click Program.cs
  7. Add the following code in the main method.
                  //Create RIK object using credentials supplied by idvcheck
                RIK.IDV apply = new RIK.IDV(
                  "username",
                   "password");
    
                //Generate a unique reference code. This reference code needs to be 
                //used whenever you need to  refer to this 
                //application in subsequent calls to api. 
                string UniqueID = "Client1." + DateTime.Now.ToString("yyyyMMddHHmmssfff");
    
                //First step is to get RIK to download settings from the idvcheck environment.
                apply.Client.APIType = RIK.API.RIKSettings;
                apply.Send();
    
                
                apply.New();
                apply.Client.APIType = RIK.API.NewApplication;
                apply.Client.FirstName = "Joe";
                apply.Client.LastName = "Bloggs";
                apply.Client.CountryOfOrigin = "Ireland";
                apply.Client.DateOfBirth = new DateTime(1950, 1, 16);
                apply.Client.AddEmail("[email protected]");
                apply.Client.AddUDF("1235");
                apply.Client.AddMobile("35361203501");
                apply.Client.AddPhone("1850605747");
                apply.Client.AddFile(@"Pathtofile");
                apply.Client.UniqueID = UniqueID;
    
                RIK.Address a = new RIK.Address();
                a.Address1 = "My Addy";
                a.Address2 = "St James's Gate";
                a.City = "Dublin 8";
                a.AddressType = "Primary";
                a.Country = "Ireland";
                a.CountryCode = "IE";
                a.PostCode = "none";
                //RIK supports more than one address, to add more than one address 
                //simply create a new address object and call the 
                //following method a second time.
                apply.Client.AddAddress(a);
    
                //Sending the API request to idvcheck
                apply.Send();
    
                //Ensuring that the request was successful
                if (apply.Response.ErrorCode != "0000")
                {
                    Console.Write("failed");
                }
    
  8. Replace  "username", "password" with the username and password supplied by your project manager.
  9. Replace Pathtofile in the line Apply.Client.AddFile(@"Pathtofile"); with the path to a file you want to attach to this application. Files can be be omitted in the first call and then sent to idvcheck in subsequent calls (see files at a later stage)
  10. Open app.config and add the following snippet
    <system.serviceModel>
        <bindings>
          <basicHttpBinding>
            <binding name="BasicHttpBinding_IService"  />
          </basicHttpBinding>
          <basicHttpsBinding>
            <binding name="BasicHttpsBinding_IService"  />
          </basicHttpsBinding>
        </bindings>
        <client>
          <endpoint address="http://stagingportal.idvcheck.com/api/service.svc" binding="basicHttpBinding"
              bindingConfiguration="BasicHttpBinding_IService" contract="IDVAPI.IService"
              name="BasicHttpBinding_IService"  />
        </client>
      </system.serviceModel>                                                                  

Sending files in subsequent calls

  1. Download Rapid Integration Kit library library in ZIP format and extract (RIK.dll) to a folder of your choice
  2. Open Visual Studio and create a new console application.
  3. From the Solution Explorer panel right click references and click Add reference 
  4. Select the Browse tab and browse to the folder chosen in step 1
  5. Select RIK.dll and click on OK. RIK should now appear under the references section
  6. Double Click Program.cs
  7. Add the following code in the main method.
                  //Create RIK object using credentials supplied by idvcheck
                RIK.IDV apply = new RIK.IDV(
                  "username",
                   "password");
    
                //This refernce code needs to be the same as the one used to register the application 
                string UniqueID = "client100233123";
    
                //First step is to get RIK to download settings from the idvcheck environment.
                apply.Client.APIType = RIK.API.RIKSettings;
                apply.Send();
    
                apply.New();
                apply.Client.APIType = RIK.API.AddFile;
                apply.Client.UniqueID = UniqueID; //UniqueID used in original application
                apply.Client.AddFile(@"PathtoFile");
                
                //Sending the API request to idvcheck
                apply.Send();
    
                //Ensuring that the request was successful
                if (apply.Response.ErrorCode != "0000")
                {
                    Console.Write("failed");
                }
    
  8. Replace  "username", "password" with the username and password supplied by your project manager.
  9. Replace Pathtofile in the line Apply.Client.AddFile(@"Pathtofile"); with the path to a file you want to attach to this application.
  10. Open app.config and add the following snippet
    <system.serviceModel>
        <bindings>
          <basicHttpBinding>
            <binding name="BasicHttpBinding_IService"  />
          </basicHttpBinding>
          <basicHttpsBinding>
            <binding name="BasicHttpsBinding_IService"  />
          </basicHttpsBinding>
        </bindings>
        <client>
          <endpoint address="http://stagingportal.idvcheck.com/api/service.svc" binding="basicHttpBinding"
              bindingConfiguration="BasicHttpBinding_IService" contract="IDVAPI.IService"
              name="BasicHttpBinding_IService"  />
        </client>
      </system.serviceModel>                                                                  

Receiving the results of the verification process

  1. Download Rapid Integration Kit library library in ZIP format and extract (RIK.dll) to a folder of your choice
  2. Open Visual Studio and create a new web application.
  3. From the Solution Explorer panel right click references and click Add reference 
  4. Select the Browse tab and browse to the folder chosen in step 1
  5. Select RIK.dll and click on OK. RIK should now appear under the references section
  6. Right click default.aspx and choose view code
  7. Add the following code in the Page_Load method of the page:
                   if (!IsPostBack)
            {
                HttpContext context = null;
                HttpRequest httpRequest = null;
                HttpResponse httpResponse = null;
                try
                {
                    context = new HttpContext(Request, Response);
                    httpRequest = context.Request;
                    httpResponse = context.Response;
                    if (httpRequest["DATA"] != null)
                    {
                        string data = HttpUtility.UrlDecode(httpRequest["DATA"].ToString());
                        RIK.ApplicationResponse AppResponse = new RIK.ApplicationResponse(data);
                        if (AppResponse.AppReply.ErrorCode == "0000")
                        {
                            Response.Write(AppResponse.UniqueID); //Get the unique id specified when sending the request to IDV
                            Response.Write(AppResponse.Response); //Get the idvcheck result for application    
                            //List all entries in UDF field. Note that if status is pending last item of UDF fiels will contain reason why the application was placed in pending status
                            foreach (string value in AppResponse.UDF.Items)
                            { Response.Write(value); }						
                        }
                        else
                        {
                            Response.Write(AppResponse.AppReply.ErrorCode + ":" +
                                AppResponse.AppReply.ErrorDesc);
                            httpResponse.StatusCode = 201;
                        }
                    }
                    else
                        Response.Write("0003");
                }
                catch (Exception ex)
                {
                    //Notify IDV IT Support of fail. Message will automatically be reposted by IDV
                    httpResponse.StatusCode = 201;
                    Response.Write("0002:HTTP Post failed: " + ex.Message.ToString());
                }
            }

The outcome of the verification will be placed in field AppResponse.Response. AppResponse.Response can contain one of the following values:

Only some of the above values of AppResponse.Response might be returned to the client depending on the service on offer.

Pending Status

If the status sent back by idv is the Pending status, further information about the application can be obtained by checking the UDF fields. The UDF fields can contain one of:

Client can use the AddFile method (see Sending files in subsequent call) to send additional documentation for the application.

Updating an application

If information about an application changes once an application is approved an update application call can be placed to update the information as follows:

  1. Download Rapid Integration Kit library library in ZIP format and extract (RIK.dll) to a folder of your choice
  2. Open Visual Studio and create a new console application.
  3. From the Solution Explorer panel right click references and click Add reference 
  4. Select the Browse tab and browse to the folder chosen in step 1
  5. Select RIK.dll and click on OK. RIK should now appear under the references section
  6. Double Click Program.cs
  7. Add the following code in the main method.
                  //Create RIK object using credentials supplied by idvcheck
                RIK.IDV apply = new RIK.IDV(
                  "username",
                   "password");
    
                //This reference code needs to be the same as the one used to register the application 
                string UniqueID = "client100233123";
    
                //First step is to get RIK to download settings from the idvcheck environment.
                apply.Client.APIType = RIK.API.RIKSettings;
                apply.Send();
    			
    			apply.New();
                apply.Client.APIType = RIK.API.UpdateApplication;
                apply.Client.LastName = "Whatever";
                apply.Client.AddEmail("[email protected]");
                apply.Client.OverWriteEmail(true);  // overwrite email ensures that the old email is replaced by the new email.
                apply.Client.AddMobile("35361223501");
                apply.Client.OverWriteMobile(true);
                apply.Client.UniqueID = UniqueID;
    
                RIK.Address a = new RIK.Address();
                a.Address1 = "New Addy";
                a.Address2 = "St Philip's Gate";
                a.City = "London";
                a.AddressType = "Primary";
                a.Country = "Ireland";
                a.CountryCode = "IE";
                a.PostCode = "none";
    			apply.Client.AddAddress(a);
                apply.Client.Address.overwrite=true; //old address is overwritten
                //Sending the API request to idvcheck
                apply.Send();
    			//Ensuring that the request was successful
                if (apply.Response.ErrorCode != "0000")
                {
                    Console.Write("failed");
                    Console.Write(apply.Response.ErrorCode);
                    Console.Write(apply.Response.ErrorDesc);
                }
    
  8. Replace  "username", "password" with the username and password supplied by your project manager.
  9. Open app.config and add the following snippet
    <system.serviceModel>
        <bindings>
          <basicHttpBinding>
            <binding name="BasicHttpBinding_IService"  />
          </basicHttpBinding>
          <basicHttpsBinding>
            <binding name="BasicHttpsBinding_IService"  />
          </basicHttpsBinding>
        </bindings>
        <client>
          <endpoint address="http://stagingportal.idvcheck.com/api/service.svc" binding="basicHttpBinding"
              bindingConfiguration="BasicHttpBinding_IService" contract="IDVAPI.IService"
              name="BasicHttpBinding_IService"  />
        </client>
      </system.serviceModel>                                                                  
An update in the application information needs to be accompanied with the relevant documentation. The AddFile method (see Sending files in subsequent call) should be used to upload the relevant documents to idv Once the application is approved the client will receive the status KYCUpdated. Please see section Receiving the results of the verification process on how to receive a response from idv.

List of codes returned by api

0000    Successful
0001    Authentication Failed Check username/password
0002    Operation Failed
0003    Data Incorrect
0004    Application already exists (value of UniqueId field was used before)
0005    Files did not save      (Resend an addfileapi with file for the same uniqueid)
0007    Application does not exists  (Addfile or Updateapplication was submitted with a UniqueId field which was not sent previously)
0011    Application status does not allow to add file 
0012    File addition failed  (Resend an addfileapi with file for the same uniqueid)
0013    File base64 string is invalid (Please check that the file is being sent as a valid base 64 string)
0014    XML validation failed
0016    Invalid file extension 
0017    Error Connecting to eKYC service
0018    eKYC Approved
0019    eKYC Pending
0020    Sanctions - No Match
0021    Sanctions - Requires Investigation
0022    Sanctions - Potential Match
0023    PEP - Potential Match
0024    Adverse Media - Potential Match

List of possible entires returned in data field by api

One or more of thes keywords can be returned when errorcode is 0021
sanction
warning
fitness-probity
pep
pep-class-1
pep-class-2
pep-class-3
pep-class-4
adverse-media
adverse-media-financial-crime
adverse-media-violent-crime
adverse-media-sexual-crime
adverse-media-terrorism
adverse-media-fraud
adverse-media-narcotics
adverse-media-general