> ## Documentation Index
> Fetch the complete documentation index at: https://dokumentation.websale.de/llms.txt
> Use this file to discover all available pages before exploring further.

# API-Referenz Anfragen

> Kundenanfragen über den Endpunkt inquiries/ der Admin Interface API abrufen, deren Bearbeitungsstatus ändern und einzelne Anfragen löschen.

Der Endpunkt `inquiries/` ermöglicht es, Anfrage-Daten abzufragen sowie zu löschen und ihren Status zu aktualisieren.

***

## Unterstützte Methoden

Angabe aller unterstützten Methoden.

| **Befehl/Info** | **Endpunkte** | **GET**               | **POST**            | **PUT**               | **DELETE**            |
| --------------- | ------------- | --------------------- | ------------------- | --------------------- | --------------------- |
| **Anfragen**    | inquiries/    | <Icon icon="check" /> | <Icon icon="ban" /> | <Icon icon="check" /> | <Icon icon="check" /> |

## Datenfelder

| **Name**                     | **Typ** | **Bedeutung**                                                                                                                                       |
| ---------------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| **id**                       | String  | Eindeutige ID der Anfrage                                                                                                                           |
| **subshopId**                | String  | Angabe des Subshops, in dem die Anfrage eingegangen ist (z. B. „deutsch“)                                                                           |
| **processingStatus**         | INT     | Bearbeitungsstatus der Anfrage:  - `0` = New (neu eingegangen) - `1` = Read (gelesen) - `2` = Answered (beantwortet) - `3` = Closed (abgeschlossen) |
| **data**                     | Objekt  | Enthält Formularfelder und zusätzliche Meta-Daten der Anfrage als JSON-Objekt                                                                       |
| **data**.**fields**          | Array   | Enthält den technischen Namen des Feldes, sein Label (Bezeichnung) und den übergebenen Wert                                                         |
| **data**.**inquiryConfigId** | String  | ID der Konfiguration, über die das Anfrageformular erstellt wurde                                                                                   |
| **data**.**inquiryId**       | String  | Eindeutige ID der Anfrage                                                                                                                           |
| **data**.**shopId**          | String  | Technischer Name des Shops                                                                                                                          |
| **data**.**submitter**       | Objekt  | Enthält die E-Mail-Adresse, die IP-Adresse und die ID der Session des Einsenders                                                                    |
| **data**.**subshopId**       | String  | Angabe des Subshops, in dem die Anfrage eingegangen ist (z. B. „deutsch“)                                                                           |
| **createdAt**                | String  | Datum und Uhrzeit der Erstellung der Anfrage (im ISO 8601-Format, UTC)                                                                              |
| **updatedAt**                | String  | Datum und Uhrzeit der letzten Änderung der Anfrage (im ISO 8601-Format, UTC)                                                                        |

### Beispiel

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "createdAt": "2024-10-11T12:03:48Z",
    "data": {
        "fields": [
            {
                "label": "Vorname",
                "name": "firstName",
                "value": "Foo"
            },
            {
                "label": "Nachname",
                "name": "lastName",
                "value": "Bar"
            },
            {
                "label": "Betreff",
                "name": "subject",
                "value": "mySubject"
            },
            {
                "label": "Kundennummer",
                "name": "customerNumber",
                "value": "11"
            },
            {
                "label": "Text",
                "name": "text",
                "value": "myMessage"
            }
        ],
        "inquiryConfigId": "contact",
        "inquiryId": "4dea07ff679aa8b4",
        "shopId": "myshop",
        "submitter": {
            "emailAddress": "email@email.com",
            "ipAddress": "172.18.0.XXX",
            "sessionId": "cf41e72fadae3eaeb0aeca63d..."
        },
        "subshopId": "deutsch"
    },
    "id": "4dea07ff679aa8b4",
    "processingStatus": 0,
    "subshopId": "deutsch",
    "updatedAt": "2024-10-11T12:03:48Z"
}
```

## Verwendung der Methoden

### GET inquiries

Ruft eine Liste aller vorhandenen Anfragen ab – mit Filter- und Sortiermöglichkeiten.

#### Beispiel

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
https://www.<ihr-shop>.de/admin/api/v1/inquiries
```

