This service verifies a person’s address or identity information such as name and address via background data source lookups in a multitude of registers. The list of supported countries is large and is expanded through quick configuration.

APIs

POST to https://env.zignsec.com/v2/ekyc/validateidentity
where env is api or test.

Note: ValidateAddress is a older method without possibility to check PersonalNumber or DateOfBirth.

MatchLevel

The main response is a MatchLevel set to HIGH, MEDIUM or LOW indicating the similarity between the in-data and the the best found match in the specified country.

  • HIGH – a very good match – The data item (ex user) should be accepted as referring to the same item (ex individual).
  • MEDIUM – a business decision. Maybe the item (ex user) could be accepted but need a manual inspection.
  • LOW – a poor match – The data item (ex user) should not be accepted as the items are too different.

ValidationMethod and the Pricing Level

The pricing level can be set automatically to the cheapest option for the actual query combination and the countryCode.
ValidationMethods:

  • addr1x1: Queries until found in one data source and does Not validate any of the identity fields DateOfBirth and PersonalNumber
  • id1x1: Queries until found in one data source and allows validation of identity fields
  • id2x2: Queries until found in two data sources. Suitable for UK.

You can select a specialized query configuration with the ValidationMethod parameter. Contact Zignsec for the correct set up.

Test Data and Tuning

In our test environment we query against a cache of test persons listed in a table here.

The test cache is designed for integration testing and validation not for quality or match rate tuning, we would suggest using live data for that.

Here is a link to global_sourcebook – a site with excellent coverage of address formats country per country. Click on the Country, and then on the link Addresses or Address examples

Parameters

On the Query node level:

CountryCodeMandatory parameter. Sets the country to query in. This should be in the 2 digit code format (ISO 3166-1)

https://www.nationsonline.org/oneworld/country_code_list.htm

FirstName
LastName
DateOfBirthIn the form YYYY-MM-DD
PersonalNumberThe national identity number
MobileNumberEnables search by phone number where service is available.
AddressFirst address line, normally street name and number, possibly other info such as floor.
Address2An optional second address line.
PostalCode
City

On the root level:

EnvironmentOptional parameter. Can switch betwween test/prod for easier testing. See Environment at the Common Data documentation.
QuerySettingsOptional settings for the query.

ValidationMethodUse a specified validation method, for example requiring that two data sources are needed.

Example call for ValidateIdentity:

POST https://test.zignsec.com/v2/ekyc/validateIdentity HTTP/1.1
User-Agent: Fiddler
Content-Length: 200
Content-Type: application/json; charset=UTF-8
Authorization: YOUR ACCESS TOKEN
Host: test.zignsec.com

{
  	"Query":{
		"FirstName":"Viktor",
		"LastName":"Rydberg",
		"CountryCode":"SE",
		"Address":"SOMMARBO 207",
		"PostalCode":"13767",
		"City":"JORDBRO",
		"DateOfBirth":"1971-02-01"
	}
}

Example Response:

