Активации

Товары с needs_activation включаются на аккаунте ВАШЕГО клиента: после выдачи в заказе появляется активация, и ей нужны данные клиента.

Обновлено 26 сентября 2026 г. · 5 мин чтения
Markdown

Как проходит активация

  1. in_progressОпределяем, что просить

    Сразу после выдачи: у одного товара бывают партии разных поставщиков. Пока вид не определён, спрашивать клиента не о чем.

  2. awaiting_customerЖдём данные клиента

    Пришло событие activation.needs_input (в нём credential_kind и подсказка hint) — или читайте GET /v1/activations/{id}. Отправьте данные: POST /v1/activations/{id}/credential с {"value": "…"} и Idempotency-Key.

  3. in_progressУ поставщика

    События activation.submitted, затем activation.in_progress; делать ничего не нужно.

  4. activatedПодписка включена

    activation.activated.

Если сразу не вышло
failed
Не вышло
activation.failed, причина — в reason_code
manual
Разбирает человек
activation.manual
awaiting_customer
Снова нужен клиент
Проверка по ссылке (activation.verification_required) или новые данные

Поле state: awaiting_customer · in_progress · manual · failed · activated · canceled — отменена, например при возврате.

Сессию целиком

full_session: true — поставщику нужна сессия целиком: не вырезайте из неё поля.

Проверка по ссылке

verification_url — сервис просит клиента пройти проверку (событие activation.verification_required); ссылка ведёт только на домены сервиса.

Повтор не в цикле

POST /v1/activations/{id}/retry — повтор на тех же данных. Каждая подача и каждый повтор тратят попытку на реальном ключе.

Что просить у клиента

Вид данных становится известен после выдачи: ждите activation.needs_input — в нём credential_kind и подсказка hint.

Claude
session_key

Session key аккаунта Claude. Достаётся только расширением Claude Session Key при активном входе на claude.ai — начинается с sk-ant-sid02-…. С телефона получить его нельзя, нужен компьютер

claude_uid

Organization ID аккаунта Claude: claude.ai/settings/account, в самом низу раздела Account. В командном пространстве этот ID принадлежит КОМАНДЕ — сначала переключитесь на личное

ChatGPT
access_token

Данные аккаунта ChatGPT: откройте chatgpt.com/api/auth/session и вставьте весь ответ целиком — мы возьмём из него только идентификатор аккаунта. Если знаете свой account_id, можно вставить только его

chatgpt_session

Данные сессии ChatGPT: откройте chatgpt.com/api/auth/session и скопируйте ВЕСЬ ответ — от «{» до «}». Одного account_id недостаточно

Grok
grok_uid

UID аккаунта Grok из настроек профиля

Оплата нашей картой
account_email

Почта аккаунта у сервиса (card_pay «на аккаунте клиента»); дальше — ссылка входа из письма сервиса

Почему активация встала

Код причины — reason_code в активации и событиях; наш текст для клиента приходит полем reason_text, дата — отдельным полем reason_until:

Нужен шаг клиента
account_has_planУже действует платный тариф: дождаться окончания или включить поверх — force
account_workspaceПрислали рабочее пространство — нужен личный профиль
session_invalidДанные не подошли — скопировать заново целиком
recent_activationНедавняя активация — повторить через несколько часов
Ничего не нужно — занимаемся мы
provider_out_of_stockНет свободных мест у поставщика
key_usedКлюч не принят поставщиком — выдадим новый
provider_temporaryВременный сбой поставщика — продолжим сами
service_unknownГотовим активацию — данные попросим, когда будет пора
Например, текст для account_has_plan:
На аккаунте уже действует платный тариф — сервис не пропустит вторую подписку. Отмена тарифа этого не меняет: он работает до конца оплаченного периода. Дождитесь окончания и нажмите «Активировать» — ключ не потрачен, данные вводить заново не нужно.

Неверный формат

Формат проверяем до поставщика: неверный — 422 credential_invalid с причиной (reason), ключ не тронут. Непривычный, но допустимый формат принимается с warning (credential_warning).

Нужна сессия целиком
expected_session_jsonнужен весь JSON со страницы сервиса
expected_session_json_got_uuidприслан идентификатор
expected_session_json_got_tokenприслан токен
session_json_brokenсессия обрезана или повреждена — скопировать заново
session_json_logged_outв сессии нет входа — войти в сервис и скопировать снова
session_json_no_accountв сессии нет идентификатора аккаунта
session_json_no_session_tokenв сессии нет sessionToken, а этому поставщику он нужен
Нужен session key
expected_session_keyнужен session key (sk-ant-sid…)
expected_session_key_got_uuidприслан UUID
Нужен UUID организации
expected_uuid_got_session_keyприслан session key
expected_uuid_got_jwtприслан JWT
uuid_incompleteUUID обрезан при копировании
Прочее
too_shortзначение слишком короткое — скопировано не целиком
expected_emailнужна почта аккаунта
looks_like_emailприслана почта, а нужен идентификатор или ключ
looks_like_textприслан текст, а не значение: кириллица, фраза со страницы
Принято с warning — стоит переспросить клиента
session_json_unfamiliarсессия непривычного вида
unexpected_formatформат не похож на ожидаемый

Отказ действия

Отказ действия — 409 invalid_state с причиной:

reason Что это
kind_unknown что просить, ещё не определено (или это «новый аккаунт от нас» — просить нечего)
login_started вход по почте уже начат — нужна ссылка входа, а не новая почта
provider_ref_live заявка уже у поставщика — данные под ней менять нельзя
manual активацией занимается наш сотрудник (state: manual) — ни повтор, ни новые данные не принимаются, ждите события
no_credential повторять нечем — данные ещё не присылали
force_unavailable «включить поверх тарифа» здесь неуместно
terminal активация уже завершена или отменена

У действий с одной активацией свой лимит в минуту (раздел «Лимиты»; превышение — 429 rate_limited · activation).

Страница помогла?