#### Antwort

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "endReached": true,
    "items": [
        {
            "createdAt": "2024-10-11T12:03:48Z",
            "data": {
                "fields": [
                    {
                        "label": "Vorname",
                        "name": "firstName",
                        "value": "Foo"
                    },
                    ...
                ],
                "inquiryConfigId": "contact",
                "inquiryId": "4dea07ff679aa8b4",
                "shopId": "myshop",
                "submitter": {
                    "emailAddress": "email@email.com",
                    "ipAddress": "172.18.0.XXX",
                    "sessionId": "cf41e72fadae3eaeb0aeca63d..."
                },
                "subshopId": "deutsch"
            },
            "id": "4dea07ff679aa8b4",
            "processingStatus": 0,
            "subshopId": "deutsch",
            "updatedAt": "2024-10-11T12:03:48Z"
        },
        ...
    ],
    "nextPageToken": "NQ",
    "totalCount": 6
}
```

#### Filterfelder

`createdAt`, `updatedAt`, `id`, `subshopId`, `processingStatus`, `inquiryConfigId`

#### Sortierfelder

`createdAt`, `updatedAt`, `id`, `subshopId`, `processingStatus`

#### Fehlercodes

\| **Fehler** | **Typ** | **Grund** |
\| --- | --- | --- | --- | --- |
\| 401 Unauthorized |  | Nicht autorisiert: Sie sind nicht angemeldet. |  |  |
\| 403 Forbidden |  | Sie verfügen nicht über die erforderlichen Rechte zum Lesen von Anfragen. |  |  |
\| 400 Bad Request | "invalidValue" | `size` ∉ \[1;300] | `pageToken` ist keine Zahl oder kleiner als 0. |  |
\| 400 Bad Request | "unknownDataField" | Ein Filter- oder Sortierfeld ist ungültig. |  |  |
\| 400 Bad Request | "unknownOperation" | Ein Filtertyp ist ungültig. |  |  |
\| 400 Bad Request | "invalidCharacters" | `size` ist keine Ganzzahl. <br /> Ein Filterwert ist ungültig. |  |  |
\| 400 Bad Request | "syntaxError" | `sort` enthält mehr als einen oder keinen ":". |  |  |
\| 503 Service Unavailable | "internalError" | Nicht alle Anfragen konnten entschlüsselt werden. |  |  |

### GET inquiries/\{inquiryId}

Ruft die Details einer einzelnen Anfrage anhand ihrer ID ab.

#### Beispiel

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
https://www.<ihr-shop>.de/admin/api/v1/inquiries/4dea07ff679aa8b4
```

#### Antwort

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "createdAt": "2024-10-11T12:03:48Z",
    "data": {
        "fields": [
            {
                "label": "Vorname",
                "name": "firstName",
                "value": "Foo"
            },
            {
                "label": "Nachname",
                "name": "lastName",
                "value": "Bar"
            },
            {
                "label": "Betreff",
                "name": "subject",
                "value": "mySubject"
            },
            {
                "label": "Kundennummer",
                "name": "customerNumber",
                "value": "11"
            },
            {
                "label": "Text",
                "name": "text",
                "value": "myMessage"
            }
        ],
        "inquiryConfigId": "contact",
        "inquiryId": "4dea07ff679aa8b4",
        "shopId": "myshop",
        "submitter": {
            "emailAddress": "email@email.com",
            "ipAddress": "172.18.0.XXX",
            "sessionId": "cf41e72fadae3eaeb0aeca63d..."
        },
        "subshopId": "deutsch"
    },
    "id": "4dea07ff679aa8b4",
    "processingStatus": 0,
    "subshopId": "deutsch",
    "updatedAt": "2024-10-11T12:03:48Z"
}
```

#### Fehlercodes

| **Fehler**              | **Typ**         | **Grund**                                                                 |
| ----------------------- | --------------- | ------------------------------------------------------------------------- |
| 401 Unauthorized        |                 | Nicht autorisiert: Sie sind nicht angemeldet.                             |
| 403 Forbidden           |                 | Sie verfügen nicht über die erforderlichen Rechte zum Lesen von Anfragen. |
| 404 Not Found           |                 | Die Anfrage wurde nicht gefunden.                                         |
| 503 Service Unavailable | "internalError" | Die Anfrage konnte nicht entschlüsselt werden.                            |

### GET inquiries/open

Dieser Endpunkt liefert eine Übersicht über die Anzahl offener Anfragen, gruppiert nach Anfragekonfigurationen. Die Antwort enthält eine Liste von Objekten, wobei jedes Objekt die Anzahl offener Anfragen (`count`) sowie die zugehörige Anfragekonfiguration (`inquiryConfigId`) angibt.

#### Beispiel

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
https://www.<ihr-shop>.de/admin/api/v1/inquiries/open
```

