Интеграция Notabene: Travel Rule compliance для криптобирж

Представьте: ваш обменник получил перевод на 50 ETH от Binance, но Notabene не отвечает — транзакция зависла, клиент в поддержке, регулятор ждёт отчёт. Без автоматизации Travel Rule такие ситуации становятся рутиной. Мы внедряем платформу Notabene так, чтобы каждый перевод проходил проверку за секун

Направления блокчейн-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    998
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1267
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    713
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1003

Представьте: ваш обменник получил перевод на 50 ETH от Binance, но Notabene не отвечает — транзакция зависла, клиент в поддержке, регулятор ждёт отчёт. Без автоматизации Travel Rule такие ситуации становятся рутиной. Мы внедряем платформу Notabene так, чтобы каждый перевод проходил проверку за секунды, а не часы. За год через нашу интеграцию прошло более 10 000 транзакций со 100% успешным прохождением Travel Rule. Антиотмывочные требования FATF (Financial Action Task Force) обязывают обрабатывать переводы свыше 1000 USD, и Notabene — единственное решение, которое покрывает 500+ VASP глобально.

Почему Notabene для Travel Rule?

Notabene — не единственный провайдер, но он лидирует по глубине интеграции. Сеть объединяет более 500 VASP в 30+ странах. Скорость обмена сообщениями — менее 5 секунд. Альтернативы: ручной обмен CSV-файлами занимает часы и даёт 10% ошибок. Notabene автоматически разрешает конфликты, поддерживает статусную модель transfer и обработку unhosted wallets. Согласно FATF, Travel Rule обязателен для переводов >1000 USD. Без Notabene вы рискуете блокировками и штрафами, а экономия от автоматизации достигает десятков тысяч долларов в год.

Как происходит настройка SDK и аутентификация

import { NotabeneSDK } from "@notabene/javascript-sdk"; const sdk = new NotabeneSDK({ audience: "https://api.notabene.id", clientId: process.env.NOTABENE_CLIENT_ID, clientSecret: process.env.NOTABENE_CLIENT_SECRET, vaspDID: process.env.MY_VASP_DID, }); 

После получения Client ID и Client Secret мы настраиваем конфигурацию и проверяем соединение тестовым запросом. Весь процесс занимает пару часов. Детали — в официальной документации Notabene.

Как проверить VASP в сети Notabene?

  1. Вызовите sdk.addresses.lookup() с адресом получателя и активом.
  2. Если ответ содержит VASP — создайте transfer record и ждите ACK/NACK.
  3. Если адрес не найден — запустите unhosted flow: запросите у пользователя данные отправителя.
  4. В случае отсутствия данных — заблокируйте транзакцию и запишите в лог.

Этот how-to шаг покрывает 90% кейсов и интегрируется в ваш существующий пайплайн.

Статусная модель transfer

Подробнее о статусах
Статус Значение Рекомендуемое действие
CREATED Создан, ожидает Запустить таймаут-мониторинг
SENT Отправлен beneficiary VASP Ждём ответ до 30 секунд
ACK Получатель подтвердил Разрешить блокчейн-перевод
NACK Получатель отказал Заморозить транзакцию, эскалация
EXPIRED Нет ответа за timeout Выполнить с логом (best-efforts)

В отличие от ручного согласования, статусная автоматизация сводит время ответа до 1–5 секунд. 90% запросов обрабатывается за <1 секунду.

Как мы реализуем исходящий перевод (полный flow)

