Повернення коштів
Типи операцій
Section titled “Типи операцій”| Операція | Коли використовувати |
|---|---|
| Refund | Після успішного списання коштів |
| Cancel | Для скасування заблокованих (холд) коштів |
Повернення коштів (Refund)
Section titled “Повернення коштів (Refund)”Повернення коштів після успішного платежу:
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" }'Параметри
Section titled “Параметри”| Параметр | Обов’язковий | Опис |
|---|---|---|
external_id | Так | ID оригінального замовлення |
amount | Ні | Сума повернення (якщо не вказано — повна сума) |
currency | Ні | Валюта |
callback_url | Ні | URL для callback |
payload | Ні | Додаткові дані |
Успішна відповідь
Section titled “Успішна відповідь”{ "is_success": true, "details": { "status": "success", "status_code": "refund_successful", "status_description": "Refund successful." }}Часткове повернення
Section titled “Часткове повернення”Можна повернути частину суми:
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" }'Відкладене повернення
Section titled “Відкладене повернення”Якщо на балансі мерчанта недостатньо коштів:
{ "is_success": false, "details": { "status": "pending", "status_code": "refund_pending", "status_description": "Refund is pending due to insufficient balance" }}Примусове повторення
Section titled “Примусове повторення”Щоб вручну повторити спробу повернення:
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 повернення:
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.
Скасування холду (Cancel)
Section titled “Скасування холду (Cancel)”Для розблокування раніше заблокованих коштів (двостадійна оплата):
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" }'Часткове скасування
Section titled “Часткове скасування”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" }'Успішна відповідь
Section titled “Успішна відповідь”{ "is_success": true, "details": { "status": "success", "status_code": "1009", "status_description": "Reverse successful" }}Коли що використовувати
Section titled “Коли що використовувати”| Сценарій | Операція |
|---|---|
| Товар не підійшов (після оплати) | refund |
| Замовлення скасовано до відправки (двостадійна) | cancel |
| Клієнт відмовився до списання | cancel |
| Товар пошкоджений (після оплати) | refund |
Статуси повернень
Section titled “Статуси повернень”| Статус | Опис |
|---|---|
refund_successful | Успішне повернення |
refund_pending | Очікує (недостатньо коштів) |
refund_is_cancelled_by_system | Скасовано системою |
refund_is_cancelled_by_initiator | Скасовано мерчантом |
Callbacks
Section titled “Callbacks”Після кожної операції повернення надсилається callback:
{ "payment_id": "rp_abc123", "external_id": "order_12345", "operation": "refund", "details": { "status": "success", "status_code": "refund_successful", "amount": 100, "currency": "UAH" }}