Как работают ордера
Это руководство описывает, как работает обмен криптовалюты на фиат через SafeMatch. Здесь вы найдёте полный цикл заявки, комиссии, реферальную программу и возможные сценарии.
Оглавление
- Участники и роли
- Типы балансов
- Комиссии и реферальная программа
- Как работает сопоставление заявок
- Жизненный цикл IN-ордера (покупка крипты)
- Жизненный цикл OUT-ордера (продажа крипты)
- Пошаговый процесс обмена
- Таймауты
- Отмена и замена заявок
- Апелляции (споры)
- Полный пример сделки
- Риски и решения
- Справочник API
1. Участники и роли
| Участник | Роль | Пример |
|---|---|---|
| Площадка-покупатель (IN) | Публикует заявку на пополнение — клиент хочет внести фиат и получить крипту | Казино «Альфа» |
| Площадка-продавец (OUT) | Публикует заявку на вывод — клиент хочет отдать крипту и получить фиат | Казино «Бета» |
| SafeMatch (платформа) | Сопоставляет заявки, управляет балансами, собирает комиссии | — |
| Реферер (партнёр) | Пригласил площадку в систему; получает долю от комиссии | Партнёр X |
Как это работает: площадки публикуют заявки (IN — пополнение, OUT — вывод), SafeMatch находит встречную заявку на подходящую сумму и курс, объединяет их и выдаёт реквизиты друг друга. Площадка, получившая деньги, подтверждает или отклоняет перевод.
2. Типы балансов
У каждой площадки на SafeMatch есть три типа баланса:
| Баланс | Описание | Когда меняется |
|---|---|---|
| Доступный баланс | Средства, которыми можно распоряжаться: создавать заявки, оплачивать комиссии | При зачислении крипты, списании комиссий, пополнении |
| Зарезервированные средства | Крипта, заблокированная по активным OUT-заявкам до завершения сделки | При сопоставлении заявок (резервирование) и при завершении/отмене (возврат) |
| Реферальный баланс | Вознаграждение за приведённых площадок | При подтверждении оплаты по заявке приведённой площадки |
Важно: зарезервированные средства нельзя использовать для новых заявок. Они автоматически возвращаются в доступный баланс после завершения или отмены сделки.
3. Комиссии и реферальная программа
3.1. Как рассчитывается комиссия
Процент комиссии назначается индивидуально для каждой площадки. Комиссия списывается только в момент подтверждения оплаты, а не при создании заявки.
Сумма крипты = сумма в фиате ÷ согласованный курс
Комиссия = сумма крипты × процент комиссии
3.2. Пример расчёта
| Параметр | Значение |
|---|---|
| Сумма сделки | 100 000 RUB |
| Согласованный курс | 100 RUB/USDT |
| Сумма крипты | 1 000 USDT |
| Комиссия покупателя (IN) | 2% |
| Комиссия продавца (OUT) | 1.5% |
| Операция | Сумма | Кто платит |
|---|---|---|
| Комиссия покупателя | 1 000 × 2% = 20 USDT | Списывается с доступного баланса площадки-покупателя |
| Комиссия продавца | 1 000 × 1.5% = 15 USDT | Списывается с доступного баланса площадки-продавца |
| Итого комиссий | 35 USDT |
3.3. Реферальная программа
Если площадка была приведена партнёром (реферером), часть комиссии автоматически начисляется рефереру. Процент реферальной выплаты назначается индивидуально.
Реферальная выплата происходит только при подтверждении оплаты — не при создании заявки и не при сопоставлении.
Пример (продолжение предыдущего):
| Операция | Расчёт | Получатель |
|---|---|---|
| Реферальная выплата от комиссии покупателя | 20 × 30% = 6 USDT | Реферальный баланс Партнёра X |
| Платформе от покупателя | 20 − 6 = 14 USDT | SafeMatch |
| Реферальная выплата от комиссии продавца | 15 × 25% = 3.75 USDT | Реферальный баланс Партнёра Y |
| Платформе от продавца | 15 − 3.75 = 11.25 USDT | SafeMatch |
| Итого рефереры | 9.75 USDT | |
| Итого платформе | 25.25 USDT |
4. Как работает сопоставление заявок
SafeMatch автоматически ищет подходящие пары заявок. Для сопоставления необходимо, чтобы совпали три условия:
- Пересечение ценовых диапазонов — диапазон курса покупателя и продавца должен пересекаться
- Точная сумма — сумма одного или нескольких IN-заявок должна точно равняться сумме OUT-заявки
- Лимит платежей — количество IN-заявок не должно превышать установленный лимит для OUT
Как определяется курс сделки:
Если покупатель готов на курс 95–105 RUB/USDT, а продавец — на 98–102 RUB/USDT, то пересечение — 98–102, и согласованный курс = (98 + 102) ÷ 2 = 100 RUB/USDT.
Один OUT-ордер может быть сопоставлен с несколькими IN-ордерами, если их суммы в сумме дают нужную сумму.
5. Жизненный цикл IN-ордера (покупка крипты)
| Статус | Описание |
|---|---|
| Ожидание сопоставления | Заявка создана и ожидает встречный ордер |
| Ожидание оплаты | Найден встречный ордер, площадке выданы реквизиты для перевода |
| Ожидание подтверждения | Чек загружен, продавец должен подтвердить получение денег |
| Завершён | Оплата подтверждена, крипта зачислена покупателю |
| Отменён | Заявка отменена (таймаут, отклонение или другая причина) |
6. Жизненный цикл OUT-ордера (продажа крипты)
| Статус | Описание |
|---|---|
| Ожидание сопоставления | Заявка создана, крипта ещё не зарезервирована |
| Ожидание подтверждений | Заявка сопоставлена, крипта зарезервирована, ожидаем подтверждения от IN-площадок |
| Поиск замены | Один из IN отменён; система ищет новый IN на недостающую сумму |
| Завершён | Все IN завершены или отменены; зарезервированные средства возвращены (если остались) |
| Удалён | Заявка удалена до сопоставления |
7. Пошаговый процесс обмена
Схема взаимодействия
- Площадка A (покупатель) → SafeMatch: Создать заявку IN (100 000 RUB)
- Площадка B (продавец) → SafeMatch: Создать заявку OUT (100 000 RUB, реквизиты)
- SafeMatch: Система находит подходящую пару, резервирует крипту продавца
- SafeMatch → Площадка A: Уведомление — найден ордер + реквизиты продавца
- SafeMatch → Площадка B: Уведомление — найден ордер
- Площадка A переводит фиат по реквизитам Площадки B
- Площадка A → SafeMatch: Загрузка чека (PDF)
- SafeMatch → Площадка B: Уведомление — чек загружен
- Площадка B → SafeMatch: Подтверждение получения оплаты
- SafeMatch: Списание комиссий, перевод крипты, реферальные выплаты
- SafeMatch → обе площадки: Уведомление — сделка завершена
Шаг 1: Создание заявки
Площадка отправляет запрос на создание заявки, указывая:
- Тип: IN (покупка) или OUT (продажа)
- Сумма в фиате (например, 100 000 RUB)
- Диапазон курса (например, 95–105 RUB/USDT)
- Для OUT: платёжные реквизиты и максимальное количество платежей
Что проверяется:
- Разрешены ли торги для площадки
- Не превышен ли лимит апелляций и отмен
- Достаточно ли средств на балансе (для IN — на комиссию, для OUT — на сумму крипты)
Баланс не списывается — только проверяется.
Шаг 2: Ожидание встречного ордера
Система автоматически ищет подходящий встречный ордер. Заявка может находиться в ожидании неограниченное время, пока не найдётся пара или пока вы её не удалите.
Шаг 3: Сопоставление (матч)
Когда система находит подходящую пару:
- У продавца резервируется крипта (переводится из доступного баланса в зарезервированные средства)
- Покупатель получает реквизиты продавца для перевода фиата
- Обе стороны получают уведомление
Шаг 4: Загрузка чека
Покупатель переводит фиат по указанным реквизитам и загружает чек (PDF) в систему.
Внимание: на загрузку чека даётся 20 минут. Если чек не загружен вовремя, заявка будет автоматически отменена.
Шаг 5: Подтверждение оплаты
Продавец проверяет, что деньги поступили, и подтверждает оплату. В этот момент происходит:
- Списание комиссии с покупателя (из доступного баланса)
- Перевод крипты: из зарезервированных средств продавца в доступный баланс покупателя
- Списание комиссии с продавца (из доступного баланса)
- Реферальные выплаты (если площадки имеют рефереров)
Шаг 6: Завершение
- IN-заявка → Завершена
- Если все IN-заявки по OUT завершены или отменены → OUT-заявка → Завершена
- Оставшиеся зарезервированные средства (если были) возвращаются в доступный баланс продавца
8. Таймауты
После сопоставления заявки у покупателя есть 20 минут на загрузку чека.
| Ситуация | Что происходит |
|---|---|
| Чек не загружен в течение 20 минут | IN-заявка автоматически отменяется |
| Чек загружен, ожидает подтверждения | Таймаут не действует — продавец может подтвердить в любое время |
| Заявка на стадии ожидания сопоставления | Таймаут не действует — заявка будет ждать бесконечно |
| По заявке идёт апелляция | Таймаут приостанавливается до решения спора |
При отмене IN-заявки по таймауту:
- Зарезервированная крипта возвращается в доступный баланс продавца
- OUT-заявка переходит в режим поиска замены
9. Отмена и замена заявок
Удаление заявки
Вы можете удалить свою заявку, пока она находится в статусе «ожидание сопоставления» (ещё не нашлась встречная сторона).
Отмена IN-заявки
IN-заявка может быть отменена в следующих случаях:
- Истёк таймаут (20 минут на загрузку чека)
- Чек отклонён
- Неверные реквизиты в чеке
При отмене IN зарезервированная крипта продавца возвращается в его доступный баланс.
Поиск замены (для OUT)
Если один из IN по вашему OUT-ордеру отменён:
- OUT автоматически переходит в режим поиска замены
- Система ищет новый IN на недостающую сумму
- При нахождении замены резервируется дополнительная крипта
Вы можете отменить поиск замены — тогда OUT завершится по тем IN, которые уже подтверждены.
10. Апелляции (споры)
Когда можно подать апелляцию
| Ситуация | Когда доступно |
|---|---|
| После завершения ордера (деньги не пришли, неверная сумма и т.д.) | После статуса «завершён» |
| Продавец отклоняет чек покупателя | При получении чека |
Причины для апелляции
Покупатель (IN) может оспорить:
- Деньги не поступили на счёт
- Поступила неверная сумма
- Указан неверный получатель
- Задержка платежа
Продавец (OUT) может оспорить:
- Крипта не зачислена
- Зачислена неверная сумма
- Ошибка транзакции
- Задержка перевода
Как проходит апелляция
- Создание — площадка подаёт апелляцию с указанием причины и описанием
- Рассмотрение — администратор SafeMatch изучает материалы (чеки, переписку)
- Решение — администратор выносит одно из решений:
- В пользу создателя апелляции — могут быть применены корректировки балансов
- В пользу контрагента — апелляция отклонена
- Нейтральное решение — без изменений балансов
- Создатель также может отозвать свою апелляцию
Пока идёт апелляция, связанные заявки не могут быть отменены по таймауту или удалены.
11. Полный пример сделки
Рассмотрим сложный сценарий с несколькими площадками, отменой, поиском замены, апелляцией и завершением.
Начальные условия
| Участник | Доступный баланс | Комиссия | Реферер |
|---|---|---|---|
| Площадка A (покупатель) | 2 000 USDT | 2% | Партнёр X (30%) |
| Площадка B (продавец) | 5 000 USDT | 1.5% | Партнёр Y (25%) |
| Площадка C (покупатель) | 1 000 USDT | 2% | — |
Хронология событий
Момент 0: Создание заявок
Площадка B создаёт OUT-заявку: продажа на 100 000 RUB, курс 95–105 RUB/USDT, до 3 платежей.
Площадка A создаёт две IN-заявки: по 50 000 RUB каждая.
Балансы не меняются — только проверяется достаточность средств.
Момент 1: Сопоставление
Система находит пару: OUT-001 (100 000 RUB) ← IN-001 (50 000) + IN-002 (50 000).
Согласованный курс: 100 RUB/USDT.
Резервирование у Площадки B:
- Крипта по IN-001: 50 000 ÷ 100 = 500 USDT
- Крипта по IN-002: 50 000 ÷ 100 = 500 USDT
- Итого зарезервировано: 1 000 USDT
| Площадка B | До | После |
|---|---|---|
| Доступный баланс | 5 000 | 4 000 |
| Зарезервированные средства | 0 | 1 000 |
Площадка A получает реквизиты Площадки B для перевода.
Момент 5 мин: Загрузка чека по IN-001
Площадка A загружает чек (PDF) за первый перевод 50 000 RUB. Баланс не меняется.
Момент 8 мин: Подтверждение оплаты по IN-001
Площадка B подтверждает получение 50 000 RUB. Происходят расчёты:
| Операция | Сумма | Баланс |
|---|---|---|
| Комиссия покупателя (A) | 500 × 2% = 10 USDT | A: доступный 2 000 → 1 990 |
| → Реферальная Партнёру X | 10 × 30% = 3 USDT | Партнёр X: реферальный +3 |
| → Платформе | 10 − 3 = 7 USDT | SafeMatch |
| Перевод крипты | 500 USDT | B: зарез. 1 000 → 500; A: доступный 1 990 → 2 490 |
| Комиссия продавца (B) | 500 × 1.5% = 7.5 USDT | B: доступный 4 000 → 3 992.5 |
| → Реферальная Партнёру Y | 7.5 × 25% = 1.875 USDT | Партнёр Y: реферальный +1.875 |
| → Платформе | 7.5 − 1.875 = 5.625 USDT | SafeMatch |
IN-001 → Завершён. OUT ещё не завершён (IN-002 ожидает).
Момент 21 мин: Таймаут по IN-002
Площадка A не загрузила чек за 20 минут — IN-002 автоматически отменён.
- Зарезервированная крипта по IN-002 (500 USDT) возвращается Площадке B
- B: зарезервированные 500 → 0, доступный 3 992.5 → 4 492.5
- OUT-001 переходит в режим «поиск замены»
Момент 25 мин: Площадка C создаёт IN-003
Площадка C создаёт IN-заявку на 50 000 RUB. Система находит, что OUT-001 ищет замену на 50 000 RUB, и сопоставляет.
Дополнительное резервирование у Площадки B:
- 50 000 ÷ 100 = 500 USDT
- B: доступный 4 492.5 → 3 992.5, зарезервированные 0 → 500
OUT-001 возвращается в статус «ожидание подтверждений».
Момент 30 мин: Загрузка чека по IN-003
Площадка C загружает чек за 50 000 RUB.
Момент 32 мин: Отклонение чека — апелляция
Площадка B проверяет и сообщает, что деньги не поступили на карту. Создаётся апелляция.
- Таймаут по IN-003 приостанавливается
- Заявки нельзя отменить или удалить до решения спора
Через 2 дня: Решение апелляции
Администратор рассматривает ситуацию и выносит нейтральное решение — без изменений балансов. Апелляция закрыта.
Через 2 дня + 1 мин: Подтверждение оплаты по IN-003
Площадка B убеждается, что деньги пришли (с задержкой), и подтверждает оплату:
| Операция | Сумма |
|---|---|
| Комиссия покупателя (C) | 500 × 2% = 10 USDT |
| Перевод крипты | 500 USDT → Площадке C |
| Комиссия продавца (B) | 500 × 1.5% = 7.5 USDT |
IN-003 → Завершён.
Все IN по OUT-001 завершены или отменены → OUT-001 → Завершён.
Итоговые балансы
| Участник | Доступный баланс | Зарезервированные | Реферальный | Итог |
|---|---|---|---|---|
| Площадка A | 2 490 USDT | 0 | 0 | +490 (получила 500 крипты, заплатила 10 комиссию) |
| Площадка B | 3 985 USDT | 0 | 0 | −1 015 (отдала 1 000 крипты, заплатила 15 комиссию) |
| Площадка C | +490 USDT | 0 | 0 | +490 (получила 500 крипты, заплатила 10 комиссию) |
| Партнёр X | — | — | 3 USDT | +3 (реферальная от IN Площадки A) |
| Партнёр Y | — | — | 3.75 USDT | +3.75 (реферальная от OUT Площадки B) |
| SafeMatch | — | — | +25.25 USDT | Комиссии минус реферальные |
12. Риски и решения
| # | Ситуация | Этап | Что происходит | Что делать |
|---|---|---|---|---|
| 1 | Нет встречной заявки | Ожидание сопоставления | Заявка ожидает бесконечно | Ждать или удалить заявку |
| 2 | Курсы не пересекаются | Ожидание сопоставления | Сопоставление невозможно | Расширить ценовой диапазон |
| 3 | Суммы не совпадают | Ожидание сопоставления | Сопоставление невозможно | Создать заявку с другой суммой |
| 4 | Баланс продавца уменьшился до сопоставления | Сопоставление | Сопоставление пропускается | Пополнить баланс |
| 5 | Чек не загружен за 20 минут | Ожидание оплаты | IN автоматически отменяется, крипта возвращается продавцу | Загружать чек вовремя |
| 6 | Продавец не подтверждает оплату | Ожидание подтверждения | Заявка ожидает; продавец может создать апелляцию | Подтвердить или отклонить |
| 7 | Деньги не поступили на счёт продавца | Ожидание подтверждения | Продавец отклоняет → создаётся апелляция | Администратор решает спор |
| 8 | Чек не соответствует переводу | Ожидание подтверждения | Апелляция или пересмотр | Администратор рассматривает |
| 9 | Один из IN отменён | Ожидание подтверждений (OUT) | OUT переходит в поиск замены | Ждать замену или остановить поиск |
| 10 | Замена не найдена | Поиск замены | OUT ожидает бесконечно | Остановить поиск — OUT завершится по уже подтверждённым IN |
| 11 | Спор после завершения сделки | Завершён | Возможен пересмотр и корректировка балансов | Подать апелляцию |
| 12 | Слишком много отмен или апелляций | Любой | Ограничение на создание новых заявок | Снизить долю проблемных сделок |
13. Справочник API
Все запросы требуют аутентификации (API-ключ + подпись).
Создание и управление заявками
| Метод | Путь | Описание |
|---|---|---|
POST | /orders | Создать заявку (IN или OUT) |
DELETE | /orders/{order_id} | Удалить заявку (только до сопоставления) |
Процесс оплаты
| Метод | Путь | Описание |
|---|---|---|
POST | /orders/{order_id}/receipt | Загрузить чек (PDF) после перевода фиата |
POST | /orders/{order_id}/confirm-payment | Подтвердить получение оплаты |
POST | /orders/{order_id}/dispute-receipt | Отклонить чек (создаётся апелляция) |
Управление заявками
| Метод | Путь | Описание |
|---|---|---|
POST | /orders/{order_id}/cancel-search | Остановить поиск замены (OUT) |
GET | /orders/{order_id} | Получить данные заявки |
GET | /orders | Получить список заявок (с пагинацией) |
Апелляции
| Метод | Путь | Описание |
|---|---|---|
POST | /appeals | Создать апелляцию по завершённому ордеру |
Сводка движения средств
| Событие | Доступный баланс | Зарезервированные средства | Реферальный баланс |
|---|---|---|---|
| Создание заявки | Проверка (без изменений) | — | — |
| Сопоставление | Продавец: −крипта | Продавец: +крипта | — |
| Подтверждение оплаты | Покупатель: −комиссия, +крипта; Продавец: −комиссия | Продавец: −крипта | Реферер: +доля комиссии |
| Отмена IN | — | Продавец: −крипта (возврат) | — |
| Дополнение OUT (замена) | Продавец: −крипта | Продавец: +крипта | — |
| Завершение OUT | Продавец: +остаток (если есть) | Продавец: −остаток | — |
| Удаление заявки | Продавец: +зарезервированные (возврат) | Продавец: −зарезервированные | — |
| Отмена поиска | Без изменений | Без изменений | — |