API Документация

Rosplat — Платежная платформа

Мы помогаем на всех этапах подключения, поэтому не стесняйтесь обращаться за помощью по интеграции к нам в рабочий чат, сотрудники технического отдела окажут всю нужную помощь и ответят на вопросы.

Подключение к Rosplat

Создание проекта

В личном кабинете вы можете создать новый проект и указать в его настройках:

Проверка проекта

После создания проекта и редактирования его настроек, мы проверим его на соответствие требованиям.

Введение в API

Базовый URL для всех запросов к API вы всегда можете получить в ЛК на сайте или в рабочем чате.

По умолчанию мы ожидаем в ваших POST запросах заголовок Content-Type: application/json. В случае передачи файлов используйте Content-Type: multipart/form-data.

Аутентификация

Для аутентификации запросов нужно передать в headers:

Эти данные можно получить в настройках вашего проекта в ЛК.

Все запросы к API должны быть с аутентификацией. Это не касается запроса на создание платежа по схеме Redirect, где используется ваша signature.

Баланс и статус проекта

Чтобы получить информацию о статусе проекта и его текущий баланс:

GET /merchant/shop/balance

Ответ:

{
  "success": 1,
  "shop": {
    "id": 111,
    "balance": 111111.11,
    "status": 1
  }
}

Платежи

Методы оплаты

Схемы создания платежей

Статусы платежей

Основные (отсылаются на Callback URL):

СтатусНазваниеОписание
1SuccessПлатеж успешно оплачен
2DoneПодтвержден мерчантом, полностью закрыт

Полный список:

СтатусОписание
-2Не было подходящих реквизитов
-1Черновик — ожидание выбора метода оплаты
0Ожидание оплаты
1Успешно оплачен, в процессе подтверждения
2Подтвержден мерчантом, полностью закрыт

Создание платежа Host-2-Host

Создание нового заказа и инициация платежа через Host-2-Host API.

Запрос к API должен быть с аутентификацией.
POST /merchant/v2/order/create/api

Поля запроса (все обязательные):

Пример запроса:

{
  "merchant_order_id": "order1234567890",
  "user_id": "user1234567890",
  "email": "user@example.com",
  "method": "sbp",
  "amount": 1000
}

Ответ (метод sbp):

{
  "success": 1,
  "payment": {
    "note": {
      "pan": "+7XXXXXXXXXX",
      "fio": "Иванов Иван",
      "type": "sbp",
      "bank": "Т-Банк"
    },
    "id": 4040404,
    "status": 0,
    "amount_to_shop": 820,
    "amount_to_pay": 1000,
    "changed_amount": 1000,
    "amount": 1000,
    "updatedAt": "2025-05-05T15:45:42.079Z",
    "createdAt": "2025-05-05T15:45:41.933Z",
    "expired": "2025-05-05T15:55:42.079Z"
  }
}

Ответ (метод card):

{
  "success": 1,
  "payment": {
    "note": {
      "pan": "2200XXXXXXXXXXXX",
      "fio": "Иванов Иван",
      "type": "card",
      "bank": "Банк Екатеринбург"
    },
    "id": 4040408,
    "status": 0,
    "amount_to_shop": 820,
    "amount_to_pay": 1000,
    "changed_amount": 1000,
    "amount": 1000,
    "updatedAt": "2025-05-05T19:08:10.259Z",
    "createdAt": "2025-05-05T19:08:10.186Z",
    "expired": "2025-05-05T19:18:10.258Z"
  }
}

Создание платежа Redirect

Формируется платежная ссылка, которая редиректит на платежную страницу.

Используется ваша signature.
GET /merchant/order/create/immediately

Поля запроса (все обязательные):

Подпись запроса (signature)

Пример формирования подписи (Node.js):

const crypto = require("crypto");

const getMd5HashSignature = (shop_id, secret, amount, merchant_order_id) => {
  return crypto
    .createHash("md5")
    .update(`${shop_id}:${secret}:${amount}:${merchant_order_id}`)
    .digest("hex");
};

