УКР | [ENG](https://hackmd.io/9MdA15b8Ra-SS1pGfia0oQ) ![](https://i.imgur.com/ULmPUgP.jpg) :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://i.imgur.com/gtxKB22.png) Для тестування даного запиту застосовуйте параметри **Тестового Партнера**. Див. деталі підключення у розділі: ["Параметри підключення Тестового Партнера"](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): коди типів операцій, типи платіжних методів, коди статусів обробки операцій, відомості та помилки, що повертаються у відповіді та ін. ![](https://i.imgur.com/17gAyWb.png) :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>