# Аккаунт

# /api/lite/pub/register

### <span style="color: #000000;">Создание нового аккаунта Кактус Lite </span>

**/api/lite/pub/register**

Для регистрации необходимо выполнить следующий запрос

```JSON
{
   "account":{
      "email":"test@test.ru",
      "phone":"123456",
	  
      "type":"abc" // опциональный параметр кода учетной записи
   }
}
```

В ответ возвращается

#### **Успех**

возвращается jwt токен для доступа в админский api созданного аккаунта, после чего необходимо выполнить запрос инициализации аккаунта (/api/lite/registration\_init)

```JSON
{
"success": true,
"authToken": {
"access_token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhYmNkNTRAYWJjLnJ1IiwiZXhwIjoxNTQ3MjIyOTYwfQ.3NkyrZshkAYJWpIvanKuVv5I5Lqh7gCAojszBys9tOnqOdIpTDm5tCDzDWIt71YuxLBCgwlmC5OiH1Sombp2Hg",
"token_type": "bearer",
"login": "abcd54@abc.ru",
"expires_in": 14400,

"init_state": "0"
}
}
```

#### **Ошибка**

```JSON
{
"success": false,
"errors": [
 {
 "code": 0,
 "message": "Текст ошибки"
 }
]
}
```

# /api/lite/pub/email/quote

### Отправка email с заявкой на консультацию через бэкенд

**/api/lite/pub/email/quote**

Отправка письма с заявкой на консультацию.

Защи/api/lite/pub/email/quщено с помощью reCaptcha (пока не реализовано)

#### **Пример запроса:**

<div id="bkmrk-%7B-%22customername%22%3A%22%D0%92%D0%B0">```Пример
{<br></br>    "customerName":"Вася",<br></br>    "customerPhone": "123456",<br></br>    "customerEmail":"test@test.ru",<br></br>    "title":"Заявка на консультацию",<br></br>    "message":"Мне ничего не понятно, помогите"<br></br>}
```

</div><div data-hasbody="true" data-macro-name="code" id="bkmrk-"><div><div><div></div></div></div></div>#### **Пример успешного ответа:**

<div data-hasbody="true" data-macro-name="code" id="bkmrk-%7B-%22success%22%3A-true-%7D">```
<strong><code class="language-Пример ответа">{<br></br>    "success": true  <br></br>}</code></strong>
```

<div><div><div></div></div></div></div>#### **Пример ошибки:**

<div data-hasbody="true" data-macro-name="code" id="bkmrk-%7B-%22success%22%3A-false%2C-">```
<strong><code class="language-Пример ошибки">{<br></br>    "success": false,<br></br>    "errors": [<br></br>        {<br></br>            "code": 0,<br></br>            "message": "Email не валиден"<br></br>        }<br></br>    ]  <br></br>}</code></strong>
```

<div><div><div></div></div></div></div>

# /api/lite/registration_init

### <span style="color: #000000;">Инициализация нового аккаунта Кактус Lite</span>

/api/lite/<span style="color: #505050;">registration\_init</span>

Для инициализации и заполнения аккаунта начальными данными необходимо выполнить указанный запрос

В ответ возвращается

#### **Успех:**

```JSON
{

"success": true

}
```

#### **Ошибка:**

```JSON
{
"success": false,
"errors": [
{
"code": 0,
"message": "Данный аккаунт уже инициализирован"
}
]
}
```

# /api/lite/pub/password_reset

### <span style="color: #000000;">Запрос на сброс пароля Кактус Lite</span>

<span style="color: #000000;">/api/lite/pub/password\_reset</span>

<span style="color: #000000;">Для запроса сброса необходимо выполнить следующий запрос:</span>

```JSON
{ 
    "email":"test@test.ru"   
}


```

В ответ возвращается

#### **Успех:**

```JSON
{

"success": true

}
```

при этом, по указанному email отправляется письмо со ссылкой вида

