Безопасность без громких слов

Рассказываем, как на самом деле устроена защита платежей и данных: что делаем мы, что делает лицензированный платёжный партнёр и что остаётся на вашей стороне.

  • TLS 1.2+ и HSTS
  • Подпись HMAC-SHA256
  • KYC у партнёра
ПокупательБраузер или приложение банка
Страница оплаты3-D Secure, QR СБП, адрес USDT
Лицензированный партнёрПроцессинг, KYC, расчёты
Ваш серверHMAC-SHA256, повторы
Данные

Что защищает платёж и ваш аккаунт

01

TLS 1.2+ и HSTS

Сайт, кабинет, API и страница оплаты работают только по HTTPS с современными шифрами. Заголовок HSTS запрещает браузеру откатываться на незащищённое соединение.

02

Данные карт не хранятся у нас

Номер карты покупатель вводит на защищённой странице оплаты, обработку выполняет лицензированный партнёр. В кабинете и API видны только платёжная система и последние четыре цифры.

03

Секретные ключи показываем один раз

Ключ API виден только в момент создания — повторно его не покажет ни кабинет, ни поддержка. Потеряли ключ — выпустите новый и отзовите старый в один клик.

04

Тестовый и боевой контуры разделены

Ключи sk_test_ работают только в песочнице и не могут провести реальное списание. Данные песочницы не смешиваются с боевыми платежами.

05

Адрес USDT — под конкретную сеть

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

06

Проверка для всех, кто подключается

Компании, ИП, самозанятые и частные лица проходят проверку у лицензированного партнёра. Без неё боевые ключи не выдаются — ни по просьбе, ни «временно».

Доступ

Каждому — только нужные права

Доступ в кабинет выдаётся по приглашению: регистрации «с улицы» нет. Владелец приглашает сотрудников и назначает роли, сессия хранится в защищённой cookie, недоступной скриптам страницы.

  • Приглашение в команду — по одноразовой ссылке
  • Удалить сотрудника из команды можно в настройках кабинета
  • Ключи API привязаны к магазину, а не к сотруднику
Права ролей в кабинете
РазделВладелецАдминистраторРазработчикБухгалтер
Платежи, счета и ссылкиПолный доступПолный доступТолько просмотрТолько просмотр
ВозвратыПолный доступПолный доступНет доступаНет доступа
ВыплатыПолный доступПолный доступНет доступаТолько просмотр
API-ключи и вебхукиПолный доступПолный доступПолный доступНет доступа
Документы и отчётыПолный доступПолный доступНет доступаПолный доступ
Команда и ролиПолный доступТолько просмотрНет доступаНет доступа
Полный доступТолько просмотрНет доступа
webhook.py
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-ФЗ проводит партнёр. Мы помогаем собрать документы и отвечаем на запросы, но не обходим проверку.

Документы по типу подключения

Договор и оферта

Права и обязанности сторон, порядок расчётов, возвратов и споров закреплены в оферте и договоре. Реквизиты партнёра указываются в договоре с мерчантом.

Оферта

Что важно сделать на вашей стороне

  1. Храните секретный ключ на сервере. Он не должен попадать в код сайта, мобильного приложения или публичный репозиторий.
  2. Проверяйте подпись каждого вебхука и отмечайте заказ оплаченным только после события payment.succeeded.
  3. Используйте Idempotency-Key при создании платежей, чтобы повторный запрос не создал дубль.
  4. Отзывайте доступы сотрудников, которые больше не работают с кабинетом, и перевыпускайте ключи при подозрении на утечку.
  5. Указывайте адрес USDT-кошелька в нужной сети и проверяйте его перед сохранением — перевод в другой сети может потеряться.
Нашли уязвимость? Напишите на hello@nordpay.pro с темой «Уязвимость» — ответим и не будем публично раскрывать детали до исправления.
Подключение

Подключим приём платежей под ваш бизнес

Компания, ИП, самозанятый или частное лицо — оставьте заявку, менеджер уточнит нишу и методы, согласует ставку и проведёт через проверку документов. Требований к обороту нет.

Менеджер по подключению
@nyajacky
Пн–Пт, 10:00–19:00 (МСК)
  • Подключение бесплатно, без абонентской платы
  • Компании, ИП, самозанятые и частные лица
  • Тестовый ключ — до подписания договора