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

# Storefront API Customer Account

> Power the My Account area with the Storefront API: login, registration, addresses, password reset, order history, alerts, and account deletion flows.

The Customer Account API provides the functions for the "My Account" area. This includes managing personal data, login credentials, and addresses (creating/editing/deleting the address book) as well as typical account processes such as email change (including double opt-in), changing/resetting the password ("forgot password"), and deleting the account.

In addition, customer-related information such as order history (online orders) can be provided.

Other typical functions are the creation and management of availability alerts, an overview of your own reviews, as well as login, registration, and — if provided for — persistent sessions ("stay logged in").

All calls require an active session via `x-session`. More about this

***

## Supported methods

List of all supported methods.

| **Command**                                     | **Endpoints**                | **GET**               | **PUT**               | **POST**              | **DELETE**            |
| ----------------------------------------------- | ---------------------------- | --------------------- | --------------------- | --------------------- | --------------------- |
| Log in to customer account                      | `account/login`              | <Icon icon="ban" />   | <Icon icon="ban" />   | <Icon icon="check" /> | <Icon icon="ban" />   |
| Enable stay logged in                           | `account/autologin`          | <Icon icon="ban" />   | <Icon icon="ban" />   | <Icon icon="check" /> | <Icon icon="ban" />   |
| Create customer account                         | `account/register`           | <Icon icon="ban" />   | <Icon icon="ban" />   | <Icon icon="check" /> | <Icon icon="ban" />   |
| Retrieve account data                           | `account/get`                | <Icon icon="check" /> | <Icon icon="ban" />   | <Icon icon="ban" />   | <Icon icon="ban" />   |
| Log out customer account                        | `account/logout`             | <Icon icon="ban" />   | <Icon icon="ban" />   | <Icon icon="check" /> | <Icon icon="ban" />   |
| Delete customer account                         | `account/delete`             | <Icon icon="ban" />   | <Icon icon="ban" />   | <Icon icon="ban" />   | <Icon icon="check" /> |
| Delete customer account with opt-in code        | `account/deleteConfirm`      | <Icon icon="ban" />   | <Icon icon="ban" />   | <Icon icon="ban" />   | <Icon icon="check" /> |
| Add new address to customer account             | `account/address/create`     | <Icon icon="ban" />   | <Icon icon="ban" />   | <Icon icon="check" /> | <Icon icon="ban" />   |
| Edit an existing address                        | `account/address/update`     | <Icon icon="ban" />   | <Icon icon="check" /> | <Icon icon="ban" />   | <Icon icon="ban" />   |
| Set address as main address                     | `account/address/setMain`    | <Icon icon="ban" />   | <Icon icon="ban" />   | <Icon icon="check" /> | <Icon icon="ban" />   |
| List addresses of the customer account          | `account/address/list`       | <Icon icon="check" /> | <Icon icon="ban" />   | <Icon icon="ban" />   | <Icon icon="ban" />   |
| Retrieve a specific address                     | `account/address/get`        | <Icon icon="check" /> | <Icon icon="ban" />   | <Icon icon="ban" />   | <Icon icon="ban" />   |
| Delete an address                               | `account/address/delete`     | <Icon icon="ban" />   | <Icon icon="ban" />   | <Icon icon="ban" />   | <Icon icon="check" /> |
| Enable notification for "product back in stock" | `account/backInStock/notify` | <Icon icon="ban" />   | <Icon icon="ban" />   | <Icon icon="check" /> | <Icon icon="check" /> |
| List all "product back in stock" notifications  | `account/backInStock/list`   | <Icon icon="check" /> | <Icon icon="ban" />   | <Icon icon="ban" />   | <Icon icon="ban" />   |
| Change display name for product reviews         | `account/displayName/update` | <Icon icon="ban" />   | <Icon icon="ban" />   | <Icon icon="check" /> | <Icon icon="ban" />   |
| Change email address of customer account        | `account/email/update`       | <Icon icon="ban" />   | <Icon icon="ban" />   | <Icon icon="check" /> | <Icon icon="ban" />   |
| Verify email address of customer account        | `account/email/verify`       | <Icon icon="ban" />   | <Icon icon="ban" />   | <Icon icon="check" /> | <Icon icon="ban" />   |
| List all orders of the customer account         | `account/order/list`         | <Icon icon="check" /> | <Icon icon="ban" />   | <Icon icon="ban" />   | <Icon icon="ban" />   |
| Retrieve a specific order                       | `account/order/get`          | <Icon icon="check" /> | <Icon icon="ban" />   | <Icon icon="ban" />   | <Icon icon="ban" />   |
| Change password of customer account             | `account/password/change`    | <Icon icon="ban" />   | <Icon icon="ban" />   | <Icon icon="check" /> | <Icon icon="ban" />   |
| Start password reset                            | `account/password/forgotten` | <Icon icon="ban" />   | <Icon icon="ban" />   | <Icon icon="check" /> | <Icon icon="ban" />   |
| Reset password                                  | `account/password/reset`     | <Icon icon="ban" />   | <Icon icon="ban" />   | <Icon icon="check" /> | <Icon icon="ban" />   |

## Methods for the customer account

With these methods, the customer account in the shop is managed. They read out the data of the currently logged-in user (master data, address, customer data fields, login status) and log an account in with email address/password. Optionally, the "stay logged in" function can be activated by autologin token. In addition, new accounts can be registered and directly logged in. Existing sessions can be cleanly logged out. Customer accounts can also be deleted.

### GET account/get

This call delivers the data of the currently logged-in customer account of the passed session. Typical use cases are the display of the account area (name, email address, display name) or a simple "logged in/logged out" check in the frontend.

