API дозволяє виконувати перекази між картками фізичних осіб, які було випущено українськими банками.
Параметри запиту
Запит c необхідними параметрами формується на стороні продавця та передається методом POST по протоколу HTTP на URL https://api.wayforpay.com/api
З метою підтвердження валідності даних повинно бути згенеровано і передано в запиті HMAC_MD5 контрольний підпис з використанням SecretKey торговця.
Рядок, що підлягає HMAC_MD5, генерується шляхом конкатенації параметрів merchantAccount, orderReference, amount, currency, cardBeneficiary розділених ";" (крапка з комою) в кодуванні UTF-8
Параметр | Опис | Обов'язкове |
transactionType | Тип запиту, приймає значення P2P_TRANSFER | Так |
merchantAccount | Унікальний ідентифікатор продавця. | Так |
merchantAuthType | Тип авторизації. Може приймати одне з наступних значень: SimpleSignature (за замовчуванням) | Так |
merchantTransactionSecureType | Тип безпеки для проходження транзакції. - AUTO | ні |
merchantDomainName | Доменне ім'я веб-сайту торговця | Так |
orderReference | Унікальний номер переказу в системі торговця | Так |
orderDate | Дата перекладу | Так |
amount | Сума переказу | Так |
fee | Сума комісії | ні |
currency | Валюта переказу: UAH | Так |
card | Номер картки відправника - 16 цифр | ні |
expMonth | Місяць закінчення терміну дії карти - MM | ні |
expYear | Рік закінчення терміну дії карти - YYYY | ні |
cardCvv | Секретний код карти CVV/CVV2 | ні |
cardHolder | ім'я власника карти, як зазначено на карті | ні |
recToken | Токен карти - для повторного списання без участі клієнта (без передачі реквізитів карти) | ні |
clientFirstName | Ім'я відправника | ні |
clientLastName | Прізвище відправника | ні |
clientAddress | Адреса відправника | ні |
clientCity | Місто відправника | ні |
clientState | Штат / Область відправника | ні |
clientZipCode | Поштовий індекс відправника | ні |
clientCountry | Країна відправника | ні |
clientEmail | Email відправника | ні |
clientPhone | Номер телефону відправника | ні |
clientIpAddress | ip-адреса, з якого заходив клієнт на сторінку мерчанта для здійснення покупки | Так |
cardBeneficiary | Номер картки одержувача | Так |
deliveryFirstName | Ім'я одержувача | ні |
deliveryLastName | Прізвище одержувача | ні |
deliveryEmail | Email отримувача | ні |
deliveryPhone | Номер телефону одержувача | ні |
merchantSignature | підпис запиту | Так |
apiVersion | Версія протоколу. Значення за замовчуванням: 1 | Так |
Примітка: Поля (card + expMonth + expYear + cardCvv + cardHolder) або recToken повинні бути обов'язковим. |
---|
Верифікація карти 3ds verify
Проміжний відповідь для аутентифікації клієнта
Якщо карта відправника підтримує 3d secure верифікацію, система Wayforpay поверне параметри для аутентифікації клієнта.
З даними параметрами Мерчанту необхідно перенаправити клієнта на url емітента для аутентифікації.
Час протягом якого живе сесія на верифікацію - 10 хвилин. Якщо протягом 10 хвилин не буде отриманий COMPLETE_3DS, система відхилить транзакцію як неуспішну.
Параметр | Опис | Приклад |
merchantAccount | ідентифікатор продавця | test_merch_n1_p2p |
orderReference | Унікальний номер замовлення в системі торговця | P2P-1430206527 |
amount | Сума замовлення | 0.31 |
currency | Валюта замовлення | UAH |
authCode | код авторизації - присвоюється банком | null |
createdDate | дата створення запиту в psp | 1430206630 |
processingDate | дата процесування транзакці | null |
recToken | токен карти для рекаренгових списань | |
reason | Wait 3ds data | |
transactionStatus | статус транзакції | InProcessing |
reasonCode | код відмови | 5100 |
fee | сума комісії | 1 |
d3AcsUrl | адреса ACS сервера емітента, на який необхідно перенаправити користувача для аутентифікації | https:\\3dsecure.ukrsibbank.com\acs\auth\start.do |
d3Md | Унікальний ідентифікатор, який необхідно передати на url методом POST під час перенаправлення клієнта | ODMyNzRmNjgtMjEyYS00ODAyLWExYjMtZTc1Y2ZkZTNjYTBi |
d3Pareq | PaReq повідомлення, яке необхідно передати на url методом POST під час перенаправлення клієнта | eJx1kmFvgjAQhv+K8QfQFkHBnE3YNNFF0ajZol+WBi+CAcRSVPbr 1yrO7cP66Z43vXvvroV1LBGH\nK4wqiRxmWJZij61kN2gvgk+bOZ7 TZW0Oi2CJJw5nlGVyzDmzqGUDeaDOk1EscsVBRKeXSchdx+1R\ nD0iDkKGcDDmjzfGZ51IXyF2GXGTI11iq1lSocyKA3BSIjlWuZM 096gB5AFQy5bFSRdknBKNjpotE\naKXJqRC1pfkpkqxIdJsmAcizx0Vlol IbXJMdnw9ndfi1zMLDXs0Oo3qzonQ+DOrpx2gAxNyAnVDI\n bcpc6thei9F+p9dnuvBNB5GZzji1OkwPfAcojEdwB6P\/5n\/m0k8gMY9q 7ntUyw8CvBbHHHWedvyJ\ngTyneB2bvUdKr3I\/3V5UuHo\/+7F MxsXhknbtFN+2m11qmrtfMhUT7ch8498AEFOGNA9Nmp+goz8\/\n5Bt+QbuA |
authTicket | тікет авторизації | d185a769977cc297b13bfd0edd9bdd29 |
merchantSignature | підпис запиту | 09c85c95722fee7c2283d5f189902035 |
Після отримання даних від системи Wayforpay, мерчанту необхідно передати на d3AcsUr методом POST параметри d3Pareq і d3Md в такій формі:
<form name="MPIform" action='${d3AcsUrl}' method="POST">
<input type="hidden" name="PaReq" value='${d3Pareq }'>
<input type="hidden" name="MD" value='${d3Md }'>
<input type="hidden" name="TermUrl" value='${TempUrl}'>
</form>
TempUrl - url переданий мерчантом, на який емітент поверне відповідь після аутентифікації клієнта.
Підтвердження 3d secure верифікації
Після проходження клієнтом аутентифікації і редиректу на TempUrl з результатом, отриманим від емітента, мерчант направляє запит COMPLETE_3DS.
Параметр | Опис | Обов'язкове |
apiVersion | Версія протоколу. Значення за замовчуванням: 1 | Так |
transactionType | Тип запиту, приймає значення COMPLETE_3DS | Так |
authorization_ticket | тікет авторизації | Так |
d3ds_md |
| Так |
d3ds_pares |
| Так |
З метою підтвердження валідності даних повинно бути згенеровано і передано в запиті HMAC_MD5 контрольний підпис з використанням SecretKey торговця.
Рядок, що підлягає HMAC_MD5, генерується шляхом конкатенації параметрів merchantAccount, orderReference, amount, currency, authCode, cardPan, transactionStatus, reasonCode розділених ";" (крапка з комою) в кодуванні UTF-8
Параметр | Опис | Приклад |
merchantAccount | ідентифікатор продавця | test_merchant |
orderReference | Унікальний номер замовлення в системі торговця | 1212dd1 |
merchantSignature | hash_hmac | |
amount | Сума замовлення | 100 |
currency | Валюта замовлення | UAH |
authCode | код авторизації - присвоюється банком | 324567 |
createdDate | дата створення запиту в psp (UTC) | 123456789 |
processingDate | дата процесування транзакції (UTC) | 12345678 |
recToken | токен карти відправника для рекаренгових переказів | 121213321-3213213-3213213-321-3 |
transactionStatus | статус переказу | Approved |
reason | Причина відмови | Ok |
reasonCode | код відмови | 110 |
Приклад запиту і відповіді
{
"transactionType":"P2P_TRANSFER",
"merchantAccount":"test_merch",
"merchantAuthType":"SimpleSignature",
"merchantSignature":"60c5d743b71f79abe48c7183ada4b451",
"apiVersion":1,
"orderReference":"myOrder1",
"orderDate":1421412898,
"amount":10.13,
"currency":"UAH",
"card":"4111111111111111",
"expMonth":"11",
"expYear":"2020",
"cardCvv":"111",
"cardHolder":"TARAS BULBA",
"cardBeneficiary":"4111111111111111"
}
{
"merchantAccount": "test_merchant",
"orderReference": "DH783023",
"merchantSignature":"b95932786cbe243a76b014846b63fe92",
"amount": "10.13",
"currency": "UAH",
"authCode": "221562",
"createdDate": "13.01.2014 15:10:47",
"processingDate": "13.01.2014 15:10:52",
"transactionStatus": "Approved",
"reason": "ok",
"reasonCode": "1100"
}