Створення рахунків (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 (оплата частинами Глобус+ Глобус банк)* - payPartsOtp (розстрочка ОТР Банк Скибочка)* - 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
 
                