УКР | [ENG](https://hackmd.io/9MdA15b8Ra-SS1pGfia0oQ)

:arrow_left: [На Головну](/Mj2ZqCVpSq6A6Jzm6ladlw)
# [10108] Погашення заборгованості (v.1)
:::info
Застосування версії запитів "Оплата комунальних послуг (v.1)" чи "Оплата комунальних послуг (v.2)" визначається на етапі інтеграції.
:::
*Що таке "оплата картою Server-Server" та як проходить автентифікація відправника див. у розділі ["Оплата картою Server-Server"](https://hackmd.io/oXcYbY08Tq69ggTIX9OyaA).*
## Застосування
Запит [10108] застосовується для погашення заборгованості картою на основі даних, отриманих у відповіді на запит [[20802]](https://hackmd.io/fkcB0yBhTuKW7SEYbCV0zw).
## Запит
*Опис атрибутів "Partner", "KeyAES" та "Sign" див. у розділі ["Загальна інформація по підключенню (API)"](https://hackmd.io/g3cItPVFStez0ql3Xj-2TA).*
### Структура "Data"
Структура "Data" для даної операції формується з наступних параметрів:
:::info
<details>
<summary>Формування структури "Data" (приклади наведені нижче)</summary>
<br>
~~~
{
"Sum": ,
"SenderCard": {
"PAN": "",
"ExpMon": "",
"ExpYear": "",
"CVV": ""
},
"payments": {
"id_plat_klient": ,
"change_data": [
{
"id_plat_plat": ,
"summ": ,
"counters": [
{
"id_plat_counters": ,
"old_value": ,
"new_value":
}
]
}
]
},
"Transaction": {
"TransactionID": "",
"TerminalID": "",
"DateTime": ""
},
"BrowserData": {
"device": {
"channel": ""
},
"browserIP": "",
"browserLanguage": "",
"browserUserAgent": "",
"fraudhuntFingerprint": ""
}
}
~~~
</details>
:::
|Параметр|Обов'яз-ковість|Тип|Опис|Приклад|
|:----:|:----:|:----:|----|:----:|
|`Sum`|Так|Ціле|Загальна сума погашення у копійках. |1грн.=>`100`|
|`SenderCard`^1^|Так|Структура|Структура, що передає дані банківської картки відправника.|Див. нижче.|
|`payments`^2^|Так|Структура|Структура, що передає дані про платника послуг та деталі погашення заборгованості.|Див. нижче.|
|`BrowserData`|Ні|Структура|Структура, що передає дані браузера при *3DSecure 2.0*. Див. розділ ["Структура "BrowserData"](https://hackmd.io/oXcYbY08Tq69ggTIX9OyaA?both#%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0-%E2%80%9CBrowserData%E2%80%9D).|Див. приклад у розділі ["Структура "BrowserData"](https://hackmd.io/oXcYbY08Tq69ggTIX9OyaA?both#%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0-%E2%80%9CBrowserData%E2%80%9D).|
|`Transaction`|Так|Структура|Структура, що передає дані про транзакцію. Див. розділ ["Структура "Transaction"](https://hackmd.io/g3cItPVFStez0ql3Xj-2TA#2-Data).|Див. нижче.|
^1^ Параметри структури **"SenderCard"**:
| Параметр | Обов'яз-ковість | Тип | Опис | Приклад|
|:----:|:----:|:----:|----|:----:|
|`PAN`|Так|Рядок[16]| PAN картки відправника (номер банківської карти).| `8888888888888888` |
|`ExpMon`|Так|Рядок[2]|Місяць терміну дії картки. Параметр вирівнюється до 2-х знаків символом "0".|`02`|
|`ExpYear`|Так|Рядок[2]|Останні 2 цифри року терміну дії картки. Параметр вирівнюється до 2-х знаків символом "0".|`22`|
|`CVV`|Так|Рядок[3]|CVV код картки.|`356`|
^2^ Параметри структури **"payments"**:
| Параметр | Обов'яз-ковість | Тип | Опис | Приклад|
|:----:|:----:|:----:|----|:----:|
| `id_plat_klient` | Так | Ціле | Унікальний ідентифікатор платника послуг, отриманий у відповіді на запит [[20802]](https://hackmd.io/fkcB0yBhTuKW7SEYbCV0zw) - `ID_PLAT_KLIENT`. |`383064108`|
|`change_data`^3^|Так|Масив | Масив структур, що передає деталі платежу та змінам по заборгованості.|Див. нижче.|
^3^ Параметри масиву структур **"change_data"**:
| Параметр | Обов'яз-ковість | Тип | Опис | Приклад|
|:----:|:----:|:----:|----|:----:|
| `id_plat_plat` | Так | Ціле | Унікальний ідентифікатор отримувача платежу, отриманий у відповіді на запит [[20802]](https://hackmd.io/fkcB0yBhTuKW7SEYbCV0zw) - `ID_PLAT_PLAT`. |`339241801`|
|`summ`|Так|Ціле|Сума погашення у копійках. |1грн.=>`100`|
|`counters`^4^|Ні|Масив | Масив структур, що передає дані лічильників, отримані у відповіді на запит [[20802]](https://hackmd.io/fkcB0yBhTuKW7SEYbCV0zw).|Див. нижче.|
^4^ Параметри масиву структур **"counters"**:
| Параметр | Обов'яз-ковість | Тип | Опис | Приклад|
|:----:|:----:|:----:|----|:----:|
| `id_plat_counters` | Так | Ціле | Унікальний ідентифікатор лічильника, отриманий у відповіді на запит [[20802]](https://hackmd.io/fkcB0yBhTuKW7SEYbCV0zw) - `ID_PLAT_COUNTERS`. |`14781385901`|
|`old_value`|Ні|Ціле|Останнє значення лічильника (може бути пустим), отримане у відповіді на запит [[20802]](https://hackmd.io/fkcB0yBhTuKW7SEYbCV0zw). |`0`|
|`new_value`|Так|Ціле|Нове значення лічильника, отримане у відповіді на запит [[20802]](https://hackmd.io/fkcB0yBhTuKW7SEYbCV0zw). |`10`|
:::
:::success
<details>
<summary>Приклад структури "Data"</summary>
<br>
~~~md
{
"Sum": 1000,
"SenderCard": {
"CVV": "***",
"PAN": "535124******0453",
"ExpMon": "12",
"ExpYear": "24"
},
"payments": {
"id_plat_klient": 382835070,
"change_data": [
{
"id_plat_plat": 339241865601,
"summ": 110
},
{
"id_plat_plat": 339241865501,
"summ": 210,
"counters": [
{
"id_plat_counters": 14781385901,
"old_value": 0,
"new_value": 10
}
]
}
]
}
}
~~~
</details>
:::
## Відповідь
*Загальна інформація по формуванню структури відповіді наведена у розділі [“Загальна інформація по підключенню (API)”](https://hackmd.io/g3cItPVFStez0ql3Xj-2TA?both#%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0-%D0%B2%D1%96%D0%B4%D0%BF%D0%BE%D0%B2%D1%96%D0%B4%D1%96).*
### Приклади відповідей
:::success
<details>
<summary>Запит успішно прийнятий та вимагає підтвердження "3DS"</summary>
<br>
~~~md
{
"Code": 102,
"Message": "need3ds",
"Data": {
"OperationID": 111,
"3dsHtml": "<html сторінка у кодуванні base64>",
"OperationStatus": 2
},
"KeyAES": "",
"Sign": ""
}
~~~
</details>
:::
:::success
<details>
<summary>Запит успішно прийнятий та вимагає підтвердження "OTP"</summary>
<br>
~~~md
{
"Code": 102,
"Message": "needOTP",
"Data": {
"OperationID": 111,
"otpJson": "<JSON структура у вигляді рядка>",
"OperationStatus": 3
},
"KeyAES": "",
"Sign": ""
}
~~~
</details>
:::
:::success
<details>
<summary>Операція проведена успішно</summary>
<br>
~~~md
{
"Code": 200,
"Message": "Done",
"Data": {
"ID_PLAT_KLIENT": 382835070,
"KOMIS": [
null
],
"PLATS": [
{
"ID_PLAT_PLAT": 339241865601,
"FIRME": "ТОВ \"ЄВРО-РЕКОНСТРУКЦIЯ\"",
"SERVICE_LABEL": "АП (абонентська плата)",
"ABCOUNT": "1*34",
"SUMM": 110,
"DTIME": "2022-06-22T15:20:55Z",
"MONEY_ID": 0,
"COUNTERS": null
},
{
"ID_PLAT_PLAT": 339241865401,
"FIRME": "ТОВ \"ЄВРО-РЕКОНСТРУКЦIЯ\"",
"SERVICE_LABEL": "Внесок за обслуговування вузла комерційного обліку теплової енергії",
"ABCOUNT": "1*34",
"SUMM": 37.33,
"DTIME": "2022-06-22T15:20:55Z",
"MONEY_ID": 0,
"COUNTERS": null
},
{
"ID_PLAT_PLAT": 339241865301,
"FIRME": "ТОВ \"ЄВРО-РЕКОНСТРУКЦIЯ\"",
"SERVICE_LABEL": "ЦЕНТРАЛІЗОВАНЕ ОПАЛЕННЯ",
"ABCOUNT": "1*34",
"SUMM": 6206.69,
"DTIME": "2022-06-22T15:20:55Z",
"MONEY_ID": 0,
"COUNTERS": null
},
{
"ID_PLAT_PLAT": 339241865501,
"FIRME": "ТОВ \"ЄВРО-РЕКОНСТРУКЦIЯ\"",
"SERVICE_LABEL": "ЦЕНТРАЛІЗОВАНЕ ПОСТАЧАННЯ ГАРЯЧОЇ ВОДИ",
"ABCOUNT": "1*34",
"SUMM": 210,
"DTIME": "2022-06-22T15:20:55Z",
"MONEY_ID": 0,
"COUNTERS": [
{
"ID_PLAT_COUNTERS": 14781385901,
"NCOUNTERS": 1,
"OLD_VAL": 0,
"NEW_VAL": 10
}
]
}
]
},
"KeyAES": "",
"Sign": ""
}
~~~
</details>
:::
:::success
<details>
<summary>Помилка виконання операції</summary>
<br>
~~~md
{
"Code": 200,
"Message": "done",
"Data": {
"OperationID": 111,
"OperationStatus": 21,
"Reason": 3
},
"KeyAES": "",
"Sign": ""
}
~~~
</details>
:::
## Тестові дані
:::info

Для тестування даного запиту застосовуйте параметри **Тестового Партнера**.
Див. деталі підключення у розділі: ["Параметри підключення Тестового Партнера"](https://hackmd.io/kGejjgk0QaiwfpoZFnTadA).
<details>
<summary>Тестовий запит</summary>
<br>
~~~md
{
"Partner": {
"PartnerToken": "72a8ddb8-9145-4a41-af1a-8c48ecaa4be1",
"OperationType": 10108
},
"Data": "{\"Sum\":12500,\"SenderCard\":{\"PAN\":\"8888888888888888\",\"ExpMon\":\"02\",\"ExpYear\":\"24\",\"CVV\":\"356\"},\"payments\":{\"id_plat_klient\":383064108,\"change_data\":[{\"id_plat_plat\":339241865601,\"summ\":12500,\"counters\":[{\"id_plat_counters\":14781385901,\"old_value\":7,\"new_value\":10}]}]},\"Transaction\":{\"TransactionID\":\"0c5328f5-bda9-4376-b6a0-ca544fcb75fc\",\"TerminalID\":\"1\",\"DateTime\":\"20230221120724\"},\"BrowserData\":{\"device\":{\"channel\":\"BRW\"},\"browserIP\":\"89.68.252.11\",\"browserLanguage\":\"UA\",\"browserUserAgent\":\"Chrome/100.0.4896.127\",\"fraudhuntFingerprint\":\"kHqPGWS1Mj18sZFsP8Wl\"}}",
"KeyAES": "",
"Sign": ""
}
~~~
</details>
<details>
<summary>Очікувана відповідь</summary>
<br>
~~~md
~~~
</details>
:::
## Пов'язані запити
[[20801] Отримання даних довідника](https://hackmd.io/Xndoh9TxRPSMk1V1pPhXUQ)
[[208011] Отримання даних міст з довідника](https://hackmd.io/qckJ3sUqT5C00IvWxsJ4dw)
[[20802] Отримання даних заборгованості](https://hackmd.io/fkcB0yBhTuKW7SEYbCV0zw)
[[20003] Отримання статусу операції](https://hackmd.io/fvd8btZLQXywluia6w5uxg)
## Довідкові матеріали
Опис загальних параметрів системи XPAY див. у розділі ["Довідкові матеріали"](https://hackmd.io/aBE7H5cfQ-iqaN3SnwaQ-w): коди типів операцій, типи платіжних методів, коди статусів обробки операцій, відомості та помилки, що повертаються у відповіді та ін.

:arrow_left: [На Головну](/Mj2ZqCVpSq6A6Jzm6ladlw)
:arrow_left: [Загальна інформація по підключенню (API)](https://hackmd.io/g3cItPVFStez0ql3Xj-2TA)
<details>
<summary>Служба підтримки XPAY</summary>
</br>
Телефон: +38 093 891 92 00
Email: info@xpay.com.ua
Telegram: @xpaysupportbot
</details>