# Сервис уведомлений (Кактус)

Апи для работы с настройкой уведомлений для аккаунта

# /api/lite/domain_notification

### <span style="color: #000000;">Создание нового уведомления  
</span>

/api/lite/domain\_notification

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

```JSON
{
    "notificationType" : "PURCHASE_CREATED",
    "notificationChannels" : ["EMAIL","SMS"],
    "notificationReceivers" : "test@email.com,test2@notasoft.ru"
}
```

<span style="text-decoration: underline;">**Обязательные поля**</span>: notificationType, notificationChannels, notificationReceivers

Также необходимо в **<span style="text-decoration: underline;">Header</span>** добавить **domain**, в котором указать нужный домен магазина и авторизацию

<table cellpadding="2" cellspacing="1" id="bkmrk-notificationtype-enu" width="872"><tbody><tr><td style="padding: 0.05cm; border: 1px double #808080;" width="159">notificationType

</td><td style="padding: 0.05cm; border: 1px double #808080;" width="61">enum

</td><td style="padding: 0.05cm; border: 1px double #808080;" width="635">Может содержать значения -&gt; **<span style="color: #ff0000;">Смотри пункт апи</span>** - "Получение возможных типов уведомлений"

</td></tr><tr><td style="border-top: none; border-bottom: 1px double #808080; border-left: 1px double #808080; border-right: 1px double #808080; padding: 0cm 0.05cm 0.05cm 0.05cm;" width="159">notificationChannels

</td><td style="border-top: none; border-bottom: 1px double #808080; border-left: 1px double #808080; border-right: 1px double #808080; padding: 0cm 0.05cm 0.05cm 0.05cm;" width="61">\[\]enum

</td><td style="border-top: none; border-bottom: 1px double #808080; border-left: 1px double #808080; border-right: 1px double #808080; padding: 0cm 0.05cm 0.05cm 0.05cm;" width="635">Может содержать значения **SMS, EMAIL,TELEGRAM, WHATSAPP**

Так же можно получить все актуальные возможные значения вызвав соответствующий пункт апи

</td></tr><tr><td style="border-top: none; border-bottom: 1px double #808080; border-left: 1px double #808080; border-right: 1px double #808080; padding: 0cm 0.05cm 0.05cm 0.05cm;" width="159">notificationReceivers

</td><td style="border-top: none; border-bottom: 1px double #808080; border-left: 1px double #808080; border-right: 1px double #808080; padding: 0cm 0.05cm 0.05cm 0.05cm;" width="61">String

</td><td style="border-top: none; border-bottom: 1px double #808080; border-left: 1px double #808080; border-right: 1px double #808080; padding: 0cm 0.05cm 0.05cm 0.05cm;" width="635">Логины пользователей через запятую, которым нужно отправить уведомление

</td></tr></tbody></table>

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

возвращается id созданного уведомления

```JSON
{
    "success": true,
    "id": "efea87fb-91d7-b2f6-d705-148727002b13"
}
```

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

```JSON
{
    "success": false,
    "errors": [
        {
            "code": 0,
            "message": "Не задан тип уведомлений"
        }
    ]
}
```

### <span style="color: #000000;">Обновление уведомления</span>

/api/lite/domain\_notification

Для обновления нужно дополнительно указать id, далее указать нужные для обновления поля

```JSON
{
    "id" : "efea87fb-91d7-b2f6-d705-148727002b13",
    "notificationChannels" : ["EMAIL"],
    "notificationReceivers" : "test@email.com"
}
```

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

возвращается id созданного уведомления

```JSON
{
    "success": true,
    "id": "efea87fb-91d7-b2f6-d705-148727002b13"
}
```

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

```JSON
{
    "success": false,
    "errors": [
        {
            "code": 0,
            "message": "Данное уведомление не найдено"
        }
    ]
}
```

# GET /api/lite/domain_notification

### Получение всех уведомлений для аккаунта

/api/lite/domain\_notification

<div id="bkmrk-"><div><svg class="svg-icon" data-icon="link" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></div></div>Метод возвращает список уведомлений текущего аккаунта.

##### <span style="text-decoration: underline;">**Параметры:**</span>

- <span style="text-decoration: underline;">**type** </span>- Тип уведомления для поиска, например PURCHASE\_COMPLETED. Если его указать отфильтрует по данному типу

Пр. `/api/lite/domain_notification/?type=PURCHASE_COMPLETED`

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

```JSON
{
    "success": true,
    "notifications": [
        {
            "id": "efea87fb-91d7-b2f6-d705-148727002b13",
            "notificationType": "PURCHASE_CREATED",
            "notificationChannels": [
                "EMAIL",
                "SMS"
            ],
            "notificationReceivers": "donchenko.y@notasoft.ru"
        }
    ]
}
```

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

<div id="bkmrk--0"></div>```JSON
{
  "success": false,
  "errors": [{"code": 0,"message": "Текст ошибки"}]
}
```

# DELETE  /api/lite/domain_notification

### Удаление уведомления

