Создание платежа

URL

https://payparts2.privatbank.ua/ipp/v2/payment/create

Тип запроса

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 () - Функция возвращает число без плавающей точки ;

  • + - Конкатенация текстовой строки.

Last updated