RolliePay
RolliePayМерчантам
API Documentation

Документация для мерчантов

Интегрируйте RolliePay в свой проект за несколько часов. Принимайте P2P-платежи через карты, СБП и переводы.

REST APIWebhooksJSONHTTPS

Введение

RolliePay — процессинговая платформа для приёма P2P-платежей. Мерчант создаёт платёж через API, система автоматически назначает оператора с подходящими реквизитами. Покупатель переводит деньги напрямую оператору, после чего оператор подтверждает получение.

Создайте платёж

POST /api/payments/create с суммой и методом

Перенаправьте

Покупатель оплачивает по реквизитам оператора

Получите webhook

Уведомление об успехе или неуспехе

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

Все запросы к API должны содержать ваш API-ключ в заголовке X-Api-Key. Ключ выдаётся администратором и начинается с mk_.

X-Api-Key: mk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Храните API-ключ в переменных окружения. Никогда не публикуйте его в клиентском коде или репозитории.

Создать платёж

Основная операция — создание платежа. В ответ получаете объект платежа с реквизитами оператора.

POST
/api/payments/create

Создать новый платёж

Параметры запроса

ПолеТипОбяз.Описание
amountnumberСумма платежа в рублях
currencystring"RUB"
methodstring"card" | "sbp" | "c2c"
order_idstringВаш внутренний ID заказа
callback_urlstringURL для webhook-уведомлений
success_urlstringРедирект при успешной оплате
fail_urlstringРедирект при неуспешной оплате
customer_emailstringEmail покупателя
descriptionstringОписание платежа

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

curl -X POST https://merch-production-f1cb.up.railway.app/api/payments/create \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: mk_ваш_ключ" \
  -d '{
    "amount": 1000,
    "currency": "RUB",
    "method": "card",
    "order_id": "ORDER-123",
    "callback_url": "https://yoursite.com/webhook",
    "success_url": "https://yoursite.com/success",
    "fail_url": "https://yoursite.com/fail"
  }'

Ответ

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "amount": 1000,
  "currency": "RUB",
  "method": "card",
  "status": "pending",
  "order_id": "ORDER-123",
  "expires_at": "2024-01-15T12:30:00Z",
  "created_at": "2024-01-15T12:00:00Z",
  "requisite": {
    "type": "card",
    "bank": "sberbank",
    "value": "4276 **** **** 1234",
    "owner_name": "Иван И."
  }
}

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

Получить текущий статус платежа по его UUID (без авторизации — для страницы покупателя).

GET
/api/payments/:id/public

Публичный статус платежа (без авторизации)

curl https://merch-production-f1cb.up.railway.app/api/payments/550e8400-e29b-41d4-a716-446655440000/public
Используйте этот эндпоинт для страницы ожидания оплаты — опрашивайте каждые 5 секунд и редиректьте при статусе success или failed.

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

СтатусОписаниеФинальный
pendingОжидает оплаты от покупателя
successОплата подтверждена оператором
failedПлатёж не прошёл / открыт спор
expiredИстекло время ожидания (30 мин)
cancelledОтменён

Webhook

При изменении статуса платежа RolliePay отправляет POST-запрос на ваш callback_url. Ваш сервер должен вернуть 200 OK.

События

payment.successpayment.failedpayment.expired
POST https://yoursite.com/webhook
Content-Type: application/json

{
  "event": "payment.success",
  "payment": {
    "id": "uuid",
    "order_id": "ORDER-123",
    "amount": 1000,
    "currency": "RUB",
    "method": "card",
    "status": "success",
    "created_at": "2024-01-15T12:00:00Z"
  }
}
Дополнительно проверяйте статус через GET /api/payments/:id/public — webhook может не дойти при временных сетевых сбоях.

Примеры интеграции

Node.js / Express — обработка webhook

app.post('/webhook', express.json(), async (req, res) => {
  const { event, payment } = req.body;

  if (event === 'payment.success') {
    // Зачислить баланс пользователю
    await creditsService.add(payment.order_id, payment.amount);
  }

  res.sendStatus(200); // обязательно вернуть 200
});

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

methodОписаниеВалюта
cardПеревод на банковскую картуRUB
sbpСБП — Система быстрых платежейRUB
c2cCard2Card переводRUB

Ошибки

HTTPmessageПричина
401Invalid API keyНеверный или отсутствующий X-Api-Key
400Validation failedНеверные параметры запроса
404Payment not foundПлатёж с таким ID не существует
503No operators availableНет доступных операторов для суммы/метода

Нужна помощь с интеграцией?

Наш менеджер ответит на все вопросы по API и настройке

Написать в Telegram