RozetkaPay

Оплатити частинами

Створення та управління заявками «Оплатити частинами» через банки-партнери RozetkaPay

«Оплатити частинами» — форма розстрочки, за якої клієнт розбиває вартість замовлення на N платежів в одному з банків-партнерів або в сервісі кредитування від Rozetka.

Доступні банки

Значення для поля bank_name:

bank_nameНазва
rozetkapay«Оплатити частинами від Rozetka»
abankА-Банк
fuibПУМБ
izibankizibank
monobankmonobank
oschadbankОщадбанк
otpbankOTP Bank
privatbankПриватБанк

Перед створенням заявки отримайте список банків, підключених для проєкту, та доступні для них кількості платежів і ліміти:

curl -X GET https://api.rozetkapay.com/api/payparts/v1/banks/info \
-u "login:password"

Відповідь

[
{
"name": "abank",
"logo_url": "https://cdn.rozetkapay.com/banks/abank.svg",
"product_name": "Оплата частинами",
"available_periods": [2, 3, 4, 6, 9, 12],
"limits": {
"min_amount": 300,
"max_amount": 50000
}
}
]
ПараметрОпис
nameНазва банку — передавайте як bank_name
available_periodsДопустимі значення parts_count
limits.min_amount / max_amountМінімальна / максимальна сума
logo_urlЛого банку
product_nameНазва продукту банку

Створення заявки

curl -X POST https://api.rozetkapay.com/api/payparts/v1/order/create \
-u "login:password" \
-H "Content-Type: application/json" \
-d '{
"auto_confirm_after_success": false,
"bank_name": "abank",
"mode": "direct",
"external_id": "order_12345",
"amount": 1100,
"currency": "UAH",
"parts_count": 4,
"description": "Замовлення на сайті",
"products": [
{ "name": "Праска", "quantity": 1, "price": 1100 }
],
"result_url": "https://your-site.com/result",
"callback_url": "https://your-site.com/callback",
"customer": {
"first_name": "Ivan",
"last_name": "Ivanov",
"phone": "+380501234567",
"email": "user@example.com"
}
}'

Весь перелік полів — у API Reference →

Параметри

ПараметрОбов’язковийТипОпис
bank_nameТакstringНазва банку з GET /api/payparts/v1/banks/info
modeТакstringdirect або hosted. Для oschadbank — тільки hosted
external_idТакstringУнікальний номер замовлення
unified_external_idНіstringДодатковий (не унікальний) номер
amountТакnumberСума замовлення
currencyТакstringВалюта (ISO 4217)
parts_countТакintegerКількість платежів
descriptionТакstringОпис замовлення
auto_confirm_after_successНіbooleantrue — заявка підтверджується автоматично; false — підтвердити вручну
productsНі/ТакarrayТовари в замовленні (name, quantity, price). Обов’язковий для rozetkapay
result_urlНі/ТакstringURL повернення. Обов’язковий для rozetkapay
callback_urlНіstringURL для callback
customerТакobjectДані покупця
payloadНіstringДодаткові дані

Вимоги залежно від банку

БанкmodeРеквізит платника
rozetkapaydirectномер телефону
abankdirectномер телефону
fuibdirectномер телефону
izibankdirectномер телефону
monobankdirectномер телефону
oschadbankhostedдані картки
otpbankdirectномер телефону
privatbankdirectномер телефону — необов’язковий

oschadbank — єдиний банк, який працює в режимі hosted: покупець вводить дані картки на платіжній сторінці.

У режимі direct заявка йде одразу в банк, покупець підтверджує її пуш-повідомленням у застосунку банку, а у відповіді немає посилання (action_required: false) — чекайте на callback. Винятки:

  • rozetkapay — у відповіді посилання на кредитний checkout RozetkaPay, куди треба перенаправити покупця;
  • privatbank — якщо передано customer.phone, покупець отримує пуш у Privat24, інакше у відповіді буде посилання на підтвердження.

Відповідь

{
"id": "336419005713727488",
"external_id": "order_12345",
"unified_external_id": "order_12345",
"is_success": true,
"action_required": true,
"action": {
"type": "url",
"value": "https://buy.rozetkapay.com/order/eac490d8-..."
},
"details": {
"method": "create",
"status": "init",
"amount": 1100,
"currency": "UAH",
"created_at": "2025-04-22T10:00:00Z"
}
}

Якщо action_required: true, перенаправте покупця на action.value для завершення оформлення.

Підтвердження заявки

curl -X POST https://api.rozetkapay.com/api/payparts/v1/order/confirm \
-u "login:password" \
-H "Content-Type: application/json" \
-d '{
"external_id": "order_12345",
"callback_url": "https://your-site.com/callback"
}'
ПараметрОбов’язковийОпис
external_idТакНомер замовлення
callback_urlНіURL для callback
payloadНіДодаткові дані

Відміна заявки

Доступна для створеної, але ще не підтвердженої заявки.

curl -X POST https://api.rozetkapay.com/api/payparts/v1/order/cancel \
-u "login:password" \
-H "Content-Type: application/json" \
-d '{
"external_id": "order_12345",
"callback_url": "https://your-site.com/callback"
}'

Повернення коштів

curl -X POST https://api.rozetkapay.com/api/payparts/v1/refund \
-u "login:password" \
-H "Content-Type: application/json" \
-d '{
"external_id": "order_12345",
"amount": 1100,
"currency": "UAH",
"callback_url": "https://your-site.com/callback"
}'
ПараметрОбов’язковийОпис
external_idТакНомер замовлення
amountНіСума повернення (без неї — повна сума)
currencyНіВалюта
callback_urlНіURL для callback

Відміна pending-повернення

Якщо повернення у статусі refund_pending (недостатньо балансу), його можна скасувати:

curl -X POST https://api.rozetkapay.com/api/payparts/v1/refund/cancel \
-u "login:password" \
-H "Content-Type: application/json" \
-d '{ "external_id": "order_12345" }'

Примусове повторення повернення

curl -X POST https://api.rozetkapay.com/api/payparts/v1/refund/retry \
-u "login:password" \
-H "Content-Type: application/json" \
-d '{ "external_id": "order_12345" }'

Тестування

У sandbox замість справжніх банків використовуйте stub — це банк-емулятор, який повертає передбачуваний результат (успіх або відмову) залежно від номера телефону покупця, не звертаючись до реального банку.

Тестові номери телефонів — у розділі Тестові картки, блок «Тестування «Оплатити частинами» та кредитів від Rozetka».

Фіскалізація

«Оплатити частинами» підтримує ПРРО-фіскалізацію з власним набором полів у products[] (price, external_id, name, quantity, tax_group). Див. Фіскалізація продажів.