Data Structures
Below are the major data structures used as a part of the iComply API.
The major data structures used as a part of the API as well as a description of the parameters that makes up these structures are listed below. The iComplyKYC API uses the ISO standard format for date and country code variables.
KYCMetaDataStructure:
Variable name
Type
Possible value (if applicable)
Description
Example
EntityID
string
Only Active Entity IDs from this instance.
ID of the Entity being updated
"9D847877-2175-4F52-9678-ABCDEFABCDEF"
CreatedDateTime
string (Date)
Date the Entity was first created in the system
"2020-09-25"
LastUpdate
string (Date)
Date the Entity was last updated
"2020-09-25"
NextKYCReview
string (Date)
Date when the Entity should be reviewed again
"2022-09-25"
KYCStatus
string
New, Pending, Review, Escalated, Accepted, Rejected, Expired
KYC Status of the Entity
"New"
ExternalID
string
ID assigned to the Entity by the Client, used for external identification
"JohnDoe555"
CreatedDateTime is only used by the server response, it is not accepted as a part of the client request.
KYCServicesStructure:
Variable name
Type
Possible value (if applicable)
Description
Example
RequestIDV
bool
Set to true to request Identity Verification
TRUE
RequestDoc
bool
Set to true to request KYC Services
FALSE
RequestBio
bool
Set to true to request Biometric Authentication
TRUE
RequestAML
bool
Set to true to request AML screening
FALSE
RequestEDD
[]string
Specify the list of Enhanced Due Dilligence templates that are required from the KYC subject
["DocuSign", "XYZ"]
LinkedEntityStructure
Variable name
Type
Possible value (if applicable)
Description
Example
Relationship
string
Relationship to the LinkedEntity. Can be a Title, a Role, or anything else. This variable is optional
"CEO"
EntityID
string
EntityID of the LinkedEntity. This variable is required.
"9D847877-2175-4F52-9678-ABCDEFABCDEF"
PersonalInformationStructure:
Variable name
Type
Possible value (if applicable)
Description
Example
FirstName
string
First name of the KYC subject
"John"
MiddleName
string
Middle name of the KYC subject
"David"
LastName
string
Last name of the KYC subject
"Doe"
DateOfBirth
string(Date)
Date of birth (ISO8601 formatted)
"1969-12-31"
Phone
string
Phone phone of the KYC subject
"555-010-0123"
string
Must be valid email format
Email email of the KYC subject
"john.doe@gmail.com"
Address
string
Address address of the KYC subject
"777 Columbia St"
City
string
City city of the KYC subject
"New Westminster"
StateProvince
string
Only when country is Canada or US
State province of the KYC subject
"BC"
CountryCode
string
Only ISO3166
Country Code of the KYC subject (ISO3166)
"CAN"
PostalCode
string
Postal code of the KYC subject
"V3M 1B6"
LinkedEntities
[]LinkedEntityStructure
List of other Entity IDs that are linked with this Entity (such as corporations, employees, etc.)
[{"Relationship": "CEO", "EntityID":"9D847877-2175-4F52-9678-ABCDEFABCDEF"},{"Relationship": "Advisor", "EntityID":"9D847877-2175-4F52-9678-AAAAAAAAAAAA"}]
View more
IdentityVerificationStructure:
Variable name
Type
Possible value (if applicable)
Description
Example
IdentityVerification
bool
Set to true for Identity Verification
TRUE
IdentityStatus
string
New, Pending, Review, Escalated, Accepted, Rejected, Expired
Status of the Identity verification
"Pending"
IdentityIssues
[]string
Human-readible Issues present in the Identity Verification
["Expired ID"]
DataSources
string
Sources of the data
"Credit bureau"
NextReviewDate
string (Date)
Date when the Identity Verification should be reviewed again
"2022-09-25"
View more
Note: IdentityIssues, DataSources are only used by the server response, they are not accepted as a part of the client request.
CorporateInformationStructure:
Variable name
Type
Possible value (if applicable)
Description
Example
CompanyName
string
Name of the company
"Starbucks Coffee Company"
AlsoKnownAs
string
Other names used by the company
["Starbucks", "Starbucks Coffee"]
DoingBusinessAs
string
Name the company is doing business under
"Starbucks"
FormerlyKnownAs
[]string
Former names of the company
["Seattle's Starbucks"]
RegistrationNumber
string
Company's registration number
"1234-3456-980"
DateofIncorporation
string (Date)
Date of incorporation
"1971-03-30"
JurisdictionOfIncorporation
string
ISO-3166
Jurisdiction of incorporation
"US"
JurisdictionOfDomicile
string
ISO-3166
Jurisdiction of domicile
"US"
JurisdictionOfTaxResidence
string
ISO-3166
Jurisdiction of tax residence
"KY"
DUNS
String
Must be in DUNS format (characters, any other standardized features)
DUNS number
"150483782"
GLEI
string
Must be in GLEI format (characters, any other standardized features)
GLEI number
"5299009D9BIL4D4UHT93"
CompanyPhone
string
Company phone number
"555-010-0123"
string
Company email
"john.doe@starbucks.com"
PrimaryAddress
string
Address address of the company
"777 Columbia St"
City
string
City city of the company
"New Westminster"
StateProvince
string
Only for Canada or US in Country field
State province of the company
"BC"
Country
string
ISO 3166
Country Code of the company (ISO3166)
"CAN"
PostalCode
string
Postal code of the company
"V3M 1B6"
LinkedEntities
[]LinkedEntityStructure
Only Active Entity IDs from this instance.
List of other Entity IDs that are linked with this Entity (such as corporations, employees, etc.)
[{"Relationship": "CEO", "EntityID":"9D847877-2175-4F52-9678-ABCDEFABCDEF"},{"Relationship": "Advisor", "EntityID":"9D847877-2175-4F52-9678-AAAAAAAAAAAA"}]
PrimaryContactID
string
Entity ID of the primary contact
"9D847877-2175-4F52-9678-ABCDEFABCDEF"
PrimaryContactFirstName
string
Primary contact's first name
"John"
PrimaryContactLastName
string
Primary contact's last name
"Doe"
PrimaryContactTitle
string
Primary contact's title
"Sales Manager"
PrimaryContactPhone
string
Primary contact's phone number
"555-010-0123"
View more
CorporateVerificationStructure:
Variable name
Type
Possible value (if applicable)
Description
Example
LegalEntityVerification
bool
Set to true to perform legal entity verification
TRUE
VerificationStatus
string
New, Pending, Review, Escalated, Accepted, Rejected, Expired
Status of the verification
"Pending"
VerificationDate
string (Date)
Date of the verification
"2020-09-25"
VerificationSource
string
DUNS, GLEI, Manual Input
Source of the verification
"DUNS"
UniqueIdentifier
string
Unique identifier of the corporation
"Starbucks123"
BusinessStatement
string
Business statement of the corporation
"To establish Starbucks as the premier purveyor of the finest coffee in the world while maintaining our uncompromising principles while we grow."
NextReviewDate
string (Date)
Date when the Corporate Verification should be reviewed again
"2022-09-25"
VerificationIssues
[]string
Issues raised during the verification
["GLEI does not match"]
View more
Note: VerificationIssues is only used by the server response, it is not accepted as a part of the client request.
DocumentAuthenticationStructure:
Variable name
Type
Possible value (if applicable)
Description
Example
DocAuth
bool
Set to true to request Document Authentication
FALSE
DocAuthStatus
string
New, Pending, Review, Escalated, Accepted, Rejected, Expired
Status of the Document Authentication
"Review"
DocIssuer
string
Issuer of the Document
"Canada - BC"
DocType
string
Driver's License, Identity Card, Passport
Type of the Document
"Driver's License"
DocExpiryDate
string (Date)
Expiry date of the Document
"2022-09-25"
DocNumber
string
Document number
"D6101-40706-60905"
DocScanConfidence
int
Confidence of the Document scan
95
DataMatch
string
TRUE, FALSE, N/A
Does the submitted data match the data scanned from the Document
TRUE
TemplateMatch
string
TRUE, FALSE, N/A
Does the submitted data match the template
FALSE
DocIssues
[]string
List of issues raised during the Document processing
["resultcode.scan.last.name.does.not.match", "Last Name Does Not Match", "US ID Not Located"]
View more
Note: FaceMatchConfidence, DocScanConfidence, DataMatch, TemplateMatch, DocIssues are only used by the server response, they are not accepted as a part of the client request.
BiometricsStructure:
Variable name
Type
Possible value (if applicable)
Description
Example
BioAuth
bool
Set to true to request Biometric Authentication
TRUE
BioAuthStatus
string
New, Pending, Review, Escalated, Accepted, Rejected, Expired
Status of the Biometric Authentication
"Expired"
BioAuthType
string
Selfie Upload, Live Face Match
Type of Biometric Authentication
"Selfie Upload"
FaceMatchResult
bool
Result of the Biometric Authentication
FALSE
FaceMatchConfidence
int
Percentage confidence of the Biometric Authentication
95
BiometricDate
string (Date)
Date of the Biometric Authentication
"2020-09-25"
BiometricDuration
int
Duration of the Biometric Authentication in seconds (Zero for Selfie Upload)
180
LivenessResult
string
PASS, FAIL, N/A
Result of the Liveness Check
"PASS"
LivenessConfidence
int
Percentage confidence of the Liveness Check
95
BioIssues
[]string
List of issues raised during the Biometric Authentication processing
["Blurry image"]
View more
Note: FaceMatchConfidence, BiometricDuration, LivenessResult, LivenessConfidence, BioIssues are only used by the server response, they are not accepted as a part of the client request.
SupportingDocumentsStructure:
Variable name
Type
Possible value (if applicable)
Description
Example
SupportDocs
bool
Set to true for Supporting Documents
TRUE
DocsPending
[]string
List of Documents in the Pending Status
["123456789", "ABCDEF123"]
DocsReview
[]string
List of Documents in the Review Status
["123456789", "ABCDEF123"]
DocsAccepted
[]string
List of Documents in the Accepted Status
["123456789", "ABCDEF123"]
View more
Note: DocsPending, DocsReview, DocsAccepted are only used by the server response, they are not accepted as a part of the client request.
AMLScreeningStructure:
Variable name
Type
Possible value (if applicable)
Description
Example
AMLScreen
bool
Set to true for AML Screening
TRUE
AMLOngoing
bool
Whether ongoing AML Monitoring is enabled
FALSE
AMLSearchProfileID
string
Search Profile name
"Default"
AMLScreenDate
string (Date)
Last time the AML Screen has been performed
"2020-09-25"
AMLSearchTerm
AMLSearchTermStructure
Search terms to run in the AML Screening
{"name":"John Doe", "yearOfBirth": 1969, "countries":["US"]}
AMLSearchType
string
person, company, organisation, vessel, aircraft
Which AML Screens to perform
"person"
AMLSearchFuzziness
int
0 to 100
Fuzziness setting of the search (percentage). Default: 60
60
AMLSearchCoverage
[]string
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
Which areas should the Search cover
["sanction", "pep", "adverse-media-violent-crime"]
AMLPending
int
Number of Pending Results
3
AMLAccepted
int
Number of Accepted Results
2
AMLUnkown
int
Number of Unknown Results
5
Sanctions
int
Number of Sanction hits
6
PoliticalExposure
int
Number of PEP hits
3
AdverseMedia
int
Number of Adverse Media hits
1
LinkedEntityIds
[]string
List of related Entity IDs
["9D847877-2175-4F52-9678-ABCDEFABCDEF","9D847877-2175-4F52-9678-AAAAAAAAAAAA"]
NextAMLReview
string (Date)
Date when the AML should be reviewed again
"2022-09-25"
View more
Note: AMLPending, AMLAccepted, AMLUnkown, Sanctions, PoliticalExposure, AdverseMedia are only used by the server response, they are not accepted as a part of the client request.
AMLSearchTermStructure
Variable name
Type
Possible value (if applicable)
Description
Example
name
string
Name of the entity searched
"John Doe"
yearOfBirth
int
Year the natural person was born or the legal entity formed
1969
countries
[]string
List of applicable country codes
["US"]
View more
CounterFraudMeasuresStructure:
Variable name
Type
Possible value (if applicable)
Description
Example
ReCaptcha
string
PASS, FAIL, N/A
Whether ReCaptcha passed
"FAIL"
UserConsent
string
Pending, Accepted, Expired
Whether the user has given consent
"Accepted"
IPAddress
string
IP Address captured during the process
"172.16.254.1"
IPAddressCountry
string
Country code assiciated with that IP Address
"CA"
View more
Note: ReCaptcha, IPAddress, IPAddressCountry are only used by the server response, they are not accepted as a part of the client request.
NaturalPersonStructure:
Variable name
Type
KYCMetaData
KYCMetaDataStructure
PersonalInformation
PersonalInformationStructure
IdentityVerification
IdentityVerificationStructure
DocumentAuthentication
DocumentAuthenticationStructure
Biometrics
BiometricsStructure
SupportingDocuments
SupportingDocumentsStructure
AMLScreening
AMLScreeningStructure
CounterFraudMeasures
CounterFraudMeasuresStructure
LegalEntityStructure:
Variable name
Type
KYCMetaData
KYCMetaDataStructure
CorporateInformation
CorporateInformationStructure
CorporateVerification
CorporateVerificationStructure
SupportingDocuments
SupportingDocumentsStructure
AMLScreening
AMLScreeningStructure
CounterFraudMeasures
CounterFraudMeasuresStructure
AMLScreeningStructure:
Variable name
Type
Possible value (if applicable)
Description
Example
AMLScreen
bool
Set to true for AML Screening
TRUE
AMLOngoing
bool
Whether ongoing AML Monitoring is enabled
FALSE
AMLSearchProfileID
string
Search Profile name
"Default"
LinkedEntities
[]LinkedEntityStructure
List of related Entity IDs
[{"Relationship": "CEO", "EntityID":"9D847877-2175-4F52-9678-ABCDEFABCDEF"},{"Relationship": "Advisor", "EntityID":"9D847877-2175-4F52-9678-AAAAAAAAAAAA"}]
AMLScreenDate
string (Date)
Last time the AML Screen has been performed
"2020-09-25"
AMLSearchTerm
AMLSearchTermStructure
Search terms to run in the AML Screening
{"name":"John Doe", "yearOfBirth": 1969, "countries":["US"]}
AMLSearchType
string
person, company, organisation, vessel, aircraft
Which AML Screens to perform
"person"
AMLSearchFuzziness
int
Fuzziness setting of the search (percentage)
55
AMLSearchCoverage
[]string
Sanctions, PEP, Adverse Media
Which areas should the Search cover
["Sanctions", "PEP", "Adverse Media"]
AMLPending
Int
Number of Pending Results
3
AMLAccepted
int
Number of Accepted Results
2
AMLUnkown
int
Number of Unknown Results
5
Sanctions
int
Number of Sanction hits
6
PoliticalExposure
int
Number of PEP hits
3
AdverseMedia
int
Number of Adverse Media hits
1
NextAMLReview
string (Date)
Date when the AML should be reviewed again
"2022-09-25"
View more
Note: AMLScreenDate, AMLPending, AMLAccepted, AMLUnkown, Sanctions, PoliticalExposure, AdverseMedia are only used by the server response, they are not accepted as a part of the client request.
IDStructure:
Variable name
Type
Description
Example
id
string
EntityID of the given entity
Last updated