[http://localhost:33043/password\_reset\_confirm/?t=6aaccd91-1045-4200-b105-b4db79490fee](http://localhost:33043/password_reset_confirm/?t=6aaccd91-1045-4200-b105-b4db79490fee)

Где адрес сервера будет взят из текущего адреса, включая домен 3 уровня.

срок действия токена - 1 час

Данная ссылка будет открыта пользователем в браузере GET запросом.

js код должен обработать открытие подобной ссылки и вывести пользователю запрос на ввод нового пароля и подтверждение пароля.

По нажатию кнопки подтверждения на данном экране создания нового пароля следует выполнить POST запрос на адрес /api/lite/pub/password\_reset\_confirm с передачей токена из ссылки и нового пароля (см следующий метод).

#### **Ошибка:** 

```
{
"success": false,
"errors": [
 {
 "code": 0,
 "message": "Текст ошибки"
 }
]
}
```

# /api/lite/pub/password_reset_confirm

### <span style="color: #000000;">Сброс пароля </span>

<span style="color: #000000;">/api/lite/pub/password\_reset\_confirm</span>

<span style="color: #000000;">Для сброса необходимо выполнить запрос с передачей временного токена сброса пароля и нового пароля:</span>

```JSON
{ 
    "token":"6aaccd91-1045-4200-b105-b4db79490fee",

    "password": "abcd"
}
```

В ответ возвращается

#### **Успех:**

```JSON
{

"success": true

}
```

#### **Ошибка:** 

```JSON
{
"success": false,
"errors": [
 {
 "code": 0,
 "message": "Текст ошибки"
 }
]
}
```

# /api/lite/notifications

### <span style="color: #000000;">Перечень уведомлений для пользователя</span>

/api/lite/notifications

Возвращает перечень сообщений для пользователя.

По умолчанию, возвращается с указанным количеством (last\_count), начиная от самого последнего.

#### **Запрос:**

<table border="1" id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80-%D0%A2%D0%B8%D0%BF-%2F-%D1%84%D0%BE%D1%80%D0%BC%D0%B0" style="border-collapse: collapse; width: 100%; height: 58px;"><tbody><tr style="height: 29px;"><td style="width: 33.3333%; height: 29px;">**Параметр**</td><td style="width: 33.3333%; height: 29px;">**Тип / формат**</td><td style="width: 33.3333%; height: 29px;">**Описание**</td></tr><tr style="height: 29px;"><td style="width: 33.3333%; height: 29px;">last\_count</td><td style="width: 33.3333%; height: 29px;">integer</td><td style="width: 33.3333%; height: 29px;">Количество сообщений</td></tr></tbody></table>

#### **Пример запроса:**

```JSON
{
    "last_count":10
}
```

#### **Результат запроса:**

<table border="1" id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80-%D0%A2%D0%B8%D0%BF-%2F-%D1%84%D0%BE%D1%80%D0%BC%D0%B0-0" style="border-collapse: collapse; width: 100%; height: 58px;"><tbody><tr style="height: 29px;"><td style="width: 33.3333%; height: 29px;">**Параметр**</td><td style="width: 33.3333%; height: 29px;">**Тип / формат**</td><td style="width: 33.3333%; height: 29px;">**Описание**</td></tr><tr style="height: 29px;"><td style="width: 33.3333%; height: 29px;">notifications</td><td style="width: 33.3333%; height: 29px;">array</td><td style="width: 33.3333%; height: 29px;">Массив уведомлений</td></tr></tbody></table>

#### **Пример результата запроса:**

```JSON
{
    "success": true,
    "notifications": [
        {
            "date":"2019-01-09T20:00:02",
            "text":"Уведомление 1"
        },
        {
            "date":"2019-01-09T20:00:01",
            "text":"Уведомление 2"
        }
    ]
}
```

<div id="bkmrk-"><table class="relative-table confluenceTable tablesorter tablesorter-default stickyTableHeaders" role="grid" style="width: 58.1654%; padding: 0px;"><colgroup><col></col><col></col><col></col></colgroup><thead class="tableFloatingHeaderOriginal"></thead></table>

</div>

# /api/lite/account_info

### <span style="color: #000000;">Запрос данных аккаунта</span>

<span style="color: #000000;">/api/lite/account\_info</span>

<span style="color: #000000;">Метод возвращает информацию о текущем аккаунте.</span>

<table class="relative-table wrapped confluenceTable tablesorter tablesorter-default" id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80-%D0%A2%D0%B8%D0%BF-%2F-%D1%84%D0%BE%D1%80%D0%BC%D0%B0" role="grid" style="width: 100.4%; height: 372px;"><tbody aria-live="polite" aria-relevant="all"><tr style="height: 29px;"><td style="width: 19.7531%; height: 29px;">**Параметр**</td><td style="width: 18.0247%; height: 29px;">**Тип / формат**</td><td style="width: 62.2222%; height: 29px;">**Описание**</td></tr><tr role="row" style="height: 55px;"><td class="confluenceTd" style="width: 19.7531%; height: 55px;">login

</td><td class="confluenceTd" style="width: 18.0247%; height: 55px;">string

</td><td class="confluenceTd" style="width: 62.2222%; height: 55px;">Логин пользователя

</td></tr><tr role="row" style="height: 122px;"><td class="confluenceTd" style="width: 19.7531%; height: 122px;">domains

</td><td class="confluenceTd" style="width: 18.0247%; height: 122px;">array\[object\]

</td><td class="confluenceTd" style="width: 62.2222%; height: 122px;">Массив доменов, связанных с аккаунтом

- domain - домен 3 уровня
- auto\_generated - флаг, что домен автосоздан при регистрации

</td></tr><tr role="row" style="height: 111px;"><td class="confluenceTd" style="width: 19.7531%; height: 111px;">balance

</td><td class="confluenceTd" style="width: 18.0247%; height: 111px;">object

</td><td class="confluenceTd" style="width: 62.2222%; height: 111px;">Информация о балансе:

- total - общий остаток на счете
- reserved - заблокированная сумма
- available - доступный остаток

</td></tr><tr><td style="width: 19.7531%;"><div><div>billingBalance</div></div></td><td style="width: 18.0247%;">object

</td><td style="width: 62.2222%;">Информация о балансе (биллинг):

- total - общий баланс / задолженность
- <div><div>expired - просроченная задолженность</div></div>

</td></tr><tr role="row" style="height: 55px;"><td class="confluenceTd" style="width: 19.7531%; height: 55px;">pickupSettings

</td><td class="confluenceTd" style="width: 18.0247%; height: 55px;">object

</td><td class="confluenceTd" style="width: 62.2222%; height: 55px;">Настройки точки сбора (см описание метода /api/lite/settings/pickup)

</td></tr><tr><td style="width: 19.7531%;"><span aria-label="Описание Если в настройках аккаунта в GET /api/lite/account_info
поле b2bFlagAllowed = true  - то в заказе отобразить флаг &quot;B2B заказ&quot;
в разделе Дополнительно

Заполнять из бэка/передавать на бэк в поле b2bFlag в заказе.: Редактирование" class="inline-edit--display-field description -editable" data-field-name="description" role="button" tabindex="0">b2bFlagAllowed</span></td><td style="width: 18.0247%;">boolean

</td><td style="width: 62.2222%;">Настройка для выгрузки B2B заказов -- если true, то в заказе появится галка "B2B заказ"  
\*Настройка для B2B включается по запросу клиента; по умолчанию не используется.</td></tr></tbody></table>

#### **Пример результата запроса:**

```JSON
{
  "success": true,
  "login": "tatiana.bogatel@theroadwear.com",
  "domains": [
    {
      "domain": "shop2151264",
      "auto_generated": true,
      "external_domain": false
    },
    {
      "domain": "theroadwear",
      "auto_generated": false,
      "external_domain": false
    }
  ],
  "balance": {
    "total": 0,
    "reserved": 0,
    "available": 0
  },
  "billingBalance": {
    "total": -79446.00,
    "expired": -2000.00
  },
  "pickupSettings": {
    "person_full_name": "Фарид",
    "person_phone": "+79999999999",
    "address": {
      "country": "Россия",
      "countryCode": "RU",
      "region": "Московская область",
      "area": "Чеховский район",
      "city": "Чехов",
      "settlement": "сельское поселение Баранцевское, в районе деревни Лешино, пром. зона «Лешино»",
      "street": "",
      "house": "владение 1",
      "block": "",
      "building": "СТРОЕНИЕ 1",
      "flat": null,
      "fullAddress": "142326, РФ, Московская область, Чеховский район, сельское поселение Баранцевское, в районе деревни Лешино, промышленная зона «Лешино», владение 1, строение 1",
      "fullCity": null,
      "rawData": null,
      "zip": "142326",
      "regionFias": "29251dcf-00a1-4e34-98d4-5c47484a36d4",
      "areaFias": null,
      "cityFias": "7eeb876e-7b67-4ed7-91ec-0588712db96c",
      "settlementFias": "5f12f12b-42b3-4f89-b214-d8ab9c10e9f8"
    }
  },
  "shopId": "2151264",
  "shopName": "ООО «Роуд Продакшн»",
  "orderSummary": {
    "DELIVERED": 24,
    "RETURNED": 2,
    "CANCELED": 62
  },
  "autoBlockAccount":true,
  "tempBlockAccount":true,
  "tempBlockAccountReason":"Временно заблокирован"
}
```

#### **Ошибка:** 

```JSON
{
"success": false,
"errors": [
 {
 "code": 0,
 "message": "Текст ошибки"
 }
]
}
```

# /api/lite/privileges

### Запрос текущих привилегий

/api/lite/privileges

Метод возвращает список текущих привилегий авторизованного пользователя

#### **Пример результата запроса:**

```JSON
{
    "privileges": [
      "DASHBOARD_DATA_READ", 
      "SETTINGS_READ", 
      "ORDERS_READ"
    ]
}
```