Виджет и API

Два способа подключения: готовый виджет оплаты в две строки кода или REST API для полного контроля над сценарием оплаты.

Получить ключи

1. Виджет для сайта

Скрипт отдаётся с нашего домена: https://rupayflow.ru/widget.js. После нажатия «Оплатить» покупатель переходит на защищённую страницу оплаты вида https://rupayflow.ru/pay/<id>.

HTML
<div id="rupayflow-widget"></div>
<script src="https://rupayflow.ru/widget.js"></script>
<script>
RuPayFlow.mount('#rupayflow-widget', {
publicKey: 'rpf_live_ваш_ключ', // ключ из кабинета
amount: 499000, // сумма в копейках
orderId: 'ORDER-1024',
methods: ['card', 'sbp'],
collectEmail: true,
brandColor: '#2563eb',
onCreate: function (payment) {
console.log('Платёж создан', payment.id);
}
});
</script>

2. Создание платежа по API

Базовый адрес API — https://rupayflow.ru/api/public/v1. Ключ из личного кабинета передаётся в заголовке Authorization. Метод: card или sbp.

cURL
curl -X POST https://rupayflow.ru/api/public/v1/payments \
-H "Authorization: Bearer rpf_live_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"amount": 4990.00,
"currency": "RUB",
"method": "sbp",
"order_id": "ORDER-1024",
"customer_email": "client@example.com"
}'

Ответ

JSON
{
"id": "8f2b41c9-...",
"status": "pending",
"amount": 4990.00,
"fee": 159.68,
"method": "sbp",
"qr_code_url": "https://api.qrserver.com/v1/create-qr-code/?...",
"payment_url": "https://rupayflow.ru/pay/8f2b41c9-...",
"usdt_amount": 52.4211,
"usdt_rate": 92.15
}

3. Проверка статуса платежа

GET-запрос по идентификатору платежа возвращает актуальный статус и сумму зачисления в USDT.

cURL
curl https://rupayflow.ru/api/public/v1/payments/8f2b41c9-...
# ответ
{
"id": "8f2b41c9-...",
"status": "succeeded",
"amount": 4990.00,
"usdt_amount": 52.4211
}

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

pendingПлатёж создан, ожидается оплата покупателем
succeededДеньги получены, баланс USDT пополнен
failedОплата не прошла
refundedВыполнен возврат покупателю