{
	"id": "2923bcb6-95f2-4e3f-bdf6-392be54b636e",
	"errors": [],
	"DetailCode": "WS-8810289.2019.3.9.7.32.25.23",
	"MatchLevel": "HIGH",
	"ValidationDetails":
	{
		"1MT-SE-CNS1-COMPLETENAME": "Full match was made on Complete Name",
		"1MT-SE-CNS1-FIRSTINITIAL": "Full match was made on First Initial",
		"1MT-SE-CNS1-FIRSTNAME": "Full match was made on First Name/Given Name",
		"1MT-SE-CNS1-LASTNAME": "Full match was made on Last Name/Surname ",
		"1MT-SE-CNS1-ADDRESS": "Full match was made on address elements provided in Address Lines",
		"1MT-SE-CNS1-HOUSENUMBER": "Full match was made on House Number/Street Number",
		"1MT-SE-CNS1-THOROUGHFARE": "Full match was made on Street/Thoroughfare",
		"1MT-SE-CNS1-LOCALITY": "Full match was made on City/Locality",
		"1MT-SE-CNS1-POSTALCODE": "Full match was made on Postal Code/Zip Code",
		"1MT-SE-CNS1-DATEOFBIRTH": "Full match was made on Date of Birth",
		"1MT-SE-CNS1-DAYOFBIRTH": "Full match was made on Day of Birth",
		"1MT-SE-CNS1-MONTHOFBIRTH": "Full match was made on Month of Birth",
		"1MT-SE-CNS1-YEAROFBIRTH": "Full match was made on Year of Birth",
		"4MT-SE-CNS1-SUBPREMISE": "Datasource does not contain element Sub Premise Descriptors provided in Address Lines",
		"1MT-SE-GVT1-COMPLETENAME": "Full match was made on Complete Name",
		"1MT-SE-GVT1-FIRSTINITIAL": "Full match was made on First Initial",
		"1MT-SE-GVT1-FIRSTNAME": "Full match was made on First Name/Given Name",
		"1MT-SE-GVT1-LASTNAME": "Full match was made on Last Name/Surname ",
		"1MT-SE-GVT1-ADDRESS": "Full match was made on address elements provided in Address Lines",
		"1MT-SE-GVT1-HOUSENUMBER": "Full match was made on House Number/Street Number",
		"1MT-SE-GVT1-THOROUGHFARE": "Full match was made on Street/Thoroughfare",
		"1MT-SE-GVT1-LOCALITY": "Full match was made on City/Locality",
		"1MT-SE-GVT1-POSTALCODE": "Full match was made on Postal Code/Zip Code",
		"1MT-SE-GVT1-DATEOFBIRTH": "Full match was made on Date of Birth",
		"1MT-SE-GVT1-DAYOFBIRTH": "Full match was made on Day of Birth",
		"1MT-SE-GVT1-MONTHOFBIRTH": "Full match was made on Month of Birth",
		"1MT-SE-GVT1-YEAROFBIRTH": "Full match was made on Year of Birth",
		"4MT-SE-GVT1-SUBPREMISE": "Datasource does not contain element Sub Premise Descriptors provided in Address Lines",
		"1MT-SE-TEL2-COMPLETENAME": "Full match was made on Complete Name",
		"1MT-SE-TEL2-FIRSTINITIAL": "Full match was made on First Initial",
		"1MT-SE-TEL2-FIRSTNAME": "Full match was made on First Name/Given Name",
		"1MT-SE-TEL2-LASTNAME": "Full match was made on Last Name/Surname ",
		"1MT-SE-TEL2-ADDRESS": "Full match was made on address elements provided in Address Lines",
		"1MT-SE-TEL2-HOUSENUMBER": "Full match was made on House Number/Street Number",
		"1MT-SE-TEL2-THOROUGHFARE": "Full match was made on Street/Thoroughfare",
		"1MT-SE-TEL2-LOCALITY": "Full match was made on City/Locality",
		"1MT-SE-TEL2-POSTALCODE": "Full match was made on Postal Code/Zip Code",
		"1MT-SE-TEL2-DATEOFBIRTH": "Full match was made on Date of Birth",
		"1MT-SE-TEL2-DAYOFBIRTH": "Full match was made on Day of Birth",
		"1MT-SE-TEL2-MONTHOFBIRTH": "Full match was made on Month of Birth",
		"1MT-SE-TEL2-YEAROFBIRTH": "Full match was made on Year of Birth",
		"4MT-SE-TEL2-SUBPREMISE": "Datasource does not contain element Sub Premise Descriptors provided in Address Lines",
		"1AU-425-COMPLETENAME": "Full match was made on Complete Name",
		"1AU-375-FIRSTINITIAL": "Full match was made on First Initial",
		"1AU-350-FIRSTNAME": "Full match was made on First Name/Given Name",
		"1AU-400-LASTNAME": "Full match was made on Last Name/Surname ",
		"1AU-200-ADDRESS": "Full match was made on address elements provided in Address Lines",
		"1AU-150-HOUSENUMBER": "Full match was made on House Number/Street Number",
		"1AU-175-THOROUGHFARE": "Full match was made on Street/Thoroughfare",
		"1AU-250-LOCALITY": "Full match was made on City/Locality",
		"1AU-275-POSTALCODE": "Full match was made on Postal Code/Zip Code",
		"1AU-550-DATEOFBIRTH": "Full match was made on Date of Birth",
		"1AU-575-DAYOFBIRTH": "Full match was made on Day of Birth",
		"1AU-600-MONTHOFBIRTH": "Full match was made on Month of Birth",
		"1AU-625-YEAROFBIRTH": "Full match was made on Year of Birth",
		"Codes": "1AU-150-HOUSENUMBER;1AU-175-THOROUGHFARE;1AU-200-ADDRESS;1AU-250-LOCALITY;1AU-275-POSTALCODE;1AU-350-FIRSTNAME;1AU-375-FIRSTINITIAL;1AU-400-LASTNAME;1AU-425-COMPLETENAME;1AU-550-DATEOFBIRTH;1AU-575-DAYOFBIRTH;1AU-600-MONTHOFBIRTH;1AU-625-YEAROFBIRTH;1MT-SE-CNS1-ADDRESS;1MT-SE-CNS1-COMPLETENAME;1MT-SE-CNS1-DATEOFBIRTH;1MT-SE-CNS1-DAYOFBIRTH;1MT-SE-CNS1-FIRSTINITIAL;1MT-SE-CNS1-FIRSTNAME;1MT-SE-CNS1-HOUSENUMBER;1MT-SE-CNS1-LASTNAME;1MT-SE-CNS1-LOCALITY;1MT-SE-CNS1-MONTHOFBIRTH;1MT-SE-CNS1-POSTALCODE;1MT-SE-CNS1-THOROUGHFARE;1MT-SE-CNS1-YEAROFBIRTH;1MT-SE-GVT1-ADDRESS;1MT-SE-GVT1-COMPLETENAME;1MT-SE-GVT1-DATEOFBIRTH;1MT-SE-GVT1-DAYOFBIRTH;1MT-SE-GVT1-FIRSTINITIAL;1MT-SE-GVT1-FIRSTNAME;1MT-SE-GVT1-HOUSENUMBER;1MT-SE-GVT1-LASTNAME;1MT-SE-GVT1-LOCALITY;1MT-SE-GVT1-MONTHOFBIRTH;1MT-SE-GVT1-POSTALCODE;1MT-SE-GVT1-THOROUGHFARE;1MT-SE-GVT1-YEAROFBIRTH;1MT-SE-TEL2-ADDRESS;1MT-SE-TEL2-COMPLETENAME;1MT-SE-TEL2-DATEOFBIRTH;1MT-SE-TEL2-DAYOFBIRTH;1MT-SE-TEL2-FIRSTINITIAL;1MT-SE-TEL2-FIRSTNAME;1MT-SE-TEL2-HOUSENUMBER;1MT-SE-TEL2-LASTNAME;1MT-SE-TEL2-LOCALITY;1MT-SE-TEL2-MONTHOFBIRTH;1MT-SE-TEL2-POSTALCODE;1MT-SE-TEL2-THOROUGHFARE;1MT-SE-TEL2-YEAROFBIRTH;4MT-SE-CNS1-SUBPREMISE;4MT-SE-GVT1-SUBPREMISE;4MT-SE-TEL2-SUBPREMISE;",
		"1MT-SE-MATCHED-1+1": "Full Match for 1+1 verification"
	},
	"ValidationMethod": "GDC_ValidateIdentitySvc_env  (tenant=zignsec_test)"
}

ValidationMethod is the actual validation method used during the querying, wheter automatically or manually selected.

ValidationDetails

MT stands for match type.

  • 1MT Element fully matched with the data source.
  • 2MT Element did not match with the data source.
  • 3MT Element partially matched with the data source.
  • 4MT Element is not contained in the data source.  

AU Is a summed up match, accross all available data sources.

  • 1AU Indicates a complete match was made with the data source from the input element.  
  • 2AU Indicates a non-match of the input element and the data source.
  • 3AU Indicates a partial match was made with the data source from the input element.

Data source types

Note that data source names are not displayed, only the category name:

  • CRD Credit
  • GVT Government
  • CMM Commercial
  • CNS Consumer
  • OTH Other (including social)
  • UTL Utility
  • PRP Proprietary
  • TEL Teleco
  • PST Postal