Создание платежа без списания
URL
https://payparts2.privatbank.ua/ipp/v2/payment/hold
Тип запроса
POST
Заголовки
Название | Значение |
---|---|
Accept: | application/json; |
Accept-Encoding: | UTF-8; |
Content-Type: | application/json; charset=UTF-8; |
Тело запроса
{
"storeId": "",
"orderId": "",
"amount": 400.00,
"partsCount": 6,
"merchantType": "PP",
"scheme": 1111,
"products": [
{
"name": "Телевизор",
"count": 2,
"price": 100.00
},
{
"name": "Микроволновка",
"count": 1,
"price": 200.00
}
],
"recipientId":"qwerty1234",
"responseUrl": "http://shop.com/response",
"redirectUrl": "http://shop.com/redirect",
"signature": ""
}
Описание полей
Поле | Обязательное | Формат | Валидация значения | Описание |
---|---|---|---|---|
storeId | Да | String | notEmpty, notNull, maxSize=20 | Идентификатор магазина |
orderId | Да | String | notEmpty, notNull, maxSize=64 | Уникальный номер платежа |
amount | Да | Double | notNull, Min=300, Max=50 000 | Окончательная сумма покупки |
partsCount | Да | Integer | notNull, min=2, max=25 | Количество частей на которые делится сумма транзакции (Для заключения кредитного договора) Должно быть > 1. |
merchantType | Да | String | notNull | Тип кредита, возможные значения: II - Мгновенная рассрочка; PP - Оплата частями; PB - Оплата частями. Деньги в периоде. IA - Мгновенная рассрочка. Акционная. |
scheme | Нет | Integer | Идентификатор схемы. Выделяется Банком. По умолчанию не передается. В расчете сигнатуры не используется. | |
products | Да | Array | notEmpty, min=1 | Список продуктов, каждый продукт содержит поля: name - Наименование товара; price - Цена за еденицу товара; count - Количество товаров данного вида. |
name | Да | String | notEmpty, notNull, maxSize=128 | Наименование товара |
count | Да | Integer | notEmpty, notNull, minSize=1 | Количество товара данного вида |
price | Да | Double | notNull, Min=0.01 | Цена за единицу товара |
recipientId | Нет | String | Идентификатор получателя, по умолчанию берется основной получатель. Установка основного получателя происходит в профиле магазина. | |
responseUrl | Нет | String | URL, на который Банк отправит результат сделки | |
redirectUrl | Нет | String | URL, на который Банк сделает редирект клиента | |
signature | Да | String | notEmpty, notNull | Уникальная подпись запроса. Результат функции SHA1(описание ниже). |
Расчет сигнатуры для запроса
SIGNATURE - подпись запроса, обязательный параметр считается по формуле :
encodeBase64 ( SHA1 ( password
+ storeId
+ orderId
+ withoutFloatingPoint(amount)
+ partsCount
+ merchantType
+ responseUrl
+ redirectUrl
+ products_string
+ password
)), где:
- encodeBase64 () - Функция зашифровывает строку в формате BASE64;
- SHA1 () - Стандартная хеш-функция SHA-1, должна возвращать бинарные данные;
- withoutFloatingPoint () - Функция возвращает число без плавающей точки ;
- "+" - Конкатенация текстовой строки.
Параметр | Значение |
---|---|
password | Пароль вашего магазина |
storeId | Идентификатор магазина |
orderId | Уникальный номер платежа |
amount | Окончательная сумма покупки, без плавающей точки (запятой). Пример: "purchaseAmount": 301.00, то в сигнатуру необходимо передать 30100 |
partsCount | Количество частей на которые делится сумма транзакции ( >1) |
merchantType | Тип кредита |
responseUrl | URL, на который Банк отправит результат сделки |
redirectUrl | URL, на который Банк сделает редирект клиента |
products_string | (product.name(A) + product.count(A) + withoutFloatingPoint(product.price(A)) + product.name(B) + product.count(B) + withoutFloatingPoint(product.price(B)) + ... ) |
password | Пароль вашего магазина |
Успешный ответ
{
"state" : "SUCCESS",
"storeId" : "merchant",
"orderId" : "order_id",
"token" : "E8E354374D404C1E9279DCCF1C7B5541",
"signature" : "b47f80a7fbb34db084bb35527f84ed4a"
}
Описание полей
Параметр | Значение |
---|---|
password | Пароль вашего магазина |
state | Результат отработки запроса |
storeId | Идентификатор магазина |
orderId | Уникальный номер платежа |
message | В случае ошибки, содержит сообщение ошибки |
password | Пароль вашего магазина |
Расчет сигнатуры для ответа
SIGNATURE = encodeBase64 ( SHA1 ( password
+ state
+ storeId
+ orderId
+ token
+ password
))
- encodeBase64 () - Функция зашифровывает строку в формате BASE64;
- SHA1 () - Стандартная хеш-функция SHA-1, должна возвращать бинарные данные;
- withoutFloatingPoint () - Функция возвращает число без плавающей точки ;
- + - Конкатенация текстовой строки.
Ответ с ошибкой
{
"state" : "FAIL",
"storeId" : "merchant",
"orderId" : "order_id",
"message" : "error message",
"signature" : "37d9c9732fe843929deb01424fb4b0fa"
}
Расчет сигнатуры для ответа
SIGNATURE = encodeBase64 ( SHA1 ( password
+ state
+ storeId
+ orderId
+ message
+ password
))
- encodeBase64 () - Функция зашифровывает строку в формате BASE64;
- SHA1 () - Стандартная хеш-функция SHA-1, должна возвращать бинарные данные;
- withoutFloatingPoint () - Функция возвращает число без плавающей точки ;
- + - Конкатенация текстовой строки.