Основні запити та відповіді: відмінності між версіями

Матеріал з apidocs
Перейти до: навігація, пошук
Немає опису редагування
 
(Не показано 17 проміжних версій цього користувача)
Рядок 1: Рядок 1:
== Реєстрація точки та створення сесії ==
{{APINav}}
Цей метод слід викликати, коли користувач вперше звертається до платіжної сторінки. Якщо браузер або пристрій змінюються, метод знову з'являється
<div style="width: 100%; display: flex; justify-content: space-between; gap: 16px; box-sizing: border-box; padding: 8px 0;">
<p style="border: 1px solid #9ACD32; background-color: rgba(192, 255, 192, 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/system/createApp</span>
</p>
'''Request'''<syntaxhighlight line="1" lang="json">
headers:
 
"PartnerKey": "partnerName",
"locale": "ua"
 
 
 
</syntaxhighlight>'''Response'''<syntaxhighlight lang="json-object" line="1">
body:
 
{
  "logoPath": "https://cdn.easypay.ua/logo/",
  "hintImagesPath": "https://cdn.easypay.ua/hint_images/",
  "apiVersion": "1.0",
  "appId": "a5806a5f-dbb8-496a-a23f-aab6d2fcbce1",
  "pageId": "f3f2b678-a3c4-45ba-a865-a136fe4a62bd",
  "error": null
}
 
</syntaxhighlight>'''Характеристика параметрів'''<table style="border-collapse: collapse; width: 100%; font-family: Roboto, sans-serif; font-weight: 100; font-size: 0.8em; color: #333;">        '''Параметри''' <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>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;">за замовчуванням, якщо не було активності за запитами,
час життя AppId - 3 місяці. З кожним запитом життя AppId автоматично продовжується.
</td>
    </tr>
 
    <!-- Шостий рядок -->
    <tr>
      <td style="border: none; padding-right: 10px; text-align: left;">'''<code>PageId</code>'''</td>
      <td style="border: none; padding-right: 10px; text-align: left;">ідентифікатор сесії </td>
      <td style="border: none; text-align: left;">параметр валідний протягом 20 хв. Для кожного запиту CreateOrder потрібно використовувати унікальний PageID</td>
    </tr>
  </table>


  <!-- Ліва кнопка -->
  <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>
<br>
<span>[[Загальні відомості]]</span>


== Створення сесії ==
</div>
==== Створення сесії ====
----Даний метод створює новий екземпляр сеансу для користувача , <code>PageId</code>.
<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/system/createPage</span>
</p>'''Request'''<syntaxhighlight line="1" lang="json">
headers
 
"PartnerKey":  "partnerName"
"locale": "ua"
"AppId": "a5806a5f-dbb8-496a-a23f-aab6d2fcbce1"
 
</syntaxhighlight>'''Response'''<syntaxhighlight lang="json" line="1">
body:
 
{
    "logoPath": "https://cdn.easypay.ua/logo/",
    "hintImagesPath": null,
    "apiVersion": "1.0",
    "appId": "a5806a5f-dbb8-496a-a23f-aab6d2fcbce1",
    "pageId": "29bd7237-6b8d-4048-b028-6efc23d05988",
    "requestedSessionId": "fa3595d3-52de-4744-9fc6-ec2d3507d5a5",
    "error": null
}
 
</syntaxhighlight>'''Характеристика параметрів''' <table style="border-collapse: collapse; width: 100%; font-family: Roboto, sans-serif; font-weight: 100; font-size: 0.8em; color: #333;">        <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>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;">за замовчуванням, якщо не було активності за запитами,
час життя AppId - 3 місяці. З кожним запитом життя AppId автоматично продовжується.
</td>
    </tr>
 
    <!-- Шостий рядок -->
    <tr>
      <td style="border: none; padding-right: 10px; text-align: left;">'''<code>PageId</code>'''</td>
      <td style="border: none; padding-right: 10px; text-align: left;">ідентифікатор сесії </td>
      <td style="border: none; text-align: left;">За замовчуванням, якщо не було активності за запитами, час життя PageId - 20 хвилин. З кожним запитом життя PageId автоматично продовжується.</td>
    </tr>
  </table>
<br>
 
== Створення замовлення ==
==== Створення замовлення для холдованих платежів ====
Перед використанням методу потрібне додаткове налаштування терміналів зі сторони техпідтримкиEasyPay.
 
Перед викликом цього методу потрібно викликати один із методів:
 
'''[[MerchantAPI#Створення сесії|- CreateApp]]'''
 
'''[[MerchantAPI#Створення сесії|- CreatePage]]'''
 
<p style="border: 1px solid #9ACD32; background-color: rgba(192, 255, 192, 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/createOrder</span>
</p>'''REQUEST HEADERS'''<syntaxhighlight lang="http">
  PartnerKey: partnerName
  locale: ua
  AppId: a5806a5f-dbb8-496a-a23f-aab6d2fcbce1
  PageId: 2ce7dba6-4600-456e-b9c8-f13cacf1c85d
  Sign: e0v1vIOMyNt2qSmrG5+sjAq8wOhvgDDUEyfVP21mRU4=
</syntaxhighlight>'''REQUEST BODY'''<syntaxhighlight lang="json">
{
  "order": {
    "serviceKey": "string",
    "orderId": "string",
    "description": "string",
    "amount": 1.01,
    "paymentOperation": "Hold",
    "expire": "2019-04-15T07:49:20.009Z",
    "isOneTimePay": true,
    "additionalItems": {}
  },
  "urls": {
    "success": "string",
    "failed": "string"
  }
}
 