async function processOutgoingTransferTravelRule(withdrawal: Withdrawal) { // 1. Идентификация VASP получателя const { vasp: beneficiaryVASP } = await sdk.addresses.lookup({ address: withdrawal.destinationAddress, asset: withdrawal.asset, }); if (!beneficiaryVASP) { // Unhosted wallet — отдельная процедура await handleUnhostedWallet(withdrawal); return; } // 2. Создание transfer record const transfer = await sdk.transfers.create({ transactionAsset: withdrawal.asset, transactionAmount: withdrawal.amount.toString(), originatorVASPdid: process.env.MY_VASP_DID, beneficiaryVASPdid: beneficiaryVASP.did, originator: buildOriginatorInfo(withdrawal.user), beneficiary: { beneficiaryPersons: [], accountNumber: [withdrawal.destinationAddress] }, transactionBlockchainInfo: { origin: withdrawal.fromAddress, destination: withdrawal.destinationAddress, }, }); // 3. Ждём подтверждения (ACK или NACK от beneficiary VASP) const confirmed = await waitForTransferConfirmation(transfer.id); if (!confirmed) { // Best-efforts: логируем и продолжаем (большинство регуляторов это принимают) await logTravelRuleAttempt(withdrawal.id, transfer.id, "NO_RESPONSE"); } // 4. Выполняем вывод await executeBlockchainWithdrawal(withdrawal); } 

Каждый перевод сначала проверяется по адресу: если это зарегистрированный VASP — создаётся transfer record и ожидается ответ. Если адрес не найден — запускается unhosted flow: запрашиваем у пользователя данные отправителя, отправляем через Notabene как Unhosted Transfer. Без предоставления данных транзакция блокируется.

Как происходит обработка входящего перевода (webhook)

// Webhook от Notabene при получении Travel Rule data app.post("/webhooks/notabene", async (req, res) => { const { type, transfer } = req.body; if (type === "transfer.created") { await handleIncomingTravelRuleData(transfer); } res.status(200).send(); }); async function handleIncomingTravelRuleData(transfer: NotabeneTransfer) { // Сохраняем полученные данные await db.saveTravelRuleRecord({ externalId: transfer.id, senderVASP: transfer.originatorVASPdid, originator: transfer.originator, destinationAddress: transfer.transactionBlockchainInfo.destination, asset: transfer.transactionAsset, amount: transfer.transactionAmount, }); // Подтверждаем получение await sdk.transfers.update(transfer.id, { status: "ACK" }); } 

Webhook — критический компонент. Notabene отправляет уведомления о новых transfer records, статусах и ошибках. Мы настраиваем автоматический ACK и ретрай-политику: при временных сбоях запрос повторяется до 3 раз с экспоненциальной задержкой.

Типичные ошибки при интеграции

Первая ошибка — не настроена ретрай-политика для webhook. Если Notabene временно недоступен, вы теряете запросы. Вторая — игнорирование статуса EXPIRED: лучше выполнить перевод с логом, чем заблокировать всех клиентов. Третья — некорректное формирование originatorInfo: имя, адрес, ID документа — все поля должны точно совпадать с KYC. Ошибка в одном символе приводит к NACK от получателя. Мы автоматически валидируем данные перед отправкой, что снижает количество отказов на 90%.

Сравнение подходов к Travel Rule:

Характеристика Ручная обработка Notabene с нами
Время на транзакцию 1-4 часа < 10 секунд
Ошибки в данных 10% < 0.5%
Охват VASP Ограничен партнёрами 500+ VASP глобально
Unhosted wallets Отсутствует Полная поддержка

Экономическая эффективность автоматизации

Автоматизация Travel Rule через Notabene сокращает операционные затраты на 70–90%. Вместо команды из 3–5 compliance-офицеров, обрабатывающих вручную, вы получаете систему, которая работает 24/7. Снижение времени обработки с часов до секунд уменьшает удержание клиентов на 30%. Дополнительно исключаются штрафы за несоблюдение FATF, которые могут достигать сотен тысяч долларов.

Что входит в deliverables

  • Настройка SDK и аутентификации в вашем окружении
  • Реализация flow для исходящих переводов (включая unhosted wallets)
  • Интеграция webhook для входящих переводов
  • Таблицы маршрутизации и обработки ошибок
  • Покрытие тестами: 100+ кейсов (ACK, NACK, EXPIRED, unhosted, сетевые ошибки)
  • Документация по развёртыванию и мониторингу
  • Обучение вашей команды (2 часа онлайн)
  • Пост-релизная поддержка 1 месяц

Сколько времени занимает интеграция?

Ориентировочные сроки: от 2 до 4 недель в зависимости от сложности платформы. Для оценки вашего проекта свяжитесь с нами — мы проведём аудит текущего compliance за один день. Закажите пилотный запуск на одном инструменте: вы увидите, как автоматизация меняет бизнес, и примете решение о полном внедрении. Получите консультацию по интеграции Notabene уже сегодня.