# Concedus using Reliance

Concedus, as a regulated financial institution, may also operate in conjunction with Reliance for specific onboarding and compliance processes.

This chapter applies only if **Reliance is enabled**. In this case, the content of this chapter replaces the standard article “[Send Customer Record](/import-process/send-data-sets/send-customer-record.md)” in its entirety.<br>

**Reliance** introduces additional regulatory and compliance requirements. Therefore, when using Reliance, further customer-related data must be provided, and the request/response structures differ in certain aspects from the standard process. This article outlines all required extensions and adjustments.

<figure><img src="/files/pLJw3VTI5byAQ5wTD855" alt=""><figcaption></figcaption></figure>

### Key Differences with Reliance

1. Extended Data Requirements
   * Reliance mandates additional information fields (e.g., AML-relevant data, extended identification attributes, professional client classification).
   * These fields are described in detail in the subsequent sections of this chapter.
2. Data Validation Rules
   * Validation is stricter under Reliance due to the regulated nature of Concedus.
   * Mandatory fields and structural constraints must be adhered to exactly as documented.
3. API Behavior
   * Endpoints remain structurally identical (/v1/customers etc.), but the payload schema is extended.
   * Clients must ensure they send the Reliance-compliant payload if Concedus is configured to operate in Reliance mode.

### **API Method**

{% hint style="warning" %}
Customers and companies are imported with the same endpoint.

To distinguish these two types of records, set the field `customers.person.type` as follows:

* "0" = customer (natural person)

{% endhint %}

## Import customer as individual

<mark style="color:green;">`POST`</mark> `https://demo2.api.concedus.com/v2/compliance/contacts`

#### Headers

<table><thead><tr><th>Name</th><th width="264">Type</th><th>Description</th></tr></thead><tbody><tr><td>Content-Type<mark style="color:red;">*</mark></td><td>String</td><td>application/json or application/zip</td></tr><tr><td>Authorization<mark style="color:red;">*</mark></td><td>String</td><td>Bearer <code>token</code></td></tr></tbody></table>

#### Request Body

