---
# System prepended metadata

title: Viento API
tags: [Viento]

---

# Viento API
###### tags: `Viento`
- **Endpoints:** 
  - **staging:** https://viento.syberland.ru/api/1s
  - **production:** `todo`
- **API key:** 
  - **staging:** abcde12345
  - **production:** `todo`

> Передаем ключ как get параметер `api_key`


:::danger
 цены передаются целыми числами (в копейках)
:::

:::warning
 :warning: стандартные коды ошибок (401 и т.п.) тут не описываем
:::

## Информация о пользователе

- **Path:** /user/{uuid}
- **Method:** GET
- **Parameters:** 
    - uuid `string` _uuid пользователя_
- **Request body:** null
- **Responces:** 
    - 200: информация о пользователе
      - uuid `string` _uuid пользователя_
      - role `string` _роль пользователя_
    - 404: пользователь с данным uuid не найден

## Создание нового заказа

- **Path:** /order
- **Method:** POST
- **Request body:** 
  - uuid `string` uuid заказа
  - number `string` номер заказа
  - comment `text` комментарий
  - user `object` 
    - uuid `string` _uuid пользователя, создающего заказ_
    - name `string` _ФИО пользователя_
  - client `object` 
    - uuid `string` _uuid клиента_
    - inn `string` _ИНН клиента_
    - ogrn `string` _ОГРН клиента_ 
    - name `string` _Наименование клиента_
    - manager_uuid `string` _uuid менеджера клиента_
  - goods `array` 
      - good `object` 
        - uuid `string` _uuid товара_
        - article `string` _Артикул товара_
        - name `string` _Наименование товара_
        - qty `integer` _Количество товара_
        - for_assembly_qty `integer` _Количество товара на сборку_ *****
        - stock_qty `integer` _Количество товара на складе_
        - reserved_qty `integer` _Зарезервированное количество товара на складе под этот заказ_ 
        - reserved_qty_total `integer` _Зарезервированное количество товара на складе_ 
        - price_per_item `integer` _Цена за штуку_
        - price_total `integer` _Стоимость_
        - nesting `string` _Вложимость_ уточнить формат
- **Responces:** 
    - 201: заказ создан
    - 403: у данного пользователя нет прав на создание заказа
    - 422: ошибка при валидации входных параметров


::: spoiler
### Примеры ###
***Url для теста***: https://viento.syberland.ru/api/order?api_key=abcde12345

***JSON для request body***:

```
{
    "uuid": "e5308e14-cbe6-11ea-8435-fa83dbaf764d",
    "number": "223",
    "user": {
      "uuid": "06257aec-571c-3c4a-a238-ebfda5e259ef",
      "name": "Иванов И.П."
    },
    "client": {
      "inn": "6230112711",
      "name": "ТД Инструментальные технологии ООО"
    },
    "goods": [
        {
            "uuid": "d03efaf0-f506-11e7-88a9-00155d000a00",
            "name": "DB130-05-00.400U0-WJ30UU",
            "qty": 5,
            "stock_qty": 5,
            "price_per_item": 100,
            "price_total": 500,
            "nesting": 4
        },
        ...
        {
            "uuid": "64ace21c-efc3-11e3-b3a1-14dae9b74559",
            "name": "Рулон нетканного волокна NTR115x10MT Gr.AM-I",
            "qty": 2,
            "stock_qty": 1,
            "price_per_item": 350,
            "price_total": 700,
            "nesting": 4
        }
    ]
}
```
:::



## Список текущих заказов

- **Path:** /order
- **Method:** GET
- **Request body:** null
- **Responces:** 
    - 200: список заказов
      - `array` 
          - order `object` 
            - uuid `string` _uuid заказа_
            - status `string` _Статус заказа_

::: spoiler
### Примеры ###
***Url для теста***: https://viento.syberland.ru/api/order?api_key=abcde12345

***Response body JSON***:

```
{

  "data": [
    {
      "uuid": "06257aec-571c-3c4a-a238-ebfda5e259ef",
      "status": "готов к отгрузке",
    },
    {
      "uuid": "a344a51d-12be-3b7e-87cc-38314411c4f4",
      "status": "ожидание доукомплектации",
    },
    {
      "uuid": "4f6b227c-20d3-3834-9553-11669bcac123",
      "status": "сборка завершена",
    }
    ]
}
```
:::


## Информация по заказу

- **Path:** /order/{uuid}
- **Method:** GET
- **Parameters:** 
    - uuid `string` _uuid заказа_
