> 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.

# Рекомендации по интеграции

> Применяйте рекомендованные 6MM практики для аутентификации, повторных попыток, идентификации, ведения журналов, управления тарифами, мониторинга, безопасности и готовности к запуску.

Используйте эти рекомендации как базу готовности к производству. Они дополняют конечную точку и помогают интеграциям безопасно восстанавливаться после тайм-аутов, повторных подключений, дублированных запросов и инцидентов с учетными данными.

<h2 id="authentication-and-secrets">
  Аутентификация и секреты
</h2>

* Предпочтение [API Key подписи](/ru/developer-api/authentication) для серверных торговых программ и JWT для пользовательских фронтенд-действий.
* Храните `apiSecret` в управлении секретами на сервере. Он отображается только один раз и никогда не должен отправляться в браузер или мобильный клиент.
* Применять минимально необходимые API Key разрешения и ограничивать исходные IP, когда среда интеграции поддерживает стабильные адреса выхода.
* Немедленно отключить или удалить утечку ключа, затем проверить журналы запросов перед выдачей замены.

<h2 id="request-validation-and-idempotency">
  Запрос валидации и идемпотентности
</h2>

* Перед размещением заказов выполните запрос `/v1/public/market/symbols` и локально проверяйте `tickSize`, `stepSize`, минимальное номинальное значение и максимальное количество.
* Генерировать уникальный `clientOrderId` для каждого записи ордера, чтобы запросы можно было сверить после разрыва.
* Сохранить исходный идентификатор, когда результат HTTP неопределён. Запросить существующий ордер перед созданием запроса на замену.
* Рассматривать десятичные числа и цены как строки или десятичные типы, а не бинарные значения с плавающей точкой.

<h2 id="order-and-websocket-state">
  Ордер и состояние WebSocket
</h2>

* Определить окончательное состояние после операций cancel, cancel-all или изменения из [private WebSocket events](/ru/developer-api/websocket/private-user-channel) или REST запроса.
* Воспринимать каждое повторное подключение как новую WebSocket сессию и восстанавливать все необходимые подписки.
* Проверьте непрерывность книги заказов с помощью `endVersion`. Если появляется пробел в версии, отбросьте локальную книгу и заново подпишитесь для нового снимка.
* Дедупликация частных событий заказов и счетов перед их применением к балансам, позициям или записям партнёров.

<h2 id="logging-monitoring-and-retries">
  Логирование, мониторинг и повторные попытки
</h2>

* Запись запроса ID, ID заказа клиента, HTTP статус, API бизнес-кода, задержки и количество повторных попыток без логирования секретов или полных токенов.
* Повторять только операции, задокументированные как безопасные, используя ограниченный экспоненциальный откат и джиттер.
* Оповещения о сбоях аутентификации, ошибках подписи, ответах с ограничением скорости, циклах WebSocket повторного подключения, пробелах последовательностей и различиях в сверке ордеров.
* Синхронизировать часы сервера, поскольку аутентификация и подпись зависят от временных меток.

<h2 id="before-production">
  До производства
</h2>

* Выполнять тайм-аут, дублировать запросы, повторное подключение, вращать ключ и повторные сценарии вебхука в непроизводственной среде.
* Назначать владельцев для ротации учетных данных, торговых инцидентов, сбоев вебхуков и сверки.
* Заполнить [чек-лист запуска производства](/ru/resources/production-launch-checklist) и использовать [шаблон запроса поддержки](/ru/resources/support-request-template) при необходимости эскалации.