---
title: "Подобрать цены строк"
method: POST
path: "/api/v1/core/prices/resolve"
tags: ["Core directories"]
---

# Подобрать цены строк

`POST /api/v1/core/prices/resolve`

## Request

- Base URL: `https://erp.akeda.ru`
- URL: `https://erp.akeda.ru/api/v1/core/prices/resolve`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Api-Key`
  - OAuth 2 (authorization code, authorization URL `https://erp.akeda.ru/oauth2/authorize`, token URL `https://erp.akeda.ru/oauth2/token`, scopes: `akeda:delegate`)

Одна функция подбора цены для всех документов: продажа — договор, канал, контрагент, вид по умолчанию; закупка — договор, цена поставщика, «Закупочная». Отвечает ценой, видом, источником, датой и документом, минимальной ценой и РРЦ и списком других доступных цен. Ничего не пишет.

## Headers

- `X-Tenant` string, required

## Request body

- CorePriceQuery: Вопрос подбора: какую цену поставит документ. Лестница продажи: договор → канал → контрагент → вид по умолчанию; закупки: договор → цена поставщика → «Закупочная».
  - `side` 'sale' | 'purchase'
  - `date` string, date: Дата документа; пусто — сегодня кабинета.
  - `currency` string: Валюта документа: цена вида в другой валюте пересчитывается по курсу на дату.
  - `prices_include_vat` boolean: Режим НДС документа.
  - `contact_id` string, uuid
  - `contract_id` string, uuid
  - `channel_id` string, uuid: Канал продаж документа — запись справочника sales_channels.
  - `company_id` string, uuid
  - `lines` CorePriceQueryLine[], required
    - `key` string: Ключ строки — возвращается в ответе как есть.
    - `product_id` string, uuid, required
    - `quantity` string
    - `vat_rate` string: Ставка НДС строки для приведения режима цены, например 22%.
    - `price_type_id` string, uuid: Вид цены, выбранный в строке: подбор берёт его, а не лестницу.

## Response `200`

Подобранные цены

- CorePriceResolution
  - `date` string, date, required
  - `lines` CoreResolvedPrice[], required
    - `key` string
    - `product_id` string, uuid, required
    - `price` string: Цена в валюте и режиме НДС документа; пусто — цены нет.
    - `price_type_id` string, uuid
    - `price_type_name` string
    - `source` '' | 'manual' | 'contract' | 'contract_price' | 'channel' | 'contact' | 'contact_price' | 'default' | 'supplier': Откуда цена: manual — введена человеком; contract, channel, contact, default — вид цены договора, канала, контрагента или по умолчанию; contract_price, contact_price — индивидуальная цена; supplier — цена поставщика.
    - `source_name` string: Имя ступени: договор, канал, контрагент.
    - `valid_from` string, date
    - `document_id` string, uuid
    - `document_number` string
    - `currency` string
    - `rate` string: Курс пересчёта в валюту документа, если валюты разные.
    - `includes_vat` boolean, required
    - `vat_adjusted` boolean
    - `discount` string: Скидка строки в процентах.
    - `discount_source` '' | 'contact' | 'price_type'
    - `min_price` string: Минимальная цена на дату в валюте и режиме НДС документа.
    - `rrp` string: РРЦ на дату в валюте и режиме НДС документа.
    - `missing` string: Почему цены нет: no_price, no_rate, no_product.
    - `last_sale` CorePriceSale
      - `document_id` string, uuid, required
      - `number` string, required
      - `date` string, date, required
      - `product_id` string, uuid, required
      - `contact_id` string, uuid
      - `contact_name` string
      - `channel_id` string, uuid
      - `channel_name` string
      - `quantity` string, required
      - `price` string, required
      - `currency` string, required
    - `price_not_needed` boolean: Канал документа цены не требует (attrs.price_mode = not_needed, площадка назначает цену сама): пустая цена — не ошибка.
    - `options` CorePriceOption[], required: Другие доступные цены товара на дату.
      - `price_type_id` string, uuid
      - `price_type_name` string, required
      - `purpose` string, required
      - `source` '' | 'manual' | 'contract' | 'contract_price' | 'channel' | 'contact' | 'contact_price' | 'default' | 'supplier', required: Откуда цена: manual — введена человеком; contract, channel, contact, default — вид цены договора, канала, контрагента или по умолчанию; contract_price, contact_price — индивидуальная цена; supplier — цена поставщика.
      - `price` string, required
      - `valid_from` string, date
      - `current` boolean: Эту цену подбор поставил бы в строку.

## Other responses

- `400`: Некорректный запрос или нарушение бизнес-правила
- `401`: Сессия, ключ или кабинет не подтверждены
- `403`: Текущая роль не имеет требуемого права
- `422`: Запрос разобран, но бизнес-значение недопустимо

---

[API](https://skmtc.dev/akeda/apis/akeda-erp-client-api.md) · [All operations](https://skmtc.dev/akeda/apis/akeda-erp-client-api/llms.txt) · [OpenAPI document](https://skmtc.dev/akeda/apis/akeda-erp-client-api/revisions/3c60ded179f2?raw)
