Полное руководство по платформе: от подключения до завершения сделки. Интеграция, жизненный цикл заявок, балансы, комиссии, рефералы и апелляции.
1. Введение
Что такое SafeMatch
SafeMatch — P2P-платформа для обмена криптовалюты на фиат по модели эскроу. Платформа соединяет площадки, которым нужно пополнение (приём фиата и получение крипты), с площадками, которым нужен вывод (отдача крипты и получение фиата). SafeMatch выступает гарантом сделки: крипта замораживается на платформе до подтверждения оплаты, фиат переводится напрямую между сторонами.
Для кого
SafeMatch создан для бизнес-клиентов — легальных онлайн-площадок (казино, платёжные сервисы, биржи), которым нужно:
принимать фиатные платежи от клиентов и конвертировать их в крипту;
выводить криптовалюту клиентам, получая фиат.
Платформа работает по модели B2B: вы интегрируетесь через API, публикуете заявки от имени своих клиентов, а SafeMatch находит встречную сторону и обеспечивает безопасность сделки.
Как это работает (кратко)
Ваша площадка публикует заявку (пополнение или вывод) через API.
SafeMatch автоматически находит встречную заявку с подходящей суммой и курсом.
Стороны получают реквизиты друг друга. Покупатель переводит фиат и загружает чек.
Продавец подтверждает получение денег — крипта зачисляется покупателю.
Весь процесс занимает от нескольких минут до нескольких часов в зависимости от наличия встречных заявок.
Роли участников
Покупатель (IN)
Покупает крипту
Переводит фиат продавцу по реквизитам, получает криптовалюту на баланс
Продавец (OUT)
Продаёт крипту
Криптовалюта резервируется при сопоставлении, получает фиат от покупателя
2. Начало работы
Подключение площадки
Для начала работы с SafeMatch:
Свяжитесь с нами — напишите в Telegram: @Kos_Change
Предоставьте информацию о вашей площадке для верификации
Получите учётные данные:
API-ключ — для идентификации вашей площадки
Секретный ключ — для подписи запросов (HMAC-SHA256)
После создания заявки SafeMatch автоматически ищет подходящую встречную заявку. Для сопоставления должны совпасть три условия:
Пересечение курсов — диапазоны курсов покупателя и продавца должны пересекаться.
Точная сумма — сумма одной или нескольких IN-заявок должна точно совпадать с суммой OUT-заявки.
Лимит платежей — количество IN-заявок не превышает max_payments, указанный в OUT.
Как определяется курс
Курс сделки рассчитывается как среднее от пересечения диапазонов:
Покупатель (IN)
Продавец (OUT)
Пересечение
Курс
Диапазон
95–105
98–102
98–102
(98 + 102) / 2 = 100
Что происходит при матче
Покупатель (IN): получает реквизиты продавца для перевода фиата. Баланс не меняется.
Продавец (OUT): криптовалюта переводится из доступного баланса в зарезервированные средства (замораживается).
Один OUT — несколько IN
Одна OUT-заявка может быть сопоставлена с несколькими IN-заявками, если их суммы в сумме дают нужную сумму. Для каждого IN замораживается соответствующая часть крипты.
Время ожидания
Заявка может ожидать сопоставления неограниченное время, пока не найдётся подходящая встречная сторона. Вы можете в любой момент удалить заявку, если она ещё не сопоставлена.
OUT-заявка завершается, когда все привязанные IN-заявки завершены или отменены. Если после завершения у продавца остались зарезервированные средства (например, часть IN была отменена) — остаток автоматически возвращается в доступный баланс.
9. Балансы и резервирование
Типы балансов
Баланс
Описание
Доступный баланс
Средства, которые можно использовать для создания заявок и оплаты комиссий
Зарезервированные средства
Криптовалюта продавца, заблокированная на время сделки. Возвращается при отмене или переводится покупателю при подтверждении
Реферальный баланс
Начисления по реферальной программе. Начисляется доля от комиссии при каждом подтверждении оплаты
Важно: зарезервированные средства нельзя использовать для новых заявок и операций.
Все заявки обработаны, резерв = 0, нечего возвращать
3 985.00
0
Завершение
Финал заявки OUT
3 985.00 (-1015)
0
завершена
Важно: порядок операций при подтверждении оплаты
При подтверждении получения фиата операции всегда идут в таком порядке:
#
Операция
Описание
1
Списание комиссии покупателя
Из доступного баланса покупателя списывается комиссия
1a
Реферальное начисление (покупатель)
Если у покупателя есть реферер — ему начисляется доля от комиссии
1b
Комиссия платформы (от покупателя)
Остаток комиссии поступает платформе
2
Перевод криптовалюты покупателю
Из резерва продавца криптовалюта переводится на доступный баланс покупателя
3
Списание комиссии продавца
Из доступного баланса продавца списывается комиссия
3a
Реферальное начисление (продавец)
Если у продавца есть реферер — ему начисляется доля от комиссии
3b
Комиссия платформы (от продавца)
Остаток комиссии поступает платформе
10. Комиссии и реферальная программа
Как рассчитывается комиссия
Процент комиссии назначается индивидуально для каждой площадки при подключении. Комиссия списывается только при подтверждении оплаты, а не при создании заявки.
Сумма крипты = сумма в фиате / согласованный курс
Комиссия = сумма крипты * процент комиссии
Пример расчёта
Условия: сделка на 100 000 RUB, курс 100 RUB/USDT, комиссия покупателя 2%, комиссия продавца 1.5%.
Шаг
Расчёт
Результат
Сумма крипты
100 000 ÷ 100
1 000 USDT
Комиссия покупателя
1 000 × 2%
20 USDT
Комиссия продавца
1 000 × 1.5%
15 USDT
Итого комиссий
35 USDT
Когда списывается
Не при создании заявки (только проверка достаточности средств).
Не при сопоставлении.
Только при подтверждении оплаты продавцом.
Если сделка отменена (таймаут, отклонение чека), комиссия не списывается — ни с покупателя, ни с продавца.
Реферальная программа
Ключевое: реферальная выплата происходит в один момент
Реферальные начисления происходят только при подтверждении оплаты. Не при создании заявки, не при сопоставлении, не при загрузке чека — только когда продавец нажимает «оплату получил».
Как делится комиссия
Этап 1
Комиссия покупателя
Комиссия покупателя (IN) делится между реферером и платформой
Площадка-покупатель A платит комиссию = сумма крипты × ставка комиссии покупателя.
Если у площадки A есть реферер (Партнёр X) с долей реферера 30%:
A платит: 500 × 2% = 10 USDT
X получает: 10 × 30% = 3 USDT (реферальный баланс)
SafeMatch: 10 - 3 = 7 USDT (комиссия платформы)
Этап 2
Комиссия продавца
Комиссия продавца (OUT) делится между реферером и платформой
Площадка-продавец B платит комиссию = сумма крипты × ставка комиссии продавца.
Если у площадки B есть реферер (Партнёр Y) с долей реферера 25%:
B платит: 500 × 1.5% = 7.50 USDT
Y получает: 7.50 × 25% = 1.875 USDT (реферальный баланс)
Если один из IN-заявок по вашему OUT был отменён, система автоматически переходит в режим поиска замены:
OUT-заявка получает статус «поиск замены».
Система ищет новую IN-заявку на недостающую сумму.
При нахождении замены — дополнительное резервирование крипты и продолжение сделки.
Отмена поиска замены
Если вы не хотите ждать замену, можно отменить поиск. В этом случае:
OUT-заявка завершится по тем IN, которые уже подтверждены.
Неиспользованные зарезервированные средства вернутся в доступный баланс.
12. Апелляции
Когда можно создать апелляцию
Ситуация
Когда доступно
Деньги не поступили, неверная сумма, ошибка
После завершения заявки
Продавец считает чек недействительным
При получении чека (через оспаривание)
Причины апелляций
Для покупателя (IN):
Причина
Описание
Средства не поступили
Крипта не зачислена после подтверждения
Неверная сумма
Зачислена не та сумма
Неверный получатель
Указан неверный получатель
Задержка платежа
Средства задерживаются
Для продавца (OUT):
Причина
Описание
Криптовалюта не получена
Крипта не пришла
Неверная сумма крипты
Пришла не та сумма
Ошибка транзакции
Ошибка при переводе
Задержка перевода
Перевод задерживается
Как проходит апелляция
Подача — вы указываете причину и описание проблемы.
Рассмотрение — администратор SafeMatch изучает материалы (чеки, данные сделки).
Решение — одно из трёх:
В вашу пользу — корректировка балансов.
В пользу контрагента — апелляция отклонена.
Нейтральное решение — без изменений.
Вы также можете отозвать свою апелляцию до решения.
Пока идёт апелляция, связанные заявки не могут быть отменены по таймауту или удалены.
13. Таймауты
После сопоставления заявки у покупателя есть 20 минут на загрузку чека.
Ситуация
Что происходит
Чек не загружен в течение 20 минут
IN-заявка автоматически отменяется
Чек загружен, ожидает подтверждения
Таймаут не действует — продавец может подтвердить в любое время
Заявка на стадии ожидания сопоставления
Таймаут не действует — заявка будет ждать бесконечно
По заявке идёт апелляция
Таймаут приостанавливается до решения спора
При отмене IN-заявки по таймауту:
Зарезервированная крипта возвращается в доступный баланс продавца
OUT-заявка переходит в режим поиска замены
14. WebSocket-уведомления
SafeMatch отправляет уведомления о событиях в реальном времени через WebSocket. Это позволяет вашей системе моментально реагировать на изменения без постоянного опроса API.
Типы уведомлений
Тип
Описание
Когда приходит
order_created
Заявка создана
После успешного создания заявки
order_matched
Заявка сопоставлена
Найдена встречная сторона, выданы реквизиты
order_updated
Данные заявки обновлены
Смена статуса или обновление параметров
order_completed
Заявка завершена
Сделка успешно завершена
order_cancelled
Заявка отменена
Отмена по таймауту, отклонение или другая причина
order_supplemented
К OUT добавлен новый IN
Найдена замена после отмены одного из IN
Содержание уведомления
Каждое уведомление содержит актуальные данные по заявке: текущий статус, реквизиты, курс, суммы и другие параметры.
Рекомендации
Подключайтесь к WebSocket сразу после получения ключей — это самый быстрый способ узнавать о событиях.
Обрабатывайте order_matched для оперативной реакции на сопоставление.
URL для подключения: wss://ws.safematch.io. Детали аутентификации — в API-документации.
15. Полный пример сделки
Максимально долгий путь: создание → сопоставление → частичное подтверждение → таймаут → поиск замены → дополнение → чек → оспаривание → апелляция → решение → подтверждение → завершение.
T = 0
Создание заявок: B → OUT-001 (100K), A → IN-001 (50K) + IN-002 (50K)