Створення рахунків (Create invoice)
Запит з необхідними параметрами формується на стороні продавця та передається методом POST по протоколу HTTP на URL https://api.wayforpay.com/api
Аутентифікація запитів
З метою підтвердження валідності даних повинно бути згенеровано і передано в запиті HMAC_MD5 контрольний підпис з використанням SecretKey торговця.
Рядок, що підлягає HMAC_MD5, генерується шляхом конкатенації параметрів merchantAccount, merchantDomainName, orderReference, orderDate, amount, currency, productName [0],
productName [1] ..., productName [n], productCount [0], productCount [1], ..., productCount [n], productPrice [0], productPrice [1], ..., productPrice [n] розділених ";" (крапка з комою) в кодуванні UTF-8
Параметри запиту:
ПАРАМЕТР | ОПИС | ОБОВ'ЯЗКОВЕ |
transactionType | CREATE_INVOICE | Так |
merchantAccount | Ідентифікатор продавця. Це значення присвоюється Вам з боку WayForPay | Так |
merchantTransactionType | Тип транзакції. Може приймати одне з наступних значень: - AUTO (за замовчуванням) - AUTH - SALE | Ні |
merchantAuthType | Тип авторизації: SimpleSignature | Ні |
merchantDomainName | Доменне ім'я веб-сайту торговця | Так |
merchantSignature | Підпис запиту | Так |
apiVersion | Версія протоколу. Значення за замовчуванням: 1 | Так |
language | Мова на якій буде виставлено invoice. Може приймати одне з наступних значень: - RU (за замовчуванням) - UA - EN | Ні |
notifyMethod | Параметр відповідає за те, яким чином буде відправлений invoice: - sms - bot - all | Ні |
serviceUrl | URL, на який система повинна відправляти повідомлення з результатом оплати інвойсу безпосередньо мерчанту | Ні |
orderReference | Унікальний номер invoice в системі торговця | Так |
orderDate | Дата розміщення замовлення | Так |
amount | Сума до оплати | Так |
currency | Валюта замовлення UAH | Так |
alternativeAmount | Альтернативна сума замовлення | Ні |
alternativeCurrency | Альтернативна валюта замовлення USD, EUR | Ні |
orderTimeout | Встановлює час життя invoice - протягом якого клієнт може спробувати його оплатити. За замовчуванням invoice доступний до оплати протягом 1 години | Ні |
holdTimeout | Час дії блокування коштів в секундах. За умовчанням 1 728 000 (20 днів). Максимально 1 728 000 (20 днів). Мінімальне значення 60 (1 хвилина) | Ні |
productName[] | Масив з найменуванням замовлених товарів | Так |
productPrice[] | Масив з цінами за одиницю товару. Ця інформація буде видна на сторінці оплати замовлення | Так |
productCount[] | Масив з кількістю замовленого товару по кожній позиції. | Так |
paymentSystems | Список платіжних систем, доступних клієнтові при виборі способу оплати на платіжній сторінці. Системи повинні бути розділені крапкою з комою. Доступні платіжні системи: - card - googlePay - applePay - privat24 - lpTerminal - delay - bankCash - qrCode - masterPass - visaCheckout - bot - метод оплати у месенжерах (бот wayforpay) - payParts (миттєва розстрочка вiд ПриватБанка)* - payPartsMono (покупка частинами вiд Монобанка)* - payPartsPrivat (оплата частинами вiд ПриватБанка )* - payPartsAbank (плати частинами вiд А-Банка)* - instantAbank (розстрочка А-Банка)* - globusPlus (оплата частинами Глобус+ Глобус банк)* - payPartsOschad (оплата частями Ощадбанк)* - OnusInstallment (розстрочка Райффайзен Банк)
* Для платежів в розстрочку або оплати частинами можна передавати доступне для клієнта кількість частин на платіжній сторінці, кількість частин вказуємо через кому після ":". Наприклад: payPartsAbank: 2,3,7,10; payParts: 5 | Ні |
clientFirstName | Ім'я клієнта (мінімальна довжина 1 символ) | Ні |
clientLastName | Прізвище клієнта (мінімальна довжина 1 символ) | Ні |
clientEmail* | Email клієнта, на який буде відправлений invoice | Ні |
clientPhone | Номер телефону клієнта (мінімальна довжина 9, максимальна 13 цифр) | Ні |
* - якщо email клієнта не заданий, то повідомлення клієнту про invoice не буде відправлено, але у відповіді буде відданий invoiceUrl.
Параметри відповіді:
REASON | ПРИЧИНА ВІДМОВИ | |
reasonCode | код відмови | |
invoiceUrl | url по якому клієнту відкриється платіжна сторінка, для оплати інвойсу |
Приклад запиту і відповіді
{
"transactionType":"CREATE_INVOICE",
"merchantAccount":"test_merch_n1",
"merchantAuthType":"SimpleSignature",
"merchantDomainName":"www.super.org",
"merchantSignature":"60c5d743b71f79abe48c7183ada4b451",
"apiVersion":1,
"language":”ru”,
"serviceUrl":”http://serviceurl.com”,
"orderReference":"myOrder1",
"orderDate":1421412898,
"amount":1547.36,
"currency":"UAH",
"orderTimeout": 86400,
"productName":["Samsung WB1100F","Samsung Galaxy Tab 4 7.0 8GB 3G Black"],
"productPrice":[21.1,30.99],
"productCount":[1,2],
"paymentSystems": "card;privat24",
"clientFirstName":"Bulba",
"clientLastName":"Taras",
"clientEmail":"rob@mail.com",
"clientPhone":"380556667788"
}
{
"reason":"1100",
"reasonCode":"Ok",
"invoiceUrl":"https://secure.wayforpay.com/pay/invoice?acc=netpeaknet&id=5534eb845b744d27b3ca57eb38a74599&sign=a4a923edd74f9b23bdd8922b4a2d8630",
"qrCode": "https://wayforpay.com/qr/img/i343c70e046af?size=200"
}
Повідомлення мерчанта про статус оплати Invoice
Для авторизованих і перевірених замовлень (а також при зміні статусу замовлення) серевер WayForPay направляє на serviceUrl запит (HTTP_POST) включає в себе дані замовлення.
Дана інформація доповнюється контрольної підписом HMAC_MD5.
У разі, якщо WayForPay НЕ отримає коректну відповідь від сервера торговця, то система буде направляти запити протягом 4-х діб або до отримання правильної відповіді.
Параметри запиту шлюзу WayForPay на serviceUrl
З метою підтвердження валідності даних повинно бути згенеровано і передано в запиті 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 |
| email платника | |
phone | Номер телефону платника | +38063-333-33-33 |
createdDate | дата створення запиту в psp | 123456789 |
processingDate | дата процесування транзакції | 12345678 |
cardPan | маскований номер карти | 42****4242 |
cardType | тип карти: Visa/MasterCard | Visa |
issuerBankCountry | Країна карти | Ukraine |
issuerBankName | Ім'я Банку карти | PrivatBank |
recToken | токен карти для рекаренгових списань | 121213321-3213213-3213213-321-3 |
transactionStatus | статус транзакції | Approved |
reason | Причина відмови | Ok |
reasonCode | Код відмови | 1100 |
fee | Комісія psp | 0.00 |
paymentSystem | Платіжна система, через яку був здійснений платіж. | card |
Приклад запиту на serviceUrl
{
"merchantAccount":"test_merch_n1",
"orderReference":"myOrder1",
"merchantSignature":"",
"amount":"1547.36",
"currency":"UAH",
"authCode":"541963",
"email":"client@mail.ua",
"phone":"380501234567",
"createdDate":"",
"processingDate":"",
"cardPan":"4102****8217",
"cardType":"visa",
"issuerBankCountry":"980",
"issuerBankName":"Privatbank",
"recToken":"",
"transactionStatus":"Approved",
"reason":"1100",
"reasonCode":"",
"fee":"",
"paymentSystem":"card"
}
Приклад коректної відповіді від мерчанта
Система WayForPay очікує отримати від сервера торговця таку відповідь:
{
"orderReference":"myOrder1",
"status":"accept",
"time":1415379863,
"signature":""
}
З метою підтвердження валідності даних повинно бути згенеровано і передано в запиті HMAC_MD5 контрольний підпис з використанням SecretKey торговця.
Рядок, що підлягає HMAC_MD5, генерується шляхом конкатенації параметрів orderReference, status, time розділених ";" (крапка з комою) в кодуванні UTF-8