Example call to get data of the currently logged-in customer account:

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
GET https://<your-shop>.de/api/v1/account/get
```

#### Parameter overview

#### Header parameters

| **Parameter** | **Description**                                                                                                                                                                                                      |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `x-session`   | **Required field**<br />ID of the current session.   <br />More information: [Storefront API Basics](https://websaleag-44ee7ea6.mintlify.app/schnittstellen/storefront-api/storefront-api-basics#3-session-handling) |

#### Example response

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
   "addresses" : [
      {
         "additionalInfo" : "",
         "addressType" : "1",
         "businessFax" : "",
         "businessPhone" : "",
         "city" : "Nürnberg",
         "company" : "",
         "country" : "DE",
         "custom" : {},
         "dateOfBirth" : "",
         "department" : "",
         "fax" : "",
         "firstName" : "Maria",
         "id" : "85",
         "lastName" : "Musterfrau",
         "mobilePhone" : "",
         "phone" : "",
         "salutationCode" : "2",
         "state" : "",
         "street" : "Gutenstetterstraße 2",
         "streetNumber" : "",
         "taxId" : "",
         "titleCode" : "",
         "zip" : "90449"
      }
   ],
   "autoLogInRestriction" : "restricted",
   "backInStockList" : [],
   "customerData" : {
      "groupedFields" : [
         {
            "fields" : [
               {
                  "association" : "hybrid",
                  "label" : "Output voltage",
                  "name" : "outputVoltage",
                  "type" : "text",
                  "value" : "230 V"
               }
            ],
            "label" : "Device information",
            "name" : "applianceInformation"
         }
      ],
      "ungroupedFields" : [
         {
            "association" : "shopAccount",
            "label" : "Customer group",
            "name" : "customerGroup",
            "options" : [
               {
                  "label" : "Dog owner",
                  "value" : "dog"
               },
               {
                  "label" : "Cat owner",
                  "value" : "cat"
               }
            ],
            "type" : "select",
            "value" : ""
         }
      ]
   },
   "displayName" : "",
   "email" : "kundenkonto@example.com",
   "id" : 51,
   "isAccountVerified" : false,
   "isAutoLogInRestricted" : true,
   "isAutoLoggedIn" : false,
   "isLoggedIn" : true,
   "isPasswordResetRequired" : false,
   "lastLogin" : "2025-11-04T08:42:20.996Z",
   "mainAddress" : {
      "additionalInfo" : "",
      "addressType" : "1",
      "businessFax" : "",
      "businessPhone" : "",
      "city" : "Nürnberg",
      "company" : "",
      "country" : "DE",
      "custom" : {},
      "dateOfBirth" : "",
      "department" : "",
      "fax" : "",
      "firstName" : "Maria",
      "id" : "85",
      "lastName" : "Musterfrau",
      "mobilePhone" : "",
      "phone" : "",
      "salutationCode" : "2",
      "state" : "",
      "street" : "Gutenstetterstraße 2",
      "streetNumber" : "",
      "taxId" : "",
      "titleCode" : "",
      "zip" : "90449"
   },
   "pseudoCreditCards" : []
}
```

### POST account/login

This call logs in a customer account. If the passed credentials are correct, the active session is logged into the account. If `Autologin` is enabled, the response contains an `Autologin token`.

**Example call that logs the customer account with the ID** `kundenkonto@example.com` **into the session**

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
POST https://<your-shop>.de/api/v1/account/login
```

#### Example request

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "id": "kundenkonto@example.com",
  "password": "password123",
  "autologin": "off"
}
```

#### Example response

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

#### Parameter overview

#### Header parameters