- **Request body:** null
- **Responces:** 
    - 200: информация о заказе
      - uuid `string` _uuid заказа_
      - status `string` _Статус заказа_
      - goods `array` 
        - good `object` 
          - uuid `string` _uuid товара_
          - qty `integer` _Количество товара_
          - collected_qty `integer` _Собранное количество товара_
    - 404: заказ с данным uuid не найден
::: spoiler
### Примеры ###
***Url для теста***: https://viento.syberland.ru/api/order/e5308e14-cbe6-11ea-8435-fa83d7baf768i7678/order?api_key=abcde12345

***Response body JSON***:

```
{
  "data": {
    "uuid": "8a7949e7-4971-3a86-83b4-4c2fdd4ec3a4",
    "status": "не хватает позиций",
    "goods": [
      {
        "uuid": "2a713b18-7c03-32bb-9be0-2a668de9286f",
        "qty": "13",
        "collected_qty": "7"
      },
      {
        "uuid": "2f77baac-788e-3f98-b391-d60ff4a3ecce",
        "qty": "531",
        "collected_qty": "360"
      },
      {
        "uuid": "1e1e0139-2593-35c0-883e-6f8e128562e0",
        "qty": "304",
        "collected_qty": "195"
      }
    ]
  }
}
```
:::

## Загрузка документа

Загружаем PDF-файл (УПД, ТТН) сервер

- **Path:** /upload
- **Method:** POST
- **Request body:** 
  - file `file` pdf файл
- **Responces:** 
    - 201: загружен
        - file `string` _имя файла на сервере_
    - 422: ошибка при загрузке файла 
::: spoiler
### Пример ответа при корректной загрузке
***Response body JSON***:

```
{
  "data": {
    "file": "docs\/svgndJ2JhqgArmFbxy8z8x2WZFEXDrjZdByfdi9U.pdf"
  }
}
```
:::

## Перевод заказа в статус "Ожидание доукомплектации"

- **Path:** /wait
- **Method:** POST
- **Request body:** 
  - uuid `string` uuid заказа
  - user `object` 
    - uuid `string` _uuid пользователя, редактирующего заказ_
    - name `string` _ФИО пользователя_
- **Responces:** 
    - 204: статус заказа изменен
    - 403: у данного пользователя нет прав на изменение данного заказа
    - 409: неверный статус заказа _(должен быть 'Сборка некомплектна')_
    - 422: ошибка при валидации входных параметров

## Перевод заказа в статус "Согласовано к отгрузке"

- **Path:** /ready
- **Method:** POST
- **Request body:** 
  - uuid `string` uuid заказа
  - user `object` 
    - uuid `string` _uuid пользователя, редактирующего заказ_
    - name `string` _ФИО пользователя_
  - goods `array` 
      - good `object` 
        - uuid `string` _uuid товара_
        - name `string` _Наименование товара_
        - qty `integer` _Количество товара_
        - price_per_item `integer` _Цена за штуку_
        - price_total `integer` _Стоимость_
  - files `array` _файлы должны быть предварительно загружены на сервер!_
    - upd `string` _имя файла УПД на сервере_
    - ttn `string` _имя файла ТТН на сервере_
- **Responces:** 
    - 204: статус заказа изменен
    - 403: у данного пользователя нет прав на изменение данного заказа
    - 409: неверный статус заказа _(должен быть 'Заказ собран')_
    - 422: ошибка при валидации входных параметров

## Перевод заказа в статус "Согласовано к отгрузке некомплект"

- **Path:** /ready_incomplete
- **Method:** POST
- **Request body:** 
  - uuid `string` uuid заказа
  - user `object` 
    - uuid `string` _uuid пользователя, редактирующего заказ_
    - name `string` _ФИО пользователя_
  - goods `array` 
      - good `object` 
        - uuid `string` _uuid товара_
        - name `string` _Наименование товара_
        - qty `integer` _Количество товара_
        - price_per_item `integer` _Цена за штуку_
        - price_total `integer` _Стоимость_
  - files `array` _файлы должны быть предварительно загружены на сервер!_
    - upd `string` _имя файла УПД на сервере_
    - ttn `string` _имя файла ТТН на сервере_
- **Responces:** 
    - 204: статус заказа изменен
    - 403: у данного пользователя нет прав на изменение данного заказа
    - 409: неверный статус заказа _(должен быть 'Сборка некомплектна')_
    - 422: ошибка при валидации входных параметров