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"

Email

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"

Email

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