---
title: "Завести версию своего приложения"
method: POST
path: "/api/v1/developer/apps/{key}/versions"
tags: ["Developer account"]
---

# Завести версию своего приложения

`POST /api/v1/developer/apps/{key}/versions`

## Request

- Base URL: `https://erp.akeda.ru`
- URL: `https://erp.akeda.ru/api/v1/developer/apps/{key}/versions`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Опубликовать версию здесь НЕЛЬЗЯ, и поля состояния в теле нет вовсе. Публикация — отдельное решение с отдельными воротами, а поле состояния в теле запроса и есть их обход: одно значение отменяло бы весь разбор совместимости и безопасности.

Тело умеет ровно один переключатель — черновик или отправка на ревью. Выпущенная версия неизменна: правка — это новая версия, а не новый манифест под старым номером.

## Path parameters

- `key` string, required

## Request body

- DeveloperAppVersionInput
  - `version` string, required: Номер версии
  - `manifest` object, required: Манифест версии целиком
  - `manifest_digest` string: Digest пакета: без него подмену артефакта не с чем сравнить
  - `requested_scopes` string[]: Что версия просит; одобряет кабинет при установке
  - `review` boolean: Отправить версию на ревью вместо черновика. Опубликовать этим полем нельзя: публикация идёт через ворота

## Response `200`

Версия заведена или переиздана

- DeveloperAppVersionResult
  - `version` PlatformAppVersion, required
    - `id` string, uuid, required
    - `app_id` string, uuid, required
    - `version` string, required
    - `manifest` object, required: Манифест версии целиком; источник правды о правах и политике данных
    - `manifest_digest` string, required: Digest пакета: без него подмену артефакта не с чем сравнить
    - `requested_scopes` string[], required: Что версия просит; одобренное живёт у установки
    - `status` 'draft' | 'review' | 'published' | 'deprecated' | 'blocked', required: Установке выдаются только published и deprecated; blocked — результат провала проверки пакета и предыдущую рабочую версию не трогает
    - `released_at` string, date-time
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required

## Other responses

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

---

[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/a99574d597cc?raw)
