УКР | [ENG](https://hackmd.io/5aztDMZ5RDie-uZu5ZFXbg)

:arrow_left: [На Головну](/eSq3juGWQLS1wVvJZiTUAQ)
# [40002] Отримання переліку платіжних інструментів
## Застосування
Для кожного авторизованного користувача доступне отримання переліку платіжних інструментів. Платіжний інструмент має унікальний ідентифікатор (токен), який передається у полі "cc_uuid" (див. деталі у відповіді). Використання сервісу отримання балансу, а також проведення платежу, виконується з передачею токена платіжного інструмента.
Схему взаємодії див. у розділі "[Загальна схема взаємодії](https://hackmd.io/Q5OrcottRSKWlfrPZPC7mg)".
## Запит
*Опис атрибутів "Partner", "KeyAES" та "Sign" див. у розділі ["Загальна інформація по підключенню (API)"](https://hackmd.io/g3cItPVFStez0ql3Xj-2TA).*
### Структура "Data"
Структура "Data" для даної операції формується з наступних параметрів:
:::info
<details>
<summary>Формування структури "Data" (приклади наведені нижче)</summary>
<br>
~~~
{
"UserID": "",
"Phone": "",
"Email": "",
"DeviceID": "",
"Transaction": {
"TransactionID": "",
"TerminalID": "",
"DateTime": ""
}
}
~~~
</details>
:::
| Параметр | Обов'яз-ковість | Тип | Опис | Приклад|
|:----:|:----:|:----:|----|:----:|
|`UserID`|Ні|Рядок|Унікальний ідентифікатор клієнта у системі Партнера.|`Uwuh0B5GQVuokYSL`|
| `Phone` | Так | Рядок | Телефон клієнта у форматі "380ххххххххх". |`380679335544`|
| `Email` | Ні | Рядок | Email клієнта. |`index@gmail.com`|
|`DeviceID`| Так |Рядок| ID пристрою клієнта. Для web-застосунків використовується "fingerprint", для мобільних застосунків - ["DeviceID"](https://support.google.com/google-ads/answer/9004555?hl=en).|`0Ht9z0yh5aDNr5-js1zGFz5QTmIE=`|
|`Transaction`|Так|Структура|Структура, що передає дані про транзакцію. Див. розділ ["Структура "Transaction"](https://hackmd.io/g3cItPVFStez0ql3Xj-2TA#2-Data).|Див. нижче.|
:::success
<details>
<summary>Приклад запиту [40002]</summary>
<br>
~~~md
{
"Partner": {
"PartnerToken": "3b4e5666-b585-491a-af31-516e47b25041",
"OperationType": 40002
},
"Data": "{\"Phone\": \"380679335544\", \"UserID\": \"Uwuh0B5GQVuokYSL\", \"DeviceID\": \"0Ht9z0yh5aDNr5js1zGFz5QTmIE=\", \"Transaction\": {\"DateTime\": \"2022-04-21 02:46:33\", \"TerminalID\": \"1\", \"TransactionID\": \"JXECMxR4IUCqtsqr5KBkABrKC0M=\"}}",
"KeyAES": "",
"Sign": ""
}
~~~
</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).*
Успішна відповідь на запит [40002] містить масив структур `CardsList`, у якому передаються незашифровані або зашифровані дані платіжних інструментів. Параметри структури опціональні та налаштовуються індивідуально в залежності від потреб Партнера.
Основні параметри:
| Параметр | Обов'яз-ковість | Тип | Опис |Приклад|
|:----:|:----:|:----:|----|:----:|
|`name`|Ні|Рядок|Назва платіжного інструменту (ПІ). |`MonoBan`|
|`balance`|Ні|Ціле|Баланс ПІ (має значення для гаманців). |1грн.=>`100`|
|`cc_uuid`|Ні|Рядок|UUID (унікальний ідентифікатор) ПІ. |`ead5ea7a-f19f-44ec-8742-3621b4bfdc18`|
|`mask_pan`|Ні|Рядок|Ідентифікатор ПІ: </br> - для гаманців - ID гаманця; </br> - для карт - маскований PAN. |`537541******2121`|
|`pi_type_id`|Ні|Ціле|Тип ПІ: </br> `1`- гаманець; </br> `2` - карта. |`1`|
|`bank_name`|Ні|Рядок|Назва банку (для карт). |`UNIVERSAL BANK`|
|`channel_name`|Ні|Рядок|Назва платіжної системи (для карт). |`MasterCard (IPM)`|
### Приклади відповідей
:::success
<details>
<summary>Перелік платіжних інструментів у незашифрованому вигляді</summary>
<br>
~~~md
{
"Code": 200,
"Message": "done",
"Data": {
"DecodedData": "{\"CardsList\":[{\"name\":\"MonoBan\",\"balance\":0,\"cc_uuid\":\"ead5ea7a-f19f-44ec-8742-3621b4bfdc18\",\"mask_pan\":\"537541******2121\",\"pi_type_id\":2,\"bank_name\":\"UNIVERSAL BANK\",\"channel_name\":\"MasterCard (IPM)\"},{\"name\":\"\",\"balance\":456782,\"cc_uuid\":\"142b675c-690e-4063-ab34-895d4be043b0\",\"mask_pan\":\"UAH540110155\",\"pi_type_id\":1,\"bank_name\":\"Bank\",\"channel_name\":\"Card\"}]}",
"OperationID": 11,
"OperationStatus": 10
},
"KeyAES": "",
"Sign": ""
}
~~~
</details>
:::
:::success
<details>
<summary>Помилка виконання операції</summary>
<br>
~~~md
{
"Code": 200,
"Message": "fail",
"Data": {
"OperationID": 111,
"OperationStatus": 21,
"Reason": 3
},
"KeyAES": "",
"Sign": ""
}
~~~
</details>
:::
## Довідкові матеріали
Опис загальних параметрів системи XPAY див. у розділі ["Довідкові матеріали"](https://hackmd.io/aBE7H5cfQ-iqaN3SnwaQ-w): коди типів операцій, типи платіжних методів, коди статусів обробки операцій, відомості та помилки, що повертаються у відповіді та ін.

:arrow_left: [На Головну](/eSq3juGWQLS1wVvJZiTUAQ)
: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>