---
title: "Включить или выключить правило автоматизации"
method: POST
path: "/api/v1/automation/rules/{id}/enabled"
tags: ["Automation"]
---

# Включить или выключить правило автоматизации

`POST /api/v1/automation/rules/{id}/enabled`

## Request

- Base URL: `https://erp.akeda.ru`
- URL: `https://erp.akeda.ru/api/v1/automation/rules/{id}/enabled`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://erp.akeda.ru/oauth2/authorize`, token URL `https://erp.akeda.ru/oauth2/token`, scopes: `akeda:delegate`)

Выключение исполняется сразу. Включённое правило реагирует только на
факты после включения.

Правило с действием, уходящим за пределы кабинета (письмо наружу,
доставка бумаги), без `allow_external_send: true` и правило с действием,
которое выпускает учётные документы или двигает товар и деньги (счёт,
акт, УПД, отгрузка), без `allow_money_posting: true` не включаются:
ответ 428 с предпросмотром — что включается, какие действия требуют
согласия (`required`) и прогон на 30 днях истории (срабатывания,
отправки наружу, документы и движения). Агенту MCP вызов с этими
признаками исполняется только после подтверждения человеком. Правило
без таких действий включается без подтверждения.

## Path parameters

- `id` string, uuid, required

## Query parameters

- `locale` 'ru' | 'en'

## Headers

- `X-Tenant` string, required

## Request body

- object
  - `enabled` boolean, required
  - `allow_external_send` boolean: Человек согласился, что правило будет отправлять за пределы кабинета
  - `allow_money_posting` boolean: Человек согласился, что правило будет выпускать учётные документы или двигать товар и деньги

## Response `200`

Правило после переключения

- AutomationRuleEnvelope
  - `rule` AutomationRuleDocument, required
    - `id` string, uuid, required
    - `name` string, required
    - `event_type` string, required
    - `condition` string, required: Выражение вычислителя; у правила из конструктора собрано из conditions
    - `conditions` object[], required
      - `field` string, required
      - `op` string, required
      - `value` string
      - `value_to` string
      - `of` string
      - `group` integer
    - `actions` AutomationRuleBlock[], required: Путь «Если да»: действия и паузы по порядку (ERP-1932)
      - `id` string
      - `kind` 'action' | 'wait': Пусто — действие
      - `command` string
      - `inputs` object
      - `wait` object: Пауза: after_event — через amount единиц unit от начала паузы; relative_to_field — до даты поля field (± amount); cancel_on — события, факт которых по той же записи прекращает правило
        - `kind` 'after_event' | 'relative_to_field'
        - `amount` integer
        - `unit` 'minutes' | 'hours' | 'days' | 'working_days'
        - `direction` 'before' | 'after'
        - `field` string
        - `at` string
        - `cancel_on` string[]
    - `branches` AutomationRuleBranch[]: «Если ещё …»: до трёх путей со своим условием, проверяются по порядку
      - `id` string
      - `condition` string: Выражение, собранное сервером из conditions
      - `conditions` object[], required
        - `field` string, required
        - `op` string, required
        - `value` string
        - `value_to` string
        - `of` string
        - `group` integer
      - `actions` AutomationRuleBlock[], required
        - `id` string
        - `kind` 'action' | 'wait': Пусто — действие
        - `command` string
        - `inputs` object
        - `wait` object: Пауза: after_event — через amount единиц unit от начала паузы; relative_to_field — до даты поля field (± amount); cancel_on — события, факт которых по той же записи прекращает правило
          - `kind` 'after_event' | 'relative_to_field'
          - `amount` integer
          - `unit` 'minutes' | 'hours' | 'days' | 'working_days'
          - `direction` 'before' | 'after'
          - `field` string
          - `at` string
          - `cancel_on` string[]
    - `otherwise` AutomationRuleBlock[]: «Иначе»: блоки, когда не подошло ни одно условие; пусто — правило промолчит
      - `id` string
      - `kind` 'action' | 'wait': Пусто — действие
      - `command` string
      - `inputs` object
      - `wait` object: Пауза: after_event — через amount единиц unit от начала паузы; relative_to_field — до даты поля field (± amount); cancel_on — события, факт которых по той же записи прекращает правило
        - `kind` 'after_event' | 'relative_to_field'
        - `amount` integer
        - `unit` 'minutes' | 'hours' | 'days' | 'working_days'
        - `direction` 'before' | 'after'
        - `field` string
        - `at` string
        - `cancel_on` string[]
    - `after_rule_id` string: Очередь (ERP-1613): правило ждёт, пока выполнится правило с этим id на тот же факт; пусто — сразу
    - `doc_version` integer: Версия языка документа правила (rule.schema.json); 2 — пути, паузы и результаты шагов
    - `executor_user_id` integer, required
    - `is_enabled` boolean, required
    - `origin` 'manual' | 'configuration', required
    - `version` integer, required
    - `created_by` integer
    - `created_at` string, date-time
    - `updated_at` string, date-time

## Other responses

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

---

[API](https://skmtc.dev/akeda/apis/akeda-erp-client-api.md) · [All operations](https://skmtc.dev/akeda/apis/akeda-erp-client-api/llms.txt) · [OpenAPI document](https://skmtc.dev/akeda/apis/akeda-erp-client-api/revisions/3c60ded179f2?raw)
