> For the complete documentation index, see [llms.txt](https://docs.concedus.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.concedus.com/import-process/get-compliance-records.md).

# Get Compliance Records

## Compliance Records

Compliance records are sent automatically to an endpoint via POST that you have communicated in advance. Such a compliance record is triggered with each investment or customer import after its verification. This takes some minutes.

The purpose of the compliance record is to tell whether an investment can be released, a customer has been rejected and why - or that everything has been successfully created and confirmed.

Please note that the compliance records need to be received from your Backend. You would then be able to update your user records or contracts and trigger actions matching to your own requirements and push the updated status to your end customers the way you prefer.

## Get Compliance Records

Compliance records can be received via an endpoint or a WebSocket. Choose the option that you prefer.

### Endpoint

You can use the following endpoints to retrieve a compliance record. This is useful to check the processing status of a previously sent import.&#x20;

You can either use the Concedus-Key or the Customer-/Contract-Key to request a compliance record.

## Get Compliance by Concedus Key

<mark style="color:blue;">`GET`</mark> `https://demo2.api.concedus.com/v2/compliance/export/<cs-key>`

#### Path Parameters

| Name                                     | Type   | Description |
| ---------------------------------------- | ------ | ----------- |
| cs-key<mark style="color:red;">\*</mark> | String |             |

#### Headers

| Name                                            | Type   | Description    |
| ----------------------------------------------- | ------ | -------------- |
| Authorization<mark style="color:red;">\*</mark> | String | Bearer `token` |

{% tabs %}
{% tab title="200: OK " %}

```javascript
[
  {
    "key": "Concedus+Q0000048D+14",
    "modified": "2021-08-27T11:11:04",
    "customerkey": "",
    "status": 100
  }
]
```

{% endtab %}

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

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

{% endtab %}

{% tab title="404: Not Found " %}

```javascript
{
  "code": "404",
  "info": "Not found",
  "reason": "Compliance key not found or Compliance record not created"
}
```

{% endtab %}
{% endtabs %}

## Get Compliance by Customer Key&#x20;

<mark style="color:blue;">`GET`</mark> `https://demo2.api.concedus.com/v2/compliance/status/customers/<customer-key>`

#### Path Parameters

| Name                                           | Type   | Description |
| ---------------------------------------------- | ------ | ----------- |
| customer-key<mark style="color:red;">\*</mark> | String |             |

#### Headers

| Name                                            | Type   | Description    |
| ----------------------------------------------- | ------ | -------------- |
| Authorization<mark style="color:red;">\*</mark> | String | Bearer `token` |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
  "status": 100,
  "key": "Concedus+Q000020AA+14",
  "modified": "2022-08-03T11:17:28+0200",
  "customerKey": "CUSTOMER3FBC1B65-1A00-C6F1-E1B4-7E620F604A32"
}
```

{% endtab %}

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

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

{% endtab %}

{% tab title="404: Not Found " %}

```javascript
{
  "code": "404",
  "info": "Not found",
  "reason": "Compliance key not found or Compliance record not created"
}
```

{% endtab %}
{% endtabs %}

## Get Compliance by Contract Key&#x20;

<mark style="color:blue;">`GET`</mark> `https://demo2.api.concedus.com/v2/compliance/status/contracts/<contract-key>`

#### Path Parameters

| Name                                           | Type   | Description |
| ---------------------------------------------- | ------ | ----------- |
| contract-key<mark style="color:red;">\*</mark> | String |             |

#### Headers

