Перейти к содержанию

Общая информация о работе с ордерами#

Введение#

Ордер (order) - сущность, обозначающая заявку от мерчанта на обмен фиат <-> USDT.

Направления ордеров:

  • PayIn - фиат -> USDT
  • PayOut - USDT -> фиат

Типы ордеров:

  • P2P - перевод по номеру карты/счета/аккаунта/телефона/...
  • QuasiEcom - перевод по методу Quasi Ecom
  • MobileCommerce - клиент получает реквизит (ссылку или идентификатор) от шлюза и передаёт полученный код подтверждения

Флоу ордеров:

  • H2H - интеграция по backend HTTP API
  • PaymentPage - интеграция с использованием платежной страницы (форма с реквизитами для перевода, форма ввода реквизитов для quasi ecom, ...)

API для работы с ордерами#

Методы API для работы с каждым из типов ордеров отписаны на отдельных страницах:

  1. PayIn - P2P - H2H
  2. PayIn - P2P - PaymentPage
  3. PayIn - QuasiEcom - H2H
  4. PayIn - QuasiEcom - PaymentPage
  5. PayIn - MobileCommerce - H2H
  6. PayOut - P2P - H2H

Для уведомлений мерчанта об изменениях ордера в системе MoneyMania предусмотрен механизм коллбэков. См. страницу "Коллбэки"

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

PayIn - P2P#

Статус Описание
created Ордер зарегистрирован в системе
rejected Ордер отклонён
declined_by_gateway Не удалось подобрать провайдера для обработки ордера
payment_pending Ордер обработан. Ожидание платежа от клиента
expired Истек TTL ордера, платеж не был произведен
succeeded Ордер успешно исполнен, платеж был произведен
succeeded_by_appeal Ордер признан успешным по апелляции
failed_by_appeal Ордер признан зафейленным по апелляции

Значение TTL по умолчанию - 15 минут.

PayIn - QuasiEcom#

Статус Описание
created Ордер зарегистрирован в системе
rejected Ордер отклонён
declined_by_gateway Не удалось подобрать провайдера для обработки ордера
confirm_waiting Ожидание кода подтверждения
waiting_for_terminal Ожидание обработки платежа провайдером
failed_by_terminal Провадер не смог произвести платеж
expired Истек TTL ордера, платеж не был произведен
succeeded Ордер успешно исполнен, платеж был произведен
succeeded_by_appeal Ордер признан успешным по апелляции
failed_by_appeal Ордер признан зафейленным по апелляции

PayOut - P2P#

Статус Описание
created Ордер зарегистрирован в системе
rejected Ордер отклонён
terminal_selecting Подбор провайдера для платежа
payment_in_progress Провайдер выбран. Ожидание платежа от провайдера
expired Истек TTL ордера, платеж не был произведен
terminal_failed Провайдер не смог произвести платеж
expired_without_callback Истек TTL ордера, но отсутствует информация об успешности платежа от провайдера
succeeded Ордер успешно исполнен, платеж был произведен
succeeded_by_appeal Ордер помечен успешным по апелляции
failed_by_appeal Платеж не был осуществлен, установлено по апелляции
all_terminals_failed Не удалось подобрать провайдера для платежа. Платеж не был осуществлен

Значение TTL обсуждается при интеграции.

Структура ответа API методов#

Ответ каждого метода API имеет следующий формат:

{
  "result": {
    "status": "success",
    "x-request-id": "string",
    "codeError": "none",
    "message": "string"
  },
  "data": {
    # ...
  }
}

Поле result содержит результат выполнения конкретного вызова.

  • Если "status" = "success" - запрос выполнился успешно и поле data содержит объект сущности.
  • Если "status" = "failed" - запросы выполнился неуспешно. Код ошибки содержится в поле codeError, сообщение - в поле message

Результат со значением "status" = "warning" означает, что в процессе выполнения вызова API произошла ошибка. Код ошибки содержится в поле codeError, поле message содержит описание ошибки.

Возможные варианты ответов#

HTTP Status Code result.codeError Причина
200 "none" Успешный ответ
400 "invalidRequestParameters" Неверные параметры
400 "turnoverLimitsExceeding" Сумма оборота за день (или месяц) превысила максимальный разрешенный лимит
400 "orderLimitsExceeding" Сумма ордера выходит за разрешенные лимиты
400 "duplicateMerchantOrderID" Передан дублирующийся merchantOrderID (idTransactionMerchant)
403 - Доступ запрещен
404 "noPaymentDetailsAvailable" Не найден провайдер для обработки ордера
500 "internalError" Внутренняя ошибка сервера

Note

Поля idTransactionMerchant и merchantOrderID идентичны и содержат переданный мерчантом ID ордера в системе мерчанта.

Форматы данных в API#

  1. Время: string, 2025-11-29T06:37:45.776331Z
  2. Суммы в валюте ордера: float64
  3. Суммы в USDT: float64 с точностью до 6-ти знаков после запятой