---
title: "Сменить состояние продажи, загруженного этим приложением"
method: POST
path: "/api/v1/app/docflow/sales/{id}/status"
tags: ["App runtime"]
---

# Сменить состояние продажи, загруженного этим приложением

`POST /api/v1/app/docflow/sales/{id}/status`

## Request

- Base URL: `https://erp.akeda.ru`
- URL: `https://erp.akeda.ru/api/v1/app/docflow/sales/{id}/status`
- Auth: HTTP bearer

Состояние самой продажи — draft, confirmed, done или cancelled. Отмена этим путём — та же отмена, что у appDocflowCancelSalesOrder, со всеми её отказами; выполненная продажа снимает недовезённый остаток резерва. Отменённая продажа приложение обратно не открывает (409). Состояния оплаты и отгрузки не назначаются — 409 docflow.sale.state_derived. Повтор того же состояния ничего не меняет и событий не даёт.

## Path parameters

- `id` string, uuid, required

## Headers

- `X-Tenant` string, required

## Request body

- DocflowSalesOrderStatusInput
  - `status` 'draft' | 'confirmed' | 'done' | 'cancelled', required

## Response `200`

Продажа в новом состоянии

- DocflowSalesOrder
  - `id` string, uuid, required
  - `company_id` string, uuid, required
  - `contact_id` string, uuid, required
  - `contract_document_id` string, uuid
  - `number` string
  - `title` string, required
  - `status` 'draft' | 'confirmed' | 'done' | 'cancelled', required
  - `status_id` string, uuid
  - `status_name` string: Имя статуса, которое придумал кабинет
  - `funnel_id` string, uuid
  - `scenario` 'self_service' | 'one_off_sale' | 'contract_sale', required
  - `steps` string[], required
  - `currency` string, required
  - `manager` string
  - `comment` string
  - `external_id` string
  - `buyer` DocflowSalesOrderBuyer: Как покупатель представился в продаже или закупке
    - `name` string
    - `phone` string
    - `email` string
  - `acquiring_amount` string: Сколько подтвердил эквайринг — списания минус возвраты
  - `order_date` string, date
  - `ship_date` string, date
  - `due_date` string, date
  - `discount` string
  - `prices_include_vat` boolean, required
  - `items` DocflowSalesOrderItem[], required
    - `id` string, uuid, required
    - `product_id` string, uuid
    - `title` string, required
    - `kind` string, required
    - `unit` string
    - `quantity` string, required
    - `price` string, required
    - `discount` string
    - `vat_rate` string
    - `position` integer, required
    - `amount` string
  - `amount` string, required
  - `goods_amount` string, required
  - `service_amount` string, required
  - `paid_amount` string, required: Сколько денег пришло на счёт по продаже или закупке
  - `shipped_amount` string, required
  - `invoiced_amount` string, required
  - `closed_amount` string, required
  - `payment_status` 'unpaid' | 'partial' | 'paid', required
  - `shipment_status` 'not_shipped' | 'partial' | 'shipped', required
  - `company_name` string
  - `contact_name` string
  - `contract_title` string
  - `company_archived` boolean
  - `contact_archived` boolean
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

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

---

[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)