api/customer/info

Производит удаление данного уведомления.

Параметры:

- id - идентификатор уведомления, которое необходимо удалить

`api/customer/info?id=efea87fb-91d7-b2f6-d705-148727002b13`

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

возвращается id удаленного уведомления

```JSON
{
    "success": true,
    "id": "efea87fb-91d7-b2f6-d705-148727002b13"
}
```

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

```JSON
{
    "success": false,
    "errors": [
        {
            "code": 0,
            "message": "Данное уведомление не найдено"
        }
    ]
}
```

# /api/lite/domain_notification/{id}

### <span style="color: #000000;">Поиск определенного уведомления</span>

/api/lite/domain\_notification/{id}

Производит поиск уведомлния

`/api/lite/domain_notification/efea87fb-91d7-b2f6-d705-148727002b13`

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

возвращается найденное уведомление

```JSON
{
    "id": "efea87fb-91d7-b2f6-d705-148727002b13",
    "notificationType": "PURCHASE_CREATED",
    "notificationChannels": [
        "EMAIL"
    ],
    "notificationReceivers": "test@email.com"
}
```

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

```JSON
{
    "success": false,
    "errors": [
        {
            "code": 0,
            "message": "Данное уведомление не найдено"
        }
    ]
}
```

# /api/lite/domain_notification/types

### Получение возможных типов уведомлений

/api/lite/domain\_notification/types

Метод возвращает список всех возможных типов уведомлений и их значения

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

```JSON
{
    "success": true,
    "types": [
        {
            "type": "PURCHASE_CREATED",
            "value": "Поставка успешно создана"
        },
        {
            "type": "PURCHASE_EXPORTED_FF",
            "value": "Поставка успешно выгружена на Фулфилмент"
        },
        {
            "type": "PURCHASE_EXPORT_FF_ERROR",
            "value": "Ошибка выгрузки на Фулфилмент"
        },
        {
            "type": "PURCHASE_TAKE_IN_PROCESS",
            "value": "Поставка в процессе приемки"
        },
        {
            "type": "PURCHASE_COMPLETED",
            "value": "Поставка успешно принята"
        },
        {
            "type": "PURCHASE_COMPLETED_WITH_DIFFERENCE",
            "value": "Поставка принята с расхождениями"
        },
        {
            "type": "PURCHASE_COMPLETED_WITH_BRAK",
            "value": "Поставка принята с браком"
        },
        {
            "type": "PURCHASE_CANCELED",
            "value": "Поставка отменена"
        },
        {
            "type": "ORDER_CREATED_FROM_CHECKOUT",
            "value": "Оформлен через умную корзину"
        },
        {
            "type": "ORDER_CREATED_FROM_MARKETPLACE",
            "value": "Оформлен по маркетплейсам"
        },
        {
            "type": "ORDER_CREATED_FROM_ESHOP",
            "value": "Оформлен из магазина"
        },
        {
            "type": "ORDER_CREATED_FROM_PRIVATE_API",
            "value": "Оформлен по АПИ менеджера"
        },
        {
            "type": "ORDER_CREATE_ERROR",
            "value": "Ошибка при создании"
        },
        {
            "type": "ORDER_ONLINE_PAID_OK",
            "value": "Успешно оплачен онлайн"
        },
        {
            "type": "ORDER_INSUFFICIENT_RESERVE",
            "value": "Не хватает резервов"
        },
        {
            "type": "ORDER_EXPORT_FF_ERROR",
            "value": "Ошибка выгрузки на Фулфилмент"
        },
        {
            "type": "ORDER_IN_PACKING",
            "value": "На сборке"
        },
        {
            "type": "ORDER_PACKED",
            "value": "Упакован"
        },
        {
            "type": "ORDER_SHIPPED",
            "value": "Отгружен"
        },
        {
            "type": "ORDER_IN_DELIVERY",
            "value": "На доставке"
        },
        {
            "type": "ORDER_AT_TAKEOUT_POINT",
            "value": "Доставлен в ПВЗ/отделение"
        },
        {
            "type": "ORDER_AT_TAKEOUT_POINT_DEADLINE",
            "value": "Доставлен в ПВЗ/отделение, но еще не получен"
        },
        {
            "type": "ORDER_DONE",
            "value": "Выполнен"
        },
        {
            "type": "ORDER_RETURNING",
            "value": "Возвращается"
        },
        {
            "type": "ORDER_RETURNED",
            "value": "Возвращен"
        }
    ]
}
```

# /api/lite/domain_notification/channels

### Получение возможных каналов для отправки уведомлений

/api/lite/domain\_notification/channels

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

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

```JSON
{
    "success": true,
    "types": [
        {
            "type": "SMS",
            "value": "SMS"
        },
        {
            "type": "EMAIL",
            "value": "EMAIL"
        },
        {
            "type": "TELEGRAM",
            "value": "TELEGRAM"
        },
        {
            "type": "WHATSAPP",
            "value": "WHATSAPP"
        }
    ]
}
```