</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></tr><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>serviceKey</code>''' </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">ідентифікатор послуги  </td></tr><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;"><code>orderId</code> </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">унікальний ідентифікатор замовлення в системі партнера  </td></tr><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;"><code>description</code> </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; 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></tr>
<tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>paymentOperation = Hold</code>'''  </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">параметр, що вказує, що подальший платіж буде холдовано(зарезервовано) з можливістю підтвердження або скасування. </td></tr>
 
</table>
 
 
'''Необов'язкові параметри'''
<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>expire</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;">Після закінчення вказаного часу замовлення оплатити неможливо. При ненульовому значенні на платіжній сторінці відображатиметься таймер. Значення повинне перевищувати поточний час щонайменше на 5 хвилин. Типове значення — 3 дні.
 
</td>
</tr><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>isOneTimePay</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;">Типове значення — True.</td></tr><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>additionalItems</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;">наприклад:
<code>"additionalItems":</code>
<code>{ "PayerEmail" : "[email protected]",</code>
<code>"PayerPhone" : "380930007603"</code>
<code>},</code>
 
* де PayerEmail — емейл клієнта для сповіщення у разі неоплаченого замовлення та автоматичної підстановки на платіжній сторінці.
 
* PayerPhone — номер телефону для надсилання повідомлення (SMS або Viber) про неоплачене замовлення (через 15–20 хвилин після виклику CreateOrder).</td><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">URLs </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">URL сторінки успішної оплати для редиректу клієнта.  </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; text-align: left;">failed — URL сторінки помилки для редиректу клієнта.
приклад параметрів, що передаються на url.success (без errorCode) і
 
<code>url.failed: ?serviceKey=merchanttest-5310&orderId=re9r9er94jr&amount=1.20&description=Тестове+описання+</code>
 
<code>замовлення&transactionId=722443797&date=2019-06-11T14:49:07&recurrentId=&errorCode=PAYMENT_ALFABANK_-2006&sign=</code>
 