| **Parameter** | **Description**                                                                                                                                                                                                      |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `x-session`   | **Required field**<br />ID of the current session.   <br />More information: [Storefront API Basics](https://websaleag-44ee7ea6.mintlify.app/schnittstellen/storefront-api/storefront-api-basics#3-session-handling) |

#### Body parameters

| **Parameter** | **Type** | **Description**                                                                                                                                                                                                                                                                       |
| ------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`          | string   | **Required field**<br />Email address of the user account.                                                                                                                                                                                                                            |
| `password`    | string   | **Required field**<br />Password of the user account.                                                                                                                                                                                                                                 |
| `autologin`   | enum     | Controls auto-login.   <br />- `all` = The user can log in again on this device without re-entering the password <br />- `restricted` = Autologin is active, but with additional rules (e.g. shorter session validity)<br />- `off` (default) = Each session requires a regular login |

#### Example response

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "account": {
    "id": 51,
    "email": "kundenkonto@example.com",
    "displayName": "",
    "isLoggedIn": true,
    "lastLogin": "2025-10-30T08:50:13.396Z"
  },
  "autologinToken": null
}
```

#### Error codes

| **Code**             | **Description**                                                           |
| -------------------- | ------------------------------------------------------------------------- |
| `emailCheckFailed`   | The passed `id` is not a valid email address.                             |
| `loginBlocked`       | The account is temporarily blocked (e.g. due to too many login attempts). |
| `invalidCredentials` | Email or password invalid.                                                |
| `ipAddressBlocked`   | IP temporarily blocked due to too many failed attempts.                   |

### POST account/autologin

This call enables the "stay logged in" function for the current session. This allows the user to log in again on this device in the future without re-entering the password.

**Example call that enables autologin for the customer account with the ID** `51`

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
POST https://<your-shop>.de/api/v1/account/autologin
```

#### Example response

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "account": {
    "id": 51,
    "email": "kundenkonto@example.com",
    "displayName": "",
    "isLoggedIn": true,
    "lastLogin": "2025-10-30T08:50:13.396Z"
  }
}
```

#### Parameter overview

#### Header parameters

| **Parameter** | **Description**                                                                                                                                                                                                      |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `x-session`   | **Required field**<br />ID of the current session.   <br />More information: [Storefront API Basics](https://websaleag-44ee7ea6.mintlify.app/schnittstellen/storefront-api/storefront-api-basics#3-session-handling) |

#### Body parameters

| **Parameter** | **Type** | **Description**                                                                                                     |
| ------------- | -------- | ------------------------------------------------------------------------------------------------------------------- |
| `token`       | string   | **Required field**<br />Autologin token from `POST /api/v1/account/login`<br />(when `autologin = all/restricted`). |

#### Error codes

| **Code**       | **Description**                            |
| -------------- | ------------------------------------------ |
| `invalidToken` | The autologin token is invalid or expired. |

### POST account/register

This call creates a new customer account and logs the current session in directly with this account. This allows the user to continue immediately after registration.

**Example call to create a new customer account with the email address** `kundenkonto@example.com` **and the password** `password123`

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
POST https://<your-shop>.de/api/v1/account/register
```

#### Example request

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "email": "kundenkonto@example.com",
  "password": "password123"
}
```

#### Example response

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

#### Parameter overview

#### Header parameters

| **Parameter** | **Description**                                                                                                                                                                                                      |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `x-session`   | **Required field**<br />ID of the current session.   <br />More information: [Storefront API Basics](https://websaleag-44ee7ea6.mintlify.app/schnittstellen/storefront-api/storefront-api-basics#3-session-handling) |

#### Body parameters

| **Parameter** | **Type** | **Description**                                                 |
| ------------- | -------- | --------------------------------------------------------------- |
| `email`       | string   | **Required field**<br />Email address for the new user account. |
| `password`    | string   | **Required field**<br />Password for the new user account.      |

#### Example response

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "account": {
    "id": 124,
    "email": "kundenkonto@example.com",
    "displayName": "",
    "isLoggedIn": true
  }
}
```

#### Error codes

| **Code**               | **Description**                                                |
| ---------------------- | -------------------------------------------------------------- |
| `emailCheckFailed`     | The specified email address is syntactically invalid.          |
| `loginBlocked`         | The account / request is currently blocked.                    |
| `passwordCheckFailed`  | The password does not meet the security guidelines (too weak). |
| `accountAlreadyExists` | An account with this email address already exists.             |

### POST account/logout

**This call logs out the currently logged-in user**

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
POST https://<your-shop>.de/api/v1/account/logout
```

#### Example response

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

#### Parameter overview

#### Header parameters

| **Parameter** | **Description**                                                                                                                                                                                                      |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `x-session`   | **Required field**<br />ID of the current session.   <br />More information: [Storefront API Basics](https://websaleag-44ee7ea6.mintlify.app/schnittstellen/storefront-api/storefront-api-basics#3-session-handling) |

#### Error codes

| **Code** | **Description**                                                         |
| -------- | ----------------------------------------------------------------------- |
| --       | No error codes exist for this request, the action is always successful. |

### DELETE account/delete

This call deletes the currently logged-in customer account. After successful execution, the session is ended and access to the account is removed. Note: deletion cannot be undone!

**Example call to permanently delete the currently logged-in user account**

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
DELETE https://<your-shop>.de/api/v1/account/delete
```

Note: depending on the shop configuration, email confirmation (double opt-in) may be required! See here (`doubleOptInEmail.enabled` setting).

**Example response**

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

**Parameter overview**

**Header parameters**

| **Parameter** | **Description**                                                                                                                                                                                                      |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `x-session`   | **Required field**<br />ID of the current session.   <br />More information: [Storefront API Basics](https://websaleag-44ee7ea6.mintlify.app/schnittstellen/storefront-api/storefront-api-basics#3-session-handling) |

**Error codes**

| **Code**           | **Description**                                                                                                             |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------- |
| `notLoggedIn`      | No user is logged in.                                                                                                       |
| `actionNotAllowed` | The passed opt-in token is not allowed for this action, e.g. because it was requested for a different action or is invalid. |

### DELETE account/deleteConfirm

This call confirms the account deletion via `Opt-in token` and permanently deletes the currently logged-in customer account. It is only used if account deletion via `double opt-in` is enabled in your shop. Without `double opt-in`, calling `account/delete` is sufficient.

**Example call that confirms the deletion of the currently logged-in user account via** `opt-in token`

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
 DELETE https://<your-shop>.de/api/v1/account/deleteConfirm
```

#### Example request

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "otok": AZ3XHlWGe4E98D4fsJrPhWclSgBBQwAAAAA.ZKgwbjF-IDLuaakADfazRmAWTmjdH-A9W92JtZnPVPQ"
}
```

#### Example response

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

#### Parameter overview

#### Header parameters

| **Parameter** | **Description**                                                                                                                                                                                                      |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `x-session`   | **Required field**<br />ID of the current session.   <br />More information: [Storefront API Basics](https://websaleag-44ee7ea6.mintlify.app/schnittstellen/storefront-api/storefront-api-basics#3-session-handling) |

#### Body parameters

| **Parameter** | **Type** | **Description**                                                   |
| ------------- | -------- | ----------------------------------------------------------------- |
| `otok`        | string   | **Required field**<br />Opt-in token from the confirmation email. |

#### Error codes

| **Code**           | **Description**                                                                                                             |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------- |
| `notLoggedIn`      | No user is logged in.                                                                                                       |
| `actionNotAllowed` | The passed opt-in token is not allowed for this action, e.g. because it was requested for a different action or is invalid. |

***

## Methods for address management

With these methods, the addresses in the customer account can be managed. They list all available address fields and return the addresses belonging to the logged-in account or fetch an individual address by ID. New addresses can be created with all relevant fields, existing addresses can be specifically updated or marked as the main address. If needed, they can be deleted again.

### GET account/address/fields

This call returns all available address fields. Using this information, address forms can be created in the frontend.

**Example call that returns all available address fields**

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
GET https://<your-shop>.de/api/v1/account/address/fields
```

#### Parameter overview

| **Parameter** | **Type** | **Description**           |
| ------------- | -------- | ------------------------- |
| --            | --       | No additional parameters. |

#### Example response

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
   "items" : [
      {
         "dataId" : "addressType",
         "label" : "Address type",
         "name" : "addressType"
      },
      {
         "dataId" : "firstName",
         "label" : "",
         "name" : "firstName"
      },
      {
         "dataId" : "additionalInfo",
         "label" : "",
         "name" : "additionalInfo"
      },
      {
         "dataId" : "businessFax",
         "label" : "",
         "name" : "businessFax"
      },
      {
         "dataId" : "businessPhone",
         "label" : "",
         "name" : "businessPhone"
      },
      {
         "dataId" : "city",
         "label" : "",
         "name" : "city"
      },
      {
         "dataId" : "company",
         "label" : "",
         "name" : "company"
      },
      {
         "dataId" : "country",
         "label" : "",
         "name" : "country"
      },
      {
         "dataId" : "dateOfBirth",
         "label" : "",
         "name" : "dateOfBirth"
      },
      {
         "dataId" : "department",
         "label" : "",
         "name" : "department"
      },
      {
         "dataId" : "fax",
         "label" : "",
         "name" : "fax"
      },
      {
         "dataId" : "lastName",
         "label" : "",
         "name" : "lastName"
      },
      {
         "dataId" : "mobilePhone",
         "label" : "",
         "name" : "mobilePhone"
      },
      {
         "dataId" : "phone",
         "label" : "",
         "name" : "phone"
      },
      {
         "dataId" : "salutationCode",
         "label" : "",
         "name" : "salutationCode"
      },
      {
         "dataId" : "state",
         "label" : "",
         "name" : "state"
      },
      {
         "dataId" : "street",
         "label" : "",
         "name" : "street"
      },
      {
         "dataId" : "streetNumber",
         "label" : "",
         "name" : "streetNumber"
      },
      {
         "dataId" : "taxId",
         "label" : "",
         "name" : "taxId"
      },
      {
         "dataId" : "titleCode",
         "label" : "",
         "name" : "titleCode"
      },
      {
         "dataId" : "zip",
         "label" : "",
         "name" : "zip"
      }
   ]
}
```

### GET account/address/list

This call returns all saved addresses of the currently logged-in customer account, including the field values name, street, ZIP/city, and country code. The data can be used to display address overviews in the customer account.

**Example call that returns all saved addresses of the currently logged-in user account**

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
GET https://<your-shop>.de/api/v1/account/address/list
```

#### Parameter overview

#### Header parameters

| **Parameter** | **Description**                                                                                                                                                                                                      |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `x-session`   | **Required field**<br />ID of the current session.   <br />More information: [Storefront API Basics](https://websaleag-44ee7ea6.mintlify.app/schnittstellen/storefront-api/storefront-api-basics#3-session-handling) |

#### Example response

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
   "items" : [
      {
         "additionalInfo" : "",
         "addressType" : "1",
         "businessFax" : "",
         "businessPhone" : "",
         "city" : "Nürnberg",
         "company" : "",
         "country" : "DE",
         "custom" : {},
         "dateOfBirth" : "",
         "department" : "",
         "fax" : "",
         "firstName" : "Max",
         "id" : "97",
         "lastName" : "Mustermann",
         "mobilePhone" : "",
         "phone" : "",
         "salutationCode" : "2",
         "state" : "",
         "street" : "Gutenstetterstraße",
         "streetNumber" : "2",
         "taxId" : "",
         "titleCode" : "",
         "zip" : "90449"
      }
   ]
}
```

### GET account/address/get

The following call returns the specific address of the currently logged-in customer account based on its address ID. This can be used, for example, to display or pre-fill the address in the checkout.

Example call that returns the address with the ID `97` of the logged-in user account:

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
GET /api/v1/account/address/get?addressId=97
```

#### Parameter overview

#### Header parameters

| **Parameter** | **Description**                                                                                                                                                                                                      |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `x-session`   | **Required field**<br />ID of the current session.   <br />More information: [Storefront API Basics](https://websaleag-44ee7ea6.mintlify.app/schnittstellen/storefront-api/storefront-api-basics#3-session-handling) |

#### Body parameters

| **Parameter** | **Type** | **Description**                    |
| ------------- | -------- | ---------------------------------- |
| `addressId`   | string   | ID of the address to be retrieved. |

#### Example response

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
   "additionalInfo" : "",
   "addressType" : "1",
   "businessFax" : "",
   "businessPhone" : "",
   "city" : "Nürnberg",
   "company" : "",
   "country" : "DE",
   "custom" : {}  
   "dateOfBirth" : "",
   "department" : "",
   "fax" : "",
   "firstName" : "Max",
   "id" : "97",
   "lastName" : "Mustermann",
   "mobilePhone" : "",
   "phone" : "",
   "salutationCode" : "2",
   "state" : "",
   "street" : "Gutenstetterstraße",
   "streetNumber" : "2",
   "taxId" : "",
   "titleCode" : "",
   "zip" : "90449"
}
```

### POST account/address/create

This call creates a new address for the currently logged-in customer account. It can be used, for example, as a billing or delivery address in the checkout.

**Example call that creates a new address for the currently logged-in user account**

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
POST https://<your-shop>.de/api/v1/account/address/create
```

#### Example request

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "address": {
    "firstName": "Maria",
    "lastName": "Musterfrau",
    "street": "Gutenstetterstraße",
    "streetNumber": "2",
    "zip": "90449",
    "city": "Nürnberg"
  }
}
```

Note: If only `address` is passed without specified parameters, the default values are taken over for all fields.

#### Parameter overview

#### Header parameters

| **Parameter** | **Description**                                                                                                                                                                                                      |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `x-session`   | **Required field**<br />ID of the current session.   <br />More information: [Storefront API Basics](https://websaleag-44ee7ea6.mintlify.app/schnittstellen/storefront-api/storefront-api-basics#3-session-handling) |

#### Body parameters

| **Parameter**    | **Type** | **Description**                                                          |
| ---------------- | -------- | ------------------------------------------------------------------------ |
| `address`        | object   | **Required field**<br />Bundles the address data fields.                 |
| `additionalInfo` | string   | Additional info on the address (e.g. floor).                             |
| `businessFax`    | string   | Business fax.                                                            |
| `businessPhone`  | string   | Business phone.                                                          |
| `city`           | string   | City                                                                     |
| `company`        | string   | Company / business                                                       |
| `country`        | string   | Country code (e.g. `DE )`                                                |
| `custom`         | object   | Free additional fields (configurable with `accounts.customAddressField`) |
| `dateOfBirth`    | string   | Date of birth                                                            |
| `department`     | string   | Department (business)                                                    |
| `fax`            | string   | Private fax                                                              |
| `firstName`      | string   | First name                                                               |
| `lastName`       | string   | Last name                                                                |
| `mobilePhone`    | string   | Mobile number                                                            |
| `phone`          | string   | Landline number                                                          |
| `state`          | string   | State / region                                                           |
| `street`         | string   | Street                                                                   |
| `streetNumber`   | string   | House number                                                             |
| `taxId`          | string   | Tax/VAT ID                                                               |
| `zip`            | string   | Postal code                                                              |

#### Example response

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
   "addresses" : [
      {
         "additionalInfo" : "",
         "addressType" : "1",
         "businessFax" : "",
         "businessPhone" : "",
         "city" : "Nürnberg",
         "company" : "",
         "country" : "DE",
         "custom" : {},
         "dateOfBirth" : "",
         "department" : "",
         "fax" : "",
         "firstName" : "Maria",
         "id" : "97",
         "lastName" : "Musterfrau",
         "mobilePhone" : "",
         "phone" : "",
         "salutationCode" : "2",
         "state" : "",
         "street" : "Gutenstetterstraße",
         "streetNumber" : "2",
         "taxId" : "",
         "titleCode" : "",
         "zip" : "90449"
      }
   ]
}
```

