> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.6mm.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.6mm.com/_mcp/server.

# Agent SDK Секреты и HMAC подписи

Agent SDK запросы аутентифицируются у партнёра API секрете. Держите этот секрет внутри надёжного сервера и позволяйте SDK генерировать поля подписи, когда это возможно.

> **Два протокола подписания**
>
> Agent SDK подписание использует отсортированные поля запроса, временную метку на основе секунд и nonce. Прямой разработчик API запросов использует отдельный процесс, описанный в [Request Signing](/ru/developer-api/request-signing). Не используйте один формат полезной нагрузки для другого.

<h2 id="signing-rule">
  Правило подписания
</h2>

Для Agent SDK запросов:

1. Исключить поле `sign` .
2. Исключить поля с пустыми значениями.
3. Отсортировать оставшиеся имена полей в ASCII порядке.
4. Присоединяйтесь к полям как `k=v&k2=v2`.
5. Вычислим HMAC-SHA256 шестнадцатеричную подпись с `apiSecret`.

SDK должен строить это значение на основе тех же данных, которые он отправляет. Изменение подписанного поля после генерации подписи приводит к ошибке верификации.

<h2 id="sdk-managed-fields">
  SDK- управляемые поля
</h2>

| Поле            | Источник                      | Описание                                             |
| --------------- | ----------------------------- | ---------------------------------------------------- |
| agentCode       | SDK конфигурация              | Код агента партнёра.                                 |
| Временная метка | Текущее время сервера         | Тайммет Unix за секунды.                             |
| nonce           | Безопасное случайное значение | Случайная строка с защитой от повтора.               |
| Знак            | HMAC-SHA256                   | Запрашиваю подпись.                                  |
| Валюта          | Стандартная валюта            | Используется при переводе/счёте API опускают валюту. |

<h2 id="secret-storage">
  Секретное хранение
</h2>

* Загружать `apiSecret` из серверного менеджера секретов или защищённой конфигурации во время выполнения.
* Никогда не размещайте секрет в фронтенд-пакетах, мобильных приложениях, десктопных клиентах, скриншотах или заявках в поддержку.
* Держать учетные данные для разработки, стадирования и производства отдельно.
* Ограничить доступ к сервисам и операторам, которым он необходим.
* Редактировать подписи запросов, значения авторизации и секреты из логов.
* Аннулировать и заменять удостоверения при подозрении в воздействии.

<h2 id="clock-and-replay-protection">
  Защита от часов и повторов
</h2>

SDK включает `timestamp` и `nonce` для снижения риска повторного прохождения. Поддерживайте синхронизацию бэкенд-тактирования и не используйте вручную собранный nonce. Если проверка подписи не удаётся, перед повторной попыткой проверьте установленный секрет, серверное время, сериализированные поля и окружение.

<h2 id="integration-checklist">
  Чек-лист интеграции
</h2>

| Проверено                | Ожидаемый результат                                                      |
| ------------------------ | ------------------------------------------------------------------------ |
| Секретное местоположение | Секретное хранилище только для бэкенда.                                  |
| Окружающая среда         | Базовый URL и удостоверительный статус относятся к одной и той же среде. |
| Полевые работы           | SDK генерирует `timestamp`, `nonce`и `sign`.                             |
| Лесозаготовка            | Бизнес-ID остаются видимыми, а учетные данные скрыты.                    |
| Ротация                  | Процесс подтверждения владельца и замены документирован.                 |

<h2 id="related-security-docs">
  Связанные документы по безопасности
</h2>

#### [Agent SDK Обзор](/ru/sdk/agent-sdk/overview)

Ознакомьтесь с рекомендуемым процессом интеграции бэкенда.

#### [Вебхуки и идемпотентность](/ru/sdk/security/webhooks-idempotency)

Проверяйте подписи обратного вызова и предотвращайте дублирование обработки.

#### [SDK Устранение неисправностей](/ru/sdk/security/troubleshooting)

Диагностировать проблемы с подписями, часами, окружением и запросами.