<?xml version="1.0" encoding="UTF-8"?>
<api>
  <api_info>
    <title>Novantix API v1.0</title>
    <description>API для работы с системой Novantix</description>
    <base_url>https://api.novantix.ru/</base_url>
    <version>1.0</version>
  </api_info>
  <auth_types>
    <auth_type>
      <id>none</id>
      <description>Без авторизации</description>
    </auth_type>
    <auth_type>
      <id>credentials</id>
      <description>Логин/пароль</description>
    </auth_type>
    <auth_type>
      <id>key</id>
      <description>API ключ в параметре ?key=</description>
    </auth_type>
  </auth_types>
  <endpoints>
    <endpoint>
      <method>GET</method>
      <path>/docs</path>
      <description>Документация API</description>
      <auth_required>false</auth_required>
      <url_example>https://api.novantix.ru/docs.json</url_example>
    </endpoint>
    <endpoint>
      <method>GET</method>
      <path>/auth/key</path>
      <description>Получение API ключа для доступа к защищенным эндпоинтам</description>
      <auth_required>credentials</auth_required>
      <url_example>https://api.novantix.ru/auth/key.json?user=00002839&amp;pass=********</url_example>
    </endpoint>
    <endpoint>
      <method>GET</method>
      <path>/references/brands</path>
      <description>Получение справочника брендов автозапчастей</description>
      <auth_required>key</auth_required>
      <url_example>https://api.novantix.ru/references/brands.json?key=xxx</url_example>
    </endpoint>
    <endpoint>
      <method>GET</method>
      <path>/ordering/get_stock</path>
      <description>Получение остатков и предложений по артикулу (поиск в базе Novantix). Поиск выполняется в два этапа: 1-й этап — базовый поиск по артикулу (ограниченное число поставщиков); 2-й этап — уточнённый поиск с указанием бренда (полный список поставщиков). Для получения максимально точных результатов рекомендуется передавать brand_id или brand_name. Этап поиска возвращается в поле search_stage каждого элемента ответа.</description>
      <auth_required>key</auth_required>
      <url_example>https://api.novantix.ru/ordering/get_stock.json?items[0][resource_article]=2630035505&amp;items[0][brand_name]=Hyundai&amp;key=xxx</url_example>
    </endpoint>
    <endpoint>
      <method>POST</method>
      <path>/ordering/get_stock</path>
      <description>Получение остатков по артикулу. Поддерживает передачу API ключа в JSON body. Поиск выполняется в два этапа: 1-й этап — базовый поиск по артикулу (ограниченное число поставщиков); 2-й этап — уточнённый поиск с указанием бренда (полный список поставщиков). Для получения максимально точных результатов рекомендуется передавать brand_id или brand_name.</description>
      <auth_required>key</auth_required>
      <url_example>https://api.novantix.ru/ordering/get_stock.json (POST с JSON body)</url_example>
    </endpoint>
    <endpoint>
      <method>GET</method>
      <path>/ordering/add_to_cart</path>
      <description>Добавление товаров в корзину Novantix. Используйте item_id из результатов поиска.. Требуется API ключ для доступа</description>
      <auth_required>key</auth_required>
      <url_example>https://api.novantix.ru/ordering/add_to_cart.json?key=xxx&amp;items[0][item_id]=980139&amp;items[0][count]=1</url_example>
    </endpoint>
    <endpoint>
      <method>GET</method>
      <path>/references/states</path>
      <description>Возвращает справочник статусов заказа с идентификаторами, названиями и типами. Требуется API ключ для доступа.</description>
      <auth_required>key</auth_required>
      <url_example>https://api.novantix.ru/references/states.json?key=xxx</url_example>
    </endpoint>
    <endpoint>
      <method>GET</method>
      <path>/ordering/states/active</path>
      <description>Возвращает список активных заказов и статусы по ним. Требуется API ключ для доступа.</description>
      <auth_required>key</auth_required>
      <url_example>https://api.novantix.ru/ordering/states/active.json?key=xxx</url_example>
    </endpoint>
    <endpoint>
      <method>GET</method>
      <path>/ordering/states</path>
      <description>Возвращает статусы заказов по их идентификаторам. Требуется API ключ для доступа.</description>
      <auth_required>key</auth_required>
      <url_example>https://api.novantix.ru/ordering/states.json?orders[]=123&amp;orders[]=456&amp;key=xxx</url_example>
    </endpoint>
  </endpoints>
  <error_codes>
    <error>
      <code>ERR_SERVER</code>
      <description>Что-то пошло не так. Обратитесь к разработчикам.</description>
    </error>
    <error>
      <code>ERR_API_KEY_EMPTY</code>
      <description>Пустой ключ API</description>
    </error>
    <error>
      <code>ERR_API_KEY_INVALID</code>
      <description>Неверный ключ API</description>
    </error>
    <error>
      <code>ERR_API_VERSION_INVALID</code>
      <description>Неверная версия API</description>
    </error>
    <error>
      <code>ERR_SECURE_CONNECTION_EXPECTED</code>
      <description>Соединение должно быть защищенным (пожалуйста, проверьте, что запрос отправлен через HTTPS)</description>
    </error>
    <error>
      <code>ERR_IP_ADDRESS_FORBIDDEN</code>
      <description>Доступ с Вашего IP адреса запрещен</description>
    </error>
    <error>
      <code>WARN_ARTICLE_IS_AMBIGUOUS</code>
      <description>Пожалуйста, уточните бренд</description>
    </error>
    <error>
      <code>ERR_SEARCH_ITEMS_INVALID</code>
      <description>Неверные товары</description>
    </error>
    <error>
      <code>ERR_SEARCH_WAREHOUSE_TYPE_INVALID</code>
      <description>Неверный тип склада</description>
    </error>
    <error>
      <code>ERR_STATES_ORDERS_IDS_INVALID</code>
      <description>Неверные ID заказов</description>
    </error>
    <error>
      <code>ERR_VALIDATION</code>
      <description>Ошибка валидации параметров</description>
    </error>
    <error>
      <code>ERR_ORDER_FORM_INVALID</code>
      <description>Форма заказа была заполнена некорректно</description>
    </error>
    <error>
      <code>ERR_ORDER_EMPTY</code>
      <description>Невозможно отправить пустой заказ</description>
    </error>
    <error>
      <code>ERR_ORDER_SAVE</code>
      <description>Невозможно сохранить заказ</description>
    </error>
    <error>
      <code>ERR_CONTRACT_RESERVE</code>
      <description>Резервирование недоступно для этого договора</description>
    </error>
    <error>
      <code>ERR_ORDER_REFERENCE_RACE_CONDITION</code>
      <description>Данный заказ уже создается в данный момент</description>
    </error>
    <error>
      <code>ERR_ORDER_REFERENCE_NOT_UNIQUE</code>
      <description>Не уникальный ID заказа</description>
    </error>
    <error>
      <code>ERR_ORDER_ITEMS_RESOURCE_ID</code>
      <description>Неверный ID товара</description>
    </error>
    <error>
      <code>ERR_ORDER_ITEMS_RESOURCE_NOT_FOUND</code>
      <description>Товар не найден</description>
    </error>
    <error>
      <code>ERR_ORDER_ITEMS_WAREHOUSE_ID</code>
      <description>Неверный ID склада</description>
    </error>
    <error>
      <code>ERR_ORDER_ITEMS_WAREHOUSE_NOT_FOUND</code>
      <description>Нет товаров на данном складе</description>
    </error>
    <error>
      <code>ERR_ORDER_ITEMS_DELIVERY_TYPE</code>
      <description>Неверный тип доставки</description>
    </error>
    <error>
      <code>ERR_ORDER_ITEMS_DELIVERY_TYPE_NOT_FOUND</code>
      <description>Данный тип доставки не доступен для данного склада</description>
    </error>
    <error>
      <code>ERR_ORDER_ITEMS_QUANTITY</code>
      <description>Неверное количество товаров</description>
    </error>
    <error>
      <code>ERR_ORDER_ITEMS_MULTIPLICATION_FACTOR</code>
      <description>Количество должно быть кратно минимальному количеству для заказа</description>
    </error>
    <error>
      <code>ERR_ORDER_ITEMS_ZERO_REST_OR_PRICE</code>
      <description>Невозможно заказать товар с нулевой ценой</description>
    </error>
    <error>
      <code>ERR_ORDER_ITEMS_ZERO_DELIVERY_PRICE</code>
      <description>Невозможно заказать товар с нулевой доставкой</description>
    </error>
    <error>
      <code>ERR_ORDER_ITEMS_PRICE_EXPENSIVE</code>
      <description>Цена товара больше, чем указана в запросе</description>
    </error>
    <error>
      <code>ORDER_BY_END_OF_STOCK</code>
      <description>Позиция включена в заказ частично, по фактическому остатку</description>
    </error>
    <error>
      <code>ORDER_ITEMS_QUANTITY_LESS_STOCK</code>
      <description>Невозможно отправить заказ, остаток на складе меньше количества в заказе</description>
    </error>
    <error>
      <code>ORDER_GOODS_OUT_OF_STOCK</code>
      <description>Позиция не включена в заказ ввиду отсутствия на складе</description>
    </error>
    <error>
      <code>ORDER_ALL_GOODS_OUT_OF_STOCK</code>
      <description>Заказ не может быть создан - нет наличия</description>
    </error>
    <error>
      <code>DISPATCH_RUSH_DELIVERY_ADDRESS</code>
      <description>Данный адрес не доступен для данного типа отгрузки</description>
    </error>
    <error>
      <code>DISPATCH_RUSH_DELIVERY_DISABLED</code>
      <description>Срочная доставка не доступна</description>
    </error>
    <error>
      <code>DISPATCH_RUSH_DELIVERY_MIN_SUM</code>
      <description>Минимальная сумма заказа: %s Закажите еще на %s</description>
    </error>
    <error>
      <code>DISPATCH_TYPE_DISABLED</code>
      <description>Выбранный тип отгрузки не доступен</description>
    </error>
    <error>
      <code>DISPATCH_DELIVERY_DISABLED</code>
      <description>Доставка для данного договора не доступна</description>
    </error>
    <error>
      <code>WRONG_DISPATCH_TYPE</code>
      <description>Неверный тип отгрузки. Допустимые значения: 2 (самовывоз), 3 (доставка), 60580 (срочная доставка)</description>
    </error>
    <error>
      <code>PAYMENT_TYPE_DISABLED</code>
      <description>Указан недоступный тип оплаты</description>
    </error>
    <error>
      <code>ORDER_PAYMENT_TYPE_NOT_SPECIFIED</code>
      <description>Не выбран тип оплаты, доступный для договора</description>
    </error>
    <error>
      <code>ORDER_WRONG_PAYMENT_TYPE_NOT_ALLOWED</code>
      <description>Указан недоступный тип оплаты</description>
    </error>
    <error>
      <code>DELIVERY_ADDRESS_IS_EMPTY</code>
      <description>Требуется указать адрес доставки</description>
    </error>
    <error>
      <code>DELIVERY_ADDRESS_FOR_DISPATCH_SELF</code>
      <description>Передан адрес или id доставки при типе доставки самовывоз</description>
    </error>
    <error>
      <code>DELIVERY_ADDRESS_IS_INVALID</code>
      <description>Delivery address is invalid</description>
    </error>
  </error_codes>
</api>