#### Error codes

| **Code**           | **Description**                                                                   |
| ------------------ | --------------------------------------------------------------------------------- |
| `notLoggedIn`      | The session is not logged into any account (possibly missing/invalid `x-session`) |
| `emptyAddress`     | The `address` field is missing or empty.                                          |
| `unknownField`     | No address field exists with the specified name.                                  |
| `invalidFieldType` | An address field has an invalid data type (e.g. number instead of string)         |

### POST account/address/setMain

This request can be used to set an existing address of the currently logged-in customer account as the main address (e.g. as default for shipping/billing). It can be used to mark an address as the default for billing or shipping.

**Example call that sets the address with the ID** `97` **as the main address for the currently logged-in customer account**

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
POST https://<your-shop>.de/api/v1/account/address/setMain
```

#### Example request

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

#### Parameter overview

#### Header parameters

| **Parameter** | **Description**                                                                                                                                                                                                      |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `x-session`   | **Required field**<br />ID of the current session.   <br />More information: [Storefront API Basics](https://websaleag-44ee7ea6.mintlify.app/schnittstellen/storefront-api/storefront-api-basics#3-session-handling) |

#### Body parameters

| **Parameter** | **Type** | **Description**                                  |
| ------------- | -------- | ------------------------------------------------ |
| `addressId`   | string   | ID of the address to be set as the main address. |

#### Example response

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
   "addresses" : [
      {
         "additionalInfo" : "",
         "addressType" : "1",
         "businessFax" : "",
         "businessPhone" : "",
         "city" : "Nürnberg",
         "company" : "",
         "country" : "DE",
         "custom" : {},
         "dateOfBirth" : "",
         "department" : "",
         "fax" : "",
         "firstName" : "Maria",
         "id" : "97",
         "lastName" : "Musterfrau",
         "mobilePhone" : "",
         "phone" : "",
         "salutationCode" : "2",
         "state" : "",
         "street" : "Gutenstetterstraße",
         "streetNumber" : "2",
         "taxId" : "",
         "titleCode" : "",
         "zip" : "90449"
      }
   ],
   "mainAddress" : {
      "additionalInfo" : "",
      "addressType" : "1",
      "businessFax" : "",
      "businessPhone" : "",
      "city" : "Nürnberg",
      "company" : "",
      "country" : "DE",
      "custom" : {},
      "dateOfBirth" : "",
      "department" : "",
      "fax" : "",
      "firstName" : "Maria",
      "id" : "97",
      "lastName" : "Musterfrau",
      "mobilePhone" : "",
      "phone" : "",
      "salutationCode" : "2",
      "state" : "",
      "street" : "Gutenstetterstraße",
      "streetNumber" : "2",
      "taxId" : "",
      "titleCode" : "",
      "zip" : "90449"
   }
}
```