<code>eYkFYixpB3wnKoZDzkAiqWgdMkeHETDWmDsFMCaPO44=</code>
</td>
</tr></table>
 
 
'''RESPONSE''' <syntaxhighlight lang="json">
HEADERS
-------
BODY
{
  "accountInfo": null,
  "bankingDetails": null,
  "amount": 1,
  "amountMax": 4999,
  "amountMin": 0.01,
  "paymentInstrumentsTypes": [
    {
      "instrumentType": "EMoney",
      "commission": 0,
      "amountMin": 0.01,
      "amountMax": 4999,
      "userPaymentInstruments": []
    },
    {
      "instrumentType": "RCard",
      "commission": 2,
      "amountMin": 0.01,
      "amountMax": 4999,
      "userPaymentInstruments": []
    },
    {
      "storedCards": [],
      "instrumentType": "Card",
      "commission": 2,
      "amountMin": 0.01,
      "amountMax": 4999,
      "userPaymentInstruments": [
        {
          "instrumentId": 4211698,
          "instrumentType": "Card",
          "instrumentValue": null,
          "alias": null,
          "commission": 2,
          "loyaltyCommission": null,
          "actionsKeys": null,
          "priorityIndex": 0,
          "additionalParams": {}
        }
      ]
    },
    {
      "walletStatus": "NotRegistered",
      "instrumentType": "MasterPass",
      "commission": 2,
      "amountMin": 0.01,
      "amountMax": 4999,
      "userPaymentInstruments": []
    },
    {
      "instrumentType": "LifeMoney",
      "commission": 0.03,
      "amountMin": 0.01,
      "amountMax": 4999,
      "userPaymentInstruments": [
        {
          "instrumentId": 5098216,
          "instrumentType": "LifeMoney",
          "instrumentValue": null,
          "alias": null,
          "commission": 0.03,
          "loyaltyCommission": null,
          "actionsKeys": null,
          "priorityIndex": 0,
          "additionalParams": {}
        }
      ]
    }
  ],
  "forwardUrl": "https://easypay.ua/whitepage/81b14a73-730c-40d4-8064-ce1c10e0c53b",
  "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>accountInfo</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>amountMax</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>amountMin</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>forwardUrl</code>''' </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">URL сторінки оплати, для партнерів, у яких немає сертифікатів '''PCI DSS''' для обробки карткових даних. Або якщо у партнера немає власної платіжної сторінки. </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>paymentInstrumentsTypes</code>'''</td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">список інструментів оплати. Інструмент '''RCard''' надається лише користувачам, які авторизовані в системі EasyPay.
Можливі значення '''instrumentType''' </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; text-align: left;">
Можливі значення '''instrumentType:'''
* Card – платіжна картка
* RCard – платіжна картка, підв'язана в системі EasyPay
</td>
</tr></table>
 
 
Холдування платежу можна здійснити, оплативши замовлення на сторінці оплати (перейти за '''forwardUrl'''), або вказавши в запиті '''createOrder''' інструмент оплати у '''userPaymentInstrument''' (див. [[MerchantAPI#Створення замовлення|Створення замовлення]]).
 
Клієнту відобразиться сторінка успішного платежу EasyPay, або сторінка, вказана в “urls”:{}.
 
 
Після '''спроби холдування платежу''' партнеру буде відправлено '''сповіщення''', згідно з варіантом, вказаним в налаштуваннях сервісу [[MerchantAPI#Повідомлення про платіж|Повідомлення про платіж]].
 
 
Статус платежу необхідно перевірити методом '''[[MerchantAPI#Перевірка статусу платежу|orderState]]'''
 
 
Після успішного холдування необхідно викликати або '''[[MerchantAPI#Розхолдування платежу|unHoldOrder]]''' , або '''[[MerchantAPI#Скасування платежу|orderCancel]]'''
 
Якщо протягом '''повних 10 днів''' після холдування жоден з цих методів не буде викликаний, на '''11-й день близько 05:00''' платіж може бути '''відхилений емітентом''', і кошти стануть доступні клієнту.
 
 
 
У транзакцію додається коментар: ''Автоматично відхилено через 10 днів. (SYSTEM ACCOUNT [dateTime])''
 
Сповіщення партнеру при цьому '''не надсилається'''.
 
== Створення замовлення для холдованих платежів ==
==== Створення замовлення для холдованих платежів ====
Перед використанням методу потрібне додаткове налаштування терміналів зі сторони техпідтримкиEasyPay.
 
Перед викликом цього методу потрібно викликати один із методів:
 
'''[[MerchantAPI#Створення сесії|- CreateApp]]'''
 
'''[[MerchantAPI#Створення сесії|- CreatePage]]'''
 
<p style="border: 1px solid #9ACD32; background-color: rgba(192, 255, 192, 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/createOrder</span>
</p>'''REQUEST HEADERS'''<syntaxhighlight lang="http">
  PartnerKey: partnerName
  locale: ua
  AppId: a5806a5f-dbb8-496a-a23f-aab6d2fcbce1
  PageId: 2ce7dba6-4600-456e-b9c8-f13cacf1c85d
  Sign: e0v1vIOMyNt2qSmrG5+sjAq8wOhvgDDUEyfVP21mRU4=
</syntaxhighlight>'''REQUEST BODY'''<syntaxhighlight lang="json">
{
  "order": {
    "serviceKey": "string",
    "orderId": "string",
    "description": "string",
    "amount": 1.01,
    "paymentOperation": "Hold",
    "expire": "2019-04-15T07:49:20.009Z",
    "isOneTimePay": true,
    "additionalItems": {}
  },
  "urls": {
    "success": "string",
    "failed": "string"
  }
}
 
</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></tr><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>serviceKey</code>''' </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">ідентифікатор послуги  </td></tr><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;"><code>orderId</code> </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">унікальний ідентифікатор замовлення в системі партнера  </td></tr><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;"><code>description</code> </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; 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></tr>
<tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>paymentOperation = Hold</code>'''  </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">параметр, що вказує, що подальший платіж буде холдовано(зарезервовано) з можливістю підтвердження або скасування. </td></tr>
 
</table>
 
 
'''Необов'язкові параметри'''
<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>expire</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;">Після закінчення вказаного часу замовлення оплатити неможливо. При ненульовому значенні на платіжній сторінці відображатиметься таймер. Значення повинне перевищувати поточний час щонайменше на 5 хвилин. Типове значення — 3 дні.
 
</td>
</tr><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>isOneTimePay</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;">Типове значення — True.</td></tr><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>additionalItems</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;">наприклад:
<code>"additionalItems":</code>
<code>{ "PayerEmail" : "[email protected]",</code>
<code>"PayerPhone" : "380930007603"</code>
<code>},</code>
 
* де PayerEmail — емейл клієнта для сповіщення у разі неоплаченого замовлення та автоматичної підстановки на платіжній сторінці.
 
* PayerPhone — номер телефону для надсилання повідомлення (SMS або Viber) про неоплачене замовлення (через 15–20 хвилин після виклику CreateOrder).</td><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">URLs </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">URL сторінки успішної оплати для редиректу клієнта.  </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; text-align: left;">failed — URL сторінки помилки для редиректу клієнта.
приклад параметрів, що передаються на url.success (без errorCode) і
 
<code>url.failed: ?serviceKey=merchanttest-5310&orderId=re9r9er94jr&amount=1.20&description=Тестове+описання+</code>
 
<code>замовлення&transactionId=722443797&date=2019-06-11T14:49:07&recurrentId=&errorCode=PAYMENT_ALFABANK_-2006&sign=</code>
 
<code>eYkFYixpB3wnKoZDzkAiqWgdMkeHETDWmDsFMCaPO44=</code>
</td>
</tr></table>
 
 
'''RESPONSE''' <syntaxhighlight lang="json">
HEADERS
-------
BODY
{
  "accountInfo": null,
  "bankingDetails": null,
  "amount": 1,
  "amountMax": 4999,
  "amountMin": 0.01,
  "paymentInstrumentsTypes": [
    {
      "instrumentType": "EMoney",
      "commission": 0,
      "amountMin": 0.01,
      "amountMax": 4999,
      "userPaymentInstruments": []
    },
    {
      "instrumentType": "RCard",
      "commission": 2,
      "amountMin": 0.01,
      "amountMax": 4999,
      "userPaymentInstruments": []
    },
    {
      "storedCards": [],
      "instrumentType": "Card",
      "commission": 2,
      "amountMin": 0.01,
      "amountMax": 4999,
      "userPaymentInstruments": [
        {
          "instrumentId": 4211698,
          "instrumentType": "Card",
          "instrumentValue": null,
          "alias": null,
          "commission": 2,
          "loyaltyCommission": null,
          "actionsKeys": null,
          "priorityIndex": 0,
          "additionalParams": {}
        }
      ]
    },
    {
      "walletStatus": "NotRegistered",
      "instrumentType": "MasterPass",
      "commission": 2,
      "amountMin": 0.01,
      "amountMax": 4999,
      "userPaymentInstruments": []
    },
    {
      "instrumentType": "LifeMoney",
      "commission": 0.03,
      "amountMin": 0.01,
      "amountMax": 4999,
      "userPaymentInstruments": [
        {
          "instrumentId": 5098216,
          "instrumentType": "LifeMoney",
          "instrumentValue": null,
          "alias": null,
          "commission": 0.03,
          "loyaltyCommission": null,
          "actionsKeys": null,
          "priorityIndex": 0,
          "additionalParams": {}
        }
      ]
    }
  ],
  "forwardUrl": "https://easypay.ua/whitepage/81b14a73-730c-40d4-8064-ce1c10e0c53b",
  "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>accountInfo</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>amountMax</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>amountMin</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>forwardUrl</code>''' </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">URL сторінки оплати, для партнерів, у яких немає сертифікатів '''PCI DSS''' для обробки карткових даних. Або якщо у партнера немає власної платіжної сторінки. </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>paymentInstrumentsTypes</code>'''</td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">список інструментів оплати. Інструмент '''RCard''' надається лише користувачам, які авторизовані в системі EasyPay.
Можливі значення '''instrumentType''' </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; text-align: left;">
Можливі значення '''instrumentType:'''
* Card – платіжна картка
* RCard – платіжна картка, підв'язана в системі EasyPay
</td>
</tr></table>
 
 
Холдування платежу можна здійснити, оплативши замовлення на сторінці оплати (перейти за '''forwardUrl'''), або вказавши в запиті '''createOrder''' інструмент оплати у '''userPaymentInstrument''' (див. [[MerchantAPI#Створення замовлення|Створення замовлення]]).
 
Клієнту відобразиться сторінка успішного платежу EasyPay, або сторінка, вказана в “urls”:{}.
 
 
Після '''спроби холдування платежу''' партнеру буде відправлено '''сповіщення''', згідно з варіантом, вказаним в налаштуваннях сервісу [[MerchantAPI#Повідомлення про платіж|Повідомлення про платіж]].
 
 
Статус платежу необхідно перевірити методом '''[[MerchantAPI#Перевірка статусу платежу|orderState]]'''
 
 
Після успішного холдування необхідно викликати або '''[[MerchantAPI#Розхолдування платежу|unHoldOrder]]''' , або '''[[MerchantAPI#Скасування платежу|orderCancel]]'''
 
Якщо протягом '''повних 10 днів''' після холдування жоден з цих методів не буде викликаний, на '''11-й день близько 05:00''' платіж може бути '''відхилений емітентом''', і кошти стануть доступні клієнту.
 
 
 
У транзакцію додається коментар: ''Автоматично відхилено через 10 днів. (SYSTEM ACCOUNT [dateTime])''
 
Сповіщення партнеру при цьому '''не надсилається'''.
 
== Розхолдування платежу ==
==== Розхолдування платежу ====
Якщо цей метод не буде викликано протягом 10 днів, кошти повертаються клієнту, а платіж у системі відхиляється.
 
Перед викликом цього методу необхідно здійснити '''[[MerchantAPI#Створення замовлення для холдованих платежів|холдування транзакції]]'''
 
<p style="border: 1px solid #9ACD32; background-color: rgba(192, 255, 192, 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/unHoldOrder</span></p>
 
'''REQUEST''' '''HEADERS''' <syntaxhighlight lang="http">
'PartnerKey: easypay-test'
'locale: ua'
'AppId: a5806a5f-dbb8-496a-a23f-aab6d2fcbce1'
'PageId: 2ce7dba6-4600-456e-b9c8-f13cacf1c85d'
'Sign: e0v1vIOMyNt2qSmrG5+sjAq8wOhvgDDUEyfVP21mRU4='
</syntaxhighlight>
 
'''REQUEST BODY'''<syntaxhighlight lang="json">
{
  "transactionId":955537573,
  "orderId":"hold_4",
  "serviceKey":"MERCHANT-TEST",
  "amount": 1.2
}
</syntaxhighlight>
'''<br />RESPONSE''' <syntaxhighlight lang="json">
{
"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>
      <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;">унікальний номер платежу в системі EasyPay</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>orderId</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;">Різниця повернеться клієнту на картку протягом '''1–2 днів''', залежно від регламенту банку
 
</td>
    </tr></table>
'''<br>Опис параметрів відповіді'''
<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>
      <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;">Можливі '''paymentState:'''
• '''accepted -''' платіж успішний (кінцевий статус)
 
• '''pending -''' платіж в обробці (некінцевий статус)
 
• '''declined -''' платіж відхилений (кінцевий статус)
 
• '''none -''' платіж не знайдено
</td>
    </tr></table>
 
 
 
Для платежів з 2DS переадресація на сторінку банку-емітента не відбувається, і користувач відразу отримує статус платежу.
 
Після '''спроби розхолдування платежу''' партнеру буде надіслано '''сповіщення''' згідно з варіантом, вказаним в налаштуваннях сервісу [[MerchantAPI#Повідомлення про платіж|Повідомлення про платіж]]


Статус платежу необхідно перевіряти методом '''[[MerchantAPI#Перевірка статусу платежу|orderState]]'''
  <!-- Права кнопка -->
  <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;
  ">


== Параметри BrowseInfo при 3DS оплаті ==
==== Параметри BrowseInfo при 3DS оплаті ====
У зв'язку з переходом банків - екваєрів на модель роботи 3D Secure 2.x, при створенні замовлення з одночасною передачею інструменту оплати в запиті (карта, токен карти, токен Apple / Google Pay), необхідно передавати додаткові параметри пристрою (браузера) клієнта в заголовках і в тілі запиту createOrder, у прикладі вони виділені:
<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/createOrder</span>
</p>'''HEADERS'''
  "appId: b15c4b64-8964-4c80-852e-df59a0e0d9b6",<br>
    "pageId: 607514b8-1da5-490a-bdf3-0c6883131625",<br>
    "partnerKey: easypay-test",<br>
    "sign: XJ3roGhTLwAZXigBp/iVRdsXlZYdTSen3xSM+29GaRg=",<br>
    "Content-Type:application/json",<br>
    <span style="color: green;">"AcceptHeader:*/*",</span><br>
    <span style="color: green;">"User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36"</span><br>
'''BODY'''
<div style="font-family: monospace; white-space: pre-line;">


  "order":{
<span style="position: absolute; top: 6px; right: 8px;">Далі →</span>
    "serviceKey":"MERCHANT-TEST",
     <!-- Основний текст -->
    "orderId":"test_3ds2x",
<span>[[Реєстрація точки та створення сесії#Вступ|Реєстрація точки та створення сесії]]</span>
    "additionalItems":{
   </div>
      "Merchant.UrlNotify":"http://url.noti.fy"
    },
    "description":"Easy test payment",
    "amount":"1"
  },
  "userPaymentInstrument":{
    "instrumentType":"Card",
    "pan":"4444444444444444",
    "expire":"0599",
    "cvv":"123"
  },
  <span style="color: green;">
  "browserInfo":{
    "colorDepth":"24",
     "screenHeight":"824",
    "screenWidth":"1536",
    "language":"uk-UA",
    "javaEnabled":"false",
    "javascriptEnabled": "true",
    "timeZone":"-180"
  }
   </span>


</div>
</div>
<br>
'''Параметри''' <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><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>AcceptHeader:*/*</code>''' </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">передавайте без змін</td></tr><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>User-Agent</code>''' </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">передавайте клієнтський User-Agent </td></tr></table>
'''Приклад, як збирати дані на JS:'''<syntaxhighlight lang="markdown" line="1">
getBrowserInfo() {
    let browserInfoModel = {};
    browserInfoModel.colorDepth = window.screen.colorDepth.toString();
    browserInfoModel.screenHeight = window.screen.height.toString();
    browserInfoModel.screenWidth = window.screen.width.toString();
    browserInfoModel.language = window.navigator.language;
    browserInfoModel.javaEnabled = window.navigator.javaEnabled();
    browserInfoModel.timeZone = (new Date()).getTimezoneOffset().toString();
    return browserInfoModel;
  }
</syntaxhighlight>Якщо все передано правильно, то отримайте відповідь як нижче у прикладі '''"Якщо передано userPaymentInstrument (для випадку з 3DSecure)",''' або помилку оплати з картки, наприклад, "Недостатньо коштів".
У випадку, якщо додаткові параметри передані неправильно, отримайте помилку платіжного сервісу, наприклад:<syntaxhighlight lang="markdown">
"errorCode":"PAYMENT_PUMB_SERVICE_FAILURE",
    "errorMessage":"Технічна помилка екваєра. Зверніться до служби підтримки EasyPay, або спробуйте пізніше"
</syntaxhighlight>'''Відповідь (RESPONSE)''':<syntaxhighlight lang="json" line="1">
header:
відсутній
body:
{
    "accountInfo": null,
    "bankingDetails": null,
    "amount": 1,
    "amountMax": 4999,
    "amountMin": 0.01,
    "paymentInstrumentsTypes": [
        {
            "instrumentType": "EMoney",
            "commission": 0,
            "amountMin": 0.01,
            "amountMax": 4999,
            "userPaymentInstruments": []
        },
        {
            "instrumentType": "RCard",
            "commission": 2,
            "amountMin": 0.01,
            "amountMax": 4999,
            "userPaymentInstruments": []
        },
        {
            "storedCards": [],
            "instrumentType": "Card",
            "commission": 2,
            "amountMin": 0.01,
            "amountMax": 4999,
            "userPaymentInstruments": [
                {
                    "instrumentId": 4211698,
                    "instrumentType": "Card",
                    "instrumentValue": null,
                    "alias": null,
                    "commission": 2,
                    "loyaltyCommission": null,
                    "actionsKeys": null,
                    "priorityIndex": 0,
                    "additionalParams": {}
                }
            ]
        },
        {
            "walletStatus": "NotRegistered",
            "instrumentType": "MasterPass",
            "commission": 2,
            "amountMin": 0.01,
            "amountMax": 4999,
            "userPaymentInstruments": []
        },
        {
            "instrumentType": "LifeMoney",
            "commission": 0.03,
            "amountMin": 0.01,
            "amountMax": 4999,
            "userPaymentInstruments": [
                {
"instrumentId": 5098216,
                    "instrumentType": "LifeMoney",
                    "instrumentValue": null,
                    "alias": null,
                    "commission": 0.03,
                    "loyaltyCommission": null,
                    "actionsKeys": null,
                    "priorityIndex": 0,
                    "additionalParams": {}
                }
            ]
        }
    ],
    "forwardUrl": https://easypay.ua/whitepage/81b14a73-730c-40d4-8064-ce1c10e0c53b,
  "error": null,
}
Якщо передано userPaymentInstrument (для випадку з 3DSecure):
{
  "paymentState":"WaitVerify",
  "action":"https://merchantapi.easypay.ua/api/payment/redirect/4df828bf-379b-4e88-8868-f667f12d74a9",
  "actionContent":"<html><head></head><body><form action='https://acs.monobank.com.ua/PaReqVISA.jsp' method='post' id='submitForm'><input type='hidden' name='PaReq'  value='eJxVUsluwjAQ/RWUY6VgO2RFg1FoqJpDUgThwNF1XAglS7NUpF9fm4alt3nzxvNm3hjm5/w0+hZ1k5XFTCNjrI1Ewcs0K/YzbZu86K42p5AcaiGCjeBdLShEomnYXoyydKY5mGNuWh966mKmm6lH9HcHY91zLeZMmGkT19EorPy1+KIwCFGpMzYAXaHsWPMDK1oKjH8twpiaBBumBWiAkIs6DCgh9oQ4rmsRW2pgQH9pKFgu6NLf7Fb+7ikIN8k6XGyT8C0GdKGAl13R1j21zQmgK4CuPtFD21bNFCHBmr5i/bhjCJAiAN2HWnUqamSjc5bS+Mj7+Pg5iY5LIwp8HCe7nyjZ4igJZ4BUBaSsFdTABsYecUfEmxIyteQ6lzywXE1AidpgiKFSEv4D8ZgA6Xstz9JTz5XUDYE4V2UhZIU08xYDus/7/Kos5a0yz7Kx6dgWNpStl5R6n0knDBNblwYKAFKP0HAxNBxbRv8+wS+7NLXc' /><input type='hidden' name='TermUrl' value='https://merchantapi.easypay.ua/api/payment/confirm/185ff3c7-8daa-4715-af1a-23f7554d19bb,0e101596-2a6a-4a0e-92e2-dac1e7a5c69d,-1' /><input type='hidden' name='MD' value='ee6eda7e-6252-41af-a696-825e85b34878' /></form><script>document.getElementById('submitForm').submit();</script> </body></html>",
  "actionType":"FormRedirect",
  "status":"Need3Ds", "alternativeRedirectUrl":"https://merchantapi.easypay.ua/api/payment/altredirect/00f9befe-a200-4e4d-ae27-0a4bdbc443fc",
  "transactionId":860094566,
  "retrievalReferenceNo":null,
  "responseItems":{
    "SessionId":"a9692063-2db5-4d25-8a66-e62b4476d1e4",
    "MerchantOpertion":"CheckPaymentOperationOrder",
    "Operation":"CheckPayment",
    "BankingDetails":""
  },
  "error":null
}
Якщо передано userPaymentInstrument (для випадку без 3DSecure):
{
  "redirectUrl":null,
  "action":null,
  "paymentState":"Confirmed",
  "status":"Done",
  "actionType":"UrlRedirect",
  "transactionId":847870521,
"retrievalReferenceNo":null,
  "responseItems": null,
  "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>accountInfo</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;">Якщо параметр відсутній, використовується значення ServiceKey з тіла запиту CreateOrder'''.'''
</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;">Якщо параметр відсутній, використовується значення OrderId, передане в тілі запиту CreateOrder.</td></tr><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>amountMax</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>amountMin</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>forwardUrl</code>''' </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">URL сторінки оплати, для партнерів які не мають сертифікатів PCI DSS для обробки карткових даних. Або якщо партнер не має платіжної сторінки. </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; text-align: left;">на сторінці оплати можемо відключати елементи інтерфейсу:
- логотип EasyPay можемо приховувати
- лічильник часу, що залишився до оплати, може бути відображений/прихований
- поле "Призначення" (можемо вимкнути, або за замовчуванням зробити відкритим/закритим)
- рядок з логотипом партнера та назвою можемо приховати
- поле введення імейл сховати / відобразити
- рядок з "Номер замовлення" приховати/показати
</td>
      </tr><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>paymentInstrumentsTypes</code>'''</td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">список інструментів оплати. Інструменти '''Emoney''', vcard та '''RCard''' видаємо тільки для користувачів, які авторизовані в системі EasyPay. </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; text-align: left;">
Можливі значення '''instrumentType'''
* Emoney – гаманець EasyPay
* Card – платіжна картка
* RCard – платіжна картка, підв'язана в системі EasyPay
* ApplePay – оплата через  ApplePay
* GooglePay – оплата через GooglePay
* LifeMoney – мобільні гроші Лайф.
* KsMoney –  мобільні гроші Київстар
* VodafoneMoney – мобільні гроші Водафон
* картки лояльності Fishka
</td>
</tr></table>
'''3DSecure / mobile payments case:'''<syntaxhighlight lang="json">
Якщо передано userPaymentInstrument (для випадку з 3DSecure):
{
  "paymentState":"WaitVerify",
  "action":"https://merchantapi.easypay.ua/api/payment/redirect/4df828bf-379b-4e88-8868-f667f12d74a9",
  "actionContent":"<html><head></head><body><form" action="https://acs.monobank.com.ua/PaReqVISA.jsp' method='post' id='submitForm'><input type="hidden" name="PaReq" value='eJxVUsluwjAQ/RWUY6VgO2RFg1FoqJpDUgThwNF1XAglS7NUpF9fm4alt3nzxvNm3hjm5/w0+hZ1k5XFTCNjrI1Ewcs0K/YzbZu86K42p5AcaiGCjeBdLShEomnYXoyydKY5mGNuWh966mKmm6lH9HcHY91zLeZMmGkT19EorPy1+KIwCFGpMzYAXaHsWPMDK1oKjH8twpiaBBumBWiAkIs6DCgh9oQ4rmsRW2pgQH9pKFgu6NLf7Fb+7ikIN8k6XGyT8C0GdKGAl13R1j21zQmgK4CuPtFD21bNFCHBmr5i/bhjCJAiAN2HWnUqamSjc5bS+Mj7+Pg5iY5LIwp8HCe7nyjZ4igJZ4BUBaSsFdTABsYecUfEmxIyteQ6lzywXE1AidpgiKFSEv4D8ZgA6Xstz9JTz5XUDYE4V2UhZIU08xYDus/7/Kos5a0yz7Kx6dgWNpStl5R6n0knDBNblwYKAFKP0HAxNBxbRv8+wS+7NLXc' /><input type='hidden' name='TermUrl' value='https://merchantapi.easypay.ua/api/payment/confirm/185ff3c7-8daa-4715-af1a-23f7554d19bb,0e101596-2a6a-4a0e-92e2-dac1e7a5c69d,-1' /><input type='hidden' name='MD' value='ee6eda7e-6252-41af-a696-825e85b34878' /></form><script>document.getElementById('submitForm').submit();</script> </body></html>",
  "actionType":"FormRedirect",
  "status":"Need3Ds", "alternativeRedirectUrl":"https://merchantapi.easypay.ua/api/payment/altredirect/00f9befe-a200-4e4d-ae27-0a4bdbc443fc",
  "transactionId":"860094566",
  "retrievalReferenceNo":"null",
  "responseItems":{
    "SessionId":"a9692063-2db5-4d25-8a66-e62b4476d1e4",
    "MerchantOpertion":"CheckPaymentOperationOrder",
    "Operation":"CheckPayment",
    "BankingDetails":""
  },
  "error":null
}
Якщо передано userPaymentInstrument (для випадку без 3DSecure):
{
  "redirectUrl":null,
  "action":null,
  "paymentState":"Confirmed",
  "status":"Done",
  "actionType":"UrlRedirect",
  "transactionId":847870521,
"retrievalReferenceNo":null,
  "responseItems": null,
  "error":null
}
</syntaxhighlight>
<br>'''Опис параметрів'''<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></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;">
* '''Confirmed''' - платіж підтверджений (кінцевий статус, якщо "status": "done")
* '''WaitConfirm''' - платіж у статусі "обробляється", необхідно додатково запросити фінальний статус платежу
* '''WaitVerify''' - від клієнта очікується підтвердження (наприклад, якщо "status": "Need3Ds" - необхідно пройти перевірку 3D Secure) </td></tr><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>status</code>''' </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">
* '''Done''' - додаткові дії не потрібні, якщо при цьому "зберіганнядержави":"затверджено", означає платіж повністю успішний. При іншому значенні paymentState- платіж не прийняв кінцевий статус, необхідно запросити статус ([[MerchantAPI#Перевірка статусу платежу|Перевірка статусу платежу]]).
* '''Need3Ds''' - необхідно підтвердження 3D Secure від клієнта ([[MerchantAPI#Підтвердження платежу клієнтом. Введення смс. Проходження 3DS перевірки|Підтвердження платежу клієнтом. Введення смс. Проходження 3DS перевірки]])
* '''NeedConfirmCode''' - необхідно надіслати код перевірки зі смс методом confirmCodeVerification ([[MerchantAPI#Підтвердження платежу клієнтом. Введення смс. Проходження 3DS перевірки|Підтвердження платежу клієнтом. Введення смс. Проходження 3DS перевірки]])
* '''NeedLookup''' - необхідно надіслати код перевірки з смс '''''методом confirmCodeVerification ('''''[[MerchantAPI#Підтвердження платежу клієнтом. Введення смс. Проходження 3DS перевірки|Підтвердження платежу клієнтом. Введення смс. Проходження 3DS перевірки]]) </td></tr><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>actionType</code>''' </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">тип наступної дії:
* '''"FormRedirect"''' -  необхідно створити сторінку (форму) з html-коду, який передано у параметрі "actionContent" :'''"<html>...</html>",''' відкрити її клієнту, наприклад, для проходження ним 3D-secure перевірки. Альтернативним варіантом є переадресація клієнта за посиланням параметра '''"alternativeRedirectUrl".'''
* Після проходження перевірки клієнт буде передресовано на фінальну сторінку EasyPay або на
<code>"urls": {</code>
<code>"success": "string",</code>
<code>"failed": "string"</code>
<code>}</code>
* '''"UrlRedirect"''' - переадресувати клієнта на посилання з "action" або переадресувати клієнта за посиланням з '''"alternativeRedirectUrl".'''
* '''"ConfirmCode"''' -необхідно надіслати код перевірки з смс методом '''confirmCodeVerification''' ([[MerchantAPI#Підтвердження платежу клієнтом. Введення смс. Проходження 3DS перевірки|Підтвердження платежу клієнтом. Введення смс. Проходження 3DS перевірки]])
'''"None"''' - можливий при використанні інструменту гаманець '''("instrumentType": "EMoney"),''' кошти успішно списані з гаманця, партнеру надсилається повідомлення про списання. </td></tr><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>actionContent</code>'''</td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''"<html>...</html>"''' - html форма сторінки банку для введення коду 3DS. Сформувати сторінку з коду та відкрити її клієнту. Після підтвердження платежу відбудеться 302-й редирект на ваші "urls" із запиту createOrder, або на фінальну сторінку EasyPay </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;">номер транзакції в EasyPay </td></tr></table>
'''<br />2DSecure case:'''<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></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;">'''"Confirmed"''' та '''"status": "Done"''' - платіж пройшов успішно. При інших значеннях необхідно перевірити статус '''''платежу''''' '''('''[[MerchantAPI#Перевірка статусу платежу|Перевірка статусу платежу]]''')''' </td></tr><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>status</code>''' </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''"Done" -'''платіж завершено, додаткові дії не потрібні.  При '''"paymentState":'''
* '''"Confirmed"''' - означає, що транзакція на стороні EasyPay прийнята (http - оповіщення успішно доставлено партнеру) </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;">номер транзакції до EasyPay </td></tr></table>
<br>
== Підтвердження платежу клієнтом. Введення смс. Проходження 3DS перевірки ==
У випадку "<code>actionType</code>": "<code>ConfirmCode</code>", клієнту прийде код підтвердження, який потрібно передати до EasyPay
<p style="border: 1px solid #9ACD32; background-color: rgba(192, 255, 192, 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/payment/confirmCodeVerification</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
{
  "code": "string"
}
</syntaxhighlight>
'''Response'''<syntaxhighlight lang="json" line="1">
headers
відсутній
body
{  }
</syntaxhighlight>Якщо "status":"Need3Ds", то клієнту потрібно пройти 3DS перевірку в залежності від значення '''"actionType".'''
<br>
'''Опис параметрів:''' <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></tr><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>FormRedirect</code>''' </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">необхідно СТВОРИТИ  сторінку (форму) з html-коду, який передано у параметрі </td></tr><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>actionContent</code>''' </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">"<html>...</html>", відкрити її клієнту для проходження ним 3D-secure перевірки. Альтернативним варіантом є переадресація клієнта за посиланням параметра '''"alternativeRedirectUrl"''' </td></tr><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>UrlRedirect</code>''' </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">необхідно переадресувати клієнта на посилання з '''"action"''' або переадресувати клієнта за посиланням з '''"alternativeRedirectUrl".''' Відобразиться форма банку емітента картки для перевірки 3D Secure. Після введення коду клієнта переадресує на сторінку успіху чи помилки. Адреси сторінок передаються на етапі створення замовлення.
<code>"urls": {</code>
<code>   "success": "string",</code>
<code>   "failed": "string"</code>
<code>}</code> </td></tr></table>
<br>
== Перевірка статусу платежу ==
==== Перевірка статусу платежу ====
----
<p style="border: 1px solid #9ACD32; background-color: rgba(192, 255, 192, 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/orderState</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":"MERCHANT-TEST",
  "orderId":"test_20240524-0015",
  "transactionId":"1413668587"
}
</syntaxhighlight>
'''Response'''<syntaxhighlight lang="json" line="1">
headers:
відсутній
body:
"merchantKey":"easypay-test",
  "transactionId":1413668587,
  "orderId":"test_20240524-0015",
  "amount":3.000000,
  "paymentState":"declined",
  "refundTransactionId":1413673292,
  "":
  "paymentsList":[
   
  ],
  "refunds":[
    {
      "refundTransactionId":1413669380,
      "paymentState":"accepted",
      "refundAmount":1.10,
      "dateAccepted":"2024-05-24T16:14:45+03:00",
      "dateDeclined":null,
      "datePost":"2024-05-24T16:14:39+03:00"
    },
    {
      "refundTransactionId":1413673292,
      "paymentState":"accepted",
      "refundAmount":1.90,
      "dateAccepted":"2024-05-24T16:19:40+03:00",
      "dateDeclined":null,
"datePost":"2024-05-24T16:19:33+03:00"
    }
  ],
  "error":null
}
</syntaxhighlight>
'''<br />Опис параметрів'''
<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>accepted</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>declined</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>pending</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>none</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>
'''Нетипові відповіді запит статусу:'''
* Якщо платіж не знайдено, прийде відповідь:
<syntaxhighlight lang="json" line="1">
{
"error":{
"errorCode":"MERCHANT_ORDERID_NOT_FOUND",
"title":null,
"description":null,
"errorMessage":"MERCHANT_ORDERID_NOT_FOUND",
"fieldErrors":[  ]
}
</syntaxhighlight>
* Якщо платіж (сторінка, замовлення) не були відкриті клієнтом або не було спроби оплати, прийде відповідь:
<syntaxhighlight lang="json" line="1">
{
"merchantKey": "easypay-test",
"transactionId": 0,
"orderId": "Some orderId2",
"amount": 0,
"paymentState": "pending",
"refundTransactionId": null,
"paymentsList": [],
"error": null
}
</syntaxhighlight>
* Якщо отримано помилку на замовлення на етапі визначення реквізитів:
<syntaxhighlight lang="json" line="1">
{
  "merchantKey": "easypay-test",
  "transactionId": 0,
  "orderId": "Some orderId",
  "amount": 0,
  "paymentState": "declined",
  "refundTransactionId": null,
  "paymentsList": [],
  "error": {
    "errorCode": "PROVIDER_ACCOUNT_INVALID", (ерор код може (має) відрізнятися від того, що в прикладі)
    "title": "Помилка системи",
    "description": "Акаунт не знайдено",
    "errorMessage": "string"
  }
}
</syntaxhighlight>
При виконанні запиту статусу на замовлення, у яких є спліт (платіжна опція) - повертається наступна модель:
'''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":""
}
</syntaxhighlight>'''Response'''<syntaxhighlight lang="json" line="1">
headers
відсутній
body
{
    "merchantKey": "easypay-test",
    "transactionId": 991379504,
    "orderId": "full_split_11",
    "amount": 3.150000,
    "paymentState": "accepted",
    "refundTransactionId": null,
    "paymentsList": [
        {
            "merchantKey": "easypay-test",
            "transactionId": 991379509,
            "orderId": "full_split_11",
            "amount": 1.030000,
            "paymentState": "accepted",
            "refundTransactionId": null,
            "date": "2021-09-15T14:07:38+03:00",
            "error": null
        },
        {
            "merchantKey": "easypay-test",
            "transactionId": 991379508,
            "orderId": "full_split_11",
            "amount": 0.050000,
            "paymentState": "accepted",
            "refundTransactionId": null,
            "date": "2021-09-15T14:07:38+03:00",
            "error": null
        },
        {
            "merchantKey": "easypay-test",
            "transactionId": 991379507,
            "orderId": "full_split_11",
            "amount": 1.020000,
"paymentState": "accepted",
            "refundTransactionId": null,
            "date": "2021-09-15T14:07:38+03:00",
            "error": null
        },
        {
            "merchantKey": "easypay-test",
            "transactionId": 991379506,
            "orderId": "full_split_11ID",
            "amount": 1.050000,
            "paymentState": "accepted",
            "refundTransactionId": null,
            "date": "2021-09-15T14:07:38+03:00",
            "error": null
        }
    ],
    "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></tr><tr>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">'''<code>paymentsList</code>''' </td>
      <td style="border: none; border-bottom: 1px solid #d3d3d3; padding-right: 10px; text-align: left;">список платежів у структурі спліту з деталізацією. </td></tr></table>
У випадку зі сплітованими платежами, в основному тілі відповіді '''OrderState''' - параметру '''transactionId''' присвоюється внутрішній технічний номер (нефінансової) операції.<syntaxhighlight lang="json" line="1">
"urls": {
  "success": "string",
  "failed": "string"
}
</syntaxhighlight>

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

Merchant API

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

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