Skip to content

Безопасность интеграции ​

Краткие правила безопасной интеграции с Eleven Pay.

Чек‑лист ​

  • [ ] API‑ключ используется только на сервере; его нет в браузере/мобильном клиенте.
  • [ ] Все вызовы — по HTTPS.
  • [ ] На каждую логическую команду создания — свой Idempotency-Key; повтор с тем же ключом и телом.
  • [ ] Подпись вебхука проверяется по сырым байтам тела до разбора JSON.
  • [ ] Проверка временной метки вебхука (окно ±5 минут).
  • [ ] Сравнение подписи — в постоянном времени; поддержаны несколько v1.
  • [ ] Дедупликация вебхуков по X-ElevenPay-Event-Id.
  • [ ] Проверка заказа, суммы и валюты перед выдачей.
  • [ ] Секреты и заголовок Authorization не логируются.
  • [ ] Есть путь сверки через GET для случаев неопределённости.

Дополнительно для счетов Cashier ​

  • [ ] «Оплачено» ставится только после подтверждённого расчёта (подписанный payment.succeeded, либо GET со status: "succeeded" и settled: true) — не по ответу создания и не по возврату плательщика.
  • [ ] Стабильный Idempotency-Key хранится вместе с заказом до первого запроса; при потере ответа повтор идёт с тем же ключом и телом.
  • [ ] Неопределённый исход (unknown, нет ответа, 409 ambiguous_create_blocked) не приводит к созданию второго счёта.
  • [ ] Просроченный на вашей стороне заказ с проверенным платежом уходит на ручной разбор, а не теряется; срок на вашей стороне ничего не отменяет в Eleven Pay.
  • [ ] Телефон плательщика не логируется и не показывается в интерфейсе целиком; в ответах Eleven Pay его нет.
  • [ ] Ключ с возможностью cashier.invoice.create хранится отдельно от прочих ключей и имеет минимальные права; изоляция организаций обеспечивается ключом — не передавайте идентификаторы организации.
  • [ ] Существующая живая платёжная интеграция сайта не меняется без явного решения владельца; новая — за флагом, выключенным по умолчанию.

Хранение ключей и секретов ​

  • API‑ключ и секрет подписи вебхука — серверные секреты. Храните в переменных окружения или менеджере секретов, не в исходном коде и не в Git.
  • Оба показываются в кабинете один раз. Потеряли — создайте/отзовите заново.

Логирование ​

Не логируйте:

  • полный API‑ключ и заголовок Authorization;
  • секрет подписи вебхука;
  • значение QR‑действия (action.value) — по возможности.

reference и merchant_order_id можно логировать согласно вашей политике данных.

Ротация секрета вебхука ​

При ротации выдаётся новый секрет (показывается один раз). Eleven Pay некоторое время подписывает текущим и предыдущим секретом (перекрытие), поэтому проверяйте несколько v1. Обновите верификатор на новый секрет до следующей ротации. Фиксированной длительности перекрытия нет.

Ротация API‑ключа ​

Отдельного endpoint ротации нет — используйте перекрытие несколькими ключами: создайте новый → разверните → проверьте → отзовите старый.

SSRF и адреса вебхуков ​

Адрес вебхука проверяется на стороне Eleven Pay (только HTTPS, доменный хост, без учётных данных/запроса/ фрагмента, не IP‑литерал) для защиты от SSRF. Доставка не следует за редиректами — ваш endpoint должен отвечать напрямую.

Поддержка ​

По вопросам подключения и доступности приёма платежей обращайтесь к вашему представителю Eleven Pay по онбордингу.