#### Error codes

| **Code**           | **Description**                                                             |
| ------------------ | --------------------------------------------------------------------------- |
| `notLoggedIn`      | The session is not logged into any account. (missing / invalid `x-session`) |
| `invalidAddressId` | The specified address ID is invalid.                                        |

### PUT account/address/update

This call lets you update an existing address of the currently logged-in customer account. It is not necessary to fill out all fields; fields that are not filled out remain unchanged. It can be used, for example, to correct an address for shipping or billing.

**Example call that changes the first and last name of the address with the ID** `97` **for the currently logged-in customer account**

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
PUT https://<your-shop>.de/api/v1/account/address/update
```

#### Example request

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "addressId": "97",
  "address": {
    "firstName": "Max",
    "lastName": "Mustermann"
  }
}
```

#### Parameter overview

#### Header parameters

| **Parameter** | **Description**                                                                                                                                                                                                      |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `x-session`   | **Required field**<br />ID of the current session.   <br />More information: [Storefront API Basics](https://websaleag-44ee7ea6.mintlify.app/schnittstellen/storefront-api/storefront-api-basics#3-session-handling) |

#### Body parameters

| **Parameter**    | **Type** | **Description**                                                          |
| ---------------- | -------- | ------------------------------------------------------------------------ |
| `address`        | object   | **Required field**   Bundles the address data fields.                    |
| `additionalInfo` | string   | Additional info on the address (e.g. floor).                             |
| `businessFax`    | string   | Business fax.                                                            |
| `businessPhone`  | string   | Business phone.                                                          |
| `city`           | string   | City                                                                     |
| `company`        | string   | Company / business                                                       |
| `country`        | string   | Country code (e.g. `DE )`                                                |
| `custom`         | object   | Free additional fields (configurable with `accounts.customAddressField`) |
| `dateOfBirth`    | string   | Date of birth                                                            |
| `department`     | string   | Department (business)                                                    |
| `fax`            | string   | Private fax                                                              |
| `firstName`      | string   | First name                                                               |
| `lastName`       | string   | Last name                                                                |
| `mobilePhone`    | string   | Mobile number                                                            |
| `phone`          | string   | Landline number                                                          |
| `state`          | string   | State / region                                                           |
| `street`         | string   | Street                                                                   |
| `streetNumber`   | string   | House number                                                             |
| `taxId`          | string   | Tax/VAT ID                                                               |
| `zip`            | string   | Postal code                                                              |

#### Example response

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
   "addresses" : [
      {
         "additionalInfo" : "",
         "addressType" : "1",
         "businessFax" : "",
         "businessPhone" : "",
         "city" : "Nürnberg",
         "company" : "",
         "country" : "DE",
         "custom" : {},
         "dateOfBirth" : "",
         "department" : "",
         "fax" : "",
         "firstName" : "Max",
         "id" : "97",
         "lastName" : "Mustermann",
         "mobilePhone" : "",
         "phone" : "",
         "salutationCode" : "2",
         "state" : "",
         "street" : "Gutenstetterstraße",
         "streetNumber" : "2",
         "taxId" : "",
         "titleCode" : "",
         "zip" : "90449"
      }
   ]
}
```

#### Error codes

| **Code**           | **Description**                                                           |
| ------------------ | ------------------------------------------------------------------------- |
| `invalidAddressId` | The specified address ID is invalid.                                      |
| `emptyAddress`     | The `address` field is missing or empty.                                  |
| `unknownField`     | No address field exists with the specified name.                          |
| `invalidFieldType` | An address field has an invalid data type (e.g. number instead of string) |

### DELETE account/address/delete

This call deletes an existing address of the currently logged-in customer account.

**Example call that deletes the address with the ID** `97` **for the currently logged-in customer account**

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
DELETE https://<your-shop>.de/api/v1/account/address/delete
```

#### Example request

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

#### Parameter overview

#### Header parameters

| **Parameter** | **Description**                                                                                                                                                                                                      |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `x-session`   | **Required field**<br />ID of the current session.   <br />More information: [Storefront API Basics](https://websaleag-44ee7ea6.mintlify.app/schnittstellen/storefront-api/storefront-api-basics#3-session-handling) |

#### Body parameters

| **Parameter** | **Type** | **Description**                  |
| ------------- | -------- | -------------------------------- |
| `addressId`   | string   | ID of the address to be deleted. |

#### Example response

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

#### Error codes

| **Code**           | **Description**                                                             |
| ------------------ | --------------------------------------------------------------------------- |
| `notLoggedIn`      | The session is not logged into any account. (missing / invalid `x-session`) |
| `invalidAddressId` | The specified address ID is invalid.                                        |

***

## Methods for notifications

With these methods, "product back in stock" notifications in the customer account can be managed. They read out all notifications stored for the logged-in customer account, create new notifications for a combination of email address and product, and delete existing notifications again.

### GET account/backInStock/list

The following call lists all "product back in stock" notifications that are enabled for the account. It can be used to make them available for the customer in the customer account.

**Example call that lists all "product back in stock" notifications of the currently logged-in customer account**

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
GET https://<your-shop>.de/api/v1/account/backInStock/list
```

#### Parameter overview

#### Header parameters

| **Parameter** | **Description**                                                                                                                                                                                                      |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `x-session`   | **Required field**<br />ID of the current session.   <br />More information: [Storefront API Basics](https://websaleag-44ee7ea6.mintlify.app/schnittstellen/storefront-api/storefront-api-basics#3-session-handling) |

#### Example response

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "items": [
    {
      "email": "<email>",
      "productId": "12345"
    }
  ]
}
```

### POST account/backInStock/notify

This call sets up a "product back in stock" notification for the logged-in account. As soon as the item is back in stock, an email is sent to the specified address.

**Example call that creates a "product back in stock" notification for the product with the ID** `12345`**. The notification is sent to the email address** `<EMAIL>`

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
POST https://<your-shop>.de/api/v1/account/backInStock/notify
```

#### Example request

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "email": "<EMAIL>",
  "productId": "12345"
}
```

#### Parameter overview

#### Header parameters

| **Parameter** | **Description**                                                                                                                                                                                                      |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `x-session`   | **Required field**<br />ID of the current session.   <br />More information: [Storefront API Basics](https://websaleag-44ee7ea6.mintlify.app/schnittstellen/storefront-api/storefront-api-basics#3-session-handling) |

#### Body parameters

| **Parameter** | **Type** | **Description**                                                                 |
| ------------- | -------- | ------------------------------------------------------------------------------- |
| `email`       | string   | **Required field**<br />Email address to which the notification should be sent. |
| `productId`   | string   | **Required field**<br />ID of the product to be notified about.                 |

#### Error codes

| **Code**                | **Description**                                                                                                               |
| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `notLoggedIn`           | The session is not logged into any account. (missing / invalid `x-session`)                                                   |
| `notAllowed`            | The feature is deactivated in the configuration.   (Configuration of the `content.inventory` field under `backInStock.allow`) |
| `missingInventoryState` | The product has no stock.                                                                                                     |
| `entryExists`           | A notification already exists for the same combination of `productId` and `email`.                                            |

### DELETE account/backInStock/notify

This call deletes the "product back in stock" notification created for the logged-in account.

**Example call that deletes a "product back in stock" notification for the product with the ID** `12345` **and the email address** `<EMAIL>`

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
DELETE https://<your-shop>.de/api/v1/account/backInStock/notify
```

#### Example request

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "email": "<EMAIL>",
  "productId": "12345"
}
```

#### Parameter overview

#### Header parameters

| **Parameter** | **Description**                                                                                                                                                                                                      |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `x-session`   | **Required field**<br />ID of the current session.   <br />More information: [Storefront API Basics](https://websaleag-44ee7ea6.mintlify.app/schnittstellen/storefront-api/storefront-api-basics#3-session-handling) |

#### Body parameters

| **Parameter** | **Type** | **Description**                                                                         |
| ------------- | -------- | --------------------------------------------------------------------------------------- |
| `email`       | string   | **Required field**<br />Email address for which the notification is set up.             |
| `productId`   | string   | **Required field**<br />ID of the product for which the notification should be deleted. |

#### Error codes

| **Code**                | **Description**                                                             |
| ----------------------- | --------------------------------------------------------------------------- |
| `notLoggedIn`           | The session is not logged into any account. (missing / invalid `x-session`) |
| `notAllowed`            | The feature is deactivated in the configuration.                            |
| `missingInventoryState` | The product has no stock.                                                   |

***

## Further methods for customer data

With these methods, the customer account is extended with central self-service functions. Users can view their order history paginated or specifically retrieve individual orders along with their positions, addresses, and payment and shipping details. In addition, you can change the public display name for product reviews and the email address of the account. If needed, a subsequent confirmation by opt-in token is required. The complete lifecycle of passwords is covered: from changing the password while logged in (including optional verification of the current email address and/or the previous password) to the "forgot password" process with recovery email and subsequent reset via an opt-in token.

### GET account/order/list

This call displays the order history of the currently logged-in customer account. It can be used for the "My orders" page in the customer account. Via the query parameters `page` and `size`, pagination can be controlled (e.g. page 1 with ten entries). This way, orders can be loaded page by page and conveniently displayed.

**Example call that displays the order history of page** `1` **with** `10 entries` **of the currently logged-in customer account**

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
GET https://<your-shop>.de/api/v1/account/order/list?page=1&size=10
```

#### Parameter overview

#### Header parameters

| **Parameter** | **Description**                                                                                                                                                                                                      |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `x-session`   | **Required field**<br />ID of the current session.   <br />More information: [Storefront API Basics](https://websaleag-44ee7ea6.mintlify.app/schnittstellen/storefront-api/storefront-api-basics#3-session-handling) |

#### Body parameters

| **Parameter** | **Type** | **Description**                                                                                                                         |
| ------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| `page`        | int      | **Required field**<br />Specifies which page of the order listing should be output.   The parameter must be greater than or equal to 1. |
| `size`        | int      | **Required field**<br />Specifies how many orders should be displayed per page. A number between 1 and 100 is allowed.                  |
| `order`       | string   | Sorting (ID from `general.order`), leave empty for default sorting.                                                                     |

#### Example response

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
   "items" : [
      {
         "billAddress" : {
            "additionalInfo" : "",
            "addressType" : "",
            "businessFax" : "",
            "businessPhone" : "",
            "city" : "Nürnberg",
            "company" : "",
            "country" : "DE",
            "countryName" : "Germany",
            "custom" : null,
            "dateOfBirth" : "",
            "department" : "",
            "fax" : "",
            "firstName" : "Yvonne",
            "lastName" : "Kothmeier",
            "mobilePhone" : "",
            "phone" : "",
            "salutationCode" : "2",
            "salutationText" : "Mrs.",
            "state" : "",
            "street" : "Gutenstetterstraße 2",
            "streetNumber" : "",
            "taxId" : "",
            "titleCode" : "",
            "zip" : "90449"
         },
         "customer" : {
            "accountId" : 88
         },
         "customerData" : {},
         "freeFields" : {
            "agb.checked" : "true",
            "agb.merchantText" : "agb text here",
            "comment.text" : ""
         },
         "general" : {
            "dateTime" : "2025-10-27T16:09:29Z",
            "orderId" : "4438",
            "sessionId" : "67f62f53c064541e51a51a086c9cc9e1a95cb49ff59eb719b11ac2e76742bc90",
            "shopId" : "demo",
            "shopLanguage" : "Deutsch",
            "subshopId" : "deutsch",
            "testMode" : false
         },
         "order" : {
            "currencyIso" : "EUR",
            "currencySymbol" : "€",
            "defaultTaxRate" : "0.1900000",
            "delivererId" : "dhl",
            "delivererOrderText" : "DHL",
            "deliveryCost" : "0.00",
            "deliveryTaxRate" : "0.1900000",
            "fees" : {
               "currencyConversionRate" : 0,
               "feeOrgTotalOrder" : "59.99",
               "feeTotalOrder" : "59.99"
            },
            "paymentId" : "bill",
            "paymentOrderText" : "Invoice (offline)",
            "priceType" : "gross",
            "referer" : "",
            "subreferer" : "",
            "subtotal" : "59.99",
            "tax" : "9.58",
            "total" : "59.99",
            "totalCommission" : "0.00",
            "totalDiscount" : "0.00",
            "totalVoucher" : "0.00",
            "totalWeight" : 0
         },
         "orderList" : {
            "item" : [
               {
                  "basketId" : "342ac4f0c9c59e399c65",
                  "discount" : "0.00",
                  "extraFields" : {},
                  "freeFields" : {
                     "categoryPath" : "Clothing"
                  },
                  "isAutoBasket" : false,
                  "isChangeable" : true,
                  "isRemovable" : true,
                  "isVisible" : true,
                  "itemNumber" : "test",
                  "name" : "Wool coat with tie belt",
                  "orgPrice" : "0.00",
                  "price" : "59.99",
                  "productId" : "155-03082",
                  "quantity" : "1.00",
                  "singleTotal" : "59.99",
                  "taxId" : "19",
                  "taxRate" : "0.1900000",
                  "total" : "59.99",
                  "variantId" : "",
                  "variantSelection" : null,
                  "weight" : 0
               }
            ]
         },
         "shippingAddress" : null,
         "store" : null
      }
   ]
}
```

### GET account/order/get

This call retrieves the details of a specific order of the currently logged-in customer account, for example for the order detail page.

**Example call that retrieves the details for the order with the ID** `4869` **for the currently logged-in customer account**

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
GET https://<your-shop>.de/api/v1/account/order/get?orderId=4869
```

#### Parameter overview

#### Header parameters

| **Parameter** | **Description**                                                                                                                                                                                                      |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `x-session`   | **Required field**<br />ID of the current session.   <br />More information: [Storefront API Basics](https://websaleag-44ee7ea6.mintlify.app/schnittstellen/storefront-api/storefront-api-basics#3-session-handling) |

#### Body parameters

| **Parameter** | **Type** | **Description**                  |
| ------------- | -------- | -------------------------------- |
| `orderId`     | string   | ID of the order to be retrieved. |

#### Example response

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "billAddress": null,
  "customer": {
    "accountId": 126
  },
  "customerData": {},
  "freeFields": {
    "agb.checked": "true",
    "agb.merchantText": "agb text here",
    "comment.text": ""
  },
  "general": {
    "dateTime": "2025-11-06T08:11:18Z",
    "orderId": "4869",
    "sessionId": "68343c298c1e6cd301d18d381a5ad70d73a872fbebfc2d0c4e4a7143214a8333",
    "shopId": "myshop",
    "shopLanguage": "Deutsch",
    "subshopId": "deutsch",
    "testMode": false
  },
  "order": {
    "currencyIso": "EUR",
    "currencySymbol": "€",
    "defaultTaxRate": "0.1900000",
    "delivererId": "hermes",
    "delivererOrderText": "Hermes",
    "delivererType": "standard",
    "deliveryCost": "0.00",
    "deliveryTaxRate": "0.1900000",
    "fees": {
      "currencyConversionRate": 0,
      "feeOrgTotalOrder": "199.00",
      "feeTotalOrder": "199.00"
    },
    "paymentId": "bill",
    "paymentOrderText": "Invoice",
    "priceType": "gross",
    "referer": "",
    "subreferer": "",
    "subtotal": "199.00",
    "tax": "31.77",
    "total": "199.00",
    "totalCommission": "0.00",
    "totalDiscount": "0.00",
    "totalVoucher": "0.00",
    "totalWeight": 0
  },
  "orderList": {
    "item": [
      {
        "basketId": "2014a8373f19d80b99e0",
        "discount": "0.00",
        "extraFields": {},
        "freeFields": {
          "gravur1": "",
          "gravur2": "",
          "gravur3": ""
        },
        "isAutoBasket": false,
        "isChangeable": true,
        "isRemovable": true,
        "isVisible": true,
        "itemNumber": "83-1783-44",
        "name": "New blazer 'Bethy'",
        "orgPrice": "0.00",
        "price": "199.00",
        "productId": "83-1783",
        "quantity": "1.00",
        "singleTotal": "199.00",
        "taxId": "1",
        "taxRate": "0.1900000",
        "total": "199.00",
        "variantId": "5",
        "variantSelection": [
          {
            "attributeId": "Size",
            "optionId": "44"
          }
        ],
        "weight": 0
      }
    ]
  },
  "shippingAddress": null,
  "store": null
}
```

### POST account/displayName/update

This call lets you change the public display name of the currently logged-in customer account. This is the name displayed next to reviews in product reviews.

**Example call that changes the public display name of the currently logged-in user account to** `Name`

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
POST https://<your-shop>.de/api/v1/account/displayName/update
```

#### Example request

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

#### Parameter overview

#### Header parameters

| **Parameter** | **Description**                                                                                                                                                                                                      |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `x-session`   | **Required field**<br />ID of the current session.   <br />More information: [Storefront API Basics](https://websaleag-44ee7ea6.mintlify.app/schnittstellen/storefront-api/storefront-api-basics#3-session-handling) |

#### Body parameters

| **Parameter** | **Type** | **Description**                                    |
| ------------- | -------- | -------------------------------------------------- |
| `displayName` | string   | **Required field**   New display name for reviews. |

#### Example response

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

#### Error codes

| **Code**      | **Description**       |
| ------------- | --------------------- |
| `notLoggedIn` | No user is logged in. |

### POST account/email/update

The following call can be used to change the email address of the logged-in account. Depending on the configuration, an email verification may then be triggered.

**Example call that changes the email address for the currently logged-in user account to** `neue.adresse@example.com`

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
POST https://<your-shop>.de/api/v1/account/email/update
```

#### Example request

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
 { "email": "neue.adresse@example.com" }
```

#### Parameter overview

#### Header parameters

| **Parameter** | **Description**                                                                                                                                                                                                      |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `x-session`   | **Required field**<br />ID of the current session.   <br />More information: [Storefront API Basics](https://websaleag-44ee7ea6.mintlify.app/schnittstellen/storefront-api/storefront-api-basics#3-session-handling) |

#### Body parameters

| **Parameter** | **Type** | **Description**    |
| ------------- | -------- | ------------------ |
| `email`       | string   | New email address. |

#### Error codes

| **Code**               | **Description**                                    |
| ---------------------- | -------------------------------------------------- |
| `emailCheckFailed`     | The specified email has an invalid format.         |
| `accountAlreadyExists` | An account with this email address already exists. |

### POST account/email/verify

The following call confirms the email address using the opt-in token from the confirmation email.

**Example call that verifies the email address using the** `opt-in token <OPT_IN_TOKEN>`

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
POST https://<your-shop>.de/api/v1/account/email/verify
```

#### Example request

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{ "otok": "<OPT_IN_TOKEN>" }
```

#### Parameter overview

#### Header parameters

| **Parameter** | **Description**                                                                                                                                                                                                      |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `x-session`   | **Required field**<br />ID of the current session.   <br />More information: [Storefront API Basics](https://websaleag-44ee7ea6.mintlify.app/schnittstellen/storefront-api/storefront-api-basics#3-session-handling) |

#### Body parameters

| **Parameter** | **Type** | **Description**                                                                                            |
| ------------- | -------- | ---------------------------------------------------------------------------------------------------------- |
| `otok`        | string   | Opt-in token from the confirmation email. Can be a required field or optional.   More info see note above. |

#### Example response

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

#### Error codes

| **Code**           | **Description**                          |
| ------------------ | ---------------------------------------- |
| `actionNotAllowed` | The transmitted opt-in token is invalid. |

### POST account/password/change

This call changes the password of the currently logged-in account. Depending on the shop configuration, the entry of the current password may be required and/or an email confirmation may be triggered.

**Example call to set a new password (**`<NEW_PASSWORD>`**) for the current user account**

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
POST https://<your-shop>.de/api/v1/account/password/change
```

#### Example request

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{ "newPassword": "<NEW_PASSWORD>" }
```

#### Parameter overview

#### Header parameters

| **Parameter** | **Description**                                                                                                                                                                                                      |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `x-session`   | **Required field**<br />ID of the current session.   <br />More information: [Storefront API Basics](https://websaleag-44ee7ea6.mintlify.app/schnittstellen/storefront-api/storefront-api-basics#3-session-handling) |

#### Body parameters

| **Parameter**  | **Type** | **Description**                                                                                                              |
| -------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `newPassword`  | string   | **Required field**<br />The desired new password for the user account.                                                       |
| `email`        | string   | The email address of the account for which the password is to be changed.   Only required if specified in the configuration. |
| `passwordAuth` | string   | Only required if specified in the configuration.                                                                             |

#### Example response

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

#### Error codes

| **Code**              | **Description**                                                                                                     |
| --------------------- | ------------------------------------------------------------------------------------------------------------------- |
| `notLoggedIn`         | The session is not logged in. (missing / invalid `x-session`)                                                       |
| `emailMismatch`       | The specified email address does not match the account.                                                             |
| `missingEmail`        | Email verification has been enabled in the configuration, but `email` is missing in the request.                    |
| `failedPasswordAuth`  | The entered password is incorrect.                                                                                  |
| `missingPasswordAuth` | Verification of the current password is enabled in the configuration, but `passwordAuth` is missing in the request. |
| `passwordCheckFailed` | The new password does not meet the minimum standards. (e.g. length / complexity)                                    |

### POST account/password/forgotten

The following call starts the password reset for the specified email address (an email with further information on the procedure is sent).

**Example call that sends the "forgot password" link to the email address** `kunde@example.com`

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
POST https://<your-shop>.de/api/v1/account/password/forgotten
```

#### Example request

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{ "email": "kunde@example.com" }
```

#### Parameter overview

#### Header parameters

| **Parameter** | **Description**                                                                                                                                                                                                      |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `x-session`   | **Required field**<br />ID of the current session.   <br />More information: [Storefront API Basics](https://websaleag-44ee7ea6.mintlify.app/schnittstellen/storefront-api/storefront-api-basics#3-session-handling) |

#### Body parameters

| **Parameter** | **Type** | **Description**                                       |
| ------------- | -------- | ----------------------------------------------------- |
| `email`       | string   | **Required field**<br />Email address of the account. |

#### Error codes

| **Code**                 | **Description**                                       |
| ------------------------ | ----------------------------------------------------- |
| `emailCheckFailed`       | The specified email address has an invalid format.    |
| `passwordRecoveryFailed` | No account was found for the specified email address. |

### POST account/password/reset

The following call can be used to reset the password using the opt-in token from the "forgot password" email:

**Example call that confirms the password reset for the customer account with the email address** `kundenkonto@example.com` **and sets** `password` **as the new password**

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
POST https://<your-shop>.de/api/v1/account/password/reset
```

#### Example response

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "newPassword": "password",
  "email": "kundenkonto@example.com",
  "otok": "AZ3XHlWGe4E98D4fsJrPhWclSgBBQwAAAAA.ZKgwbjF-IDLuaakADfazRmAWTmjdH-A9W92JtZnPVPQ"
}
```

#### Parameter overview

#### Header parameters

| **Parameter** | **Description**                                                                                                                                                                                                      |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `x-session`   | **Required field**<br />ID of the current session.   <br />More information: [Storefront API Basics](https://websaleag-44ee7ea6.mintlify.app/schnittstellen/storefront-api/storefront-api-basics#3-session-handling) |

#### Body parameters

| **Parameter** | **Type** | **Description**                                                        |
| ------------- | -------- | ---------------------------------------------------------------------- |
| `newPassword` | string   | **Required field**<br />The desired new password.                      |
| `otok`        | string   | **Required field**<br />Opt-in token from the "forgot password" email. |
| `email`       | string   | Only required if email verification is enabled in the configuration.   |

#### Error codes

| **Code**              | **Description**                                                                                     |
| --------------------- | --------------------------------------------------------------------------------------------------- |
| `notLoggedIn`         | The specified opt-in token is invalid or expired.                                                   |
| `emailMismatch`       | The specified email address does not match the account.                                             |
| `missingEmail`        | Email verification is enabled in the configuration, but `email` was not transmitted as a parameter. |
| `passwordCheckFailed` | The new password does not meet the guidelines.                                                      |
