---
title: "Выпустить учётные данные приложения"
method: POST
path: "/api/v1/developer/apps/{key}/keys"
tags: ["Developer account"]
---

# Выпустить учётные данные приложения

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

## Request

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

Значение возвращается РОВНО ЗДЕСЬ и ровно один раз. Второго способа его узнать нет: показать значение повторно можно только храня его восстановимым, а восстановимое хранение меняет «утёк один ключ» на «утекли все ключи вместе с ключом шифрования».

Действие человеческое: ключ приложения его не выполняет. Ключ, умеющий выпустить следующий ключ, не отзывается никогда — укравший печатает себе замену раньше, чем владелец нажмёт «отозвать».

Второй бессрочный ключ рядом с текущим не выпускается: замена идёт ротацией, у которой есть перекрытие.

## Path parameters

- `key` string, required

## Request body

- DeveloperAppKeyInput
  - `name` string: Человеческое имя ключа для списка

## Response `201`

Учётные данные выпущены; значение показано один раз

- DeveloperIssuedAppKey
  - `key` DeveloperAppKey, required
    - `id` string, uuid, required
    - `app_id` string, uuid, required
    - `name` string, required: Человеческое имя ключа: вежливость, а не учётные данные
    - `hint` string, required: Последние знаки значения. Не секрет: по ним ключ не восстанавливается, а без них список не отвечает на вопрос «какой из них отзывать»
    - `issued_at` string, date-time, required
    - `issued_by` string, uuid
    - `rotated_from_id` string, uuid
    - `rotated_at` string, date-time
    - `expires_at` string, date-time: Конец перекрытия. Пусто у текущего ключа: он живёт до собственной ротации или отзыва
    - `revoked_at` string, date-time
    - `revoke_reason` string, required
    - `last_used_at` string, date-time: Когда этим ключом ходили в последний раз: единственный ответ на вопрос «можно ли уже отозвать вон тот»
  - `secret` string, 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/3c60ded179f2?raw)
