Сценарий с ИИ (action: agent) сохраняет тот, у кого есть chat.use; правило автоодобрения — тот, у кого есть proposals.approve; ключ API с пределами записи — только не шире своих пределов (видов и потолков), иначе 403 с error.code = key_write_limit. Сохранённый ключом сценарий и при запуске пишет в 1С сам только в пределах этого ключа на тот момент; отозванный ключ — не запускается. Запуск идёт от имени сохранившего. Сколько сценариев у компании — предел настройки automations (scenarios_per_company), сверх — 429.
Idempotency-Key: повтор с тем же ключом и тем же телом отдаёт прежний ответ (статус и тело) с заголовком Idempotent-Replayed: true и ничего не делает второй раз; тот же ключ с другим адресом или телом — 422 (error.code = idempotency_key_reused); первый запрос с этим ключом ещё идёт — 409 (error.code = idempotency_in_progress). Запоминается только удачный ответ (2xx): после отказа повтор с тем же ключом выполнится заново. Ключ живёт сутки (настройка idempotency.keys), область — организация и тот, кто прислал (ключ API или человек).
Сессия кабинета: cookie ставит вход через /v1/auth/* (Better Auth), браузер шлёт её сам — фронтенду кабинета ничего добавлять не нужно (fetch с credentials: 'include'). За HTTPS имя cookie — __Secure-tungo.session_token. Сессия кончилась — 401 authentication_error: отправить на вход.
Старая форма — один шаг (вместо него можно steps). Что делать при запуске. agent (по умолчанию) — ход ИИ-бухгалтера по поручению instruction: ИИ разбирает событие и данные 1С и готовит предложения — документы для записи в 1С; расход ИИ оплачивается как обычный. checks — проверки учёта компании (без ИИ и без предложений; находки — в ленте). directbank — опрос выписки DirectBank из живой 1С (без ИИ, нужно право proposals.create): предложения ложатся выпиской дня. Сам Tungo выписку не опрашивает — только этим сценарием или POST …/statements/directbank.
Старая форма — поручение единственного шага. Поручение ИИ обычными словами. Для action: agent обязательно (длина — не больше настройки платформы instruction_max_chars); для checks и directbank не нужно.
Maximum string length: 100000
Пример:
"Разнеси оплату из события: найди покупателя по БИН и проведи поступление на расчётный счёт."
Старая форма — итог единственного шага. Форма итога — только для action: agent. ИИ в конце хода отдаёт итог в этой форме, он приходит в запуске (output) и в вебхуке automation.run.completed — например, чтобы CRM закрыла заказ. null или нет — итог только текстом (answer).
Цепочка шагов (1–5) вместо action, instruction и output — передайте что-то одно. Пример «каждое утро»: [{"action":"directbank"},{"action":"agent","instruction":"Разнеси выписку","when":"previous_created_proposals"},{"action":"checks"},{"action":"notify","when":"checks_found_issues"}]. Каждый шаг agent — отдельный платный ход ИИ: запуск стоит до 5 ходов. Правило автоодобрения применяется после каждого шага agent.
Правило автоодобрения — только у сценария с шагом agent (action: agent или шаг agent в steps); сохраняет только тот, у кого есть proposals.approve. null или нет — всё подготовленное ждёт решения человека.
Show child attributes
Ответ
Сценарий заведён
Сохранённый сценарий и предупреждения о правиле автоодобрения.
Когда сценарий по расписанию сработает в следующий раз, ISO 8601 UTC. null — сценарий ручной, по событию (хука или Tungo) или выключен, а у расписания с last_workday — ещё и когда производственного календаря сейчас нет (запуск отложен до его появления). Пока компания на паузе, запуск в этот срок встанет в очередь и начнётся после снятия паузы
Старая форма: действие (у цепочки — первого шага, полностью — steps). agent — ход ИИ-бухгалтера по поручению instruction (готовит предложения — документы для 1С); checks — проверки учёта без ИИ и без предложений; directbank — опрос выписки DirectBank без ИИ (предложения — выпиской дня)
Есть, только когда правило автоодобрения сейчас запишет само не всё (или ничего): организация пока не доверила ИИ записывать эти виды без человека. Тексты для человека — показать рядом с формой. Нет поля — правило работает как задано (или правила нет)
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Tungo","description":"Документация Tungo: как подключить 1С, работать с ИИ-бухгалтером, оплатить тариф и решить частые проблемы.","colors":{"primary":"#1b1b1b","light":"#ffffff","dark":"#1b1b1b"},"logo":{"light":"https://mintcdn.com/tungo-ai/Rh5Iy_fOmTN2xA57/logo/light.svg?fit=max\u0026auto=format\u0026n=Rh5Iy_fOmTN2xA57\u0026q=85\u0026s=01cf341ba8b8a958a335b86c62038dd6","dark":"https://mintcdn.com/tungo-ai/Rh5Iy_fOmTN2xA57/logo/dark.svg?fit=max\u0026auto=format\u0026n=Rh5Iy_fOmTN2xA57\u0026q=85\u0026s=814bff13a11c1f85fdda2b0f8b775437","href":"https://tungo.kz"},"favicon":"https://mintcdn.com/tungo-ai/Rh5Iy_fOmTN2xA57/favicon.svg?fit=max\u0026auto=format\u0026n=Rh5Iy_fOmTN2xA57\u0026q=85\u0026s=5882f628ee88d422c4e923042fd4b97d","api":{"playground":{"display":"simple"},"examples":{"languages":["curl","python","javascript"]}},"appearance":{"default":"system","strict":false},"navbar":{"links":[{"href":"https://tungo.kz","label":"Сайт"}],"primary":{"type":"button","label":"Открыть Tungo","href":"https://app.tungo.kz"}},"footer":{"links":[{"header":"Tungo","items":[{"label":"Сайт","href":"https://tungo.kz"},{"label":"Кабинет","href":"https://app.tungo.kz"}]}]},"fonts":{"family":"Onest"},"icons":{"library":"lucide"},"styling":{"latex":false},"navigation":{"languages":[{"language":"ru","href":""}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"tungo-ai","hasAudioNarration":false,"actualSubdomain":"tungo-ai","customDomains":[],"gitSource":{"type":"github","owner":"tungoai","repo":"tungo-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":"","_id":"6af4da0a867599c9fc581007"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af4ee123d2d188ca8ce1361","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"ru","tag":"API","count":121},{"language":"ru","tag":"API анықтамалығы","count":121},{"language":"ru","tag":"Вебхуки","count":36},{"language":"ru","tag":"Автоматизации","count":29},{"language":"ru","tag":"Платформа","count":26},{"language":"ru","tag":"Подключение 1С","count":16},{"language":"ru","tag":"Аккаунт и команда","count":16},{"language":"ru","tag":"Тарифы и оплата","count":16},{"language":"ru","tag":"1С қосу","count":16},{"language":"ru","tag":"Аккаунт және команда","count":16}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":":root{--tg-r-element: 10px;--tg-r-container: 12px;--tg-muted: #f1f1f1;--tg-border: rgb(0 0 0 / 8%);--tg-text-2: #474747}.tg-home{color:#000}.tg-home a{text-decoration:none}.tg-hero{background:var(--tg-muted);padding:72px 24px 64px;text-align:center}.tg-eyebrow{margin:0 0 20px;font-size:13px;letter-spacing:0.14em;text-transform:uppercase;color:var(--tg-text-2)}.tg-hero-title{margin:0 auto 36px;max-width:640px;font-size:clamp(32px, 5vw, 52px);line-height:1.08;font-weight:600;letter-spacing:-0.02em;text-wrap:balance}.tg-chips{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:12px;max-width:920px;margin:0 auto}.tg-chip{display:flex;flex-direction:column;gap:2px;padding:14px 18px;background:#fff;border-radius:var(--tg-r-container);color:#000;transition:box-shadow 0.2s, transform 0.2s}.tg-chip:hover{box-shadow:0 4px 6px rgb(0 0 0 / 6%), 0 12px 24px rgb(0 0 0 / 8%);transform:translateY(-1px)}.tg-chip span{font-weight:500;font-size:15px}.tg-chip small{font-size:13px;color:var(--tg-text-2)}.tg-hero-note{margin:28px 0 0;font-size:15px;color:var(--tg-text-2)}.tg-hero-note a{color:#000;text-decoration:underline;text-underline-offset:3px}.tg-section{max-width:1200px;margin:0 auto;padding:56px 24px 0}.tg-section:last-child{padding-bottom:96px}.tg-h2{margin:0 0 6px;font-size:28px;font-weight:600;letter-spacing:-0.01em}.tg-lead{margin:0 0 20px;color:var(--tg-text-2)}.tg-rows{border-top:1px solid var(--tg-border)}.tg-row{display:grid;grid-template-columns:minmax(0, 1.4fr) minmax(0, 1fr);gap:24px;align-items:center;padding:18px 8px;border-bottom:1px solid var(--tg-border);color:#000}.tg-row:hover{background:var(--tg-muted)}.tg-row span{font-size:16px}.tg-row b{font-weight:500;font-size:15px}.tg-row b::after{content:\" →\";color:var(--tg-text-2)}@media (max-width: 760px){.tg-hero{padding:48px 16px 40px}.tg-chips{grid-template-columns:1fr}.tg-section{padding:40px 16px 0}.tg-row{grid-template-columns:1fr;gap:4px}}html.dark .tg-home{color:#fff}html.dark .tg-hero{background:#1b1b1d}html.dark .tg-eyebrow,html.dark .tg-chip small,html.dark .tg-hero-note,html.dark .tg-lead,html.dark .tg-row b::after{color:#a8a8a8}html.dark .tg-chip{background:#2a2a2d;color:#fff}html.dark .tg-chip:hover{box-shadow:0 4px 6px rgb(0 0 0 / 30%), 0 12px 24px rgb(0 0 0 / 35%)}html.dark .tg-hero-note a,html.dark .tg-row{color:#fff}html.dark .tg-rows,html.dark .tg-row{border-color:rgb(255 255 255 / 10%)}html.dark .tg-row:hover{background:#1b1b1d}#localization-select-trigger{display:none}"}],"page":{"pagePath":"api-reference/автоматизации/завести-сценарий","slug":"/api-reference/автоматизации/завести-сценарий","pageMetadata":{"title":"Завести сценарий","description":"Сценарий с ИИ (action: agent) сохраняет тот, у кого есть chat.use; правило автоодобрения — тот, у кого есть proposals.approve; ключ API с пределами записи — только не шире своих пределов (видов и потолков), иначе 403 с error.code = key_write_limit. Сохранённый ключом сценарий и при запуске пишет в 1С сам только в пределах этого ключа на тот момент; отозванный ключ — не запускается. Запуск идёт от имени сохранившего. Сколько сценариев у компании — предел настройки automations (scenarios_per_company), сверх — 429.\n\nIdempotency-Key: повтор с тем же ключом и тем же телом отдаёт прежний ответ (статус и тело) с заголовком Idempotent-Replayed: true и ничего не делает второй раз; тот же ключ с другим адресом или телом — 422 (error.code = idempotency_key_reused); первый запрос с этим ключом ещё идёт — 409 (error.code = idempotency_in_progress). Запоминается только удачный ответ (2xx): после отказа повтор с тем же ключом выполнится заново. Ключ живёт сутки (настройка idempotency.keys), область — организация и тот, кто прислал (ключ API или человек).\n\nДоступ: automations.manage | company.manage.\n\nДоступно по ключу API.","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/automations/scenarios","href":"/api-reference/автоматизации/завести-сценарий","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Сценарий с ИИ (action: agent) сохраняет тот, у кого есть chat.use; правило автоодобрения — тот, у кого есть proposals.approve; ключ API с пределами записи — только не шире своих пределов (видов и потолков), иначе 403 с error.code = key_write_limit. Сохранённый ключом сценарий и при запуске пишет в 1С сам только в пределах этого ключа на тот момент; отозванный ключ — не запускается. Запуск идёт от имени сохранившего. Сколько сценариев у компании — предел настройки automations (scenarios_per_company), сверх — 429.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Idempotency-Key: повтор с тем же ключом и тем же телом отдаёт прежний ответ (статус и тело) с заголовком Idempotent-Replayed: true и ничего не делает второй раз; тот же ключ с другим адресом или телом — 422 (error.code = idempotency_key_reused); первый запрос с этим ключом ещё идёт — 409 (error.code = idempotency_in_progress). Запоминается только удачный ответ (2xx): после отказа повтор с тем же ключом выполнится заново. Ключ живёт сутки (настройка idempotency.keys), область — организация и тот, кто прислал (ключ API или человек).\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Доступ: automations.manage | company.manage.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Доступно по ключу API.\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Завести сценарий","description":"Сценарий с ИИ (action: agent) сохраняет тот, у кого есть chat.use; правило автоодобрения — тот, у кого есть proposals.approve; ключ API с пределами записи — только не шире своих пределов (видов и потолков), иначе 403 с error.code = key_write_limit. Сохранённый ключом сценарий и при запуске пишет в 1С сам только в пределах этого ключа на тот момент; отозванный ключ — не запускается. Запуск идёт от имени сохранившего. Сколько сценариев у компании — предел настройки automations (scenarios_per_company), сверх — 429.\n\nIdempotency-Key: повтор с тем же ключом и тем же телом отдаёт прежний ответ (статус и тело) с заголовком Idempotent-Replayed: true и ничего не делает второй раз; тот же ключ с другим адресом или телом — 422 (error.code = idempotency_key_reused); первый запрос с этим ключом ещё идёт — 409 (error.code = idempotency_in_progress). Запоминается только удачный ответ (2xx): после отказа повтор с тем же ключом выполнится заново. Ключ живёт сутки (настройка idempotency.keys), область — организация и тот, кто прислал (ключ API или человек).\n\nДоступ: automations.manage | company.manage.\n\nДоступно по ключу API.","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/automations/scenarios","href":"/api-reference/автоматизации/завести-сценарий","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Автоматизации"],"summary":"Завести сценарий","description":"Сценарий с ИИ (action: agent) сохраняет тот, у кого есть chat.use; правило автоодобрения — тот, у кого есть proposals.approve; ключ API с пределами записи — только не шире своих пределов (видов и потолков), иначе 403 с error.code = key_write_limit. Сохранённый ключом сценарий и при запуске пишет в 1С сам только в пределах этого ключа на тот момент; отозванный ключ — не запускается. Запуск идёт от имени сохранившего. Сколько сценариев у компании — предел настройки automations (scenarios_per_company), сверх — 429.\n\nIdempotency-Key: повтор с тем же ключом и тем же телом отдаёт прежний ответ (статус и тело) с заголовком Idempotent-Replayed: true и ничего не делает второй раз; тот же ключ с другим адресом или телом — 422 (error.code = idempotency_key_reused); первый запрос с этим ключом ещё идёт — 409 (error.code = idempotency_in_progress). Запоминается только удачный ответ (2xx): после отказа повтор с тем же ключом выполнится заново. Ключ живёт сутки (настройка idempotency.keys), область — организация и тот, кто прислал (ключ API или человек).\n\nДоступ: automations.manage | company.manage.\n\nДоступно по ключу API.","security":["445a3d27-93a4-4442-8b22-4494e021b7bd","b5545263-5bcc-4ab4-b8eb-2ba63ce92079","af308087-ba5d-4246-bfbb-65c67a8e5ad6"],"x-api-key-access":true,"x-permission":"automations.manage | company.manage","parameters":["0f834651-ac70-4dc2-a61d-b5193f136a74","7df6eead-c366-4f0a-9c7d-b6b05d4aa40f"],"requestBody":"53751b40-5871-48c2-a9a6-cb4d30c01bb7","responses":{"201":"3fcf7a5d-7d33-4b23-9ff4-191d9d1dd1f5","400":"713871b2-321a-4df4-8f4b-b454f7c9d455","401":"e290c531-d7fb-486c-ba0d-251df79d8da8","403":"1d5afabe-9ecb-4a2b-90c6-11d3f1562193","404":"32b988ee-c682-4719-b2ba-49727e0485f2","409":"ef097e76-4463-4794-b8c9-0e3c7042ed3d","413":"5b4b3941-4cac-4b32-8efd-5a8e237ef686","422":"a22b230a-0518-46ac-92b9-691710480146","429":"13535d10-66f3-4992-9424-ffbbddc4a640"},"operationId":"createCompanyAutomationsScenario","method":"post","type":"path","servers":["c389c850-4818-4663-a4a8-1bad0282721d"],"path":"/v1/companies/{co}/automations/scenarios","baseUrlOptions":["https://api.tungo.kz"],"title":"Завести сценарий","codeSamples":[],"requestExampleLanguages":["bash","python","javascript"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"0f834651-ac70-4dc2-a61d-b5193f136a74":{"schema":{"type":"string","description":"id компании, co_… — из GET /v1/companies","isRequired":true,"uniqueKey":"","typeLabel":"string"},"required":true,"description":"id компании, co_… — из GET /v1/companies","name":"co","in":"path"},"7df6eead-c366-4f0a-9c7d-b6b05d4aa40f":{"schema":{"type":"string","maxLength":255,"description":"Ключ повтора (например, UUID): повтор с тем же ключом и тем же телом не выполняет действие второй раз, а отдаёт прежний ответ","isRequired":false,"uniqueKey":"","typeLabel":"string"},"required":false,"description":"Ключ повтора (например, UUID): повтор с тем же ключом и тем же телом не выполняет действие второй раз, а отдаёт прежний ответ","name":"Idempotency-Key","in":"header"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"description":"Название сценария (1–200 знаков).","example":"Разнести поступления с сайта","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"trigger":{"oneOf":[{"type":"object","description":"Когда запускать: по событию хука, по расписанию, по событию внутри Tungo или только вручную. Вид — в kind.","required":["kind","hook_id"],"properties":{"kind":{"type":"string","enum":["hook"],"description":"`hook` — по событию хука","isRequired":true,"uniqueKey":"trigger.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"hook_id":{"type":"string","description":"id хука этой компании (hk_… из GET …/automations/hooks)","example":"hk_01h455vb4pex5vsknk084sn02q","isRequired":true,"uniqueKey":"trigger.oneOf.0.hook_id","typeLabel":"string"},"filter":{"type":"object","description":"Какие события хука запускают сценарий; нет — любое.","required":["all"],"properties":{"all":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","pattern":"^[A-Za-z0-9_-]+(\\.[A-Za-z0-9_-]+){0,9}$","description":"Где в JSON тела события взять значение: имена полей через точку, до 10 уровней; элемент массива — его номером с нуля (`items.0.sum`).","example":"data.status","isRequired":true,"uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX].path","typeLabel":"string"},"op":{"type":"string","enum":["eq","ne","in","contains","exists","gt","gte","lt","lte"],"description":"Как сравнивать значение поля с value. `eq` — равно (строки — без учёта регистра и пробелов по краям; числа — как числа, строка «15000.00» равна 15000); `ne` — не равно, или поля нет; `in` — равно одному из значений списка value; `contains` — строка содержит value (без учёта регистра) или массив содержит элемент, равный value; `exists` — поле есть в теле (с value: false — поля нет); `gt` / `gte` / `lt` / `lte` — число больше / не меньше / меньше / не больше value (строка из цифр сравнивается как число; не число — условие не выполнено).","example":"eq","isRequired":true,"uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX].op","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"type":"string","description":"С чем сравнивать: строка (до 500 знаков), число, true/false или null. Для `in` — список до 50 таких значений; для `gt`/`gte`/`lt`/`lte` — число; для остальных — одно значение. Для `exists` не нужно (false — проверить, что поля нет).","maxLength":500,"example":"paid","uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"number","description":"С чем сравнивать: строка (до 500 знаков), число, true/false или null. Для `in` — список до 50 таких значений; для `gt`/`gte`/`lt`/`lte` — число; для остальных — одно значение. Для `exists` не нужно (false — проверить, что поля нет).","example":"paid","uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX].value.oneOf.1","typeLabel":"number"},{"type":"boolean","description":"С чем сравнивать: строка (до 500 знаков), число, true/false или null. Для `in` — список до 50 таких значений; для `gt`/`gte`/`lt`/`lte` — число; для остальных — одно значение. Для `exists` не нужно (false — проверить, что поля нет).","example":"paid","uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX].value.oneOf.2","typeLabel":"boolean"},{"type":"null","description":"С чем сравнивать: строка (до 500 знаков), число, true/false или null. Для `in` — список до 50 таких значений; для `gt`/`gte`/`lt`/`lte` — число; для остальных — одно значение. Для `exists` не нужно (false — проверить, что поля нет).","example":"paid","uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX].value.oneOf.3","typeLabel":"null"},{"type":"array","items":{"oneOf":[{"type":"string","maxLength":500,"uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX].value.oneOf.4.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX].value.oneOf.4.items.[INDEX].oneOf.1","typeLabel":"number"},{"type":"boolean","uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX].value.oneOf.4.items.[INDEX].oneOf.2","typeLabel":"boolean"},{"type":"null","uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX].value.oneOf.4.items.[INDEX].oneOf.3","typeLabel":"null"}],"uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX].value.oneOf.4.items.[INDEX]","typeLabel":"string | number | boolean | null"},"description":"С чем сравнивать: строка (до 500 знаков), число, true/false или null. Для `in` — список до 50 таких значений; для `gt`/`gte`/`lt`/`lte` — число; для остальных — одно значение. Для `exists` не нужно (false — проверить, что поля нет).","maxItems":50,"example":"paid","uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX].value.oneOf.4","typeLabel":"(string | number | boolean | null)[]"}],"uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX].value","typeLabel":"string | number | boolean | null | (string | number | boolean | null)[]"}},"required":["path","op"],"additionalProperties":false,"description":"Одно условие фильтра: значение поля из тела события сравнивается с value.","uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX]","typeLabel":"object"},"maxItems":20,"description":"Условия (до 20); событие подходит, только если выполнены все. Пустой список — подходит любое событие.","isRequired":true,"uniqueKey":"trigger.oneOf.0.filter.all","typeLabel":"object[]"}},"additionalProperties":false,"uniqueKey":"trigger.oneOf.0.filter","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"trigger.oneOf.0","typeLabel":"object"},{"type":"object","description":"Когда запускать: по событию хука, по расписанию, по событию внутри Tungo или только вручную. Вид — в kind.","required":["kind","schedule"],"properties":{"kind":{"type":"string","enum":["schedule"],"description":"`schedule` — по расписанию (время по Алматы)","isRequired":true,"uniqueKey":"trigger.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"schedule":{"oneOf":[{"type":"object","description":"Расписание запуска по Алматы. Пропущенный запуск (сервис был недоступен) догоняется одним запуском, а не пачкой за все пропущенные слоты.","required":["kind","at"],"properties":{"kind":{"type":"string","enum":["daily"],"description":"`daily` — каждый день","isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"at":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","description":"Время запуска ЧЧ:ММ (24 часа) по Алматы (Asia/Almaty). Показывать как есть, в пояс пользователя не переводить.","example":"09:00","isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.0.at","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.0","typeLabel":"object"},{"type":"object","description":"Расписание запуска по Алматы. Пропущенный запуск (сервис был недоступен) догоняется одним запуском, а не пачкой за все пропущенные слоты.","required":["kind","days","at"],"properties":{"kind":{"type":"string","enum":["weekly"],"description":"`weekly` — по выбранным дням недели","isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"days":{"type":"array","items":{"type":"integer","minimum":1,"maximum":7,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.1.days.items.[INDEX]","typeLabel":"integer"},"minItems":1,"maxItems":7,"description":"Дни недели по ISO: 1 — понедельник … 7 — воскресенье; от 1 до 7 дней без повторов. День — по календарю Алматы.","example":[1,2,3,4,5],"isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.1.days","typeLabel":"integer[]"},"at":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","description":"Время запуска ЧЧ:ММ (24 часа) по Алматы (Asia/Almaty). Показывать как есть, в пояс пользователя не переводить.","example":"09:00","isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.1.at","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.1","typeLabel":"object"},{"type":"object","description":"Расписание запуска по Алматы. Пропущенный запуск (сервис был недоступен) догоняется одним запуском, а не пачкой за все пропущенные слоты.","required":["kind","at"],"example":{"kind":"monthly","last_workday":true,"at":"18:00"},"properties":{"kind":{"type":"string","enum":["monthly"],"description":"`monthly` — по числам месяца","isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"at":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","description":"Время запуска ЧЧ:ММ (24 часа) по Алматы (Asia/Almaty). Показывать как есть, в пояс пользователя не переводить.","example":"09:00","isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.2.at","typeLabel":"string"},"days":{"type":"array","items":{"type":"integer","minimum":1,"maximum":31,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.2.days.items.[INDEX]","typeLabel":"integer"},"minItems":1,"maxItems":31,"description":"Числа месяца 1…31 без повторов. Числа, которого нет в месяце (31 в ноябре, 30 в феврале), в этом месяце запуска нет — на последний день месяца используйте last_day.","example":[25],"uniqueKey":"trigger.oneOf.1.schedule.oneOf.2.days","typeLabel":"integer[]"},"last_day":{"type":"boolean","enum":[true],"description":"true — ещё и в последний день месяца (28, 29, 30 или 31-е).","uniqueKey":"trigger.oneOf.1.schedule.oneOf.2.last_day","typeLabel":"enum\u003cboolean>"},"last_workday":{"type":"boolean","enum":[true],"description":"true — ещё и в последний рабочий день месяца по производственному календарю РК из базы знаний (выходные и праздники Закона «О праздниках в РК»). Оговорка календаря: Учтены выходные (суббота, воскресенье) и праздники Закона «О праздниках в РК» с переносом по его ст. 5. Переносы рабочих дней и религиозные праздники (Курбан айт, Рождество) по ежегодному постановлению Правительства в базе НЕ загружены — если срок близок к таким датам, сверьтесь с постановлением. Если календаря нет (база знаний недоступна или в ней нет праздников), запуск в последний рабочий день откладывается до его появления и потом догоняется одним запуском — по одним выходным он не считается, чтобы в месяце не вышло двух запусков.","uniqueKey":"trigger.oneOf.1.schedule.oneOf.2.last_workday","typeLabel":"enum\u003cboolean>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.2","typeLabel":"object"},{"type":"object","description":"Расписание запуска по Алматы. Пропущенный запуск (сервис был недоступен) догоняется одним запуском, а не пачкой за все пропущенные слоты.","required":["kind","every_hours","from","to"],"example":{"kind":"interval","every_hours":2,"from":"09:00","to":"19:00","days":[1,2,3,4,5]},"properties":{"kind":{"type":"string","enum":["interval"],"description":"`interval` — каждые N часов в пределах дня","isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.3.kind","typeLabel":"enum\u003cstring>"},"every_hours":{"type":"integer","minimum":1,"maximum":12,"description":"Шаг в часах, 1…12.","example":2,"isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.3.every_hours","typeLabel":"integer"},"from":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","description":"Первый запуск дня, ЧЧ:ММ по Алматы.","example":"09:00","isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.3.from","typeLabel":"string"},"to":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","description":"Позже этого времени (ЧЧ:ММ по Алматы) запусков в этот день нет; раньше from быть не может.","example":"19:00","isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.3.to","typeLabel":"string"},"days":{"type":"array","items":{"type":"integer","minimum":1,"maximum":7,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.3.days.items.[INDEX]","typeLabel":"integer"},"minItems":1,"maxItems":7,"description":"Дни недели по ISO (1 — понедельник … 7 — воскресенье) без повторов; нет — каждый день.","example":[1,2,3,4,5],"uniqueKey":"trigger.oneOf.1.schedule.oneOf.3.days","typeLabel":"integer[]"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.3","typeLabel":"object"}],"isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"trigger.oneOf.1","typeLabel":"object"},{"type":"object","description":"Когда запускать: по событию хука, по расписанию, по событию внутри Tungo или только вручную. Вид — в kind.","required":["kind","event"],"properties":{"kind":{"type":"string","enum":["event"],"description":"`event` — по событию внутри Tungo этой компании","isRequired":true,"uniqueKey":"trigger.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"event":{"type":"string","enum":["proposal.awaiting_approval","proposal.written","proposal.failed","esf.incoming.received","bank_statement.received","proposal.rejected","batch.completed","batch.failed","onec.connection.changed"],"description":"Вид события компании — имя из раздела webhooks этого описания. Например: `esf.incoming.received` — пришли входящие ЭСФ; `bank_statement.received` — пришла выписка (загружена человеком или забрана кнопкой; выписка, забранная сценарием directbank, сценарии не запускает — для выписки по расписанию делайте цепочку directbank → agent); `proposal.rejected` — человек отклонил предложение; `onec.connection.changed` — связь с 1С пропала или вернулась. Сценарий берёт только события после своего сохранения; события, порождённые запусками автоматизаций, сценарии не запускают — круга не будет.","example":"esf.incoming.received","isRequired":true,"uniqueKey":"trigger.oneOf.2.event","typeLabel":"enum\u003cstring>"},"filter":{"type":"object","description":"Какие события запускают сценарий; нет — любое этого вида. Путь — по телу события, как его получает вебхук: `data.amount_tiyn`, `data.status`, `data.proposals_created`.","required":["all"],"properties":{"all":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","pattern":"^[A-Za-z0-9_-]+(\\.[A-Za-z0-9_-]+){0,9}$","description":"Где в JSON тела события взять значение: имена полей через точку, до 10 уровней; элемент массива — его номером с нуля (`items.0.sum`).","example":"data.status","isRequired":true,"uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX].path","typeLabel":"string"},"op":{"type":"string","enum":["eq","ne","in","contains","exists","gt","gte","lt","lte"],"description":"Как сравнивать значение поля с value. `eq` — равно (строки — без учёта регистра и пробелов по краям; числа — как числа, строка «15000.00» равна 15000); `ne` — не равно, или поля нет; `in` — равно одному из значений списка value; `contains` — строка содержит value (без учёта регистра) или массив содержит элемент, равный value; `exists` — поле есть в теле (с value: false — поля нет); `gt` / `gte` / `lt` / `lte` — число больше / не меньше / меньше / не больше value (строка из цифр сравнивается как число; не число — условие не выполнено).","example":"eq","isRequired":true,"uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX].op","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"type":"string","description":"С чем сравнивать: строка (до 500 знаков), число, true/false или null. Для `in` — список до 50 таких значений; для `gt`/`gte`/`lt`/`lte` — число; для остальных — одно значение. Для `exists` не нужно (false — проверить, что поля нет).","maxLength":500,"example":"paid","uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"number","description":"С чем сравнивать: строка (до 500 знаков), число, true/false или null. Для `in` — список до 50 таких значений; для `gt`/`gte`/`lt`/`lte` — число; для остальных — одно значение. Для `exists` не нужно (false — проверить, что поля нет).","example":"paid","uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX].value.oneOf.1","typeLabel":"number"},{"type":"boolean","description":"С чем сравнивать: строка (до 500 знаков), число, true/false или null. Для `in` — список до 50 таких значений; для `gt`/`gte`/`lt`/`lte` — число; для остальных — одно значение. Для `exists` не нужно (false — проверить, что поля нет).","example":"paid","uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX].value.oneOf.2","typeLabel":"boolean"},{"type":"null","description":"С чем сравнивать: строка (до 500 знаков), число, true/false или null. Для `in` — список до 50 таких значений; для `gt`/`gte`/`lt`/`lte` — число; для остальных — одно значение. Для `exists` не нужно (false — проверить, что поля нет).","example":"paid","uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX].value.oneOf.3","typeLabel":"null"},{"type":"array","items":{"oneOf":[{"type":"string","maxLength":500,"uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX].value.oneOf.4.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX].value.oneOf.4.items.[INDEX].oneOf.1","typeLabel":"number"},{"type":"boolean","uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX].value.oneOf.4.items.[INDEX].oneOf.2","typeLabel":"boolean"},{"type":"null","uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX].value.oneOf.4.items.[INDEX].oneOf.3","typeLabel":"null"}],"uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX].value.oneOf.4.items.[INDEX]","typeLabel":"string | number | boolean | null"},"description":"С чем сравнивать: строка (до 500 знаков), число, true/false или null. Для `in` — список до 50 таких значений; для `gt`/`gte`/`lt`/`lte` — число; для остальных — одно значение. Для `exists` не нужно (false — проверить, что поля нет).","maxItems":50,"example":"paid","uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX].value.oneOf.4","typeLabel":"(string | number | boolean | null)[]"}],"uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX].value","typeLabel":"string | number | boolean | null | (string | number | boolean | null)[]"}},"required":["path","op"],"additionalProperties":false,"description":"Одно условие фильтра: значение поля из тела события сравнивается с value.","uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX]","typeLabel":"object"},"maxItems":20,"description":"Условия (до 20); событие подходит, только если выполнены все. Пустой список — подходит любое событие.","isRequired":true,"uniqueKey":"trigger.oneOf.2.filter.all","typeLabel":"object[]"}},"additionalProperties":false,"uniqueKey":"trigger.oneOf.2.filter","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"trigger.oneOf.2","typeLabel":"object"},{"type":"object","description":"Когда запускать: по событию хука, по расписанию, по событию внутри Tungo или только вручную. Вид — в kind.","required":["kind"],"properties":{"kind":{"type":"string","enum":["manual"],"description":"`manual` — только вручную: POST …/scenarios/{id}/run","isRequired":true,"uniqueKey":"trigger.oneOf.3.kind","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"trigger.oneOf.3","typeLabel":"object"}],"isRequired":true,"uniqueKey":"trigger","typeLabel":"object"},"enabled":{"type":"boolean","default":true,"description":"Включён ли (по умолчанию true). Выключенный не запускается ни событием, ни по расписанию; вручную (…/run) — запускается.","uniqueKey":"enabled","typeLabel":"boolean"},"action":{"type":"string","enum":["agent","checks","directbank"],"description":"Старая форма — один шаг (вместо него можно steps). Что делать при запуске. `agent` (по умолчанию) — ход ИИ-бухгалтера по поручению instruction: ИИ разбирает событие и данные 1С и готовит предложения — документы для записи в 1С; расход ИИ оплачивается как обычный. `checks` — проверки учёта компании (без ИИ и без предложений; находки — в ленте). `directbank` — опрос выписки DirectBank из живой 1С (без ИИ, нужно право proposals.create): предложения ложатся выпиской дня. Сам Tungo выписку не опрашивает — только этим сценарием или POST …/statements/directbank.","uniqueKey":"action","typeLabel":"enum\u003cstring>"},"instruction":{"type":"string","maxLength":100000,"description":"Старая форма — поручение единственного шага. Поручение ИИ обычными словами. Для action: agent обязательно (длина — не больше настройки платформы instruction_max_chars); для checks и directbank не нужно.","example":"Разнеси оплату из события: найди покупателя по БИН и проведи поступление на расчётный счёт.","uniqueKey":"instruction","typeLabel":"string"},"output":{"oneOf":[{"type":"object","additionalProperties":{"oneOf":[{"type":"object","description":"Поле итога: вид значения и описание для ИИ.","required":["type","description"],"properties":{"type":{"type":"string","enum":["number"],"description":"`number` — число","isRequired":true,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.0.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Что положить в поле — для ИИ, обычными словами (до 500 знаков). Пишет разработчик.","example":"Номер заказа из события","isRequired":true,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.0.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.0","typeLabel":"object"},{"type":"object","description":"Поле итога: вид значения и описание для ИИ.","required":["type","description"],"properties":{"type":{"type":"string","enum":["integer"],"description":"`integer` — целое число (суммы — в тиынах)","isRequired":true,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.1.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Что положить в поле — для ИИ, обычными словами (до 500 знаков). Пишет разработчик.","example":"Номер заказа из события","isRequired":true,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.1.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"Поле итога: вид значения и описание для ИИ.","required":["type","description"],"properties":{"type":{"type":"string","enum":["boolean"],"description":"`boolean` — да/нет","isRequired":true,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.2.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Что положить в поле — для ИИ, обычными словами (до 500 знаков). Пишет разработчик.","example":"Номер заказа из события","isRequired":true,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.2.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"object","description":"Поле итога: вид значения и описание для ИИ.","required":["type","description"],"properties":{"type":{"type":"string","enum":["id"],"description":"`id` — номер (заказа, документа, платежа) по шаблону ^[A-Za-z0-9_.\\-/#]{1,64}$","isRequired":true,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.3.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Что положить в поле — для ИИ, обычными словами (до 500 знаков). Пишет разработчик.","example":"Номер заказа из события","isRequired":true,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.3.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.3","typeLabel":"object"},{"type":"object","description":"Поле итога: вид значения и описание для ИИ.","required":["type","description","values"],"properties":{"type":{"type":"string","enum":["enum"],"description":"`enum` — одно значение из списка values","isRequired":true,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.4.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Что положить в поле — для ИИ, обычными словами (до 500 знаков). Пишет разработчик.","example":"Номер заказа из события","isRequired":true,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.4.description","typeLabel":"string"},"values":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z0-9_.\\-/#]{1,64}$","uniqueKey":"output.oneOf.0.additionalProperties.oneOf.4.values.items.[INDEX]","typeLabel":"string"},"minItems":1,"maxItems":50,"description":"Допустимые значения (1–50, без повторов): латиница, цифры и `_ . - / #`, до 64 знаков","example":["written","waiting"],"isRequired":true,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.4.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.4","typeLabel":"object"}],"uniqueKey":"output.oneOf.0.additionalProperties","typeLabel":"object"},"description":"Старая форма — итог единственного шага. Форма итога — только для action: agent. ИИ в конце хода отдаёт итог в этой форме, он приходит в запуске (output) и в вебхуке automation.run.completed — например, чтобы CRM закрыла заказ. null или нет — итог только текстом (answer).","example":{"order_id":{"type":"id","description":"Номер заказа из события"},"amount_tiyn":{"type":"integer","description":"Сумма оплаты в тиынах"},"status":{"type":"enum","values":["written","waiting"],"description":"written — поступление записано в 1С, waiting — ждёт человека"}},"uniqueKey":"output.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":{"oneOf":[{"type":"object","description":"Поле итога: вид значения и описание для ИИ.","required":["type","description"],"properties":{"type":{"type":"string","enum":["number"],"description":"`number` — число","uniqueKey":"output.oneOf.1.additionalProperties.oneOf.0.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Что положить в поле — для ИИ, обычными словами (до 500 знаков). Пишет разработчик.","example":"Номер заказа из события","uniqueKey":"output.oneOf.1.additionalProperties.oneOf.0.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"output.oneOf.1.additionalProperties.oneOf.0","typeLabel":"object"},{"type":"object","description":"Поле итога: вид значения и описание для ИИ.","required":["type","description"],"properties":{"type":{"type":"string","enum":["integer"],"description":"`integer` — целое число (суммы — в тиынах)","uniqueKey":"output.oneOf.1.additionalProperties.oneOf.1.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Что положить в поле — для ИИ, обычными словами (до 500 знаков). Пишет разработчик.","example":"Номер заказа из события","uniqueKey":"output.oneOf.1.additionalProperties.oneOf.1.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"output.oneOf.1.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"Поле итога: вид значения и описание для ИИ.","required":["type","description"],"properties":{"type":{"type":"string","enum":["boolean"],"description":"`boolean` — да/нет","uniqueKey":"output.oneOf.1.additionalProperties.oneOf.2.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Что положить в поле — для ИИ, обычными словами (до 500 знаков). Пишет разработчик.","example":"Номер заказа из события","uniqueKey":"output.oneOf.1.additionalProperties.oneOf.2.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"output.oneOf.1.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"object","description":"Поле итога: вид значения и описание для ИИ.","required":["type","description"],"properties":{"type":{"type":"string","enum":["id"],"description":"`id` — номер (заказа, документа, платежа) по шаблону ^[A-Za-z0-9_.\\-/#]{1,64}$","uniqueKey":"output.oneOf.1.additionalProperties.oneOf.3.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Что положить в поле — для ИИ, обычными словами (до 500 знаков). Пишет разработчик.","example":"Номер заказа из события","uniqueKey":"output.oneOf.1.additionalProperties.oneOf.3.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"output.oneOf.1.additionalProperties.oneOf.3","typeLabel":"object"},{"type":"object","description":"Поле итога: вид значения и описание для ИИ.","required":["type","description","values"],"properties":{"type":{"type":"string","enum":["enum"],"description":"`enum` — одно значение из списка values","uniqueKey":"output.oneOf.1.additionalProperties.oneOf.4.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Что положить в поле — для ИИ, обычными словами (до 500 знаков). Пишет разработчик.","example":"Номер заказа из события","uniqueKey":"output.oneOf.1.additionalProperties.oneOf.4.description","typeLabel":"string"},"values":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z0-9_.\\-/#]{1,64}$","uniqueKey":"output.oneOf.1.additionalProperties.oneOf.4.values.items.[INDEX]","typeLabel":"string"},"minItems":1,"maxItems":50,"description":"Допустимые значения (1–50, без повторов): латиница, цифры и `_ . - / #`, до 64 знаков","example":["written","waiting"],"uniqueKey":"output.oneOf.1.additionalProperties.oneOf.4.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"output.oneOf.1.additionalProperties.oneOf.4","typeLabel":"object"}],"uniqueKey":"output.oneOf.1.additionalProperties","typeLabel":"object"},"description":"Старая форма — итог единственного шага. Форма итога — только для action: agent. ИИ в конце хода отдаёт итог в этой форме, он приходит в запуске (output) и в вебхуке automation.run.completed — например, чтобы CRM закрыла заказ. null или нет — итог только текстом (answer).","example":{"order_id":{"type":"id","description":"Номер заказа из события"},"amount_tiyn":{"type":"integer","description":"Сумма оплаты в тиынах"},"status":{"type":"enum","values":["written","waiting"],"description":"written — поступление записано в 1С, waiting — ждёт человека"}},"uniqueKey":"output.oneOf.1","typeLabel":"null"}],"uniqueKey":"output","typeLabel":"object | null"},"steps":{"type":"array","items":{"type":"object","properties":{"action":{"type":"string","enum":["agent","checks","directbank","notify"],"description":"`agent` — ход ИИ-бухгалтера по поручению instruction (платный: каждый такой шаг — отдельный ход ИИ); `checks` — проверки учёта (без ИИ); `directbank` — опрос выписки DirectBank (без ИИ); `notify` — без ИИ: вебхук automation.run.notice разработчику в канал сценария (id сценария, номер шага, причина и счётчики).","isRequired":true,"uniqueKey":"steps.items.[INDEX].action","typeLabel":"enum\u003cstring>"},"instruction":{"type":"string","maxLength":100000,"description":"Поручение ИИ — только у agent и для него обязательно (длина — не больше instruction_max_chars).","uniqueKey":"steps.items.[INDEX].instruction","typeLabel":"string"},"output":{"type":"object","description":"Форма итога — только у agent.","example":{"order_id":{"type":"id","description":"Номер заказа из события"},"amount_tiyn":{"type":"integer","description":"Сумма оплаты в тиынах"},"status":{"type":"enum","values":["written","waiting"],"description":"written — поступление записано в 1С, waiting — ждёт человека"}},"additionalProperties":{"oneOf":[{"type":"object","description":"Поле итога: вид значения и описание для ИИ.","required":["type","description"],"properties":{"type":{"type":"string","enum":["number"],"description":"`number` — число","isRequired":true,"uniqueKey":"steps.items.[INDEX].output.additionalProperties.oneOf.0.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Что положить в поле — для ИИ, обычными словами (до 500 знаков). Пишет разработчик.","example":"Номер заказа из события","isRequired":true,"uniqueKey":"steps.items.[INDEX].output.additionalProperties.oneOf.0.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"steps.items.[INDEX].output.additionalProperties.oneOf.0","typeLabel":"object"},{"type":"object","description":"Поле итога: вид значения и описание для ИИ.","required":["type","description"],"properties":{"type":{"type":"string","enum":["integer"],"description":"`integer` — целое число (суммы — в тиынах)","isRequired":true,"uniqueKey":"steps.items.[INDEX].output.additionalProperties.oneOf.1.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Что положить в поле — для ИИ, обычными словами (до 500 знаков). Пишет разработчик.","example":"Номер заказа из события","isRequired":true,"uniqueKey":"steps.items.[INDEX].output.additionalProperties.oneOf.1.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"steps.items.[INDEX].output.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"Поле итога: вид значения и описание для ИИ.","required":["type","description"],"properties":{"type":{"type":"string","enum":["boolean"],"description":"`boolean` — да/нет","isRequired":true,"uniqueKey":"steps.items.[INDEX].output.additionalProperties.oneOf.2.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Что положить в поле — для ИИ, обычными словами (до 500 знаков). Пишет разработчик.","example":"Номер заказа из события","isRequired":true,"uniqueKey":"steps.items.[INDEX].output.additionalProperties.oneOf.2.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"steps.items.[INDEX].output.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"object","description":"Поле итога: вид значения и описание для ИИ.","required":["type","description"],"properties":{"type":{"type":"string","enum":["id"],"description":"`id` — номер (заказа, документа, платежа) по шаблону ^[A-Za-z0-9_.\\-/#]{1,64}$","isRequired":true,"uniqueKey":"steps.items.[INDEX].output.additionalProperties.oneOf.3.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Что положить в поле — для ИИ, обычными словами (до 500 знаков). Пишет разработчик.","example":"Номер заказа из события","isRequired":true,"uniqueKey":"steps.items.[INDEX].output.additionalProperties.oneOf.3.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"steps.items.[INDEX].output.additionalProperties.oneOf.3","typeLabel":"object"},{"type":"object","description":"Поле итога: вид значения и описание для ИИ.","required":["type","description","values"],"properties":{"type":{"type":"string","enum":["enum"],"description":"`enum` — одно значение из списка values","isRequired":true,"uniqueKey":"steps.items.[INDEX].output.additionalProperties.oneOf.4.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Что положить в поле — для ИИ, обычными словами (до 500 знаков). Пишет разработчик.","example":"Номер заказа из события","isRequired":true,"uniqueKey":"steps.items.[INDEX].output.additionalProperties.oneOf.4.description","typeLabel":"string"},"values":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z0-9_.\\-/#]{1,64}$","uniqueKey":"steps.items.[INDEX].output.additionalProperties.oneOf.4.values.items.[INDEX]","typeLabel":"string"},"minItems":1,"maxItems":50,"description":"Допустимые значения (1–50, без повторов): латиница, цифры и `_ . - / #`, до 64 знаков","example":["written","waiting"],"isRequired":true,"uniqueKey":"steps.items.[INDEX].output.additionalProperties.oneOf.4.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"steps.items.[INDEX].output.additionalProperties.oneOf.4","typeLabel":"object"}],"uniqueKey":"steps.items.[INDEX].output.additionalProperties","typeLabel":"object"},"uniqueKey":"steps.items.[INDEX].output","typeLabel":"object"},"when":{"type":"string","enum":["always","previous_created_proposals","checks_found_issues","previous_failed"],"description":"Когда выполнять шаг (нет — `always`): `always` — всегда; `previous_created_proposals` — прошлый шаг подготовил предложения; `checks_found_issues` — последние проверки этого запуска нашли ошибки; `previous_failed` — прошлый шаг упал (только такой шаг идёт после упавшего, запуск всё равно закончится ошибкой). Условие не выполнено — шаг пропускается (state skipped). У первого шага — только always.","uniqueKey":"steps.items.[INDEX].when","typeLabel":"enum\u003cstring>"}},"required":["action"],"additionalProperties":false,"description":"Шаг сценария: действие и когда его выполнять.","uniqueKey":"steps.items.[INDEX]","typeLabel":"object"},"minItems":1,"maxItems":5,"description":"Цепочка шагов (1–5) вместо action, instruction и output — передайте что-то одно. Пример «каждое утро»: `[{\"action\":\"directbank\"},{\"action\":\"agent\",\"instruction\":\"Разнеси выписку\",\"when\":\"previous_created_proposals\"},{\"action\":\"checks\"},{\"action\":\"notify\",\"when\":\"checks_found_issues\"}]`. Каждый шаг agent — отдельный платный ход ИИ: запуск стоит до 5 ходов. Правило автоодобрения применяется после каждого шага agent.","uniqueKey":"steps","typeLabel":"object[]"},"auto_approve":{"oneOf":[{"type":"object","properties":{"kinds":{"type":"array","items":{"type":"string","enum":["sale","purchase","bank_receipt","bank_payment","counterparty","contract","inventory_writeoff","cash_order_in","cash_order_out","advance_report"],"uniqueKey":"auto_approve.oneOf.0.kinds.items.[INDEX]","typeLabel":"enum\u003cstring>"},"minItems":1,"description":"Какие виды документов записываются сами (хотя бы один, без повторов). `sale` — реализация товаров и услуг (продажа покупателю); `purchase` — поступление товаров и услуг (покупка у поставщика); `bank_receipt` — входящее платёжное поручение (деньги пришли на расчётный счёт); `bank_payment` — исходящее платёжное поручение (оплата со счёта); `counterparty` — новый контрагент (покупатель или поставщик) в справочнике 1С; `contract` — новый договор с контрагентом (у карточек справочника нет суммы: за запуск сами пишутся не больше automations.money.catalog_per_run); `inventory_writeoff` — списание товаров; `cash_order_in` — приходный кассовый ордер (наличные в кассу); `cash_order_out` — расходный кассовый ордер (наличные из кассы); `advance_report` — авансовый отчёт сотрудника (на что потрачены подотчётные деньги). Отмена документа в список не входит — её всегда решает человек.","example":["bank_receipt","sale"],"isRequired":true,"uniqueKey":"auto_approve.oneOf.0.kinds","typeLabel":"enum\u003cstring>[]"},"max_amount_per_document_tiyn":{"type":"integer","exclusiveMinimum":0,"maximum":1000000000000000,"description":"Потолок суммы одного документа в тиынах (1 ₸ = 100 тиын; 50 000 000 = 500 000 ₸). Документ дороже, без известной суммы или дороже потолка компании (GET …/autonomy) ждёт человека. Не больше max_amount_per_day_tiyn.","example":50000000,"isRequired":true,"uniqueKey":"auto_approve.oneOf.0.max_amount_per_document_tiyn","typeLabel":"integer"},"max_amount_per_day_tiyn":{"type":"integer","exclusiveMinimum":0,"maximum":10000000000000000,"description":"Потолок суммы всех автоодобрений сценария за календарный день по Алматы, в тиынах. Сверх него документы ждут человека. Сверх этого действует и потолок компании на день — общий для всех сценариев и выписки DirectBank.","example":200000000,"isRequired":true,"uniqueKey":"auto_approve.oneOf.0.max_amount_per_day_tiyn","typeLabel":"integer"},"directbank":{"type":"boolean","description":"true — правило применяется и к предложениям, которые собирает опрос выписки DirectBank (дополнение документов, созданных 1С из выписки банка): после каждого захода опроса ставится запуск этого сценария без ИИ, и подходящие предложения записываются сами по этому правилу. У компании так может быть только один сценарий. Нет или false — выписку DirectBank одобряет человек.","uniqueKey":"auto_approve.oneOf.0.directbank","typeLabel":"boolean"}},"required":["kinds","max_amount_per_document_tiyn","max_amount_per_day_tiyn"],"additionalProperties":false,"description":"Правило автоодобрения — только у сценария с шагом agent (action: agent или шаг agent в steps); сохраняет только тот, у кого есть proposals.approve. null или нет — всё подготовленное ждёт решения человека.","uniqueKey":"auto_approve.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"kinds":{"type":"array","items":{"type":"string","enum":["sale","purchase","bank_receipt","bank_payment","counterparty","contract","inventory_writeoff","cash_order_in","cash_order_out","advance_report"]},"minItems":1,"description":"Какие виды документов записываются сами (хотя бы один, без повторов). `sale` — реализация товаров и услуг (продажа покупателю); `purchase` — поступление товаров и услуг (покупка у поставщика); `bank_receipt` — входящее платёжное поручение (деньги пришли на расчётный счёт); `bank_payment` — исходящее платёжное поручение (оплата со счёта); `counterparty` — новый контрагент (покупатель или поставщик) в справочнике 1С; `contract` — новый договор с контрагентом (у карточек справочника нет суммы: за запуск сами пишутся не больше automations.money.catalog_per_run); `inventory_writeoff` — списание товаров; `cash_order_in` — приходный кассовый ордер (наличные в кассу); `cash_order_out` — расходный кассовый ордер (наличные из кассы); `advance_report` — авансовый отчёт сотрудника (на что потрачены подотчётные деньги). Отмена документа в список не входит — её всегда решает человек.","example":["bank_receipt","sale"]},"max_amount_per_document_tiyn":{"type":"integer","exclusiveMinimum":0,"maximum":1000000000000000,"description":"Потолок суммы одного документа в тиынах (1 ₸ = 100 тиын; 50 000 000 = 500 000 ₸). Документ дороже, без известной суммы или дороже потолка компании (GET …/autonomy) ждёт человека. Не больше max_amount_per_day_tiyn.","example":50000000},"max_amount_per_day_tiyn":{"type":"integer","exclusiveMinimum":0,"maximum":10000000000000000,"description":"Потолок суммы всех автоодобрений сценария за календарный день по Алматы, в тиынах. Сверх него документы ждут человека. Сверх этого действует и потолок компании на день — общий для всех сценариев и выписки DirectBank.","example":200000000},"directbank":{"type":"boolean","description":"true — правило применяется и к предложениям, которые собирает опрос выписки DirectBank (дополнение документов, созданных 1С из выписки банка): после каждого захода опроса ставится запуск этого сценария без ИИ, и подходящие предложения записываются сами по этому правилу. У компании так может быть только один сценарий. Нет или false — выписку DirectBank одобряет человек."}},"required":["kinds","max_amount_per_document_tiyn","max_amount_per_day_tiyn"],"additionalProperties":false,"description":"Правило автоодобрения — только у сценария с шагом agent (action: agent или шаг agent в steps); сохраняет только тот, у кого есть proposals.approve. null или нет — всё подготовленное ждёт решения человека.","uniqueKey":"auto_approve.oneOf.1","typeLabel":"null"}],"uniqueKey":"auto_approve","typeLabel":"object | null"}},"required":["name","trigger"],"additionalProperties":false,"description":"Сценарий целиком — при заведении и замене.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"name":"Разнести поступления с сайта","trigger":{"kind":"hook","hook_id":"hk_01h455vb4pex5vsknk084sn02q"},"enabled":true,"instruction":"Разнеси оплату из события: найди покупателя по БИН и проведи поступление на расчётный счёт.","output":{"order_id":{"type":"id","description":"Номер заказа из события"},"amount_tiyn":{"type":"integer","description":"Сумма оплаты в тиынах"},"status":{"type":"enum","values":["written","waiting"],"description":"written — поступление записано в 1С, waiting — ждёт человека"}},"steps":[{"instruction":"\u003cstring>","output":{"order_id":{"type":"id","description":"Номер заказа из события"},"amount_tiyn":{"type":"integer","description":"Сумма оплаты в тиынах"},"status":{"type":"enum","values":["written","waiting"],"description":"written — поступление записано в 1С, waiting — ждёт человека"}}}],"auto_approve":{"kinds":["bank_receipt","sale"],"max_amount_per_document_tiyn":50000000,"max_amount_per_day_tiyn":200000000,"directbank":true}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"3fcf7a5d-7d33-4b23-9ff4-191d9d1dd1f5":{"description":"Сценарий заведён","content":{"application/json":{"schema":{"type":"object","description":"Сохранённый сценарий и предупреждения о правиле автоодобрения.","required":["id","name","enabled","trigger","next_run_at","action","instruction","output","steps","auto_approve","run_as","created_at","updated_at"],"properties":{"id":{"type":"string","description":"id сценария — для адресов …/automations/scenarios/{id} (scn_…)","example":"scn_01jz8x3m4n5p6q7r8s9t0v1w2x","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"name":{"type":"string","description":"Название сценария","example":"Разнести поступления с сайта","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"enabled":{"type":"boolean","description":"Включён ли. Выключенный не запускается событием и расписанием; вручную — запускается","isRequired":true,"uniqueKey":"enabled","typeLabel":"boolean"},"trigger":{"oneOf":[{"type":"object","description":"Когда запускается сценарий; вид — в kind (hook, schedule, event, manual).","required":["kind","hook_id"],"properties":{"kind":{"type":"string","enum":["hook"],"description":"`hook` — по событию хука","isRequired":true,"uniqueKey":"trigger.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"hook_id":{"type":"string","description":"Хук, события которого запускают сценарий (hk_…)","example":"hk_01jz8x3m4n5p6q7r8s9t0v1w2x","isRequired":true,"uniqueKey":"trigger.oneOf.0.hook_id","typeLabel":"string"},"filter":{"type":"object","properties":{"all":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","pattern":"^[A-Za-z0-9_-]+(\\.[A-Za-z0-9_-]+){0,9}$","description":"Где в JSON тела события взять значение: имена полей через точку, до 10 уровней; элемент массива — его номером с нуля (`items.0.sum`).","example":"data.status","isRequired":true,"uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX].path","typeLabel":"string"},"op":{"type":"string","enum":["eq","ne","in","contains","exists","gt","gte","lt","lte"],"description":"Как сравнивать значение поля с value. `eq` — равно (строки — без учёта регистра и пробелов по краям; числа — как числа, строка «15000.00» равна 15000); `ne` — не равно, или поля нет; `in` — равно одному из значений списка value; `contains` — строка содержит value (без учёта регистра) или массив содержит элемент, равный value; `exists` — поле есть в теле (с value: false — поля нет); `gt` / `gte` / `lt` / `lte` — число больше / не меньше / меньше / не больше value (строка из цифр сравнивается как число; не число — условие не выполнено).","example":"eq","isRequired":true,"uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX].op","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"type":"string","description":"С чем сравнивать: строка (до 500 знаков), число, true/false или null. Для `in` — список до 50 таких значений; для `gt`/`gte`/`lt`/`lte` — число; для остальных — одно значение. Для `exists` не нужно (false — проверить, что поля нет).","maxLength":500,"example":"paid","uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"number","description":"С чем сравнивать: строка (до 500 знаков), число, true/false или null. Для `in` — список до 50 таких значений; для `gt`/`gte`/`lt`/`lte` — число; для остальных — одно значение. Для `exists` не нужно (false — проверить, что поля нет).","example":"paid","uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX].value.oneOf.1","typeLabel":"number"},{"type":"boolean","description":"С чем сравнивать: строка (до 500 знаков), число, true/false или null. Для `in` — список до 50 таких значений; для `gt`/`gte`/`lt`/`lte` — число; для остальных — одно значение. Для `exists` не нужно (false — проверить, что поля нет).","example":"paid","uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX].value.oneOf.2","typeLabel":"boolean"},{"type":"null","description":"С чем сравнивать: строка (до 500 знаков), число, true/false или null. Для `in` — список до 50 таких значений; для `gt`/`gte`/`lt`/`lte` — число; для остальных — одно значение. Для `exists` не нужно (false — проверить, что поля нет).","example":"paid","uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX].value.oneOf.3","typeLabel":"null"},{"type":"array","items":{"oneOf":[{"type":"string","maxLength":500,"uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX].value.oneOf.4.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX].value.oneOf.4.items.[INDEX].oneOf.1","typeLabel":"number"},{"type":"boolean","uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX].value.oneOf.4.items.[INDEX].oneOf.2","typeLabel":"boolean"},{"type":"null","uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX].value.oneOf.4.items.[INDEX].oneOf.3","typeLabel":"null"}],"uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX].value.oneOf.4.items.[INDEX]","typeLabel":"string | number | boolean | null"},"description":"С чем сравнивать: строка (до 500 знаков), число, true/false или null. Для `in` — список до 50 таких значений; для `gt`/`gte`/`lt`/`lte` — число; для остальных — одно значение. Для `exists` не нужно (false — проверить, что поля нет).","maxItems":50,"example":"paid","uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX].value.oneOf.4","typeLabel":"(string | number | boolean | null)[]"}],"uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX].value","typeLabel":"string | number | boolean | null | (string | number | boolean | null)[]"}},"required":["path","op"],"additionalProperties":false,"description":"Одно условие фильтра: значение поля из тела события сравнивается с value.","uniqueKey":"trigger.oneOf.0.filter.all.items.[INDEX]","typeLabel":"object"},"maxItems":20,"description":"Условия (до 20); событие подходит, только если выполнены все. Пустой список — подходит любое событие.","isRequired":true,"uniqueKey":"trigger.oneOf.0.filter.all","typeLabel":"object[]"}},"required":["all"],"additionalProperties":false,"description":"Какие события хука запускают сценарий; нет — любое","uniqueKey":"trigger.oneOf.0.filter","typeLabel":"object"}},"isRequired":true,"uniqueKey":"trigger.oneOf.0","typeLabel":"object"},{"type":"object","description":"Когда запускается сценарий; вид — в kind (hook, schedule, event, manual).","required":["kind","schedule","timezone"],"properties":{"kind":{"type":"string","enum":["schedule"],"description":"`schedule` — по расписанию","isRequired":true,"uniqueKey":"trigger.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"schedule":{"oneOf":[{"type":"object","description":"Расписание запуска по Алматы. Пропущенный запуск (сервис был недоступен) догоняется одним запуском, а не пачкой за все пропущенные слоты.","required":["kind","at"],"properties":{"kind":{"type":"string","enum":["daily"],"description":"`daily` — каждый день","isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"at":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","description":"Время запуска ЧЧ:ММ (24 часа) по Алматы (Asia/Almaty). Показывать как есть, в пояс пользователя не переводить.","example":"09:00","isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.0.at","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.0","typeLabel":"object"},{"type":"object","description":"Расписание запуска по Алматы. Пропущенный запуск (сервис был недоступен) догоняется одним запуском, а не пачкой за все пропущенные слоты.","required":["kind","days","at"],"properties":{"kind":{"type":"string","enum":["weekly"],"description":"`weekly` — по выбранным дням недели","isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"days":{"type":"array","items":{"type":"integer","minimum":1,"maximum":7,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.1.days.items.[INDEX]","typeLabel":"integer"},"minItems":1,"maxItems":7,"description":"Дни недели по ISO: 1 — понедельник … 7 — воскресенье; от 1 до 7 дней без повторов. День — по календарю Алматы.","example":[1,2,3,4,5],"isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.1.days","typeLabel":"integer[]"},"at":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","description":"Время запуска ЧЧ:ММ (24 часа) по Алматы (Asia/Almaty). Показывать как есть, в пояс пользователя не переводить.","example":"09:00","isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.1.at","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.1","typeLabel":"object"},{"type":"object","description":"Расписание запуска по Алматы. Пропущенный запуск (сервис был недоступен) догоняется одним запуском, а не пачкой за все пропущенные слоты.","required":["kind","at"],"example":{"kind":"monthly","last_workday":true,"at":"18:00"},"properties":{"kind":{"type":"string","enum":["monthly"],"description":"`monthly` — по числам месяца","isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"at":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","description":"Время запуска ЧЧ:ММ (24 часа) по Алматы (Asia/Almaty). Показывать как есть, в пояс пользователя не переводить.","example":"09:00","isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.2.at","typeLabel":"string"},"days":{"type":"array","items":{"type":"integer","minimum":1,"maximum":31,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.2.days.items.[INDEX]","typeLabel":"integer"},"minItems":1,"maxItems":31,"description":"Числа месяца 1…31 без повторов. Числа, которого нет в месяце (31 в ноябре, 30 в феврале), в этом месяце запуска нет — на последний день месяца используйте last_day.","example":[25],"uniqueKey":"trigger.oneOf.1.schedule.oneOf.2.days","typeLabel":"integer[]"},"last_day":{"type":"boolean","enum":[true],"description":"true — ещё и в последний день месяца (28, 29, 30 или 31-е).","uniqueKey":"trigger.oneOf.1.schedule.oneOf.2.last_day","typeLabel":"enum\u003cboolean>"},"last_workday":{"type":"boolean","enum":[true],"description":"true — ещё и в последний рабочий день месяца по производственному календарю РК из базы знаний (выходные и праздники Закона «О праздниках в РК»). Оговорка календаря: Учтены выходные (суббота, воскресенье) и праздники Закона «О праздниках в РК» с переносом по его ст. 5. Переносы рабочих дней и религиозные праздники (Курбан айт, Рождество) по ежегодному постановлению Правительства в базе НЕ загружены — если срок близок к таким датам, сверьтесь с постановлением. Если календаря нет (база знаний недоступна или в ней нет праздников), запуск в последний рабочий день откладывается до его появления и потом догоняется одним запуском — по одним выходным он не считается, чтобы в месяце не вышло двух запусков.","uniqueKey":"trigger.oneOf.1.schedule.oneOf.2.last_workday","typeLabel":"enum\u003cboolean>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.2","typeLabel":"object"},{"type":"object","description":"Расписание запуска по Алматы. Пропущенный запуск (сервис был недоступен) догоняется одним запуском, а не пачкой за все пропущенные слоты.","required":["kind","every_hours","from","to"],"example":{"kind":"interval","every_hours":2,"from":"09:00","to":"19:00","days":[1,2,3,4,5]},"properties":{"kind":{"type":"string","enum":["interval"],"description":"`interval` — каждые N часов в пределах дня","isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.3.kind","typeLabel":"enum\u003cstring>"},"every_hours":{"type":"integer","minimum":1,"maximum":12,"description":"Шаг в часах, 1…12.","example":2,"isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.3.every_hours","typeLabel":"integer"},"from":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","description":"Первый запуск дня, ЧЧ:ММ по Алматы.","example":"09:00","isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.3.from","typeLabel":"string"},"to":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","description":"Позже этого времени (ЧЧ:ММ по Алматы) запусков в этот день нет; раньше from быть не может.","example":"19:00","isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.3.to","typeLabel":"string"},"days":{"type":"array","items":{"type":"integer","minimum":1,"maximum":7,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.3.days.items.[INDEX]","typeLabel":"integer"},"minItems":1,"maxItems":7,"description":"Дни недели по ISO (1 — понедельник … 7 — воскресенье) без повторов; нет — каждый день.","example":[1,2,3,4,5],"uniqueKey":"trigger.oneOf.1.schedule.oneOf.3.days","typeLabel":"integer[]"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule.oneOf.3","typeLabel":"object"}],"isRequired":true,"uniqueKey":"trigger.oneOf.1.schedule","typeLabel":"object"},"timezone":{"type":"string","enum":["Asia/Almaty"],"description":"Всегда Asia/Almaty: время в schedule — по Алматы","isRequired":true,"uniqueKey":"trigger.oneOf.1.timezone","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"trigger.oneOf.1","typeLabel":"object"},{"type":"object","description":"Когда запускается сценарий; вид — в kind (hook, schedule, event, manual).","required":["kind","event"],"properties":{"kind":{"type":"string","enum":["event"],"description":"`event` — по событию внутри Tungo","isRequired":true,"uniqueKey":"trigger.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"event":{"type":"string","enum":["proposal.awaiting_approval","proposal.written","proposal.failed","esf.incoming.received","bank_statement.received","proposal.rejected","batch.completed","batch.failed","onec.connection.changed"],"description":"Вид события компании — имя из раздела webhooks этого описания. Например: `esf.incoming.received` — пришли входящие ЭСФ; `bank_statement.received` — пришла выписка (загружена человеком или забрана кнопкой; выписка, забранная сценарием directbank, сценарии не запускает — для выписки по расписанию делайте цепочку directbank → agent); `proposal.rejected` — человек отклонил предложение; `onec.connection.changed` — связь с 1С пропала или вернулась. Сценарий берёт только события после своего сохранения; события, порождённые запусками автоматизаций, сценарии не запускают — круга не будет.","example":"esf.incoming.received","isRequired":true,"uniqueKey":"trigger.oneOf.2.event","typeLabel":"enum\u003cstring>"},"filter":{"type":"object","description":"Какие события этого вида запускают сценарий (путь — по телу события, как у вебхука: `data.amount_tiyn`); нет — любое","required":["all"],"properties":{"all":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","pattern":"^[A-Za-z0-9_-]+(\\.[A-Za-z0-9_-]+){0,9}$","description":"Где в JSON тела события взять значение: имена полей через точку, до 10 уровней; элемент массива — его номером с нуля (`items.0.sum`).","example":"data.status","isRequired":true,"uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX].path","typeLabel":"string"},"op":{"type":"string","enum":["eq","ne","in","contains","exists","gt","gte","lt","lte"],"description":"Как сравнивать значение поля с value. `eq` — равно (строки — без учёта регистра и пробелов по краям; числа — как числа, строка «15000.00» равна 15000); `ne` — не равно, или поля нет; `in` — равно одному из значений списка value; `contains` — строка содержит value (без учёта регистра) или массив содержит элемент, равный value; `exists` — поле есть в теле (с value: false — поля нет); `gt` / `gte` / `lt` / `lte` — число больше / не меньше / меньше / не больше value (строка из цифр сравнивается как число; не число — условие не выполнено).","example":"eq","isRequired":true,"uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX].op","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"type":"string","description":"С чем сравнивать: строка (до 500 знаков), число, true/false или null. Для `in` — список до 50 таких значений; для `gt`/`gte`/`lt`/`lte` — число; для остальных — одно значение. Для `exists` не нужно (false — проверить, что поля нет).","maxLength":500,"example":"paid","uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"number","description":"С чем сравнивать: строка (до 500 знаков), число, true/false или null. Для `in` — список до 50 таких значений; для `gt`/`gte`/`lt`/`lte` — число; для остальных — одно значение. Для `exists` не нужно (false — проверить, что поля нет).","example":"paid","uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX].value.oneOf.1","typeLabel":"number"},{"type":"boolean","description":"С чем сравнивать: строка (до 500 знаков), число, true/false или null. Для `in` — список до 50 таких значений; для `gt`/`gte`/`lt`/`lte` — число; для остальных — одно значение. Для `exists` не нужно (false — проверить, что поля нет).","example":"paid","uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX].value.oneOf.2","typeLabel":"boolean"},{"type":"null","description":"С чем сравнивать: строка (до 500 знаков), число, true/false или null. Для `in` — список до 50 таких значений; для `gt`/`gte`/`lt`/`lte` — число; для остальных — одно значение. Для `exists` не нужно (false — проверить, что поля нет).","example":"paid","uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX].value.oneOf.3","typeLabel":"null"},{"type":"array","items":{"oneOf":[{"type":"string","maxLength":500,"uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX].value.oneOf.4.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX].value.oneOf.4.items.[INDEX].oneOf.1","typeLabel":"number"},{"type":"boolean","uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX].value.oneOf.4.items.[INDEX].oneOf.2","typeLabel":"boolean"},{"type":"null","uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX].value.oneOf.4.items.[INDEX].oneOf.3","typeLabel":"null"}],"uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX].value.oneOf.4.items.[INDEX]","typeLabel":"string | number | boolean | null"},"description":"С чем сравнивать: строка (до 500 знаков), число, true/false или null. Для `in` — список до 50 таких значений; для `gt`/`gte`/`lt`/`lte` — число; для остальных — одно значение. Для `exists` не нужно (false — проверить, что поля нет).","maxItems":50,"example":"paid","uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX].value.oneOf.4","typeLabel":"(string | number | boolean | null)[]"}],"uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX].value","typeLabel":"string | number | boolean | null | (string | number | boolean | null)[]"}},"required":["path","op"],"additionalProperties":false,"description":"Одно условие фильтра: значение поля из тела события сравнивается с value.","uniqueKey":"trigger.oneOf.2.filter.all.items.[INDEX]","typeLabel":"object"},"maxItems":20,"description":"Условия (до 20); событие подходит, только если выполнены все. Пустой список — подходит любое событие.","isRequired":true,"uniqueKey":"trigger.oneOf.2.filter.all","typeLabel":"object[]"}},"additionalProperties":false,"uniqueKey":"trigger.oneOf.2.filter","typeLabel":"object"}},"isRequired":true,"uniqueKey":"trigger.oneOf.2","typeLabel":"object"},{"type":"object","description":"Когда запускается сценарий; вид — в kind (hook, schedule, event, manual).","required":["kind"],"properties":{"kind":{"type":"string","enum":["manual"],"description":"`manual` — только вручную: POST …/scenarios/{id}/run","isRequired":true,"uniqueKey":"trigger.oneOf.3.kind","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"trigger.oneOf.3","typeLabel":"object"}],"isRequired":true,"uniqueKey":"trigger","typeLabel":"object"},"next_run_at":{"oneOf":[{"type":"string","format":"date-time","example":"2026-10-05T09:30:00.000Z","description":"Когда сценарий по расписанию сработает в следующий раз, ISO 8601 UTC. null — сценарий ручной, по событию (хука или Tungo) или выключен, а у расписания с last_workday — ещё и когда производственного календаря сейчас нет (запуск отложен до его появления). Пока компания на паузе, запуск в этот срок встанет в очередь и начнётся после снятия паузы","isRequired":true,"uniqueKey":"next_run_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","example":"2026-10-05T09:30:00.000Z","description":"Когда сценарий по расписанию сработает в следующий раз, ISO 8601 UTC. null — сценарий ручной, по событию (хука или Tungo) или выключен, а у расписания с last_workday — ещё и когда производственного календаря сейчас нет (запуск отложен до его появления). Пока компания на паузе, запуск в этот срок встанет в очередь и начнётся после снятия паузы","isRequired":true,"uniqueKey":"next_run_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"next_run_at","typeLabel":"string\u003cdate-time> | null"},"action":{"type":"string","enum":["agent","checks","directbank"],"description":"Старая форма: действие (у цепочки — первого шага, полностью — steps). `agent` — ход ИИ-бухгалтера по поручению instruction (готовит предложения — документы для 1С); `checks` — проверки учёта без ИИ и без предложений; `directbank` — опрос выписки DirectBank без ИИ (предложения — выпиской дня)","isRequired":true,"uniqueKey":"action","typeLabel":"enum\u003cstring>"},"instruction":{"type":"string","description":"Поручение ИИ обычными словами (первого шага); у checks, directbank и цепочки, начатой не с agent, — пустая строка","isRequired":true,"uniqueKey":"instruction","typeLabel":"string"},"output":{"oneOf":[{"type":"object","description":"Форма итога шага ИИ (у сценария из одного шага); null — итог только текстом (answer) или сценарий — цепочка","example":{"order_id":{"type":"id","description":"Номер заказа из события"},"amount_tiyn":{"type":"integer","description":"Сумма оплаты в тиынах"},"status":{"type":"enum","values":["written","waiting"],"description":"written — поступление записано в 1С, waiting — ждёт человека"}},"additionalProperties":{"oneOf":[{"type":"object","description":"Поле итога: вид значения и описание для ИИ.","required":["type","description"],"properties":{"type":{"type":"string","enum":["number"],"description":"`number` — число","isRequired":true,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.0.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Что положить в поле — для ИИ, обычными словами (до 500 знаков). Пишет разработчик.","example":"Номер заказа из события","isRequired":true,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.0.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.0","typeLabel":"object"},{"type":"object","description":"Поле итога: вид значения и описание для ИИ.","required":["type","description"],"properties":{"type":{"type":"string","enum":["integer"],"description":"`integer` — целое число (суммы — в тиынах)","isRequired":true,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.1.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Что положить в поле — для ИИ, обычными словами (до 500 знаков). Пишет разработчик.","example":"Номер заказа из события","isRequired":true,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.1.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"Поле итога: вид значения и описание для ИИ.","required":["type","description"],"properties":{"type":{"type":"string","enum":["boolean"],"description":"`boolean` — да/нет","isRequired":true,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.2.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Что положить в поле — для ИИ, обычными словами (до 500 знаков). Пишет разработчик.","example":"Номер заказа из события","isRequired":true,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.2.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"object","description":"Поле итога: вид значения и описание для ИИ.","required":["type","description"],"properties":{"type":{"type":"string","enum":["id"],"description":"`id` — номер (заказа, документа, платежа) по шаблону ^[A-Za-z0-9_.\\-/#]{1,64}$","isRequired":true,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.3.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Что положить в поле — для ИИ, обычными словами (до 500 знаков). Пишет разработчик.","example":"Номер заказа из события","isRequired":true,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.3.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.3","typeLabel":"object"},{"type":"object","description":"Поле итога: вид значения и описание для ИИ.","required":["type","description","values"],"properties":{"type":{"type":"string","enum":["enum"],"description":"`enum` — одно значение из списка values","isRequired":true,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.4.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Что положить в поле — для ИИ, обычными словами (до 500 знаков). Пишет разработчик.","example":"Номер заказа из события","isRequired":true,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.4.description","typeLabel":"string"},"values":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z0-9_.\\-/#]{1,64}$","uniqueKey":"output.oneOf.0.additionalProperties.oneOf.4.values.items.[INDEX]","typeLabel":"string"},"minItems":1,"maxItems":50,"description":"Допустимые значения (1–50, без повторов): латиница, цифры и `_ . - / #`, до 64 знаков","example":["written","waiting"],"isRequired":true,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.4.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"output.oneOf.0.additionalProperties.oneOf.4","typeLabel":"object"}],"uniqueKey":"output.oneOf.0.additionalProperties","typeLabel":"object"},"isRequired":true,"uniqueKey":"output.oneOf.0","typeLabel":"object"},{"type":"null","description":"Форма итога шага ИИ (у сценария из одного шага); null — итог только текстом (answer) или сценарий — цепочка","isRequired":true,"uniqueKey":"output.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"output","typeLabel":"object | null"},"steps":{"type":"array","items":{"type":"object","properties":{"action":{"type":"string","enum":["agent","checks","directbank","notify"],"description":"`agent` — ход ИИ (платный); `checks` — проверки учёта; `directbank` — опрос выписки DirectBank; `notify` — вебхук automation.run.notice разработчику","isRequired":true,"uniqueKey":"steps.items.[INDEX].action","typeLabel":"enum\u003cstring>"},"when":{"type":"string","enum":["always","previous_created_proposals","checks_found_issues","previous_failed"],"description":"Когда выполняется шаг: always, previous_created_proposals, checks_found_issues, previous_failed","isRequired":true,"uniqueKey":"steps.items.[INDEX].when","typeLabel":"enum\u003cstring>"},"instruction":{"oneOf":[{"type":"string","description":"Поручение ИИ (только у agent); null — у шага без ИИ","isRequired":true,"uniqueKey":"steps.items.[INDEX].instruction.oneOf.0","typeLabel":"string"},{"type":"null","description":"Поручение ИИ (только у agent); null — у шага без ИИ","isRequired":true,"uniqueKey":"steps.items.[INDEX].instruction.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"steps.items.[INDEX].instruction","typeLabel":"string | null"},"output":{"oneOf":[{"type":"object","description":"Форма итога (только у agent); null — нет","example":{"order_id":{"type":"id","description":"Номер заказа из события"},"amount_tiyn":{"type":"integer","description":"Сумма оплаты в тиынах"},"status":{"type":"enum","values":["written","waiting"],"description":"written — поступление записано в 1С, waiting — ждёт человека"}},"additionalProperties":{"oneOf":[{"type":"object","description":"Поле итога: вид значения и описание для ИИ.","required":["type","description"],"properties":{"type":{"type":"string","enum":["number"],"description":"`number` — число","isRequired":true,"uniqueKey":"steps.items.[INDEX].output.oneOf.0.additionalProperties.oneOf.0.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Что положить в поле — для ИИ, обычными словами (до 500 знаков). Пишет разработчик.","example":"Номер заказа из события","isRequired":true,"uniqueKey":"steps.items.[INDEX].output.oneOf.0.additionalProperties.oneOf.0.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"steps.items.[INDEX].output.oneOf.0.additionalProperties.oneOf.0","typeLabel":"object"},{"type":"object","description":"Поле итога: вид значения и описание для ИИ.","required":["type","description"],"properties":{"type":{"type":"string","enum":["integer"],"description":"`integer` — целое число (суммы — в тиынах)","isRequired":true,"uniqueKey":"steps.items.[INDEX].output.oneOf.0.additionalProperties.oneOf.1.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Что положить в поле — для ИИ, обычными словами (до 500 знаков). Пишет разработчик.","example":"Номер заказа из события","isRequired":true,"uniqueKey":"steps.items.[INDEX].output.oneOf.0.additionalProperties.oneOf.1.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"steps.items.[INDEX].output.oneOf.0.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","description":"Поле итога: вид значения и описание для ИИ.","required":["type","description"],"properties":{"type":{"type":"string","enum":["boolean"],"description":"`boolean` — да/нет","isRequired":true,"uniqueKey":"steps.items.[INDEX].output.oneOf.0.additionalProperties.oneOf.2.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Что положить в поле — для ИИ, обычными словами (до 500 знаков). Пишет разработчик.","example":"Номер заказа из события","isRequired":true,"uniqueKey":"steps.items.[INDEX].output.oneOf.0.additionalProperties.oneOf.2.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"steps.items.[INDEX].output.oneOf.0.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"object","description":"Поле итога: вид значения и описание для ИИ.","required":["type","description"],"properties":{"type":{"type":"string","enum":["id"],"description":"`id` — номер (заказа, документа, платежа) по шаблону ^[A-Za-z0-9_.\\-/#]{1,64}$","isRequired":true,"uniqueKey":"steps.items.[INDEX].output.oneOf.0.additionalProperties.oneOf.3.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Что положить в поле — для ИИ, обычными словами (до 500 знаков). Пишет разработчик.","example":"Номер заказа из события","isRequired":true,"uniqueKey":"steps.items.[INDEX].output.oneOf.0.additionalProperties.oneOf.3.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"steps.items.[INDEX].output.oneOf.0.additionalProperties.oneOf.3","typeLabel":"object"},{"type":"object","description":"Поле итога: вид значения и описание для ИИ.","required":["type","description","values"],"properties":{"type":{"type":"string","enum":["enum"],"description":"`enum` — одно значение из списка values","isRequired":true,"uniqueKey":"steps.items.[INDEX].output.oneOf.0.additionalProperties.oneOf.4.type","typeLabel":"enum\u003cstring>"},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Что положить в поле — для ИИ, обычными словами (до 500 знаков). Пишет разработчик.","example":"Номер заказа из события","isRequired":true,"uniqueKey":"steps.items.[INDEX].output.oneOf.0.additionalProperties.oneOf.4.description","typeLabel":"string"},"values":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z0-9_.\\-/#]{1,64}$","uniqueKey":"steps.items.[INDEX].output.oneOf.0.additionalProperties.oneOf.4.values.items.[INDEX]","typeLabel":"string"},"minItems":1,"maxItems":50,"description":"Допустимые значения (1–50, без повторов): латиница, цифры и `_ . - / #`, до 64 знаков","example":["written","waiting"],"isRequired":true,"uniqueKey":"steps.items.[INDEX].output.oneOf.0.additionalProperties.oneOf.4.values","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"steps.items.[INDEX].output.oneOf.0.additionalProperties.oneOf.4","typeLabel":"object"}],"uniqueKey":"steps.items.[INDEX].output.oneOf.0.additionalProperties","typeLabel":"object"},"isRequired":true,"uniqueKey":"steps.items.[INDEX].output.oneOf.0","typeLabel":"object"},{"type":"null","description":"Форма итога (только у agent); null — нет","isRequired":true,"uniqueKey":"steps.items.[INDEX].output.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"steps.items.[INDEX].output","typeLabel":"object | null"}},"required":["action","when","instruction","output"],"description":"Шаг сценария.","uniqueKey":"steps.items.[INDEX]","typeLabel":"object"},"description":"Шаги сценария (1–5). У сценария старой формы — один шаг из action, instruction и output. Каждый шаг agent — отдельный платный ход ИИ.","isRequired":true,"uniqueKey":"steps","typeLabel":"object[]"},"auto_approve":{"oneOf":[{"type":"object","description":"Правило автоодобрения; null — всё подготовленное ждёт решения человека","required":["kinds","max_amount_per_document_tiyn","max_amount_per_day_tiyn"],"properties":{"kinds":{"type":"array","items":{"type":"string","enum":["sale","purchase","bank_receipt","bank_payment","counterparty","contract","inventory_writeoff","cash_order_in","cash_order_out","advance_report"],"uniqueKey":"auto_approve.oneOf.0.kinds.items.[INDEX]","typeLabel":"enum\u003cstring>"},"minItems":1,"description":"Какие виды документов записываются сами (хотя бы один, без повторов). `sale` — реализация товаров и услуг (продажа покупателю); `purchase` — поступление товаров и услуг (покупка у поставщика); `bank_receipt` — входящее платёжное поручение (деньги пришли на расчётный счёт); `bank_payment` — исходящее платёжное поручение (оплата со счёта); `counterparty` — новый контрагент (покупатель или поставщик) в справочнике 1С; `contract` — новый договор с контрагентом (у карточек справочника нет суммы: за запуск сами пишутся не больше automations.money.catalog_per_run); `inventory_writeoff` — списание товаров; `cash_order_in` — приходный кассовый ордер (наличные в кассу); `cash_order_out` — расходный кассовый ордер (наличные из кассы); `advance_report` — авансовый отчёт сотрудника (на что потрачены подотчётные деньги). Отмена документа в список не входит — её всегда решает человек.","example":["bank_receipt","sale"],"isRequired":true,"uniqueKey":"auto_approve.oneOf.0.kinds","typeLabel":"enum\u003cstring>[]"},"max_amount_per_document_tiyn":{"type":"integer","exclusiveMinimum":0,"maximum":1000000000000000,"description":"Потолок суммы одного документа в тиынах (1 ₸ = 100 тиын; 50 000 000 = 500 000 ₸). Документ дороже, без известной суммы или дороже потолка компании (GET …/autonomy) ждёт человека. Не больше max_amount_per_day_tiyn.","example":50000000,"isRequired":true,"uniqueKey":"auto_approve.oneOf.0.max_amount_per_document_tiyn","typeLabel":"integer"},"max_amount_per_day_tiyn":{"type":"integer","exclusiveMinimum":0,"maximum":10000000000000000,"description":"Потолок суммы всех автоодобрений сценария за календарный день по Алматы, в тиынах. Сверх него документы ждут человека. Сверх этого действует и потолок компании на день — общий для всех сценариев и выписки DirectBank.","example":200000000,"isRequired":true,"uniqueKey":"auto_approve.oneOf.0.max_amount_per_day_tiyn","typeLabel":"integer"},"directbank":{"type":"boolean","description":"true — правило применяется и к предложениям, которые собирает опрос выписки DirectBank (дополнение документов, созданных 1С из выписки банка): после каждого захода опроса ставится запуск этого сценария без ИИ, и подходящие предложения записываются сами по этому правилу. У компании так может быть только один сценарий. Нет или false — выписку DirectBank одобряет человек.","uniqueKey":"auto_approve.oneOf.0.directbank","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"auto_approve.oneOf.0","typeLabel":"object"},{"type":"null","description":"Правило автоодобрения; null — всё подготовленное ждёт решения человека","isRequired":true,"uniqueKey":"auto_approve.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"auto_approve","typeLabel":"object | null"},"run_as":{"type":"string","description":"От чьего имени идут запуски — кто сохранил сценарий последним (usr_…): с его правами, расход ИИ — как у него","example":"usr_01h455vb4pex5vsknk084sn02q","isRequired":true,"uniqueKey":"run_as","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","example":"2026-10-05T09:30:00.000Z","description":"Когда заведён, ISO 8601 UTC","isRequired":true,"uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","example":"2026-10-05T09:30:00.000Z","description":"Когда менялся последний раз, ISO 8601 UTC","isRequired":true,"uniqueKey":"updated_at","typeLabel":"string\u003cdate-time>"},"warnings":{"type":"array","items":{"type":"string","uniqueKey":"warnings.items.[INDEX]","typeLabel":"string"},"description":"Есть, только когда правило автоодобрения сейчас запишет само не всё (или ничего): организация пока не доверила ИИ записывать эти виды без человека. Тексты для человека — показать рядом с формой. Нет поля — правило работает как задано (или правила нет)","uniqueKey":"warnings","typeLabel":"string[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"scn_01jz8x3m4n5p6q7r8s9t0v1w2x","name":"Разнести поступления с сайта","enabled":true,"trigger":{"kind":"hook","hook_id":"hk_01jz8x3m4n5p6q7r8s9t0v1w2x","filter":{"all":[{"path":"data.status","op":"eq","value":"paid"}]}},"next_run_at":"2026-10-05T09:30:00.000Z","action":"agent","instruction":"\u003cstring>","output":{"order_id":{"type":"id","description":"Номер заказа из события"},"amount_tiyn":{"type":"integer","description":"Сумма оплаты в тиынах"},"status":{"type":"enum","values":["written","waiting"],"description":"written — поступление записано в 1С, waiting — ждёт человека"}},"steps":[{"action":"agent","when":"always","instruction":"\u003cstring>","output":{"order_id":{"type":"id","description":"Номер заказа из события"},"amount_tiyn":{"type":"integer","description":"Сумма оплаты в тиынах"},"status":{"type":"enum","values":["written","waiting"],"description":"written — поступление записано в 1С, waiting — ждёт человека"}}}],"auto_approve":{"kinds":["bank_receipt","sale"],"max_amount_per_document_tiyn":50000000,"max_amount_per_day_tiyn":200000000,"directbank":true},"run_as":"usr_01h455vb4pex5vsknk084sn02q","created_at":"2026-10-05T09:30:00.000Z","updated_at":"2026-10-05T09:30:00.000Z","warnings":["\u003cstring>"]}}},"exampleType":"generated"}},"headers":{"x-request-id":{"description":"Номер запроса (тот же, что request_id в теле ошибки) — назвать в обращении в поддержку. Его всегда создаёт сервер: присланный клиентом x-request-id номером не становится","schema":{"type":"string","example":"req_3f2a9c0d1e4b4c5d8e7f6a5b4c3d2e1f"}},"x-ratelimit-limit":{"description":"Только при входе по ключу API: сколько запросов можно в текущем окне — самый тесный предел из ключа и организации","schema":{"type":"integer"}},"x-ratelimit-remaining":{"description":"Только при входе по ключу API: сколько запросов осталось по этому пределу в текущем окне","schema":{"type":"integer"}},"x-ratelimit-reset":{"description":"Только при входе по ключу API: секунд до нового окна этого предела","schema":{"type":"integer"}},"Idempotent-Replayed":{"description":"true — это сохранённый ответ на повтор с тем же Idempotency-Key: действие второй раз не выполнялось. Нет заголовка — запрос выполнен сейчас","schema":{"type":"string","enum":["true"]}}},"exampleType":"generated"},"713871b2-321a-4df4-8f4b-b454f7c9d455":{"description":"Запрос неверен — показать error.message у формы; при error.code = validation_failed — ошибки полей в error.fields (error.type: invalid_request_error)","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["error"],"description":"Всегда «error»: так тело ошибки отличается от обычного ответа.","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request_error","authentication_error","payment_required_error","permission_error","not_found_error","conflict_error","gone_error","limit_error","api_error","unavailable_error"],"description":"Вид ошибки — по нему ветвится клиент (не по тексту message). Статус HTTP у вида один, кроме invalid_request_error:\n- `invalid_request_error` (400) — запрос неверен: поле не прошло проверку, неверный формат, действие сейчас недопустимо. Показать message рядом с формой; повтор без исправления не поможет. Обычно 400; 413 и 422 — у кодов, где это сказано в списке code.\n- `authentication_error` (401) — нет входа: сессия закончилась, cookie нет, ключ API неверен, отозван или истёк. Кабинет — отправить на страницу входа; по ключу — проверить ключ (см. code).\n- `payment_required_error` (402) — нужны деньги или решение владельца/админа организации: ждать бесполезно. Показать message и кнопку действия по code (оформить тариф, пополнить баланс, поднять потолок); без code — не оплачено подключение компании.\n- `permission_error` (403) — нельзя: не хватает права или роли, организация заблокирована, вход не тем способом. Показать message (в нём сказано, к кому обратиться); детали — в code и полях рядом.\n- `not_found_error` (404) — нет такого объекта — или он чужой: чужие организации, компании и записи тоже отвечают 404, чтобы не раскрывать, что они есть. Показать «не найдено» и вернуть к списку.\n- `conflict_error` (409) — состояние не позволяет: уже сделано, уже идёт другое действие, версия устарела. Перечитать объект, обновить экран и показать message.\n- `gone_error` (410) — объекта больше нет: разговор не найден или истёк (вопрос в чате, ответ на вопрос ИИ, подсчёт токенов — начать новый разговор), ход потерян при перезапуске сервера, ссылка привязки программы устарела или уже использована (code connector_link_gone). Повторять незачем.\n- `limit_error` (429) — предел: частота запросов, окно тарифа, число объектов или мест. Если есть заголовок Retry-After или resets_at — пройдёт само, показать, когда; иначе нужно освободить место (удалить лишнее) или сменить тариф.\n- `api_error` (500) — сбой на нашей стороне. Показать message и request_id (для поддержки); повторить позже.\n- `unavailable_error` (503) — временно недоступно (внешний сервис, ИИ, настройка сервера). Повторить позже; если повторяется — сообщить request_id в поддержку.","example":"payment_required_error","isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Готовый текст для человека по-русски: что случилось, что делать и к кому обратиться. Показывать как есть; не разбирать — формулировки меняются.","example":"Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"type":"string","description":"Уточнение вида: по нему выбирается действие интерфейса (кнопка «Пополнить», «Войти иначе»…). Нет поля — хватает type и message. Известные коды:\n- `sso_domain_taken` (409) — домен SSO уже подтверждён другой организацией\n- `sso_last_verified_domain` (409) — включён обязательный вход, а это последний подтверждённый домен — сначала выключить обязательный вход\n- `sso_login_required` (400) — включить обязательный вход можно только из сессии, открытой через SSO этой организации\n- `domain_verification_failed` (400) — запись DNS для домена не найдена или не совпала — проверить и повторить\n- `oidc_openid_scope_required` (400) — в scopes сервера входа OIDC нет openid — добавить её: без неё вход через SSO не пройдёт\n- `enterprise_only` (403) — возможность есть только на тарифе Enterprise\n- `groups_limit` (429) — достигнут предел групп в организации\n- `custom_roles_limit` (429) — достигнут предел своих ролей в организации\n- `group_managed_by_directory` (409) — группа из каталога: название и состав меняются только там\n- `group_member_not_in_workspace` (400) — в группу можно добавить только сотрудника этой организации\n- `role_above_ceiling` (400) — роль даёт права выше потолка организации\n- `unknown_model` (400) — такой модели нет — список в available_models\n- `price_required` (400) — админка, тариф целиком: у платного тарифа нужна цена (price)\n- `lago_rejected` (409) — админка, тариф целиком: Lago отказал по существу (4xx, текст Lago в message) — правила не изменены, повтор без правки не поможет\n- `price_mismatch` (400) — админка, тариф целиком: цена не сходится с правилами (место без per_seat, per_seat без цены места, цена у бесплатного)\n- `model_not_allowed` (403) — политика организации не разрешает эту модель, а подходящей разрешённой нет — админу дополнить список\n- `retention_too_short` (400) — срок хранения меньше наименьшего\n- `audit_export_range` (400) — неверный период выгрузки журнала: конец раньше начала или период слишком длинный\n- `compliance_disabled` (403) — адрес для проверок выключен — владелец включает его в настройке\n- `missing_credentials` (401) — нет ни cookie сессии, ни ключа API — войти или передать x-api-key\n- `link_revoked` (401) — вход в Tungo из 1С больше не действует (вышли, отключили на сайте, вошли в той же базе заново, компания или человек заблокированы) — 1С просит войти заново\n- `login_denied` (403) — вход из 1С отклонён на сайте Tungo — 1С показывает отказ\n- `code_expired` (410) — код входа из 1С устарел или уже использован — 1С просит новый код\n- `code_gone` (410) — код входа из 1С уже подтверждён, отклонён или устарел — на сайте подтверждать нечего\n- `invalid_api_key` (401) — ключ API неверен (опечатка или удалён)\n- `key_revoked` (401) — ключ API отозван (при правке ключа — 409 с тем же code: отозванный ключ не меняется)\n- `key_expired` (401) — срок ключа API истёк — сменить секрет (POST …/api-keys/{id}/roll: срок начнётся заново) или выпустить новый (при правке срока — 409 с тем же code: PATCH истёкший ключ не оживляет)\n- `key_disabled` (401) — ключ API выключен — включить может автор ключа или владелец организации (POST …/api-keys/{id}/enable)\n- `key_creator_lost_access` (401) — тот, кто выпустил ключ, больше не владелец/админ организации — ключ недействителен\n- `user_banned` (401) — вход в аккаунт закрыт администратором Tungo — только поддержка Tungo\n- `onboarding_unpaid` (402) — подключение компании к ИИ-бухгалтеру не оплачено (разовый платёж): владельцу/админу организации — «Оплатить» в настройках компании; остальным — сообщить им\n- `onboarding_pending` (402) — оплата подключения компании ещё проходит в банке — ИИ заработает после подтверждения; опрашивать состояние подключения\n- `no_active_plan` (402) — нет действующей подписки (не оформлена, закончилась, первая оплата не прошла или ждёт 3-D Secure). Владельцу/админу — кнопка в настройки оплаты; остальным — «обратитесь к владельцу организации». Что именно случилось — в message\n- `balance_exhausted` (402) — баланс доп. использования кончился. Владельцу/админу — «Пополнить баланс» или включить автопополнение; остальным — сообщить им\n- `workspace_cap_reached` (402) — достигнут месячный потолок доп. использования организации. resets_at — 1-е число следующего месяца, 00:00 по Алматы; раньше — если админ поднимет потолок\n- `report_busy` (429) — сейчас собирается много отчётов команды: повторить через время из Retry-After\n- `report_timeout` (503) — отчёт команды не успел собраться: сократить период или выбрать разбивку по месяцам\n- `company_cap_reached` (402) — достигнут месячный потолок доп. использования компании. Письмо владельцу и админам уже отправлено. resets_at — 1-е число; раньше — если админ поднимет потолок (PUT /v1/workspaces/{ws}/team/company-caps/{co})\n- `member_cap_reached` (402) — достигнут личный месячный потолок доп. использования сотрудника. resets_at — 1-е число; раньше — если админ поднимет его потолок\n- `key_cap_reached` (402) — достигнут месячный потолок расхода ключа API (или остаток меньше оценки одного вызова). resets_at — 1-е число\n- `platform_balance_exhausted` (402) — баланс платформы пуст: вызов по ключу или автоматизация не сделаны. Пополнить — POST /v1/workspaces/{ws}/platform/purchases или автопополнением\n- `platform_cap_reached` (402) — достигнут месячный потолок трат платформы. resets_at — 1-е число следующего месяца, 00:00 по Алматы; раньше — поднять потолок в PUT /v1/workspaces/{ws}/platform/account\n- `platform_disabled` (402) — платформа выключена в организации: вызовы по ключам и автоматизации остановлены. Включить — PUT /v1/workspaces/{ws}/platform/account\n- `free_plan_chat_only` (402) — бесплатный тариф: пачки из кабинета только на платных тарифах. Ключам API и автоматизациям тариф не нужен\n- `free_limit_unavailable` (402) — бесплатный лимит этой учётной записи не положен (проверка регистрации или решение администратора) — оформить тариф\n- `plan_company_limit` (402) — в организации уже столько компаний не в архиве, сколько разрешает тариф (max_companies в GET /v1/plans; limit и plan_code — в ответе): новую не завести и из архива не вернуть. Убрать лишнюю в архив или перейти на тариф больше\n- `effort_not_in_plan` (402) — поле effort в чате на тарифе без выбора усилия (max_effort тарифа null, например бесплатный): ход не начат. Прислать вопрос без effort или оформить платный тариф\n- `model_not_in_plan` (402) — модель сильнее потолка тарифа (plans.model_ceiling): вызов не сделан; более сильные модели — на платных тарифах\n- `missing_permission` (403) — не хватает права в компании (или у ключа API); какого — в поле permission\n- `login_method_not_allowed` (403) — организация пускает к своим данным только после входа другим способом; какими — в allowed_methods. Предложить выйти и войти так\n- `ip_not_allowed` (403) — ключ API не принимает запросы с этого адреса — поправить allowed_ips ключа (PATCH …/api-keys/{id}) или вызывать с разрешённого адреса\n- `key_write_limit` (403) — запись в 1С по ключу API — сверх его пределов (сумма на документ или в день, виды документов) или правило автоодобрения шире пределов ключа; в сообщении — что и на сколько\n- `human_only` (403) — это решение принимает только человек в кабинете Tungo, не ключ API: например, отклонить «не знаем, записан ли» на снимке базы без проверки 1С (confirm_unknown_write)\n- `autonomy_raise_requires_session` (403) — поднять уровень доверия ИИ или потолки компании можно только владельцу или админу организации из кабинета; ключом API — только понизить\n- `id_path_required` (400) — для автоодобрения по хуку задайте хуку id_path — путь к номеру операции в теле события: без него повтор доставки нельзя отличить от новой операции\n- `directbank_rule_exists` (400) — у компании уже есть сценарий с правилом для выписки DirectBank — правило выписки одно на компанию\n- `event_not_found` (404) — события нет в этой компании или оно удалено по сроку хранения — для пробного прогона выберите событие посвежее\n- `event_body_unavailable` (409) — тело события зашифровано, а ключ шифрования на сервере сменился — прогнать сценарий на нём нельзя\n- `scenario_steps_required` (409) — у сценария цепочка шагов, а в замене (PUT) нет ни steps, ни output: передайте steps явно, иначе замена молча убрала бы цепочку\n- `scenario_output_required` (409) — у сценария форма итога, а в замене (PUT) нет ни steps, ни output: передайте output явно (null — снять форму)\n- `automation_queue_full` (429) — у компании слишком много запусков в очереди: повторите позже (событие хука отправитель повторит сам)\n- `restarting` (503) — сервис перезапускается: новый ход не начат — повторите через Retry-After\n- `company_suspended` (403) — работа с компанией приостановлена (решение платформы или оплаты); карточка видна, работать, править и архивировать нельзя (архив — 409 с тем же code)\n- `company_archived` (403) — компания в архиве: карточка видна, работать с ней нельзя. Вернуть — POST /v1/companies/{company_id}/unarchive (владелец компании или владелец/админ организации)\n- `workspace_blocked` (403) — организация заблокирована администратором платформы — только поддержка Tungo\n- `untrusted_origin` (403) — запрос пришёл не со страницы Tungo (защита от подделки запросов) — открыть кабинет по обычному адресу; для /admin/* — только со страниц ADMIN_ORIGINS\n- `cors_not_supported` (403) — вызов API из чужого браузерного кода (CORS) не поддерживается: ключ API — секрет сервера\n- `api_keys_disabled_by_policy` (403) — политика организации запрещает ключи API\n- `owner_role_reserved` (403) — владельца компании назначает, меняет и снимает только владелец или админ организации\n- `role_above_yours` (403) — у выдаваемой (или снимаемой) роли есть права, которых нет у вас; роль — в поле role, лишние права — в permissions\n- `not_key_creator` (403) — менять компании, права, срок и секрет ключа, снимать и поднимать его пределы записи в 1С может только тот, кто его выпустил (ужесточить пределы может любой админ)\n- `transfer_wider_than_target` (403) — передать ключ нельзя: у нового владельца нет нужного права (или доступа) в одной из компаний ключа\n- `invalid_allowed_ips` (400) — в allowed_ips ключа — не IP-адрес и не подсеть CIDR; какая запись — в сообщении\n- `transfer_target_not_admin` (400) — передать ключ можно только владельцу или админу этой организации\n- `platform_model_not_allowed` (403) — модель сильнее потолка платформы (настройка platform.billing): вызов не сделан и ничего не списано\n- `managed_by_sso` (403) — удаление аккаунта: аккаунт ведёт организация (SSO или SCIM) — удаляет её администратор; организации — в workspaces\n- `fresh_session_required` (403) — удаление аккаунта без почты (Telegram): нужен свежий вход — выйти, войти снова и подтвердить\n- `api_key_not_allowed` (403) — действие только из кабинета (сессия), не по ключу API: удаление аккаунта\n- `not_own_key` (403) — по ключу API виден только расход самого этого ключа\n- `webhooks_not_in_plan` (403) — вебхуков нет в тарифе организации\n- `admin_2fa_required` (403) — админ-API: у администратора платформы нет второго фактора или эта сессия не подтверждена кодом приложения-аутентификатора (POST /v1/auth/two-factor/enable, затем verify-totp)\n- `two_factor_required` (403) — отключить второй фактор, показать его секрет или выпустить резервные коды — только после кода из приложения-аутентификатора в этой сессии\n- `webhooks_require_all_companies` (403) — вебхуки — только ключу на все компании организации (при выпуске ключа — 400 с тем же code)\n- `audit_requires_all_companies` (403) — журнал организации — только ключу на все компании организации\n- `policy_blocked` (403) — одобрение: организация не доверяет ИИ записывать такой документ этим способом (поле level — уровень доверия); одобрить по одному или поднять уровень\n- `onec_read_only` (403) — одобрение: у пользователя 1С из подключения нет права записи — дать права в 1С\n- `validation_failed` (400) — тело или параметры запроса не прошли проверку: что не так с каждым полем — в fields (путь, код, текст по-русски). Подсветить поля формы; общий message — над формой\n- `invalid_json` (400) — тело запроса — не JSON-объект\n- `personal_workspace` (400) — в личной организации нет сотрудников, приглашений и политик — нужна организация Team или Enterprise\n- `api_key_required` (400) — адрес только для запроса по ключу API\n- `email_code_unavailable` (400) — удаление аккаунта: у аккаунта нет почты для кода (вход через Telegram) — подтверждать свежим входом, без кода\n- `deletion_code_invalid` (400) — удаление аккаунта: неверный код из письма; сколько попыток осталось — attempts_left\n- `deletion_code_expired` (400) — удаление аккаунта: код истёк, попытки кончились или код не запрашивался — запросить новый (POST /v1/me/deletion/code)\n- `unsafe_url` (400) — адрес вебхука недопустим (внутренняя сеть, не HTTPS)\n- `idempotency_key_invalid` (400) — Idempotency-Key неверного вида\n- `payload_too_large` (413) — тело запроса (или события хука) больше допустимого; пределы — настройки платформы\n- `idempotency_key_reused` (422) — этот Idempotency-Key уже был у другого запроса — для нового действия нужен новый ключ\n- `has_blockers` (422) — одобрение: у предложения есть блокеры — сначала исправить их\n- `batch_too_large` (413) — одобрение пачкой: предложений больше предела (поля limit, requested) — разбить на части\n- `unknown_kind` (400) — настройки писем: такого вида уведомлений нет — взять список из GET /v1/me/notifications\n- `kind_locked` (400) — настройки писем: этот вид (безопасность и аккаунт) выключить нельзя — переключатель неактивен (locked)\n- `onec_rejected` (400) — одобрение: 1С отклонила документ (причина — в message): исправить в 1С или построить предложение заново\n- `proposal_not_found` (404) — предложения с таким id нет в компании\n- `export_link_expired` (404) — ссылка на архив выгрузки истекла или неверна — получить новую: GET /v1/me/export\n- `batch_not_found` (404) — одобрение пачкой: задания с таким batch_id нет (или в нём нет предложений)\n- `idempotency_in_progress` (409) — первый запрос с этим Idempotency-Key ещё выполняется — подождать и повторить, придёт тот же ответ\n- `idempotency_response_not_kept` (409) — запрос с этим Idempotency-Key уже выполнен, но копия ответа не хранится (в нём персональные данные): результат — по ссылке в ответе (dialog_url) или в списке; статус первого ответа — original_status\n- `idempotency_response_too_large` (409) — запрос с этим Idempotency-Key уже выполнен, но ответ слишком большой, чтобы повторить его целиком: результат — в списке; статус первого ответа — original_status\n- `sole_owner` (409) — удаление аккаунта: вы единственный владелец организации с другими участниками (workspaces) — передать владение (POST /v1/workspaces/{ws}/ownership) или удалить организацию\n- `account_deletion_in_progress` (409) — удаление аккаунта: фон уже стирает аккаунт — новый код и подтверждение не принимаются, отменить нельзя\n- `wrong_status` (409) — предложение уже не в том состоянии (поле status — нынешнее): обновить его\n- `wrong_state` (409) — запуск автоматизации уже не в том состоянии (поле state — нынешнее)\n- `dialog_closed` (409) — разговор закрыт (поле reason — почему): начать новый\n- `dialog_id_taken` (409) — разговор с таким dialog_id уже есть — для нового прислать другой id или не присылать его\n- `turn_in_progress` (409) — в разговоре уже идёт ход ИИ (поле turn — его номер): дождаться его конца или остановить\n- `turn_superseded` (409) — читаемый ход уже закончился и идёт следующий (поле turn) — читать его с начала\n- `dialog_changed` (409) — разговор только что изменился в другом окне или на другом сервере Tungo — открыть его заново (GET …/chat/{id}) и повторить\n- `already_answered` (409) — на этот вопрос ИИ уже ответили (поле turn — ход с ответом)\n- `question_stale` (409) — вопрос ИИ устарел (в разговоре уже другой вопрос или его нет) — обновить разговор\n- `dismissed` (409) — вопрос ИИ закрыт без ответа — написать обычное сообщение\n- `job_running` (409) — задание (пачка) ещё идёт — дождаться отчёта; поле batch_id\n- `payload_changed` (409) — одобрение: документ изменился после превью — построить предложение заново\n- `onec_conflict` (409) — одобрение: 1С отказала из-за конфликта (объект занят или изменён) — повторить позже\n- `onec_not_found` (409) — одобрение: в 1С нет объекта, на который ссылается документ — построить предложение заново\n- `plan_limit_reached` (429) — лимит окна тарифа исчерпан; resets_at и Retry-After — когда обновится. Показать время; если в message предложено доп. использование — дать кнопку включить\n- `rate_limited` (429) — слишком часто (по ключу API, уведомления ePay с одного адреса, попытки кода второго фактора) — подождать Retry-After секунд\n- `concurrent_turns_limit` (429) — по ключу API уже идёт предельное число ходов ИИ одновременно — дождаться окончания\n- `api_keys_limit` (429) — в организации предельное число действующих ключей API — отозвать ненужные\n- `webhook_endpoints_limit` (429) — предельное число адресов вебхуков — удалить ненужные\n- `export_too_soon` (429) — выгрузку данных можно запрашивать не чаще раза в сутки: next_request_at и Retry-After — когда можно снова\n- `hook_rate_limited` (429) — приём событий хука: больше automations.hook_events_per_minute в минуту — повторить через Retry-After секунд\n- `lago_unavailable` (503) — админка, тариф целиком: Lago не настроен или не ответил (сеть, 5xx) — правила не изменены, повторить позже\n- `model_price_missing` (503) — у модели ИИ не задана цена — сбой настройки платформы, ничего не списано; повторить позже\n- `data_export_disabled` (503) — выгрузка данных на сервере не настроена (поддержка Tungo)\n- `webhooks_disabled` (503) — вебхуки на сервере не настроены\n- `webhooks_unavailable` (503) — служба доставки вебхуков временно недоступна\n- `model_not_configured` (503) — сервис модели ИИ не настроен на сервере — повторить позже (Retry-After)\n- `write_unknown` (503) — одобрение: исход записи в 1С неизвестен (связь оборвалась) — проверить документ в 1С по метке (поле marker); повтор безопасен (retry_safe); слишком ранний повтор в 1С не пишет — подождать retry_after секунд (Retry-After)\n- `onec_unavailable` (503) — 1С сейчас не отвечает — повторить позже (Retry-After)\n- `onec_check_busy` (503) — проверка связи 1С: сервер сейчас проверяет слишком много подключений — повторить через Retry-After секунд\n- `onec_failed` (503) — записать документ в 1С не удалось по неизвестной причине — повторить позже\n- `journal_unavailable` (503) — журнал решений недоступен — пачка не одобрена, повторить позже\n- `hook_secret_unavailable` (503) — приём событий хука: секрет подписи сейчас не открыть — отправителю повторить доставку позже\n- `secret_box_missing` (503) — на сервере не задан ключ шифрования настроек — секрет подписи хука сохранить нельзя (поддержка Tungo)\n- `not_personal` (409) — перевод в команду: организация уже не личная — обновить экран\n- `subscription_blocks_conversion` (409) — перевод в команду: действует подписка для одного человека — сначала отменить её и дождаться конца периода\n- `subscription_kind_mismatch` (409) — админка: действующая подписка оформлена на другой вид организации — вид не меняется, пока она идёт\n- `enterprise_features_active` (409) — админка: у организации подключены SSO или SCIM — сначала отключить, потом снимать Enterprise\n- `too_many_members_for_personal` (409) — админка: в личной организации один человек — сначала убрать остальных участников\n- `open_debt` (409) — есть неоплаченный счёт — сначала оплатить; в плане удаления этот же код лежит в blockers\n- `active_work` (409) — в организации идут ходы ИИ или автоматизации — дождаться окончания и повторить; в плане удаления этот же код лежит в blockers\n- `deletion_already_scheduled` (409) — удаление организации уже запланировано — показать дату из плана\n- `deletion_purging` (409) — очистка организации уже идёт — отменить её нельзя\n- `workspace_deleting` (409) — админка: организация удаляется по просьбе владельца — блок удаления снимает только отмена удаления\n- `invitation_not_pending` (409) — приглашение принято, отозвано или истекло — письмо не отправить, пригласить заново\n- `last_owner` (409) — это последний владелец организации — сначала передать владение другому участнику\n- `seats_by_contract` (409) — места Enterprise — по договору, карта и докупка не работают: обратиться к менеджеру\n- `no_subscription` (409) — нет действующей подписки — сначала оформить тариф\n- `not_per_seat` (409) — этот тариф не считает оплату за место — докупка не нужна, предел мест показан в ответе GET …/seats\n- `subscription_ended` (409) — возобновление: период отменённой подписки уже закончился — ничего не списано, оформить тариф заново (повторный PUT — обычное оформление)\n- `subscription_busy` (409) — подписка уже меняется другим запросом (отмена или возобновление) — обновить экран через несколько секунд\n- `subscription_ending` (409) — подписка отменена и закончится в конце периода — места не докупаются и не сокращаются\n- `seats_unpaid_debt` (409) — подписка просрочена — сначала оплатить счёт; участники остаются, новых приглашать нельзя\n- `idempotency_conflict` (409) — докупка: этот ключ уже использован с другим числом мест — для новой покупки нужен новый ключ\n- `seat_quote_changed` (409) — докупка: сумма изменилась (другой день или новая цена), деньги не списаны — показать новую сумму из поля и спросить снова\n- `no_paid_seats` (409) — оплаченных мест ещё нет — сокращать нечего\n- `seats_below_occupied` (409) — занято больше мест, чем просите оставить — сначала убрать участников или отозвать приглашения\n- `not_enterprise` (409) — админка: места по договору есть только у Enterprise — сначала поставить вид\n- `per_seat_plan_change` (409) — смена тарифа с оплатой за место не делается сразу: Lago взял бы плату за места дважды. Отменить и оформить новый с конца периода\n- `confirm_name_mismatch` (400) — удаление организации: название введено неверно — ввести точно как в плане удаления\n- `below_min_seats` (400) — на этом тарифе мест меньше нельзя: минимум — min_seats тарифа\n- `seats_over_max` (400) — мест больше предела одной организации (team.limits.max_seats) — обратиться в поддержку\n- `seats_above_paid` (400) — PUT …/seats только сокращает; новые места — через POST …/seats с оплатой\n- `onec_check_running` (429) — проверка связи 1С уже идёт у этой компании, у вас (другая компания) или у двух других компаний организации — дождаться её итога и повторить (Retry-After)\n- `invitation_resend_too_soon` (429) — письмо с приглашением уже отправлено только что — подождать Retry-After секунд\n- `seats_exhausted` (429) — свободные места закончились: докупите места или освободите их, отозвав приглашение\n- `seat_price_unknown` (503) — цена места сейчас неизвестна (тариф не прочитан или настроен неверно), деньги не списаны — повторить позже\n- `otp_mail_failed` (503) — письмо с кодом входа не отправлено: попробуйте позже\n- `seat_period_unknown` (503) — не удалось сверить период подписки с биллингом: деньги не списаны, попробуйте позже\n\nНезнакомый code — вести себя по type.","example":"balance_exhausted","uniqueKey":"error.code","typeLabel":"string"},"permission":{"type":"string","description":"При code = missing_permission — какого права не хватает: права в компании (company.read, company.manage, company.members.manage, onec.connect, proposals.create, proposals.approve, chat.use, audit.read, automations.manage) или права только ключа API (automations.read, webhooks.manage). Показать «нужно право …» и предложить попросить админа (или выпустить ключ с этим правом).","example":"proposals.approve","uniqueKey":"error.permission","typeLabel":"string"},"resets_at":{"type":"string","format":"date-time","description":"Когда ограничение снимется само — ISO 8601, UTC. Есть у plan_limit_reached (конец окна тарифа) и у месячных потолков (workspace_cap_reached, company_cap_reached, member_cap_reached, key_cap_reached, platform_cap_reached — 1-е число, 00:00 по Алматы). Показать в местном времени: «Лимит обновится в 14:30». Нет поля — само не пройдёт.","example":"2026-11-01T19:00:00.000Z","uniqueKey":"error.resets_at","typeLabel":"string\u003cdate-time>"},"allowed_methods":{"type":"array","items":{"type":"string","enum":["email_otp","google","apple","telegram","sso"],"uniqueKey":"error.allowed_methods.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"При code = login_method_not_allowed — какими способами входа организация пускает к своим данным: email_otp — код из почты, google, apple, telegram, sso — SSO организации. Предложить выйти и войти одним из них.","uniqueKey":"error.allowed_methods","typeLabel":"enum\u003cstring>[]"},"role":{"type":"string","description":"При code = role_above_yours — ключ роли в компании, которую нельзя выдать или снять (например chief_accountant).","uniqueKey":"error.role","typeLabel":"string"},"permissions":{"type":"array","items":{"type":"string","uniqueKey":"error.permissions.items.[INDEX]","typeLabel":"string"},"description":"При code = role_above_yours — права этой роли, которых нет у того, кто выдаёт. Показать списком: «у роли есть права, которых нет у вас: …».","uniqueKey":"error.permissions","typeLabel":"string[]"},"fields":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"Путь к полю через точку, как в теле запроса или имени параметра: `name`, `lines.0.amount`. Пустая строка — всё тело (не объект, лишние поля).","example":"bin","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].path","typeLabel":"string"},"code":{"type":"string","enum":["invalid_type","too_small","too_big","invalid_format","invalid_value","not_multiple_of","unrecognized_keys","invalid_union","invalid_key","invalid_element","custom"],"description":"Что не так: invalid_type — не тот тип или поле не передано; too_small / too_big — короче/меньше или длиннее/больше допустимого; invalid_format — неверный вид (почта, дата, шаблон); invalid_value — значения нет среди допустимых; not_multiple_of — не кратно; unrecognized_keys — лишние поля; invalid_union — не подходит ни один вид; invalid_key / invalid_element — неверный ключ или элемент; custom — своё правило ручки","example":"invalid_format","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Текст для человека по-русски — показать под полем","example":"БИН/ИИН — 12 цифр","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].message","typeLabel":"string"}},"required":["path","code","message"],"description":"Ошибка одного поля запроса","uniqueKey":"error.fields.items.[INDEX]","typeLabel":"object"},"description":"При code = validation_failed — ошибки по полям, в порядке проверки; у одного поля может быть несколько.","uniqueKey":"error.fields","typeLabel":"object[]"}},"required":["type","message"],"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.additionalProperties","typeLabel":"any"},"description":"Что пошло не так. Все 503 — с заголовком Retry-After (через сколько секунд повторить). Кроме описанных, у отдельных ручек бывают свои поля рядом с code (например status у wrong_status, state у wrong_state, reason у dialog_closed) — они описаны у этих ручек.","isRequired":true,"uniqueKey":"error","typeLabel":"object"},"request_id":{"oneOf":[{"type":"string","description":"Номер запроса (тот же, что в заголовке x-request-id). Показывать мелко рядом с ошибкой с кнопкой «скопировать»: по нему поддержка находит запрос в журнале. null — номер не успел появиться (очень ранний отказ).","example":"req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f","isRequired":true,"uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Номер запроса (тот же, что в заголовке x-request-id). Показывать мелко рядом с ошибкой с кнопкой «скопировать»: по нему поддержка находит запрос в журнале. null — номер не успел появиться (очень ранний отказ).","example":"req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f","isRequired":true,"uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"request_id","typeLabel":"string | null"}},"required":["type","error","request_id"],"description":"Тело любой ошибки API (статусы 4xx и 5xx): `{\"type\":\"error\",\"error\":{\"type\":\"…\",\"code\":\"…\",\"message\":\"…\"},\"request_id\":\"…\"}`. Интерфейс ветвится по error.type и error.code, человеку показывает error.message и request_id.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"error","error":{"type":"payment_required_error","message":"Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.","code":"balance_exhausted","permission":"proposals.approve","resets_at":"2026-11-01T19:00:00.000Z","allowed_methods":["email_otp"],"role":"\u003cstring>","permissions":["\u003cstring>"],"fields":[{"path":"bin","code":"invalid_format","message":"БИН/ИИН — 12 цифр"}]},"request_id":"req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f"}}},"exampleType":"generated"}},"headers":{"x-request-id":{"description":"Номер запроса (тот же, что request_id в теле ошибки) — назвать в обращении в поддержку. Его всегда создаёт сервер: присланный клиентом x-request-id номером не становится","schema":{"type":"string","example":"req_3f2a9c0d1e4b4c5d8e7f6a5b4c3d2e1f"}},"x-ratelimit-limit":{"description":"Только при входе по ключу API: сколько запросов можно в текущем окне — самый тесный предел из ключа и организации","schema":{"type":"integer"}},"x-ratelimit-remaining":{"description":"Только при входе по ключу API: сколько запросов осталось по этому пределу в текущем окне","schema":{"type":"integer"}},"x-ratelimit-reset":{"description":"Только при входе по ключу API: секунд до нового окна этого предела","schema":{"type":"integer"}}},"exampleType":"generated"},"e290c531-d7fb-486c-ba0d-251df79d8da8":{"description":"Нет входа (сессия закончилась или ключ API неверен) — отправить на вход (error.type: authentication_error)","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["error"],"description":"Всегда «error»: так тело ошибки отличается от обычного ответа.","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request_error","authentication_error","payment_required_error","permission_error","not_found_error","conflict_error","gone_error","limit_error","api_error","unavailable_error"],"description":"Вид ошибки — по нему ветвится клиент (не по тексту message). Статус HTTP у вида один, кроме invalid_request_error:\n- `invalid_request_error` (400) — запрос неверен: поле не прошло проверку, неверный формат, действие сейчас недопустимо. Показать message рядом с формой; повтор без исправления не поможет. Обычно 400; 413 и 422 — у кодов, где это сказано в списке code.\n- `authentication_error` (401) — нет входа: сессия закончилась, cookie нет, ключ API неверен, отозван или истёк. Кабинет — отправить на страницу входа; по ключу — проверить ключ (см. code).\n- `payment_required_error` (402) — нужны деньги или решение владельца/админа организации: ждать бесполезно. Показать message и кнопку действия по code (оформить тариф, пополнить баланс, поднять потолок); без code — не оплачено подключение компании.\n- `permission_error` (403) — нельзя: не хватает права или роли, организация заблокирована, вход не тем способом. Показать message (в нём сказано, к кому обратиться); детали — в code и полях рядом.\n- `not_found_error` (404) — нет такого объекта — или он чужой: чужие организации, компании и записи тоже отвечают 404, чтобы не раскрывать, что они есть. Показать «не найдено» и вернуть к списку.\n- `conflict_error` (409) — состояние не позволяет: уже сделано, уже идёт другое действие, версия устарела. Перечитать объект, обновить экран и показать message.\n- `gone_error` (410) — объекта больше нет: разговор не найден или истёк (вопрос в чате, ответ на вопрос ИИ, подсчёт токенов — начать новый разговор), ход потерян при перезапуске сервера, ссылка привязки программы устарела или уже использована (code connector_link_gone). Повторять незачем.\n- `limit_error` (429) — предел: частота запросов, окно тарифа, число объектов или мест. Если есть заголовок Retry-After или resets_at — пройдёт само, показать, когда; иначе нужно освободить место (удалить лишнее) или сменить тариф.\n- `api_error` (500) — сбой на нашей стороне. Показать message и request_id (для поддержки); повторить позже.\n- `unavailable_error` (503) — временно недоступно (внешний сервис, ИИ, настройка сервера). Повторить позже; если повторяется — сообщить request_id в поддержку.","example":"payment_required_error","isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Готовый текст для человека по-русски: что случилось, что делать и к кому обратиться. Показывать как есть; не разбирать — формулировки меняются.","example":"Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"type":"string","description":"Уточнение вида: по нему выбирается действие интерфейса (кнопка «Пополнить», «Войти иначе»…). Нет поля — хватает type и message. Известные коды:\n- `sso_domain_taken` (409) — домен SSO уже подтверждён другой организацией\n- `sso_last_verified_domain` (409) — включён обязательный вход, а это последний подтверждённый домен — сначала выключить обязательный вход\n- `sso_login_required` (400) — включить обязательный вход можно только из сессии, открытой через SSO этой организации\n- `domain_verification_failed` (400) — запись DNS для домена не найдена или не совпала — проверить и повторить\n- `oidc_openid_scope_required` (400) — в scopes сервера входа OIDC нет openid — добавить её: без неё вход через SSO не пройдёт\n- `enterprise_only` (403) — возможность есть только на тарифе Enterprise\n- `groups_limit` (429) — достигнут предел групп в организации\n- `custom_roles_limit` (429) — достигнут предел своих ролей в организации\n- `group_managed_by_directory` (409) — группа из каталога: название и состав меняются только там\n- `group_member_not_in_workspace` (400) — в группу можно добавить только сотрудника этой организации\n- `role_above_ceiling` (400) — роль даёт права выше потолка организации\n- `unknown_model` (400) — такой модели нет — список в available_models\n- `price_required` (400) — админка, тариф целиком: у платного тарифа нужна цена (price)\n- `lago_rejected` (409) — админка, тариф целиком: Lago отказал по существу (4xx, текст Lago в message) — правила не изменены, повтор без правки не поможет\n- `price_mismatch` (400) — админка, тариф целиком: цена не сходится с правилами (место без per_seat, per_seat без цены места, цена у бесплатного)\n- `model_not_allowed` (403) — политика организации не разрешает эту модель, а подходящей разрешённой нет — админу дополнить список\n- `retention_too_short` (400) — срок хранения меньше наименьшего\n- `audit_export_range` (400) — неверный период выгрузки журнала: конец раньше начала или период слишком длинный\n- `compliance_disabled` (403) — адрес для проверок выключен — владелец включает его в настройке\n- `missing_credentials` (401) — нет ни cookie сессии, ни ключа API — войти или передать x-api-key\n- `link_revoked` (401) — вход в Tungo из 1С больше не действует (вышли, отключили на сайте, вошли в той же базе заново, компания или человек заблокированы) — 1С просит войти заново\n- `login_denied` (403) — вход из 1С отклонён на сайте Tungo — 1С показывает отказ\n- `code_expired` (410) — код входа из 1С устарел или уже использован — 1С просит новый код\n- `code_gone` (410) — код входа из 1С уже подтверждён, отклонён или устарел — на сайте подтверждать нечего\n- `invalid_api_key` (401) — ключ API неверен (опечатка или удалён)\n- `key_revoked` (401) — ключ API отозван (при правке ключа — 409 с тем же code: отозванный ключ не меняется)\n- `key_expired` (401) — срок ключа API истёк — сменить секрет (POST …/api-keys/{id}/roll: срок начнётся заново) или выпустить новый (при правке срока — 409 с тем же code: PATCH истёкший ключ не оживляет)\n- `key_disabled` (401) — ключ API выключен — включить может автор ключа или владелец организации (POST …/api-keys/{id}/enable)\n- `key_creator_lost_access` (401) — тот, кто выпустил ключ, больше не владелец/админ организации — ключ недействителен\n- `user_banned` (401) — вход в аккаунт закрыт администратором Tungo — только поддержка Tungo\n- `onboarding_unpaid` (402) — подключение компании к ИИ-бухгалтеру не оплачено (разовый платёж): владельцу/админу организации — «Оплатить» в настройках компании; остальным — сообщить им\n- `onboarding_pending` (402) — оплата подключения компании ещё проходит в банке — ИИ заработает после подтверждения; опрашивать состояние подключения\n- `no_active_plan` (402) — нет действующей подписки (не оформлена, закончилась, первая оплата не прошла или ждёт 3-D Secure). Владельцу/админу — кнопка в настройки оплаты; остальным — «обратитесь к владельцу организации». Что именно случилось — в message\n- `balance_exhausted` (402) — баланс доп. использования кончился. Владельцу/админу — «Пополнить баланс» или включить автопополнение; остальным — сообщить им\n- `workspace_cap_reached` (402) — достигнут месячный потолок доп. использования организации. resets_at — 1-е число следующего месяца, 00:00 по Алматы; раньше — если админ поднимет потолок\n- `report_busy` (429) — сейчас собирается много отчётов команды: повторить через время из Retry-After\n- `report_timeout` (503) — отчёт команды не успел собраться: сократить период или выбрать разбивку по месяцам\n- `company_cap_reached` (402) — достигнут месячный потолок доп. использования компании. Письмо владельцу и админам уже отправлено. resets_at — 1-е число; раньше — если админ поднимет потолок (PUT /v1/workspaces/{ws}/team/company-caps/{co})\n- `member_cap_reached` (402) — достигнут личный месячный потолок доп. использования сотрудника. resets_at — 1-е число; раньше — если админ поднимет его потолок\n- `key_cap_reached` (402) — достигнут месячный потолок расхода ключа API (или остаток меньше оценки одного вызова). resets_at — 1-е число\n- `platform_balance_exhausted` (402) — баланс платформы пуст: вызов по ключу или автоматизация не сделаны. Пополнить — POST /v1/workspaces/{ws}/platform/purchases или автопополнением\n- `platform_cap_reached` (402) — достигнут месячный потолок трат платформы. resets_at — 1-е число следующего месяца, 00:00 по Алматы; раньше — поднять потолок в PUT /v1/workspaces/{ws}/platform/account\n- `platform_disabled` (402) — платформа выключена в организации: вызовы по ключам и автоматизации остановлены. Включить — PUT /v1/workspaces/{ws}/platform/account\n- `free_plan_chat_only` (402) — бесплатный тариф: пачки из кабинета только на платных тарифах. Ключам API и автоматизациям тариф не нужен\n- `free_limit_unavailable` (402) — бесплатный лимит этой учётной записи не положен (проверка регистрации или решение администратора) — оформить тариф\n- `plan_company_limit` (402) — в организации уже столько компаний не в архиве, сколько разрешает тариф (max_companies в GET /v1/plans; limit и plan_code — в ответе): новую не завести и из архива не вернуть. Убрать лишнюю в архив или перейти на тариф больше\n- `effort_not_in_plan` (402) — поле effort в чате на тарифе без выбора усилия (max_effort тарифа null, например бесплатный): ход не начат. Прислать вопрос без effort или оформить платный тариф\n- `model_not_in_plan` (402) — модель сильнее потолка тарифа (plans.model_ceiling): вызов не сделан; более сильные модели — на платных тарифах\n- `missing_permission` (403) — не хватает права в компании (или у ключа API); какого — в поле permission\n- `login_method_not_allowed` (403) — организация пускает к своим данным только после входа другим способом; какими — в allowed_methods. Предложить выйти и войти так\n- `ip_not_allowed` (403) — ключ API не принимает запросы с этого адреса — поправить allowed_ips ключа (PATCH …/api-keys/{id}) или вызывать с разрешённого адреса\n- `key_write_limit` (403) — запись в 1С по ключу API — сверх его пределов (сумма на документ или в день, виды документов) или правило автоодобрения шире пределов ключа; в сообщении — что и на сколько\n- `human_only` (403) — это решение принимает только человек в кабинете Tungo, не ключ API: например, отклонить «не знаем, записан ли» на снимке базы без проверки 1С (confirm_unknown_write)\n- `autonomy_raise_requires_session` (403) — поднять уровень доверия ИИ или потолки компании можно только владельцу или админу организации из кабинета; ключом API — только понизить\n- `id_path_required` (400) — для автоодобрения по хуку задайте хуку id_path — путь к номеру операции в теле события: без него повтор доставки нельзя отличить от новой операции\n- `directbank_rule_exists` (400) — у компании уже есть сценарий с правилом для выписки DirectBank — правило выписки одно на компанию\n- `event_not_found` (404) — события нет в этой компании или оно удалено по сроку хранения — для пробного прогона выберите событие посвежее\n- `event_body_unavailable` (409) — тело события зашифровано, а ключ шифрования на сервере сменился — прогнать сценарий на нём нельзя\n- `scenario_steps_required` (409) — у сценария цепочка шагов, а в замене (PUT) нет ни steps, ни output: передайте steps явно, иначе замена молча убрала бы цепочку\n- `scenario_output_required` (409) — у сценария форма итога, а в замене (PUT) нет ни steps, ни output: передайте output явно (null — снять форму)\n- `automation_queue_full` (429) — у компании слишком много запусков в очереди: повторите позже (событие хука отправитель повторит сам)\n- `restarting` (503) — сервис перезапускается: новый ход не начат — повторите через Retry-After\n- `company_suspended` (403) — работа с компанией приостановлена (решение платформы или оплаты); карточка видна, работать, править и архивировать нельзя (архив — 409 с тем же code)\n- `company_archived` (403) — компания в архиве: карточка видна, работать с ней нельзя. Вернуть — POST /v1/companies/{company_id}/unarchive (владелец компании или владелец/админ организации)\n- `workspace_blocked` (403) — организация заблокирована администратором платформы — только поддержка Tungo\n- `untrusted_origin` (403) — запрос пришёл не со страницы Tungo (защита от подделки запросов) — открыть кабинет по обычному адресу; для /admin/* — только со страниц ADMIN_ORIGINS\n- `cors_not_supported` (403) — вызов API из чужого браузерного кода (CORS) не поддерживается: ключ API — секрет сервера\n- `api_keys_disabled_by_policy` (403) — политика организации запрещает ключи API\n- `owner_role_reserved` (403) — владельца компании назначает, меняет и снимает только владелец или админ организации\n- `role_above_yours` (403) — у выдаваемой (или снимаемой) роли есть права, которых нет у вас; роль — в поле role, лишние права — в permissions\n- `not_key_creator` (403) — менять компании, права, срок и секрет ключа, снимать и поднимать его пределы записи в 1С может только тот, кто его выпустил (ужесточить пределы может любой админ)\n- `transfer_wider_than_target` (403) — передать ключ нельзя: у нового владельца нет нужного права (или доступа) в одной из компаний ключа\n- `invalid_allowed_ips` (400) — в allowed_ips ключа — не IP-адрес и не подсеть CIDR; какая запись — в сообщении\n- `transfer_target_not_admin` (400) — передать ключ можно только владельцу или админу этой организации\n- `platform_model_not_allowed` (403) — модель сильнее потолка платформы (настройка platform.billing): вызов не сделан и ничего не списано\n- `managed_by_sso` (403) — удаление аккаунта: аккаунт ведёт организация (SSO или SCIM) — удаляет её администратор; организации — в workspaces\n- `fresh_session_required` (403) — удаление аккаунта без почты (Telegram): нужен свежий вход — выйти, войти снова и подтвердить\n- `api_key_not_allowed` (403) — действие только из кабинета (сессия), не по ключу API: удаление аккаунта\n- `not_own_key` (403) — по ключу API виден только расход самого этого ключа\n- `webhooks_not_in_plan` (403) — вебхуков нет в тарифе организации\n- `admin_2fa_required` (403) — админ-API: у администратора платформы нет второго фактора или эта сессия не подтверждена кодом приложения-аутентификатора (POST /v1/auth/two-factor/enable, затем verify-totp)\n- `two_factor_required` (403) — отключить второй фактор, показать его секрет или выпустить резервные коды — только после кода из приложения-аутентификатора в этой сессии\n- `webhooks_require_all_companies` (403) — вебхуки — только ключу на все компании организации (при выпуске ключа — 400 с тем же code)\n- `audit_requires_all_companies` (403) — журнал организации — только ключу на все компании организации\n- `policy_blocked` (403) — одобрение: организация не доверяет ИИ записывать такой документ этим способом (поле level — уровень доверия); одобрить по одному или поднять уровень\n- `onec_read_only` (403) — одобрение: у пользователя 1С из подключения нет права записи — дать права в 1С\n- `validation_failed` (400) — тело или параметры запроса не прошли проверку: что не так с каждым полем — в fields (путь, код, текст по-русски). Подсветить поля формы; общий message — над формой\n- `invalid_json` (400) — тело запроса — не JSON-объект\n- `personal_workspace` (400) — в личной организации нет сотрудников, приглашений и политик — нужна организация Team или Enterprise\n- `api_key_required` (400) — адрес только для запроса по ключу API\n- `email_code_unavailable` (400) — удаление аккаунта: у аккаунта нет почты для кода (вход через Telegram) — подтверждать свежим входом, без кода\n- `deletion_code_invalid` (400) — удаление аккаунта: неверный код из письма; сколько попыток осталось — attempts_left\n- `deletion_code_expired` (400) — удаление аккаунта: код истёк, попытки кончились или код не запрашивался — запросить новый (POST /v1/me/deletion/code)\n- `unsafe_url` (400) — адрес вебхука недопустим (внутренняя сеть, не HTTPS)\n- `idempotency_key_invalid` (400) — Idempotency-Key неверного вида\n- `payload_too_large` (413) — тело запроса (или события хука) больше допустимого; пределы — настройки платформы\n- `idempotency_key_reused` (422) — этот Idempotency-Key уже был у другого запроса — для нового действия нужен новый ключ\n- `has_blockers` (422) — одобрение: у предложения есть блокеры — сначала исправить их\n- `batch_too_large` (413) — одобрение пачкой: предложений больше предела (поля limit, requested) — разбить на части\n- `unknown_kind` (400) — настройки писем: такого вида уведомлений нет — взять список из GET /v1/me/notifications\n- `kind_locked` (400) — настройки писем: этот вид (безопасность и аккаунт) выключить нельзя — переключатель неактивен (locked)\n- `onec_rejected` (400) — одобрение: 1С отклонила документ (причина — в message): исправить в 1С или построить предложение заново\n- `proposal_not_found` (404) — предложения с таким id нет в компании\n- `export_link_expired` (404) — ссылка на архив выгрузки истекла или неверна — получить новую: GET /v1/me/export\n- `batch_not_found` (404) — одобрение пачкой: задания с таким batch_id нет (или в нём нет предложений)\n- `idempotency_in_progress` (409) — первый запрос с этим Idempotency-Key ещё выполняется — подождать и повторить, придёт тот же ответ\n- `idempotency_response_not_kept` (409) — запрос с этим Idempotency-Key уже выполнен, но копия ответа не хранится (в нём персональные данные): результат — по ссылке в ответе (dialog_url) или в списке; статус первого ответа — original_status\n- `idempotency_response_too_large` (409) — запрос с этим Idempotency-Key уже выполнен, но ответ слишком большой, чтобы повторить его целиком: результат — в списке; статус первого ответа — original_status\n- `sole_owner` (409) — удаление аккаунта: вы единственный владелец организации с другими участниками (workspaces) — передать владение (POST /v1/workspaces/{ws}/ownership) или удалить организацию\n- `account_deletion_in_progress` (409) — удаление аккаунта: фон уже стирает аккаунт — новый код и подтверждение не принимаются, отменить нельзя\n- `wrong_status` (409) — предложение уже не в том состоянии (поле status — нынешнее): обновить его\n- `wrong_state` (409) — запуск автоматизации уже не в том состоянии (поле state — нынешнее)\n- `dialog_closed` (409) — разговор закрыт (поле reason — почему): начать новый\n- `dialog_id_taken` (409) — разговор с таким dialog_id уже есть — для нового прислать другой id или не присылать его\n- `turn_in_progress` (409) — в разговоре уже идёт ход ИИ (поле turn — его номер): дождаться его конца или остановить\n- `turn_superseded` (409) — читаемый ход уже закончился и идёт следующий (поле turn) — читать его с начала\n- `dialog_changed` (409) — разговор только что изменился в другом окне или на другом сервере Tungo — открыть его заново (GET …/chat/{id}) и повторить\n- `already_answered` (409) — на этот вопрос ИИ уже ответили (поле turn — ход с ответом)\n- `question_stale` (409) — вопрос ИИ устарел (в разговоре уже другой вопрос или его нет) — обновить разговор\n- `dismissed` (409) — вопрос ИИ закрыт без ответа — написать обычное сообщение\n- `job_running` (409) — задание (пачка) ещё идёт — дождаться отчёта; поле batch_id\n- `payload_changed` (409) — одобрение: документ изменился после превью — построить предложение заново\n- `onec_conflict` (409) — одобрение: 1С отказала из-за конфликта (объект занят или изменён) — повторить позже\n- `onec_not_found` (409) — одобрение: в 1С нет объекта, на который ссылается документ — построить предложение заново\n- `plan_limit_reached` (429) — лимит окна тарифа исчерпан; resets_at и Retry-After — когда обновится. Показать время; если в message предложено доп. использование — дать кнопку включить\n- `rate_limited` (429) — слишком часто (по ключу API, уведомления ePay с одного адреса, попытки кода второго фактора) — подождать Retry-After секунд\n- `concurrent_turns_limit` (429) — по ключу API уже идёт предельное число ходов ИИ одновременно — дождаться окончания\n- `api_keys_limit` (429) — в организации предельное число действующих ключей API — отозвать ненужные\n- `webhook_endpoints_limit` (429) — предельное число адресов вебхуков — удалить ненужные\n- `export_too_soon` (429) — выгрузку данных можно запрашивать не чаще раза в сутки: next_request_at и Retry-After — когда можно снова\n- `hook_rate_limited` (429) — приём событий хука: больше automations.hook_events_per_minute в минуту — повторить через Retry-After секунд\n- `lago_unavailable` (503) — админка, тариф целиком: Lago не настроен или не ответил (сеть, 5xx) — правила не изменены, повторить позже\n- `model_price_missing` (503) — у модели ИИ не задана цена — сбой настройки платформы, ничего не списано; повторить позже\n- `data_export_disabled` (503) — выгрузка данных на сервере не настроена (поддержка Tungo)\n- `webhooks_disabled` (503) — вебхуки на сервере не настроены\n- `webhooks_unavailable` (503) — служба доставки вебхуков временно недоступна\n- `model_not_configured` (503) — сервис модели ИИ не настроен на сервере — повторить позже (Retry-After)\n- `write_unknown` (503) — одобрение: исход записи в 1С неизвестен (связь оборвалась) — проверить документ в 1С по метке (поле marker); повтор безопасен (retry_safe); слишком ранний повтор в 1С не пишет — подождать retry_after секунд (Retry-After)\n- `onec_unavailable` (503) — 1С сейчас не отвечает — повторить позже (Retry-After)\n- `onec_check_busy` (503) — проверка связи 1С: сервер сейчас проверяет слишком много подключений — повторить через Retry-After секунд\n- `onec_failed` (503) — записать документ в 1С не удалось по неизвестной причине — повторить позже\n- `journal_unavailable` (503) — журнал решений недоступен — пачка не одобрена, повторить позже\n- `hook_secret_unavailable` (503) — приём событий хука: секрет подписи сейчас не открыть — отправителю повторить доставку позже\n- `secret_box_missing` (503) — на сервере не задан ключ шифрования настроек — секрет подписи хука сохранить нельзя (поддержка Tungo)\n- `not_personal` (409) — перевод в команду: организация уже не личная — обновить экран\n- `subscription_blocks_conversion` (409) — перевод в команду: действует подписка для одного человека — сначала отменить её и дождаться конца периода\n- `subscription_kind_mismatch` (409) — админка: действующая подписка оформлена на другой вид организации — вид не меняется, пока она идёт\n- `enterprise_features_active` (409) — админка: у организации подключены SSO или SCIM — сначала отключить, потом снимать Enterprise\n- `too_many_members_for_personal` (409) — админка: в личной организации один человек — сначала убрать остальных участников\n- `open_debt` (409) — есть неоплаченный счёт — сначала оплатить; в плане удаления этот же код лежит в blockers\n- `active_work` (409) — в организации идут ходы ИИ или автоматизации — дождаться окончания и повторить; в плане удаления этот же код лежит в blockers\n- `deletion_already_scheduled` (409) — удаление организации уже запланировано — показать дату из плана\n- `deletion_purging` (409) — очистка организации уже идёт — отменить её нельзя\n- `workspace_deleting` (409) — админка: организация удаляется по просьбе владельца — блок удаления снимает только отмена удаления\n- `invitation_not_pending` (409) — приглашение принято, отозвано или истекло — письмо не отправить, пригласить заново\n- `last_owner` (409) — это последний владелец организации — сначала передать владение другому участнику\n- `seats_by_contract` (409) — места Enterprise — по договору, карта и докупка не работают: обратиться к менеджеру\n- `no_subscription` (409) — нет действующей подписки — сначала оформить тариф\n- `not_per_seat` (409) — этот тариф не считает оплату за место — докупка не нужна, предел мест показан в ответе GET …/seats\n- `subscription_ended` (409) — возобновление: период отменённой подписки уже закончился — ничего не списано, оформить тариф заново (повторный PUT — обычное оформление)\n- `subscription_busy` (409) — подписка уже меняется другим запросом (отмена или возобновление) — обновить экран через несколько секунд\n- `subscription_ending` (409) — подписка отменена и закончится в конце периода — места не докупаются и не сокращаются\n- `seats_unpaid_debt` (409) — подписка просрочена — сначала оплатить счёт; участники остаются, новых приглашать нельзя\n- `idempotency_conflict` (409) — докупка: этот ключ уже использован с другим числом мест — для новой покупки нужен новый ключ\n- `seat_quote_changed` (409) — докупка: сумма изменилась (другой день или новая цена), деньги не списаны — показать новую сумму из поля и спросить снова\n- `no_paid_seats` (409) — оплаченных мест ещё нет — сокращать нечего\n- `seats_below_occupied` (409) — занято больше мест, чем просите оставить — сначала убрать участников или отозвать приглашения\n- `not_enterprise` (409) — админка: места по договору есть только у Enterprise — сначала поставить вид\n- `per_seat_plan_change` (409) — смена тарифа с оплатой за место не делается сразу: Lago взял бы плату за места дважды. Отменить и оформить новый с конца периода\n- `confirm_name_mismatch` (400) — удаление организации: название введено неверно — ввести точно как в плане удаления\n- `below_min_seats` (400) — на этом тарифе мест меньше нельзя: минимум — min_seats тарифа\n- `seats_over_max` (400) — мест больше предела одной организации (team.limits.max_seats) — обратиться в поддержку\n- `seats_above_paid` (400) — PUT …/seats только сокращает; новые места — через POST …/seats с оплатой\n- `onec_check_running` (429) — проверка связи 1С уже идёт у этой компании, у вас (другая компания) или у двух других компаний организации — дождаться её итога и повторить (Retry-After)\n- `invitation_resend_too_soon` (429) — письмо с приглашением уже отправлено только что — подождать Retry-After секунд\n- `seats_exhausted` (429) — свободные места закончились: докупите места или освободите их, отозвав приглашение\n- `seat_price_unknown` (503) — цена места сейчас неизвестна (тариф не прочитан или настроен неверно), деньги не списаны — повторить позже\n- `otp_mail_failed` (503) — письмо с кодом входа не отправлено: попробуйте позже\n- `seat_period_unknown` (503) — не удалось сверить период подписки с биллингом: деньги не списаны, попробуйте позже\n\nНезнакомый code — вести себя по type.","example":"balance_exhausted","uniqueKey":"error.code","typeLabel":"string"},"permission":{"type":"string","description":"При code = missing_permission — какого права не хватает: права в компании (company.read, company.manage, company.members.manage, onec.connect, proposals.create, proposals.approve, chat.use, audit.read, automations.manage) или права только ключа API (automations.read, webhooks.manage). Показать «нужно право …» и предложить попросить админа (или выпустить ключ с этим правом).","example":"proposals.approve","uniqueKey":"error.permission","typeLabel":"string"},"resets_at":{"type":"string","format":"date-time","description":"Когда ограничение снимется само — ISO 8601, UTC. Есть у plan_limit_reached (конец окна тарифа) и у месячных потолков (workspace_cap_reached, company_cap_reached, member_cap_reached, key_cap_reached, platform_cap_reached — 1-е число, 00:00 по Алматы). Показать в местном времени: «Лимит обновится в 14:30». Нет поля — само не пройдёт.","example":"2026-11-01T19:00:00.000Z","uniqueKey":"error.resets_at","typeLabel":"string\u003cdate-time>"},"allowed_methods":{"type":"array","items":{"type":"string","enum":["email_otp","google","apple","telegram","sso"],"uniqueKey":"error.allowed_methods.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"При code = login_method_not_allowed — какими способами входа организация пускает к своим данным: email_otp — код из почты, google, apple, telegram, sso — SSO организации. Предложить выйти и войти одним из них.","uniqueKey":"error.allowed_methods","typeLabel":"enum\u003cstring>[]"},"role":{"type":"string","description":"При code = role_above_yours — ключ роли в компании, которую нельзя выдать или снять (например chief_accountant).","uniqueKey":"error.role","typeLabel":"string"},"permissions":{"type":"array","items":{"type":"string","uniqueKey":"error.permissions.items.[INDEX]","typeLabel":"string"},"description":"При code = role_above_yours — права этой роли, которых нет у того, кто выдаёт. Показать списком: «у роли есть права, которых нет у вас: …».","uniqueKey":"error.permissions","typeLabel":"string[]"},"fields":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"Путь к полю через точку, как в теле запроса или имени параметра: `name`, `lines.0.amount`. Пустая строка — всё тело (не объект, лишние поля).","example":"bin","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].path","typeLabel":"string"},"code":{"type":"string","enum":["invalid_type","too_small","too_big","invalid_format","invalid_value","not_multiple_of","unrecognized_keys","invalid_union","invalid_key","invalid_element","custom"],"description":"Что не так: invalid_type — не тот тип или поле не передано; too_small / too_big — короче/меньше или длиннее/больше допустимого; invalid_format — неверный вид (почта, дата, шаблон); invalid_value — значения нет среди допустимых; not_multiple_of — не кратно; unrecognized_keys — лишние поля; invalid_union — не подходит ни один вид; invalid_key / invalid_element — неверный ключ или элемент; custom — своё правило ручки","example":"invalid_format","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Текст для человека по-русски — показать под полем","example":"БИН/ИИН — 12 цифр","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].message","typeLabel":"string"}},"required":["path","code","message"],"description":"Ошибка одного поля запроса","uniqueKey":"error.fields.items.[INDEX]","typeLabel":"object"},"description":"При code = validation_failed — ошибки по полям, в порядке проверки; у одного поля может быть несколько.","uniqueKey":"error.fields","typeLabel":"object[]"}},"required":["type","message"],"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.additionalProperties","typeLabel":"any"},"description":"Что пошло не так. Все 503 — с заголовком Retry-After (через сколько секунд повторить). Кроме описанных, у отдельных ручек бывают свои поля рядом с code (например status у wrong_status, state у wrong_state, reason у dialog_closed) — они описаны у этих ручек.","isRequired":true,"uniqueKey":"error","typeLabel":"object"},"request_id":{"oneOf":[{"type":"string","description":"Номер запроса (тот же, что в заголовке x-request-id). Показывать мелко рядом с ошибкой с кнопкой «скопировать»: по нему поддержка находит запрос в журнале. null — номер не успел появиться (очень ранний отказ).","example":"req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f","isRequired":true,"uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Номер запроса (тот же, что в заголовке x-request-id). Показывать мелко рядом с ошибкой с кнопкой «скопировать»: по нему поддержка находит запрос в журнале. null — номер не успел появиться (очень ранний отказ).","example":"req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f","isRequired":true,"uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"request_id","typeLabel":"string | null"}},"required":["type","error","request_id"],"description":"Тело любой ошибки API (статусы 4xx и 5xx): `{\"type\":\"error\",\"error\":{\"type\":\"…\",\"code\":\"…\",\"message\":\"…\"},\"request_id\":\"…\"}`. Интерфейс ветвится по error.type и error.code, человеку показывает error.message и request_id.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"error","error":{"type":"payment_required_error","message":"Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.","code":"balance_exhausted","permission":"proposals.approve","resets_at":"2026-11-01T19:00:00.000Z","allowed_methods":["email_otp"],"role":"\u003cstring>","permissions":["\u003cstring>"],"fields":[{"path":"bin","code":"invalid_format","message":"БИН/ИИН — 12 цифр"}]},"request_id":"req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f"}}},"exampleType":"generated"}},"headers":{"x-request-id":{"description":"Номер запроса (тот же, что request_id в теле ошибки) — назвать в обращении в поддержку. Его всегда создаёт сервер: присланный клиентом x-request-id номером не становится","schema":{"type":"string","example":"req_3f2a9c0d1e4b4c5d8e7f6a5b4c3d2e1f"}},"x-ratelimit-limit":{"description":"Только при входе по ключу API: сколько запросов можно в текущем окне — самый тесный предел из ключа и организации","schema":{"type":"integer"}},"x-ratelimit-remaining":{"description":"Только при входе по ключу API: сколько запросов осталось по этому пределу в текущем окне","schema":{"type":"integer"}},"x-ratelimit-reset":{"description":"Только при входе по ключу API: секунд до нового окна этого предела","schema":{"type":"integer"}}},"exampleType":"generated"},"1d5afabe-9ecb-4a2b-90c6-11d3f1562193":{"description":"Нельзя: нет права или роли, организация заблокирована, вход не тем способом — показать error.message (error.type: permission_error)","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["error"],"description":"Всегда «error»: так тело ошибки отличается от обычного ответа.","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request_error","authentication_error","payment_required_error","permission_error","not_found_error","conflict_error","gone_error","limit_error","api_error","unavailable_error"],"description":"Вид ошибки — по нему ветвится клиент (не по тексту message). Статус HTTP у вида один, кроме invalid_request_error:\n- `invalid_request_error` (400) — запрос неверен: поле не прошло проверку, неверный формат, действие сейчас недопустимо. Показать message рядом с формой; повтор без исправления не поможет. Обычно 400; 413 и 422 — у кодов, где это сказано в списке code.\n- `authentication_error` (401) — нет входа: сессия закончилась, cookie нет, ключ API неверен, отозван или истёк. Кабинет — отправить на страницу входа; по ключу — проверить ключ (см. code).\n- `payment_required_error` (402) — нужны деньги или решение владельца/админа организации: ждать бесполезно. Показать message и кнопку действия по code (оформить тариф, пополнить баланс, поднять потолок); без code — не оплачено подключение компании.\n- `permission_error` (403) — нельзя: не хватает права или роли, организация заблокирована, вход не тем способом. Показать message (в нём сказано, к кому обратиться); детали — в code и полях рядом.\n- `not_found_error` (404) — нет такого объекта — или он чужой: чужие организации, компании и записи тоже отвечают 404, чтобы не раскрывать, что они есть. Показать «не найдено» и вернуть к списку.\n- `conflict_error` (409) — состояние не позволяет: уже сделано, уже идёт другое действие, версия устарела. Перечитать объект, обновить экран и показать message.\n- `gone_error` (410) — объекта больше нет: разговор не найден или истёк (вопрос в чате, ответ на вопрос ИИ, подсчёт токенов — начать новый разговор), ход потерян при перезапуске сервера, ссылка привязки программы устарела или уже использована (code connector_link_gone). Повторять незачем.\n- `limit_error` (429) — предел: частота запросов, окно тарифа, число объектов или мест. Если есть заголовок Retry-After или resets_at — пройдёт само, показать, когда; иначе нужно освободить место (удалить лишнее) или сменить тариф.\n- `api_error` (500) — сбой на нашей стороне. Показать message и request_id (для поддержки); повторить позже.\n- `unavailable_error` (503) — временно недоступно (внешний сервис, ИИ, настройка сервера). Повторить позже; если повторяется — сообщить request_id в поддержку.","example":"payment_required_error","isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Готовый текст для человека по-русски: что случилось, что делать и к кому обратиться. Показывать как есть; не разбирать — формулировки меняются.","example":"Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"type":"string","description":"Уточнение вида: по нему выбирается действие интерфейса (кнопка «Пополнить», «Войти иначе»…). Нет поля — хватает type и message. Известные коды:\n- `sso_domain_taken` (409) — домен SSO уже подтверждён другой организацией\n- `sso_last_verified_domain` (409) — включён обязательный вход, а это последний подтверждённый домен — сначала выключить обязательный вход\n- `sso_login_required` (400) — включить обязательный вход можно только из сессии, открытой через SSO этой организации\n- `domain_verification_failed` (400) — запись DNS для домена не найдена или не совпала — проверить и повторить\n- `oidc_openid_scope_required` (400) — в scopes сервера входа OIDC нет openid — добавить её: без неё вход через SSO не пройдёт\n- `enterprise_only` (403) — возможность есть только на тарифе Enterprise\n- `groups_limit` (429) — достигнут предел групп в организации\n- `custom_roles_limit` (429) — достигнут предел своих ролей в организации\n- `group_managed_by_directory` (409) — группа из каталога: название и состав меняются только там\n- `group_member_not_in_workspace` (400) — в группу можно добавить только сотрудника этой организации\n- `role_above_ceiling` (400) — роль даёт права выше потолка организации\n- `unknown_model` (400) — такой модели нет — список в available_models\n- `price_required` (400) — админка, тариф целиком: у платного тарифа нужна цена (price)\n- `lago_rejected` (409) — админка, тариф целиком: Lago отказал по существу (4xx, текст Lago в message) — правила не изменены, повтор без правки не поможет\n- `price_mismatch` (400) — админка, тариф целиком: цена не сходится с правилами (место без per_seat, per_seat без цены места, цена у бесплатного)\n- `model_not_allowed` (403) — политика организации не разрешает эту модель, а подходящей разрешённой нет — админу дополнить список\n- `retention_too_short` (400) — срок хранения меньше наименьшего\n- `audit_export_range` (400) — неверный период выгрузки журнала: конец раньше начала или период слишком длинный\n- `compliance_disabled` (403) — адрес для проверок выключен — владелец включает его в настройке\n- `missing_credentials` (401) — нет ни cookie сессии, ни ключа API — войти или передать x-api-key\n- `link_revoked` (401) — вход в Tungo из 1С больше не действует (вышли, отключили на сайте, вошли в той же базе заново, компания или человек заблокированы) — 1С просит войти заново\n- `login_denied` (403) — вход из 1С отклонён на сайте Tungo — 1С показывает отказ\n- `code_expired` (410) — код входа из 1С устарел или уже использован — 1С просит новый код\n- `code_gone` (410) — код входа из 1С уже подтверждён, отклонён или устарел — на сайте подтверждать нечего\n- `invalid_api_key` (401) — ключ API неверен (опечатка или удалён)\n- `key_revoked` (401) — ключ API отозван (при правке ключа — 409 с тем же code: отозванный ключ не меняется)\n- `key_expired` (401) — срок ключа API истёк — сменить секрет (POST …/api-keys/{id}/roll: срок начнётся заново) или выпустить новый (при правке срока — 409 с тем же code: PATCH истёкший ключ не оживляет)\n- `key_disabled` (401) — ключ API выключен — включить может автор ключа или владелец организации (POST …/api-keys/{id}/enable)\n- `key_creator_lost_access` (401) — тот, кто выпустил ключ, больше не владелец/админ организации — ключ недействителен\n- `user_banned` (401) — вход в аккаунт закрыт администратором Tungo — только поддержка Tungo\n- `onboarding_unpaid` (402) — подключение компании к ИИ-бухгалтеру не оплачено (разовый платёж): владельцу/админу организации — «Оплатить» в настройках компании; остальным — сообщить им\n- `onboarding_pending` (402) — оплата подключения компании ещё проходит в банке — ИИ заработает после подтверждения; опрашивать состояние подключения\n- `no_active_plan` (402) — нет действующей подписки (не оформлена, закончилась, первая оплата не прошла или ждёт 3-D Secure). Владельцу/админу — кнопка в настройки оплаты; остальным — «обратитесь к владельцу организации». Что именно случилось — в message\n- `balance_exhausted` (402) — баланс доп. использования кончился. Владельцу/админу — «Пополнить баланс» или включить автопополнение; остальным — сообщить им\n- `workspace_cap_reached` (402) — достигнут месячный потолок доп. использования организации. resets_at — 1-е число следующего месяца, 00:00 по Алматы; раньше — если админ поднимет потолок\n- `report_busy` (429) — сейчас собирается много отчётов команды: повторить через время из Retry-After\n- `report_timeout` (503) — отчёт команды не успел собраться: сократить период или выбрать разбивку по месяцам\n- `company_cap_reached` (402) — достигнут месячный потолок доп. использования компании. Письмо владельцу и админам уже отправлено. resets_at — 1-е число; раньше — если админ поднимет потолок (PUT /v1/workspaces/{ws}/team/company-caps/{co})\n- `member_cap_reached` (402) — достигнут личный месячный потолок доп. использования сотрудника. resets_at — 1-е число; раньше — если админ поднимет его потолок\n- `key_cap_reached` (402) — достигнут месячный потолок расхода ключа API (или остаток меньше оценки одного вызова). resets_at — 1-е число\n- `platform_balance_exhausted` (402) — баланс платформы пуст: вызов по ключу или автоматизация не сделаны. Пополнить — POST /v1/workspaces/{ws}/platform/purchases или автопополнением\n- `platform_cap_reached` (402) — достигнут месячный потолок трат платформы. resets_at — 1-е число следующего месяца, 00:00 по Алматы; раньше — поднять потолок в PUT /v1/workspaces/{ws}/platform/account\n- `platform_disabled` (402) — платформа выключена в организации: вызовы по ключам и автоматизации остановлены. Включить — PUT /v1/workspaces/{ws}/platform/account\n- `free_plan_chat_only` (402) — бесплатный тариф: пачки из кабинета только на платных тарифах. Ключам API и автоматизациям тариф не нужен\n- `free_limit_unavailable` (402) — бесплатный лимит этой учётной записи не положен (проверка регистрации или решение администратора) — оформить тариф\n- `plan_company_limit` (402) — в организации уже столько компаний не в архиве, сколько разрешает тариф (max_companies в GET /v1/plans; limit и plan_code — в ответе): новую не завести и из архива не вернуть. Убрать лишнюю в архив или перейти на тариф больше\n- `effort_not_in_plan` (402) — поле effort в чате на тарифе без выбора усилия (max_effort тарифа null, например бесплатный): ход не начат. Прислать вопрос без effort или оформить платный тариф\n- `model_not_in_plan` (402) — модель сильнее потолка тарифа (plans.model_ceiling): вызов не сделан; более сильные модели — на платных тарифах\n- `missing_permission` (403) — не хватает права в компании (или у ключа API); какого — в поле permission\n- `login_method_not_allowed` (403) — организация пускает к своим данным только после входа другим способом; какими — в allowed_methods. Предложить выйти и войти так\n- `ip_not_allowed` (403) — ключ API не принимает запросы с этого адреса — поправить allowed_ips ключа (PATCH …/api-keys/{id}) или вызывать с разрешённого адреса\n- `key_write_limit` (403) — запись в 1С по ключу API — сверх его пределов (сумма на документ или в день, виды документов) или правило автоодобрения шире пределов ключа; в сообщении — что и на сколько\n- `human_only` (403) — это решение принимает только человек в кабинете Tungo, не ключ API: например, отклонить «не знаем, записан ли» на снимке базы без проверки 1С (confirm_unknown_write)\n- `autonomy_raise_requires_session` (403) — поднять уровень доверия ИИ или потолки компании можно только владельцу или админу организации из кабинета; ключом API — только понизить\n- `id_path_required` (400) — для автоодобрения по хуку задайте хуку id_path — путь к номеру операции в теле события: без него повтор доставки нельзя отличить от новой операции\n- `directbank_rule_exists` (400) — у компании уже есть сценарий с правилом для выписки DirectBank — правило выписки одно на компанию\n- `event_not_found` (404) — события нет в этой компании или оно удалено по сроку хранения — для пробного прогона выберите событие посвежее\n- `event_body_unavailable` (409) — тело события зашифровано, а ключ шифрования на сервере сменился — прогнать сценарий на нём нельзя\n- `scenario_steps_required` (409) — у сценария цепочка шагов, а в замене (PUT) нет ни steps, ни output: передайте steps явно, иначе замена молча убрала бы цепочку\n- `scenario_output_required` (409) — у сценария форма итога, а в замене (PUT) нет ни steps, ни output: передайте output явно (null — снять форму)\n- `automation_queue_full` (429) — у компании слишком много запусков в очереди: повторите позже (событие хука отправитель повторит сам)\n- `restarting` (503) — сервис перезапускается: новый ход не начат — повторите через Retry-After\n- `company_suspended` (403) — работа с компанией приостановлена (решение платформы или оплаты); карточка видна, работать, править и архивировать нельзя (архив — 409 с тем же code)\n- `company_archived` (403) — компания в архиве: карточка видна, работать с ней нельзя. Вернуть — POST /v1/companies/{company_id}/unarchive (владелец компании или владелец/админ организации)\n- `workspace_blocked` (403) — организация заблокирована администратором платформы — только поддержка Tungo\n- `untrusted_origin` (403) — запрос пришёл не со страницы Tungo (защита от подделки запросов) — открыть кабинет по обычному адресу; для /admin/* — только со страниц ADMIN_ORIGINS\n- `cors_not_supported` (403) — вызов API из чужого браузерного кода (CORS) не поддерживается: ключ API — секрет сервера\n- `api_keys_disabled_by_policy` (403) — политика организации запрещает ключи API\n- `owner_role_reserved` (403) — владельца компании назначает, меняет и снимает только владелец или админ организации\n- `role_above_yours` (403) — у выдаваемой (или снимаемой) роли есть права, которых нет у вас; роль — в поле role, лишние права — в permissions\n- `not_key_creator` (403) — менять компании, права, срок и секрет ключа, снимать и поднимать его пределы записи в 1С может только тот, кто его выпустил (ужесточить пределы может любой админ)\n- `transfer_wider_than_target` (403) — передать ключ нельзя: у нового владельца нет нужного права (или доступа) в одной из компаний ключа\n- `invalid_allowed_ips` (400) — в allowed_ips ключа — не IP-адрес и не подсеть CIDR; какая запись — в сообщении\n- `transfer_target_not_admin` (400) — передать ключ можно только владельцу или админу этой организации\n- `platform_model_not_allowed` (403) — модель сильнее потолка платформы (настройка platform.billing): вызов не сделан и ничего не списано\n- `managed_by_sso` (403) — удаление аккаунта: аккаунт ведёт организация (SSO или SCIM) — удаляет её администратор; организации — в workspaces\n- `fresh_session_required` (403) — удаление аккаунта без почты (Telegram): нужен свежий вход — выйти, войти снова и подтвердить\n- `api_key_not_allowed` (403) — действие только из кабинета (сессия), не по ключу API: удаление аккаунта\n- `not_own_key` (403) — по ключу API виден только расход самого этого ключа\n- `webhooks_not_in_plan` (403) — вебхуков нет в тарифе организации\n- `admin_2fa_required` (403) — админ-API: у администратора платформы нет второго фактора или эта сессия не подтверждена кодом приложения-аутентификатора (POST /v1/auth/two-factor/enable, затем verify-totp)\n- `two_factor_required` (403) — отключить второй фактор, показать его секрет или выпустить резервные коды — только после кода из приложения-аутентификатора в этой сессии\n- `webhooks_require_all_companies` (403) — вебхуки — только ключу на все компании организации (при выпуске ключа — 400 с тем же code)\n- `audit_requires_all_companies` (403) — журнал организации — только ключу на все компании организации\n- `policy_blocked` (403) — одобрение: организация не доверяет ИИ записывать такой документ этим способом (поле level — уровень доверия); одобрить по одному или поднять уровень\n- `onec_read_only` (403) — одобрение: у пользователя 1С из подключения нет права записи — дать права в 1С\n- `validation_failed` (400) — тело или параметры запроса не прошли проверку: что не так с каждым полем — в fields (путь, код, текст по-русски). Подсветить поля формы; общий message — над формой\n- `invalid_json` (400) — тело запроса — не JSON-объект\n- `personal_workspace` (400) — в личной организации нет сотрудников, приглашений и политик — нужна организация Team или Enterprise\n- `api_key_required` (400) — адрес только для запроса по ключу API\n- `email_code_unavailable` (400) — удаление аккаунта: у аккаунта нет почты для кода (вход через Telegram) — подтверждать свежим входом, без кода\n- `deletion_code_invalid` (400) — удаление аккаунта: неверный код из письма; сколько попыток осталось — attempts_left\n- `deletion_code_expired` (400) — удаление аккаунта: код истёк, попытки кончились или код не запрашивался — запросить новый (POST /v1/me/deletion/code)\n- `unsafe_url` (400) — адрес вебхука недопустим (внутренняя сеть, не HTTPS)\n- `idempotency_key_invalid` (400) — Idempotency-Key неверного вида\n- `payload_too_large` (413) — тело запроса (или события хука) больше допустимого; пределы — настройки платформы\n- `idempotency_key_reused` (422) — этот Idempotency-Key уже был у другого запроса — для нового действия нужен новый ключ\n- `has_blockers` (422) — одобрение: у предложения есть блокеры — сначала исправить их\n- `batch_too_large` (413) — одобрение пачкой: предложений больше предела (поля limit, requested) — разбить на части\n- `unknown_kind` (400) — настройки писем: такого вида уведомлений нет — взять список из GET /v1/me/notifications\n- `kind_locked` (400) — настройки писем: этот вид (безопасность и аккаунт) выключить нельзя — переключатель неактивен (locked)\n- `onec_rejected` (400) — одобрение: 1С отклонила документ (причина — в message): исправить в 1С или построить предложение заново\n- `proposal_not_found` (404) — предложения с таким id нет в компании\n- `export_link_expired` (404) — ссылка на архив выгрузки истекла или неверна — получить новую: GET /v1/me/export\n- `batch_not_found` (404) — одобрение пачкой: задания с таким batch_id нет (или в нём нет предложений)\n- `idempotency_in_progress` (409) — первый запрос с этим Idempotency-Key ещё выполняется — подождать и повторить, придёт тот же ответ\n- `idempotency_response_not_kept` (409) — запрос с этим Idempotency-Key уже выполнен, но копия ответа не хранится (в нём персональные данные): результат — по ссылке в ответе (dialog_url) или в списке; статус первого ответа — original_status\n- `idempotency_response_too_large` (409) — запрос с этим Idempotency-Key уже выполнен, но ответ слишком большой, чтобы повторить его целиком: результат — в списке; статус первого ответа — original_status\n- `sole_owner` (409) — удаление аккаунта: вы единственный владелец организации с другими участниками (workspaces) — передать владение (POST /v1/workspaces/{ws}/ownership) или удалить организацию\n- `account_deletion_in_progress` (409) — удаление аккаунта: фон уже стирает аккаунт — новый код и подтверждение не принимаются, отменить нельзя\n- `wrong_status` (409) — предложение уже не в том состоянии (поле status — нынешнее): обновить его\n- `wrong_state` (409) — запуск автоматизации уже не в том состоянии (поле state — нынешнее)\n- `dialog_closed` (409) — разговор закрыт (поле reason — почему): начать новый\n- `dialog_id_taken` (409) — разговор с таким dialog_id уже есть — для нового прислать другой id или не присылать его\n- `turn_in_progress` (409) — в разговоре уже идёт ход ИИ (поле turn — его номер): дождаться его конца или остановить\n- `turn_superseded` (409) — читаемый ход уже закончился и идёт следующий (поле turn) — читать его с начала\n- `dialog_changed` (409) — разговор только что изменился в другом окне или на другом сервере Tungo — открыть его заново (GET …/chat/{id}) и повторить\n- `already_answered` (409) — на этот вопрос ИИ уже ответили (поле turn — ход с ответом)\n- `question_stale` (409) — вопрос ИИ устарел (в разговоре уже другой вопрос или его нет) — обновить разговор\n- `dismissed` (409) — вопрос ИИ закрыт без ответа — написать обычное сообщение\n- `job_running` (409) — задание (пачка) ещё идёт — дождаться отчёта; поле batch_id\n- `payload_changed` (409) — одобрение: документ изменился после превью — построить предложение заново\n- `onec_conflict` (409) — одобрение: 1С отказала из-за конфликта (объект занят или изменён) — повторить позже\n- `onec_not_found` (409) — одобрение: в 1С нет объекта, на который ссылается документ — построить предложение заново\n- `plan_limit_reached` (429) — лимит окна тарифа исчерпан; resets_at и Retry-After — когда обновится. Показать время; если в message предложено доп. использование — дать кнопку включить\n- `rate_limited` (429) — слишком часто (по ключу API, уведомления ePay с одного адреса, попытки кода второго фактора) — подождать Retry-After секунд\n- `concurrent_turns_limit` (429) — по ключу API уже идёт предельное число ходов ИИ одновременно — дождаться окончания\n- `api_keys_limit` (429) — в организации предельное число действующих ключей API — отозвать ненужные\n- `webhook_endpoints_limit` (429) — предельное число адресов вебхуков — удалить ненужные\n- `export_too_soon` (429) — выгрузку данных можно запрашивать не чаще раза в сутки: next_request_at и Retry-After — когда можно снова\n- `hook_rate_limited` (429) — приём событий хука: больше automations.hook_events_per_minute в минуту — повторить через Retry-After секунд\n- `lago_unavailable` (503) — админка, тариф целиком: Lago не настроен или не ответил (сеть, 5xx) — правила не изменены, повторить позже\n- `model_price_missing` (503) — у модели ИИ не задана цена — сбой настройки платформы, ничего не списано; повторить позже\n- `data_export_disabled` (503) — выгрузка данных на сервере не настроена (поддержка Tungo)\n- `webhooks_disabled` (503) — вебхуки на сервере не настроены\n- `webhooks_unavailable` (503) — служба доставки вебхуков временно недоступна\n- `model_not_configured` (503) — сервис модели ИИ не настроен на сервере — повторить позже (Retry-After)\n- `write_unknown` (503) — одобрение: исход записи в 1С неизвестен (связь оборвалась) — проверить документ в 1С по метке (поле marker); повтор безопасен (retry_safe); слишком ранний повтор в 1С не пишет — подождать retry_after секунд (Retry-After)\n- `onec_unavailable` (503) — 1С сейчас не отвечает — повторить позже (Retry-After)\n- `onec_check_busy` (503) — проверка связи 1С: сервер сейчас проверяет слишком много подключений — повторить через Retry-After секунд\n- `onec_failed` (503) — записать документ в 1С не удалось по неизвестной причине — повторить позже\n- `journal_unavailable` (503) — журнал решений недоступен — пачка не одобрена, повторить позже\n- `hook_secret_unavailable` (503) — приём событий хука: секрет подписи сейчас не открыть — отправителю повторить доставку позже\n- `secret_box_missing` (503) — на сервере не задан ключ шифрования настроек — секрет подписи хука сохранить нельзя (поддержка Tungo)\n- `not_personal` (409) — перевод в команду: организация уже не личная — обновить экран\n- `subscription_blocks_conversion` (409) — перевод в команду: действует подписка для одного человека — сначала отменить её и дождаться конца периода\n- `subscription_kind_mismatch` (409) — админка: действующая подписка оформлена на другой вид организации — вид не меняется, пока она идёт\n- `enterprise_features_active` (409) — админка: у организации подключены SSO или SCIM — сначала отключить, потом снимать Enterprise\n- `too_many_members_for_personal` (409) — админка: в личной организации один человек — сначала убрать остальных участников\n- `open_debt` (409) — есть неоплаченный счёт — сначала оплатить; в плане удаления этот же код лежит в blockers\n- `active_work` (409) — в организации идут ходы ИИ или автоматизации — дождаться окончания и повторить; в плане удаления этот же код лежит в blockers\n- `deletion_already_scheduled` (409) — удаление организации уже запланировано — показать дату из плана\n- `deletion_purging` (409) — очистка организации уже идёт — отменить её нельзя\n- `workspace_deleting` (409) — админка: организация удаляется по просьбе владельца — блок удаления снимает только отмена удаления\n- `invitation_not_pending` (409) — приглашение принято, отозвано или истекло — письмо не отправить, пригласить заново\n- `last_owner` (409) — это последний владелец организации — сначала передать владение другому участнику\n- `seats_by_contract` (409) — места Enterprise — по договору, карта и докупка не работают: обратиться к менеджеру\n- `no_subscription` (409) — нет действующей подписки — сначала оформить тариф\n- `not_per_seat` (409) — этот тариф не считает оплату за место — докупка не нужна, предел мест показан в ответе GET …/seats\n- `subscription_ended` (409) — возобновление: период отменённой подписки уже закончился — ничего не списано, оформить тариф заново (повторный PUT — обычное оформление)\n- `subscription_busy` (409) — подписка уже меняется другим запросом (отмена или возобновление) — обновить экран через несколько секунд\n- `subscription_ending` (409) — подписка отменена и закончится в конце периода — места не докупаются и не сокращаются\n- `seats_unpaid_debt` (409) — подписка просрочена — сначала оплатить счёт; участники остаются, новых приглашать нельзя\n- `idempotency_conflict` (409) — докупка: этот ключ уже использован с другим числом мест — для новой покупки нужен новый ключ\n- `seat_quote_changed` (409) — докупка: сумма изменилась (другой день или новая цена), деньги не списаны — показать новую сумму из поля и спросить снова\n- `no_paid_seats` (409) — оплаченных мест ещё нет — сокращать нечего\n- `seats_below_occupied` (409) — занято больше мест, чем просите оставить — сначала убрать участников или отозвать приглашения\n- `not_enterprise` (409) — админка: места по договору есть только у Enterprise — сначала поставить вид\n- `per_seat_plan_change` (409) — смена тарифа с оплатой за место не делается сразу: Lago взял бы плату за места дважды. Отменить и оформить новый с конца периода\n- `confirm_name_mismatch` (400) — удаление организации: название введено неверно — ввести точно как в плане удаления\n- `below_min_seats` (400) — на этом тарифе мест меньше нельзя: минимум — min_seats тарифа\n- `seats_over_max` (400) — мест больше предела одной организации (team.limits.max_seats) — обратиться в поддержку\n- `seats_above_paid` (400) — PUT …/seats только сокращает; новые места — через POST …/seats с оплатой\n- `onec_check_running` (429) — проверка связи 1С уже идёт у этой компании, у вас (другая компания) или у двух других компаний организации — дождаться её итога и повторить (Retry-After)\n- `invitation_resend_too_soon` (429) — письмо с приглашением уже отправлено только что — подождать Retry-After секунд\n- `seats_exhausted` (429) — свободные места закончились: докупите места или освободите их, отозвав приглашение\n- `seat_price_unknown` (503) — цена места сейчас неизвестна (тариф не прочитан или настроен неверно), деньги не списаны — повторить позже\n- `otp_mail_failed` (503) — письмо с кодом входа не отправлено: попробуйте позже\n- `seat_period_unknown` (503) — не удалось сверить период подписки с биллингом: деньги не списаны, попробуйте позже\n\nНезнакомый code — вести себя по type.","example":"balance_exhausted","uniqueKey":"error.code","typeLabel":"string"},"permission":{"type":"string","description":"При code = missing_permission — какого права не хватает: права в компании (company.read, company.manage, company.members.manage, onec.connect, proposals.create, proposals.approve, chat.use, audit.read, automations.manage) или права только ключа API (automations.read, webhooks.manage). Показать «нужно право …» и предложить попросить админа (или выпустить ключ с этим правом).","example":"proposals.approve","uniqueKey":"error.permission","typeLabel":"string"},"resets_at":{"type":"string","format":"date-time","description":"Когда ограничение снимется само — ISO 8601, UTC. Есть у plan_limit_reached (конец окна тарифа) и у месячных потолков (workspace_cap_reached, company_cap_reached, member_cap_reached, key_cap_reached, platform_cap_reached — 1-е число, 00:00 по Алматы). Показать в местном времени: «Лимит обновится в 14:30». Нет поля — само не пройдёт.","example":"2026-11-01T19:00:00.000Z","uniqueKey":"error.resets_at","typeLabel":"string\u003cdate-time>"},"allowed_methods":{"type":"array","items":{"type":"string","enum":["email_otp","google","apple","telegram","sso"],"uniqueKey":"error.allowed_methods.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"При code = login_method_not_allowed — какими способами входа организация пускает к своим данным: email_otp — код из почты, google, apple, telegram, sso — SSO организации. Предложить выйти и войти одним из них.","uniqueKey":"error.allowed_methods","typeLabel":"enum\u003cstring>[]"},"role":{"type":"string","description":"При code = role_above_yours — ключ роли в компании, которую нельзя выдать или снять (например chief_accountant).","uniqueKey":"error.role","typeLabel":"string"},"permissions":{"type":"array","items":{"type":"string","uniqueKey":"error.permissions.items.[INDEX]","typeLabel":"string"},"description":"При code = role_above_yours — права этой роли, которых нет у того, кто выдаёт. Показать списком: «у роли есть права, которых нет у вас: …».","uniqueKey":"error.permissions","typeLabel":"string[]"},"fields":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"Путь к полю через точку, как в теле запроса или имени параметра: `name`, `lines.0.amount`. Пустая строка — всё тело (не объект, лишние поля).","example":"bin","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].path","typeLabel":"string"},"code":{"type":"string","enum":["invalid_type","too_small","too_big","invalid_format","invalid_value","not_multiple_of","unrecognized_keys","invalid_union","invalid_key","invalid_element","custom"],"description":"Что не так: invalid_type — не тот тип или поле не передано; too_small / too_big — короче/меньше или длиннее/больше допустимого; invalid_format — неверный вид (почта, дата, шаблон); invalid_value — значения нет среди допустимых; not_multiple_of — не кратно; unrecognized_keys — лишние поля; invalid_union — не подходит ни один вид; invalid_key / invalid_element — неверный ключ или элемент; custom — своё правило ручки","example":"invalid_format","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Текст для человека по-русски — показать под полем","example":"БИН/ИИН — 12 цифр","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].message","typeLabel":"string"}},"required":["path","code","message"],"description":"Ошибка одного поля запроса","uniqueKey":"error.fields.items.[INDEX]","typeLabel":"object"},"description":"При code = validation_failed — ошибки по полям, в порядке проверки; у одного поля может быть несколько.","uniqueKey":"error.fields","typeLabel":"object[]"}},"required":["type","message"],"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.additionalProperties","typeLabel":"any"},"description":"Что пошло не так. Все 503 — с заголовком Retry-After (через сколько секунд повторить). Кроме описанных, у отдельных ручек бывают свои поля рядом с code (например status у wrong_status, state у wrong_state, reason у dialog_closed) — они описаны у этих ручек.","isRequired":true,"uniqueKey":"error","typeLabel":"object"},"request_id":{"oneOf":[{"type":"string","description":"Номер запроса (тот же, что в заголовке x-request-id). Показывать мелко рядом с ошибкой с кнопкой «скопировать»: по нему поддержка находит запрос в журнале. null — номер не успел появиться (очень ранний отказ).","example":"req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f","isRequired":true,"uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Номер запроса (тот же, что в заголовке x-request-id). Показывать мелко рядом с ошибкой с кнопкой «скопировать»: по нему поддержка находит запрос в журнале. null — номер не успел появиться (очень ранний отказ).","example":"req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f","isRequired":true,"uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"request_id","typeLabel":"string | null"}},"required":["type","error","request_id"],"description":"Тело любой ошибки API (статусы 4xx и 5xx): `{\"type\":\"error\",\"error\":{\"type\":\"…\",\"code\":\"…\",\"message\":\"…\"},\"request_id\":\"…\"}`. Интерфейс ветвится по error.type и error.code, человеку показывает error.message и request_id.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"error","error":{"type":"payment_required_error","message":"Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.","code":"balance_exhausted","permission":"proposals.approve","resets_at":"2026-11-01T19:00:00.000Z","allowed_methods":["email_otp"],"role":"\u003cstring>","permissions":["\u003cstring>"],"fields":[{"path":"bin","code":"invalid_format","message":"БИН/ИИН — 12 цифр"}]},"request_id":"req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f"}}},"exampleType":"generated"}},"headers":{"x-request-id":{"description":"Номер запроса (тот же, что request_id в теле ошибки) — назвать в обращении в поддержку. Его всегда создаёт сервер: присланный клиентом x-request-id номером не становится","schema":{"type":"string","example":"req_3f2a9c0d1e4b4c5d8e7f6a5b4c3d2e1f"}},"x-ratelimit-limit":{"description":"Только при входе по ключу API: сколько запросов можно в текущем окне — самый тесный предел из ключа и организации","schema":{"type":"integer"}},"x-ratelimit-remaining":{"description":"Только при входе по ключу API: сколько запросов осталось по этому пределу в текущем окне","schema":{"type":"integer"}},"x-ratelimit-reset":{"description":"Только при входе по ключу API: секунд до нового окна этого предела","schema":{"type":"integer"}}},"exampleType":"generated"},"32b988ee-c682-4719-b2ba-49727e0485f2":{"description":"Не найдено (или чужое) (error.type: not_found_error)","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["error"],"description":"Всегда «error»: так тело ошибки отличается от обычного ответа.","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request_error","authentication_error","payment_required_error","permission_error","not_found_error","conflict_error","gone_error","limit_error","api_error","unavailable_error"],"description":"Вид ошибки — по нему ветвится клиент (не по тексту message). Статус HTTP у вида один, кроме invalid_request_error:\n- `invalid_request_error` (400) — запрос неверен: поле не прошло проверку, неверный формат, действие сейчас недопустимо. Показать message рядом с формой; повтор без исправления не поможет. Обычно 400; 413 и 422 — у кодов, где это сказано в списке code.\n- `authentication_error` (401) — нет входа: сессия закончилась, cookie нет, ключ API неверен, отозван или истёк. Кабинет — отправить на страницу входа; по ключу — проверить ключ (см. code).\n- `payment_required_error` (402) — нужны деньги или решение владельца/админа организации: ждать бесполезно. Показать message и кнопку действия по code (оформить тариф, пополнить баланс, поднять потолок); без code — не оплачено подключение компании.\n- `permission_error` (403) — нельзя: не хватает права или роли, организация заблокирована, вход не тем способом. Показать message (в нём сказано, к кому обратиться); детали — в code и полях рядом.\n- `not_found_error` (404) — нет такого объекта — или он чужой: чужие организации, компании и записи тоже отвечают 404, чтобы не раскрывать, что они есть. Показать «не найдено» и вернуть к списку.\n- `conflict_error` (409) — состояние не позволяет: уже сделано, уже идёт другое действие, версия устарела. Перечитать объект, обновить экран и показать message.\n- `gone_error` (410) — объекта больше нет: разговор не найден или истёк (вопрос в чате, ответ на вопрос ИИ, подсчёт токенов — начать новый разговор), ход потерян при перезапуске сервера, ссылка привязки программы устарела или уже использована (code connector_link_gone). Повторять незачем.\n- `limit_error` (429) — предел: частота запросов, окно тарифа, число объектов или мест. Если есть заголовок Retry-After или resets_at — пройдёт само, показать, когда; иначе нужно освободить место (удалить лишнее) или сменить тариф.\n- `api_error` (500) — сбой на нашей стороне. Показать message и request_id (для поддержки); повторить позже.\n- `unavailable_error` (503) — временно недоступно (внешний сервис, ИИ, настройка сервера). Повторить позже; если повторяется — сообщить request_id в поддержку.","example":"payment_required_error","isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Готовый текст для человека по-русски: что случилось, что делать и к кому обратиться. Показывать как есть; не разбирать — формулировки меняются.","example":"Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"type":"string","description":"Уточнение вида: по нему выбирается действие интерфейса (кнопка «Пополнить», «Войти иначе»…). Нет поля — хватает type и message. Известные коды:\n- `sso_domain_taken` (409) — домен SSO уже подтверждён другой организацией\n- `sso_last_verified_domain` (409) — включён обязательный вход, а это последний подтверждённый домен — сначала выключить обязательный вход\n- `sso_login_required` (400) — включить обязательный вход можно только из сессии, открытой через SSO этой организации\n- `domain_verification_failed` (400) — запись DNS для домена не найдена или не совпала — проверить и повторить\n- `oidc_openid_scope_required` (400) — в scopes сервера входа OIDC нет openid — добавить её: без неё вход через SSO не пройдёт\n- `enterprise_only` (403) — возможность есть только на тарифе Enterprise\n- `groups_limit` (429) — достигнут предел групп в организации\n- `custom_roles_limit` (429) — достигнут предел своих ролей в организации\n- `group_managed_by_directory` (409) — группа из каталога: название и состав меняются только там\n- `group_member_not_in_workspace` (400) — в группу можно добавить только сотрудника этой организации\n- `role_above_ceiling` (400) — роль даёт права выше потолка организации\n- `unknown_model` (400) — такой модели нет — список в available_models\n- `price_required` (400) — админка, тариф целиком: у платного тарифа нужна цена (price)\n- `lago_rejected` (409) — админка, тариф целиком: Lago отказал по существу (4xx, текст Lago в message) — правила не изменены, повтор без правки не поможет\n- `price_mismatch` (400) — админка, тариф целиком: цена не сходится с правилами (место без per_seat, per_seat без цены места, цена у бесплатного)\n- `model_not_allowed` (403) — политика организации не разрешает эту модель, а подходящей разрешённой нет — админу дополнить список\n- `retention_too_short` (400) — срок хранения меньше наименьшего\n- `audit_export_range` (400) — неверный период выгрузки журнала: конец раньше начала или период слишком длинный\n- `compliance_disabled` (403) — адрес для проверок выключен — владелец включает его в настройке\n- `missing_credentials` (401) — нет ни cookie сессии, ни ключа API — войти или передать x-api-key\n- `link_revoked` (401) — вход в Tungo из 1С больше не действует (вышли, отключили на сайте, вошли в той же базе заново, компания или человек заблокированы) — 1С просит войти заново\n- `login_denied` (403) — вход из 1С отклонён на сайте Tungo — 1С показывает отказ\n- `code_expired` (410) — код входа из 1С устарел или уже использован — 1С просит новый код\n- `code_gone` (410) — код входа из 1С уже подтверждён, отклонён или устарел — на сайте подтверждать нечего\n- `invalid_api_key` (401) — ключ API неверен (опечатка или удалён)\n- `key_revoked` (401) — ключ API отозван (при правке ключа — 409 с тем же code: отозванный ключ не меняется)\n- `key_expired` (401) — срок ключа API истёк — сменить секрет (POST …/api-keys/{id}/roll: срок начнётся заново) или выпустить новый (при правке срока — 409 с тем же code: PATCH истёкший ключ не оживляет)\n- `key_disabled` (401) — ключ API выключен — включить может автор ключа или владелец организации (POST …/api-keys/{id}/enable)\n- `key_creator_lost_access` (401) — тот, кто выпустил ключ, больше не владелец/админ организации — ключ недействителен\n- `user_banned` (401) — вход в аккаунт закрыт администратором Tungo — только поддержка Tungo\n- `onboarding_unpaid` (402) — подключение компании к ИИ-бухгалтеру не оплачено (разовый платёж): владельцу/админу организации — «Оплатить» в настройках компании; остальным — сообщить им\n- `onboarding_pending` (402) — оплата подключения компании ещё проходит в банке — ИИ заработает после подтверждения; опрашивать состояние подключения\n- `no_active_plan` (402) — нет действующей подписки (не оформлена, закончилась, первая оплата не прошла или ждёт 3-D Secure). Владельцу/админу — кнопка в настройки оплаты; остальным — «обратитесь к владельцу организации». Что именно случилось — в message\n- `balance_exhausted` (402) — баланс доп. использования кончился. Владельцу/админу — «Пополнить баланс» или включить автопополнение; остальным — сообщить им\n- `workspace_cap_reached` (402) — достигнут месячный потолок доп. использования организации. resets_at — 1-е число следующего месяца, 00:00 по Алматы; раньше — если админ поднимет потолок\n- `report_busy` (429) — сейчас собирается много отчётов команды: повторить через время из Retry-After\n- `report_timeout` (503) — отчёт команды не успел собраться: сократить период или выбрать разбивку по месяцам\n- `company_cap_reached` (402) — достигнут месячный потолок доп. использования компании. Письмо владельцу и админам уже отправлено. resets_at — 1-е число; раньше — если админ поднимет потолок (PUT /v1/workspaces/{ws}/team/company-caps/{co})\n- `member_cap_reached` (402) — достигнут личный месячный потолок доп. использования сотрудника. resets_at — 1-е число; раньше — если админ поднимет его потолок\n- `key_cap_reached` (402) — достигнут месячный потолок расхода ключа API (или остаток меньше оценки одного вызова). resets_at — 1-е число\n- `platform_balance_exhausted` (402) — баланс платформы пуст: вызов по ключу или автоматизация не сделаны. Пополнить — POST /v1/workspaces/{ws}/platform/purchases или автопополнением\n- `platform_cap_reached` (402) — достигнут месячный потолок трат платформы. resets_at — 1-е число следующего месяца, 00:00 по Алматы; раньше — поднять потолок в PUT /v1/workspaces/{ws}/platform/account\n- `platform_disabled` (402) — платформа выключена в организации: вызовы по ключам и автоматизации остановлены. Включить — PUT /v1/workspaces/{ws}/platform/account\n- `free_plan_chat_only` (402) — бесплатный тариф: пачки из кабинета только на платных тарифах. Ключам API и автоматизациям тариф не нужен\n- `free_limit_unavailable` (402) — бесплатный лимит этой учётной записи не положен (проверка регистрации или решение администратора) — оформить тариф\n- `plan_company_limit` (402) — в организации уже столько компаний не в архиве, сколько разрешает тариф (max_companies в GET /v1/plans; limit и plan_code — в ответе): новую не завести и из архива не вернуть. Убрать лишнюю в архив или перейти на тариф больше\n- `effort_not_in_plan` (402) — поле effort в чате на тарифе без выбора усилия (max_effort тарифа null, например бесплатный): ход не начат. Прислать вопрос без effort или оформить платный тариф\n- `model_not_in_plan` (402) — модель сильнее потолка тарифа (plans.model_ceiling): вызов не сделан; более сильные модели — на платных тарифах\n- `missing_permission` (403) — не хватает права в компании (или у ключа API); какого — в поле permission\n- `login_method_not_allowed` (403) — организация пускает к своим данным только после входа другим способом; какими — в allowed_methods. Предложить выйти и войти так\n- `ip_not_allowed` (403) — ключ API не принимает запросы с этого адреса — поправить allowed_ips ключа (PATCH …/api-keys/{id}) или вызывать с разрешённого адреса\n- `key_write_limit` (403) — запись в 1С по ключу API — сверх его пределов (сумма на документ или в день, виды документов) или правило автоодобрения шире пределов ключа; в сообщении — что и на сколько\n- `human_only` (403) — это решение принимает только человек в кабинете Tungo, не ключ API: например, отклонить «не знаем, записан ли» на снимке базы без проверки 1С (confirm_unknown_write)\n- `autonomy_raise_requires_session` (403) — поднять уровень доверия ИИ или потолки компании можно только владельцу или админу организации из кабинета; ключом API — только понизить\n- `id_path_required` (400) — для автоодобрения по хуку задайте хуку id_path — путь к номеру операции в теле события: без него повтор доставки нельзя отличить от новой операции\n- `directbank_rule_exists` (400) — у компании уже есть сценарий с правилом для выписки DirectBank — правило выписки одно на компанию\n- `event_not_found` (404) — события нет в этой компании или оно удалено по сроку хранения — для пробного прогона выберите событие посвежее\n- `event_body_unavailable` (409) — тело события зашифровано, а ключ шифрования на сервере сменился — прогнать сценарий на нём нельзя\n- `scenario_steps_required` (409) — у сценария цепочка шагов, а в замене (PUT) нет ни steps, ни output: передайте steps явно, иначе замена молча убрала бы цепочку\n- `scenario_output_required` (409) — у сценария форма итога, а в замене (PUT) нет ни steps, ни output: передайте output явно (null — снять форму)\n- `automation_queue_full` (429) — у компании слишком много запусков в очереди: повторите позже (событие хука отправитель повторит сам)\n- `restarting` (503) — сервис перезапускается: новый ход не начат — повторите через Retry-After\n- `company_suspended` (403) — работа с компанией приостановлена (решение платформы или оплаты); карточка видна, работать, править и архивировать нельзя (архив — 409 с тем же code)\n- `company_archived` (403) — компания в архиве: карточка видна, работать с ней нельзя. Вернуть — POST /v1/companies/{company_id}/unarchive (владелец компании или владелец/админ организации)\n- `workspace_blocked` (403) — организация заблокирована администратором платформы — только поддержка Tungo\n- `untrusted_origin` (403) — запрос пришёл не со страницы Tungo (защита от подделки запросов) — открыть кабинет по обычному адресу; для /admin/* — только со страниц ADMIN_ORIGINS\n- `cors_not_supported` (403) — вызов API из чужого браузерного кода (CORS) не поддерживается: ключ API — секрет сервера\n- `api_keys_disabled_by_policy` (403) — политика организации запрещает ключи API\n- `owner_role_reserved` (403) — владельца компании назначает, меняет и снимает только владелец или админ организации\n- `role_above_yours` (403) — у выдаваемой (или снимаемой) роли есть права, которых нет у вас; роль — в поле role, лишние права — в permissions\n- `not_key_creator` (403) — менять компании, права, срок и секрет ключа, снимать и поднимать его пределы записи в 1С может только тот, кто его выпустил (ужесточить пределы может любой админ)\n- `transfer_wider_than_target` (403) — передать ключ нельзя: у нового владельца нет нужного права (или доступа) в одной из компаний ключа\n- `invalid_allowed_ips` (400) — в allowed_ips ключа — не IP-адрес и не подсеть CIDR; какая запись — в сообщении\n- `transfer_target_not_admin` (400) — передать ключ можно только владельцу или админу этой организации\n- `platform_model_not_allowed` (403) — модель сильнее потолка платформы (настройка platform.billing): вызов не сделан и ничего не списано\n- `managed_by_sso` (403) — удаление аккаунта: аккаунт ведёт организация (SSO или SCIM) — удаляет её администратор; организации — в workspaces\n- `fresh_session_required` (403) — удаление аккаунта без почты (Telegram): нужен свежий вход — выйти, войти снова и подтвердить\n- `api_key_not_allowed` (403) — действие только из кабинета (сессия), не по ключу API: удаление аккаунта\n- `not_own_key` (403) — по ключу API виден только расход самого этого ключа\n- `webhooks_not_in_plan` (403) — вебхуков нет в тарифе организации\n- `admin_2fa_required` (403) — админ-API: у администратора платформы нет второго фактора или эта сессия не подтверждена кодом приложения-аутентификатора (POST /v1/auth/two-factor/enable, затем verify-totp)\n- `two_factor_required` (403) — отключить второй фактор, показать его секрет или выпустить резервные коды — только после кода из приложения-аутентификатора в этой сессии\n- `webhooks_require_all_companies` (403) — вебхуки — только ключу на все компании организации (при выпуске ключа — 400 с тем же code)\n- `audit_requires_all_companies` (403) — журнал организации — только ключу на все компании организации\n- `policy_blocked` (403) — одобрение: организация не доверяет ИИ записывать такой документ этим способом (поле level — уровень доверия); одобрить по одному или поднять уровень\n- `onec_read_only` (403) — одобрение: у пользователя 1С из подключения нет права записи — дать права в 1С\n- `validation_failed` (400) — тело или параметры запроса не прошли проверку: что не так с каждым полем — в fields (путь, код, текст по-русски). Подсветить поля формы; общий message — над формой\n- `invalid_json` (400) — тело запроса — не JSON-объект\n- `personal_workspace` (400) — в личной организации нет сотрудников, приглашений и политик — нужна организация Team или Enterprise\n- `api_key_required` (400) — адрес только для запроса по ключу API\n- `email_code_unavailable` (400) — удаление аккаунта: у аккаунта нет почты для кода (вход через Telegram) — подтверждать свежим входом, без кода\n- `deletion_code_invalid` (400) — удаление аккаунта: неверный код из письма; сколько попыток осталось — attempts_left\n- `deletion_code_expired` (400) — удаление аккаунта: код истёк, попытки кончились или код не запрашивался — запросить новый (POST /v1/me/deletion/code)\n- `unsafe_url` (400) — адрес вебхука недопустим (внутренняя сеть, не HTTPS)\n- `idempotency_key_invalid` (400) — Idempotency-Key неверного вида\n- `payload_too_large` (413) — тело запроса (или события хука) больше допустимого; пределы — настройки платформы\n- `idempotency_key_reused` (422) — этот Idempotency-Key уже был у другого запроса — для нового действия нужен новый ключ\n- `has_blockers` (422) — одобрение: у предложения есть блокеры — сначала исправить их\n- `batch_too_large` (413) — одобрение пачкой: предложений больше предела (поля limit, requested) — разбить на части\n- `unknown_kind` (400) — настройки писем: такого вида уведомлений нет — взять список из GET /v1/me/notifications\n- `kind_locked` (400) — настройки писем: этот вид (безопасность и аккаунт) выключить нельзя — переключатель неактивен (locked)\n- `onec_rejected` (400) — одобрение: 1С отклонила документ (причина — в message): исправить в 1С или построить предложение заново\n- `proposal_not_found` (404) — предложения с таким id нет в компании\n- `export_link_expired` (404) — ссылка на архив выгрузки истекла или неверна — получить новую: GET /v1/me/export\n- `batch_not_found` (404) — одобрение пачкой: задания с таким batch_id нет (или в нём нет предложений)\n- `idempotency_in_progress` (409) — первый запрос с этим Idempotency-Key ещё выполняется — подождать и повторить, придёт тот же ответ\n- `idempotency_response_not_kept` (409) — запрос с этим Idempotency-Key уже выполнен, но копия ответа не хранится (в нём персональные данные): результат — по ссылке в ответе (dialog_url) или в списке; статус первого ответа — original_status\n- `idempotency_response_too_large` (409) — запрос с этим Idempotency-Key уже выполнен, но ответ слишком большой, чтобы повторить его целиком: результат — в списке; статус первого ответа — original_status\n- `sole_owner` (409) — удаление аккаунта: вы единственный владелец организации с другими участниками (workspaces) — передать владение (POST /v1/workspaces/{ws}/ownership) или удалить организацию\n- `account_deletion_in_progress` (409) — удаление аккаунта: фон уже стирает аккаунт — новый код и подтверждение не принимаются, отменить нельзя\n- `wrong_status` (409) — предложение уже не в том состоянии (поле status — нынешнее): обновить его\n- `wrong_state` (409) — запуск автоматизации уже не в том состоянии (поле state — нынешнее)\n- `dialog_closed` (409) — разговор закрыт (поле reason — почему): начать новый\n- `dialog_id_taken` (409) — разговор с таким dialog_id уже есть — для нового прислать другой id или не присылать его\n- `turn_in_progress` (409) — в разговоре уже идёт ход ИИ (поле turn — его номер): дождаться его конца или остановить\n- `turn_superseded` (409) — читаемый ход уже закончился и идёт следующий (поле turn) — читать его с начала\n- `dialog_changed` (409) — разговор только что изменился в другом окне или на другом сервере Tungo — открыть его заново (GET …/chat/{id}) и повторить\n- `already_answered` (409) — на этот вопрос ИИ уже ответили (поле turn — ход с ответом)\n- `question_stale` (409) — вопрос ИИ устарел (в разговоре уже другой вопрос или его нет) — обновить разговор\n- `dismissed` (409) — вопрос ИИ закрыт без ответа — написать обычное сообщение\n- `job_running` (409) — задание (пачка) ещё идёт — дождаться отчёта; поле batch_id\n- `payload_changed` (409) — одобрение: документ изменился после превью — построить предложение заново\n- `onec_conflict` (409) — одобрение: 1С отказала из-за конфликта (объект занят или изменён) — повторить позже\n- `onec_not_found` (409) — одобрение: в 1С нет объекта, на который ссылается документ — построить предложение заново\n- `plan_limit_reached` (429) — лимит окна тарифа исчерпан; resets_at и Retry-After — когда обновится. Показать время; если в message предложено доп. использование — дать кнопку включить\n- `rate_limited` (429) — слишком часто (по ключу API, уведомления ePay с одного адреса, попытки кода второго фактора) — подождать Retry-After секунд\n- `concurrent_turns_limit` (429) — по ключу API уже идёт предельное число ходов ИИ одновременно — дождаться окончания\n- `api_keys_limit` (429) — в организации предельное число действующих ключей API — отозвать ненужные\n- `webhook_endpoints_limit` (429) — предельное число адресов вебхуков — удалить ненужные\n- `export_too_soon` (429) — выгрузку данных можно запрашивать не чаще раза в сутки: next_request_at и Retry-After — когда можно снова\n- `hook_rate_limited` (429) — приём событий хука: больше automations.hook_events_per_minute в минуту — повторить через Retry-After секунд\n- `lago_unavailable` (503) — админка, тариф целиком: Lago не настроен или не ответил (сеть, 5xx) — правила не изменены, повторить позже\n- `model_price_missing` (503) — у модели ИИ не задана цена — сбой настройки платформы, ничего не списано; повторить позже\n- `data_export_disabled` (503) — выгрузка данных на сервере не настроена (поддержка Tungo)\n- `webhooks_disabled` (503) — вебхуки на сервере не настроены\n- `webhooks_unavailable` (503) — служба доставки вебхуков временно недоступна\n- `model_not_configured` (503) — сервис модели ИИ не настроен на сервере — повторить позже (Retry-After)\n- `write_unknown` (503) — одобрение: исход записи в 1С неизвестен (связь оборвалась) — проверить документ в 1С по метке (поле marker); повтор безопасен (retry_safe); слишком ранний повтор в 1С не пишет — подождать retry_after секунд (Retry-After)\n- `onec_unavailable` (503) — 1С сейчас не отвечает — повторить позже (Retry-After)\n- `onec_check_busy` (503) — проверка связи 1С: сервер сейчас проверяет слишком много подключений — повторить через Retry-After секунд\n- `onec_failed` (503) — записать документ в 1С не удалось по неизвестной причине — повторить позже\n- `journal_unavailable` (503) — журнал решений недоступен — пачка не одобрена, повторить позже\n- `hook_secret_unavailable` (503) — приём событий хука: секрет подписи сейчас не открыть — отправителю повторить доставку позже\n- `secret_box_missing` (503) — на сервере не задан ключ шифрования настроек — секрет подписи хука сохранить нельзя (поддержка Tungo)\n- `not_personal` (409) — перевод в команду: организация уже не личная — обновить экран\n- `subscription_blocks_conversion` (409) — перевод в команду: действует подписка для одного человека — сначала отменить её и дождаться конца периода\n- `subscription_kind_mismatch` (409) — админка: действующая подписка оформлена на другой вид организации — вид не меняется, пока она идёт\n- `enterprise_features_active` (409) — админка: у организации подключены SSO или SCIM — сначала отключить, потом снимать Enterprise\n- `too_many_members_for_personal` (409) — админка: в личной организации один человек — сначала убрать остальных участников\n- `open_debt` (409) — есть неоплаченный счёт — сначала оплатить; в плане удаления этот же код лежит в blockers\n- `active_work` (409) — в организации идут ходы ИИ или автоматизации — дождаться окончания и повторить; в плане удаления этот же код лежит в blockers\n- `deletion_already_scheduled` (409) — удаление организации уже запланировано — показать дату из плана\n- `deletion_purging` (409) — очистка организации уже идёт — отменить её нельзя\n- `workspace_deleting` (409) — админка: организация удаляется по просьбе владельца — блок удаления снимает только отмена удаления\n- `invitation_not_pending` (409) — приглашение принято, отозвано или истекло — письмо не отправить, пригласить заново\n- `last_owner` (409) — это последний владелец организации — сначала передать владение другому участнику\n- `seats_by_contract` (409) — места Enterprise — по договору, карта и докупка не работают: обратиться к менеджеру\n- `no_subscription` (409) — нет действующей подписки — сначала оформить тариф\n- `not_per_seat` (409) — этот тариф не считает оплату за место — докупка не нужна, предел мест показан в ответе GET …/seats\n- `subscription_ended` (409) — возобновление: период отменённой подписки уже закончился — ничего не списано, оформить тариф заново (повторный PUT — обычное оформление)\n- `subscription_busy` (409) — подписка уже меняется другим запросом (отмена или возобновление) — обновить экран через несколько секунд\n- `subscription_ending` (409) — подписка отменена и закончится в конце периода — места не докупаются и не сокращаются\n- `seats_unpaid_debt` (409) — подписка просрочена — сначала оплатить счёт; участники остаются, новых приглашать нельзя\n- `idempotency_conflict` (409) — докупка: этот ключ уже использован с другим числом мест — для новой покупки нужен новый ключ\n- `seat_quote_changed` (409) — докупка: сумма изменилась (другой день или новая цена), деньги не списаны — показать новую сумму из поля и спросить снова\n- `no_paid_seats` (409) — оплаченных мест ещё нет — сокращать нечего\n- `seats_below_occupied` (409) — занято больше мест, чем просите оставить — сначала убрать участников или отозвать приглашения\n- `not_enterprise` (409) — админка: места по договору есть только у Enterprise — сначала поставить вид\n- `per_seat_plan_change` (409) — смена тарифа с оплатой за место не делается сразу: Lago взял бы плату за места дважды. Отменить и оформить новый с конца периода\n- `confirm_name_mismatch` (400) — удаление организации: название введено неверно — ввести точно как в плане удаления\n- `below_min_seats` (400) — на этом тарифе мест меньше нельзя: минимум — min_seats тарифа\n- `seats_over_max` (400) — мест больше предела одной организации (team.limits.max_seats) — обратиться в поддержку\n- `seats_above_paid` (400) — PUT …/seats только сокращает; новые места — через POST …/seats с оплатой\n- `onec_check_running` (429) — проверка связи 1С уже идёт у этой компании, у вас (другая компания) или у двух других компаний организации — дождаться её итога и повторить (Retry-After)\n- `invitation_resend_too_soon` (429) — письмо с приглашением уже отправлено только что — подождать Retry-After секунд\n- `seats_exhausted` (429) — свободные места закончились: докупите места или освободите их, отозвав приглашение\n- `seat_price_unknown` (503) — цена места сейчас неизвестна (тариф не прочитан или настроен неверно), деньги не списаны — повторить позже\n- `otp_mail_failed` (503) — письмо с кодом входа не отправлено: попробуйте позже\n- `seat_period_unknown` (503) — не удалось сверить период подписки с биллингом: деньги не списаны, попробуйте позже\n\nНезнакомый code — вести себя по type.","example":"balance_exhausted","uniqueKey":"error.code","typeLabel":"string"},"permission":{"type":"string","description":"При code = missing_permission — какого права не хватает: права в компании (company.read, company.manage, company.members.manage, onec.connect, proposals.create, proposals.approve, chat.use, audit.read, automations.manage) или права только ключа API (automations.read, webhooks.manage). Показать «нужно право …» и предложить попросить админа (или выпустить ключ с этим правом).","example":"proposals.approve","uniqueKey":"error.permission","typeLabel":"string"},"resets_at":{"type":"string","format":"date-time","description":"Когда ограничение снимется само — ISO 8601, UTC. Есть у plan_limit_reached (конец окна тарифа) и у месячных потолков (workspace_cap_reached, company_cap_reached, member_cap_reached, key_cap_reached, platform_cap_reached — 1-е число, 00:00 по Алматы). Показать в местном времени: «Лимит обновится в 14:30». Нет поля — само не пройдёт.","example":"2026-11-01T19:00:00.000Z","uniqueKey":"error.resets_at","typeLabel":"string\u003cdate-time>"},"allowed_methods":{"type":"array","items":{"type":"string","enum":["email_otp","google","apple","telegram","sso"],"uniqueKey":"error.allowed_methods.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"При code = login_method_not_allowed — какими способами входа организация пускает к своим данным: email_otp — код из почты, google, apple, telegram, sso — SSO организации. Предложить выйти и войти одним из них.","uniqueKey":"error.allowed_methods","typeLabel":"enum\u003cstring>[]"},"role":{"type":"string","description":"При code = role_above_yours — ключ роли в компании, которую нельзя выдать или снять (например chief_accountant).","uniqueKey":"error.role","typeLabel":"string"},"permissions":{"type":"array","items":{"type":"string","uniqueKey":"error.permissions.items.[INDEX]","typeLabel":"string"},"description":"При code = role_above_yours — права этой роли, которых нет у того, кто выдаёт. Показать списком: «у роли есть права, которых нет у вас: …».","uniqueKey":"error.permissions","typeLabel":"string[]"},"fields":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"Путь к полю через точку, как в теле запроса или имени параметра: `name`, `lines.0.amount`. Пустая строка — всё тело (не объект, лишние поля).","example":"bin","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].path","typeLabel":"string"},"code":{"type":"string","enum":["invalid_type","too_small","too_big","invalid_format","invalid_value","not_multiple_of","unrecognized_keys","invalid_union","invalid_key","invalid_element","custom"],"description":"Что не так: invalid_type — не тот тип или поле не передано; too_small / too_big — короче/меньше или длиннее/больше допустимого; invalid_format — неверный вид (почта, дата, шаблон); invalid_value — значения нет среди допустимых; not_multiple_of — не кратно; unrecognized_keys — лишние поля; invalid_union — не подходит ни один вид; invalid_key / invalid_element — неверный ключ или элемент; custom — своё правило ручки","example":"invalid_format","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Текст для человека по-русски — показать под полем","example":"БИН/ИИН — 12 цифр","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].message","typeLabel":"string"}},"required":["path","code","message"],"description":"Ошибка одного поля запроса","uniqueKey":"error.fields.items.[INDEX]","typeLabel":"object"},"description":"При code = validation_failed — ошибки по полям, в порядке проверки; у одного поля может быть несколько.","uniqueKey":"error.fields","typeLabel":"object[]"}},"required":["type","message"],"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.additionalProperties","typeLabel":"any"},"description":"Что пошло не так. Все 503 — с заголовком Retry-After (через сколько секунд повторить). Кроме описанных, у отдельных ручек бывают свои поля рядом с code (например status у wrong_status, state у wrong_state, reason у dialog_closed) — они описаны у этих ручек.","isRequired":true,"uniqueKey":"error","typeLabel":"object"},"request_id":{"oneOf":[{"type":"string","description":"Номер запроса (тот же, что в заголовке x-request-id). Показывать мелко рядом с ошибкой с кнопкой «скопировать»: по нему поддержка находит запрос в журнале. null — номер не успел появиться (очень ранний отказ).","example":"req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f","isRequired":true,"uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Номер запроса (тот же, что в заголовке x-request-id). Показывать мелко рядом с ошибкой с кнопкой «скопировать»: по нему поддержка находит запрос в журнале. null — номер не успел появиться (очень ранний отказ).","example":"req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f","isRequired":true,"uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"request_id","typeLabel":"string | null"}},"required":["type","error","request_id"],"description":"Тело любой ошибки API (статусы 4xx и 5xx): `{\"type\":\"error\",\"error\":{\"type\":\"…\",\"code\":\"…\",\"message\":\"…\"},\"request_id\":\"…\"}`. Интерфейс ветвится по error.type и error.code, человеку показывает error.message и request_id.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"error","error":{"type":"payment_required_error","message":"Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.","code":"balance_exhausted","permission":"proposals.approve","resets_at":"2026-11-01T19:00:00.000Z","allowed_methods":["email_otp"],"role":"\u003cstring>","permissions":["\u003cstring>"],"fields":[{"path":"bin","code":"invalid_format","message":"БИН/ИИН — 12 цифр"}]},"request_id":"req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f"}}},"exampleType":"generated"}},"headers":{"x-request-id":{"description":"Номер запроса (тот же, что request_id в теле ошибки) — назвать в обращении в поддержку. Его всегда создаёт сервер: присланный клиентом x-request-id номером не становится","schema":{"type":"string","example":"req_3f2a9c0d1e4b4c5d8e7f6a5b4c3d2e1f"}},"x-ratelimit-limit":{"description":"Только при входе по ключу API: сколько запросов можно в текущем окне — самый тесный предел из ключа и организации","schema":{"type":"integer"}},"x-ratelimit-remaining":{"description":"Только при входе по ключу API: сколько запросов осталось по этому пределу в текущем окне","schema":{"type":"integer"}},"x-ratelimit-reset":{"description":"Только при входе по ключу API: секунд до нового окна этого предела","schema":{"type":"integer"}}},"exampleType":"generated"},"ef097e76-4463-4794-b8c9-0e3c7042ed3d":{"description":"Состояние не позволяет — перечитать объект и показать error.message (error.type: conflict_error)","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["error"],"description":"Всегда «error»: так тело ошибки отличается от обычного ответа.","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request_error","authentication_error","payment_required_error","permission_error","not_found_error","conflict_error","gone_error","limit_error","api_error","unavailable_error"],"description":"Вид ошибки — по нему ветвится клиент (не по тексту message). Статус HTTP у вида один, кроме invalid_request_error:\n- `invalid_request_error` (400) — запрос неверен: поле не прошло проверку, неверный формат, действие сейчас недопустимо. Показать message рядом с формой; повтор без исправления не поможет. Обычно 400; 413 и 422 — у кодов, где это сказано в списке code.\n- `authentication_error` (401) — нет входа: сессия закончилась, cookie нет, ключ API неверен, отозван или истёк. Кабинет — отправить на страницу входа; по ключу — проверить ключ (см. code).\n- `payment_required_error` (402) — нужны деньги или решение владельца/админа организации: ждать бесполезно. Показать message и кнопку действия по code (оформить тариф, пополнить баланс, поднять потолок); без code — не оплачено подключение компании.\n- `permission_error` (403) — нельзя: не хватает права или роли, организация заблокирована, вход не тем способом. Показать message (в нём сказано, к кому обратиться); детали — в code и полях рядом.\n- `not_found_error` (404) — нет такого объекта — или он чужой: чужие организации, компании и записи тоже отвечают 404, чтобы не раскрывать, что они есть. Показать «не найдено» и вернуть к списку.\n- `conflict_error` (409) — состояние не позволяет: уже сделано, уже идёт другое действие, версия устарела. Перечитать объект, обновить экран и показать message.\n- `gone_error` (410) — объекта больше нет: разговор не найден или истёк (вопрос в чате, ответ на вопрос ИИ, подсчёт токенов — начать новый разговор), ход потерян при перезапуске сервера, ссылка привязки программы устарела или уже использована (code connector_link_gone). Повторять незачем.\n- `limit_error` (429) — предел: частота запросов, окно тарифа, число объектов или мест. Если есть заголовок Retry-After или resets_at — пройдёт само, показать, когда; иначе нужно освободить место (удалить лишнее) или сменить тариф.\n- `api_error` (500) — сбой на нашей стороне. Показать message и request_id (для поддержки); повторить позже.\n- `unavailable_error` (503) — временно недоступно (внешний сервис, ИИ, настройка сервера). Повторить позже; если повторяется — сообщить request_id в поддержку.","example":"payment_required_error","isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Готовый текст для человека по-русски: что случилось, что делать и к кому обратиться. Показывать как есть; не разбирать — формулировки меняются.","example":"Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"type":"string","description":"Уточнение вида: по нему выбирается действие интерфейса (кнопка «Пополнить», «Войти иначе»…). Нет поля — хватает type и message. Известные коды:\n- `sso_domain_taken` (409) — домен SSO уже подтверждён другой организацией\n- `sso_last_verified_domain` (409) — включён обязательный вход, а это последний подтверждённый домен — сначала выключить обязательный вход\n- `sso_login_required` (400) — включить обязательный вход можно только из сессии, открытой через SSO этой организации\n- `domain_verification_failed` (400) — запись DNS для домена не найдена или не совпала — проверить и повторить\n- `oidc_openid_scope_required` (400) — в scopes сервера входа OIDC нет openid — добавить её: без неё вход через SSO не пройдёт\n- `enterprise_only` (403) — возможность есть только на тарифе Enterprise\n- `groups_limit` (429) — достигнут предел групп в организации\n- `custom_roles_limit` (429) — достигнут предел своих ролей в организации\n- `group_managed_by_directory` (409) — группа из каталога: название и состав меняются только там\n- `group_member_not_in_workspace` (400) — в группу можно добавить только сотрудника этой организации\n- `role_above_ceiling` (400) — роль даёт права выше потолка организации\n- `unknown_model` (400) — такой модели нет — список в available_models\n- `price_required` (400) — админка, тариф целиком: у платного тарифа нужна цена (price)\n- `lago_rejected` (409) — админка, тариф целиком: Lago отказал по существу (4xx, текст Lago в message) — правила не изменены, повтор без правки не поможет\n- `price_mismatch` (400) — админка, тариф целиком: цена не сходится с правилами (место без per_seat, per_seat без цены места, цена у бесплатного)\n- `model_not_allowed` (403) — политика организации не разрешает эту модель, а подходящей разрешённой нет — админу дополнить список\n- `retention_too_short` (400) — срок хранения меньше наименьшего\n- `audit_export_range` (400) — неверный период выгрузки журнала: конец раньше начала или период слишком длинный\n- `compliance_disabled` (403) — адрес для проверок выключен — владелец включает его в настройке\n- `missing_credentials` (401) — нет ни cookie сессии, ни ключа API — войти или передать x-api-key\n- `link_revoked` (401) — вход в Tungo из 1С больше не действует (вышли, отключили на сайте, вошли в той же базе заново, компания или человек заблокированы) — 1С просит войти заново\n- `login_denied` (403) — вход из 1С отклонён на сайте Tungo — 1С показывает отказ\n- `code_expired` (410) — код входа из 1С устарел или уже использован — 1С просит новый код\n- `code_gone` (410) — код входа из 1С уже подтверждён, отклонён или устарел — на сайте подтверждать нечего\n- `invalid_api_key` (401) — ключ API неверен (опечатка или удалён)\n- `key_revoked` (401) — ключ API отозван (при правке ключа — 409 с тем же code: отозванный ключ не меняется)\n- `key_expired` (401) — срок ключа API истёк — сменить секрет (POST …/api-keys/{id}/roll: срок начнётся заново) или выпустить новый (при правке срока — 409 с тем же code: PATCH истёкший ключ не оживляет)\n- `key_disabled` (401) — ключ API выключен — включить может автор ключа или владелец организации (POST …/api-keys/{id}/enable)\n- `key_creator_lost_access` (401) — тот, кто выпустил ключ, больше не владелец/админ организации — ключ недействителен\n- `user_banned` (401) — вход в аккаунт закрыт администратором Tungo — только поддержка Tungo\n- `onboarding_unpaid` (402) — подключение компании к ИИ-бухгалтеру не оплачено (разовый платёж): владельцу/админу организации — «Оплатить» в настройках компании; остальным — сообщить им\n- `onboarding_pending` (402) — оплата подключения компании ещё проходит в банке — ИИ заработает после подтверждения; опрашивать состояние подключения\n- `no_active_plan` (402) — нет действующей подписки (не оформлена, закончилась, первая оплата не прошла или ждёт 3-D Secure). Владельцу/админу — кнопка в настройки оплаты; остальным — «обратитесь к владельцу организации». Что именно случилось — в message\n- `balance_exhausted` (402) — баланс доп. использования кончился. Владельцу/админу — «Пополнить баланс» или включить автопополнение; остальным — сообщить им\n- `workspace_cap_reached` (402) — достигнут месячный потолок доп. использования организации. resets_at — 1-е число следующего месяца, 00:00 по Алматы; раньше — если админ поднимет потолок\n- `report_busy` (429) — сейчас собирается много отчётов команды: повторить через время из Retry-After\n- `report_timeout` (503) — отчёт команды не успел собраться: сократить период или выбрать разбивку по месяцам\n- `company_cap_reached` (402) — достигнут месячный потолок доп. использования компании. Письмо владельцу и админам уже отправлено. resets_at — 1-е число; раньше — если админ поднимет потолок (PUT /v1/workspaces/{ws}/team/company-caps/{co})\n- `member_cap_reached` (402) — достигнут личный месячный потолок доп. использования сотрудника. resets_at — 1-е число; раньше — если админ поднимет его потолок\n- `key_cap_reached` (402) — достигнут месячный потолок расхода ключа API (или остаток меньше оценки одного вызова). resets_at — 1-е число\n- `platform_balance_exhausted` (402) — баланс платформы пуст: вызов по ключу или автоматизация не сделаны. Пополнить — POST /v1/workspaces/{ws}/platform/purchases или автопополнением\n- `platform_cap_reached` (402) — достигнут месячный потолок трат платформы. resets_at — 1-е число следующего месяца, 00:00 по Алматы; раньше — поднять потолок в PUT /v1/workspaces/{ws}/platform/account\n- `platform_disabled` (402) — платформа выключена в организации: вызовы по ключам и автоматизации остановлены. Включить — PUT /v1/workspaces/{ws}/platform/account\n- `free_plan_chat_only` (402) — бесплатный тариф: пачки из кабинета только на платных тарифах. Ключам API и автоматизациям тариф не нужен\n- `free_limit_unavailable` (402) — бесплатный лимит этой учётной записи не положен (проверка регистрации или решение администратора) — оформить тариф\n- `plan_company_limit` (402) — в организации уже столько компаний не в архиве, сколько разрешает тариф (max_companies в GET /v1/plans; limit и plan_code — в ответе): новую не завести и из архива не вернуть. Убрать лишнюю в архив или перейти на тариф больше\n- `effort_not_in_plan` (402) — поле effort в чате на тарифе без выбора усилия (max_effort тарифа null, например бесплатный): ход не начат. Прислать вопрос без effort или оформить платный тариф\n- `model_not_in_plan` (402) — модель сильнее потолка тарифа (plans.model_ceiling): вызов не сделан; более сильные модели — на платных тарифах\n- `missing_permission` (403) — не хватает права в компании (или у ключа API); какого — в поле permission\n- `login_method_not_allowed` (403) — организация пускает к своим данным только после входа другим способом; какими — в allowed_methods. Предложить выйти и войти так\n- `ip_not_allowed` (403) — ключ API не принимает запросы с этого адреса — поправить allowed_ips ключа (PATCH …/api-keys/{id}) или вызывать с разрешённого адреса\n- `key_write_limit` (403) — запись в 1С по ключу API — сверх его пределов (сумма на документ или в день, виды документов) или правило автоодобрения шире пределов ключа; в сообщении — что и на сколько\n- `human_only` (403) — это решение принимает только человек в кабинете Tungo, не ключ API: например, отклонить «не знаем, записан ли» на снимке базы без проверки 1С (confirm_unknown_write)\n- `autonomy_raise_requires_session` (403) — поднять уровень доверия ИИ или потолки компании можно только владельцу или админу организации из кабинета; ключом API — только понизить\n- `id_path_required` (400) — для автоодобрения по хуку задайте хуку id_path — путь к номеру операции в теле события: без него повтор доставки нельзя отличить от новой операции\n- `directbank_rule_exists` (400) — у компании уже есть сценарий с правилом для выписки DirectBank — правило выписки одно на компанию\n- `event_not_found` (404) — события нет в этой компании или оно удалено по сроку хранения — для пробного прогона выберите событие посвежее\n- `event_body_unavailable` (409) — тело события зашифровано, а ключ шифрования на сервере сменился — прогнать сценарий на нём нельзя\n- `scenario_steps_required` (409) — у сценария цепочка шагов, а в замене (PUT) нет ни steps, ни output: передайте steps явно, иначе замена молча убрала бы цепочку\n- `scenario_output_required` (409) — у сценария форма итога, а в замене (PUT) нет ни steps, ни output: передайте output явно (null — снять форму)\n- `automation_queue_full` (429) — у компании слишком много запусков в очереди: повторите позже (событие хука отправитель повторит сам)\n- `restarting` (503) — сервис перезапускается: новый ход не начат — повторите через Retry-After\n- `company_suspended` (403) — работа с компанией приостановлена (решение платформы или оплаты); карточка видна, работать, править и архивировать нельзя (архив — 409 с тем же code)\n- `company_archived` (403) — компания в архиве: карточка видна, работать с ней нельзя. Вернуть — POST /v1/companies/{company_id}/unarchive (владелец компании или владелец/админ организации)\n- `workspace_blocked` (403) — организация заблокирована администратором платформы — только поддержка Tungo\n- `untrusted_origin` (403) — запрос пришёл не со страницы Tungo (защита от подделки запросов) — открыть кабинет по обычному адресу; для /admin/* — только со страниц ADMIN_ORIGINS\n- `cors_not_supported` (403) — вызов API из чужого браузерного кода (CORS) не поддерживается: ключ API — секрет сервера\n- `api_keys_disabled_by_policy` (403) — политика организации запрещает ключи API\n- `owner_role_reserved` (403) — владельца компании назначает, меняет и снимает только владелец или админ организации\n- `role_above_yours` (403) — у выдаваемой (или снимаемой) роли есть права, которых нет у вас; роль — в поле role, лишние права — в permissions\n- `not_key_creator` (403) — менять компании, права, срок и секрет ключа, снимать и поднимать его пределы записи в 1С может только тот, кто его выпустил (ужесточить пределы может любой админ)\n- `transfer_wider_than_target` (403) — передать ключ нельзя: у нового владельца нет нужного права (или доступа) в одной из компаний ключа\n- `invalid_allowed_ips` (400) — в allowed_ips ключа — не IP-адрес и не подсеть CIDR; какая запись — в сообщении\n- `transfer_target_not_admin` (400) — передать ключ можно только владельцу или админу этой организации\n- `platform_model_not_allowed` (403) — модель сильнее потолка платформы (настройка platform.billing): вызов не сделан и ничего не списано\n- `managed_by_sso` (403) — удаление аккаунта: аккаунт ведёт организация (SSO или SCIM) — удаляет её администратор; организации — в workspaces\n- `fresh_session_required` (403) — удаление аккаунта без почты (Telegram): нужен свежий вход — выйти, войти снова и подтвердить\n- `api_key_not_allowed` (403) — действие только из кабинета (сессия), не по ключу API: удаление аккаунта\n- `not_own_key` (403) — по ключу API виден только расход самого этого ключа\n- `webhooks_not_in_plan` (403) — вебхуков нет в тарифе организации\n- `admin_2fa_required` (403) — админ-API: у администратора платформы нет второго фактора или эта сессия не подтверждена кодом приложения-аутентификатора (POST /v1/auth/two-factor/enable, затем verify-totp)\n- `two_factor_required` (403) — отключить второй фактор, показать его секрет или выпустить резервные коды — только после кода из приложения-аутентификатора в этой сессии\n- `webhooks_require_all_companies` (403) — вебхуки — только ключу на все компании организации (при выпуске ключа — 400 с тем же code)\n- `audit_requires_all_companies` (403) — журнал организации — только ключу на все компании организации\n- `policy_blocked` (403) — одобрение: организация не доверяет ИИ записывать такой документ этим способом (поле level — уровень доверия); одобрить по одному или поднять уровень\n- `onec_read_only` (403) — одобрение: у пользователя 1С из подключения нет права записи — дать права в 1С\n- `validation_failed` (400) — тело или параметры запроса не прошли проверку: что не так с каждым полем — в fields (путь, код, текст по-русски). Подсветить поля формы; общий message — над формой\n- `invalid_json` (400) — тело запроса — не JSON-объект\n- `personal_workspace` (400) — в личной организации нет сотрудников, приглашений и политик — нужна организация Team или Enterprise\n- `api_key_required` (400) — адрес только для запроса по ключу API\n- `email_code_unavailable` (400) — удаление аккаунта: у аккаунта нет почты для кода (вход через Telegram) — подтверждать свежим входом, без кода\n- `deletion_code_invalid` (400) — удаление аккаунта: неверный код из письма; сколько попыток осталось — attempts_left\n- `deletion_code_expired` (400) — удаление аккаунта: код истёк, попытки кончились или код не запрашивался — запросить новый (POST /v1/me/deletion/code)\n- `unsafe_url` (400) — адрес вебхука недопустим (внутренняя сеть, не HTTPS)\n- `idempotency_key_invalid` (400) — Idempotency-Key неверного вида\n- `payload_too_large` (413) — тело запроса (или события хука) больше допустимого; пределы — настройки платформы\n- `idempotency_key_reused` (422) — этот Idempotency-Key уже был у другого запроса — для нового действия нужен новый ключ\n- `has_blockers` (422) — одобрение: у предложения есть блокеры — сначала исправить их\n- `batch_too_large` (413) — одобрение пачкой: предложений больше предела (поля limit, requested) — разбить на части\n- `unknown_kind` (400) — настройки писем: такого вида уведомлений нет — взять список из GET /v1/me/notifications\n- `kind_locked` (400) — настройки писем: этот вид (безопасность и аккаунт) выключить нельзя — переключатель неактивен (locked)\n- `onec_rejected` (400) — одобрение: 1С отклонила документ (причина — в message): исправить в 1С или построить предложение заново\n- `proposal_not_found` (404) — предложения с таким id нет в компании\n- `export_link_expired` (404) — ссылка на архив выгрузки истекла или неверна — получить новую: GET /v1/me/export\n- `batch_not_found` (404) — одобрение пачкой: задания с таким batch_id нет (или в нём нет предложений)\n- `idempotency_in_progress` (409) — первый запрос с этим Idempotency-Key ещё выполняется — подождать и повторить, придёт тот же ответ\n- `idempotency_response_not_kept` (409) — запрос с этим Idempotency-Key уже выполнен, но копия ответа не хранится (в нём персональные данные): результат — по ссылке в ответе (dialog_url) или в списке; статус первого ответа — original_status\n- `idempotency_response_too_large` (409) — запрос с этим Idempotency-Key уже выполнен, но ответ слишком большой, чтобы повторить его целиком: результат — в списке; статус первого ответа — original_status\n- `sole_owner` (409) — удаление аккаунта: вы единственный владелец организации с другими участниками (workspaces) — передать владение (POST /v1/workspaces/{ws}/ownership) или удалить организацию\n- `account_deletion_in_progress` (409) — удаление аккаунта: фон уже стирает аккаунт — новый код и подтверждение не принимаются, отменить нельзя\n- `wrong_status` (409) — предложение уже не в том состоянии (поле status — нынешнее): обновить его\n- `wrong_state` (409) — запуск автоматизации уже не в том состоянии (поле state — нынешнее)\n- `dialog_closed` (409) — разговор закрыт (поле reason — почему): начать новый\n- `dialog_id_taken` (409) — разговор с таким dialog_id уже есть — для нового прислать другой id или не присылать его\n- `turn_in_progress` (409) — в разговоре уже идёт ход ИИ (поле turn — его номер): дождаться его конца или остановить\n- `turn_superseded` (409) — читаемый ход уже закончился и идёт следующий (поле turn) — читать его с начала\n- `dialog_changed` (409) — разговор только что изменился в другом окне или на другом сервере Tungo — открыть его заново (GET …/chat/{id}) и повторить\n- `already_answered` (409) — на этот вопрос ИИ уже ответили (поле turn — ход с ответом)\n- `question_stale` (409) — вопрос ИИ устарел (в разговоре уже другой вопрос или его нет) — обновить разговор\n- `dismissed` (409) — вопрос ИИ закрыт без ответа — написать обычное сообщение\n- `job_running` (409) — задание (пачка) ещё идёт — дождаться отчёта; поле batch_id\n- `payload_changed` (409) — одобрение: документ изменился после превью — построить предложение заново\n- `onec_conflict` (409) — одобрение: 1С отказала из-за конфликта (объект занят или изменён) — повторить позже\n- `onec_not_found` (409) — одобрение: в 1С нет объекта, на который ссылается документ — построить предложение заново\n- `plan_limit_reached` (429) — лимит окна тарифа исчерпан; resets_at и Retry-After — когда обновится. Показать время; если в message предложено доп. использование — дать кнопку включить\n- `rate_limited` (429) — слишком часто (по ключу API, уведомления ePay с одного адреса, попытки кода второго фактора) — подождать Retry-After секунд\n- `concurrent_turns_limit` (429) — по ключу API уже идёт предельное число ходов ИИ одновременно — дождаться окончания\n- `api_keys_limit` (429) — в организации предельное число действующих ключей API — отозвать ненужные\n- `webhook_endpoints_limit` (429) — предельное число адресов вебхуков — удалить ненужные\n- `export_too_soon` (429) — выгрузку данных можно запрашивать не чаще раза в сутки: next_request_at и Retry-After — когда можно снова\n- `hook_rate_limited` (429) — приём событий хука: больше automations.hook_events_per_minute в минуту — повторить через Retry-After секунд\n- `lago_unavailable` (503) — админка, тариф целиком: Lago не настроен или не ответил (сеть, 5xx) — правила не изменены, повторить позже\n- `model_price_missing` (503) — у модели ИИ не задана цена — сбой настройки платформы, ничего не списано; повторить позже\n- `data_export_disabled` (503) — выгрузка данных на сервере не настроена (поддержка Tungo)\n- `webhooks_disabled` (503) — вебхуки на сервере не настроены\n- `webhooks_unavailable` (503) — служба доставки вебхуков временно недоступна\n- `model_not_configured` (503) — сервис модели ИИ не настроен на сервере — повторить позже (Retry-After)\n- `write_unknown` (503) — одобрение: исход записи в 1С неизвестен (связь оборвалась) — проверить документ в 1С по метке (поле marker); повтор безопасен (retry_safe); слишком ранний повтор в 1С не пишет — подождать retry_after секунд (Retry-After)\n- `onec_unavailable` (503) — 1С сейчас не отвечает — повторить позже (Retry-After)\n- `onec_check_busy` (503) — проверка связи 1С: сервер сейчас проверяет слишком много подключений — повторить через Retry-After секунд\n- `onec_failed` (503) — записать документ в 1С не удалось по неизвестной причине — повторить позже\n- `journal_unavailable` (503) — журнал решений недоступен — пачка не одобрена, повторить позже\n- `hook_secret_unavailable` (503) — приём событий хука: секрет подписи сейчас не открыть — отправителю повторить доставку позже\n- `secret_box_missing` (503) — на сервере не задан ключ шифрования настроек — секрет подписи хука сохранить нельзя (поддержка Tungo)\n- `not_personal` (409) — перевод в команду: организация уже не личная — обновить экран\n- `subscription_blocks_conversion` (409) — перевод в команду: действует подписка для одного человека — сначала отменить её и дождаться конца периода\n- `subscription_kind_mismatch` (409) — админка: действующая подписка оформлена на другой вид организации — вид не меняется, пока она идёт\n- `enterprise_features_active` (409) — админка: у организации подключены SSO или SCIM — сначала отключить, потом снимать Enterprise\n- `too_many_members_for_personal` (409) — админка: в личной организации один человек — сначала убрать остальных участников\n- `open_debt` (409) — есть неоплаченный счёт — сначала оплатить; в плане удаления этот же код лежит в blockers\n- `active_work` (409) — в организации идут ходы ИИ или автоматизации — дождаться окончания и повторить; в плане удаления этот же код лежит в blockers\n- `deletion_already_scheduled` (409) — удаление организации уже запланировано — показать дату из плана\n- `deletion_purging` (409) — очистка организации уже идёт — отменить её нельзя\n- `workspace_deleting` (409) — админка: организация удаляется по просьбе владельца — блок удаления снимает только отмена удаления\n- `invitation_not_pending` (409) — приглашение принято, отозвано или истекло — письмо не отправить, пригласить заново\n- `last_owner` (409) — это последний владелец организации — сначала передать владение другому участнику\n- `seats_by_contract` (409) — места Enterprise — по договору, карта и докупка не работают: обратиться к менеджеру\n- `no_subscription` (409) — нет действующей подписки — сначала оформить тариф\n- `not_per_seat` (409) — этот тариф не считает оплату за место — докупка не нужна, предел мест показан в ответе GET …/seats\n- `subscription_ended` (409) — возобновление: период отменённой подписки уже закончился — ничего не списано, оформить тариф заново (повторный PUT — обычное оформление)\n- `subscription_busy` (409) — подписка уже меняется другим запросом (отмена или возобновление) — обновить экран через несколько секунд\n- `subscription_ending` (409) — подписка отменена и закончится в конце периода — места не докупаются и не сокращаются\n- `seats_unpaid_debt` (409) — подписка просрочена — сначала оплатить счёт; участники остаются, новых приглашать нельзя\n- `idempotency_conflict` (409) — докупка: этот ключ уже использован с другим числом мест — для новой покупки нужен новый ключ\n- `seat_quote_changed` (409) — докупка: сумма изменилась (другой день или новая цена), деньги не списаны — показать новую сумму из поля и спросить снова\n- `no_paid_seats` (409) — оплаченных мест ещё нет — сокращать нечего\n- `seats_below_occupied` (409) — занято больше мест, чем просите оставить — сначала убрать участников или отозвать приглашения\n- `not_enterprise` (409) — админка: места по договору есть только у Enterprise — сначала поставить вид\n- `per_seat_plan_change` (409) — смена тарифа с оплатой за место не делается сразу: Lago взял бы плату за места дважды. Отменить и оформить новый с конца периода\n- `confirm_name_mismatch` (400) — удаление организации: название введено неверно — ввести точно как в плане удаления\n- `below_min_seats` (400) — на этом тарифе мест меньше нельзя: минимум — min_seats тарифа\n- `seats_over_max` (400) — мест больше предела одной организации (team.limits.max_seats) — обратиться в поддержку\n- `seats_above_paid` (400) — PUT …/seats только сокращает; новые места — через POST …/seats с оплатой\n- `onec_check_running` (429) — проверка связи 1С уже идёт у этой компании, у вас (другая компания) или у двух других компаний организации — дождаться её итога и повторить (Retry-After)\n- `invitation_resend_too_soon` (429) — письмо с приглашением уже отправлено только что — подождать Retry-After секунд\n- `seats_exhausted` (429) — свободные места закончились: докупите места или освободите их, отозвав приглашение\n- `seat_price_unknown` (503) — цена места сейчас неизвестна (тариф не прочитан или настроен неверно), деньги не списаны — повторить позже\n- `otp_mail_failed` (503) — письмо с кодом входа не отправлено: попробуйте позже\n- `seat_period_unknown` (503) — не удалось сверить период подписки с биллингом: деньги не списаны, попробуйте позже\n\nНезнакомый code — вести себя по type.","example":"balance_exhausted","uniqueKey":"error.code","typeLabel":"string"},"permission":{"type":"string","description":"При code = missing_permission — какого права не хватает: права в компании (company.read, company.manage, company.members.manage, onec.connect, proposals.create, proposals.approve, chat.use, audit.read, automations.manage) или права только ключа API (automations.read, webhooks.manage). Показать «нужно право …» и предложить попросить админа (или выпустить ключ с этим правом).","example":"proposals.approve","uniqueKey":"error.permission","typeLabel":"string"},"resets_at":{"type":"string","format":"date-time","description":"Когда ограничение снимется само — ISO 8601, UTC. Есть у plan_limit_reached (конец окна тарифа) и у месячных потолков (workspace_cap_reached, company_cap_reached, member_cap_reached, key_cap_reached, platform_cap_reached — 1-е число, 00:00 по Алматы). Показать в местном времени: «Лимит обновится в 14:30». Нет поля — само не пройдёт.","example":"2026-11-01T19:00:00.000Z","uniqueKey":"error.resets_at","typeLabel":"string\u003cdate-time>"},"allowed_methods":{"type":"array","items":{"type":"string","enum":["email_otp","google","apple","telegram","sso"],"uniqueKey":"error.allowed_methods.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"При code = login_method_not_allowed — какими способами входа организация пускает к своим данным: email_otp — код из почты, google, apple, telegram, sso — SSO организации. Предложить выйти и войти одним из них.","uniqueKey":"error.allowed_methods","typeLabel":"enum\u003cstring>[]"},"role":{"type":"string","description":"При code = role_above_yours — ключ роли в компании, которую нельзя выдать или снять (например chief_accountant).","uniqueKey":"error.role","typeLabel":"string"},"permissions":{"type":"array","items":{"type":"string","uniqueKey":"error.permissions.items.[INDEX]","typeLabel":"string"},"description":"При code = role_above_yours — права этой роли, которых нет у того, кто выдаёт. Показать списком: «у роли есть права, которых нет у вас: …».","uniqueKey":"error.permissions","typeLabel":"string[]"},"fields":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"Путь к полю через точку, как в теле запроса или имени параметра: `name`, `lines.0.amount`. Пустая строка — всё тело (не объект, лишние поля).","example":"bin","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].path","typeLabel":"string"},"code":{"type":"string","enum":["invalid_type","too_small","too_big","invalid_format","invalid_value","not_multiple_of","unrecognized_keys","invalid_union","invalid_key","invalid_element","custom"],"description":"Что не так: invalid_type — не тот тип или поле не передано; too_small / too_big — короче/меньше или длиннее/больше допустимого; invalid_format — неверный вид (почта, дата, шаблон); invalid_value — значения нет среди допустимых; not_multiple_of — не кратно; unrecognized_keys — лишние поля; invalid_union — не подходит ни один вид; invalid_key / invalid_element — неверный ключ или элемент; custom — своё правило ручки","example":"invalid_format","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Текст для человека по-русски — показать под полем","example":"БИН/ИИН — 12 цифр","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].message","typeLabel":"string"}},"required":["path","code","message"],"description":"Ошибка одного поля запроса","uniqueKey":"error.fields.items.[INDEX]","typeLabel":"object"},"description":"При code = validation_failed — ошибки по полям, в порядке проверки; у одного поля может быть несколько.","uniqueKey":"error.fields","typeLabel":"object[]"}},"required":["type","message"],"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.additionalProperties","typeLabel":"any"},"description":"Что пошло не так. Все 503 — с заголовком Retry-After (через сколько секунд повторить). Кроме описанных, у отдельных ручек бывают свои поля рядом с code (например status у wrong_status, state у wrong_state, reason у dialog_closed) — они описаны у этих ручек.","isRequired":true,"uniqueKey":"error","typeLabel":"object"},"request_id":{"oneOf":[{"type":"string","description":"Номер запроса (тот же, что в заголовке x-request-id). Показывать мелко рядом с ошибкой с кнопкой «скопировать»: по нему поддержка находит запрос в журнале. null — номер не успел появиться (очень ранний отказ).","example":"req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f","isRequired":true,"uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Номер запроса (тот же, что в заголовке x-request-id). Показывать мелко рядом с ошибкой с кнопкой «скопировать»: по нему поддержка находит запрос в журнале. null — номер не успел появиться (очень ранний отказ).","example":"req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f","isRequired":true,"uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"request_id","typeLabel":"string | null"}},"required":["type","error","request_id"],"description":"Тело любой ошибки API (статусы 4xx и 5xx): `{\"type\":\"error\",\"error\":{\"type\":\"…\",\"code\":\"…\",\"message\":\"…\"},\"request_id\":\"…\"}`. Интерфейс ветвится по error.type и error.code, человеку показывает error.message и request_id.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"error","error":{"type":"payment_required_error","message":"Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.","code":"balance_exhausted","permission":"proposals.approve","resets_at":"2026-11-01T19:00:00.000Z","allowed_methods":["email_otp"],"role":"\u003cstring>","permissions":["\u003cstring>"],"fields":[{"path":"bin","code":"invalid_format","message":"БИН/ИИН — 12 цифр"}]},"request_id":"req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f"}}},"exampleType":"generated"}},"headers":{"x-request-id":{"description":"Номер запроса (тот же, что request_id в теле ошибки) — назвать в обращении в поддержку. Его всегда создаёт сервер: присланный клиентом x-request-id номером не становится","schema":{"type":"string","example":"req_3f2a9c0d1e4b4c5d8e7f6a5b4c3d2e1f"}},"x-ratelimit-limit":{"description":"Только при входе по ключу API: сколько запросов можно в текущем окне — самый тесный предел из ключа и организации","schema":{"type":"integer"}},"x-ratelimit-remaining":{"description":"Только при входе по ключу API: сколько запросов осталось по этому пределу в текущем окне","schema":{"type":"integer"}},"x-ratelimit-reset":{"description":"Только при входе по ключу API: секунд до нового окна этого предела","schema":{"type":"integer"}}},"exampleType":"generated"},"5b4b3941-4cac-4b32-8efd-5a8e237ef686":{"description":"Тело запроса больше предела этого адреса (error.code = payload_too_large)","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["error"],"description":"Всегда «error»: так тело ошибки отличается от обычного ответа.","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request_error","authentication_error","payment_required_error","permission_error","not_found_error","conflict_error","gone_error","limit_error","api_error","unavailable_error"],"description":"Вид ошибки — по нему ветвится клиент (не по тексту message). Статус HTTP у вида один, кроме invalid_request_error:\n- `invalid_request_error` (400) — запрос неверен: поле не прошло проверку, неверный формат, действие сейчас недопустимо. Показать message рядом с формой; повтор без исправления не поможет. Обычно 400; 413 и 422 — у кодов, где это сказано в списке code.\n- `authentication_error` (401) — нет входа: сессия закончилась, cookie нет, ключ API неверен, отозван или истёк. Кабинет — отправить на страницу входа; по ключу — проверить ключ (см. code).\n- `payment_required_error` (402) — нужны деньги или решение владельца/админа организации: ждать бесполезно. Показать message и кнопку действия по code (оформить тариф, пополнить баланс, поднять потолок); без code — не оплачено подключение компании.\n- `permission_error` (403) — нельзя: не хватает права или роли, организация заблокирована, вход не тем способом. Показать message (в нём сказано, к кому обратиться); детали — в code и полях рядом.\n- `not_found_error` (404) — нет такого объекта — или он чужой: чужие организации, компании и записи тоже отвечают 404, чтобы не раскрывать, что они есть. Показать «не найдено» и вернуть к списку.\n- `conflict_error` (409) — состояние не позволяет: уже сделано, уже идёт другое действие, версия устарела. Перечитать объект, обновить экран и показать message.\n- `gone_error` (410) — объекта больше нет: разговор не найден или истёк (вопрос в чате, ответ на вопрос ИИ, подсчёт токенов — начать новый разговор), ход потерян при перезапуске сервера, ссылка привязки программы устарела или уже использована (code connector_link_gone). Повторять незачем.\n- `limit_error` (429) — предел: частота запросов, окно тарифа, число объектов или мест. Если есть заголовок Retry-After или resets_at — пройдёт само, показать, когда; иначе нужно освободить место (удалить лишнее) или сменить тариф.\n- `api_error` (500) — сбой на нашей стороне. Показать message и request_id (для поддержки); повторить позже.\n- `unavailable_error` (503) — временно недоступно (внешний сервис, ИИ, настройка сервера). Повторить позже; если повторяется — сообщить request_id в поддержку.","example":"payment_required_error","isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Готовый текст для человека по-русски: что случилось, что делать и к кому обратиться. Показывать как есть; не разбирать — формулировки меняются.","example":"Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"type":"string","description":"Уточнение вида: по нему выбирается действие интерфейса (кнопка «Пополнить», «Войти иначе»…). Нет поля — хватает type и message. Известные коды:\n- `sso_domain_taken` (409) — домен SSO уже подтверждён другой организацией\n- `sso_last_verified_domain` (409) — включён обязательный вход, а это последний подтверждённый домен — сначала выключить обязательный вход\n- `sso_login_required` (400) — включить обязательный вход можно только из сессии, открытой через SSO этой организации\n- `domain_verification_failed` (400) — запись DNS для домена не найдена или не совпала — проверить и повторить\n- `oidc_openid_scope_required` (400) — в scopes сервера входа OIDC нет openid — добавить её: без неё вход через SSO не пройдёт\n- `enterprise_only` (403) — возможность есть только на тарифе Enterprise\n- `groups_limit` (429) — достигнут предел групп в организации\n- `custom_roles_limit` (429) — достигнут предел своих ролей в организации\n- `group_managed_by_directory` (409) — группа из каталога: название и состав меняются только там\n- `group_member_not_in_workspace` (400) — в группу можно добавить только сотрудника этой организации\n- `role_above_ceiling` (400) — роль даёт права выше потолка организации\n- `unknown_model` (400) — такой модели нет — список в available_models\n- `price_required` (400) — админка, тариф целиком: у платного тарифа нужна цена (price)\n- `lago_rejected` (409) — админка, тариф целиком: Lago отказал по существу (4xx, текст Lago в message) — правила не изменены, повтор без правки не поможет\n- `price_mismatch` (400) — админка, тариф целиком: цена не сходится с правилами (место без per_seat, per_seat без цены места, цена у бесплатного)\n- `model_not_allowed` (403) — политика организации не разрешает эту модель, а подходящей разрешённой нет — админу дополнить список\n- `retention_too_short` (400) — срок хранения меньше наименьшего\n- `audit_export_range` (400) — неверный период выгрузки журнала: конец раньше начала или период слишком длинный\n- `compliance_disabled` (403) — адрес для проверок выключен — владелец включает его в настройке\n- `missing_credentials` (401) — нет ни cookie сессии, ни ключа API — войти или передать x-api-key\n- `link_revoked` (401) — вход в Tungo из 1С больше не действует (вышли, отключили на сайте, вошли в той же базе заново, компания или человек заблокированы) — 1С просит войти заново\n- `login_denied` (403) — вход из 1С отклонён на сайте Tungo — 1С показывает отказ\n- `code_expired` (410) — код входа из 1С устарел или уже использован — 1С просит новый код\n- `code_gone` (410) — код входа из 1С уже подтверждён, отклонён или устарел — на сайте подтверждать нечего\n- `invalid_api_key` (401) — ключ API неверен (опечатка или удалён)\n- `key_revoked` (401) — ключ API отозван (при правке ключа — 409 с тем же code: отозванный ключ не меняется)\n- `key_expired` (401) — срок ключа API истёк — сменить секрет (POST …/api-keys/{id}/roll: срок начнётся заново) или выпустить новый (при правке срока — 409 с тем же code: PATCH истёкший ключ не оживляет)\n- `key_disabled` (401) — ключ API выключен — включить может автор ключа или владелец организации (POST …/api-keys/{id}/enable)\n- `key_creator_lost_access` (401) — тот, кто выпустил ключ, больше не владелец/админ организации — ключ недействителен\n- `user_banned` (401) — вход в аккаунт закрыт администратором Tungo — только поддержка Tungo\n- `onboarding_unpaid` (402) — подключение компании к ИИ-бухгалтеру не оплачено (разовый платёж): владельцу/админу организации — «Оплатить» в настройках компании; остальным — сообщить им\n- `onboarding_pending` (402) — оплата подключения компании ещё проходит в банке — ИИ заработает после подтверждения; опрашивать состояние подключения\n- `no_active_plan` (402) — нет действующей подписки (не оформлена, закончилась, первая оплата не прошла или ждёт 3-D Secure). Владельцу/админу — кнопка в настройки оплаты; остальным — «обратитесь к владельцу организации». Что именно случилось — в message\n- `balance_exhausted` (402) — баланс доп. использования кончился. Владельцу/админу — «Пополнить баланс» или включить автопополнение; остальным — сообщить им\n- `workspace_cap_reached` (402) — достигнут месячный потолок доп. использования организации. resets_at — 1-е число следующего месяца, 00:00 по Алматы; раньше — если админ поднимет потолок\n- `report_busy` (429) — сейчас собирается много отчётов команды: повторить через время из Retry-After\n- `report_timeout` (503) — отчёт команды не успел собраться: сократить период или выбрать разбивку по месяцам\n- `company_cap_reached` (402) — достигнут месячный потолок доп. использования компании. Письмо владельцу и админам уже отправлено. resets_at — 1-е число; раньше — если админ поднимет потолок (PUT /v1/workspaces/{ws}/team/company-caps/{co})\n- `member_cap_reached` (402) — достигнут личный месячный потолок доп. использования сотрудника. resets_at — 1-е число; раньше — если админ поднимет его потолок\n- `key_cap_reached` (402) — достигнут месячный потолок расхода ключа API (или остаток меньше оценки одного вызова). resets_at — 1-е число\n- `platform_balance_exhausted` (402) — баланс платформы пуст: вызов по ключу или автоматизация не сделаны. Пополнить — POST /v1/workspaces/{ws}/platform/purchases или автопополнением\n- `platform_cap_reached` (402) — достигнут месячный потолок трат платформы. resets_at — 1-е число следующего месяца, 00:00 по Алматы; раньше — поднять потолок в PUT /v1/workspaces/{ws}/platform/account\n- `platform_disabled` (402) — платформа выключена в организации: вызовы по ключам и автоматизации остановлены. Включить — PUT /v1/workspaces/{ws}/platform/account\n- `free_plan_chat_only` (402) — бесплатный тариф: пачки из кабинета только на платных тарифах. Ключам API и автоматизациям тариф не нужен\n- `free_limit_unavailable` (402) — бесплатный лимит этой учётной записи не положен (проверка регистрации или решение администратора) — оформить тариф\n- `plan_company_limit` (402) — в организации уже столько компаний не в архиве, сколько разрешает тариф (max_companies в GET /v1/plans; limit и plan_code — в ответе): новую не завести и из архива не вернуть. Убрать лишнюю в архив или перейти на тариф больше\n- `effort_not_in_plan` (402) — поле effort в чате на тарифе без выбора усилия (max_effort тарифа null, например бесплатный): ход не начат. Прислать вопрос без effort или оформить платный тариф\n- `model_not_in_plan` (402) — модель сильнее потолка тарифа (plans.model_ceiling): вызов не сделан; более сильные модели — на платных тарифах\n- `missing_permission` (403) — не хватает права в компании (или у ключа API); какого — в поле permission\n- `login_method_not_allowed` (403) — организация пускает к своим данным только после входа другим способом; какими — в allowed_methods. Предложить выйти и войти так\n- `ip_not_allowed` (403) — ключ API не принимает запросы с этого адреса — поправить allowed_ips ключа (PATCH …/api-keys/{id}) или вызывать с разрешённого адреса\n- `key_write_limit` (403) — запись в 1С по ключу API — сверх его пределов (сумма на документ или в день, виды документов) или правило автоодобрения шире пределов ключа; в сообщении — что и на сколько\n- `human_only` (403) — это решение принимает только человек в кабинете Tungo, не ключ API: например, отклонить «не знаем, записан ли» на снимке базы без проверки 1С (confirm_unknown_write)\n- `autonomy_raise_requires_session` (403) — поднять уровень доверия ИИ или потолки компании можно только владельцу или админу организации из кабинета; ключом API — только понизить\n- `id_path_required` (400) — для автоодобрения по хуку задайте хуку id_path — путь к номеру операции в теле события: без него повтор доставки нельзя отличить от новой операции\n- `directbank_rule_exists` (400) — у компании уже есть сценарий с правилом для выписки DirectBank — правило выписки одно на компанию\n- `event_not_found` (404) — события нет в этой компании или оно удалено по сроку хранения — для пробного прогона выберите событие посвежее\n- `event_body_unavailable` (409) — тело события зашифровано, а ключ шифрования на сервере сменился — прогнать сценарий на нём нельзя\n- `scenario_steps_required` (409) — у сценария цепочка шагов, а в замене (PUT) нет ни steps, ни output: передайте steps явно, иначе замена молча убрала бы цепочку\n- `scenario_output_required` (409) — у сценария форма итога, а в замене (PUT) нет ни steps, ни output: передайте output явно (null — снять форму)\n- `automation_queue_full` (429) — у компании слишком много запусков в очереди: повторите позже (событие хука отправитель повторит сам)\n- `restarting` (503) — сервис перезапускается: новый ход не начат — повторите через Retry-After\n- `company_suspended` (403) — работа с компанией приостановлена (решение платформы или оплаты); карточка видна, работать, править и архивировать нельзя (архив — 409 с тем же code)\n- `company_archived` (403) — компания в архиве: карточка видна, работать с ней нельзя. Вернуть — POST /v1/companies/{company_id}/unarchive (владелец компании или владелец/админ организации)\n- `workspace_blocked` (403) — организация заблокирована администратором платформы — только поддержка Tungo\n- `untrusted_origin` (403) — запрос пришёл не со страницы Tungo (защита от подделки запросов) — открыть кабинет по обычному адресу; для /admin/* — только со страниц ADMIN_ORIGINS\n- `cors_not_supported` (403) — вызов API из чужого браузерного кода (CORS) не поддерживается: ключ API — секрет сервера\n- `api_keys_disabled_by_policy` (403) — политика организации запрещает ключи API\n- `owner_role_reserved` (403) — владельца компании назначает, меняет и снимает только владелец или админ организации\n- `role_above_yours` (403) — у выдаваемой (или снимаемой) роли есть права, которых нет у вас; роль — в поле role, лишние права — в permissions\n- `not_key_creator` (403) — менять компании, права, срок и секрет ключа, снимать и поднимать его пределы записи в 1С может только тот, кто его выпустил (ужесточить пределы может любой админ)\n- `transfer_wider_than_target` (403) — передать ключ нельзя: у нового владельца нет нужного права (или доступа) в одной из компаний ключа\n- `invalid_allowed_ips` (400) — в allowed_ips ключа — не IP-адрес и не подсеть CIDR; какая запись — в сообщении\n- `transfer_target_not_admin` (400) — передать ключ можно только владельцу или админу этой организации\n- `platform_model_not_allowed` (403) — модель сильнее потолка платформы (настройка platform.billing): вызов не сделан и ничего не списано\n- `managed_by_sso` (403) — удаление аккаунта: аккаунт ведёт организация (SSO или SCIM) — удаляет её администратор; организации — в workspaces\n- `fresh_session_required` (403) — удаление аккаунта без почты (Telegram): нужен свежий вход — выйти, войти снова и подтвердить\n- `api_key_not_allowed` (403) — действие только из кабинета (сессия), не по ключу API: удаление аккаунта\n- `not_own_key` (403) — по ключу API виден только расход самого этого ключа\n- `webhooks_not_in_plan` (403) — вебхуков нет в тарифе организации\n- `admin_2fa_required` (403) — админ-API: у администратора платформы нет второго фактора или эта сессия не подтверждена кодом приложения-аутентификатора (POST /v1/auth/two-factor/enable, затем verify-totp)\n- `two_factor_required` (403) — отключить второй фактор, показать его секрет или выпустить резервные коды — только после кода из приложения-аутентификатора в этой сессии\n- `webhooks_require_all_companies` (403) — вебхуки — только ключу на все компании организации (при выпуске ключа — 400 с тем же code)\n- `audit_requires_all_companies` (403) — журнал организации — только ключу на все компании организации\n- `policy_blocked` (403) — одобрение: организация не доверяет ИИ записывать такой документ этим способом (поле level — уровень доверия); одобрить по одному или поднять уровень\n- `onec_read_only` (403) — одобрение: у пользователя 1С из подключения нет права записи — дать права в 1С\n- `validation_failed` (400) — тело или параметры запроса не прошли проверку: что не так с каждым полем — в fields (путь, код, текст по-русски). Подсветить поля формы; общий message — над формой\n- `invalid_json` (400) — тело запроса — не JSON-объект\n- `personal_workspace` (400) — в личной организации нет сотрудников, приглашений и политик — нужна организация Team или Enterprise\n- `api_key_required` (400) — адрес только для запроса по ключу API\n- `email_code_unavailable` (400) — удаление аккаунта: у аккаунта нет почты для кода (вход через Telegram) — подтверждать свежим входом, без кода\n- `deletion_code_invalid` (400) — удаление аккаунта: неверный код из письма; сколько попыток осталось — attempts_left\n- `deletion_code_expired` (400) — удаление аккаунта: код истёк, попытки кончились или код не запрашивался — запросить новый (POST /v1/me/deletion/code)\n- `unsafe_url` (400) — адрес вебхука недопустим (внутренняя сеть, не HTTPS)\n- `idempotency_key_invalid` (400) — Idempotency-Key неверного вида\n- `payload_too_large` (413) — тело запроса (или события хука) больше допустимого; пределы — настройки платформы\n- `idempotency_key_reused` (422) — этот Idempotency-Key уже был у другого запроса — для нового действия нужен новый ключ\n- `has_blockers` (422) — одобрение: у предложения есть блокеры — сначала исправить их\n- `batch_too_large` (413) — одобрение пачкой: предложений больше предела (поля limit, requested) — разбить на части\n- `unknown_kind` (400) — настройки писем: такого вида уведомлений нет — взять список из GET /v1/me/notifications\n- `kind_locked` (400) — настройки писем: этот вид (безопасность и аккаунт) выключить нельзя — переключатель неактивен (locked)\n- `onec_rejected` (400) — одобрение: 1С отклонила документ (причина — в message): исправить в 1С или построить предложение заново\n- `proposal_not_found` (404) — предложения с таким id нет в компании\n- `export_link_expired` (404) — ссылка на архив выгрузки истекла или неверна — получить новую: GET /v1/me/export\n- `batch_not_found` (404) — одобрение пачкой: задания с таким batch_id нет (или в нём нет предложений)\n- `idempotency_in_progress` (409) — первый запрос с этим Idempotency-Key ещё выполняется — подождать и повторить, придёт тот же ответ\n- `idempotency_response_not_kept` (409) — запрос с этим Idempotency-Key уже выполнен, но копия ответа не хранится (в нём персональные данные): результат — по ссылке в ответе (dialog_url) или в списке; статус первого ответа — original_status\n- `idempotency_response_too_large` (409) — запрос с этим Idempotency-Key уже выполнен, но ответ слишком большой, чтобы повторить его целиком: результат — в списке; статус первого ответа — original_status\n- `sole_owner` (409) — удаление аккаунта: вы единственный владелец организации с другими участниками (workspaces) — передать владение (POST /v1/workspaces/{ws}/ownership) или удалить организацию\n- `account_deletion_in_progress` (409) — удаление аккаунта: фон уже стирает аккаунт — новый код и подтверждение не принимаются, отменить нельзя\n- `wrong_status` (409) — предложение уже не в том состоянии (поле status — нынешнее): обновить его\n- `wrong_state` (409) — запуск автоматизации уже не в том состоянии (поле state — нынешнее)\n- `dialog_closed` (409) — разговор закрыт (поле reason — почему): начать новый\n- `dialog_id_taken` (409) — разговор с таким dialog_id уже есть — для нового прислать другой id или не присылать его\n- `turn_in_progress` (409) — в разговоре уже идёт ход ИИ (поле turn — его номер): дождаться его конца или остановить\n- `turn_superseded` (409) — читаемый ход уже закончился и идёт следующий (поле turn) — читать его с начала\n- `dialog_changed` (409) — разговор только что изменился в другом окне или на другом сервере Tungo — открыть его заново (GET …/chat/{id}) и повторить\n- `already_answered` (409) — на этот вопрос ИИ уже ответили (поле turn — ход с ответом)\n- `question_stale` (409) — вопрос ИИ устарел (в разговоре уже другой вопрос или его нет) — обновить разговор\n- `dismissed` (409) — вопрос ИИ закрыт без ответа — написать обычное сообщение\n- `job_running` (409) — задание (пачка) ещё идёт — дождаться отчёта; поле batch_id\n- `payload_changed` (409) — одобрение: документ изменился после превью — построить предложение заново\n- `onec_conflict` (409) — одобрение: 1С отказала из-за конфликта (объект занят или изменён) — повторить позже\n- `onec_not_found` (409) — одобрение: в 1С нет объекта, на который ссылается документ — построить предложение заново\n- `plan_limit_reached` (429) — лимит окна тарифа исчерпан; resets_at и Retry-After — когда обновится. Показать время; если в message предложено доп. использование — дать кнопку включить\n- `rate_limited` (429) — слишком часто (по ключу API, уведомления ePay с одного адреса, попытки кода второго фактора) — подождать Retry-After секунд\n- `concurrent_turns_limit` (429) — по ключу API уже идёт предельное число ходов ИИ одновременно — дождаться окончания\n- `api_keys_limit` (429) — в организации предельное число действующих ключей API — отозвать ненужные\n- `webhook_endpoints_limit` (429) — предельное число адресов вебхуков — удалить ненужные\n- `export_too_soon` (429) — выгрузку данных можно запрашивать не чаще раза в сутки: next_request_at и Retry-After — когда можно снова\n- `hook_rate_limited` (429) — приём событий хука: больше automations.hook_events_per_minute в минуту — повторить через Retry-After секунд\n- `lago_unavailable` (503) — админка, тариф целиком: Lago не настроен или не ответил (сеть, 5xx) — правила не изменены, повторить позже\n- `model_price_missing` (503) — у модели ИИ не задана цена — сбой настройки платформы, ничего не списано; повторить позже\n- `data_export_disabled` (503) — выгрузка данных на сервере не настроена (поддержка Tungo)\n- `webhooks_disabled` (503) — вебхуки на сервере не настроены\n- `webhooks_unavailable` (503) — служба доставки вебхуков временно недоступна\n- `model_not_configured` (503) — сервис модели ИИ не настроен на сервере — повторить позже (Retry-After)\n- `write_unknown` (503) — одобрение: исход записи в 1С неизвестен (связь оборвалась) — проверить документ в 1С по метке (поле marker); повтор безопасен (retry_safe); слишком ранний повтор в 1С не пишет — подождать retry_after секунд (Retry-After)\n- `onec_unavailable` (503) — 1С сейчас не отвечает — повторить позже (Retry-After)\n- `onec_check_busy` (503) — проверка связи 1С: сервер сейчас проверяет слишком много подключений — повторить через Retry-After секунд\n- `onec_failed` (503) — записать документ в 1С не удалось по неизвестной причине — повторить позже\n- `journal_unavailable` (503) — журнал решений недоступен — пачка не одобрена, повторить позже\n- `hook_secret_unavailable` (503) — приём событий хука: секрет подписи сейчас не открыть — отправителю повторить доставку позже\n- `secret_box_missing` (503) — на сервере не задан ключ шифрования настроек — секрет подписи хука сохранить нельзя (поддержка Tungo)\n- `not_personal` (409) — перевод в команду: организация уже не личная — обновить экран\n- `subscription_blocks_conversion` (409) — перевод в команду: действует подписка для одного человека — сначала отменить её и дождаться конца периода\n- `subscription_kind_mismatch` (409) — админка: действующая подписка оформлена на другой вид организации — вид не меняется, пока она идёт\n- `enterprise_features_active` (409) — админка: у организации подключены SSO или SCIM — сначала отключить, потом снимать Enterprise\n- `too_many_members_for_personal` (409) — админка: в личной организации один человек — сначала убрать остальных участников\n- `open_debt` (409) — есть неоплаченный счёт — сначала оплатить; в плане удаления этот же код лежит в blockers\n- `active_work` (409) — в организации идут ходы ИИ или автоматизации — дождаться окончания и повторить; в плане удаления этот же код лежит в blockers\n- `deletion_already_scheduled` (409) — удаление организации уже запланировано — показать дату из плана\n- `deletion_purging` (409) — очистка организации уже идёт — отменить её нельзя\n- `workspace_deleting` (409) — админка: организация удаляется по просьбе владельца — блок удаления снимает только отмена удаления\n- `invitation_not_pending` (409) — приглашение принято, отозвано или истекло — письмо не отправить, пригласить заново\n- `last_owner` (409) — это последний владелец организации — сначала передать владение другому участнику\n- `seats_by_contract` (409) — места Enterprise — по договору, карта и докупка не работают: обратиться к менеджеру\n- `no_subscription` (409) — нет действующей подписки — сначала оформить тариф\n- `not_per_seat` (409) — этот тариф не считает оплату за место — докупка не нужна, предел мест показан в ответе GET …/seats\n- `subscription_ended` (409) — возобновление: период отменённой подписки уже закончился — ничего не списано, оформить тариф заново (повторный PUT — обычное оформление)\n- `subscription_busy` (409) — подписка уже меняется другим запросом (отмена или возобновление) — обновить экран через несколько секунд\n- `subscription_ending` (409) — подписка отменена и закончится в конце периода — места не докупаются и не сокращаются\n- `seats_unpaid_debt` (409) — подписка просрочена — сначала оплатить счёт; участники остаются, новых приглашать нельзя\n- `idempotency_conflict` (409) — докупка: этот ключ уже использован с другим числом мест — для новой покупки нужен новый ключ\n- `seat_quote_changed` (409) — докупка: сумма изменилась (другой день или новая цена), деньги не списаны — показать новую сумму из поля и спросить снова\n- `no_paid_seats` (409) — оплаченных мест ещё нет — сокращать нечего\n- `seats_below_occupied` (409) — занято больше мест, чем просите оставить — сначала убрать участников или отозвать приглашения\n- `not_enterprise` (409) — админка: места по договору есть только у Enterprise — сначала поставить вид\n- `per_seat_plan_change` (409) — смена тарифа с оплатой за место не делается сразу: Lago взял бы плату за места дважды. Отменить и оформить новый с конца периода\n- `confirm_name_mismatch` (400) — удаление организации: название введено неверно — ввести точно как в плане удаления\n- `below_min_seats` (400) — на этом тарифе мест меньше нельзя: минимум — min_seats тарифа\n- `seats_over_max` (400) — мест больше предела одной организации (team.limits.max_seats) — обратиться в поддержку\n- `seats_above_paid` (400) — PUT …/seats только сокращает; новые места — через POST …/seats с оплатой\n- `onec_check_running` (429) — проверка связи 1С уже идёт у этой компании, у вас (другая компания) или у двух других компаний организации — дождаться её итога и повторить (Retry-After)\n- `invitation_resend_too_soon` (429) — письмо с приглашением уже отправлено только что — подождать Retry-After секунд\n- `seats_exhausted` (429) — свободные места закончились: докупите места или освободите их, отозвав приглашение\n- `seat_price_unknown` (503) — цена места сейчас неизвестна (тариф не прочитан или настроен неверно), деньги не списаны — повторить позже\n- `otp_mail_failed` (503) — письмо с кодом входа не отправлено: попробуйте позже\n- `seat_period_unknown` (503) — не удалось сверить период подписки с биллингом: деньги не списаны, попробуйте позже\n\nНезнакомый code — вести себя по type.","example":"balance_exhausted","uniqueKey":"error.code","typeLabel":"string"},"permission":{"type":"string","description":"При code = missing_permission — какого права не хватает: права в компании (company.read, company.manage, company.members.manage, onec.connect, proposals.create, proposals.approve, chat.use, audit.read, automations.manage) или права только ключа API (automations.read, webhooks.manage). Показать «нужно право …» и предложить попросить админа (или выпустить ключ с этим правом).","example":"proposals.approve","uniqueKey":"error.permission","typeLabel":"string"},"resets_at":{"type":"string","format":"date-time","description":"Когда ограничение снимется само — ISO 8601, UTC. Есть у plan_limit_reached (конец окна тарифа) и у месячных потолков (workspace_cap_reached, company_cap_reached, member_cap_reached, key_cap_reached, platform_cap_reached — 1-е число, 00:00 по Алматы). Показать в местном времени: «Лимит обновится в 14:30». Нет поля — само не пройдёт.","example":"2026-11-01T19:00:00.000Z","uniqueKey":"error.resets_at","typeLabel":"string\u003cdate-time>"},"allowed_methods":{"type":"array","items":{"type":"string","enum":["email_otp","google","apple","telegram","sso"],"uniqueKey":"error.allowed_methods.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"При code = login_method_not_allowed — какими способами входа организация пускает к своим данным: email_otp — код из почты, google, apple, telegram, sso — SSO организации. Предложить выйти и войти одним из них.","uniqueKey":"error.allowed_methods","typeLabel":"enum\u003cstring>[]"},"role":{"type":"string","description":"При code = role_above_yours — ключ роли в компании, которую нельзя выдать или снять (например chief_accountant).","uniqueKey":"error.role","typeLabel":"string"},"permissions":{"type":"array","items":{"type":"string","uniqueKey":"error.permissions.items.[INDEX]","typeLabel":"string"},"description":"При code = role_above_yours — права этой роли, которых нет у того, кто выдаёт. Показать списком: «у роли есть права, которых нет у вас: …».","uniqueKey":"error.permissions","typeLabel":"string[]"},"fields":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"Путь к полю через точку, как в теле запроса или имени параметра: `name`, `lines.0.amount`. Пустая строка — всё тело (не объект, лишние поля).","example":"bin","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].path","typeLabel":"string"},"code":{"type":"string","enum":["invalid_type","too_small","too_big","invalid_format","invalid_value","not_multiple_of","unrecognized_keys","invalid_union","invalid_key","invalid_element","custom"],"description":"Что не так: invalid_type — не тот тип или поле не передано; too_small / too_big — короче/меньше или длиннее/больше допустимого; invalid_format — неверный вид (почта, дата, шаблон); invalid_value — значения нет среди допустимых; not_multiple_of — не кратно; unrecognized_keys — лишние поля; invalid_union — не подходит ни один вид; invalid_key / invalid_element — неверный ключ или элемент; custom — своё правило ручки","example":"invalid_format","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Текст для человека по-русски — показать под полем","example":"БИН/ИИН — 12 цифр","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].message","typeLabel":"string"}},"required":["path","code","message"],"description":"Ошибка одного поля запроса","uniqueKey":"error.fields.items.[INDEX]","typeLabel":"object"},"description":"При code = validation_failed — ошибки по полям, в порядке проверки; у одного поля может быть несколько.","uniqueKey":"error.fields","typeLabel":"object[]"}},"required":["type","message"],"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.additionalProperties","typeLabel":"any"},"description":"Что пошло не так. Все 503 — с заголовком Retry-After (через сколько секунд повторить). Кроме описанных, у отдельных ручек бывают свои поля рядом с code (например status у wrong_status, state у wrong_state, reason у dialog_closed) — они описаны у этих ручек.","isRequired":true,"uniqueKey":"error","typeLabel":"object"},"request_id":{"oneOf":[{"type":"string","description":"Номер запроса (тот же, что в заголовке x-request-id). Показывать мелко рядом с ошибкой с кнопкой «скопировать»: по нему поддержка находит запрос в журнале. null — номер не успел появиться (очень ранний отказ).","example":"req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f","isRequired":true,"uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Номер запроса (тот же, что в заголовке x-request-id). Показывать мелко рядом с ошибкой с кнопкой «скопировать»: по нему поддержка находит запрос в журнале. null — номер не успел появиться (очень ранний отказ).","example":"req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f","isRequired":true,"uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"request_id","typeLabel":"string | null"}},"required":["type","error","request_id"],"description":"Тело любой ошибки API (статусы 4xx и 5xx): `{\"type\":\"error\",\"error\":{\"type\":\"…\",\"code\":\"…\",\"message\":\"…\"},\"request_id\":\"…\"}`. Интерфейс ветвится по error.type и error.code, человеку показывает error.message и request_id.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"error","error":{"type":"payment_required_error","message":"Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.","code":"balance_exhausted","permission":"proposals.approve","resets_at":"2026-11-01T19:00:00.000Z","allowed_methods":["email_otp"],"role":"\u003cstring>","permissions":["\u003cstring>"],"fields":[{"path":"bin","code":"invalid_format","message":"БИН/ИИН — 12 цифр"}]},"request_id":"req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f"}}},"exampleType":"generated"}},"headers":{"x-request-id":{"description":"Номер запроса (тот же, что request_id в теле ошибки) — назвать в обращении в поддержку. Его всегда создаёт сервер: присланный клиентом x-request-id номером не становится","schema":{"type":"string","example":"req_3f2a9c0d1e4b4c5d8e7f6a5b4c3d2e1f"}},"x-ratelimit-limit":{"description":"Только при входе по ключу API: сколько запросов можно в текущем окне — самый тесный предел из ключа и организации","schema":{"type":"integer"}},"x-ratelimit-remaining":{"description":"Только при входе по ключу API: сколько запросов осталось по этому пределу в текущем окне","schema":{"type":"integer"}},"x-ratelimit-reset":{"description":"Только при входе по ключу API: секунд до нового окна этого предела","schema":{"type":"integer"}}},"exampleType":"generated"},"a22b230a-0518-46ac-92b9-691710480146":{"description":"Idempotency-Key уже использован для другого запроса (error.code = idempotency_key_reused)","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["error"],"description":"Всегда «error»: так тело ошибки отличается от обычного ответа.","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request_error","authentication_error","payment_required_error","permission_error","not_found_error","conflict_error","gone_error","limit_error","api_error","unavailable_error"],"description":"Вид ошибки — по нему ветвится клиент (не по тексту message). Статус HTTP у вида один, кроме invalid_request_error:\n- `invalid_request_error` (400) — запрос неверен: поле не прошло проверку, неверный формат, действие сейчас недопустимо. Показать message рядом с формой; повтор без исправления не поможет. Обычно 400; 413 и 422 — у кодов, где это сказано в списке code.\n- `authentication_error` (401) — нет входа: сессия закончилась, cookie нет, ключ API неверен, отозван или истёк. Кабинет — отправить на страницу входа; по ключу — проверить ключ (см. code).\n- `payment_required_error` (402) — нужны деньги или решение владельца/админа организации: ждать бесполезно. Показать message и кнопку действия по code (оформить тариф, пополнить баланс, поднять потолок); без code — не оплачено подключение компании.\n- `permission_error` (403) — нельзя: не хватает права или роли, организация заблокирована, вход не тем способом. Показать message (в нём сказано, к кому обратиться); детали — в code и полях рядом.\n- `not_found_error` (404) — нет такого объекта — или он чужой: чужие организации, компании и записи тоже отвечают 404, чтобы не раскрывать, что они есть. Показать «не найдено» и вернуть к списку.\n- `conflict_error` (409) — состояние не позволяет: уже сделано, уже идёт другое действие, версия устарела. Перечитать объект, обновить экран и показать message.\n- `gone_error` (410) — объекта больше нет: разговор не найден или истёк (вопрос в чате, ответ на вопрос ИИ, подсчёт токенов — начать новый разговор), ход потерян при перезапуске сервера, ссылка привязки программы устарела или уже использована (code connector_link_gone). Повторять незачем.\n- `limit_error` (429) — предел: частота запросов, окно тарифа, число объектов или мест. Если есть заголовок Retry-After или resets_at — пройдёт само, показать, когда; иначе нужно освободить место (удалить лишнее) или сменить тариф.\n- `api_error` (500) — сбой на нашей стороне. Показать message и request_id (для поддержки); повторить позже.\n- `unavailable_error` (503) — временно недоступно (внешний сервис, ИИ, настройка сервера). Повторить позже; если повторяется — сообщить request_id в поддержку.","example":"payment_required_error","isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Готовый текст для человека по-русски: что случилось, что делать и к кому обратиться. Показывать как есть; не разбирать — формулировки меняются.","example":"Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"type":"string","description":"Уточнение вида: по нему выбирается действие интерфейса (кнопка «Пополнить», «Войти иначе»…). Нет поля — хватает type и message. Известные коды:\n- `sso_domain_taken` (409) — домен SSO уже подтверждён другой организацией\n- `sso_last_verified_domain` (409) — включён обязательный вход, а это последний подтверждённый домен — сначала выключить обязательный вход\n- `sso_login_required` (400) — включить обязательный вход можно только из сессии, открытой через SSO этой организации\n- `domain_verification_failed` (400) — запись DNS для домена не найдена или не совпала — проверить и повторить\n- `oidc_openid_scope_required` (400) — в scopes сервера входа OIDC нет openid — добавить её: без неё вход через SSO не пройдёт\n- `enterprise_only` (403) — возможность есть только на тарифе Enterprise\n- `groups_limit` (429) — достигнут предел групп в организации\n- `custom_roles_limit` (429) — достигнут предел своих ролей в организации\n- `group_managed_by_directory` (409) — группа из каталога: название и состав меняются только там\n- `group_member_not_in_workspace` (400) — в группу можно добавить только сотрудника этой организации\n- `role_above_ceiling` (400) — роль даёт права выше потолка организации\n- `unknown_model` (400) — такой модели нет — список в available_models\n- `price_required` (400) — админка, тариф целиком: у платного тарифа нужна цена (price)\n- `lago_rejected` (409) — админка, тариф целиком: Lago отказал по существу (4xx, текст Lago в message) — правила не изменены, повтор без правки не поможет\n- `price_mismatch` (400) — админка, тариф целиком: цена не сходится с правилами (место без per_seat, per_seat без цены места, цена у бесплатного)\n- `model_not_allowed` (403) — политика организации не разрешает эту модель, а подходящей разрешённой нет — админу дополнить список\n- `retention_too_short` (400) — срок хранения меньше наименьшего\n- `audit_export_range` (400) — неверный период выгрузки журнала: конец раньше начала или период слишком длинный\n- `compliance_disabled` (403) — адрес для проверок выключен — владелец включает его в настройке\n- `missing_credentials` (401) — нет ни cookie сессии, ни ключа API — войти или передать x-api-key\n- `link_revoked` (401) — вход в Tungo из 1С больше не действует (вышли, отключили на сайте, вошли в той же базе заново, компания или человек заблокированы) — 1С просит войти заново\n- `login_denied` (403) — вход из 1С отклонён на сайте Tungo — 1С показывает отказ\n- `code_expired` (410) — код входа из 1С устарел или уже использован — 1С просит новый код\n- `code_gone` (410) — код входа из 1С уже подтверждён, отклонён или устарел — на сайте подтверждать нечего\n- `invalid_api_key` (401) — ключ API неверен (опечатка или удалён)\n- `key_revoked` (401) — ключ API отозван (при правке ключа — 409 с тем же code: отозванный ключ не меняется)\n- `key_expired` (401) — срок ключа API истёк — сменить секрет (POST …/api-keys/{id}/roll: срок начнётся заново) или выпустить новый (при правке срока — 409 с тем же code: PATCH истёкший ключ не оживляет)\n- `key_disabled` (401) — ключ API выключен — включить может автор ключа или владелец организации (POST …/api-keys/{id}/enable)\n- `key_creator_lost_access` (401) — тот, кто выпустил ключ, больше не владелец/админ организации — ключ недействителен\n- `user_banned` (401) — вход в аккаунт закрыт администратором Tungo — только поддержка Tungo\n- `onboarding_unpaid` (402) — подключение компании к ИИ-бухгалтеру не оплачено (разовый платёж): владельцу/админу организации — «Оплатить» в настройках компании; остальным — сообщить им\n- `onboarding_pending` (402) — оплата подключения компании ещё проходит в банке — ИИ заработает после подтверждения; опрашивать состояние подключения\n- `no_active_plan` (402) — нет действующей подписки (не оформлена, закончилась, первая оплата не прошла или ждёт 3-D Secure). Владельцу/админу — кнопка в настройки оплаты; остальным — «обратитесь к владельцу организации». Что именно случилось — в message\n- `balance_exhausted` (402) — баланс доп. использования кончился. Владельцу/админу — «Пополнить баланс» или включить автопополнение; остальным — сообщить им\n- `workspace_cap_reached` (402) — достигнут месячный потолок доп. использования организации. resets_at — 1-е число следующего месяца, 00:00 по Алматы; раньше — если админ поднимет потолок\n- `report_busy` (429) — сейчас собирается много отчётов команды: повторить через время из Retry-After\n- `report_timeout` (503) — отчёт команды не успел собраться: сократить период или выбрать разбивку по месяцам\n- `company_cap_reached` (402) — достигнут месячный потолок доп. использования компании. Письмо владельцу и админам уже отправлено. resets_at — 1-е число; раньше — если админ поднимет потолок (PUT /v1/workspaces/{ws}/team/company-caps/{co})\n- `member_cap_reached` (402) — достигнут личный месячный потолок доп. использования сотрудника. resets_at — 1-е число; раньше — если админ поднимет его потолок\n- `key_cap_reached` (402) — достигнут месячный потолок расхода ключа API (или остаток меньше оценки одного вызова). resets_at — 1-е число\n- `platform_balance_exhausted` (402) — баланс платформы пуст: вызов по ключу или автоматизация не сделаны. Пополнить — POST /v1/workspaces/{ws}/platform/purchases или автопополнением\n- `platform_cap_reached` (402) — достигнут месячный потолок трат платформы. resets_at — 1-е число следующего месяца, 00:00 по Алматы; раньше — поднять потолок в PUT /v1/workspaces/{ws}/platform/account\n- `platform_disabled` (402) — платформа выключена в организации: вызовы по ключам и автоматизации остановлены. Включить — PUT /v1/workspaces/{ws}/platform/account\n- `free_plan_chat_only` (402) — бесплатный тариф: пачки из кабинета только на платных тарифах. Ключам API и автоматизациям тариф не нужен\n- `free_limit_unavailable` (402) — бесплатный лимит этой учётной записи не положен (проверка регистрации или решение администратора) — оформить тариф\n- `plan_company_limit` (402) — в организации уже столько компаний не в архиве, сколько разрешает тариф (max_companies в GET /v1/plans; limit и plan_code — в ответе): новую не завести и из архива не вернуть. Убрать лишнюю в архив или перейти на тариф больше\n- `effort_not_in_plan` (402) — поле effort в чате на тарифе без выбора усилия (max_effort тарифа null, например бесплатный): ход не начат. Прислать вопрос без effort или оформить платный тариф\n- `model_not_in_plan` (402) — модель сильнее потолка тарифа (plans.model_ceiling): вызов не сделан; более сильные модели — на платных тарифах\n- `missing_permission` (403) — не хватает права в компании (или у ключа API); какого — в поле permission\n- `login_method_not_allowed` (403) — организация пускает к своим данным только после входа другим способом; какими — в allowed_methods. Предложить выйти и войти так\n- `ip_not_allowed` (403) — ключ API не принимает запросы с этого адреса — поправить allowed_ips ключа (PATCH …/api-keys/{id}) или вызывать с разрешённого адреса\n- `key_write_limit` (403) — запись в 1С по ключу API — сверх его пределов (сумма на документ или в день, виды документов) или правило автоодобрения шире пределов ключа; в сообщении — что и на сколько\n- `human_only` (403) — это решение принимает только человек в кабинете Tungo, не ключ API: например, отклонить «не знаем, записан ли» на снимке базы без проверки 1С (confirm_unknown_write)\n- `autonomy_raise_requires_session` (403) — поднять уровень доверия ИИ или потолки компании можно только владельцу или админу организации из кабинета; ключом API — только понизить\n- `id_path_required` (400) — для автоодобрения по хуку задайте хуку id_path — путь к номеру операции в теле события: без него повтор доставки нельзя отличить от новой операции\n- `directbank_rule_exists` (400) — у компании уже есть сценарий с правилом для выписки DirectBank — правило выписки одно на компанию\n- `event_not_found` (404) — события нет в этой компании или оно удалено по сроку хранения — для пробного прогона выберите событие посвежее\n- `event_body_unavailable` (409) — тело события зашифровано, а ключ шифрования на сервере сменился — прогнать сценарий на нём нельзя\n- `scenario_steps_required` (409) — у сценария цепочка шагов, а в замене (PUT) нет ни steps, ни output: передайте steps явно, иначе замена молча убрала бы цепочку\n- `scenario_output_required` (409) — у сценария форма итога, а в замене (PUT) нет ни steps, ни output: передайте output явно (null — снять форму)\n- `automation_queue_full` (429) — у компании слишком много запусков в очереди: повторите позже (событие хука отправитель повторит сам)\n- `restarting` (503) — сервис перезапускается: новый ход не начат — повторите через Retry-After\n- `company_suspended` (403) — работа с компанией приостановлена (решение платформы или оплаты); карточка видна, работать, править и архивировать нельзя (архив — 409 с тем же code)\n- `company_archived` (403) — компания в архиве: карточка видна, работать с ней нельзя. Вернуть — POST /v1/companies/{company_id}/unarchive (владелец компании или владелец/админ организации)\n- `workspace_blocked` (403) — организация заблокирована администратором платформы — только поддержка Tungo\n- `untrusted_origin` (403) — запрос пришёл не со страницы Tungo (защита от подделки запросов) — открыть кабинет по обычному адресу; для /admin/* — только со страниц ADMIN_ORIGINS\n- `cors_not_supported` (403) — вызов API из чужого браузерного кода (CORS) не поддерживается: ключ API — секрет сервера\n- `api_keys_disabled_by_policy` (403) — политика организации запрещает ключи API\n- `owner_role_reserved` (403) — владельца компании назначает, меняет и снимает только владелец или админ организации\n- `role_above_yours` (403) — у выдаваемой (или снимаемой) роли есть права, которых нет у вас; роль — в поле role, лишние права — в permissions\n- `not_key_creator` (403) — менять компании, права, срок и секрет ключа, снимать и поднимать его пределы записи в 1С может только тот, кто его выпустил (ужесточить пределы может любой админ)\n- `transfer_wider_than_target` (403) — передать ключ нельзя: у нового владельца нет нужного права (или доступа) в одной из компаний ключа\n- `invalid_allowed_ips` (400) — в allowed_ips ключа — не IP-адрес и не подсеть CIDR; какая запись — в сообщении\n- `transfer_target_not_admin` (400) — передать ключ можно только владельцу или админу этой организации\n- `platform_model_not_allowed` (403) — модель сильнее потолка платформы (настройка platform.billing): вызов не сделан и ничего не списано\n- `managed_by_sso` (403) — удаление аккаунта: аккаунт ведёт организация (SSO или SCIM) — удаляет её администратор; организации — в workspaces\n- `fresh_session_required` (403) — удаление аккаунта без почты (Telegram): нужен свежий вход — выйти, войти снова и подтвердить\n- `api_key_not_allowed` (403) — действие только из кабинета (сессия), не по ключу API: удаление аккаунта\n- `not_own_key` (403) — по ключу API виден только расход самого этого ключа\n- `webhooks_not_in_plan` (403) — вебхуков нет в тарифе организации\n- `admin_2fa_required` (403) — админ-API: у администратора платформы нет второго фактора или эта сессия не подтверждена кодом приложения-аутентификатора (POST /v1/auth/two-factor/enable, затем verify-totp)\n- `two_factor_required` (403) — отключить второй фактор, показать его секрет или выпустить резервные коды — только после кода из приложения-аутентификатора в этой сессии\n- `webhooks_require_all_companies` (403) — вебхуки — только ключу на все компании организации (при выпуске ключа — 400 с тем же code)\n- `audit_requires_all_companies` (403) — журнал организации — только ключу на все компании организации\n- `policy_blocked` (403) — одобрение: организация не доверяет ИИ записывать такой документ этим способом (поле level — уровень доверия); одобрить по одному или поднять уровень\n- `onec_read_only` (403) — одобрение: у пользователя 1С из подключения нет права записи — дать права в 1С\n- `validation_failed` (400) — тело или параметры запроса не прошли проверку: что не так с каждым полем — в fields (путь, код, текст по-русски). Подсветить поля формы; общий message — над формой\n- `invalid_json` (400) — тело запроса — не JSON-объект\n- `personal_workspace` (400) — в личной организации нет сотрудников, приглашений и политик — нужна организация Team или Enterprise\n- `api_key_required` (400) — адрес только для запроса по ключу API\n- `email_code_unavailable` (400) — удаление аккаунта: у аккаунта нет почты для кода (вход через Telegram) — подтверждать свежим входом, без кода\n- `deletion_code_invalid` (400) — удаление аккаунта: неверный код из письма; сколько попыток осталось — attempts_left\n- `deletion_code_expired` (400) — удаление аккаунта: код истёк, попытки кончились или код не запрашивался — запросить новый (POST /v1/me/deletion/code)\n- `unsafe_url` (400) — адрес вебхука недопустим (внутренняя сеть, не HTTPS)\n- `idempotency_key_invalid` (400) — Idempotency-Key неверного вида\n- `payload_too_large` (413) — тело запроса (или события хука) больше допустимого; пределы — настройки платформы\n- `idempotency_key_reused` (422) — этот Idempotency-Key уже был у другого запроса — для нового действия нужен новый ключ\n- `has_blockers` (422) — одобрение: у предложения есть блокеры — сначала исправить их\n- `batch_too_large` (413) — одобрение пачкой: предложений больше предела (поля limit, requested) — разбить на части\n- `unknown_kind` (400) — настройки писем: такого вида уведомлений нет — взять список из GET /v1/me/notifications\n- `kind_locked` (400) — настройки писем: этот вид (безопасность и аккаунт) выключить нельзя — переключатель неактивен (locked)\n- `onec_rejected` (400) — одобрение: 1С отклонила документ (причина — в message): исправить в 1С или построить предложение заново\n- `proposal_not_found` (404) — предложения с таким id нет в компании\n- `export_link_expired` (404) — ссылка на архив выгрузки истекла или неверна — получить новую: GET /v1/me/export\n- `batch_not_found` (404) — одобрение пачкой: задания с таким batch_id нет (или в нём нет предложений)\n- `idempotency_in_progress` (409) — первый запрос с этим Idempotency-Key ещё выполняется — подождать и повторить, придёт тот же ответ\n- `idempotency_response_not_kept` (409) — запрос с этим Idempotency-Key уже выполнен, но копия ответа не хранится (в нём персональные данные): результат — по ссылке в ответе (dialog_url) или в списке; статус первого ответа — original_status\n- `idempotency_response_too_large` (409) — запрос с этим Idempotency-Key уже выполнен, но ответ слишком большой, чтобы повторить его целиком: результат — в списке; статус первого ответа — original_status\n- `sole_owner` (409) — удаление аккаунта: вы единственный владелец организации с другими участниками (workspaces) — передать владение (POST /v1/workspaces/{ws}/ownership) или удалить организацию\n- `account_deletion_in_progress` (409) — удаление аккаунта: фон уже стирает аккаунт — новый код и подтверждение не принимаются, отменить нельзя\n- `wrong_status` (409) — предложение уже не в том состоянии (поле status — нынешнее): обновить его\n- `wrong_state` (409) — запуск автоматизации уже не в том состоянии (поле state — нынешнее)\n- `dialog_closed` (409) — разговор закрыт (поле reason — почему): начать новый\n- `dialog_id_taken` (409) — разговор с таким dialog_id уже есть — для нового прислать другой id или не присылать его\n- `turn_in_progress` (409) — в разговоре уже идёт ход ИИ (поле turn — его номер): дождаться его конца или остановить\n- `turn_superseded` (409) — читаемый ход уже закончился и идёт следующий (поле turn) — читать его с начала\n- `dialog_changed` (409) — разговор только что изменился в другом окне или на другом сервере Tungo — открыть его заново (GET …/chat/{id}) и повторить\n- `already_answered` (409) — на этот вопрос ИИ уже ответили (поле turn — ход с ответом)\n- `question_stale` (409) — вопрос ИИ устарел (в разговоре уже другой вопрос или его нет) — обновить разговор\n- `dismissed` (409) — вопрос ИИ закрыт без ответа — написать обычное сообщение\n- `job_running` (409) — задание (пачка) ещё идёт — дождаться отчёта; поле batch_id\n- `payload_changed` (409) — одобрение: документ изменился после превью — построить предложение заново\n- `onec_conflict` (409) — одобрение: 1С отказала из-за конфликта (объект занят или изменён) — повторить позже\n- `onec_not_found` (409) — одобрение: в 1С нет объекта, на который ссылается документ — построить предложение заново\n- `plan_limit_reached` (429) — лимит окна тарифа исчерпан; resets_at и Retry-After — когда обновится. Показать время; если в message предложено доп. использование — дать кнопку включить\n- `rate_limited` (429) — слишком часто (по ключу API, уведомления ePay с одного адреса, попытки кода второго фактора) — подождать Retry-After секунд\n- `concurrent_turns_limit` (429) — по ключу API уже идёт предельное число ходов ИИ одновременно — дождаться окончания\n- `api_keys_limit` (429) — в организации предельное число действующих ключей API — отозвать ненужные\n- `webhook_endpoints_limit` (429) — предельное число адресов вебхуков — удалить ненужные\n- `export_too_soon` (429) — выгрузку данных можно запрашивать не чаще раза в сутки: next_request_at и Retry-After — когда можно снова\n- `hook_rate_limited` (429) — приём событий хука: больше automations.hook_events_per_minute в минуту — повторить через Retry-After секунд\n- `lago_unavailable` (503) — админка, тариф целиком: Lago не настроен или не ответил (сеть, 5xx) — правила не изменены, повторить позже\n- `model_price_missing` (503) — у модели ИИ не задана цена — сбой настройки платформы, ничего не списано; повторить позже\n- `data_export_disabled` (503) — выгрузка данных на сервере не настроена (поддержка Tungo)\n- `webhooks_disabled` (503) — вебхуки на сервере не настроены\n- `webhooks_unavailable` (503) — служба доставки вебхуков временно недоступна\n- `model_not_configured` (503) — сервис модели ИИ не настроен на сервере — повторить позже (Retry-After)\n- `write_unknown` (503) — одобрение: исход записи в 1С неизвестен (связь оборвалась) — проверить документ в 1С по метке (поле marker); повтор безопасен (retry_safe); слишком ранний повтор в 1С не пишет — подождать retry_after секунд (Retry-After)\n- `onec_unavailable` (503) — 1С сейчас не отвечает — повторить позже (Retry-After)\n- `onec_check_busy` (503) — проверка связи 1С: сервер сейчас проверяет слишком много подключений — повторить через Retry-After секунд\n- `onec_failed` (503) — записать документ в 1С не удалось по неизвестной причине — повторить позже\n- `journal_unavailable` (503) — журнал решений недоступен — пачка не одобрена, повторить позже\n- `hook_secret_unavailable` (503) — приём событий хука: секрет подписи сейчас не открыть — отправителю повторить доставку позже\n- `secret_box_missing` (503) — на сервере не задан ключ шифрования настроек — секрет подписи хука сохранить нельзя (поддержка Tungo)\n- `not_personal` (409) — перевод в команду: организация уже не личная — обновить экран\n- `subscription_blocks_conversion` (409) — перевод в команду: действует подписка для одного человека — сначала отменить её и дождаться конца периода\n- `subscription_kind_mismatch` (409) — админка: действующая подписка оформлена на другой вид организации — вид не меняется, пока она идёт\n- `enterprise_features_active` (409) — админка: у организации подключены SSO или SCIM — сначала отключить, потом снимать Enterprise\n- `too_many_members_for_personal` (409) — админка: в личной организации один человек — сначала убрать остальных участников\n- `open_debt` (409) — есть неоплаченный счёт — сначала оплатить; в плане удаления этот же код лежит в blockers\n- `active_work` (409) — в организации идут ходы ИИ или автоматизации — дождаться окончания и повторить; в плане удаления этот же код лежит в blockers\n- `deletion_already_scheduled` (409) — удаление организации уже запланировано — показать дату из плана\n- `deletion_purging` (409) — очистка организации уже идёт — отменить её нельзя\n- `workspace_deleting` (409) — админка: организация удаляется по просьбе владельца — блок удаления снимает только отмена удаления\n- `invitation_not_pending` (409) — приглашение принято, отозвано или истекло — письмо не отправить, пригласить заново\n- `last_owner` (409) — это последний владелец организации — сначала передать владение другому участнику\n- `seats_by_contract` (409) — места Enterprise — по договору, карта и докупка не работают: обратиться к менеджеру\n- `no_subscription` (409) — нет действующей подписки — сначала оформить тариф\n- `not_per_seat` (409) — этот тариф не считает оплату за место — докупка не нужна, предел мест показан в ответе GET …/seats\n- `subscription_ended` (409) — возобновление: период отменённой подписки уже закончился — ничего не списано, оформить тариф заново (повторный PUT — обычное оформление)\n- `subscription_busy` (409) — подписка уже меняется другим запросом (отмена или возобновление) — обновить экран через несколько секунд\n- `subscription_ending` (409) — подписка отменена и закончится в конце периода — места не докупаются и не сокращаются\n- `seats_unpaid_debt` (409) — подписка просрочена — сначала оплатить счёт; участники остаются, новых приглашать нельзя\n- `idempotency_conflict` (409) — докупка: этот ключ уже использован с другим числом мест — для новой покупки нужен новый ключ\n- `seat_quote_changed` (409) — докупка: сумма изменилась (другой день или новая цена), деньги не списаны — показать новую сумму из поля и спросить снова\n- `no_paid_seats` (409) — оплаченных мест ещё нет — сокращать нечего\n- `seats_below_occupied` (409) — занято больше мест, чем просите оставить — сначала убрать участников или отозвать приглашения\n- `not_enterprise` (409) — админка: места по договору есть только у Enterprise — сначала поставить вид\n- `per_seat_plan_change` (409) — смена тарифа с оплатой за место не делается сразу: Lago взял бы плату за места дважды. Отменить и оформить новый с конца периода\n- `confirm_name_mismatch` (400) — удаление организации: название введено неверно — ввести точно как в плане удаления\n- `below_min_seats` (400) — на этом тарифе мест меньше нельзя: минимум — min_seats тарифа\n- `seats_over_max` (400) — мест больше предела одной организации (team.limits.max_seats) — обратиться в поддержку\n- `seats_above_paid` (400) — PUT …/seats только сокращает; новые места — через POST …/seats с оплатой\n- `onec_check_running` (429) — проверка связи 1С уже идёт у этой компании, у вас (другая компания) или у двух других компаний организации — дождаться её итога и повторить (Retry-After)\n- `invitation_resend_too_soon` (429) — письмо с приглашением уже отправлено только что — подождать Retry-After секунд\n- `seats_exhausted` (429) — свободные места закончились: докупите места или освободите их, отозвав приглашение\n- `seat_price_unknown` (503) — цена места сейчас неизвестна (тариф не прочитан или настроен неверно), деньги не списаны — повторить позже\n- `otp_mail_failed` (503) — письмо с кодом входа не отправлено: попробуйте позже\n- `seat_period_unknown` (503) — не удалось сверить период подписки с биллингом: деньги не списаны, попробуйте позже\n\nНезнакомый code — вести себя по type.","example":"balance_exhausted","uniqueKey":"error.code","typeLabel":"string"},"permission":{"type":"string","description":"При code = missing_permission — какого права не хватает: права в компании (company.read, company.manage, company.members.manage, onec.connect, proposals.create, proposals.approve, chat.use, audit.read, automations.manage) или права только ключа API (automations.read, webhooks.manage). Показать «нужно право …» и предложить попросить админа (или выпустить ключ с этим правом).","example":"proposals.approve","uniqueKey":"error.permission","typeLabel":"string"},"resets_at":{"type":"string","format":"date-time","description":"Когда ограничение снимется само — ISO 8601, UTC. Есть у plan_limit_reached (конец окна тарифа) и у месячных потолков (workspace_cap_reached, company_cap_reached, member_cap_reached, key_cap_reached, platform_cap_reached — 1-е число, 00:00 по Алматы). Показать в местном времени: «Лимит обновится в 14:30». Нет поля — само не пройдёт.","example":"2026-11-01T19:00:00.000Z","uniqueKey":"error.resets_at","typeLabel":"string\u003cdate-time>"},"allowed_methods":{"type":"array","items":{"type":"string","enum":["email_otp","google","apple","telegram","sso"],"uniqueKey":"error.allowed_methods.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"При code = login_method_not_allowed — какими способами входа организация пускает к своим данным: email_otp — код из почты, google, apple, telegram, sso — SSO организации. Предложить выйти и войти одним из них.","uniqueKey":"error.allowed_methods","typeLabel":"enum\u003cstring>[]"},"role":{"type":"string","description":"При code = role_above_yours — ключ роли в компании, которую нельзя выдать или снять (например chief_accountant).","uniqueKey":"error.role","typeLabel":"string"},"permissions":{"type":"array","items":{"type":"string","uniqueKey":"error.permissions.items.[INDEX]","typeLabel":"string"},"description":"При code = role_above_yours — права этой роли, которых нет у того, кто выдаёт. Показать списком: «у роли есть права, которых нет у вас: …».","uniqueKey":"error.permissions","typeLabel":"string[]"},"fields":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"Путь к полю через точку, как в теле запроса или имени параметра: `name`, `lines.0.amount`. Пустая строка — всё тело (не объект, лишние поля).","example":"bin","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].path","typeLabel":"string"},"code":{"type":"string","enum":["invalid_type","too_small","too_big","invalid_format","invalid_value","not_multiple_of","unrecognized_keys","invalid_union","invalid_key","invalid_element","custom"],"description":"Что не так: invalid_type — не тот тип или поле не передано; too_small / too_big — короче/меньше или длиннее/больше допустимого; invalid_format — неверный вид (почта, дата, шаблон); invalid_value — значения нет среди допустимых; not_multiple_of — не кратно; unrecognized_keys — лишние поля; invalid_union — не подходит ни один вид; invalid_key / invalid_element — неверный ключ или элемент; custom — своё правило ручки","example":"invalid_format","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Текст для человека по-русски — показать под полем","example":"БИН/ИИН — 12 цифр","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].message","typeLabel":"string"}},"required":["path","code","message"],"description":"Ошибка одного поля запроса","uniqueKey":"error.fields.items.[INDEX]","typeLabel":"object"},"description":"При code = validation_failed — ошибки по полям, в порядке проверки; у одного поля может быть несколько.","uniqueKey":"error.fields","typeLabel":"object[]"}},"required":["type","message"],"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.additionalProperties","typeLabel":"any"},"description":"Что пошло не так. Все 503 — с заголовком Retry-After (через сколько секунд повторить). Кроме описанных, у отдельных ручек бывают свои поля рядом с code (например status у wrong_status, state у wrong_state, reason у dialog_closed) — они описаны у этих ручек.","isRequired":true,"uniqueKey":"error","typeLabel":"object"},"request_id":{"oneOf":[{"type":"string","description":"Номер запроса (тот же, что в заголовке x-request-id). Показывать мелко рядом с ошибкой с кнопкой «скопировать»: по нему поддержка находит запрос в журнале. null — номер не успел появиться (очень ранний отказ).","example":"req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f","isRequired":true,"uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Номер запроса (тот же, что в заголовке x-request-id). Показывать мелко рядом с ошибкой с кнопкой «скопировать»: по нему поддержка находит запрос в журнале. null — номер не успел появиться (очень ранний отказ).","example":"req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f","isRequired":true,"uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"request_id","typeLabel":"string | null"}},"required":["type","error","request_id"],"description":"Тело любой ошибки API (статусы 4xx и 5xx): `{\"type\":\"error\",\"error\":{\"type\":\"…\",\"code\":\"…\",\"message\":\"…\"},\"request_id\":\"…\"}`. Интерфейс ветвится по error.type и error.code, человеку показывает error.message и request_id.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"error","error":{"type":"payment_required_error","message":"Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.","code":"balance_exhausted","permission":"proposals.approve","resets_at":"2026-11-01T19:00:00.000Z","allowed_methods":["email_otp"],"role":"\u003cstring>","permissions":["\u003cstring>"],"fields":[{"path":"bin","code":"invalid_format","message":"БИН/ИИН — 12 цифр"}]},"request_id":"req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f"}}},"exampleType":"generated"}},"headers":{"x-request-id":{"description":"Номер запроса (тот же, что request_id в теле ошибки) — назвать в обращении в поддержку. Его всегда создаёт сервер: присланный клиентом x-request-id номером не становится","schema":{"type":"string","example":"req_3f2a9c0d1e4b4c5d8e7f6a5b4c3d2e1f"}},"x-ratelimit-limit":{"description":"Только при входе по ключу API: сколько запросов можно в текущем окне — самый тесный предел из ключа и организации","schema":{"type":"integer"}},"x-ratelimit-remaining":{"description":"Только при входе по ключу API: сколько запросов осталось по этому пределу в текущем окне","schema":{"type":"integer"}},"x-ratelimit-reset":{"description":"Только при входе по ключу API: секунд до нового окна этого предела","schema":{"type":"integer"}}},"exampleType":"generated"},"13535d10-66f3-4992-9424-ffbbddc4a640":{"description":"Предел (частота, окно тарифа, число объектов) — см. Retry-After и error.resets_at (error.type: limit_error)","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["error"],"description":"Всегда «error»: так тело ошибки отличается от обычного ответа.","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request_error","authentication_error","payment_required_error","permission_error","not_found_error","conflict_error","gone_error","limit_error","api_error","unavailable_error"],"description":"Вид ошибки — по нему ветвится клиент (не по тексту message). Статус HTTP у вида один, кроме invalid_request_error:\n- `invalid_request_error` (400) — запрос неверен: поле не прошло проверку, неверный формат, действие сейчас недопустимо. Показать message рядом с формой; повтор без исправления не поможет. Обычно 400; 413 и 422 — у кодов, где это сказано в списке code.\n- `authentication_error` (401) — нет входа: сессия закончилась, cookie нет, ключ API неверен, отозван или истёк. Кабинет — отправить на страницу входа; по ключу — проверить ключ (см. code).\n- `payment_required_error` (402) — нужны деньги или решение владельца/админа организации: ждать бесполезно. Показать message и кнопку действия по code (оформить тариф, пополнить баланс, поднять потолок); без code — не оплачено подключение компании.\n- `permission_error` (403) — нельзя: не хватает права или роли, организация заблокирована, вход не тем способом. Показать message (в нём сказано, к кому обратиться); детали — в code и полях рядом.\n- `not_found_error` (404) — нет такого объекта — или он чужой: чужие организации, компании и записи тоже отвечают 404, чтобы не раскрывать, что они есть. Показать «не найдено» и вернуть к списку.\n- `conflict_error` (409) — состояние не позволяет: уже сделано, уже идёт другое действие, версия устарела. Перечитать объект, обновить экран и показать message.\n- `gone_error` (410) — объекта больше нет: разговор не найден или истёк (вопрос в чате, ответ на вопрос ИИ, подсчёт токенов — начать новый разговор), ход потерян при перезапуске сервера, ссылка привязки программы устарела или уже использована (code connector_link_gone). Повторять незачем.\n- `limit_error` (429) — предел: частота запросов, окно тарифа, число объектов или мест. Если есть заголовок Retry-After или resets_at — пройдёт само, показать, когда; иначе нужно освободить место (удалить лишнее) или сменить тариф.\n- `api_error` (500) — сбой на нашей стороне. Показать message и request_id (для поддержки); повторить позже.\n- `unavailable_error` (503) — временно недоступно (внешний сервис, ИИ, настройка сервера). Повторить позже; если повторяется — сообщить request_id в поддержку.","example":"payment_required_error","isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Готовый текст для человека по-русски: что случилось, что делать и к кому обратиться. Показывать как есть; не разбирать — формулировки меняются.","example":"Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"type":"string","description":"Уточнение вида: по нему выбирается действие интерфейса (кнопка «Пополнить», «Войти иначе»…). Нет поля — хватает type и message. Известные коды:\n- `sso_domain_taken` (409) — домен SSO уже подтверждён другой организацией\n- `sso_last_verified_domain` (409) — включён обязательный вход, а это последний подтверждённый домен — сначала выключить обязательный вход\n- `sso_login_required` (400) — включить обязательный вход можно только из сессии, открытой через SSO этой организации\n- `domain_verification_failed` (400) — запись DNS для домена не найдена или не совпала — проверить и повторить\n- `oidc_openid_scope_required` (400) — в scopes сервера входа OIDC нет openid — добавить её: без неё вход через SSO не пройдёт\n- `enterprise_only` (403) — возможность есть только на тарифе Enterprise\n- `groups_limit` (429) — достигнут предел групп в организации\n- `custom_roles_limit` (429) — достигнут предел своих ролей в организации\n- `group_managed_by_directory` (409) — группа из каталога: название и состав меняются только там\n- `group_member_not_in_workspace` (400) — в группу можно добавить только сотрудника этой организации\n- `role_above_ceiling` (400) — роль даёт права выше потолка организации\n- `unknown_model` (400) — такой модели нет — список в available_models\n- `price_required` (400) — админка, тариф целиком: у платного тарифа нужна цена (price)\n- `lago_rejected` (409) — админка, тариф целиком: Lago отказал по существу (4xx, текст Lago в message) — правила не изменены, повтор без правки не поможет\n- `price_mismatch` (400) — админка, тариф целиком: цена не сходится с правилами (место без per_seat, per_seat без цены места, цена у бесплатного)\n- `model_not_allowed` (403) — политика организации не разрешает эту модель, а подходящей разрешённой нет — админу дополнить список\n- `retention_too_short` (400) — срок хранения меньше наименьшего\n- `audit_export_range` (400) — неверный период выгрузки журнала: конец раньше начала или период слишком длинный\n- `compliance_disabled` (403) — адрес для проверок выключен — владелец включает его в настройке\n- `missing_credentials` (401) — нет ни cookie сессии, ни ключа API — войти или передать x-api-key\n- `link_revoked` (401) — вход в Tungo из 1С больше не действует (вышли, отключили на сайте, вошли в той же базе заново, компания или человек заблокированы) — 1С просит войти заново\n- `login_denied` (403) — вход из 1С отклонён на сайте Tungo — 1С показывает отказ\n- `code_expired` (410) — код входа из 1С устарел или уже использован — 1С просит новый код\n- `code_gone` (410) — код входа из 1С уже подтверждён, отклонён или устарел — на сайте подтверждать нечего\n- `invalid_api_key` (401) — ключ API неверен (опечатка или удалён)\n- `key_revoked` (401) — ключ API отозван (при правке ключа — 409 с тем же code: отозванный ключ не меняется)\n- `key_expired` (401) — срок ключа API истёк — сменить секрет (POST …/api-keys/{id}/roll: срок начнётся заново) или выпустить новый (при правке срока — 409 с тем же code: PATCH истёкший ключ не оживляет)\n- `key_disabled` (401) — ключ API выключен — включить может автор ключа или владелец организации (POST …/api-keys/{id}/enable)\n- `key_creator_lost_access` (401) — тот, кто выпустил ключ, больше не владелец/админ организации — ключ недействителен\n- `user_banned` (401) — вход в аккаунт закрыт администратором Tungo — только поддержка Tungo\n- `onboarding_unpaid` (402) — подключение компании к ИИ-бухгалтеру не оплачено (разовый платёж): владельцу/админу организации — «Оплатить» в настройках компании; остальным — сообщить им\n- `onboarding_pending` (402) — оплата подключения компании ещё проходит в банке — ИИ заработает после подтверждения; опрашивать состояние подключения\n- `no_active_plan` (402) — нет действующей подписки (не оформлена, закончилась, первая оплата не прошла или ждёт 3-D Secure). Владельцу/админу — кнопка в настройки оплаты; остальным — «обратитесь к владельцу организации». Что именно случилось — в message\n- `balance_exhausted` (402) — баланс доп. использования кончился. Владельцу/админу — «Пополнить баланс» или включить автопополнение; остальным — сообщить им\n- `workspace_cap_reached` (402) — достигнут месячный потолок доп. использования организации. resets_at — 1-е число следующего месяца, 00:00 по Алматы; раньше — если админ поднимет потолок\n- `report_busy` (429) — сейчас собирается много отчётов команды: повторить через время из Retry-After\n- `report_timeout` (503) — отчёт команды не успел собраться: сократить период или выбрать разбивку по месяцам\n- `company_cap_reached` (402) — достигнут месячный потолок доп. использования компании. Письмо владельцу и админам уже отправлено. resets_at — 1-е число; раньше — если админ поднимет потолок (PUT /v1/workspaces/{ws}/team/company-caps/{co})\n- `member_cap_reached` (402) — достигнут личный месячный потолок доп. использования сотрудника. resets_at — 1-е число; раньше — если админ поднимет его потолок\n- `key_cap_reached` (402) — достигнут месячный потолок расхода ключа API (или остаток меньше оценки одного вызова). resets_at — 1-е число\n- `platform_balance_exhausted` (402) — баланс платформы пуст: вызов по ключу или автоматизация не сделаны. Пополнить — POST /v1/workspaces/{ws}/platform/purchases или автопополнением\n- `platform_cap_reached` (402) — достигнут месячный потолок трат платформы. resets_at — 1-е число следующего месяца, 00:00 по Алматы; раньше — поднять потолок в PUT /v1/workspaces/{ws}/platform/account\n- `platform_disabled` (402) — платформа выключена в организации: вызовы по ключам и автоматизации остановлены. Включить — PUT /v1/workspaces/{ws}/platform/account\n- `free_plan_chat_only` (402) — бесплатный тариф: пачки из кабинета только на платных тарифах. Ключам API и автоматизациям тариф не нужен\n- `free_limit_unavailable` (402) — бесплатный лимит этой учётной записи не положен (проверка регистрации или решение администратора) — оформить тариф\n- `plan_company_limit` (402) — в организации уже столько компаний не в архиве, сколько разрешает тариф (max_companies в GET /v1/plans; limit и plan_code — в ответе): новую не завести и из архива не вернуть. Убрать лишнюю в архив или перейти на тариф больше\n- `effort_not_in_plan` (402) — поле effort в чате на тарифе без выбора усилия (max_effort тарифа null, например бесплатный): ход не начат. Прислать вопрос без effort или оформить платный тариф\n- `model_not_in_plan` (402) — модель сильнее потолка тарифа (plans.model_ceiling): вызов не сделан; более сильные модели — на платных тарифах\n- `missing_permission` (403) — не хватает права в компании (или у ключа API); какого — в поле permission\n- `login_method_not_allowed` (403) — организация пускает к своим данным только после входа другим способом; какими — в allowed_methods. Предложить выйти и войти так\n- `ip_not_allowed` (403) — ключ API не принимает запросы с этого адреса — поправить allowed_ips ключа (PATCH …/api-keys/{id}) или вызывать с разрешённого адреса\n- `key_write_limit` (403) — запись в 1С по ключу API — сверх его пределов (сумма на документ или в день, виды документов) или правило автоодобрения шире пределов ключа; в сообщении — что и на сколько\n- `human_only` (403) — это решение принимает только человек в кабинете Tungo, не ключ API: например, отклонить «не знаем, записан ли» на снимке базы без проверки 1С (confirm_unknown_write)\n- `autonomy_raise_requires_session` (403) — поднять уровень доверия ИИ или потолки компании можно только владельцу или админу организации из кабинета; ключом API — только понизить\n- `id_path_required` (400) — для автоодобрения по хуку задайте хуку id_path — путь к номеру операции в теле события: без него повтор доставки нельзя отличить от новой операции\n- `directbank_rule_exists` (400) — у компании уже есть сценарий с правилом для выписки DirectBank — правило выписки одно на компанию\n- `event_not_found` (404) — события нет в этой компании или оно удалено по сроку хранения — для пробного прогона выберите событие посвежее\n- `event_body_unavailable` (409) — тело события зашифровано, а ключ шифрования на сервере сменился — прогнать сценарий на нём нельзя\n- `scenario_steps_required` (409) — у сценария цепочка шагов, а в замене (PUT) нет ни steps, ни output: передайте steps явно, иначе замена молча убрала бы цепочку\n- `scenario_output_required` (409) — у сценария форма итога, а в замене (PUT) нет ни steps, ни output: передайте output явно (null — снять форму)\n- `automation_queue_full` (429) — у компании слишком много запусков в очереди: повторите позже (событие хука отправитель повторит сам)\n- `restarting` (503) — сервис перезапускается: новый ход не начат — повторите через Retry-After\n- `company_suspended` (403) — работа с компанией приостановлена (решение платформы или оплаты); карточка видна, работать, править и архивировать нельзя (архив — 409 с тем же code)\n- `company_archived` (403) — компания в архиве: карточка видна, работать с ней нельзя. Вернуть — POST /v1/companies/{company_id}/unarchive (владелец компании или владелец/админ организации)\n- `workspace_blocked` (403) — организация заблокирована администратором платформы — только поддержка Tungo\n- `untrusted_origin` (403) — запрос пришёл не со страницы Tungo (защита от подделки запросов) — открыть кабинет по обычному адресу; для /admin/* — только со страниц ADMIN_ORIGINS\n- `cors_not_supported` (403) — вызов API из чужого браузерного кода (CORS) не поддерживается: ключ API — секрет сервера\n- `api_keys_disabled_by_policy` (403) — политика организации запрещает ключи API\n- `owner_role_reserved` (403) — владельца компании назначает, меняет и снимает только владелец или админ организации\n- `role_above_yours` (403) — у выдаваемой (или снимаемой) роли есть права, которых нет у вас; роль — в поле role, лишние права — в permissions\n- `not_key_creator` (403) — менять компании, права, срок и секрет ключа, снимать и поднимать его пределы записи в 1С может только тот, кто его выпустил (ужесточить пределы может любой админ)\n- `transfer_wider_than_target` (403) — передать ключ нельзя: у нового владельца нет нужного права (или доступа) в одной из компаний ключа\n- `invalid_allowed_ips` (400) — в allowed_ips ключа — не IP-адрес и не подсеть CIDR; какая запись — в сообщении\n- `transfer_target_not_admin` (400) — передать ключ можно только владельцу или админу этой организации\n- `platform_model_not_allowed` (403) — модель сильнее потолка платформы (настройка platform.billing): вызов не сделан и ничего не списано\n- `managed_by_sso` (403) — удаление аккаунта: аккаунт ведёт организация (SSO или SCIM) — удаляет её администратор; организации — в workspaces\n- `fresh_session_required` (403) — удаление аккаунта без почты (Telegram): нужен свежий вход — выйти, войти снова и подтвердить\n- `api_key_not_allowed` (403) — действие только из кабинета (сессия), не по ключу API: удаление аккаунта\n- `not_own_key` (403) — по ключу API виден только расход самого этого ключа\n- `webhooks_not_in_plan` (403) — вебхуков нет в тарифе организации\n- `admin_2fa_required` (403) — админ-API: у администратора платформы нет второго фактора или эта сессия не подтверждена кодом приложения-аутентификатора (POST /v1/auth/two-factor/enable, затем verify-totp)\n- `two_factor_required` (403) — отключить второй фактор, показать его секрет или выпустить резервные коды — только после кода из приложения-аутентификатора в этой сессии\n- `webhooks_require_all_companies` (403) — вебхуки — только ключу на все компании организации (при выпуске ключа — 400 с тем же code)\n- `audit_requires_all_companies` (403) — журнал организации — только ключу на все компании организации\n- `policy_blocked` (403) — одобрение: организация не доверяет ИИ записывать такой документ этим способом (поле level — уровень доверия); одобрить по одному или поднять уровень\n- `onec_read_only` (403) — одобрение: у пользователя 1С из подключения нет права записи — дать права в 1С\n- `validation_failed` (400) — тело или параметры запроса не прошли проверку: что не так с каждым полем — в fields (путь, код, текст по-русски). Подсветить поля формы; общий message — над формой\n- `invalid_json` (400) — тело запроса — не JSON-объект\n- `personal_workspace` (400) — в личной организации нет сотрудников, приглашений и политик — нужна организация Team или Enterprise\n- `api_key_required` (400) — адрес только для запроса по ключу API\n- `email_code_unavailable` (400) — удаление аккаунта: у аккаунта нет почты для кода (вход через Telegram) — подтверждать свежим входом, без кода\n- `deletion_code_invalid` (400) — удаление аккаунта: неверный код из письма; сколько попыток осталось — attempts_left\n- `deletion_code_expired` (400) — удаление аккаунта: код истёк, попытки кончились или код не запрашивался — запросить новый (POST /v1/me/deletion/code)\n- `unsafe_url` (400) — адрес вебхука недопустим (внутренняя сеть, не HTTPS)\n- `idempotency_key_invalid` (400) — Idempotency-Key неверного вида\n- `payload_too_large` (413) — тело запроса (или события хука) больше допустимого; пределы — настройки платформы\n- `idempotency_key_reused` (422) — этот Idempotency-Key уже был у другого запроса — для нового действия нужен новый ключ\n- `has_blockers` (422) — одобрение: у предложения есть блокеры — сначала исправить их\n- `batch_too_large` (413) — одобрение пачкой: предложений больше предела (поля limit, requested) — разбить на части\n- `unknown_kind` (400) — настройки писем: такого вида уведомлений нет — взять список из GET /v1/me/notifications\n- `kind_locked` (400) — настройки писем: этот вид (безопасность и аккаунт) выключить нельзя — переключатель неактивен (locked)\n- `onec_rejected` (400) — одобрение: 1С отклонила документ (причина — в message): исправить в 1С или построить предложение заново\n- `proposal_not_found` (404) — предложения с таким id нет в компании\n- `export_link_expired` (404) — ссылка на архив выгрузки истекла или неверна — получить новую: GET /v1/me/export\n- `batch_not_found` (404) — одобрение пачкой: задания с таким batch_id нет (или в нём нет предложений)\n- `idempotency_in_progress` (409) — первый запрос с этим Idempotency-Key ещё выполняется — подождать и повторить, придёт тот же ответ\n- `idempotency_response_not_kept` (409) — запрос с этим Idempotency-Key уже выполнен, но копия ответа не хранится (в нём персональные данные): результат — по ссылке в ответе (dialog_url) или в списке; статус первого ответа — original_status\n- `idempotency_response_too_large` (409) — запрос с этим Idempotency-Key уже выполнен, но ответ слишком большой, чтобы повторить его целиком: результат — в списке; статус первого ответа — original_status\n- `sole_owner` (409) — удаление аккаунта: вы единственный владелец организации с другими участниками (workspaces) — передать владение (POST /v1/workspaces/{ws}/ownership) или удалить организацию\n- `account_deletion_in_progress` (409) — удаление аккаунта: фон уже стирает аккаунт — новый код и подтверждение не принимаются, отменить нельзя\n- `wrong_status` (409) — предложение уже не в том состоянии (поле status — нынешнее): обновить его\n- `wrong_state` (409) — запуск автоматизации уже не в том состоянии (поле state — нынешнее)\n- `dialog_closed` (409) — разговор закрыт (поле reason — почему): начать новый\n- `dialog_id_taken` (409) — разговор с таким dialog_id уже есть — для нового прислать другой id или не присылать его\n- `turn_in_progress` (409) — в разговоре уже идёт ход ИИ (поле turn — его номер): дождаться его конца или остановить\n- `turn_superseded` (409) — читаемый ход уже закончился и идёт следующий (поле turn) — читать его с начала\n- `dialog_changed` (409) — разговор только что изменился в другом окне или на другом сервере Tungo — открыть его заново (GET …/chat/{id}) и повторить\n- `already_answered` (409) — на этот вопрос ИИ уже ответили (поле turn — ход с ответом)\n- `question_stale` (409) — вопрос ИИ устарел (в разговоре уже другой вопрос или его нет) — обновить разговор\n- `dismissed` (409) — вопрос ИИ закрыт без ответа — написать обычное сообщение\n- `job_running` (409) — задание (пачка) ещё идёт — дождаться отчёта; поле batch_id\n- `payload_changed` (409) — одобрение: документ изменился после превью — построить предложение заново\n- `onec_conflict` (409) — одобрение: 1С отказала из-за конфликта (объект занят или изменён) — повторить позже\n- `onec_not_found` (409) — одобрение: в 1С нет объекта, на который ссылается документ — построить предложение заново\n- `plan_limit_reached` (429) — лимит окна тарифа исчерпан; resets_at и Retry-After — когда обновится. Показать время; если в message предложено доп. использование — дать кнопку включить\n- `rate_limited` (429) — слишком часто (по ключу API, уведомления ePay с одного адреса, попытки кода второго фактора) — подождать Retry-After секунд\n- `concurrent_turns_limit` (429) — по ключу API уже идёт предельное число ходов ИИ одновременно — дождаться окончания\n- `api_keys_limit` (429) — в организации предельное число действующих ключей API — отозвать ненужные\n- `webhook_endpoints_limit` (429) — предельное число адресов вебхуков — удалить ненужные\n- `export_too_soon` (429) — выгрузку данных можно запрашивать не чаще раза в сутки: next_request_at и Retry-After — когда можно снова\n- `hook_rate_limited` (429) — приём событий хука: больше automations.hook_events_per_minute в минуту — повторить через Retry-After секунд\n- `lago_unavailable` (503) — админка, тариф целиком: Lago не настроен или не ответил (сеть, 5xx) — правила не изменены, повторить позже\n- `model_price_missing` (503) — у модели ИИ не задана цена — сбой настройки платформы, ничего не списано; повторить позже\n- `data_export_disabled` (503) — выгрузка данных на сервере не настроена (поддержка Tungo)\n- `webhooks_disabled` (503) — вебхуки на сервере не настроены\n- `webhooks_unavailable` (503) — служба доставки вебхуков временно недоступна\n- `model_not_configured` (503) — сервис модели ИИ не настроен на сервере — повторить позже (Retry-After)\n- `write_unknown` (503) — одобрение: исход записи в 1С неизвестен (связь оборвалась) — проверить документ в 1С по метке (поле marker); повтор безопасен (retry_safe); слишком ранний повтор в 1С не пишет — подождать retry_after секунд (Retry-After)\n- `onec_unavailable` (503) — 1С сейчас не отвечает — повторить позже (Retry-After)\n- `onec_check_busy` (503) — проверка связи 1С: сервер сейчас проверяет слишком много подключений — повторить через Retry-After секунд\n- `onec_failed` (503) — записать документ в 1С не удалось по неизвестной причине — повторить позже\n- `journal_unavailable` (503) — журнал решений недоступен — пачка не одобрена, повторить позже\n- `hook_secret_unavailable` (503) — приём событий хука: секрет подписи сейчас не открыть — отправителю повторить доставку позже\n- `secret_box_missing` (503) — на сервере не задан ключ шифрования настроек — секрет подписи хука сохранить нельзя (поддержка Tungo)\n- `not_personal` (409) — перевод в команду: организация уже не личная — обновить экран\n- `subscription_blocks_conversion` (409) — перевод в команду: действует подписка для одного человека — сначала отменить её и дождаться конца периода\n- `subscription_kind_mismatch` (409) — админка: действующая подписка оформлена на другой вид организации — вид не меняется, пока она идёт\n- `enterprise_features_active` (409) — админка: у организации подключены SSO или SCIM — сначала отключить, потом снимать Enterprise\n- `too_many_members_for_personal` (409) — админка: в личной организации один человек — сначала убрать остальных участников\n- `open_debt` (409) — есть неоплаченный счёт — сначала оплатить; в плане удаления этот же код лежит в blockers\n- `active_work` (409) — в организации идут ходы ИИ или автоматизации — дождаться окончания и повторить; в плане удаления этот же код лежит в blockers\n- `deletion_already_scheduled` (409) — удаление организации уже запланировано — показать дату из плана\n- `deletion_purging` (409) — очистка организации уже идёт — отменить её нельзя\n- `workspace_deleting` (409) — админка: организация удаляется по просьбе владельца — блок удаления снимает только отмена удаления\n- `invitation_not_pending` (409) — приглашение принято, отозвано или истекло — письмо не отправить, пригласить заново\n- `last_owner` (409) — это последний владелец организации — сначала передать владение другому участнику\n- `seats_by_contract` (409) — места Enterprise — по договору, карта и докупка не работают: обратиться к менеджеру\n- `no_subscription` (409) — нет действующей подписки — сначала оформить тариф\n- `not_per_seat` (409) — этот тариф не считает оплату за место — докупка не нужна, предел мест показан в ответе GET …/seats\n- `subscription_ended` (409) — возобновление: период отменённой подписки уже закончился — ничего не списано, оформить тариф заново (повторный PUT — обычное оформление)\n- `subscription_busy` (409) — подписка уже меняется другим запросом (отмена или возобновление) — обновить экран через несколько секунд\n- `subscription_ending` (409) — подписка отменена и закончится в конце периода — места не докупаются и не сокращаются\n- `seats_unpaid_debt` (409) — подписка просрочена — сначала оплатить счёт; участники остаются, новых приглашать нельзя\n- `idempotency_conflict` (409) — докупка: этот ключ уже использован с другим числом мест — для новой покупки нужен новый ключ\n- `seat_quote_changed` (409) — докупка: сумма изменилась (другой день или новая цена), деньги не списаны — показать новую сумму из поля и спросить снова\n- `no_paid_seats` (409) — оплаченных мест ещё нет — сокращать нечего\n- `seats_below_occupied` (409) — занято больше мест, чем просите оставить — сначала убрать участников или отозвать приглашения\n- `not_enterprise` (409) — админка: места по договору есть только у Enterprise — сначала поставить вид\n- `per_seat_plan_change` (409) — смена тарифа с оплатой за место не делается сразу: Lago взял бы плату за места дважды. Отменить и оформить новый с конца периода\n- `confirm_name_mismatch` (400) — удаление организации: название введено неверно — ввести точно как в плане удаления\n- `below_min_seats` (400) — на этом тарифе мест меньше нельзя: минимум — min_seats тарифа\n- `seats_over_max` (400) — мест больше предела одной организации (team.limits.max_seats) — обратиться в поддержку\n- `seats_above_paid` (400) — PUT …/seats только сокращает; новые места — через POST …/seats с оплатой\n- `onec_check_running` (429) — проверка связи 1С уже идёт у этой компании, у вас (другая компания) или у двух других компаний организации — дождаться её итога и повторить (Retry-After)\n- `invitation_resend_too_soon` (429) — письмо с приглашением уже отправлено только что — подождать Retry-After секунд\n- `seats_exhausted` (429) — свободные места закончились: докупите места или освободите их, отозвав приглашение\n- `seat_price_unknown` (503) — цена места сейчас неизвестна (тариф не прочитан или настроен неверно), деньги не списаны — повторить позже\n- `otp_mail_failed` (503) — письмо с кодом входа не отправлено: попробуйте позже\n- `seat_period_unknown` (503) — не удалось сверить период подписки с биллингом: деньги не списаны, попробуйте позже\n\nНезнакомый code — вести себя по type.","example":"balance_exhausted","uniqueKey":"error.code","typeLabel":"string"},"permission":{"type":"string","description":"При code = missing_permission — какого права не хватает: права в компании (company.read, company.manage, company.members.manage, onec.connect, proposals.create, proposals.approve, chat.use, audit.read, automations.manage) или права только ключа API (automations.read, webhooks.manage). Показать «нужно право …» и предложить попросить админа (или выпустить ключ с этим правом).","example":"proposals.approve","uniqueKey":"error.permission","typeLabel":"string"},"resets_at":{"type":"string","format":"date-time","description":"Когда ограничение снимется само — ISO 8601, UTC. Есть у plan_limit_reached (конец окна тарифа) и у месячных потолков (workspace_cap_reached, company_cap_reached, member_cap_reached, key_cap_reached, platform_cap_reached — 1-е число, 00:00 по Алматы). Показать в местном времени: «Лимит обновится в 14:30». Нет поля — само не пройдёт.","example":"2026-11-01T19:00:00.000Z","uniqueKey":"error.resets_at","typeLabel":"string\u003cdate-time>"},"allowed_methods":{"type":"array","items":{"type":"string","enum":["email_otp","google","apple","telegram","sso"],"uniqueKey":"error.allowed_methods.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"При code = login_method_not_allowed — какими способами входа организация пускает к своим данным: email_otp — код из почты, google, apple, telegram, sso — SSO организации. Предложить выйти и войти одним из них.","uniqueKey":"error.allowed_methods","typeLabel":"enum\u003cstring>[]"},"role":{"type":"string","description":"При code = role_above_yours — ключ роли в компании, которую нельзя выдать или снять (например chief_accountant).","uniqueKey":"error.role","typeLabel":"string"},"permissions":{"type":"array","items":{"type":"string","uniqueKey":"error.permissions.items.[INDEX]","typeLabel":"string"},"description":"При code = role_above_yours — права этой роли, которых нет у того, кто выдаёт. Показать списком: «у роли есть права, которых нет у вас: …».","uniqueKey":"error.permissions","typeLabel":"string[]"},"fields":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"Путь к полю через точку, как в теле запроса или имени параметра: `name`, `lines.0.amount`. Пустая строка — всё тело (не объект, лишние поля).","example":"bin","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].path","typeLabel":"string"},"code":{"type":"string","enum":["invalid_type","too_small","too_big","invalid_format","invalid_value","not_multiple_of","unrecognized_keys","invalid_union","invalid_key","invalid_element","custom"],"description":"Что не так: invalid_type — не тот тип или поле не передано; too_small / too_big — короче/меньше или длиннее/больше допустимого; invalid_format — неверный вид (почта, дата, шаблон); invalid_value — значения нет среди допустимых; not_multiple_of — не кратно; unrecognized_keys — лишние поля; invalid_union — не подходит ни один вид; invalid_key / invalid_element — неверный ключ или элемент; custom — своё правило ручки","example":"invalid_format","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Текст для человека по-русски — показать под полем","example":"БИН/ИИН — 12 цифр","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].message","typeLabel":"string"}},"required":["path","code","message"],"description":"Ошибка одного поля запроса","uniqueKey":"error.fields.items.[INDEX]","typeLabel":"object"},"description":"При code = validation_failed — ошибки по полям, в порядке проверки; у одного поля может быть несколько.","uniqueKey":"error.fields","typeLabel":"object[]"}},"required":["type","message"],"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.additionalProperties","typeLabel":"any"},"description":"Что пошло не так. Все 503 — с заголовком Retry-After (через сколько секунд повторить). Кроме описанных, у отдельных ручек бывают свои поля рядом с code (например status у wrong_status, state у wrong_state, reason у dialog_closed) — они описаны у этих ручек.","isRequired":true,"uniqueKey":"error","typeLabel":"object"},"request_id":{"oneOf":[{"type":"string","description":"Номер запроса (тот же, что в заголовке x-request-id). Показывать мелко рядом с ошибкой с кнопкой «скопировать»: по нему поддержка находит запрос в журнале. null — номер не успел появиться (очень ранний отказ).","example":"req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f","isRequired":true,"uniqueKey":"request_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Номер запроса (тот же, что в заголовке x-request-id). Показывать мелко рядом с ошибкой с кнопкой «скопировать»: по нему поддержка находит запрос в журнале. null — номер не успел появиться (очень ранний отказ).","example":"req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f","isRequired":true,"uniqueKey":"request_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"request_id","typeLabel":"string | null"}},"required":["type","error","request_id"],"description":"Тело любой ошибки API (статусы 4xx и 5xx): `{\"type\":\"error\",\"error\":{\"type\":\"…\",\"code\":\"…\",\"message\":\"…\"},\"request_id\":\"…\"}`. Интерфейс ветвится по error.type и error.code, человеку показывает error.message и request_id.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"error","error":{"type":"payment_required_error","message":"Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.","code":"balance_exhausted","permission":"proposals.approve","resets_at":"2026-11-01T19:00:00.000Z","allowed_methods":["email_otp"],"role":"\u003cstring>","permissions":["\u003cstring>"],"fields":[{"path":"bin","code":"invalid_format","message":"БИН/ИИН — 12 цифр"}]},"request_id":"req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f"}}},"exampleType":"generated"}},"headers":{"x-request-id":{"description":"Номер запроса (тот же, что request_id в теле ошибки) — назвать в обращении в поддержку. Его всегда создаёт сервер: присланный клиентом x-request-id номером не становится","schema":{"type":"string","example":"req_3f2a9c0d1e4b4c5d8e7f6a5b4c3d2e1f"}},"x-ratelimit-limit":{"description":"Только при входе по ключу API: сколько запросов можно в текущем окне — самый тесный предел из ключа и организации","schema":{"type":"integer"}},"x-ratelimit-remaining":{"description":"Только при входе по ключу API: сколько запросов осталось по этому пределу в текущем окне","schema":{"type":"integer"}},"x-ratelimit-reset":{"description":"Только при входе по ключу API: секунд до нового окна этого предела","schema":{"type":"integer"}},"Retry-After":{"description":"Через сколько секунд повторить запрос (отказ пройдёт сам); нет — ждать бесполезно, смотреть error.code","schema":{"type":"integer","minimum":1}}},"exampleType":"generated"}},"security":{"445a3d27-93a4-4442-8b22-4494e021b7bd":{"session":{"type":"apiKey","in":"cookie","name":"tungo.session_token","description":"Сессия кабинета: cookie ставит вход через /v1/auth/* (Better Auth), браузер шлёт её сам — фронтенду кабинета ничего добавлять не нужно (fetch с credentials: 'include'). За HTTPS имя cookie — __Secure-tungo.session_token. Сессия кончилась — 401 authentication_error: отправить на вход.","scopes":[],"schemeName":"session"}},"b5545263-5bcc-4ab4-b8eb-2ba63ce92079":{"apiKey":{"type":"apiKey","in":"header","name":"x-api-key","description":"Ключ API организации: `x-api-key: tg_…`. Для серверных интеграций, не для кабинета: ключ — секрет, из браузера его не слать (CORS закрыт). Какие адреса пускают по ключу — x-api-key-access у операции.","scopes":[],"schemeName":"apiKey"}},"af308087-ba5d-4246-bfbb-65c67a8e5ad6":{"bearerKey":{"type":"http","scheme":"bearer","bearerFormat":"tg_…","description":"Тот же ключ API другим заголовком: `Authorization: Bearer tg_…`.","scopes":[],"schemeName":"bearerKey"}}},"servers":{"c389c850-4818-4663-a4a8-1bad0282721d":{"url":"https://api.tungo.kz","description":"Адрес API Tungo"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"cookie","name":"tungo.session_token","description":"Сессия кабинета: cookie ставит вход через /v1/auth/* (Better Auth), браузер шлёт её сам — фронтенду кабинета ничего добавлять не нужно (fetch с credentials: 'include'). За HTTPS имя cookie — __Secure-tungo.session_token. Сессия кончилась — 401 authentication_error: отправить на вход.","scopes":[],"schemeName":"session"},"schema":{"title":"tungo.session_token","type":"string","description":"Сессия кабинета: cookie ставит вход через /v1/auth/* (Better Auth), браузер шлёт её сам — фронтенду кабинета ничего добавлять не нужно (fetch с credentials: 'include'). За HTTPS имя cookie — __Secure-tungo.session_token. Сессия кончилась — 401 authentication_error: отправить на вход.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"session","name":"tungo.session_token"}],"title":"session"},{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","description":"Ключ API организации: `x-api-key: tg_…`. Для серверных интеграций, не для кабинета: ключ — секрет, из браузера его не слать (CORS закрыт). Какие адреса пускают по ключу — x-api-key-access у операции.","scopes":[],"schemeName":"apiKey"},"schema":{"title":"x-api-key","type":"string","description":"Ключ API организации: `x-api-key: tg_…`. Для серверных интеграций, не для кабинета: ключ — секрет, из браузера его не слать (CORS закрыт). Какие адреса пускают по ключу — x-api-key-access у операции.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"apiKey","name":"x-api-key"}],"title":"apiKey"},{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"tg_…","description":"Тот же ключ API другим заголовком: `Authorization: Bearer tg_…`.","scopes":[],"schemeName":"bearerKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Тот же ключ API другим заголовком: `Authorization: Bearer tg_…`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerKey","name":"Authorization"}],"title":"bearerKey"}]},"originalFileLocation":"https://api.tungo.kz/v1/openapi.json"},"subdomain":"tungo-ai","siteName":"Tungo","title":"Завести сценарий - Tungo","navMaps":{"firstHrefInVersion":{"Русский":{"href":"/api-reference/автоматизации/завести-сценарий","matchLevel":0},"Қазақша":{"href":"/api-reference/автоматизации/завести-сценарий","matchLevel":0}},"firstHrefInLanguage":{"ru":{"href":"/api-reference/автоматизации/завести-сценарий","matchLevel":0}}},"lastModified":"2026-11-11T22:37:21.305Z","originalFileLocation":"api-reference/автоматизации/завести-сценарий.mdx","locale":"ru"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Сценарий с ИИ (action: agent) сохраняет тот, у кого есть chat.use; правило автоодобрения — тот, у кого есть proposals.approve; ключ API с пределами записи — только не шире своих пределов (видов и потолков), иначе 403 с error.code = key_write_limit. Сохранённый ключом сценарий и при запуске пишет в 1С сам только в пределах этого ключа на тот момент; отозванный ключ — не запускается. Запуск идёт от имени сохранившего. Сколько сценариев у компании — предел настройки automations (scenarios_per_company), сверх — 429. Idempotency-Key: повтор с тем же ключом и тем же телом отдаёт прежний ответ (статус и тело) с заголовком Idempotent-Replayed: true и ничего не делает второй раз; тот же ключ с другим адресом или телом — 422 (error.code = idempotency_key_reused); первый запрос с этим ключом ещё идёт — 409 (error.code = idempotency_in_progress). Запоминается только удачный ответ (2xx): после отказа повтор с тем же ключом выполнится заново. Ключ живёт сутки (настройка idempotency.keys), область — организация и тот, кто прислал (ключ API или человек). Доступ: automations.manage | company.manage. Доступно по ключу API.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Tungo\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tungo-ai/-uR9GpSNzhPlx0_i/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/tungo-ai/-uR9GpSNzhPlx0_i/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tungo-ai/-uR9GpSNzhPlx0_i/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/tungo-ai/-uR9GpSNzhPlx0_i/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/tungo-ai/-uR9GpSNzhPlx0_i/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tungo-ai/-uR9GpSNzhPlx0_i/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tungo-ai/-uR9GpSNzhPlx0_i/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/tungo-ai/-uR9GpSNzhPlx0_i/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/tungo-ai/-uR9GpSNzhPlx0_i/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Завести сценарий - Tungo\">\u003cmeta data-mint-head property=\"og:description\" content=\"Сценарий с ИИ (action: agent) сохраняет тот, у кого есть chat.use; правило автоодобрения — тот, у кого есть proposals.approve; ключ API с пределами записи — только не шире своих пределов (видов и потолков), иначе 403 с error.code = key_write_limit. Сохранённый ключом сценарий и при запуске пишет в 1С сам только в пределах этого ключа на тот момент; отозванный ключ — не запускается. Запуск идёт от имени сохранившего. Сколько сценариев у компании — предел настройки automations (scenarios_per_company), сверх — 429. Idempotency-Key: повтор с тем же ключом и тем же телом отдаёт прежний ответ (статус и тело) с заголовком Idempotent-Replayed: true и ничего не делает второй раз; тот же ключ с другим адресом или телом — 422 (error.code = idempotency_key_reused); первый запрос с этим ключом ещё идёт — 409 (error.code = idempotency_in_progress). Запоминается только удачный ответ (2xx): после отказа повтор с тем же ключом выполнится заново. Ключ живёт сутки (настройка idempotency.keys), область — организация и тот, кто прислал (ключ API или человек). Доступ: automations.manage | company.manage. Доступно по ключу API.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Tungo\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://tungo-ai.mintlify.app/api-reference/автоматизации/завести-сценарий\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://tungo-ai.mintlify.site/_mintlify/api/og/v2?division=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8\u0026amp;title=%D0%97%D0%B0%D0%B2%D0%B5%D1%81%D1%82%D0%B8+%D1%81%D1%86%D0%B5%D0%BD%D0%B0%D1%80%D0%B8%D0%B9\u0026amp;description=%D0%A1%D1%86%D0%B5%D0%BD%D0%B0%D1%80%D0%B8%D0%B9+%D1%81+%D0%98%D0%98+%28action%3A+agent%29+%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D1%8F%D0%B5%D1%82+%D1%82%D0%BE%D1%82%2C+%D1%83+%D0%BA%D0%BE%D0%B3%D0%BE+%D0%B5%D1%81%D1%82%D1%8C+chat.use%3B+%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%BE+%D0%B0%D0%B2%D1%82%D0%BE%D0%BE%D0%B4%D0%BE%D0%B1%D1%80%D0%B5%D0%BD%D0%B8%D1%8F+%E2%80%94+%D1%82%D0%BE%D1%82%2C+%D1%83+%D0%BA%D0%BE%D0%B3%D0%BE+%D0%B5%D1%81%D1%82%D1%8C+proposals.approve%3B+%D0%BA%D0%BB%D1%8E%D1%87+API+%D1%81+%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B0%D0%BC%D0%B8+%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B8+%E2%80%94+%D1%82%D0%BE%D0%BB\u0026amp;theme=dfce91326f5ce74a967be081\u0026amp;signature=0c548233a8076cd651a9b20202806fb8dd474ea65a8785c7568a133aa493173d\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Завести сценарий - Tungo\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Сценарий с ИИ (action: agent) сохраняет тот, у кого есть chat.use; правило автоодобрения — тот, у кого есть proposals.approve; ключ API с пределами записи — только не шире своих пределов (видов и потолков), иначе 403 с error.code = key_write_limit. Сохранённый ключом сценарий и при запуске пишет в 1С сам только в пределах этого ключа на тот момент; отозванный ключ — не запускается. Запуск идёт от имени сохранившего. Сколько сценариев у компании — предел настройки automations (scenarios_per_company), сверх — 429. Idempotency-Key: повтор с тем же ключом и тем же телом отдаёт прежний ответ (статус и тело) с заголовком Idempotent-Replayed: true и ничего не делает второй раз; тот же ключ с другим адресом или телом — 422 (error.code = idempotency_key_reused); первый запрос с этим ключом ещё идёт — 409 (error.code = idempotency_in_progress). Запоминается только удачный ответ (2xx): после отказа повтор с тем же ключом выполнится заново. Ключ живёт сутки (настройка idempotency.keys), область — организация и тот, кто прислал (ключ API или человек). Доступ: automations.manage | company.manage. Доступно по ключу API.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://tungo-ai.mintlify.site/_mintlify/api/og/v2?division=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8\u0026amp;title=%D0%97%D0%B0%D0%B2%D0%B5%D1%81%D1%82%D0%B8+%D1%81%D1%86%D0%B5%D0%BD%D0%B0%D1%80%D0%B8%D0%B9\u0026amp;description=%D0%A1%D1%86%D0%B5%D0%BD%D0%B0%D1%80%D0%B8%D0%B9+%D1%81+%D0%98%D0%98+%28action%3A+agent%29+%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D1%8F%D0%B5%D1%82+%D1%82%D0%BE%D1%82%2C+%D1%83+%D0%BA%D0%BE%D0%B3%D0%BE+%D0%B5%D1%81%D1%82%D1%8C+chat.use%3B+%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%BE+%D0%B0%D0%B2%D1%82%D0%BE%D0%BE%D0%B4%D0%BE%D0%B1%D1%80%D0%B5%D0%BD%D0%B8%D1%8F+%E2%80%94+%D1%82%D0%BE%D1%82%2C+%D1%83+%D0%BA%D0%BE%D0%B3%D0%BE+%D0%B5%D1%81%D1%82%D1%8C+proposals.approve%3B+%D0%BA%D0%BB%D1%8E%D1%87+API+%D1%81+%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B0%D0%BC%D0%B8+%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B8+%E2%80%94+%D1%82%D0%BE%D0%BB\u0026amp;theme=dfce91326f5ce74a967be081\u0026amp;signature=0c548233a8076cd651a9b20202806fb8dd474ea65a8785c7568a133aa493173d\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/tungo-ai/-uR9GpSNzhPlx0_i/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Tungo\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1b1b1b\">\u003clink data-mint-head rel=\"canonical\" href=\"https://tungo-ai.mintlify.app/api-reference/автоматизации/завести-сценарий\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8/%D0%B7%D0%B0%D0%B2%D0%B5%D1%81%D1%82%D0%B8-%D1%81%D1%86%D0%B5%D0%BD%D0%B0%D1%80%D0%B8%D0%B9.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://tungo-ai.mintlify.app/#organization\",\"name\":\"Tungo\",\"url\":\"https://tungo-ai.mintlify.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/tungo-ai/Rh5Iy_fOmTN2xA57/logo/light.svg?fit=max\u0026auto=format\u0026n=Rh5Iy_fOmTN2xA57\u0026q=85\u0026s=01cf341ba8b8a958a335b86c62038dd6\"}},{\"@type\":\"WebSite\",\"@id\":\"https://tungo-ai.mintlify.app#website\",\"name\":\"Tungo\",\"url\":\"https://tungo-ai.mintlify.app\",\"publisher\":{\"@id\":\"https://tungo-ai.mintlify.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://tungo-ai.mintlify.app/api-reference/%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8/%D0%B7%D0%B0%D0%B2%D0%B5%D1%81%D1%82%D0%B8-%D1%81%D1%86%D0%B5%D0%BD%D0%B0%D1%80%D0%B8%D0%B9#webpage\",\"url\":\"https://tungo-ai.mintlify.app/api-reference/%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8/%D0%B7%D0%B0%D0%B2%D0%B5%D1%81%D1%82%D0%B8-%D1%81%D1%86%D0%B5%D0%BD%D0%B0%D1%80%D0%B8%D0%B9\",\"name\":\"Завести сценарий\",\"description\":\"Сценарий с ИИ (action: agent) сохраняет тот, у кого есть chat.use; правило автоодобрения — тот, у кого есть proposals.approve; ключ API с пределами записи — только не шире своих пределов (видов и потолков), иначе 403 с error.code = key_write_limit. Сохранённый ключом сценарий и при запуске пишет в 1С сам только в пределах этого ключа на тот момент; отозванный ключ — не запускается. Запуск идёт от имени сохранившего. Сколько сценариев у компании — предел настройки automations (scenarios_per_company), сверх — 429. Idempotency-Key: повтор с тем же ключом и тем же телом отдаёт прежний ответ (статус и тело) с заголовком Idempotent-Replayed: true и ничего не делает второй раз; тот же ключ с другим адресом или телом — 422 (error.code = idempotency_key_reused); первый запрос с этим ключом ещё идёт — 409 (error.code = idempotency_in_progress). Запоминается только удачный ответ (2xx): после отказа повтор с тем же ключом выполнится заново. Ключ живёт сутки (настройка idempotency.keys), область — организация и тот, кто прислал (ключ API или человек). Доступ: automations.manage | company.manage. Доступно по ключу API.\",\"dateModified\":\"2026-11-11T22:37:21.305Z\",\"isPartOf\":{\"@id\":\"https://tungo-ai.mintlify.app#website\"},\"breadcrumb\":{\"@id\":\"https://tungo-ai.mintlify.app/api-reference/%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8/%D0%B7%D0%B0%D0%B2%D0%B5%D1%81%D1%82%D0%B8-%D1%81%D1%86%D0%B5%D0%BD%D0%B0%D1%80%D0%B8%D0%B9#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://tungo-ai.mintlify.app/api-reference/%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8/%D0%B7%D0%B0%D0%B2%D0%B5%D1%81%D1%82%D0%B8-%D1%81%D1%86%D0%B5%D0%BD%D0%B0%D1%80%D0%B8%D0%B9#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Справочник API\",\"item\":\"https://tungo-ai.mintlify.app/api-reference/%D0%B0%D0%BA%D0%BA%D0%B0%D1%83%D0%BD%D1%82/%D0%BC%D0%BE%D0%B8-%D0%BE%D1%80%D0%B3%D0%B0%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-workspace-%D1%81-%D0%BF%D1%83%D0%B1%D0%BB%D0%B8%D1%87%D0%BD%D1%8B%D0%BC%D0%B8-id-ws_%E2%80%A6\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Автоматизации\",\"item\":\"https://tungo-ai.mintlify.app/api-reference/%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8/%D0%BF%D1%80%D0%B8%D0%BD%D1%8F%D1%82%D1%8C-%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D0%B5-%D0%BF%D0%BE-%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D1%83-%D1%85%D1%83%D0%BA%D0%B0\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Завести сценарий\",\"item\":\"https://tungo-ai.mintlify.app/api-reference/%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8/%D0%B7%D0%B0%D0%B2%D0%B5%D1%81%D1%82%D0%B8-%D1%81%D1%86%D0%B5%D0%BD%D0%B0%D1%80%D0%B8%D0%B9\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://tungo-ai.mintlify.app/api-reference/%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8/%D0%B7%D0%B0%D0%B2%D0%B5%D1%81%D1%82%D0%B8-%D1%81%D1%86%D0%B5%D0%BD%D0%B0%D1%80%D0%B8%D0%B9#apireference\",\"headline\":\"Завести сценарий\",\"name\":\"Завести сценарий\",\"description\":\"Сценарий с ИИ (action: agent) сохраняет тот, у кого есть chat.use; правило автоодобрения — тот, у кого есть proposals.approve; ключ API с пределами записи — только не шире своих пределов (видов и потолков), иначе 403 с error.code = key_write_limit. Сохранённый ключом сценарий и при запуске пишет в 1С сам только в пределах этого ключа на тот момент; отозванный ключ — не запускается. Запуск идёт от имени сохранившего. Сколько сценариев у компании — предел настройки automations (scenarios_per_company), сверх — 429. Idempotency-Key: повтор с тем же ключом и тем же телом отдаёт прежний ответ (статус и тело) с заголовком Idempotent-Replayed: true и ничего не делает второй раз; тот же ключ с другим адресом или телом — 422 (error.code = idempotency_key_reused); первый запрос с этим ключом ещё идёт — 409 (error.code = idempotency_in_progress). Запоминается только удачный ответ (2xx): после отказа повтор с тем же ключом выполнится заново. Ключ живёт сутки (настройка idempotency.keys), область — организация и тот, кто прислал (ключ API или человек). Доступ: automations.manage | company.manage. Доступно по ключу API.\",\"url\":\"https://tungo-ai.mintlify.app/api-reference/%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8/%D0%B7%D0%B0%D0%B2%D0%B5%D1%81%D1%82%D0%B8-%D1%81%D1%86%D0%B5%D0%BD%D0%B0%D1%80%D0%B8%D0%B9\",\"mainEntityOfPage\":{\"@id\":\"https://tungo-ai.mintlify.app/api-reference/%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8/%D0%B7%D0%B0%D0%B2%D0%B5%D1%81%D1%82%D0%B8-%D1%81%D1%86%D0%B5%D0%BD%D0%B0%D1%80%D0%B8%D0%B9#webpage\"},\"dateModified\":\"2026-11-11T22:37:21.305Z\",\"publisher\":{\"@id\":\"https://tungo-ai.mintlify.app/#organization\"},\"isPartOf\":{\"@id\":\"https://tungo-ai.mintlify.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Tungo\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Tungo\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8/%D0%B7%D0%B0%D0%B2%D0%B5%D1%81%D1%82%D0%B8-%D1%81%D1%86%D0%B5%D0%BD%D0%B0%D1%80%D0%B8%D0%B9.md","siteName":"Tungo","nav":{"global":null,"languages":[{"language":"ru","versions":[{"version":"Русский","default":true,"tabs":[{"tab":"Главная","pages":[{"title":"Главная","href":""}]},{"tab":"Начало","pages":[{"title":"Начало","href":"/start/quickstart"}]},{"tab":"Подключение 1С","pages":[{"title":"Подключение 1С","href":"/1c/overview"}]},{"tab":"ИИ-бухгалтер","pages":[{"title":"ИИ-бухгалтер","href":"/assistant/ask"}]},{"tab":"Тарифы и оплата","pages":[{"title":"Тарифы и оплата","href":"/billing/plans"}]},{"tab":"Аккаунт и команда","pages":[{"title":"Аккаунт и команда","href":"/account/sign-in"}]},{"tab":"Решение проблем","pages":[{"title":"Решение проблем","href":"/help/sign-in"}]},{"tab":"Платформа","pages":[{"title":"Платформа","href":"/platform/overview"}]},{"tab":"API","groups":[{"group":"Справочник API","pages":[{"group":"Аккаунт","pages":[{"title":"Мои организации (workspace) с публичными id ws_…","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces","href":"/api-reference/аккаунт/мои-организации-workspace-с-публичными-id-ws_…"}]},{"group":"Компании","pages":[{"title":"Мои компании во всех workspace","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies","href":"/api-reference/компании/мои-компании-во-всех-workspace"},{"title":"Компания","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}","href":"/api-reference/компании/компания"}]},{"group":"Биллинг","pages":[{"title":"Привязать карту (форма ePay)","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/workspaces/{ws}/billing/card-sessions","href":"/api-reference/биллинг/привязать-карту-форма-epay"},{"title":"Привязанные карты","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/billing/payment-methods","href":"/api-reference/биллинг/привязанные-карты"},{"title":"Отвязать карту","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json delete /v1/workspaces/{ws}/billing/payment-methods/{pm}","href":"/api-reference/биллинг/отвязать-карту"},{"title":"Оплатить на форме ePay (с 3-D Secure)","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/workspaces/{ws}/billing/payments/{id}/pay-form","href":"/api-reference/биллинг/оплатить-на-форме-epay-с-3-d-secure"}]},{"group":"Тарифы и расход","pages":[{"title":"Цены моделей","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/usage-rates","href":"/api-reference/тарифы-и-расход/цены-моделей"}]},{"group":"Платформа: баланс и расход","pages":[{"title":"Счёт платформы","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/platform/account","href":"/api-reference/платформа:-баланс-и-расход/счёт-платформы"},{"title":"Настройки платформы","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json put /v1/workspaces/{ws}/platform/account","href":"/api-reference/платформа:-баланс-и-расход/настройки-платформы"},{"title":"Пополнить баланс платформы","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/workspaces/{ws}/platform/purchases","href":"/api-reference/платформа:-баланс-и-расход/пополнить-баланс-платформы"},{"title":"Движения баланса платформы","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/platform/ledger","href":"/api-reference/платформа:-баланс-и-расход/движения-баланса-платформы"},{"title":"Расход платформы","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/platform/usage","href":"/api-reference/платформа:-баланс-и-расход/расход-платформы"},{"title":"Журнал действий организации","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/platform/audit","href":"/api-reference/платформа:-баланс-и-расход/журнал-действий-организации"},{"title":"Журнал запросов по ключам","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/platform/requests","href":"/api-reference/платформа:-баланс-и-расход/журнал-запросов-по-ключам"},{"title":"Пределы платформы и сколько осталось","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/platform/limits","href":"/api-reference/платформа:-баланс-и-расход/пределы-платформы-и-сколько-осталось"}]},{"group":"Ключи API","pages":[{"title":"Кому можно передать ключ","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/api-keys/people","href":"/api-reference/ключи-api/кому-можно-передать-ключ"},{"title":"Ключи API (без секретов)","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/api-keys","href":"/api-reference/ключи-api/ключи-api-без-секретов"},{"title":"Выпустить ключ","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/workspaces/{ws}/api-keys","href":"/api-reference/ключи-api/выпустить-ключ"},{"title":"Ключ","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/api-keys/{id}","href":"/api-reference/ключи-api/ключ"},{"title":"Отозвать ключ (сразу и навсегда)","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json delete /v1/workspaces/{ws}/api-keys/{id}","href":"/api-reference/ключи-api/отозвать-ключ-сразу-и-навсегда"},{"title":"Изменить ключ: имя, срок, месячный потолок, компании и права","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json patch /v1/workspaces/{ws}/api-keys/{id}","href":"/api-reference/ключи-api/изменить-ключ:-имя-срок-месячный-потолок-компании-и-права"},{"title":"Сменить секрет ключа","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/workspaces/{ws}/api-keys/{id}/roll","href":"/api-reference/ключи-api/сменить-секрет-ключа"},{"title":"Передать ключ другому владельцу или админу","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/workspaces/{ws}/api-keys/{id}/transfer","href":"/api-reference/ключи-api/передать-ключ-другому-владельцу-или-админу"},{"title":"Выключить ключ (можно включить обратно)","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/workspaces/{ws}/api-keys/{id}/disable","href":"/api-reference/ключи-api/выключить-ключ-можно-включить-обратно"},{"title":"Включить выключенный ключ","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/workspaces/{ws}/api-keys/{id}/enable","href":"/api-reference/ключи-api/включить-выключенный-ключ"},{"title":"Расход ключа за период","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/api-keys/{id}/usage","href":"/api-reference/ключи-api/расход-ключа-за-период"},{"title":"Ключ, по которому пришёл запрос (кто я)","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/api-key","href":"/api-reference/ключи-api/ключ-по-которому-пришёл-запрос-кто-я"},{"title":"Расход ключа, по которому пришёл запрос","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/api-key/usage","href":"/api-reference/ключи-api/расход-ключа-по-которому-пришёл-запрос"}]},{"group":"Вебхуки","pages":[{"title":"Какие события бывают","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/webhooks/event-types","href":"/api-reference/вебхуки/какие-события-бывают"},{"title":"Счётчик событий месяца","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/webhooks/usage","href":"/api-reference/вебхуки/счётчик-событий-месяца"},{"title":"Адреса вебхуков","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/webhooks/endpoints","href":"/api-reference/вебхуки/адреса-вебхуков"},{"title":"Завести адрес","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/workspaces/{ws}/webhooks/endpoints","href":"/api-reference/вебхуки/завести-адрес"},{"title":"Адрес","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/webhooks/endpoints/{id}","href":"/api-reference/вебхуки/адрес"},{"title":"Удалить адрес","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json delete /v1/workspaces/{ws}/webhooks/endpoints/{id}","href":"/api-reference/вебхуки/удалить-адрес"},{"title":"Поменять адрес","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json patch /v1/workspaces/{ws}/webhooks/endpoints/{id}","href":"/api-reference/вебхуки/поменять-адрес"},{"title":"Секрет подписи адреса","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/webhooks/endpoints/{id}/secret","href":"/api-reference/вебхуки/секрет-подписи-адреса"},{"title":"Новый секрет подписи","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/workspaces/{ws}/webhooks/endpoints/{id}/secret/rotate","href":"/api-reference/вебхуки/новый-секрет-подписи"},{"title":"Пробное событие на адрес","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/workspaces/{ws}/webhooks/endpoints/{id}/test","href":"/api-reference/вебхуки/пробное-событие-на-адрес"},{"title":"Попытки доставки на адрес","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/webhooks/endpoints/{id}/attempts","href":"/api-reference/вебхуки/попытки-доставки-на-адрес"},{"title":"Отправленные события","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/webhooks/messages","href":"/api-reference/вебхуки/отправленные-события"},{"title":"Попытки доставки события","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/webhooks/messages/{id}/attempts","href":"/api-reference/вебхуки/попытки-доставки-события"},{"title":"Отправить событие на адрес ещё раз","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/workspaces/{ws}/webhooks/messages/{id}/resend","href":"/api-reference/вебхуки/отправить-событие-на-адрес-ещё-раз"},{"title":"Proposalawaiting approval","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook proposal.awaiting_approval","href":"/api-reference/вебхуки/proposalawaiting_approval"},{"title":"Proposalwritten","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook proposal.written","href":"/api-reference/вебхуки/proposalwritten"},{"title":"Proposalfailed","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook proposal.failed","href":"/api-reference/вебхуки/proposalfailed"},{"title":"Paymentsucceeded","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook payment.succeeded","href":"/api-reference/вебхуки/paymentsucceeded"},{"title":"Paymentfailed","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook payment.failed","href":"/api-reference/вебхуки/paymentfailed"},{"title":"Automationruncompleted","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook automation.run.completed","href":"/api-reference/вебхуки/automationruncompleted"},{"title":"Automationrunfailed","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook automation.run.failed","href":"/api-reference/вебхуки/automationrunfailed"},{"title":"Esfincomingreceived","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook esf.incoming.received","href":"/api-reference/вебхуки/esfincomingreceived"},{"title":"Bank statementreceived","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook bank_statement.received","href":"/api-reference/вебхуки/bank_statementreceived"},{"title":"Proposalrejected","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook proposal.rejected","href":"/api-reference/вебхуки/proposalrejected"},{"title":"Batchcompleted","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook batch.completed","href":"/api-reference/вебхуки/batchcompleted"},{"title":"Batchfailed","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook batch.failed","href":"/api-reference/вебхуки/batchfailed"},{"title":"Automationwrite unknown","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook automation.write_unknown","href":"/api-reference/вебхуки/automationwrite_unknown"},{"title":"Automationrunnotice","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook automation.run.notice","href":"/api-reference/вебхуки/automationrunnotice"},{"title":"Chatturncompleted","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook chat.turn.completed","href":"/api-reference/вебхуки/chatturncompleted"},{"title":"Platformbalance low","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook platform.balance_low","href":"/api-reference/вебхуки/platformbalance_low"},{"title":"Platformbalance exhausted","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook platform.balance_exhausted","href":"/api-reference/вебхуки/platformbalance_exhausted"},{"title":"Platformcap threshold reached","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook platform.cap_threshold_reached","href":"/api-reference/вебхуки/platformcap_threshold_reached"},{"title":"Onecconnectionchanged","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook onec.connection.changed","href":"/api-reference/вебхуки/onecconnectionchanged"},{"title":"Api keyexpiring","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook api_key.expiring","href":"/api-reference/вебхуки/api_keyexpiring"},{"title":"Api keycap reached","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook api_key.cap_reached","href":"/api-reference/вебхуки/api_keycap_reached"},{"title":"Ping","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook ping","href":"/api-reference/вебхуки/ping"}]},{"group":"ИИ-бухгалтер: чат","pages":[{"title":"Свои разговоры в компании, свежие сверху","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/chat","href":"/api-reference/ии-бухгалтер:-чат/свои-разговоры-в-компании-свежие-сверху"},{"title":"Сообщение ИИ-бухгалтеру (ход потоком SSE)","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/chat","href":"/api-reference/ии-бухгалтер:-чат/сообщение-ии-бухгалтеру-ход-потоком-sse"},{"title":"Разговор целиком","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/chat/{id}","href":"/api-reference/ии-бухгалтер:-чат/разговор-целиком"},{"title":"Стереть свой разговор","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json delete /v1/companies/{co}/chat/{id}","href":"/api-reference/ии-бухгалтер:-чат/стереть-свой-разговор"},{"title":"Переименовать свой разговор","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json patch /v1/companies/{co}/chat/{id}","href":"/api-reference/ии-бухгалтер:-чат/переименовать-свой-разговор"},{"title":"Ответ на уточняющий вопрос ИИ (событие choice)","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/chat/{id}/answer","href":"/api-reference/ии-бухгалтер:-чат/ответ-на-уточняющий-вопрос-ии-событие-choice"},{"title":"Переподключиться к идущему ходу","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/chat/{id}/events","href":"/api-reference/ии-бухгалтер:-чат/переподключиться-к-идущему-ходу"},{"title":"Сколько токенов и денег займёт вопрос, не задавая его","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/chat/count-tokens","href":"/api-reference/ии-бухгалтер:-чат/сколько-токенов-и-денег-займёт-вопрос-не-задавая-его"},{"title":"Остановить ход или закрыть открытый вопрос","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/chat/{id}/stop","href":"/api-reference/ии-бухгалтер:-чат/остановить-ход-или-закрыть-открытый-вопрос"}]},{"group":"ИИ-бухгалтер: предложения","pages":[{"title":"Очередь предложений","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/proposals","href":"/api-reference/ии-бухгалтер:-предложения/очередь-предложений"},{"title":"Карточка предложения","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/proposals/{id}","href":"/api-reference/ии-бухгалтер:-предложения/карточка-предложения"},{"title":"Одобрить и записать в 1С","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/proposals/{id}/approve","href":"/api-reference/ии-бухгалтер:-предложения/одобрить-и-записать-в-1с"},{"title":"Отклонить с причиной","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/proposals/{id}/reject","href":"/api-reference/ии-бухгалтер:-предложения/отклонить-с-причиной"},{"title":"Одобрить пачку предложений","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/proposals/approve-batch","href":"/api-reference/ии-бухгалтер:-предложения/одобрить-пачку-предложений"}]},{"group":"ИИ-бухгалтер: лента","pages":[{"title":"Лента компании","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/feed","href":"/api-reference/ии-бухгалтер:-лента/лента-компании"},{"title":"Новые события ленты потоком SSE","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/feed/events","href":"/api-reference/ии-бухгалтер:-лента/новые-события-ленты-потоком-sse"}]},{"group":"ИИ-бухгалтер: пачки","pages":[{"title":"Разобрать банковскую выписку в предложения","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/batch/bank-statement","href":"/api-reference/ии-бухгалтер:-пачки/разобрать-банковскую-выписку-в-предложения"},{"title":"Поступления по непривязанным входящим ЭСФ","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/batch/esf-purchases","href":"/api-reference/ии-бухгалтер:-пачки/поступления-по-непривязанным-входящим-эсф"},{"title":"Свои задания и выписки дня, свежие сверху","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/batch","href":"/api-reference/ии-бухгалтер:-пачки/свои-задания-и-выписки-дня-свежие-сверху"},{"title":"Задание с отчётом","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/batch/{id}","href":"/api-reference/ии-бухгалтер:-пачки/задание-с-отчётом"},{"title":"Сводка задания для «Одобрить и отправить в 1С»","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/batch/{id}/summary","href":"/api-reference/ии-бухгалтер:-пачки/сводка-задания-для-«одобрить-и-отправить-в-1с»"},{"title":"Прогресс задания потоком SSE","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/batch/{id}/events","href":"/api-reference/ии-бухгалтер:-пачки/прогресс-задания-потоком-sse"},{"title":"Остановить задание","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/batch/{id}/stop","href":"/api-reference/ии-бухгалтер:-пачки/остановить-задание"},{"title":"Выписки DirectBank по дням","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/statements","href":"/api-reference/ии-бухгалтер:-пачки/выписки-directbank-по-дням"},{"title":"Опросить DirectBank сейчас","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/statements/directbank","href":"/api-reference/ии-бухгалтер:-пачки/опросить-directbank-сейчас"}]},{"group":"ЭСФ","pages":[{"title":"Реализации без действующего ЭСФ","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/esf/outgoing","href":"/api-reference/эсф/реализации-без-действующего-эсф"},{"title":"Входящие ЭСФ и поступления в 1С","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/esf/incoming","href":"/api-reference/эсф/входящие-эсф-и-поступления-в-1с"}]},{"group":"Формы","pages":[{"title":"Налоговые формы года","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/forms","href":"/api-reference/формы/налоговые-формы-года"},{"title":"Посчитать форму","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/forms/build","href":"/api-reference/формы/посчитать-форму"},{"title":"Файл формы для КНП ИСНА","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/forms/isna","href":"/api-reference/формы/файл-формы-для-кнп-исна"},{"title":"Примечания к финотчётности","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/forms/notes","href":"/api-reference/формы/примечания-к-финотчётности"},{"title":"Чего не хватает в 1С","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/forms/data-gaps","href":"/api-reference/формы/чего-не-хватает-в-1с"}]},{"group":"1С","pages":[{"title":"Состояние подключения к 1С (без настроек и секретов)","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/onec/status","href":"/api-reference/1с/состояние-подключения-к-1с-без-настроек-и-секретов"}]},{"group":"Автоматизации","pages":[{"title":"Принять событие по адресу хука","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /hooks/{token}","href":"/api-reference/автоматизации/принять-событие-по-адресу-хука"},{"title":"Хуки компании","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/automations/hooks","href":"/api-reference/автоматизации/хуки-компании"},{"title":"Завести хук","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/automations/hooks","href":"/api-reference/автоматизации/завести-хук"},{"title":"Хук","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/automations/hooks/{id}","href":"/api-reference/автоматизации/хук"},{"title":"Удалить хук","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json delete /v1/companies/{co}/automations/hooks/{id}","href":"/api-reference/автоматизации/удалить-хук"},{"title":"Изменить хук","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json patch /v1/companies/{co}/automations/hooks/{id}","href":"/api-reference/автоматизации/изменить-хук"},{"title":"Новый токен хука","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/automations/hooks/{id}/rotate","href":"/api-reference/автоматизации/новый-токен-хука"},{"title":"Пробное событие хука","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/automations/hooks/{id}/test","href":"/api-reference/автоматизации/пробное-событие-хука"},{"title":"Сценарии компании","description":"Доступ: company.read.\n\nДоступно по ключу API.","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/automations/scenarios","href":"/api-reference/автоматизации/сценарии-компании"},{"title":"Завести сценарий","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/automations/scenarios","href":"/api-reference/автоматизации/завести-сценарий"},{"title":"Сценарий","description":"Доступ: company.read.\n\nДоступно по ключу API.","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/automations/scenarios/{id}","href":"/api-reference/автоматизации/сценарий"},{"title":"Заменить сценарий","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json put /v1/companies/{co}/automations/scenarios/{id}","href":"/api-reference/автоматизации/заменить-сценарий"},{"title":"Удалить сценарий","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json delete /v1/companies/{co}/automations/scenarios/{id}","href":"/api-reference/автоматизации/удалить-сценарий"},{"title":"Включить или выключить сценарий","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json patch /v1/companies/{co}/automations/scenarios/{id}","href":"/api-reference/автоматизации/включить-или-выключить-сценарий"},{"title":"Запустить сценарий вручную или на прошлом событии","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/automations/scenarios/{id}/run","href":"/api-reference/автоматизации/запустить-сценарий-вручную-или-на-прошлом-событии"},{"title":"Журнал запусков","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/automations/runs","href":"/api-reference/автоматизации/журнал-запусков"},{"title":"Запуск","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/automations/runs/{id}","href":"/api-reference/автоматизации/запуск"},{"title":"Повторить упавший запуск","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/automations/runs/{id}/retry","href":"/api-reference/автоматизации/повторить-упавший-запуск"},{"title":"Отменить запуск","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/automations/runs/{id}/cancel","href":"/api-reference/автоматизации/отменить-запуск"},{"title":"Пауза автоматизаций компании","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/automations/state","href":"/api-reference/автоматизации/пауза-автоматизаций-компании"},{"title":"Поставить на паузу или снять паузу","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json put /v1/companies/{co}/automations/state","href":"/api-reference/автоматизации/поставить-на-паузу-или-снять-паузу"},{"title":"Доверие ИИ в компании","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/autonomy","href":"/api-reference/автоматизации/доверие-ии-в-компании"},{"title":"Изменить доверие ИИ в компании","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json put /v1/companies/{co}/autonomy","href":"/api-reference/автоматизации/изменить-доверие-ии-в-компании"}]}]}]}]},{"version":"Қазақша","tabs":[{"tab":"Басты бет","pages":[{"title":"Басты бет","href":"/kk"}]},{"tab":"Бастау","pages":[{"title":"Бастау","href":"/kk/start/quickstart"}]},{"tab":"1С қосу","pages":[{"title":"1С қосу","href":"/kk/1c/overview"}]},{"tab":"ЖИ-бухгалтер","pages":[{"title":"ЖИ-бухгалтер","href":"/kk/assistant/ask"}]},{"tab":"Тарифтер және төлем","pages":[{"title":"Тарифтер және төлем","href":"/kk/billing/plans"}]},{"tab":"Аккаунт және команда","pages":[{"title":"Аккаунт және команда","href":"/kk/account/sign-in"}]},{"tab":"Мәселелерді шешу","pages":[{"title":"Мәселелерді шешу","href":"/kk/help/sign-in"}]},{"tab":"Платформа","pages":[{"title":"Платформа","href":"/kk/platform/overview"}]},{"tab":"API","groups":[{"group":"API анықтамалығы","pages":[{"group":"Аккаунт","pages":[{"title":"Мои организации (workspace) с публичными id ws_…","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces","href":"/api-reference/аккаунт/мои-организации-workspace-с-публичными-id-ws_…"}]},{"group":"Компании","pages":[{"title":"Мои компании во всех workspace","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies","href":"/api-reference/компании/мои-компании-во-всех-workspace"},{"title":"Компания","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}","href":"/api-reference/компании/компания"}]},{"group":"Биллинг","pages":[{"title":"Привязать карту (форма ePay)","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/workspaces/{ws}/billing/card-sessions","href":"/api-reference/биллинг/привязать-карту-форма-epay"},{"title":"Привязанные карты","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/billing/payment-methods","href":"/api-reference/биллинг/привязанные-карты"},{"title":"Отвязать карту","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json delete /v1/workspaces/{ws}/billing/payment-methods/{pm}","href":"/api-reference/биллинг/отвязать-карту"},{"title":"Оплатить на форме ePay (с 3-D Secure)","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/workspaces/{ws}/billing/payments/{id}/pay-form","href":"/api-reference/биллинг/оплатить-на-форме-epay-с-3-d-secure"}]},{"group":"Тарифы и расход","pages":[{"title":"Цены моделей","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/usage-rates","href":"/api-reference/тарифы-и-расход/цены-моделей"}]},{"group":"Платформа: баланс и расход","pages":[{"title":"Счёт платформы","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/platform/account","href":"/api-reference/платформа:-баланс-и-расход/счёт-платформы"},{"title":"Настройки платформы","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json put /v1/workspaces/{ws}/platform/account","href":"/api-reference/платформа:-баланс-и-расход/настройки-платформы"},{"title":"Пополнить баланс платформы","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/workspaces/{ws}/platform/purchases","href":"/api-reference/платформа:-баланс-и-расход/пополнить-баланс-платформы"},{"title":"Движения баланса платформы","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/platform/ledger","href":"/api-reference/платформа:-баланс-и-расход/движения-баланса-платформы"},{"title":"Расход платформы","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/platform/usage","href":"/api-reference/платформа:-баланс-и-расход/расход-платформы"},{"title":"Журнал действий организации","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/platform/audit","href":"/api-reference/платформа:-баланс-и-расход/журнал-действий-организации"},{"title":"Журнал запросов по ключам","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/platform/requests","href":"/api-reference/платформа:-баланс-и-расход/журнал-запросов-по-ключам"},{"title":"Пределы платформы и сколько осталось","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/platform/limits","href":"/api-reference/платформа:-баланс-и-расход/пределы-платформы-и-сколько-осталось"}]},{"group":"Ключи API","pages":[{"title":"Кому можно передать ключ","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/api-keys/people","href":"/api-reference/ключи-api/кому-можно-передать-ключ"},{"title":"Ключи API (без секретов)","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/api-keys","href":"/api-reference/ключи-api/ключи-api-без-секретов"},{"title":"Выпустить ключ","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/workspaces/{ws}/api-keys","href":"/api-reference/ключи-api/выпустить-ключ"},{"title":"Ключ","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/api-keys/{id}","href":"/api-reference/ключи-api/ключ"},{"title":"Отозвать ключ (сразу и навсегда)","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json delete /v1/workspaces/{ws}/api-keys/{id}","href":"/api-reference/ключи-api/отозвать-ключ-сразу-и-навсегда"},{"title":"Изменить ключ: имя, срок, месячный потолок, компании и права","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json patch /v1/workspaces/{ws}/api-keys/{id}","href":"/api-reference/ключи-api/изменить-ключ:-имя-срок-месячный-потолок-компании-и-права"},{"title":"Сменить секрет ключа","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/workspaces/{ws}/api-keys/{id}/roll","href":"/api-reference/ключи-api/сменить-секрет-ключа"},{"title":"Передать ключ другому владельцу или админу","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/workspaces/{ws}/api-keys/{id}/transfer","href":"/api-reference/ключи-api/передать-ключ-другому-владельцу-или-админу"},{"title":"Выключить ключ (можно включить обратно)","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/workspaces/{ws}/api-keys/{id}/disable","href":"/api-reference/ключи-api/выключить-ключ-можно-включить-обратно"},{"title":"Включить выключенный ключ","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/workspaces/{ws}/api-keys/{id}/enable","href":"/api-reference/ключи-api/включить-выключенный-ключ"},{"title":"Расход ключа за период","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/api-keys/{id}/usage","href":"/api-reference/ключи-api/расход-ключа-за-период"},{"title":"Ключ, по которому пришёл запрос (кто я)","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/api-key","href":"/api-reference/ключи-api/ключ-по-которому-пришёл-запрос-кто-я"},{"title":"Расход ключа, по которому пришёл запрос","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/api-key/usage","href":"/api-reference/ключи-api/расход-ключа-по-которому-пришёл-запрос"}]},{"group":"Вебхуки","pages":[{"title":"Какие события бывают","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/webhooks/event-types","href":"/api-reference/вебхуки/какие-события-бывают"},{"title":"Счётчик событий месяца","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/webhooks/usage","href":"/api-reference/вебхуки/счётчик-событий-месяца"},{"title":"Адреса вебхуков","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/webhooks/endpoints","href":"/api-reference/вебхуки/адреса-вебхуков"},{"title":"Завести адрес","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/workspaces/{ws}/webhooks/endpoints","href":"/api-reference/вебхуки/завести-адрес"},{"title":"Адрес","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/webhooks/endpoints/{id}","href":"/api-reference/вебхуки/адрес"},{"title":"Удалить адрес","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json delete /v1/workspaces/{ws}/webhooks/endpoints/{id}","href":"/api-reference/вебхуки/удалить-адрес"},{"title":"Поменять адрес","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json patch /v1/workspaces/{ws}/webhooks/endpoints/{id}","href":"/api-reference/вебхуки/поменять-адрес"},{"title":"Секрет подписи адреса","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/webhooks/endpoints/{id}/secret","href":"/api-reference/вебхуки/секрет-подписи-адреса"},{"title":"Новый секрет подписи","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/workspaces/{ws}/webhooks/endpoints/{id}/secret/rotate","href":"/api-reference/вебхуки/новый-секрет-подписи"},{"title":"Пробное событие на адрес","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/workspaces/{ws}/webhooks/endpoints/{id}/test","href":"/api-reference/вебхуки/пробное-событие-на-адрес"},{"title":"Попытки доставки на адрес","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/webhooks/endpoints/{id}/attempts","href":"/api-reference/вебхуки/попытки-доставки-на-адрес"},{"title":"Отправленные события","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/webhooks/messages","href":"/api-reference/вебхуки/отправленные-события"},{"title":"Попытки доставки события","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/workspaces/{ws}/webhooks/messages/{id}/attempts","href":"/api-reference/вебхуки/попытки-доставки-события"},{"title":"Отправить событие на адрес ещё раз","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/workspaces/{ws}/webhooks/messages/{id}/resend","href":"/api-reference/вебхуки/отправить-событие-на-адрес-ещё-раз"},{"title":"Proposalawaiting approval","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook proposal.awaiting_approval","href":"/api-reference/вебхуки/proposalawaiting_approval"},{"title":"Proposalwritten","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook proposal.written","href":"/api-reference/вебхуки/proposalwritten"},{"title":"Proposalfailed","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook proposal.failed","href":"/api-reference/вебхуки/proposalfailed"},{"title":"Paymentsucceeded","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook payment.succeeded","href":"/api-reference/вебхуки/paymentsucceeded"},{"title":"Paymentfailed","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook payment.failed","href":"/api-reference/вебхуки/paymentfailed"},{"title":"Automationruncompleted","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook automation.run.completed","href":"/api-reference/вебхуки/automationruncompleted"},{"title":"Automationrunfailed","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook automation.run.failed","href":"/api-reference/вебхуки/automationrunfailed"},{"title":"Esfincomingreceived","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook esf.incoming.received","href":"/api-reference/вебхуки/esfincomingreceived"},{"title":"Bank statementreceived","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook bank_statement.received","href":"/api-reference/вебхуки/bank_statementreceived"},{"title":"Proposalrejected","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook proposal.rejected","href":"/api-reference/вебхуки/proposalrejected"},{"title":"Batchcompleted","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook batch.completed","href":"/api-reference/вебхуки/batchcompleted"},{"title":"Batchfailed","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook batch.failed","href":"/api-reference/вебхуки/batchfailed"},{"title":"Automationwrite unknown","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook automation.write_unknown","href":"/api-reference/вебхуки/automationwrite_unknown"},{"title":"Automationrunnotice","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook automation.run.notice","href":"/api-reference/вебхуки/automationrunnotice"},{"title":"Chatturncompleted","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook chat.turn.completed","href":"/api-reference/вебхуки/chatturncompleted"},{"title":"Platformbalance low","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook platform.balance_low","href":"/api-reference/вебхуки/platformbalance_low"},{"title":"Platformbalance exhausted","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook platform.balance_exhausted","href":"/api-reference/вебхуки/platformbalance_exhausted"},{"title":"Platformcap threshold reached","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook platform.cap_threshold_reached","href":"/api-reference/вебхуки/platformcap_threshold_reached"},{"title":"Onecconnectionchanged","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook onec.connection.changed","href":"/api-reference/вебхуки/onecconnectionchanged"},{"title":"Api keyexpiring","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook api_key.expiring","href":"/api-reference/вебхуки/api_keyexpiring"},{"title":"Api keycap reached","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook api_key.cap_reached","href":"/api-reference/вебхуки/api_keycap_reached"},{"title":"Ping","version":null,"deprecated":null,"openapi":"https://api.tungo.kz/v1/openapi.json webhook ping","href":"/api-reference/вебхуки/ping"}]},{"group":"ИИ-бухгалтер: чат","pages":[{"title":"Свои разговоры в компании, свежие сверху","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/chat","href":"/api-reference/ии-бухгалтер:-чат/свои-разговоры-в-компании-свежие-сверху"},{"title":"Сообщение ИИ-бухгалтеру (ход потоком SSE)","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/chat","href":"/api-reference/ии-бухгалтер:-чат/сообщение-ии-бухгалтеру-ход-потоком-sse"},{"title":"Разговор целиком","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/chat/{id}","href":"/api-reference/ии-бухгалтер:-чат/разговор-целиком"},{"title":"Стереть свой разговор","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json delete /v1/companies/{co}/chat/{id}","href":"/api-reference/ии-бухгалтер:-чат/стереть-свой-разговор"},{"title":"Переименовать свой разговор","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json patch /v1/companies/{co}/chat/{id}","href":"/api-reference/ии-бухгалтер:-чат/переименовать-свой-разговор"},{"title":"Ответ на уточняющий вопрос ИИ (событие choice)","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/chat/{id}/answer","href":"/api-reference/ии-бухгалтер:-чат/ответ-на-уточняющий-вопрос-ии-событие-choice"},{"title":"Переподключиться к идущему ходу","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/chat/{id}/events","href":"/api-reference/ии-бухгалтер:-чат/переподключиться-к-идущему-ходу"},{"title":"Сколько токенов и денег займёт вопрос, не задавая его","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/chat/count-tokens","href":"/api-reference/ии-бухгалтер:-чат/сколько-токенов-и-денег-займёт-вопрос-не-задавая-его"},{"title":"Остановить ход или закрыть открытый вопрос","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/chat/{id}/stop","href":"/api-reference/ии-бухгалтер:-чат/остановить-ход-или-закрыть-открытый-вопрос"}]},{"group":"ИИ-бухгалтер: предложения","pages":[{"title":"Очередь предложений","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/proposals","href":"/api-reference/ии-бухгалтер:-предложения/очередь-предложений"},{"title":"Карточка предложения","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/proposals/{id}","href":"/api-reference/ии-бухгалтер:-предложения/карточка-предложения"},{"title":"Одобрить и записать в 1С","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/proposals/{id}/approve","href":"/api-reference/ии-бухгалтер:-предложения/одобрить-и-записать-в-1с"},{"title":"Отклонить с причиной","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/proposals/{id}/reject","href":"/api-reference/ии-бухгалтер:-предложения/отклонить-с-причиной"},{"title":"Одобрить пачку предложений","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/proposals/approve-batch","href":"/api-reference/ии-бухгалтер:-предложения/одобрить-пачку-предложений"}]},{"group":"ИИ-бухгалтер: лента","pages":[{"title":"Лента компании","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/feed","href":"/api-reference/ии-бухгалтер:-лента/лента-компании"},{"title":"Новые события ленты потоком SSE","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/feed/events","href":"/api-reference/ии-бухгалтер:-лента/новые-события-ленты-потоком-sse"}]},{"group":"ИИ-бухгалтер: пачки","pages":[{"title":"Разобрать банковскую выписку в предложения","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/batch/bank-statement","href":"/api-reference/ии-бухгалтер:-пачки/разобрать-банковскую-выписку-в-предложения"},{"title":"Поступления по непривязанным входящим ЭСФ","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/batch/esf-purchases","href":"/api-reference/ии-бухгалтер:-пачки/поступления-по-непривязанным-входящим-эсф"},{"title":"Свои задания и выписки дня, свежие сверху","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/batch","href":"/api-reference/ии-бухгалтер:-пачки/свои-задания-и-выписки-дня-свежие-сверху"},{"title":"Задание с отчётом","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/batch/{id}","href":"/api-reference/ии-бухгалтер:-пачки/задание-с-отчётом"},{"title":"Сводка задания для «Одобрить и отправить в 1С»","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/batch/{id}/summary","href":"/api-reference/ии-бухгалтер:-пачки/сводка-задания-для-«одобрить-и-отправить-в-1с»"},{"title":"Прогресс задания потоком SSE","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/batch/{id}/events","href":"/api-reference/ии-бухгалтер:-пачки/прогресс-задания-потоком-sse"},{"title":"Остановить задание","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/batch/{id}/stop","href":"/api-reference/ии-бухгалтер:-пачки/остановить-задание"},{"title":"Выписки DirectBank по дням","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/statements","href":"/api-reference/ии-бухгалтер:-пачки/выписки-directbank-по-дням"},{"title":"Опросить DirectBank сейчас","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/statements/directbank","href":"/api-reference/ии-бухгалтер:-пачки/опросить-directbank-сейчас"}]},{"group":"ЭСФ","pages":[{"title":"Реализации без действующего ЭСФ","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/esf/outgoing","href":"/api-reference/эсф/реализации-без-действующего-эсф"},{"title":"Входящие ЭСФ и поступления в 1С","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/esf/incoming","href":"/api-reference/эсф/входящие-эсф-и-поступления-в-1с"}]},{"group":"Формы","pages":[{"title":"Налоговые формы года","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/forms","href":"/api-reference/формы/налоговые-формы-года"},{"title":"Посчитать форму","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/forms/build","href":"/api-reference/формы/посчитать-форму"},{"title":"Файл формы для КНП ИСНА","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/forms/isna","href":"/api-reference/формы/файл-формы-для-кнп-исна"},{"title":"Примечания к финотчётности","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/forms/notes","href":"/api-reference/формы/примечания-к-финотчётности"},{"title":"Чего не хватает в 1С","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/forms/data-gaps","href":"/api-reference/формы/чего-не-хватает-в-1с"}]},{"group":"1С","pages":[{"title":"Состояние подключения к 1С (без настроек и секретов)","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/onec/status","href":"/api-reference/1с/состояние-подключения-к-1с-без-настроек-и-секретов"}]},{"group":"Автоматизации","pages":[{"title":"Принять событие по адресу хука","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /hooks/{token}","href":"/api-reference/автоматизации/принять-событие-по-адресу-хука"},{"title":"Хуки компании","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/automations/hooks","href":"/api-reference/автоматизации/хуки-компании"},{"title":"Завести хук","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/automations/hooks","href":"/api-reference/автоматизации/завести-хук"},{"title":"Хук","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/automations/hooks/{id}","href":"/api-reference/автоматизации/хук"},{"title":"Удалить хук","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json delete /v1/companies/{co}/automations/hooks/{id}","href":"/api-reference/автоматизации/удалить-хук"},{"title":"Изменить хук","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json patch /v1/companies/{co}/automations/hooks/{id}","href":"/api-reference/автоматизации/изменить-хук"},{"title":"Новый токен хука","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/automations/hooks/{id}/rotate","href":"/api-reference/автоматизации/новый-токен-хука"},{"title":"Пробное событие хука","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/automations/hooks/{id}/test","href":"/api-reference/автоматизации/пробное-событие-хука"},{"title":"Сценарии компании","description":"Доступ: company.read.\n\nДоступно по ключу API.","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/automations/scenarios","href":"/api-reference/автоматизации/сценарии-компании"},{"title":"Завести сценарий","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/automations/scenarios","href":"/api-reference/автоматизации/завести-сценарий"},{"title":"Сценарий","description":"Доступ: company.read.\n\nДоступно по ключу API.","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/automations/scenarios/{id}","href":"/api-reference/автоматизации/сценарий"},{"title":"Заменить сценарий","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json put /v1/companies/{co}/automations/scenarios/{id}","href":"/api-reference/автоматизации/заменить-сценарий"},{"title":"Удалить сценарий","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json delete /v1/companies/{co}/automations/scenarios/{id}","href":"/api-reference/автоматизации/удалить-сценарий"},{"title":"Включить или выключить сценарий","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json patch /v1/companies/{co}/automations/scenarios/{id}","href":"/api-reference/автоматизации/включить-или-выключить-сценарий"},{"title":"Запустить сценарий вручную или на прошлом событии","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/automations/scenarios/{id}/run","href":"/api-reference/автоматизации/запустить-сценарий-вручную-или-на-прошлом-событии"},{"title":"Журнал запусков","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/automations/runs","href":"/api-reference/автоматизации/журнал-запусков"},{"title":"Запуск","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/automations/runs/{id}","href":"/api-reference/автоматизации/запуск"},{"title":"Повторить упавший запуск","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/automations/runs/{id}/retry","href":"/api-reference/автоматизации/повторить-упавший-запуск"},{"title":"Отменить запуск","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json post /v1/companies/{co}/automations/runs/{id}/cancel","href":"/api-reference/автоматизации/отменить-запуск"},{"title":"Пауза автоматизаций компании","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/automations/state","href":"/api-reference/автоматизации/пауза-автоматизаций-компании"},{"title":"Поставить на паузу или снять паузу","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json put /v1/companies/{co}/automations/state","href":"/api-reference/автоматизации/поставить-на-паузу-или-снять-паузу"},{"title":"Доверие ИИ в компании","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json get /v1/companies/{co}/autonomy","href":"/api-reference/автоматизации/доверие-ии-в-компании"},{"title":"Изменить доверие ИИ в компании","deprecated":null,"version":null,"openapi":"https://api.tungo.kz/v1/openapi.json put /v1/companies/{co}/autonomy","href":"/api-reference/автоматизации/изменить-доверие-ии-в-компании"}]}]}]}]}]}]},"basePath":"","title":"Завести сценарий - Tungo","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CybtLBIt.js","utils-BMLj2fvV.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-B6In562Y.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dr8Mfhp9.js","snippetPresets-2rmQvMVl.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-WMqJYdZj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CJ-MlPHu.js","shallow-dY3TMRCk.js","getApiPlaygroundDisplay-v-1B2bKm.js","CodeSnippet-BDhiTB7U.js","CodeSnippets-D9hnzQcS.js","Page-C4GwDT3_.js","getPastedJson-Th2V45jI.js","icon-BQXch1W9.js","MethodPill-BCqUneP3.js","DuplicateIcon-Q_-bhurZ.js","createIcon-DUjLHRqp.js","DynamicMarkdown-B-f2cqXQ.js","SectionHeading-Da5NsV4v.js","axios-vUo_bRtp.js","Markdown-D13FWkIM.js","clsx-D3Isdib3.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-C-XZBk9h.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink--qIqmmVG.js"]}