Earlier in our docs is an overview of our Know Your Business here. Now, this page is focused specifically on eKYB in Denmark (DK). eKYB in DK leverages Denmark's source of truth to validate the legitimacy of businesses, including their taxID (CVR number), business name, business address, along with UBOs and directors.

Integration

User input flow



Module Configuration

Module configuration gives various options to specify different KYB criteria you would like to check (eg. Business name, Business Address, and Business taxID).

Direct API Approach

All module configurations and user data can be forwarded directly in the request for performing a KYB search. This will override existing configuration and data collected about the user.

📘

API Authentication

All endpoints require authentication headers to be specified as stated in Incode API Documentation

POST /omni/externalVerification/ekyb

This endpoint performs a KYB check for the business specified. Note: Endpoint can have empty body and in that case information will be pulled from module configuration and session details.

  • plugins: must be ["ekyb"]: (mandatory)
  • taxId: (mandatory) String. Danish CVR number. Accepted formats: 8 digits (e.g. 12345678) or DK prefix + 8 digits (e.g. DK12345678). The DK prefix is stripped automatically before processing.
  • country: (mandatory) String. Two letter Alpha-2 country code. Must be DK.
  • businessName: (optional) String. Registered name of the business.
  • street: (optional) String. Street name of the business.
  • houseNo: (optional) String. Building or house number on the street.
  • addressLine2: (optional) String. Additional address information.
  • city: (optional) String. City of the business address.
  • state: (optional) String. State or region of the business address.
  • postalCode: (optional) String. 4-digit Danish postal code (e.g. 1050).
  • uboNames: (optional) Array of strings. Full legal name(s) of Ultimate Beneficial Owners to check against list of legal business associations.
  • directors: (optional) Array of strings. Full legal name(s) of directors to check against list of legal business associations.

Note: The country parameter is used to limit business validation to that specific region. We will only validate a business established in the country selected in the eKYB request.

✍️

Business Tax IDs Supported in DK

  • CVR number: exactly 8 digits (e.g. 12345678)
  • VAT number: DK prefix + 8 digits (e.g. DK12345678) — the DK prefix is stripped automatically
{
    "plugins": ["ekyb"],     
    "country": "DK", // mandatory                        
    "taxId": "12345678", // CVR number (8 digits) — mandatory                   
    "businessName": "EXAMPLE DENMARK A/S", 
    "street": "STRØGET",                  
    "houseNo": "10",                        
    "addressLine2": "",                     
    "city": "COPENHAGEN",                  
    "state": "",                           
    "postalCode": "1050",                 
    "uboNames": ["JOHN DOE", "SARAH SMITH"],
    "directors": ["LARS NIELSEN"]          
}

Response

All module configurations and user data can be forwarded directly in the request for performing an eKYB search. This will override existing configuration and data collected about the user.

📘

API Authentication

All endpoints require authentication headers to be specified as stated in Incode API Documentation

kyb": [
    { "key": "name",                 "sub_label": "Verified" },
    { "key": "tin",                  "sub_label": "Verified" },
    { "key": "address_verification", "sub_label": "Approximate Match" },
    { "key": "cityMatch",            "sub_label": "Verified" },
    { "key": "postalCodeMatch",      "sub_label": "Verified" },
    { "key": "registrationStatus",   "sub_label": "Active" },
    {
      "key": "entityType",
      "entityType": {
        "entityType": "Public Limited Company (A/S)"
      }
    },
    {
      "key": "ubo_name_match",
      "sub_label": "Verified",
      "uboName_input": "John Doe"
    },
    {
      "key": "ubo_name_match",
      "sub_label": "Unverified",
      "uboName_input": "Sarah Smith"
    },
    {
      "key": "directors_name_match",
      "sub_label": "Verified",
      "directorsName_input": "Andrew Martin"
    },
    {
      "key": "directors_name_match",
      "sub_label": "Unverified",
      "directorsName_input": "Sarah Schrader"
    }
]
Incode API KeyStatusDefinition
nameVerified, Approximate Match, UnverifiedSubmitted business name is verified, approximate match, or unverified against the business name associated with the business Tax ID in the source of truth.
tinVerified, UnverifiedSubmitted Tax ID (CVR number) is found or not found in the source of truth.
address_verificationVerified, Approximate Match, UnverifiedSubmitted address is verified, approximate match, or unverified against the address associated with the business Tax ID in the source of truth.
cityMatchVerified, Approximate Match, UnverifiedSubmitted city is verified, approximate match, or unverified against the city associated with the business taxID in the source of truth.
postalCodeMatchVerified, UnverifiedSubmitted postal code is verified or unverified against the postal code associated with the business taxID in the source of truth. Always 4 digits for Denmark.
registrationStatusActive, Inactive, UnknownActive: the registration status of the business is active. Inactive: the registration status of the business is suspended, inactive, or the business no longer exists. Unknown: the registration status is not available.
entityTypeLegal entity type of the businessDisplays the legal entity type of the company, if available, from the source of truth (e.g. Public Limited Company (A/S), Limited company). If not available, "Unknown" is displayed.
ubo_name_matchVerified, Approximate Match, UnverifiedSubmitted UBO name is matched against UBOs associated with the business Tax ID in the source of truth. One entry is returned per submitted UBO name, distinguishable via uboName_input.
directors_name_matchVerified, Approximate Match, UnverifiedSubmitted director name is matched against directors associated with the business Tax ID in the source of truth. One entry is returned per submitted director name, distinguishable via directorsName_input.

Learning more about Approximate Match: Approximate Match is generated through Incode's proprietary fuzzy matching algorithm. If approximate match is returned, the algorithm has identified a similar match with the string submitted in relation to the string stored in the source of truth for a particular field. Approximate Match is returned when exact matches are not possible due to misspellings, typographical errors, or slight variations in input data.

KYB error responses

Please refer to error response to see conventional HTTP response codes to indicate the success or failure of an API request.

Custom 400 error messages if taxId is missing or invalid:

message: BadRequestException: Invalid taxId.

Single Session Dashboard Results

They are available on Single Session view under the Business tab.

Single Session Dashboard Results