УКР | [ENG](https://hackmd.io/ES9hW5BlS6CozQAmULgnRw) ![](https://i.imgur.com/ULmPUgP.jpg) :arrow_left: [На Головну](/Mj2ZqCVpSq6A6Jzm6ladlw) # [10150/10051] Карта-Телефон-Карта *Що таке "оплата картою Server-Server" та як проходить автентифікація відправника див. у розділі ["Оплата картою Server-Server"](https://hackmd.io/oXcYbY08Tq69ggTIX9OyaA).* ## Застосування Операція *"Карта-Телефон-Карта"* складається з двох запитів: |"OperationType"| Тип операції | |:----:|----| |`10150`|Списання з карти.| |`10051`|Зарахування на вказану картку.| Операція *"Карта-Телефон-Карта"* застосовується для проведення переказу з картки на картку за наявності лише номеру телефону отримувача. Для операції списання з картки та затримання коштів у системі Оператора - надсилається запит [10150]. Після отримання успішної відповіді - надсилається запит [10051] для зарахування коштів на вказану картку. ## [10150] Запит списання з карти *Опис атрибутів "Partner", "KeyAES" та "Sign" див. у розділі ["Загальна інформація по підключенню (API)"](https://hackmd.io/g3cItPVFStez0ql3Xj-2TA).* ### Структура "Data" Структура "Data" для даної операції формується з наступних параметрів: :::info <details> <summary>Формування структури "Data" (приклади наведені нижче)</summary> <br> ~~~ { "Sum": , "Currency": "", "Exchange": "", "Phone": "", "Email": "", "SenderCard": { "PAN": "", "ExpMon": "", "ExpYear": "", "CVV": "" }, "Transaction": { "TransactionID": "", "TerminalID": "", "DateTime": "" }, "BrowserData": { "device": { "channel": "" }, "browserIP": "", "browserTZ": , "browserLanguage": "", "browserUserAgent": "", "browserColorDepth": , "browserJavaEnabled": , "browserScreenWidth": , "browserScreenHeight": , "fraudhuntFingerprint": "" } } ~~~ </details> ::: | Параметр | Обов'яз-ковість | Тип | Опис | Приклад| |:----:|:----:|:----:|----|:----:| |`Sum`|Так|Ціле|Сума операції у копійках. |1грн.=>`100`| | `Currency` | Так - при оплаті у валюті, відмінній від UAH. | Рядок | Код валюти *списання* – скорочене буквене позначення валюти, описане в стандарті [ISO 4217](https://uk.wikipedia.org/wiki/%D0%9A%D0%BB%D0%B0%D1%81%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F_%D0%B2%D0%B0%D0%BB%D1%8E%D1%82_(ISO_4217)) ("UAH", "GBP", "USD" та ін.). |`UAH`| | `Exchange` | Так - при оплаті у валюті, відмінній від UAH. | Рядок | Код валюти *зарахування* – скорочене буквене позначення валюти, описане в стандарті [ISO 4217](https://uk.wikipedia.org/wiki/%D0%9A%D0%BB%D0%B0%D1%81%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F_%D0%B2%D0%B0%D0%BB%D1%8E%D1%82_(ISO_4217)) ("UAH", "GBP", "USD" та ін.). |`UAH`| | `Phone` | Так | Рядок | Телефон клієнта у форматі: "380ххххххххх". |`380679335544`| | `Email` | Ні | Рядок | Email клієнта. |`index@gmail.com`| |`SenderCard`^1^|Так|Структура|Структура, що передає дані банківської картки відправника.|Див. нижче.| |`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`| :::success <details> <summary>Приклад структури "Data" [10150]</summary> <br> ~~~md { "Sum": 8400, "Email": "", "Phone": "380637541064", "Currency": "UAH", "Exchange": "UAH", "SenderCard": { "CVV": "123", "PAN": "8888888888888888", "ExpMon": "10", "ExpYear": "24" }, "Transaction": { "TerminalID": "1", "TransactionID": "a9d47abd-ec4a-4305-94b4-fb9cbe5463ad" } } ~~~ </details> ::: ## [10051] Запит зарахування на карту *Опис атрибутів "Partner", "KeyAES" та "Sign" див. у розділі ["Загальна інформація по підключенню (API)"](https://hackmd.io/g3cItPVFStez0ql3Xj-2TA).* ### Структура "Data" Структура "Data" для даної операції формується з наступних параметрів: :::info <details> <summary>Формування структури "Data" (приклади наведені нижче)</summary> <br> ~~~ { "OperationID": , "Phone": "", "Email": "", "RecipientCard": { "PAN": "" }, "Transaction": { "TransactionID": "", "TerminalID": "", "DateTime": "" }, "BrowserData": { "device": { "channel": "" }, "browserIP": "", "browserTZ": , "browserLanguage": "", "browserUserAgent": "", "browserColorDepth": , "browserJavaEnabled": , "browserScreenWidth": , "browserScreenHeight": , "fraudhuntFingerprint": "" } } ~~~ </details> ::: | Параметр | Обов'яз-ковість | Тип | Опис | Приклад| |:----:|:----:|:----:|----|:----:| |`OperationID`|Так|Ціле|Значення`OperationID`, отримане в успішній відповіді на запит [10150]. Див. вище.|`62176291`| | `Phone` | Так | Рядок | Телефон клієнта у форматі: "380ххххххххх". |`380679335544`| | `Email` | Ні | Рядок | Email клієнта. |`index@gmail.com`| |`RecipientCard`|Так|Структура|Структура, що передає дані банківської картки одержувача та складається з поля `PAN` (номер банківської карти).|`8888888888888888`| |`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).|Див. нижче.| :::success <details> <summary>Приклад структури "Data" [10051]</summary> <br> ~~~md { "Email": "", "Phone": "380637541064", "OperationID": 62176291, "Transaction": { "TerminalID": "1", "TransactionID": "b2d5184b-dcee-4a83-8805-484dfecd0665" }, "RecipientCard": { "PAN": "4000000000000010" } } ~~~ </details> ::: ## Відповідь на запити [10150/10051] *Загальна інформація по формуванню структури відповіді наведена у розділі [“Загальна інформація по підключенню (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": 62176291, "3dsHtml": "<html сторінка у кодуванні base64>", "OperationStatus": 2 }, "KeyAES": "", "Sign": "" } ~~~ </details> ::: :::success <details> <summary>Запит успішно прийнятий та вимагає підтвердження "OTP"</summary> <br> ~~~md { "Code": 102, "Message": "needOTP", "Data": { "OperationID": 62176291, "otpJson": "<JSON структура у вигляді рядка>", "OperationStatus": 3 }, "KeyAES": "", "Sign": "" } ~~~ </details> ::: :::success <details> <summary>Операція проведена успішно</summary> <br> ~~~md { "Code": 200, "Message": "done", "Data": { "OperationID": 62176291, "OperationStatus": 10 }, "KeyAES": "", "Sign": "" } ~~~ </details> ::: :::success <details> <summary>Помилка виконання операції</summary> <br> ~~~md { "Code": 200, "Message": "done", "Data": { "OperationID": 62176291, "OperationStatus": 21, "Reason": 3 }, "KeyAES": "", "Sign": "" } ~~~ </details> ::: ## Тестові дані :::info ![](https://i.imgur.com/gtxKB22.png) Для тестування даного запиту застосовуйте параметри **Тестового Партнера**. Див. деталі підключення у розділі: ["Параметри підключення Тестового Партнера"](https://hackmd.io/kGejjgk0QaiwfpoZFnTadA). <details> <summary>Тестовий запит [10150]</summary> <br> ~~~md { "Partner": { "Locale": "uk", "PartnerToken": "72a8ddb8-9145-4a41-af1a-8c48ecaa4be1", "OperationType": 10150 }, "Data": "{\"Sum\":15000,\"Currency\":\"UAH\",\"Exchange\":\"UAH\",\"Phone\":\"380272223322\",\"Email\":\"\",\"SenderCard\":{\"PAN\":\"8888888888888888\",\"ExpMon\":\"12\",\"ExpYear\":\"24\",\"CVV\":\"356\"},\"Transaction\":{\"TransactionID\":\"a9d47abd-ec4a-4305-94b4-fb9cbe5463ad\",\"TerminalID\":\"1\",\"DateTime\":\"2023030311:49:07\"},\"BrowserData\":{\"device\":{\"channel\":\"BRW\"},\"browserIP\":\"89.68.252.11\",\"browserTZ\":180,\"browserLanguage\":\"UA\",\"browserUserAgent\":\"Chrome/100.0.4896.127\",\"browserColorDepth\":24,\"browserJavaEnabled\":false,\"browserScreenWidth\":1920,\"browserScreenHeight\":1080,\"fraudhuntFingerprint\":\"kHqPGWS1Mj18sZFsP8Wl\"}}" } ~~~ </details> <details> <summary>Тестовий запит [10051]</summary> <br> ~~~md { "Partner": { "Locale": "uk", "PartnerToken": "72a8ddb8-9145-4a41-af1a-8c48ecaa4be1", "OperationType": 10051 }, "Data": "{\"OperationID\":9492242,\"Phone\":\"380272223322\",\"Email\":\"\",\"RecipientCard\":{\"PAN\":\"8888888888888888\"},\"Transaction\":{\"TransactionID\":\"b2d5184b-dcee-4a83-8805-484dfecd0772\",\"TerminalID\":\"1\",\"DateTime\":\"2023030311:51:12\"},\"BrowserData\":{\"device\":{\"channel\":\"BRW\"},\"browserIP\":\"89.68.252.11\",\"browserTZ\":180,\"browserLanguage\":\"UA\",\"browserUserAgent\":\"Chrome/100.0.4896.127\",\"browserColorDepth\":24,\"browserJavaEnabled\":false,\"browserScreenWidth\":1920,\"browserScreenHeight\":1080,\"fraudhuntFingerprint\":\"kHqPGWS1Mj18sZFsP8Wl\"}}" } ~~~ </details> <details> <summary>Очікувана відповідь</summary> <br> ~~~md { "Code": 102, "Message": "needACS", "Data": { "3dsHtml": "PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIKCSJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPgoJPGh0bWw+Cgk8aGVhZD4KCSA8dGl0bGU+WFBBWSB0ZXN0IDNkczwvdGl0bGU+Cgk8L2hlYWQ+Cgk8Ym9keT4KICAgCgkgPGZvcm0gYWN0aW9uPSdodHRwczovL3N0YWdlLWNiMS54cGF5LmNvbS51YS9kdW1tZXJjYjNkcy8xMjgzMTU5Ni85NDkyMjQyL2hRQ0FUWFRMOHMwdC9zbXAvc3VjYycgbWV0aG9kPSdHRVQnPgoJIDxwIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXIiPgoJIDxidXR0b24+TWFrZSBTVUNDRVNTPC9idXR0b24+CgkgPC9wPgoJIDwvZm9ybT4KICAgCgkgPGZvcm0gYWN0aW9uPSdodHRwczovL3N0YWdlLWNiMS54cGF5LmNvbS51YS9kdW1tZXJjYjNkcy8xMjgzMTU5Ni85NDkyMjQyL2hRQ0FUWFRMOHMwdC9zbXAvZmFpbCcgbWV0aG9kPSdHRVQnPgoJIDxwIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXIiPgoJIDxidXR0b24+TWFrZSBGQUlMPC9idXR0b24+CgkgPC9wPgoJIDwvZm9ybT4KICAgCgk8L2JvZHk+CiAgIDwvaHRtbD4=", "LongPollerID": "9492242", "OperationID": 9492242, "OperationStatus": 2 }, "KeyAES": "", "Sign": "" } ~~~ </details> ::: ## Пов'язані запити [[10101] Карта-карта](https://hackmd.io/ZpBbYAb4RsaTc8NU_0zwfA) [[10102/101023/101025] Карта-гаманець](https://hackmd.io/jxzgAy4nSt-Q-6chgRCZdQ) [[10103] Карта-IBAN фізична особа](https://hackmd.io/mQFXiO1USRuVX2-ah4h1FQ) [[101031] Карта-IBAN юридична особа](https://hackmd.io/-jgdOWRiRwaabSv5_YjAKQ) **Оплата по токену** [[104021] Оплата картою по токену](https://hackmd.io/CCEZ0su4T3OBtY-_QBSzew) [[1040217] Пакетна оплата карткою по токену](https://hackmd.io/UvXgiPdmRGOs0hwDtc_CEQ) [[104121] Автосписання з карти по токену (МОТО-операції)](https://hackmd.io/-_Rj-iqZTMy22FxFgUc08w) **Отримання даних карти** [[20400/20410] Отримання даних карти за номером телефону](https://hackmd.io/EjF35e_sSfKad2ojsEoYWQ) [[20404] Отримання даних карти за токеном](https://hackmd.io/Fo0-oeZ4Sz-Gju6Qg01hiA) **Отримання даних по проведеній операції** [[20003] Отримання статусу операції](https://hackmd.io/fvd8btZLQXywluia6w5uxg) [[20009] Отримання ліміту по операції [10101]](https://hackmd.io/a-XSuzvRvG9t9cU2yoUvg) [[20110] Отримання даних карти](https://hackmd.io/zFCegCSASKKjGCmoJkTYmw) ## Довідкові матеріали Опис загальних параметрів системи 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>