Перейти до вмісту

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

ОпераціяКоли використовувати
RefundПісля успішного списання коштів
CancelДля скасування заблокованих (холд) коштів

Повернення коштів (Refund)

Section titled “Повернення коштів (Refund)”

Повернення коштів після успішного платежу:

Terminal window
curl -X POST https://api.rozetkapay.com/api/payments/v1/refund \
-u "login:password" \
-H "Content-Type: application/json" \
-d '{
"external_id": "order_12345",
"amount": 100,
"currency": "UAH",
"callback_url": "https://your-site.com/callback"
}'
ПараметрОбов’язковийОпис
external_idТакID оригінального замовлення
amountНіСума повернення (якщо не вказано — повна сума)
currencyНіВалюта
callback_urlНіURL для callback
payloadНіДодаткові дані
{
"is_success": true,
"details": {
"status": "success",
"status_code": "refund_successful",
"status_description": "Refund successful."
}
}

Можна повернути частину суми:

Terminal window
curl -X POST https://api.rozetkapay.com/api/payments/v1/refund \
-u "login:password" \
-H "Content-Type: application/json" \
-d '{
"external_id": "order_12345",
"amount": 50,
"currency": "UAH"
}'

Якщо на балансі мерчанта недостатньо коштів:

{
"is_success": false,
"details": {
"status": "pending",
"status_code": "refund_pending",
"status_description": "Refund is pending due to insufficient balance"
}
}

Щоб вручну повторити спробу повернення:

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

Відміна відкладеного повернення

Section titled “Відміна відкладеного повернення”

Щоб скасувати pending повернення:

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

Статус зміниться на refund_is_cancelled_by_initiator.

Для розблокування раніше заблокованих коштів (двостадійна оплата):

Terminal window
curl -X POST https://api.rozetkapay.com/api/payments/v1/cancel \
-u "login:password" \
-H "Content-Type: application/json" \
-d '{
"external_id": "order_12345",
"callback_url": "https://your-site.com/callback"
}'
Terminal window
curl -X POST https://api.rozetkapay.com/api/payments/v1/cancel \
-u "login:password" \
-H "Content-Type: application/json" \
-d '{
"external_id": "order_12345",
"amount": 50,
"currency": "UAH"
}'
{
"is_success": true,
"details": {
"status": "success",
"status_code": "1009",
"status_description": "Reverse successful"
}
}

Коли що використовувати

Section titled “Коли що використовувати”
СценарійОперація
Товар не підійшов (після оплати)refund
Замовлення скасовано до відправки (двостадійна)cancel
Клієнт відмовився до списанняcancel
Товар пошкоджений (після оплати)refund
СтатусОпис
refund_successfulУспішне повернення
refund_pendingОчікує (недостатньо коштів)
refund_is_cancelled_by_systemСкасовано системою
refund_is_cancelled_by_initiatorСкасовано мерчантом

Після кожної операції повернення надсилається callback:

{
"payment_id": "rp_abc123",
"external_id": "order_12345",
"operation": "refund",
"details": {
"status": "success",
"status_code": "refund_successful",
"amount": 100,
"currency": "UAH"
}
}