Перейти к основному содержанию
POST
Выпустить ключ

Авторизации

tungo.session_token
string
cookie
обязательно

Сессия кабинета: cookie ставит вход через /v1/auth/* (Better Auth), браузер шлёт её сам — фронтенду кабинета ничего добавлять не нужно (fetch с credentials: 'include'). За HTTPS имя cookie — __Secure-tungo.session_token. Сессия кончилась — 401 authentication_error: отправить на вход.

Заголовки

Idempotency-Key
string

Ключ повтора (например, UUID): повтор с тем же ключом и тем же телом не выполняет действие второй раз, а отдаёт прежний ответ

Maximum string length: 255

Параметры пути

ws
string
обязательно

id организации (workspace), ws_… — из GET /v1/workspaces

Тело

application/json

Новый ключ API.

name
string
обязательно

Название ключа для людей (1–100 знаков): где он используется

Required string length: 1 - 100
Пример:

"Интеграция с CRM"

permissions
string[]
обязательно

Права ключа (1–20): company.read — читать данные компаний (добавляется всегда, даже если не передано); chat.use — работать с ИИ-бухгалтером; proposals.create — готовить документы для 1С; proposals.approve — одобрять запись документов в 1С; automations.read — видеть хуки, сценарии и журнал запусков; automations.manage — менять и запускать автоматизации; webhooks.manage — вебхуки всей организации (только у ключа на все её компании). Ни одно право не шире прав создателя

Required array length: 1 - 20 elements
Пример:
company_ids
string[]

Компании, к которым ключ даёт доступ (co_…), от 1 до 200; все — из этой организации, и в каждой у создателя должны быть выдаваемые права. Для webhooks.manage — обязательно все компании организации. Обязательно, если не all_companies

Required array length: 1 - 200 elements
Пример:
all_companies
boolean

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

Пример:

false

expires_at
string<date-time> | null

Когда ключ перестанет действовать, ISO 8601; только в будущем и не дальше настройки платформы (по умолчанию 365 дней). null или нет — через срок по умолчанию (90 дней)

Пример:

"2027-01-31T19:00:00Z"

monthly_cap_tiyn
integer | null

Месячный потолок расхода ИИ по ключу в тиынах (1 ₸ = 100 тиын), календарный месяц по Алматы; дойдя до него, вызовы ИИ по ключу отклоняются до 1-го числа. null — без потолка ключа

Требуемый диапазон: x >= 0
Пример:

500000

allowed_ips
string[] | null

С каких адресов ключ работает: IP или подсети CIDR (до 100), IPv4 и IPv6. С другого адреса — 403, error.code ip_not_allowed. null — с любых

Required array length: 1 - 100 elements
Maximum string length: 64
Пример:
write_max_amount_per_document_tiyn
integer | null

Предел записи в 1С по ключу: потолок суммы одного документа, который ключ одобряет (approve, approve-batch), в тиынах (1 ₸ = 100 тиын). Документ дороже или без известной суммы ключ не запишет (403, error.code key_write_limit) — его запишет человек. null — без предела. При изменении: не передан — не меняется; снять или поднять — только создатель ключа

Пример:

50000000

write_max_amount_per_day_tiyn
integer | null

Предел записи в 1С по ключу: сумма всех документов, одобренных ключом за день по Алматы, в тиынах. Документ с неизвестным исходом записи (1С не ответила) тоже считается. null — без предела. При изменении: не передан — не меняется; снять или поднять — только создатель ключа

Пример:

200000000

write_kinds
enum<string>[] | null

Предел записи в 1С по ключу: какие виды документов ключ может одобрять (как kinds правила автоодобрения: sale, purchase, bank_receipt, bank_payment, counterparty, contract, inventory_writeoff, cash_order_in, cash_order_out, advance_report, revert). null — любые. Без всех трёх пределов ключ с proposals.approve пишет в 1С без ограничений — тогда в ответе предупреждение write_unlimited. При изменении: не передан — не меняется; снять или добавить вид — только создатель ключа

Required array length: 1 - 20 elements
Доступные опции:
sale,
purchase,
bank_receipt,
bank_payment,
counterparty,
contract,
inventory_writeoff,
cash_order_in,
cash_order_out,
advance_report,
revert
Пример:

Ответ

Выпущен

Выпущенный ключ — с секретом один раз.

id
string
обязательно

id ключа (key_…) — для адресов …/api-keys/{id}

Пример:

"key_01h455vb4pex5vsknk084sn02q"

name
string
обязательно

Название ключа для людей

Пример:

"Интеграция с CRM"

prefix
string
обязательно

Открытая часть ключа для показа — узнать ключ среди других; сам ключ (tg_…_секрет) целиком не хранится

Пример:

"tg_ab12cd34ef56"

workspace_id
string
обязательно

Организация ключа (ws_…)

Пример:

"ws_01h455vb4pex5vsknk084sn02q"

created_by
string
обязательно

Кто выпустил (usr_…). Ключ действует от его имени и не шире его прав: создатель перестал быть владельцем или админом — ключ не работает

company_ids
string[]
обязательно

Компании, к которым ключ даёт доступ (co_…); пусто у ключа на все компании (all_companies)

all_companies
boolean
обязательно

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

allowed_ips
string[] | null
обязательно

С каких IP и подсетей CIDR ключ работает; с другого адреса — 403 ip_not_allowed. null — с любых

Пример:
permissions
enum<string>[]
обязательно

Права ключа: company.read — читать данные компаний (есть всегда); chat.use — работать с ИИ-бухгалтером; proposals.create — готовить документы для 1С; proposals.approve — одобрять запись в 1С; automations.read — видеть автоматизации; automations.manage — менять и запускать автоматизации; webhooks.manage — вебхуки всей организации

Доступные опции:
company.read,
chat.use,
proposals.create,
proposals.approve,
automations.manage,
automations.read,
webhooks.manage
status
enum<string>
обязательно

Состояние: active — действует; disabled — выключен (disabled_at), не работает, можно включить; expired — истёк срок (expires_at), не работает; revoked — отозван (revoked_at), не работает. Неактивные показывать серыми

Доступные опции:
active,
disabled,
expired,
revoked
expires_at
string<date-time>
обязательно

Когда ключ перестаёт действовать, ISO 8601 UTC (срок есть у каждого ключа)

Пример:

"2026-10-05T09:30:00.000Z"

monthly_cap_tiyn
integer | null
обязательно

Месячный потолок расхода ИИ по ключу в тиынах (1 ₸ = 100 тиын; показывать значение / 100 ₸), календарный месяц по Алматы; null — без потолка ключа

write_max_amount_per_document_tiyn
integer | null
обязательно

Предел записи в 1С по ключу: потолок суммы одного документа, который ключ одобряет (approve, approve-batch), в тиынах (1 ₸ = 100 тиын). Документ дороже или без известной суммы ключ не запишет (403, error.code key_write_limit) — его запишет человек. null — без предела

write_max_amount_per_day_tiyn
integer | null
обязательно

Предел записи в 1С по ключу: сумма всех документов, одобренных ключом за день по Алматы, в тиынах. Документ с неизвестным исходом записи (1С не ответила) тоже считается. null — без предела

write_kinds
string[] | null
обязательно

Предел записи в 1С по ключу: какие виды документов ключ может одобрять (как kinds правила автоодобрения: sale, purchase, bank_receipt, bank_payment, counterparty, contract, inventory_writeoff, cash_order_in, cash_order_out, advance_report, revert). null — любые. Без всех трёх пределов ключ с proposals.approve пишет в 1С без ограничений — тогда в ответе предупреждение write_unlimited

created_at
string<date-time>
обязательно

Когда выпущен, ISO 8601 UTC

Пример:

"2026-10-05T09:30:00.000Z"

last_used_at
string<date-time> | null
обязательно

Когда ключом пользовались последний раз, ISO 8601 UTC (точность — около минуты); null — ещё ни разу

Пример:

"2026-10-05T09:30:00.000Z"

last_used_ip
string | null
обязательно

С какого IP-адреса был последний запрос; null — ещё ни разу

Пример:

"203.0.113.10"

revoked_at
string<date-time> | null
обязательно

Когда отозван, ISO 8601 UTC; null — не отозван

Пример:

"2026-10-05T09:30:00.000Z"

disabled_at
string<date-time> | null
обязательно

Когда выключен, ISO 8601 UTC; null — не выключен

Пример:

"2026-10-05T09:30:00.000Z"

previous_secret_valid_until
string<date-time> | null
обязательно

После смены секрета (roll): до какого времени ещё действует прежний, ISO 8601 UTC; null — прежнего нет

Пример:

"2026-10-05T09:30:00.000Z"

key
string | null
обязательно

Ключ целиком (tg_…) — только в этом ответе: показать один раз с кнопкой «Скопировать» и предупреждением, что больше его не увидеть. В повторе по Idempotency-Key — null

Пример:

"tg_ab12cd34ef56_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

warnings
object[]
обязательно

Ключ сохранён, но вызовы ИИ по нему сейчас не пройдут или он пишет в 1С без пределов: баланс платформы пуст (402 platform_balance_exhausted), подключение компании не оплачено (402 onboarding_unpaid), потолок ключа меньше оценки вызова (402 key_cap_reached). Пустой список — всё в порядке.

key_note
string

Только в повторе по Idempotency-Key: почему key = null и что делать, если ключ потерян (отозвать и выпустить новый)