Скасування платежу: відмінності між версіями
Немає опису редагування |
Немає опису редагування |
||
(Не показані 3 проміжні версії цього користувача) | |||
Рядок 1: | Рядок 1: | ||
{{APINav}} | |||
== Вступ == | == Вступ == | ||
----Метод викликається лише для платежів у статусі "accepted". Для успішного скасування має бути достатньо суми прийнятих платежів у день скасування. Можна скасовувати платежі, які не старші 30 днів. Успішне повернення після цього терміну – не гарантується, залежить від умов банків-еквайєрів. | ----Метод викликається лише для платежів у статусі "accepted". Для успішного скасування має бути достатньо суми прийнятих платежів у день скасування. Можна скасовувати платежі, які не старші 30 днів. Успішне повернення після цього терміну – не гарантується, залежить від умов банків-еквайєрів. | ||
Рядок 445: | Рядок 446: | ||
При успішному скасуванні платежу, якщо налаштована HTTP - нотифікація '''(див.''' [[MerchantAPI#Повідомлення про платіж|Повідомлення про платіж]]''')''', на Merchant.UrlNotify буде одноразово надіслано POST - запит із параметром '''"action": "refund"''' та сумою '''(amount)''', яка була скасована. Нотифікація надсилається одноразово без повторних спроб, статус у відповідь код нами не перевіряється. | При успішному скасуванні платежу, якщо налаштована HTTP - нотифікація '''(див.''' [[MerchantAPI#Повідомлення про платіж|Повідомлення про платіж]]''')''', на Merchant.UrlNotify буде одноразово надіслано POST - запит із параметром '''"action": "refund"''' та сумою '''(amount)''', яка була скасована. Нотифікація надсилається одноразово без повторних спроб, статус у відповідь код нами не перевіряється. | ||
<div style="width: 100%; display: flex; justify-content: space-between; gap: | <div style="width: 100%; display: flex; justify-content: space-between; gap: 16px; box-sizing: border-box; padding: 8px 0;"> | ||
<!-- Ліва кнопка --> | <!-- Ліва кнопка --> | ||
<div style=" | <div style=" | ||
position: relative; | |||
flex: 1; | flex: 1; | ||
min-width: | min-width: 150px; | ||
background: rgba(135, 206, 250, 0.1); | background: rgba(135, 206, 250, 0.1); | ||
padding: 14px | padding: 8px 14px; | ||
border-radius: | border-radius: 8px; | ||
border: 1px solid #007BFF; | border: 1px solid #007BFF; | ||
color: #007BFF; | color: #007BFF; | ||
font-weight: bold; | font-weight: bold; | ||
font-size: | font-size: 1em; /* пропорційний розмір */ | ||
display: flex; | display: flex; | ||
align-items: center; | align-items: center; | ||
Рядок 463: | Рядок 466: | ||
cursor: pointer; | cursor: pointer; | ||
"> | "> | ||
[[Перевірка статусу платежу]] | <!-- Текст у кутку --><span style="position: absolute; top: 6px; left: 8px;">← Назад</span> | ||
<!-- Основний текст --> | |||
<br> | |||
<span>[[Перевірка статусу платежу]]</span> | |||
</div> | </div> | ||
<!-- Права кнопка --> | <!-- Права кнопка --> | ||
<div style=" | <div style=" | ||
position: relative; | |||
flex: 1; | flex: 1; | ||
min-width: | min-width: 150px; | ||
background: rgba(135, 206, 250, 0.1); | background: rgba(135, 206, 250, 0.1); | ||
padding: 14px | padding: 8px 14px; | ||
border-radius: | border-radius: 8px; | ||
border: 1px solid #007BFF; | border: 1px solid #007BFF; | ||
color: #007BFF; | color: #007BFF; | ||
font-weight: bold; | font-weight: bold; | ||
font-size: | font-size: 1em; /* пропорційний розмір */ | ||
display: flex; | display: flex; | ||
align-items: center; | align-items: center; | ||
Рядок 482: | Рядок 491: | ||
cursor: pointer; | cursor: pointer; | ||
"> | "> | ||
[[Повідомлення про платіж]] | |||
</div> | |||
<span style="position: absolute; top: 6px; right: 8px;">Далі →</span> | |||
<!-- Основний текст --> | |||
<span>[[Повідомлення про платіж]]</span> | |||
</div> | |||
</div> | </div> |
Поточна версія на 12:43, 14 серпня 2025
Merchant API
Головна сторінка- Загальні_відомості
- Заголовки запитів
- Основні запити та відповіді
- Реєстрація точки та створення сесії
- Створення замовлення
- Розхолдування платежу
- Параметри BrowseInfo при 3DS оплаті
- Підтвердження платежу клієнтом. Введення смс. Проходження 3DS перевірки
- Перевірка статусу платежу
- Скасування платежу
- Повідомлення про платіж
- Робота з токенізованими картами
(Токенізація з передачею даних картки у запиті
- Токенізація за допомогою введення даних картки користувачем на сторінці
- Отримання списку токенізованих карт
- Видалення токенізованих карт
- Видача кредиту (переказ на картку користувача)
- Нотифікації (колбеки) щодо операцій поповнення карток
- Інтеграція з ApplePay та GooglePay
- Створення підпису
- Можливі варіанти інструментів оплати
- SDK
Вступ
Метод викликається лише для платежів у статусі "accepted". Для успішного скасування має бути достатньо суми прийнятих платежів у день скасування. Можна скасовувати платежі, які не старші 30 днів. Успішне повернення після цього терміну – не гарантується, залежить від умов банків-еквайєрів.
Повернення суми на картку відбувається в строк 0-3 робочих дні, в окремих випадках – до 30 робочих днів. Це залежить від умов банку-еквайєра, через який пройшов основний платіж, а також банку-емітента.
Скасування звичайного платежу
POST /api/merchant/cancelOrder
Request
headers
"Content-Type": "application/json"
"PartnerKey": "partnerName"
"locale": "ua"
"AppId": "a5806a5f-dbb8-496a-a23f-aab6d2fcbce1"
"PageId": "2ce7dba6-4600-456e-b9c8-f13cacf1c85d"
"Sign": "e0v1vIOMyNt2qSmrG5+sjAq8wOhvgDDUEyfVP21mRU4="
body
{
"serviceKey": "MERCHANT-TEST",
"orderId": "test_20210217-121843",
"transactionId": "913141164",
"amount":"1"
}
Response
headers
body
{
"merchantKey":"easypay-test",
"transactionId":913141164,
"refundTransactionId":913141464,
"orderId":"test_20210217-121843",
"amount":1.000000,
"paymentState":"accepted",
"error":null
}
Опис параметрів
Параметр | Характеристика | Коментарій |
---|---|---|
amount |
скасована сума | для часткового скасування - передається із сумою, яку потрібно скасувати.
для скасування повної суми - параметр amount не передається |
transactionId |
оригінальна транзакція | магазину чи послуги
передається партнеру після реєстрації у системі EasyPay відповідальним менеджером. |
refundTransactionId |
транзакція рефанду (скасування) | транзакція рефанду (скасування) |
paymentState |
статус транзакції рефанду (скасування). Можливі значення: | Можливі значення:
|
Якщо скасування пройшло успішно, запит статусу оригінальної транзакції повинен повертати "paymentState
":"declined
", а запит статусу транзакції скасування - "paymentState
": "accepted
"
При успішному скасуванні платежу, якщо налаштована HTTP - нотифікація (Повідомлення про платіж), на Merchant.UrlNotify буде одноразово надіслано POST - запит із параметром "action
": "refund
" та сумою (amount), яка була скасована. Нотифікація надсилається одноразово без повторних спроб, статус у відповідь код нами не перевіряється.
Скасування платежу (замовлення зі Splitting параметрами)
Скасування платежу (Замовлення) можна робити:
- на всю суму платежу (замовлення)
- на суму одного спліту (Часткова скасування платежу (замовлення))
- на суму меншу від суми спліту (Часткова скасування спліту)
Скасування повної суми платежу (замовлення зі Splitting параметрами)
- Для скасування повної суми Splitting транзакції необхідно виконати запит статусу транзакції згідно з розділом "Перевірка статусу платежу" використовуючи основний
OrderID
- Отриманий у відповіді кореневий
transactionID
використовувати у запитіcancelOrder
- У відповідь на запит
cancelOrder
буде отримано відповідь зі статусом скасування, а також буде отримано коллбек по кожній транзакції, яка входила до Splitting транзакції. - Коллбек на загальну суму Splitting транзакції не надходить.
POST /api/merchant/cancelOrder
Request
headers
"Content-Type": "application/json"
"PartnerKey": "partnerName"
"locale": "ua"
"AppId": "a5806a5f-dbb8-496a-a23f-aab6d2fcbce1"
"PageId": "2ce7dba6-4600-456e-b9c8-f13cacf1c85d"
"Sign": "e0v1vIOMyNt2qSmrG5+sjAq8wOhvgDDUEyfVP21mRU4="
body
{
"serviceKey": "easypay-test",
"orderId": "full_split_11",
"transactionId": 991379504,
}
Response
headers
відсутній
body
{
"merchantKey":"easypay-test",
"transactionId": 991379504,
"refundTransactionId":913141464,
"orderId":"full_split_11",
"amount":1.000000,
"paymentState":"accepted",
"error":null
}
Опис параметрів
Параметр | Характеристика | Коментарій |
---|---|---|
transactionId |
номер транзакції, що скасовується, приходить при отриманні коллбека за оплаченим замовленням (параметр payment_id) | |
amount |
сума, що скасовується:
для часткового скасування - передається із сумою, яку потрібно скасувати. |
|
transactionId |
оригінальна транзакція, яка була відправлена у запиті cancelOrder | |
refundTransactionId |
транзакція рефанду (скасування) | |
amount |
сума, яка була скасована | |
paymentState |
статус транзакції рефанду (скасування) | Можливі значення:
|
Якщо скасування пройшло успішно, запит статусу оригінальної транзакції повинен тепер повертати "paymentState":"declined"
як для основної так і для окремих транзакцій, а запит статусу транзакції скасування - "paymentState":"accepted".
При успішному скасуванні платежу, якщо налаштована HTTP - нотифікація (див. Повідомлення про платіж), на Merchant.UrlNotify буде одноразово надіслано POST - запит із параметром "action": "refund"
та сумою (amount
), яка була скасована. Нотифікація надсилається одноразово без повторних спроб, статус у відповідь код нами не перевіряється.
Скасування повної суми платежу (замовлення зі Splitting параметрами)
- Для скасування повної суми Splitting транзакції необхідно виконати запит статусу транзакції згідно з розділом "Перевірка статусу платежу" використовуючи основний
OrderID
- Отриманий у відповіді кореневий
transactionID
використовувати у запитіcancelOrder
- У відповідь на запит
cancelOrder
буде отримано відповідь зі статусом скасування, а також буде отримано коллбек по кожній транзакції, яка входила до Splitting транзакції. - Коллбек на загальну суму Splitting транзакції не надходить.
POST /api/merchant/cancelOrder
Request
headers
"Content-Type": "application/json"
"PartnerKey": "partnerName"
"locale": "ua"
"AppId": "a5806a5f-dbb8-496a-a23f-aab6d2fcbce1"
"PageId": "2ce7dba6-4600-456e-b9c8-f13cacf1c85d"
"Sign": "e0v1vIOMyNt2qSmrG5+sjAq8wOhvgDDUEyfVP21mRU4="
body
{
"serviceKey": "easypay-test",
"orderId": "full_split_11",
"transactionId": 991379504,
}
Response
headers
відсутній
body
{
"merchantKey":"easypay-test",
"transactionId": 991379504,
"refundTransactionId":913141464,
"orderId":"full_split_11",
"amount":1.000000,
"paymentState":"accepted",
"error":null
}
Опис параметрів
Параметр | Характеристика | Коментарій |
---|---|---|
transactionId |
номер транзакції, що скасовується, приходить при отриманні коллбека за оплаченим замовленням (параметр payment_id) | |
amount |
сума, що скасовується:
для часткового скасування - передається із сумою, яку потрібно скасувати. |
|
transactionId |
оригінальна транзакція, яка була відправлена у запиті cancelOrder | |
refundTransactionId |
транзакція рефанду (скасування) | |
amount |
сума, яка була скасована | |
paymentState |
статус транзакції рефанду (скасування) | Можливі значення:
|
Якщо скасування пройшло успішно, запит статусу оригінальної транзакції повинен тепер повертати "paymentState":"declined"
як для основної так і для окремих транзакцій, а запит статусу транзакції скасування - "paymentState":"accepted".
При успішному скасуванні платежу, якщо налаштована HTTP - нотифікація (див. Повідомлення про платіж), на Merchant.UrlNotify буде одноразово надіслано POST - запит із параметром "action": "refund"
та сумою (amount
), яка була скасована. Нотифікація надсилається одноразово без повторних спроб, статус у відповідь код нами не перевіряється.
Часткове скасування (повернення) платежу (замовлення зі Splitting параметрами)
Для часткового скасування платежу необхідно виконати запит cancelCurder
використовуючи transactionID
який був отриманий в коллбеку (параметр payment_id), а також вказавши суму скасування (вона має бути меншою або дорівнює сумі транзакції, що скасовується).
- У відповідь на запит
cancelOrder
буде отримано відповідь зі статусом скасування, а також буде отримано коллбек про успішне скасування цієї транзакції.
POST /api/merchant/cancelOrder
Request
headers
"Content-Type": "application/json"
"PartnerKey": "partnerName"
"locale": "ua"
"AppId": "a5806a5f-dbb8-496a-a23f-aab6d2fcbce1"
"PageId": "2ce7dba6-4600-456e-b9c8-f13cacf1c85d"
"Sign": "e0v1vIOMyNt2qSmrG5+sjAq8wOhvgDDUEyfVP21mRU4="
body
{
"serviceKey": "easypay-test",
"orderId": "full_split_11",
"transactionId": 991379509,
"amount":1.00
}
Опис параметрів
Параметр | Характеристика | Коментарій |
---|---|---|
transactionId |
номер транзакції, що скасовується, приходить при отриманні коллбека за оплаченим замовленням (параметр payment_id) | |
amount |
сума, що скасовується:
для часткового скасування - передається із сумою, яку потрібно скасувати. |
Response
headers
відсутній
body
{
"merchantKey":"easypay-test",
"transactionId":"991379509",
"refundTransactionId":"913141464",
"orderId":"full_split_11",
"amount":"1.000000",
"paymentState":"accepted",
"error":"null"
}
Опис параметрів
Параметр | Характеристика | Коментарій |
---|---|---|
transactionId |
оригінальна транзакція, яка була відправлена у запиті cancelOrder | |
refundTransactionId |
транзакція рефанду (скасування) | |
amount |
сума, яка була скасована | |
paymentState |
транзакція рефанду (скасування) |
|
Якщо скасування пройшло успішно, запит статусу оригінальної транзакції повинен тепер повертати "paymentState":"declined", а запит статусу транзакції скасування - "paymentState":"accepted"
При успішному скасуванні платежу, якщо налаштована HTTP - нотифікація (див. Повідомлення про платіж), на Merchant.UrlNotify буде одноразово надіслано POST - запит із параметром "action": "refund" та сумою (amount), яка була скасована. Нотифікація надсилається одноразово без повторних спроб, статус у відповідь код нами не перевіряється.
← Назад
Перевірка статусу платежу
Далі →
Повідомлення про платіж