После оплаты платежная форма редиректит на вашу страницу успешного платежа, а платформа отправляет событие на ваш Callback URL.

Статус ордера платежа

GET /merchant/order/{id}/status

Ответ:

{
  "success": 1,
  "order": {
    "id": 111111111,
    "shop_id": 111,
    "status": 2
  }
}

Отмена платежа

Мерчанты могут отменить платеж в статусе ожидания оплаты (status = 0).

Запрос к API должен быть БЕЗ аутентификации. Используется guid платежа.
POST /merchant/order/cancel

Поля запроса:

Пример запроса:

{
  "guid": "11e1c118-f111-54b4-11d1-dbfea712a11a"
}

Успешный ответ:

{
  "success": true,
  "message": "Deal canceled successfully"
}
Отменить можно только платежи в статусе ожидания (status = 0). После отмены платеж переходит в статус -2.

Выплаты

Методы выплат

Статусы выплат

СтатусНазваниеОписание
-1FailedОтклонена, проблема с реквизитами
3ApprovedОплачена и проверена
6DoneПроверена мерчантом, полностью закрыта
9ReconciliationОжидает сверки мерчантом

Создание заявки на выплату

Запрос к API должен быть с аутентификацией.
POST /merchant/payoutrequests/create/api

Поля запроса:

Пример запроса:

{
  "amount": 1000,
  "method": "card",
  "pan": "XXXXXXXXXXXXXXXX",
  "fio": "Иванов Иван Иванович",
  "bank": "Сбербанк"
}

Ответ:

{
  "success": 1,
  "requestPayout": {
    "id": 1,
    "shop_id": 1,
    "amount": 1000,
    "method": "card",
    "fio": "Иванов Иван Иванович",
    "pan": "XXXXXXXXXXXXXXXX",
    "bank": "Сбербанк",
    "createdAt": "2023-10-01T00:00:00.000Z",
    "updatedAt": "2023-10-01T00:00:00.000Z"
  }
}

Статус заявки на выплату

По внутреннему ID:

GET /merchant/payoutrequest/{id}/status

По внешнему ID мерчанта:

GET /merchant/payoutrequest/{merchant_payout_id}/status/ext

Ответ:

{
  "success": 1,
  "payout_request": {
    "id": 1111,
    "merchant_payout_id": "rp12345",
    "shop_id": 111,
    "status": 6
  }
}

Сверка выплат (Reconciliation)

Когда выплата переходит в статус 9 (Reconciliation), платформа отправляет на ваш Callback URL событие payout_reconciliation с данными выплаты. Мерчант должен подтвердить или отклонить выплату, вернув HTTP-статус:

⚠️ Обязательная часть интеграции. Реализация обработчика коллбека payout_reconciliation обязательна. Если мерчант не реализует обработку сверки — все финансовые риски по выплатам несет мерчант.
Если ваш сервер недоступен или не вернул 2xx, выплата будет автоматически отменена. Убедитесь, что Callback URL доступен и обрабатывает запросы корректно.

Callback payout_reconciliation:

{
  "event": "payout_reconciliation",
  "request_payout_id": 12345,
  "shop_id": 111,
  "merchant_payout_id": "rp12345",
  "amount": 10000,
  "method": "card",
  "pan": "XXXXXXXXXXXXXXXX",
  "bank": "Сбербанк",
  "createdAt": "2025-05-05T15:45:42.079Z"
}

Поля события:

ПолеТипОписание
eventstringВсегда payout_reconciliation
request_payout_idintegerВнутренний ID заявки на выплату
shop_idintegerID вашего проекта
merchant_payout_idstringВнешний ID выплаты мерчанта (если был передан при создании)
amountintegerСумма выплаты
methodstringМетод: card или sbp
panstringНомер карты или телефона
bankstringНазвание банка
createdAtstringДата создания заявки (ISO 8601)
Логика сверки: платформа отправляет данные выплаты на ваш сервер. Если вы подтверждаете (HTTP 2xx) — выплата переходит в обработку. Если отклоняете — выплата отменяется. Это позволяет мерчанту проверить, что реквизиты получателя и сумма соответствуют ожиданиям, прежде чем средства будут отправлены.

