Earlier in our docs is an overview of our Know Your Business [here](https://developer.incode.com/docs/ekyb). Now, this page is focused specifically on eKYB in Malta (MT). eKYB in MT leverages Malta's source of truth to validate the legitimacy of businesses, including their registration number (MBR number), business name, business address, along with UBOs and directors.

# Integration

## User input flow

## Model 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](https://developer.incode.com/reference/introduction).

### [KYB request](https://developer.incode.com/reference/externalverificationekyb)

**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. Malta Business Registry (MBR) registration number. Accepted formats: `C` followed by digits (e.g. `C12345`), or `MT` \+ 8 digits (VAT format, e.g. `MT12345678` — the `MT` prefix is stripped automatically before processing).
- **country**: (mandatory) String. Two-letter Alpha-2 country code. Must be `MT`.
- **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. Maltese postal code in format: 3 letters + 4 digits (e.g. `VLT1234`).
- **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 MT**
>
> - Format: `C` followed by digits (e.g. `C12345`) for limited liability companies
> - VAT number format: `MT` \+ 8 digits (e.g. `MT12345678`)
> - Pass the registration number as `regNo`; strip `MT` prefix from VAT number if used instead
> - Maltese postcodes: 3 letters + 4 digits (e.g. `VLT1234`)

### JSON

```json
{
    "plugins": ["ekyb"],
    "country": "MT",
    "taxId": "C12345",
    "businessName": "EXAMPLE MALTA LIMITED",
    "street": "TRIQ IL-MERKANTI",
    "houseNo": "5",
    "addressLine2": "",
    "city": "VALLETTA",
    "state": "",
    "postalCode": "VLT1234",
    "uboNames": ["JOHN DOE", "SARAH SMITH"],
    "directors": ["JOHN BORG"]
}
```

### 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.

### JSON

```json
"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": "Private Limited Liability Company"
      }
    },
    {
      "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": "John Borg"
    },
    {
      "key": "directors_name_match",
      "sub_label": "Unverified",
      "directorsName_input": "Sarah Schrader"
    }
]
```

| Incode API Key | Status | Definition |
| --- | --- | --- |
| name | Verified, Approximate Match, Unverified | Submitted business name is verified, approximate match, or unverified against the business name associated with the business Tax ID in the source of truth. |
| tin | Verified, Unverified | Submitted Tax ID (MBR registration number) is found or not found in the source of truth. |
| address_verification | Verified, Approximate Match, Unverified | Submitted address is verified, approximate match, or unverified against the address associated with the business Tax ID in the source of truth. |
| cityMatch | Verified, Approximate Match, Unverified | Submitted city is verified, approximate match, or unverified against the city associated with the business taxID in the source of truth. |
| postalCodeMatch | Verified, Unverified | Submitted postal code is verified or unverified against the postal code associated with the business taxID in the source of truth. Format: 3 letters + 4 digits (e.g. `VLT1234`). |
| registrationStatus | Active, Inactive, Unknown | Active: 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. |
| entityType | Legal entity type of the business | Displays the legal entity type of the company, if available, from the source of truth (e.g. Private Limited Liability Company, Private Limited Company). If not available, "Unknown" is displayed. |
| ubo_name_match | Verified, Approximate Match, Unverified | Submitted 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_match | Verified, Approximate Match, Unverified | Submitted 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](https://developer.incode.com/reference/introduction#api-responses) 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:

Custom 400 error message if country is missing or empty:

## Single Session Dashboard Results

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

Updated19 days ago

* * *

Did this page help you?

Yes

No

Copy Page