| Name                                            | Type   | Description    |
| ----------------------------------------------- | ------ | -------------- |
| Authorization<mark style="color:red;">\*</mark> | String | Bearer `token` |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
  "status": 100,
  "key": "Concedus+Q000020AB+14",
  "modified": "2022-08-03T11:00:19+0200",
  "contractKey": "3FBC1B65-1A00-C6F1-E1B4-7E620F604A322022-07-06T06:59:18Z"
}
```

{% endtab %}

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

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

{% endtab %}

{% tab title="404: Not Found " %}

```javascript
{
  "code": "404",
  "info": "Not found",
  "reason": "Compliance key not found or Compliance record not created"
}
```

{% endtab %}
{% endtabs %}

### WebSocket

You can connect to a WebSocket to receive all status updates during the import process including the compliance record.&#x20;

*Read more about how to use WebSockets* [*here*](/import-process/webhooks-callbacks/websockets.md)

## Data Format

A compliance record is sent in JSON format. This is a list of the data that is contained:

<table><thead><tr><th>Property</th><th>Description</th><th data-hidden></th></tr></thead><tbody><tr><td><code>key</code></td><td>The compliance identifier (generated by Concedus)</td><td></td></tr><tr><td><code>modified</code></td><td>The DateTime when the compliance set was created or changed</td><td></td></tr><tr><td><code>status</code></td><td>See: <a href="#status-codes">Status Codes</a></td><td></td></tr><tr><td><code>notes</code></td><td>Might be added in case the status is not 100</td><td></td></tr><tr><td><code>customerKey</code> / <code>contractKey</code> / <code>complianceKey</code></td><td>This is "your" key which you assigned to the whole dataset</td><td></td></tr></tbody></table>

## Status Codes

| Code | Grund                                                | Meaning                                                         | Explanation                                                                                                                                                                  |
| ---- | ---------------------------------------------------- | --------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 100  | Freigabe (kompromisslos)                             | Release (uncompromising)                                        | Conformation is automated                                                                                                                                                    |
| 200  | Wartet mit Nachforderung                             | Waits with additional demand                                    | Customer was informed that documents are still missing and have been requested                                                                                               |
| 300  | Grund A (Geldwäscheverdacht / Sanktionsliste / PEP)  | Reason A (Suspicion of money laundering / sanctions list / PEP) | Customer is on a sanctions list / politically exposed person                                                                                                                 |
| 301  | Grund B (Keine Angemessenheit - final)               | Reason B (No adequacy - final)                                  | The experience and knowledge are not enough to make the investment - final                                                                                                   |
| 302  | Grund C (Prozess- oder Datenfehler, Betrugsverdacht) | Reason C (Process or data error, suspected fraud)               | The customer's data is inconclusive or contradictory                                                                                                                         |
| 303  | Grund D (sonstige Ablehnung)                         | Reason D (other rejection)                                      | other rejection                                                                                                                                                              |
| 400  | Grund A (Nachfrage zu Vermögenssituation)            | Reason A (Inquiry about asset situation)                        | Customer makes an investment which does not correspond to the information of his experience and knowledge, so a bank statement etc. must be shown to prove sufficient assets |
| 401  | Grund B (sonstige Nachfrage)                         | Reason B (other inquiry)                                        | other inquiries in case of ambiguities                                                                                                                                       |
| 402  | Grund C (Unterlagen fehlen (bsp: Videoident)         | Reason C (missing documents (e.g. Videoident))                  | Mandatory documents are missing, such as legitimation data are not complete                                                                                                  |
| 403  | Grund D (Fehlende Angemessenheit)                    | Reason D (lack of adequacy)                                     | Information about knowledge and experience of the customer is missing                                                                                                        |
| 500  | Grund A (Zahlung abgelaufen)                         | Reason A (payment expired)                                      | Customer pays by bank transfer and the deadline has expired                                                                                                                  |
| 501  | Grund B (Zahlungsfehler sonstig)                     | Reason B (payment error, other)                                 | Kundenzahlung kann aus diversen Gründen nicht ausgeführt werden                                                                                                              |
| 502  | Grund C (Teilzahlung)                                | Reason C (partial payment)                                      | Customer transfers only part of the investment amount                                                                                                                        |
| 503  | Grund D (Vollzahlung)                                | Reason D (Full payment)                                         | Customer payment is successfully processed                                                                                                                                   |
| 600  | Grund A (7 Tage abgelaufen)                          | Reason A (7 days expired)                                       | 7 days payment period has expired                                                                                                                                            |
| 601  | Grund B (14 Tage abgelaufen)                         | Reason B (14 days expired)                                      | 14 days payment period has expired                                                                                                                                           |
| 602  | Grund C (20 Tage abgelaufen)                         | Reason C (20 days expired)                                      | 20 days payment period has expired                                                                                                                                           |
| 700  | Grund A (Storno möglich)                             | Reason A (cancellation possible)                                | Customer revocation according to distance selling                                                                                                                            |
| 701  | Grund B (Storno nicht möglich, Frist)                | Reason B (Cancellation not possible, deadline)                  | Customer revocation according to distance selling transaction is no longer possible due to exceeding of deadline                                                             |
| 702  | Grund B (Storno nicht möglich, sonstiges)            | Reason B (Cancellation not possible, other)                     | Customer revocation is not possible for other reasons                                                                                                                        |
| 800  | Grund A (Änderung OK)                                | Reason A (change OK)                                            | Customer subsequently orders changes to the data - data change is successful                                                                                                 |
| 801  | Grund B (Änderung nicht möglich, Datenfehler)        | Reason B (change not possible, data error)                      | Customer subsequently orders changes to the data - data change is not possible due to a data error                                                                           |
| 802  | Grund B (nicht möglich, sonstiges)                   | Reason B (not possible, other)                                  | Customer subsequently orders changes to the data - data change is not possible for other reasons                                                                             |
