Скасування платежу: відмінності між версіями

Матеріал з apidocs
Перейти до: навігація, пошук
Немає опису редагування
 
(Не показано 7 проміжних версій цього користувача)
Рядок 1: Рядок 1:
{{APINav}}
== Вступ ==
== Вступ ==
----Метод викликається лише для платежів у статусі "accepted". Для успішного скасування має бути достатньо суми прийнятих платежів у день скасування. Можна скасовувати платежі, які не старші 30 днів. Успішне повернення після цього терміну – не гарантується, залежить від умов банків-еквайєрів.
----Метод викликається лише для платежів у статусі "accepted". Для успішного скасування має бути достатньо суми прийнятих платежів у день скасування. Можна скасовувати платежі, які не старші 30 днів. Успішне повернення після цього терміну – не гарантується, залежить від умов банків-еквайєрів.
Рядок 226: Рядок 227:


При успішному скасуванні платежу, якщо налаштована HTTP - нотифікація '''(див.''' [[MerchantAPI#Повідомлення про платіж|Повідомлення про платіж]]''')''', на Merchant.UrlNotify буде '''одноразово''' надіслано POST - запит із параметром <code>"action": "refund"</code> та сумою (<code>amount</code>), яка була скасована. Нотифікація надсилається одноразово без повторних спроб, статус у відповідь код нами не перевіряється.
При успішному скасуванні платежу, якщо налаштована HTTP - нотифікація '''(див.''' [[MerchantAPI#Повідомлення про платіж|Повідомлення про платіж]]''')''', на Merchant.UrlNotify буде '''одноразово''' надіслано POST - запит із параметром <code>"action": "refund"</code> та сумою (<code>amount</code>), яка була скасована. Нотифікація надсилається одноразово без повторних спроб, статус у відповідь код нами не перевіряється.
===== Скасування повної суми платежу (замовлення зі Splitting параметрами) =====
----
* Для скасування повної суми Splitting транзакції необхідно виконати запит статусу транзакції згідно з розділом "[[MerchantAPI#Перевірка статусу платежу|Перевірка статусу платежу]]'''"''' використовуючи основний <code>OrderID</code>
* Отриманий у відповіді кореневий <code>transactionID</code> використовувати у запиті [[MerchantAPI#Скасування платежу|<code>cancelOrder</code>]]
* У відповідь на запит [[MerchantAPI#Скасування платежу|<code>cancelOrder</code>]] буде отримано відповідь зі статусом скасування, а також буде отримано коллбек по кожній транзакції, яка входила до Splitting транзакції.
* Коллбек на загальну суму Splitting транзакції не надходить.
<br>
<p style="border: 1px solid #9ACD32; background-color: rgba(144, 238, 144, 0.5); padding: 10px; border-radius: 8px; font-family: Arial, sans-serif; font-size: 14px; font-weight: normal; position: relative; padding-left: 80px;">
    <span style="position: absolute; top: 10px; left: 10px; background-color: #006400; color: white; padding: 2px 12px; border-radius: 4px; font-size: 14px; font-weight: bold;">POST</span>
    <span style="margin-left: 5px; font-weight: bold; font-size: 16px;"> /api/merchant/cancelOrder</span>
</p>
'''Request'''<syntaxhighlight lang="json" line="1">
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,
}
</syntaxhighlight>
'''Response'''<syntaxhighlight lang="json" line="1">
headers
відсутній
body
{
  "merchantKey":"easypay-test",
  "transactionId": 991379504,
  "refundTransactionId":913141464,
  "orderId":"full_split_11",
  "amount":1.000000,
  "paymentState":"accepted",
  "error":null
}
</syntaxhighlight>'''Опис параметрів'''<table style="border-collapse: collapse; width: 100%; font-family: Roboto, sans-serif; font-weight: 100; font-size: 0.8em; color: #333;">
    <!-- Перший рядок - заголовок -->
    <tr>
      <th style="border: none; border-bottom: 1px solid #d3d3d3; text-align: center; padding: 8px;">Параметр</th>
      <th style="border: none; border-bottom: 1px solid #d3d3d3; text-align: center; padding: 8px;">Характеристика</th>
      <th style="border: none; border-bottom: 1px solid #d3d3d3; text-align: center; padding: 8px;">Коментарій</th>
    </tr>
    <!-- Другий рядок -->
    <tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>transactionId</code>'''</td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">номер транзакції, що скасовується, приходить при отриманні коллбека за оплаченим замовленням (параметр payment_id)</td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; text-align: left;"></td>
    </tr>
    <!-- Третій рядок -->
    <tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>amount</code>'''</td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">сума, що скасовується:
для '''часткового''' скасування - передається із сумою, яку потрібно скасувати.
</td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; text-align: left;"> </td>
    </tr>
    <!-- Четвертий рядок -->
    <tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>transactionId</code>'''</td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">оригінальна транзакція, яка була відправлена ​​у запиті cancelOrder</td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; text-align: left;"></td>
    </tr>
    <!-- П'ятий рядок -->
    <tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>refundTransactionId</code>'''</td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">транзакція рефанду (скасування) </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; text-align: left;"></td>
   
    </tr>
    <!-- П'ятий рядок -->
    <tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>amount</code>'''</td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">сума, яка була скасована </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; text-align: left;"></td>
    </tr>
    <!-- Cьомий рядок-->
    <tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>paymentState</code>'''</td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">статус транзакції рефанду (скасування) </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; text-align: left;">'''Можливі значення:'''
* '''accepted''' - скасування успішне. Створено транзакцію рефанду з негативною сумою
* '''declined''' - скасування пройшло неуспішно
* '''Pending''' або будь-який інший статус – вимагає перевірки статусу основної транзакції перед повторним запитом скасування.
</td>
    </tr>
    <!-- Восьмий рядок->
    <tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>AppId</code>'''</td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">ідентифікатор торгової точки партнера </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; text-align: left;">параметр валідний протягом 90 днів. Один і той же AppID може використовуватись для декількох платежів)</td>
      </tr>
  <!-- Десятий рядок->
      <tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>AppId</code>'''</td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">ідентифікатор торгової точки партнера </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; text-align: left;">параметр валідний протягом 90 днів. Один і той же AppID може використовуватись для декількох платежів)</td>
  </table>
 
      <!-- Десятий рядок->
      <tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>AppId</code>'''</td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">ідентифікатор торгової точки партнера </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; text-align: left;">параметр валідний протягом 90 днів. Один і той же AppID може використовуватись для декількох платежів)</td>
      </tr>
    <!-- П'ятий рядок --><!-- П'ятий рядок --><!-- П'ятий рядок --></table>Якщо скасування пройшло успішно, запит статусу оригінальної транзакції повинен тепер повертати <code>"paymentState"''':"'''declined'''"'''</code> як для основної так і для окремих транзакцій, а запит статусу транзакції скасування - <code>"paymentState":"accepted".</code>
При успішному скасуванні платежу, якщо налаштована HTTP - нотифікація '''(див.''' [[MerchantAPI#Повідомлення про платіж|Повідомлення про платіж]]''')''', на Merchant.UrlNotify буде '''одноразово''' надіслано POST - запит із параметром <code>"action": "refund"</code> та сумою (<code>amount</code>), яка була скасована. Нотифікація надсилається одноразово без повторних спроб, статус у відповідь код нами не перевіряється.
===== Часткове скасування (повернення) платежу (замовлення зі Splitting параметрами) =====
Для часткового скасування платежу необхідно виконати запит <code>cancelCurder</code> використовуючи <code>transactionID</code> який був отриманий в коллбеку (параметр payment_id), а також вказавши суму скасування (вона має бути меншою або дорівнює сумі транзакції, що скасовується).
* У відповідь на запит <code>cancelOrder</code> буде отримано відповідь зі статусом скасування, а також буде отримано коллбек про успішне скасування цієї транзакції.
<br>
<p style="border: 1px solid #9ACD32; background-color: rgba(144, 238, 144, 0.5); padding: 10px; border-radius: 8px; font-family: Arial, sans-serif; font-size: 14px; font-weight: normal; position: relative; padding-left: 80px;">
    <span style="position: absolute; top: 10px; left: 10px; background-color: #006400; color: white; padding: 2px 12px; border-radius: 4px; font-size: 14px; font-weight: bold;">POST</span>
    <span style="margin-left: 5px; font-weight: bold; font-size: 16px;"> /api/merchant/cancelOrder</span>
</p>
'''Request''' <syntaxhighlight lang="json" line="1">
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
}
</syntaxhighlight>'''Опис параметрів'''<table style="border-collapse: collapse; width: 100%; font-family: Roboto, sans-serif; font-weight: 100; font-size: 0.8em; color: #333;">
    <tr>
      <th style="border: none; border-bottom: 1px solid #d3d3d3; text-align: center; padding: 8px;">Параметр</th>
      <th style="border: none; border-bottom: 1px solid #d3d3d3; text-align: center; padding: 8px;">Характеристика</th>
      <th style="border: none; border-bottom: 1px solid #d3d3d3; text-align: center; padding: 8px;">Коментарій</th>
    </tr><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>transactionId</code>'''</td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">номер транзакції, що скасовується, приходить при отриманні коллбека за оплаченим замовленням (параметр payment_id)</td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; text-align: left;"></td>
    </tr><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>amount</code>'''</td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">сума, що скасовується:
для '''часткового''' скасування - передається із сумою, яку потрібно скасувати.
</td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; text-align: left;"> </td>
    </tr></table>
'''Response'''<syntaxhighlight lang="json" line="1">
headers
відсутній
body
{
  "merchantKey":"easypay-test",
  "transactionId":"991379509",
  "refundTransactionId":"913141464",
  "orderId":"full_split_11",
  "amount":"1.000000",
  "paymentState":"accepted",
  "error":"null"
}
</syntaxhighlight>'''Опис параметрів'''<table style="border-collapse: collapse; width: 100%; font-family: Roboto, sans-serif; font-weight: 100; font-size: 0.8em; color: #333;">
    <tr>
      <th style="border: none; border-bottom: 1px solid #d3d3d3; text-align: center; padding: 8px;">Параметр</th>
      <th style="border: none; border-bottom: 1px solid #d3d3d3; text-align: center; padding: 8px;">Характеристика</th>
      <th style="border: none; border-bottom: 1px solid #d3d3d3; text-align: center; padding: 8px;">Коментарій</th>
    </tr><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>transactionId</code>'''</td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">оригінальна транзакція, яка була відправлена ​​у запиті cancelOrder</td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; text-align: left;"></td>
    </tr><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>refundTransactionId</code>'''</td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">транзакція рефанду (скасування)
</td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; text-align: left;"> </td>
    </tr><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>amount</code>'''</td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">сума, яка була скасована</td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; text-align: left;"></td>
    </tr><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>paymentState</code>'''</td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">транзакція рефанду (скасування) </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; text-align: left;">
* '''accepted''' - скасування успішне. Створено транзакцію рефанду з негативною сумою
* '''declined''' - скасування пройшло неуспішно
* '''pending''' або будь-який інший статус – вимагає перевірки статусу основної транзакції перед повторним запитом скасування.
</td>
   
    </tr></table>
Якщо скасування пройшло успішно, запит статусу оригінальної транзакції повинен тепер повертати "paymentState":"declined", а запит статусу транзакції скасування - "paymentState":"accepted"
При успішному скасуванні платежу, якщо налаштована HTTP - нотифікація '''(див.''' [[MerchantAPI#Повідомлення про платіж|Повідомлення про платіж]]''')''', на Merchant.UrlNotify буде одноразово надіслано POST - запит із параметром '''"action": "refund"''' та сумою '''(amount)''', яка була скасована. Нотифікація надсилається одноразово без повторних спроб, статус у відповідь код нами не перевіряється.
<div style="width: 100%; display: flex; justify-content: space-between; gap: 16px; box-sizing: border-box; padding: 8px 0;">
  <!-- Ліва кнопка -->
  <div style="
    position: relative;
    flex: 1;
    min-width: 150px;
    background: rgba(135, 206, 250, 0.1);
    padding: 8px 14px;
    border-radius: 8px;
    border: 1px solid #007BFF;
    color: #007BFF;
    font-weight: bold;
    font-size: 1em; /* пропорційний розмір */
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    cursor: pointer;
  ">
<!-- Текст у кутку --><span style="position: absolute; top: 6px; left: 8px;">← Назад</span>
    <!-- Основний текст -->
<br>
<span>[[Перевірка статусу платежу]]</span>
</div>
  <!-- Права кнопка -->
  <div style="
    position: relative;
    flex: 1;
    min-width: 150px;
    background: rgba(135, 206, 250, 0.1);
    padding: 8px 14px;
    border-radius: 8px;
    border: 1px solid #007BFF;
    color: #007BFF;
    font-weight: bold;
    font-size: 1em; /* пропорційний розмір */
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    cursor: pointer;
  ">
<span style="position: absolute; top: 6px; right: 8px;">Далі →</span>
    <!-- Основний текст -->
<span>[[Повідомлення про платіж]]</span>
  </div>
</div>

Поточна версія на 12:43, 14 серпня 2025

Merchant API

Головна сторінка

(Токенізація з передачею даних картки у запиті

Вступ


Метод викликається лише для платежів у статусі "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 статус транзакції рефанду (скасування). Можливі значення: Можливі значення:
  • accepted - скасування успішне. Створено транзакцію рефанду з негативною сумою
  • declined - скасування пройшло неуспішно
  • pending або будь-який інший статус – вимагає перевірки статусу основної транзакції перед повторним запитом скасування.

Якщо скасування пройшло успішно, запит статусу оригінальної транзакції повинен повертати "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 статус транзакції рефанду (скасування) Можливі значення:
  • accepted - скасування успішне. Створено транзакцію рефанду з негативною сумою
  • declined - скасування пройшло неуспішно
  • Pending або будь-який інший статус – вимагає перевірки статусу основної транзакції перед повторним запитом скасування.

Якщо скасування пройшло успішно, запит статусу оригінальної транзакції повинен тепер повертати "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 статус транзакції рефанду (скасування) Можливі значення:
  • accepted - скасування успішне. Створено транзакцію рефанду з негативною сумою
  • declined - скасування пройшло неуспішно
  • Pending або будь-який інший статус – вимагає перевірки статусу основної транзакції перед повторним запитом скасування.

Якщо скасування пройшло успішно, запит статусу оригінальної транзакції повинен тепер повертати "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 транзакція рефанду (скасування)
  • accepted - скасування успішне. Створено транзакцію рефанду з негативною сумою
  • declined - скасування пройшло неуспішно
  • pending або будь-який інший статус – вимагає перевірки статусу основної транзакції перед повторним запитом скасування.


Якщо скасування пройшло успішно, запит статусу оригінальної транзакції повинен тепер повертати "paymentState":"declined", а запит статусу транзакції скасування - "paymentState":"accepted" При успішному скасуванні платежу, якщо налаштована HTTP - нотифікація (див. Повідомлення про платіж), на Merchant.UrlNotify буде одноразово надіслано POST - запит із параметром "action": "refund" та сумою (amount), яка була скасована. Нотифікація надсилається одноразово без повторних спроб, статус у відповідь код нами не перевіряється.