> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hubtalk.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Согласие, реестр и зона ответственности

> Подтверждение согласия, реестр «не звонить» и что платформа делает сама, а что остаётся вам.

# Согласие, реестр и зона ответственности

## Подтверждение согласия и цель обзвона

Перед запуском платформа требует подтвердить, что у вас есть согласие абонентов на звонки. В кабинете это галочка с юридическим текстом; через API — поле `attestation` в запросе. Без него кампания создаётся, но остаётся черновиком с причиной «нужна подпись».

Подпись ставится **ключом**, а человеческое звено — сотрудник, выпустивший ключ ([Ключ доступа](/ru/v4/web-api/start)). Подпись привязана к конкретной версии данных: подтверждение, данное под одним списком номеров, не переносится на следующий. Загрузили новый список или добавили партию номеров — подтверждаете заново.

**Цель обзвона** (`classification`) — чем именно вы звоните:

| Значение          | Про что                                         | Тип согласия                                 |
| ----------------- | ----------------------------------------------- | -------------------------------------------- |
| `marketing`       | предложения, реклама, опросы                    | `pewc` — письменное согласие (самый строгий) |
| `servicing`       | обслуживание: напоминания, уведомления, статусы | `pec` — явное согласие                       |
| `debt_collection` | взыскание задолженности                         | `pec` — явное согласие                       |

От цели зависит **тип согласия** (`consent_tier`) — какой именно юридический текст вы подписываете. Поэтому платформа её не угадывает: не указали — берётся `marketing`, самый строгий вариант. В ответе приходит и цель, и получившийся тип, чтобы вы видели, под каким текстом подписались.

## Реестр «не звонить»

Номера из реестра вашей организации платформа находит **до** первого звонка и перечисляет поимённо. Проверяется каждая читаемая строка списка до удаления дублей: поэтому три строки одного номера — это три совпавшие строки, но один исключённый номер. Строки с нечитаемым телефоном считаются «непроверенными», а ноль совпадений всегда возвращается явным статусом `clean`, а не выводится из пустого списка. Запуск при этом останавливается.

Дальше решаете вы:

* **оставить блокировку** (`dnc: "block"`, значение по умолчанию) — совпавшие номера не набираются;
* **подтвердить обзвон** (`dnc: "skip"`) — платформа записывает это решение в аудит ровно так же, как кнопку в кабинете, с указанием, к какой загрузке **и к какому точному составу совпадений** оно относится. Появилась новая запись реестра по тому же списку — согласие сбрасывается, и проверка запуска снова показывает обновлённый список совпадений.

Если в реестре оказались **все набираемые номера**, подтверждать нечего — запуск останавливается безусловно. Непосредственно перед запуском платформа снова читает живой реестр и сохраняет его «снимок» вместе с подписью; после запуска карточка кампании и отчёт о совпадениях показывают именно этот снимок, даже если реестр потом менялся. Номера, попавшие в реестр уже по ходу кампании, всё равно не набираются — прогресс кампании считает их отдельно.

<Warning>
  Для партий номеров, добавляемых в уже созданную кампанию ([Согласие и ответственность](/ru/v4/web-api/rules)), правило жёстче: совпадение с реестром не «останавливает запуск», а **отклоняет всю партию** — подтвердить обзвон таких номеров через добавление нельзя.
</Warning>

## Что платформа делает сама, а что остаётся вам

**Делает платформа:** разбор номеров и переменных, дубли, реестр «не звонить», география и законное окно звонков (США), окно обзвона организации, темп обзвона, повторы недозвонов, ограничение частоты звонков на номер, часовые пояса контактов, записи разговоров, разбор результатов.

**Остаётся вам:** решить, когда запускать кампанию и с каким списком; хранить у себя связь между вашими сущностями и кампанией; читать прогресс, если нужен статус в вашем интерфейсе; получать результаты звонков ([вебхуки](/ru/v4/webhooks) по каждому звонку работают так же, как для отдельных звонков).

**Про повторы недозвонов.** По умолчанию кампания делает **одну попытку** на номер и никого не перезванивает. Если хотите, чтобы платформа перезванивала сама, задайте число попыток и паузу между ними (`retry_config`). Если перезвонами управляет ваша система (повторно присылает номер как собственный перезвон), оставьте одну попытку — иначе перезвон получится двухуровневым: ваш плюс платформенный. Повторно присланный номер, по которому кампания уже звонила, принимается как новый звонок и набирается снова.

**Про рабочие часы.** Если вы не задали кампании рабочие часы, это не значит «звонить круглосуточно»: платформа звонит в пределах окна обзвона вашей организации (а в США — в пределах законного окна юрисдикции абонента). Часы кампании могут только **сужать** это окно; попытка задать более широкие часы отклоняется сразу.

**Добавить номера в уже созданную кампанию** — можно, отдельным запросом `POST /v1/campaigns/{id}/calls`: партия несёт номера и подпись, а агент, линия, рабочие часы и повторы берутся из кампании. Работает для любой незакрытой кампании — черновика, запланированной, идущей или приостановленной. Правила, о которых надо знать заранее:

* **партия принимается целиком или отклоняется целиком.** Одна нечитаемая строка — и не уйдёт ни один номер из партии (`calls_rejected`); один номер из реестра «не звонить» — тоже вся партия, но своим кодом (`calls_dnc_matched`), чтобы ваша система отличала «исправить данные» от «убрать этих людей из базы». Ответ несёт разбор отклонённой партии с номером загрузки и первыми строками; полный отчёт — как у любой загрузки;
* **партия принимается и тогда, когда кампания сейчас не звонит** — например, стоит на паузе. Ответ скажет, что номера приняты, и назовёт причину простоя (`campaign_paused`); набор продолжится после возобновления;
* **обычная кампания закрывается сама, когда очередь опустела** — и после этого номера в неё не принимаются вовсе. Чтобы кампания ждала номера, создайте её **открытой к добавлению звонков**: `accepts_call_additions: true` с обязательной датой окончания (не дальше 30 суток). Такую кампанию можно создать пустой, наполнять партиями и закрыть отменой либо дождаться даты. Признак задаётся при создании и потом не меняется;
* в одной партии — **не больше 1000 номеров**; больше — разбивайте.

**Сознательно не делается** — не ищите этих возможностей, их нет:

* **отдельное событие «кампания завершилась».** Состояние читается запросом прогресса или карточки кампании;
* **отдельная выдача результатов кампании с расшифровками.** Результаты читаются как обычные звонки;
* **разные права у разных ключей.** Ключ либо есть, либо нет; ограничение доступа по разделам не предусмотрено.
