Створення рахунків (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

- email

- 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

email платника

email@mail.com

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