#### Antwort

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "items": [
        {
            "count": 3,
            "inquiryConfigId": "catalogue"
        },
        {
            "count": 15,
            "inquiryConfigId": "contact"
        },
        {
            "count": 1,
            "inquiryConfigId": "productQuestion"
        },
        {
            "count": 1,
            "inquiryConfigId": "returnInquiry"
        }
    ]
}
```

#### Fehlercodes

| **Fehler**              | **Typ**         | **Grund**                                                                 |
| ----------------------- | --------------- | ------------------------------------------------------------------------- |
| 401 Unauthorized        |                 | Nicht autorisiert: Sie sind nicht angemeldet.                             |
| 403 Forbidden           |                 | Sie verfügen nicht über die erforderlichen Rechte zum Lesen von Anfragen. |
| 503 Service Unavailable | "internalError" | Anfragen konnten nicht geladen werden.                                    |

### PUT inquiries/\{inquiryId}

Aktualisiert den Bearbeitungsstatus einer bestimmten Anfrage.

Mögliche Werte für `processingStatus`:

* `0` = New
* `1` = Read
* `2` = Answered
* `3` = Closed

#### Beispiel

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
https://www.<ihr-shop>.de/admin/api/v1/inquiries/bda4c9c28ebc6920
```

#### Request Body

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "processingStatus": 1
}
```

#### Antwort

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "createdAt": "2024-10-11T12:03:48Z",
    "data": {
        "fields": [
            {
                "label": "Vorname",
                "name": "firstName",
                "value": "Foo"
            }
        ],
        "inquiryConfigId": "contact",
        "inquiryId": "bda4c9c28ebc6920",
        "shopId": "myshop",
        "submitter": {
            "emailAddress": "email@email.com",
            "ipAddress": "172.18.0.XXX",
            "sessionId": "cf41e72fadae3eaeb0aeca63d..."
        },
        "subshopId": "deutsch"
    },
    "id": "bda4c9c28ebc6920",
    "processingStatus": 1,
    "subshopId": "deutsch",
    "updatedAt": "2024-10-11T12:05:00Z"
}
```

#### Fehlercodes

| **Fehler**              | **Typ**            | **Grund**                                                                                       |
| ----------------------- | ------------------ | ----------------------------------------------------------------------------------------------- |
| 401 Unauthorized        |                    | Nicht autorisiert: Sie sind nicht angemeldet.                                                   |
| 403 Forbidden           |                    | Sie verfügen nicht über die erforderlichen Rechte zum Schreiben von Anfragen.                   |
| 400 Bad Request         |                    | Request-Body konnte nicht als JSON geladen werden. <br /> Das Aktualisieren ist fehlgeschlagen. |
| 400 Bad Request         | "missing"          | `processingStatus` wurde nicht übergeben.                                                       |
| 400 Bad Request         | "unknownDataField" | Es wird versucht, ein unbekanntes Feld zu übergeben. Nur `processingStatus` ist erlaubt.        |
| 400 Bad Request         | "invalidFormat"    | `processingStatus` ist keine Zahl.                                                              |
| 400 Bad Request         | "invalidValue"     | `processingStatus` ist außerhalb des gültigen Bereichs (0–3).                                   |
| 404 Not Found           |                    | Die Anfrage wurde nicht gefunden.                                                               |
| 503 Service Unavailable | "internalError"    | Die Anfrage konnte nicht entschlüsselt werden.                                                  |

### DELETE inquiries/\{inquiryId}

Löscht eine bestimmte Anfrage dauerhaft.

#### Beispiel

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
https://www.<ihr-shop>.de/admin/api/v1/inquiries/bda4c9c28ebc6920
```

#### Antwort

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "success": true
}
```

#### Fehlercodes

| **Fehler**       | **Typ** | **Grund**                                                                   |
| ---------------- | ------- | --------------------------------------------------------------------------- |
| 401 Unauthorized |         | Nicht autorisiert: Sie sind nicht angemeldet.                               |
| 403 Forbidden    |         | Sie verfügen nicht über die erforderlichen Rechte zum Löschen von Anfragen. |
| 404 Not Found    |         | Die Anfrage wurde nicht gefunden.                                           |

## Support

Bei technischen Fragen und Hilfestellungen ist unser Support-Team für Sie erreichbar: [Zum Kundenportal](https://websale.atlassian.net/servicedesk/customer/portal/6)

Bitte senden Sie uns eine möglichst detaillierte Beschreibung sowie Screenshots, Requests/Antworten, damit wir Ihre Anfrage zeitnah und zielführend beantworten können.