Апелляции

Типы апелляций

Поддерживаемые типы файлов

*.png   *.jpeg   *.jpg   *.pdf   *.mp4   *.mov

Статусы апелляций

СтатусНазваниеОписание
-1ArchiveВ архиве
0NewНовая апелляция, в ожидании
1ApprovedПринята и успешно закрыта
2RejectedОтклонена с комментарием трейдера
3InProgressВ работе у трейдера

Создание апелляции

Запрос к API должен быть с аутентификацией. Используйте Content-Type: multipart/form-data.
POST /merchant/shop/appeals/create/api

Поля запроса (все обязательные):

Ответ:

{
  "success": 1,
  "appeal": { "id": 123 }
}

Статус апелляции

GET /merchant/appeal/{id}/status

Ответ:

{
  "success": 1,
  "appeal": {
    "id": 11111,
    "payment_id": 111111111,
    "status": 1
  }
}

Коллбеки

Ваш Callback URL должен быть доступен по протоколу HTTPS и принимать POST запросы.

Необходимо возвращать статус 200 или 201, в случае ошибки событие отправится повторно.

Список событий

СобытиеОписание
payment_changed_statusИзменение статуса платежа
appeal_changed_statusИзменение статуса апелляции
request_payout_changed_statusИзменение статуса заявки на выплату
payout_reconciliationСверка выплаты — подтверждение или отклонение мерчантом
⚠️ Обязательно к реализации: обработчик события payout_reconciliation — обязательная часть интеграции выплат. Без реализации сверки мерчант принимает на себя все финансовые риски по выплатам.

Пример события payment_changed_status:

{
  "event": "payment_changed_status",
  "status": 1,
  "payment_id": 4040404,
  "guid": "11e1c118-f111-54b4-11d1-dbfea712a11a",
  "shop_id": 123,
  "merchant_id": "order1234567890",
  "user_id": "user1234567890",
  "email": "user@example.com",
  "amount_to_shop": 820,
  "amount_to_pay": 1000,
  "changed_amount": 1000,
  "amount": 1000,
  "method_group": "sbp",
  "updatedAt": "2025-05-05T15:45:42.079Z",
  "createdAt": "2025-05-05T15:45:41.933Z",
  "signature": "118809ecb4ef902326d55f1243e296b2..."
}

Пример события request_payout_changed_status:

{
  "event": "request_payout_changed_status",
  "request_payout_id": 12345,
  "status": 3,
  "status_detail": "Approved",
  "amount": 10000,
  "updatedAt": "2025-05-05T15:45:42.079Z"
}

Пример события appeal_changed_status (принята):

{
  "event": "appeal_changed_status",
  "payment_id": 4897937,
  "merchant_id": "order382738",
  "appeal_id": 8239,
  "appeal_status": 1,
  "appeal_status_detail": "Approved",
  "trader_note": "Все в порядке",
  "updatedAt": "2025-05-05T15:45:42.079Z"
}

Пример события payout_reconciliation:

{
  "event": "payout_reconciliation",
  "request_payout_id": 12345,
  "shop_id": 111,
  "merchant_payout_id": "rp12345",
  "amount": 10000,
  "method": "card",
  "pan": "XXXXXXXXXXXXXXXX",
  "bank": "Сбербанк",
  "createdAt": "2025-05-05T15:45:42.079Z"
}

Подпись события (signature)

Для проверки целостности данных используется HMAC SHA256 с вашим секретным ключом из настроек проекта в ЛК.

Пример проверки подписи (Node.js):

const crypto = require("crypto");

const verifySignature = (data, signature, secretKey) => {
  const expected = crypto
    .createHmac("sha256", secretKey)
    .update(JSON.stringify(data))
    .digest("hex");
  return expected === signature;
};