Создание платежа
https://unitpay.ru/api?
method=initPayment
params[paymentType]=card
params[account]=order413
params[sum]=10.00
params[projectId]=1
params[resultUrl]=http://вашсайт.ru
params[ip]=77.129.27.24
params[secretKey]=ключ
params[signature]=цифровая подпись
params[preauth]=1
params[customerEmail]=Email плательщика
Обязательные параметры:
| Значение | Описание |
paymentType | строка | |
account
| строка | Идентификатор абонента в системе партнера (например, логин или email абонента) |
sum | число | Сумма платежа в рублях (например, 10.00) |
projectId | число | ID вашего проекта в системе UnitPay |
resultUrl | строка | Urlencoded адрес перехода пользователя после оплаты (например, http://вашсайт.ru. Важно: домен не должен отличаться от домена проекта).
Если параметр не задан, то будет использован адр ес страницы чека платежа. |
desc | строка | Описание заказа |
secretKey | строка | Секретный ключ, доступен в настройках проекта |
Параметры для инициации платежей по методам мобильной коммерции (в данный момент временно недоступно):
| Значение | Описание |
phone | число | Телефон с кодом страны (например, 79520000000) |
operator | строка |
Значение PUBLIC KEY и SECRET KEY проекта можно найти на странице Настройки проекта

Пример формирования цифровой подписи на PHP:
function getFormSignature($account, $currency, $desc, $sum, $secretKey) {
$hashStr = $account.'{up}'.$currency.'{up}'.$desc.'{up}'.$sum.'{up}'.$secretKey;
return hash('sha256', $hashStr);
}
Пример формирования цифровой подписи на Perl:
sub getSignature {
my ($method, $params, $secretKey) = @_;
delete $params->{sign};
delete $params->{signature};
my $s = $method;
foreach my $key (sort keys %{$params}) {
$s .= '{up}' . $params->{$key};
}
$s .= '{up}' . $secretKey;
use Digest::SHA qw(sha256_hex);
return sha256_hex($s);
}
Дополнительные параметры оплаты:
| Значение | Описание |
currency | строка | Валюта заказа по стандарту ISO 4217 (RUB, UAH, BYN, EUR, USD итд. Полный список валют). Если платежная система не поддерживает требуемую валюту, то сумма будет сконвертирована в валюту системы оплаты |
locale | строка | Принудительное указание языка платежной формы, допустимые значения: ru, en. По умолчанию язык формы определяется исходя из страны, к которой относится IP адрес пользователя |
signature | строка | Цифровая подпись запроса. Данная функция является обязательной у всех новых партнёров Unitpay. Она защищает вас от злоумышленников - подмены описания или стоимости заказа, размещения ссылки на оплату на ресурсах мошенников. |
ip | строка | IP адрес плательщика |
backUrl | строка | Адрес возврата пользователя с платежной формы без совершения покупки, по умолчанию используется адрес проекта. В адресе обязательно должен использоваться домен проекта. Примеры: "https://redirect.<домен проекта>/?someParams", "https://<домен проекта>/redirect/" |
subscription | true/false | Используйте данный флаг, если требуется создать подписку по карте плательщика. Идентификатор подписки (subscriptionId) будет передан в методе PAY на ваш обработчик платежа. Использование подписок возможно только после согласования с вашим курирующим менеджером |
subscriptionId | число | Идентификатор подписки, по которой требуется пр оизвести списание средств. Данный параметр должен быть предварительно получен в методе PAY на ваш обработчик платежа |
preauth | true/false | Используйте этот флаг для создания платежа с преавторизацией, по умолчанию флаг выключен и значение равно 0 |
preauthExpireLogic | число | Поле для логики блокировки платежей с преавторизацией
0 - При отсутствии запроса на подтверждение или отмену, платеж по истечении срока блокировки на стороне банка-эквайера (~114 часов после создания платежа) будет подтвержден
1 - При отсутствии запроса на подтверждение или отмену, платеж по истечении срока блокировки на стороне банка-эквайера (~114 часов после создания платежа) будет отменен.
Если параметр не будет использован, платеж будет отменен по истечении срока.
|
По мере выполнения платежа мы уведомляем платформу магазина о статусе оплаты, последовательно отправляя GET запросы на URL обработчика.
Если вы подключили онлайн-кассу в ЛК, то для формирования чеков необходимо дополнительно передать ряд параметров
Redirect
Response (не ApplePay)
Response (ApplePay)
Invoice
{
"result": {
"message": "Платеж успешно создан.",
"paymentId": "1400072",
"receiptUrl": "https://unitpay.ru/pay/receipt/111-ab34c22",
"type": "redirect",
"redirectUrl": "http://unitpay.ru/pay/redirect/111-ab34c22"
}
}
{
"result": {
"message": "Платеж успешно создан.",
"paymentId": "1400072",
"receiptUrl": "https://unitpay.money/pay/receipt/111-ab34c22",
"type": "response",
"response": "<form>...</form>"
}
}
{
"result": {
"message": "Платеж успешно создан.",
"paymentId": "1400072",
"receiptUrl": "https://unitpay.money/pay/receipt/111-ab34c22",
"type": "response",
"response": {
"success": 1,
"orderId": "123",
"appleResponse": {
/* объект */
},
"approveUrl": "url"
}
}
}
{
"result": {
"message": "Платеж успешно создан.",
"paymentId": "1400072",
"receiptUrl": "https://unitpay.money/pay/receipt/111-ab34c22",
"type": "invoice",
"invoiceId": "123"
}
}
| Значение | Описание |
message | string | Информация о результате формирования платежа |
paymentId | bigint | Номер платежа в системе UnitPay |
receiptUrl | string | Ссылка на чек Примечание: возвращается, если подключена касса Юнит.Чеки, Атол или e-comm. |
type | string | Тип ответа: redirect — необходимо перенаправить пользователя на адрес, указанные в redirectUrl response - необходимо показать пользователю информацию, указанную в response
invoice — счет создан автоматически и направлен плательщику. Дополнительных действий не требуется |
redirectUrl | string | URL для переадресации пользователя на шлюз платежной платформы |
response | string | html код формы, а если ApplePay, то json html - необходимо отобразить на странице json - необходимо направить пользователя по approveUrl |
invoiceId | string | id счета |
{"error": {
"message": "Описание ошибки"
}}
| Значение | Описание |
message | строка | Информация с описанием ошибки формирования платежа |
Если ваш сайт создан с помощью CMS, ознакомьтесь со списком готовых модулей.
Для взаимодействия с API вы можете использовать библиотеку Unitpay PHP-SDK.
Last modified 7mo ago