Безопасность без громких слов
Рассказываем, как на самом деле устроена защита платежей и данных: что делаем мы, что делает лицензированный платёжный партнёр и что остаётся на вашей стороне.
- TLS 1.2+ и HSTS
- Подпись HMAC-SHA256
- KYC у партнёра
Что защищает платёж и ваш аккаунт
TLS 1.2+ и HSTS
Сайт, кабинет, API и страница оплаты работают только по HTTPS с современными шифрами. Заголовок HSTS запрещает браузеру откатываться на незащищённое соединение.
Данные карт не хранятся у нас
Номер карты покупатель вводит на защищённой странице оплаты, обработку выполняет лицензированный партнёр. В кабинете и API видны только платёжная система и последние четыре цифры.
Секретные ключи показываем один раз
Ключ API виден только в момент создания — повторно его не покажет ни кабинет, ни поддержка. Потеряли ключ — выпустите новый и отзовите старый в один клик.
Тестовый и боевой контуры разделены
Ключи sk_test_ работают только в песочнице и не могут провести реальное списание. Данные песочницы не смешиваются с боевыми платежами.
Адрес USDT — под конкретную сеть
Для каждого платежа страница оплаты показывает адрес и сумму только в выбранной сети и ведёт счёт подтверждений. Адрес для выплат в кабинете проверяется на соответствие формату сети.
Проверка для всех, кто подключается
Компании, ИП, самозанятые и частные лица проходят проверку у лицензированного партнёра. Без неё боевые ключи не выдаются — ни по просьбе, ни «временно».
Каждому — только нужные права
Доступ в кабинет выдаётся по приглашению: регистрации «с улицы» нет. Владелец приглашает сотрудников и назначает роли, сессия хранится в защищённой cookie, недоступной скриптам страницы.
- Приглашение в команду — по одноразовой ссылке
- Удалить сотрудника из команды можно в настройках кабинета
- Ключи API привязаны к магазину, а не к сотруднику
| Раздел | Владелец | Администратор | Разработчик | Бухгалтер |
|---|---|---|---|---|
| Платежи, счета и ссылки | Полный доступ | Полный доступ | Только просмотр | Только просмотр |
| Возвраты | Полный доступ | Полный доступ | Нет доступа | Нет доступа |
| Выплаты | Полный доступ | Полный доступ | Нет доступа | Только просмотр |
| API-ключи и вебхуки | Полный доступ | Полный доступ | Полный доступ | Нет доступа |
| Документы и отчёты | Полный доступ | Полный доступ | Нет доступа | Полный доступ |
| Команда и роли | Полный доступ | Только просмотр | Нет доступа | Нет доступа |
import hashlib
import hmac
import os
import time
def verify(raw_body: bytes, header: str) -> bool:
parts = dict(p.split("=", 1) for p in header.split(","))
t, v1 = parts.get("t", "0"), parts.get("v1", "")
if abs(time.time() - int(t)) > 300:
return False
secret = os.environ["NORDPAY_WEBHOOK_SECRET"].encode()
expected = hmac.new(secret, f"{t}.".encode() + raw_body, hashlib.sha256).hexdigest()
return hmac.compare_digest(expected, v1)Подделать уведомление об оплате не получится
Каждый вебхук подписан секретом вашего эндпоинта. В подпись входит метка времени — старое уведомление нельзя переслать повторно через пять минут.
- Заголовок NordPay-Signature: t и v1 = HMAC-SHA256
- Секрет эндпоинта показываем один раз при создании
- Статус платежа всегда можно перепроверить запросом GET /v1/payments/:id
Как мы работаем с требованиями закона
NordPay — агент лицензированного платёжного партнёра. Процессинг, расчёты и проверка клиентов выполняются на стороне партнёра, по правилам, которые обязательны для него как для поднадзорной организации.
152-ФЗ
ООО «РЕЗУЛЬТАТ» — оператор персональных данных мерчантов и посетителей сайта. Цели, состав, сроки хранения и ваши права описаны в политике.
Политика обработки ПДнAML и KYC
Идентификацию мерчантов — компаний, ИП, самозанятых и частных лиц — и мониторинг операций по 115-ФЗ проводит партнёр. Мы помогаем собрать документы и отвечаем на запросы, но не обходим проверку.
Документы по типу подключенияДоговор и оферта
Права и обязанности сторон, порядок расчётов, возвратов и споров закреплены в оферте и договоре. Реквизиты партнёра указываются в договоре с мерчантом.
ОфертаЧто важно сделать на вашей стороне
- Храните секретный ключ на сервере. Он не должен попадать в код сайта, мобильного приложения или публичный репозиторий.
- Проверяйте подпись каждого вебхука и отмечайте заказ оплаченным только после события payment.succeeded.
- Используйте Idempotency-Key при создании платежей, чтобы повторный запрос не создал дубль.
- Отзывайте доступы сотрудников, которые больше не работают с кабинетом, и перевыпускайте ключи при подозрении на утечку.
- Указывайте адрес USDT-кошелька в нужной сети и проверяйте его перед сохранением — перевод в другой сети может потеряться.
Подключим приём платежей под ваш бизнес
Компания, ИП, самозанятый или частное лицо — оставьте заявку, менеджер уточнит нишу и методы, согласует ставку и проведёт через проверку документов. Требований к обороту нет.
- Подключение бесплатно, без абонентской платы
- Компании, ИП, самозанятые и частные лица
- Тестовый ключ — до подписания договора