owned this note
owned this note
Published
Linked with GitHub
УКР | [ENG](https://hackmd.io/BHS4jBINQ-u8SQxX3XvR6Q)
![](https://i.imgur.com/ULmPUgP.jpg)
:arrow_left: [На Головну](/Mj2ZqCVpSq6A6Jzm6ladlw)
# [10400] Пакетна оплата гаманець-карта (по токену)
*Що таке "гаманець XPAY" див. у розділі ["Гаманець XPAY"](https://hackmd.io/JXJaJEcEQeO2fjRgYbxj6w).*
*Що таке “оплата по токену” та як відбувається токенізація карт див. у розділі [“Оплата по токену”](https://hackmd.io/U6K080xgRw62OXEMXq7EbA).*
## Застосування
Запит [10400] застосовується для пакетного перерахування коштів з гаманця на прив'язану картку клієнта (по токену) та інші гаманці, передані в запиті. Таке розщеплення платежу застосовується, наприклад, під час видачі кредиту та проведення оплати додаткових послуг.
## Запит
*Опис атрибутів "Partner", "KeyAES" та "Sign" див. у розділі ["Загальна інформація по підключенню (API)"](https://hackmd.io/g3cItPVFStez0ql3Xj-2TA).*
### Структура "Data"
Структура "Data" для даної операції формується з наступних параметрів:
:::info
<details>
<summary>Формування структури "Data" (приклади наведені нижче)</summary>
<br>
~~~
{
"Purpose": "",
"InitTransferW2T": {
"TransferW2T": {
"Sum": ,
"SenderWallet": {
"ID": "",
"UserName": ""
},
"RecipientToken": ""
},
"Transaction": {
"TransactionID": "",
"TerminalID": "",
"DateTime": ""
}
},
"Bunch": [
{
"TransferW2W": {
"Sum": ,
"RecipientWallet": {
"ID": "",
"UserName": ""
}
},
"Transaction": {
"TransactionID": "",
"TerminalID": "",
"DateTime": ""
}
},
…]
}
~~~
</details>
:::
|Параметр|Обов'яз-ковість|Тип|Опис|Приклад|
|:----:|:----:|:----:|----|:----:|
|`Purpose`|Ні|Рядок|Опис призначення платежу.|`Оплата пакету послуг №111`|
|`InitTransferW2T`^1^|Так|Структура|Структура, що передає дані про операцію та дані транзакції.|Див. нижче.|
| `Bunch`^2^ | Так | Масив | Масив структур, що передає дані для оплати пакета послуг. |Див. нижче.|
^1^ Параметри структури **"InitTransferW2T":**
|Параметр|Обов'яз-ковість|Тип|Опис|Приклад|
|:----:|:----:|:----:|----|:----:|
|`TransferW2T`^3^|Так|Структура|Структура, що передає дані про операцію.|Див. нижче.|
|`Transaction`|Так|Структура|Структура, що передає дані про транзакцію. Див. розділ ["Структура "Transaction"](https://hackmd.io/g3cItPVFStez0ql3Xj-2TA#2-Data).|Див. нижче.|
^2^ Параметри масиву структур **"Bunch"**:
| Параметр | Обов’яз-ковість | Тип | Опис | Приклад |
|:-:|:-:|:-:|-|:-:|
|`TransferW2W`^4^|Так|Структура|Структура, що передає дані гаманця одержувача платежу. Кожен платіж описується сумою платежу і даними гаманця одержувача. |Див. нижче.|
|`Transaction`|Так|Структура|Структура, що передає дані про транзакцію. Див. розділ ["Структура "Transaction"](https://hackmd.io/g3cItPVFStez0ql3Xj-2TA#2-Data).|Див. нижче.|
^3^ Параметри структури **"TransferW2T":**
|Параметр|Обов'яз-ковість|Тип|Опис|Приклад|
|:----:|:----:|:----:|----|:----:|
|`Sum`|Так|Ціле|Сума операції у копійках. |1грн.=>`100`|
|`SenderWallet`^5^|Так|Структура|Структура, що передає дані гаманця відправника коштів у системі Оператора.|Див. нижче.|
|`RecipientToken`|Так|Рядок|Токен картки одержувача платежу (клієнта). У системі оператора одержувач платежу визначається за токенізованою та прив'язаною до гаманця картою.|Див. нижче.|
^4^ Параметри структури **"TransferW2W":**
|Параметр|Обов'яз-ковість|Тип|Опис|Приклад|
|:----:|:----:|:----:|----|:----:|
|`Sum`|Так|Ціле|Сума платежу за додатковою послугою у копійках. |1грн.=>`100`|
|`RecipientWallet`^5^|Так|Структура|Структура, що передає дані гаманця одержувача коштів у системі Оператора.|Див. нижче.|
^5^ Параметри структур **"SenderWallet"** та **"RecipientWallet"** однакові:
| Параметр | Обов'яз-ковість | Тип | Опис | Приклад|
|:----:|:----:|:----:|----|:----:|
|`ID`|Так|Рядок|Ідентифікатор гаманця, яким може виступати: </br> - номер телефону, </br> - email, </br> - унікальний ідентифікатор клієнта в системі Партнера, </br> - номер картки клієнта.| `267608990@email.com`|
|`UserName`|Ні|Рядок|Назва власника гаманця.|`267608990`|
:::success
<details>
<summary>Приклад структури "Data"</summary>
<br>
~~~md
{
"Purpose": "Оплата пакету послуг №111",
"InitTransferW2T": {
"TransferW2T": {
"Sum": 1000,
"SenderWallet": {
"ID": "",
"UserName": "Партнер 1"
},
"RecipientToken": "0e1394eed3d02f233ee406eb3c7566d87fbfece8067fdb28652dd0ac9b3ce6c"
},
"Transaction": {
"DateTime": "20220224 053650",
"TerminalID": "1",
"TransactionID": "REFILL_xpay_a53cfbf7da9b436eaa2429160bd6a812"
}
},
"Bunch": [
{
"TransferW2W": {
"Sum": 100,
"RecipientWallet": {
"ID": "",
"UserName": "Партнер 2"
}
},
"Transaction": {
"DateTime": "20220224 053650",
"TerminalID": "1",
"TransactionID": "REFILL_xpay_a53cfbf7da9b436eaa2429160bd6a812"
}
},
{
"TransferW2W": {
"Sum": 300,
"RecipientWallet": {
"ID": "",
"UserName": "Партнер 3"
}
},
"Transaction": {
"DateTime": "20220224 053650",
"TerminalID": "1",
"TransactionID": "REFILL_xpay_a53cfbf7da9b436eaa2429160bd6a812"
}
}
]
}
~~~
</details>
:::
### Схема проведення операції згідно прикладу
| Транзакція | Відправник | Одержувач | Сума | Опис |
|:----:|:----:|:----:|:----:|:----:|
|1|Гаманець: "Партнер 1".|Гаманець користувача, прив'язаний до токену картки клієнта.|Сума всіх операцій у запиті: `1400`.|Списання коштів з гаманця Партнера на гаманець клієнта.|
|2|Гаманець користувача, прив'язаний до токену картки клієнта.|Карта клієнта.|`1000`|Перерахування коштів на картку клієнта.|
|3|Гаманець користувача, прив'язаний до токену картки клієнта.|Гаманець: "Партнер 2".|`100`|Перерахування коштів на гаманець "Партнера 2".|
|4|Гаманець користувача, прив'язаний до токену картки клієнта.|Гаманець: "Партнер 3".|`300`|Перерахування коштів на гаманець "Партнера 3".|
## Відповідь
*Загальна інформація по формуванню структури відповіді наведена у розділі [“Загальна інформація по підключенню (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>Операція проведена успішно</summary>
<br>
~~~md
{
"Code": 200,
"Message": "done",
"Data": {
"OperationID": 555,
"OperationStatus": 10
},
"KeyAES": "",
"Sign": ""
}
~~~
</details>
:::
:::success
<details>
<summary>Помилка виконання операції</summary>
<br>
~~~md
{
"Code": 200,
"Message": "done",
"Data": {
"OperationID": 111,
"OperationStatus": 21,
"Reason": 3
},
"KeyAES": "",
"Sign": ""
}
~~~
</details>
:::
У разі неуспішного списання з гаманця Партнера **сум додаткових послуг** - у відповідь, у структурі "Data" передаються дані **"FailService"** із сумами, які не вдалося списати.
:::success
<details>
<summary>Помилка списання сум додаткових послуг (операція успішна)</summary>
<br>
~~~md
{
"Code": 200,
"Message": "Fail",
"Data": {
"OperationID": 11,
"OperationStatus": 10,
"Reason": 3,
"FailService": {
"UAH654654654": 12900,
"UAH789987789": 9900
}
},
"KeyAES": "",
"Sign": ""
}
~~~
</details>
:::
:::success
<details>
<summary>Помилка списання сум додаткових послуг (операція не завершена)</summary>
<br>
~~~md
{
"Code": 200,
"Message": "Fail",
"Data": {
"OperationID": 11,
"OperationStatus": 5,
"Reason": 3,
"FailService": {
"UAH654654654": 12900,
"UAH789987789": 9900
}
},
"KeyAES": "",
"Sign": ""
}
~~~
</details>
:::
## Тестові дані
:::info
![](https://i.imgur.com/gtxKB22.png)
Для тестування даного запиту застосовуйте параметри **Тестового Партнера**.
Див. деталі підключення у розділі: ["Параметри підключення Тестового Партнера"](https://hackmd.io/kGejjgk0QaiwfpoZFnTadA).
<details>
<summary>Тестовий запит</summary>
<br>
~~~md
{
"Partner": {
"PartnerToken": "0a7bf3b9-26f0-4181-b0eb-0c729c0f975c",
"OperationType": 10400
},
"Data": "{\"Purpose\":\"Оплатапакетупослуг№29\",\"InitTransferW2T\":{\"TransferW2T\":{\"Sum\":59000,\"SenderWallet\":{\"ID\":\"greg.jenko@mail.test\",\"UserName\":\"greg.jenko\"},\"RecipientToken\":\"0e1394eed3d02f233ee406eb3c7566d87fbfece8067fdb28652dd0ac9b3ce6c\"},\"Transaction\":{\"TransactionID\":\"0c5328f5-bda9-4376-b6a0-ca544fcb50fc\",\"TerminalID\":\"1\",\"DateTime\":\"2023032015:47:12\"}},\"Bunch\":[{\"TransferW2W\":{\"Sum\":600,\"RecipientWallet\":{\"ID\":\"jenko.zubrykovych@mail.test\",\"UserName\":\"jenko.zubrykovych\"}},\"Transaction\":{\"TransactionID\":\"0c5328f5-bda9-4376-b6a0-ca544fcb50fc\",\"TerminalID\":\"1\",\"DateTime\":\"2023032015:47:12\"}}]}",
"KeyAES": "",
"Sign": ""
}
~~~
</details>
<details>
<summary>Очікувана відповідь</summary>
<br>
~~~md
~~~
</details>
:::
## Пов'язані запити
[[10301/10311/103013] Гаманець-карта](https://hackmd.io/v5DKCslVSiGacRGLePCrOw)
[[10204/10214] Гаманець-карта (по токену)](https://hackmd.io/-dYr0t8eREOOjLvWsBucRg)
[[10202] Гаманець-гаманець](https://hackmd.io/dDT3KzIgQjW8-v8rYo-pPg)
[[10303] Гаманець-IBAN](https://hackmd.io/QF_yny3cRpCuQdUZq7dpyA)
[[10304] Гаманець-UUID](https://hackmd.io/YFxvxD7nQJqD5lRJokBejw)
[[10401] Пакетна оплата гаманець-карта (за номером карти)](https://hackmd.io/wvbMmdloQsiPSg-mp8e6Eg)
**Поповнення мобільного телефону**
[[10205] Гаманець-мобільний](https://hackmd.io/Ed0nf9UaRUuhBux_4NPeVg)
[[10305] Карта-мобільний](https://hackmd.io/XGJE11L3T_KwUtIR1Qlf_Q)
[[10405] Токен-мобільний](https://hackmd.io/gsTvGhrDTjqlNE_ZZa22vA)
**Отримання даних по проведеній операції**
[[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>