УКР | [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>