| Name                                        | Type | Description                            |
| ------------------------------------------- | ---- | -------------------------------------- |
| customers<mark style="color:red;">\*</mark> | json | See: [JSON structure](#json-structure) |

{% tabs %}
{% tab title="200: OK No ident required" %}

```javascript
{
  "identLinks": []
}
```

{% endtab %}

{% tab title="400: Bad Request " %}

```javascript
{
  "code": "400",
  "info": "Error progressing File",
  "reason": "<individual Error description>"
}
```

{% endtab %}

{% tab title="401: Unauthorized " %}

```javascript
{
  "code": "401",
  "info": "Unauthorized",
  "reason": "Bearer not verified"
}
```

{% endtab %}
{% endtabs %}

## Data Format

* **ZIP** must be sent as attachments are to be transferred as well.

The customer JSON must be placed together with all referenced attachments inside a ZIP archive.

This ZIP file is then sent as a binary payload via POST (REST) to the designated endpoint.

* The JSON file should be named main.json inside the archive.
* Every file listed under the events\[].file property must also be included in the ZIP.
* No additional files are allowed in the ZIP; only files explicitly referenced in the events array may be present.
* The Content-Type header must be set to application/zip.

<br>

This ensures that the payload is self-contained, auditable, and consistent between the metadata (main.json) and the actual attached documents.

### JSON structure

<details>

<summary>Customer example</summary>

```json
{
    "customers": [
        {
            "person": {
                "type": 0,
                "precheckPep": "False",
                "salutation": "Frau",
                "foreName": "Felizitas",
                "surName": "X-MANUALTEST-HAPPYPATH",
                "street": "Miesgasse 183",
                "zip": "79357",
                "city": "Burg",
                "country": "DE",
                "birthDate": "1997-08-09",
                "birthPlace": "Hechingen",
                "birthCountry": "DE",
                "nationality": "DE",
                "furtherNationalities": [
                    "CO"
                ],
                "email": "demo@gmail.com",
                "mobile": "+495965946717769",
                "bankAccounts": [
                    {
                        "accountHolder": "Birnbaum, Felizitas",
                        "bic": "MZKIDEK9",
                        "iban": "DE29042430564723219727",
                        "bank": "Landesbank Baden-Württemberg",
                        "country": "DE",
                        "currency": "EUR",
                        "sharedAccount": false,
                        "key": "BA_4b5bfc78-8c25-4463-91ac-1bcf1c209b78",
                        "modified": "2023-03-27T16:19:50"
                    }
                ],
                "idDocument": {
                    "docType": "PASSPORT",
                    "issueCountry": "DE",
                    "documentNumber": "C12345678",
                    "additionalNumber": "X987654",
                    "issueDate": "2020-05-01",
                    "expireDate": "2030-05-01"
                },
                "verification": {
                    "verificationMethod": "VIDEO",
                    "approveTime": "2025-08-12T12:00:00Z",
                    "updateTime": "2025-08-12T12:00:00Z",
                    "vendor": "IDNOW"
                },
                "compliance": {
                    "pep": false,
                    "pepChecked": "2025-08-12T10:30:00Z",
                    "pepHit": null,
                    "pepListNames": [],
                    "sanction": false,
                    "sanctionChecked": "2025-08-12T10:30:00Z",
                    "sanctionHit": null,
                    "sanctionListNames": []
                },
                "events": [
                    {
                        "date": "2025-03-23",
                        "subject": "Identification",
                        "category": "KYC",
                        "file": "vendorPDF-customer1234.pdf",
                        "key": "ATT_c1bb8442-9609-42d5-8a85-75f8ec68886d",
                        "modified": "2025-03-27T16:25:01"
                    }
                ],
                "professional": {
                    "isProfessional": true,
                    "classification": {
                        "company_based": {
                            "regulated": {
                                "CO-1A": false,
                                "CO-1B": false,
                                "CO-1C": false,
                                "CO-1D": false,
                                "CO-1E": false,
                                "CO-1F": false,
                                "CO-1G": false
                            },
                            "unregulated_with_criteria": {
                                "CO-2A": false,
                                "CO-2B": false,
                                "CO-2C": false
                            }
                        },
                        "private_client": {
                            "PC-1A": false,
                            "PC-1B": false,
                            "PC-1C": false
                        }
                    },
                    "declarations": {
                        "confirmationCorrectInfo": true,
                        "agreeToClassification": true
                    },
                    "signature": {
                        "place": "Berlin",
                        "date": "2025-08-12",
                        "signatureField": "2025-08-12T12:00:00Z"
                    },
                    "meta": {
                        "formVersion": "v1"
                    }
                },
                "customFields": [
                    {
                        "name": "KYC",
                        "value": "IDNOW-RELIANCE"
                    }
                ],
                "key": "PERS_1d22660d-9132-4471-9217-1fe5aad15658",
                "modified": "2023-03-27T16:19:50"
            },
            "investmentSurveys": [
                {
                    "investmentExperience": [
                        {
                            "type": 0,
                            "knowledge": true
                        },
                        {
                            "type": 3,
                            "knowledge": false
                        },
                        {
                            "type": 4,
                            "knowledge": false
                        },
                        {
                            "type": 5,
                            "knowledge": true
                        },
                        {
                            "type": 8,
                            "knowledge": true
                        },
                        {
                            "type": 10,
                            "knowledge": false
                        }
                    ],
                    "investorExperience": [
                        {
                            "name": "AE1",
                            "value": "2"
                        },
                        {
                            "name": "AE2",
                            "value": "1"
                        },
                        {
                            "name": "AE5",
                            "value": "1"
                        },
                        {
                            "name": "AE7",
                            "value": "2"
                        },
                        {
                            "name": "AE8",
                            "value": "2"
                        },
                        {
                            "name": "AE6",
                            "value": "1"
                        },
                        {
                            "name": "AE4",
                            "value": "2"
                        },
                        {
                            "name": "AE3",
                            "value": "4"
                        }
                    ],
                    "customFields": [
                        {
                            "name": "ForceMissedKnowledge",
                            "value": "true"
                        }
                    ],
                    "key": "INVST_1becc833-f89c-4000-9735-0a13b1d34ce1",
                    "modified": "2023-03-27T16:19:50"
                }
            ],
            "events": [
            ],
            "key": "CUSTO_ddcde884-ec8a-4a0b-83e3-342c5041c69b",
            "modified": "2023-03-27T16:19:50"
        }
    ]
}
```

</details>

#### Structure of data

#### Person

KYC-relevant fields are indicated in <mark style="color:red;">red</mark>

<table><thead><tr><th>Field</th><th>Type</th><th width="150.52734375">Required</th><th>Description</th><th data-hidden></th><th data-hidden></th><th data-hidden data-type="checkbox"></th><th data-hidden><select></select></th><th data-hidden data-type="checkbox"></th><th data-hidden data-type="number"></th><th data-hidden data-type="users" data-multiple></th></tr></thead><tbody><tr><td><code>type</code></td><td>number</td><td>required</td><td>0 (customer)</td><td><code>type</code></td><td>integer, required</td><td>false</td><td></td><td>false</td><td>null</td><td></td></tr><tr><td><code>precheckPep</code></td><td>string (True/False)</td><td>required</td><td>Early flag indicating potential PEP hit (client-side precheck).</td><td></td><td></td><td>false</td><td></td><td>false</td><td>null</td><td></td></tr><tr><td><code>salutation</code></td><td>string</td><td>optional</td><td><p>Mr. = "Herr" </p><p>Mrs. = "Frau"</p></td><td></td><td></td><td>false</td><td></td><td>false</td><td>null</td><td></td></tr><tr><td><code>title</code></td><td>string</td><td>optional</td><td>Title like "Dr." , "Prof." or "Prof. Dr."<br></td><td></td><td></td><td>false</td><td></td><td>false</td><td>null</td><td></td></tr><tr><td><mark style="color:red;"><code>foreName</code></mark></td><td>string</td><td>required</td><td>All forenames of customer</td><td></td><td></td><td>false</td><td></td><td>false</td><td>null</td><td></td></tr><tr><td><mark style="color:red;"><code>surName</code></mark></td><td>string</td><td>required</td><td>Surname of customer</td><td>always 0</td><td></td><td>false</td><td></td><td>false</td><td>null</td><td></td></tr><tr><td><mark style="color:red;"><code>street</code></mark></td><td>string</td><td>required</td><td>Street name and number</td><td></td><td></td><td>false</td><td></td><td>false</td><td>null</td><td></td></tr><tr><td><mark style="color:red;"><code>zip</code></mark></td><td>string</td><td>required</td><td>Postal code</td><td></td><td></td><td>false</td><td></td><td>false</td><td>null</td><td></td></tr><tr><td><mark style="color:red;"><code>city</code></mark></td><td>string</td><td>required</td><td>City</td><td></td><td></td><td>false</td><td></td><td>false</td><td>null</td><td></td></tr><tr><td><mark style="color:red;"><code>country</code></mark></td><td>enum (ISO 3166-1 alpha-2)</td><td>required</td><td>Country code <a href="https://de.wikipedia.org/wiki/ISO-3166-1-Kodierliste"><strong>ISO 3166</strong></a> <strong>AL2</strong></td><td></td><td></td><td>false</td><td></td><td>false</td><td>null</td><td></td></tr><tr><td><mark style="color:red;"><code>birthDate</code></mark></td><td>ISO 8601 timestamp</td><td>required</td><td>Birthdate (18+)</td><td></td><td></td><td>false</td><td></td><td>false</td><td>null</td><td></td></tr><tr><td><mark style="color:red;"><code>birthPlace</code></mark></td><td>string</td><td>required</td><td>Birthplace</td><td></td><td></td><td>false</td><td></td><td>false</td><td>null</td><td></td></tr><tr><td><mark style="color:red;"><code>birthCountry</code></mark></td><td>string</td><td>optional</td><td>Birth country code</td><td></td><td></td><td>false</td><td></td><td>false</td><td>null</td><td></td></tr><tr><td><mark style="color:red;"><code>nationality</code></mark></td><td>string</td><td>required</td><td>Nationality (country code) eg. DE,EN,FR..</td><td></td><td></td><td>false</td><td></td><td>false</td><td>null</td><td></td></tr><tr><td><code>furtherNationalities</code></td><td>array[string]</td><td>optional</td><td>List of further Nationalities (country code)</td><td></td><td></td><td>false</td><td></td><td>false</td><td>null</td><td></td></tr><tr><td><code>phonePriv</code></td><td>array[string]</td><td>optional</td><td>List of private phone numbers</td><td></td><td></td><td>false</td><td></td><td>false</td><td>null</td><td></td></tr><tr><td><code>email</code></td><td>string</td><td>optional</td><td>Business e-mail address</td><td></td><td></td><td>false</td><td></td><td>false</td><td>null</td><td></td></tr><tr><td><code>mobile</code></td><td>string</td><td>optional</td><td>Mobile phone number</td><td></td><td></td><td>false</td><td></td><td>false</td><td>null</td><td></td></tr><tr><td><code>bankAccounts</code></td><td>object</td><td>depends on legal requirement / business case</td><td>See: <a href="#bankaccounts">Bank Accounts</a></td><td></td><td></td><td>false</td><td></td><td>false</td><td>null</td><td></td></tr><tr><td><code>customFields[].name</code></td><td>string</td><td>required</td><td>"KYC" (to define the KYC Provider behind Reliance)</td><td></td><td></td><td>false</td><td></td><td>false</td><td>null</td><td></td></tr><tr><td><code>customFields[].value</code></td><td>string</td><td>required</td><td>Chosen KYC Provider (see: <a href="/pages/9RhJ6t3xr3p5w4GfQbwk#kyc">KYC-List</a>) with <code>-RELIANCE</code> after</td><td></td><td></td><td>false</td><td></td><td>false</td><td>null</td><td></td></tr><tr><td><code>key</code></td><td>string</td><td>required</td><td>See: <a href="/pages/qktxyt71bzyZpbexMTmZ#key">Key</a></td><td></td><td></td><td>false</td><td></td><td>false</td><td>null</td><td></td></tr><tr><td><code>modified</code></td><td>string</td><td>required</td><td>See: <a href="/pages/qktxyt71bzyZpbexMTmZ#modified">Modified</a></td><td></td><td></td><td>false</td><td></td><td>false</td><td>null</td><td></td></tr></tbody></table>

#### ID Document

The idDocument section contains all relevant identification document details, such as type, issuing country, document number, and validity dates.

It ensures that the provided customer identity can be verified against official sources and is mandatory for KYC compliance.

| Field            | Type                      | Requirement           | Description                                 |
| ---------------- | ------------------------- | --------------------- | ------------------------------------------- |
| .docType         | enum (PASSPORT,IDCARD)    | required              | Document type (e.g., PASSPORT) used for KYC |
| issueCountry     | enum (ISO 3166-1 alpha-2) | required              | Document issuing country.                   |
| documentNumber   | string                    | required              | Document number (passport/ID).              |
| additionalNumber | string                    | required if available | Additional document number (if any).        |
| issueDate        | ISO 8601 timestamp        | required              | Issue date                                  |
| expireDate       | ISO 8601 timestamp        | required              | Expiry date                                 |

**Verification**

The verification section records the method, vendor, and timestamps of the performed identity verification (e.g., VideoIdent via Sumsub).

It provides an audit trail showing when and how the identity was confirmed by an external KYC provider.

| Field              | Type                         | Requirement | Descriptio                           |
| ------------------ | ---------------------------- | ----------- | ------------------------------------ |
| verificationMethod | enum(VIDEO,QES,BANK)         | required    | Verification method (VIDEO/…).       |
| approveTime        | ISO 8601 timestamp           | required    | Time when verification was approved. |
| updateTime         | ISO 8601 timestamp           | required    | Last update of verification status.  |
| vendor             | enum(SUMSUB,IDNOW,WEBID,...) | required    | KYC provider (e.g., SUMSUB/IDNOW).   |

#### Compliance

The compliance section contains the results of PEP and sanctions screenings, including timestamps, hits, and source lists.

This ensures that every customer is checked against relevant regulatory databases and that any potential risk is documented.

| Field             | Type               | Requirement | Description                                           |
| ----------------- | ------------------ | ----------- | ----------------------------------------------------- |
| pep               | boolean            | required    | PEP status (politically exposed person)               |
| pepChecked        | ISO 8601 timestamp | required    | Time of PEP check                                     |
| pepHit            | string / null      | if match    | Reason or list for PEP hit                            |
| pepListNames      | array              | if match    | List(s), in which the customer is listed as PEP       |
| sanction          | boolean            | required    | Sanction list hit (yes/no)                            |
| sanctionChecked   | ISO 8601 timestamp | required    | Time of sanction list check                           |
| sanctionHit       | string / null      | if match    | Reason or list for sanction hit                       |
| sanctionListNames | array              | if match    | List(s) in which the customer is listed as sanctioned |

#### Professional Client Classification

The professional section defines whether a customer is treated as a professional client under MiFID II/WpHG.

It includes criteria for regulated/unregulated companies, private opt-up clients, as well as declarations and a formal signature confirming classification.

If professional is **true**, all fields are required to be filled

| Field                                                                 | Type                  | Requirement | Description                                         |
| --------------------------------------------------------------------- | --------------------- | ----------- | --------------------------------------------------- |
| isProfessional                                                        | boolean               | required    | Flag whether customer is classified as professional |
| classification.company\_based.regulated.CO-1A…CO-1G                   | boolean               |             | Flags for regulated company types                   |
| classification.company\_based.unregulated\_with\_criteria.CO-2A…CO-2C | boolean               |             | Flags for unregulated companies with criteria       |
| classification.private\_client.PC-1A…PC-1C                            | boolean               |             | Flags for private customers with criteria           |
| declarations.confirmationCorrectInfo                                  | boolean               |             | Confirmation that the information is correct        |
| declarations.agreeToClassification                                    | boolean               |             | Consent to classification                           |
| signature.place                                                       | string                |             | Place of signature                                  |
| signature.date                                                        | ISO date (YYYY-MM-DD) |             | Date of signature                                   |
| signature.signatureField                                              | ISO 8601 timestamp    |             | Signature time                                      |
| meta.formVersion                                                      | string                |             | Version of the classification form                  |

#### Custom Fields

Provides flexible key/value pairs to attach integration-specific metadata (e.g., which KYC provider was used). This allows customization without changing the core schema.

#### Investment Surveys

{% hint style="info" %}
Please see [Investment Surveys](/import-process/send-data-sets/investment-surveys.md) for more information

Concedus will update the investment survey (MIFID) questions very soon
{% endhint %}

| Field                            | Type  | Requirement | Description |
| -------------------------------- | ----- | ----------- | ----------- |
| standard\_questionnaire.question | Array | required    |             |

#### Events / Files / Attachements

The events array allows platforms to transmit documents and attachments as part of the customer import.

This is typically used for KYC proof documents, such as subscription forms, declarations, or signed agreements.

Each entry in events represents a single file reference, enriched with metadata for auditability.

| Field    | Type   | Requirement | Description                                                                       |
| -------- | ------ | ----------- | --------------------------------------------------------------------------------- |
| date     | string | required    | DateTime, when the file was created                                               |
| subject  | string | required    |                                                                                   |
| category | string | required    | default: "Legitimation"                                                           |
| file     | string | required    |                                                                                   |
| key      | string | required    | See: [Key](https://docs.concedus.com/import-process/send-data-sets#key)           |
| modified | string | required    | See: [Modified](https://docs.concedus.com/import-process/send-data-sets#modified) |

#### Bank Accounts

| Field           | Type   | Requirement        | Description                                                 |
| --------------- | ------ | ------------------ | ----------------------------------------------------------- |
| `accountHolder` | string | depends on usecase | Surname, Forename                                           |
| `bic`           | string | depends on usecase | Bank identifier code                                        |
| `iban`          | string | depends on usecase | International bank account number                           |
| `bank`          | string | depends on usecase | Name of the bank                                            |
| `country`       | string | depends on usecase | Country code                                                |
| `currency`      | string | depends on usecase | Currency code                                               |
| `key`           | string | depends on usecase | See: [Key](/import-process/send-data-sets.md#key)           |
| `modified`      | string | depends on usecase | See: [Modified](/import-process/send-data-sets.md#modified) |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.concedus.com/reliance/concedus-using-reliance.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
