Платежный виджет

Есть сомнения? Установи виджет на сайт и проверь
как это работает
Платежный виджет

Простой способ для приема оплаты онлайн

Настройте платежный виджет и принимайте оплаты от клиентов. Для настройки предлагается несколько вариантов платежного виджета. Посмотрите как это работает уже сейчас! После тестирования — просто удалите код платежного виджета на вашем сайте

Для тестирования используйсте данные тестовой карты:

Номер

4728 7900 0000 0009

Срок действия

12/25

CVV2

111

30/30
Платежная форма

Сформируйте тестовую платежную форму и вставьте полученный код на сайт

Вы можете создать форму с ручным вводом суммы заказа, либо с фиксированной суммой

Платежная кнопка

Создайте кнопку на каждый товар и принимайте платежи от клиентов в один клик. Введите сумму в поле и получите готовый код кнопки в фирменном стиле ДелоБанка

Платёжная кнопка без фирменного стиля

Все на сайте в едином стиле? Тогда этот вариант — Ваш. Идеально подходит для конструкторов сайтов. Чтобы инициировать платеж на определенную сумму, достаточно просто привязать к кнопке ссылку

Введите сумму в поле и получите пример готовой ссылки для инициализации платежа

Как подключить интернет-эквайринг через платежный виджет?
Откройте расчетный счет в ДелоБанке
В интернет‑банке оставьте заявку на интернет‑эквайринг
После одобрения заявки выберите один из способов подключения: Платежный виджет, CMS, API
Принимайте платежи банковскими картами прямо на сайте

Пользуетесь готовой платформой для создания сайтов и интернет-магазинов? Попробуйте платежные модули для популярных платформ

1C-Битрикс

1C-Битрикс

Версия 18.5.180

JoomShoping

JoomShoping

Версия 4.18.3

MogutaCMS

MogutaCMS

Версия 8.12.3

Prestashop

Prestashop

Версия 1.7.6.0

WooCommerce

WooCommerce

Версия 2.5.5

Требуется большая гибкость? Воспользуйтесь функциональным API

Подготовка к реализации взаимодействия

Оплата банковской картой на Вашем сайте осуществляется в три этапа:

Инициализация платежа

Вы помещаете идентификатор платежа и другие параметры в особым образом сформированный URL и перенаправляете браузер Вашего клиента по данному URL на сервер Банка – https://mpi.skbbank.ru/.

Проверка платежа

Банк запрашивает у Вашего сайта параметры платежа (сумму, описание и пр.) по его идентификатору из Этапа 1. В случае успеха Банк запрашивает у Вашего клиента данные о его банковской карте и авторизует необходимую сумму в банке клиента.

Фиксация платежа

Банк передаёт Вашему сайту результаты оплаты.

  • Для осуществления безопасных платежей Вашему сайту необходимо поддерживать протокол HTTPS. Пожалуйста, обратитесь к администратору Вашего сайта, хостинга или сервера. Бесплатный TLS-сертификат для HTTPS Вы можете получить в компании «Let’s Encrypt».
  • Для обеспечения безопасности взаимодействия между Банком и Вашим сайтом, Вам необходимо защитить участвующие в данном взаимодействии скрипты логином и паролем для HTTP Basic Access-аутентификации, описанной в RFC7617. Логин и пароль должны быть переданы в Банк. Пожалуйста, обратитесь к администратору сайта или в службу поддержки Вашего хостинга для помощи с настройкой HTTP-аутентификации.
1. Инициализация платежа

Осуществляется переадресацией Вашего клиента на сайт Банка с передачей GET-параметров в URL.

Формат URL:
Формат URL
https://mpi.skbbank.ru/payment/start.wsm?lang=<ид_языка>&merch_id=<ид_сайта>&o.param_1=<параметр_платежа_1>[...&o.param_n=<параметр_платежа_n>]&back_url_s=<url_страницы_успешной_оплаты>&back_url_f=<url_страницы_неуспешной_оплаты>
Пример URL:
Пример URL
https://mpi.skbbank.ru/payment/start.wsm?lang=ru&merch_id=3C6093D717DE771BC5EE7EA89B4EBB3A&o.order_id=109CFCED-EA95-480C-902D-A8749E314A65&back_url_s=https%3A%2F%2Fmerchant.ru%2Fpayment%2Fsucceeded%3Forder_id%3D109CFCED-EA95-480C-902D-A8749E314A65&back_url_f=https%3A%2F%2Fmerchant.ru%2Fpayment%2Fsucceeded%3Forder_id%3D109CFCED-EA95-480C-902D-A8749E314A65
Обязательные поля:
Параметр
Описание
merch_id

Уникальный идентификатор Вашего сайта (интернет-магазина) в системе Банка. Выдаётся Банком после обработки Вашей заявки на подключение.

Примеры:
merch_id=3C6093D717DE771BC5EE7EA89B4EBB3A

o.param_1

o.param_n

Order Params. Набор параметров, однозначно идентифицирующих платёж в базе данных Вашего магазина в формате o.имя_параметра. Имя параметра после точки может быть любым. Вы должны передать в URL не менее одного o-параметра. Количество o-параметров ограничено длиной URL. Банк будет передавать Вам данные параметры на Этапе 2, при проверке платежа. Ваш сайт должен быть готов определить сумму и описание платежа на этапе проверки, основываясь на полученных Order Params.

Примеры:
o.order_id=109CFCED-EA95-480C-902D-A8749E314A65 o.id=1234567890&o.hash=01b307acba4f54f55aafc33bb06bbbf6ca803e9a

back_url_s

Адрес, куда перенаправляется клиент в случае успешного проведения платежа, после нажатия на кнопку «Вернуться в магазин» на платежной странице с результатами платежа. ВАЖНО: Во избежание проблем с обработкой платежа, передавайте GET-параметры в URL Encoded формате. См. https://www.w3schools.com/tags/ref_urlencode.asp

Примеры:
back_url_s=https%3A%2F%2Fmerchant.ru%2Fpayment%2Fsucceeded%3Forder_id%3D109CFCED-EA95-480C-902D-A8749E314A65

back_url_f

Адрес, куда перенаправляется клиент в случае неудачного проведения платежа, после нажатия на кнопку «Вернуться в магазин» на платежной странице с результатами платежа. ВАЖНО: Во избежание проблем с обработкой платежа, передавайте GET-параметры в URL Encoded формате. См. https://www.w3schools.com/tags/ref_urlencode.asp

Примеры:
back_url_f=https%3A%2F%2Fmerchant.ru%2Fpayment%2Fsucceeded%3Forder_id%3D109CFCED-EA95-480C-902D-A8749E314A65

Опциональные параметры:
Параметр
Описание
lang

Язык платёжной страницы. Двухсимвольный код в соответствии со стандартом ISO 639-1. Поддерживается «ru» и «en». По умолчанию «ru».

Примеры:
lang=ru
lang=en

2. Проверка платежа

После получения запроса на инициализацию платежа, Банк формирует HTTP GET- запрос проверки платежа (CheckPaymentAvailRequest). Запрос отправляется по заданному при регистрации статическому URL. Ваш сайт должен быть готов получать запросы по указанному URL.

Формат URL:
Формат URL
https://<доменное_имя>/<путь>?trx_id=<ИД_ТРАНЗАКЦИИ>&lang_code=<ИД_ЯЗЫКА>&merch_id= <ИД_САЙТА>&o.param_1=<ПАРАМЕТР_ПЛАТЕЖА_1>[...&o.param_n=<ПАРАМЕТР_ПЛАТЕЖА_N>]&ts=<ДАТА_ПЛАТЕЖА>
Пример URL:
Пример URL
https://ваш_сайт.ru/payment/check?trx_id=21AEE5C7B48A9BB56B8C422A189505DF&lang_code=RU&merch_id= 3C6093D717DE771BC5EE7EA89B4EBB3A&o.order_id=109CFCED-EA95-480C-902D-A8749E314A65&ts=20170410+10%3A10%3A17
Обязательные поля:
Параметр
Описание
trx_id

Уникальный идентификатор транзакции в системе Банка.

Примеры:
trx_id=21AEE5C7B48A9BB56B8C422A189505DF

lang_code

Из запроса на инициализацию платежа (lang). Если присутствовал.

Примеры:
lang_code=RU

merch_id

Уникальный идентификатор Вашего сайта (интернет-магазина) в системе Банка. Выдаётся Банком после обработки Вашей заявки на подключение.

Примеры:
merch_id=3C6093D717DE771BC5EE7EA89B4EBB3A

back_url_f

Адрес, куда перенаправляется клиент в случае неудачного проведения платежа, после нажатия на кнопку «Вернуться в магазин» на платежной странице с результатами платежа. ВАЖНО: Во избежание проблем с обработкой платежа, передавайте GET-параметры в URL Encoded формате. См. https://www.w3schools.com/tags/ref_urlencode.asp

Примеры:
back_url_f=https%3A%2F%2Fmerchant.ru%2Fpayment%2Fsucceeded%3Forder_id%3D109CFCED-EA95-480C-902D-A8749E314A65

o.*

Из запроса на инициализацию платежа.

Примеры:
o.order_id=109CFCED-EA95-480C-902D-A8749E314A65.

ts

Дата выполнения запроса в формате «yyyyMMdd HH:mm:ss»

Примеры:
ts=20170410+10%3A10%3A17

Банк ожидает от Вашего сайта XML с описанием и суммой платежа, либо с описанием отказа, если Вы не разрешаете этот платёж. Во избежание ошибок валидации на стороне систем Банка рекомендуется в названии XML тега использовать только строчные буквы. Смотрите описание элементов XML ниже.

Пример XML-ответа с разрешением оплаты:
Формат URL
<payment-avail-response>
	<result>
		<code>1</code>
		<desc>Payment is available</desc>
	</result> 
	<purchase>
		<shortDesc>Пополнение счёта</shortDesc>
		<longDesc>Пополнение лицевого счёта абонента +79123456789</longDesc>
		<account-amount> 
			<id>668FA7E2855B4715EBA229747A8437C3</id>
			<amount>15500</amount>
			<currency>643</currency>
			<exponent>2</exponent>
		</account-amount> 
	</purchase>
</payment-avail-response>
Пример XML-ответа с запретом оплаты:
Пример URL
<payment-avail-response>
	<result>
		<code>2</code>
		<desc>Payment is unavailable: Wrong payment params</desc>
	</result>
</payment-avail-response>
Описание элементов Вашего XML-ответа:
Параметр
Описание
result.code

Результат проверки платежа в Вашем магазине.
Возможные значения:
1 – Успешная проверка. Продолжить оплату.
2 – Неуспешная проверка. Прервать процесс оплаты.

result.desc

Краткое описание результатов проверки. Не более 125 символов.

purchase.shortDesc

При result.code=1. Краткое описание платежа. Не более 30 символов.

purchase.longDesc

При result.code=1. Полное описание платежа. Не более 125 символов. Это описание отображается клиенту на странице ввода реквизитов банковской карты.

purchase.account-amount.amount

Сумма к оплате. Отображается на странице ввода реквизитов, списывается с банковской карты Вашего клиента. ВАЖНО: Сумма платежа указывается в минимальных единицах валюты платежа. Для российских рублей сумма указывается в копейках. Для суммы платежа в 1 руб. в указанном элементе должно быть значение 100. Принимаются целые положительные числа.

purchase.account-amount.currency

Код валюты платежа по ISO 4217. Всегда 643 для российских рублей.

purchase.account-amount.exponent

Для российских рублей всегда 2.

purchase.account-amount.id

Уникальный идентификатор терминала, который нужен при проведении расчётов в системах Банка. Выдаётся Банком после обработки Вашей заявки на подключение. Необязательный параметр при условии наличия у магазина одного терминала.

3. Фиксация платежа

По результатам платежа Банк формирует HTTP GET-запрос на фиксацию платежа (RegisterPaymentRequest). Запрос отправляется по заданному при регистрации статическому URL. Ваш сайт должен быть готов получать запросы по указанному URL.

Формат URL:
Формат URL
https://<доменное_имя>/<путь>?trx_id=<ИД_ТРАНЗАКЦИИ>&merch_id=<ИД_САЙТА>& result_code=<РЕЗУЛЬТАТ_ПЛАТЕЖА>&amount=<СУММА>&account_id=<ИД_СЧЁТА>&ext_result_code=<РАСШИРЕННЫЙ_РЕЗУЛЬТАТ>& o.param_1=<ПАРАМЕТР_ПЛАТЕЖА_1>[...&o.param_n=<ПАРАМЕТР_ПЛАТЕЖА_N>]&p.maskedPan=<НОМЕР_КАРТЫ>& p.authcode=<КОД_АВТОРИЗАЦИИ>&p.cardholder=<ИМЯ_КЛИЕНТА>&p.rrn=<ССЫЛОЧНЫЙ_НОМЕР>&p.transmissionDateTime=<MMddHHmmss>& p.isFullyAuthenticated=<РЕЗУЛЬТАТ_3-D_SECURE>&ts=<ДАТА_ВРЕМЯ>&signature=<ЦИФРОВАЯ_ПОДПИСЬ_ЗАПРОСА>
Пример URL:
Пример URL
https://ваш_сайт.ru/payment/register?trx_id=B564B5581EA606DCE0B5CB5EDBD5840E&merch_id=3C6093D717DE771BC5EE7EA89B4EBB3A& result_code=1&amount=20900&account_id=2C28C7C1959D0EE0D0877887047E0FB6&o.order_id=25&p.authcode=100549& p.transmissionDateTime=0417131256&p.isFullyAuthenticated=N&p.maskedPan=459226xxxxxx4562&p.cardholder=IVAN IVANOV& p.rrn=001078489946&ts=20170417+13%3A12%3A57&signature=JnsEwcHTuNzpll5ckD9VfCHdTdCYUUnI5dhRrIAdYCvY9YIsrgmOKYrgN96OZ jDkH05XHqVKdmkY%0AO1qvWxFFeGSMistGnK3mB1UYA5SSl1RluCcAWFsHShn1ZwyNKLMo9e2%2Bk5hvRYEeUeE0hv2NRWRo%0Ay4%2FJu5X kgHAzUxmd5rBTvBtN04nVuPZDXJ6xSi9%2F8k5jf9hu0iHZNw5WW6uM6NtIC1JVl%2Bew%2FR9X%0AfGiU%2FQ0%2BwT1b6vZ3p0lUMuhlxb lYdvwzu8%2FzxEdwMq%2FsaRRaweJQGvPJdCAUl1ar01sCDx6jj%2B%2FL%0AVlj4FwuslHtklLXBE%2FifbMy%2Fban%2FZTqNwMFx3Q%3D%3D
В запросе передаются параметры:
Параметр
Описание
trx_id

Уникальный идентификатор транзакции в системе Банка.

Примеры:
trx_id= B564B5581EA606DCE0B5CB5EDBD5840E

merch_id

Уникальный идентификатор Вашего сайта (интернет-магазина) в системе Банка. Выдаётся Банком после обработки Вашей заявки на подключение.

Примеры:
merch_id=3C6093D717DE771BC5EE7EA89B4EBB3A

result_code

Результат платежа. Может принимать значения:
1 – Успешная оплата. Именно этот код подтверждает успешность платежа Вашего клиента.
2 – Неуспешная оплата. На карте клиента недостаточно средств, карта блокирована или её реквизиты введены неправильно, и т.п. (пока магазин находится в тестовом режиме, результат платежа всегда будет таким; при этом на странице с результатами платежа будет соответствующая приписка)

ext_result_code

Расширенный код результата. Необязательный параметр. Возможные значения:
-2 – Отказ в проведении платежа.
-3 – Ошибка при проведении платежа.
-4 – Успешный платеж отменен по инициативе магазина на этапе фиксации платежа.
2 – Магазин отказался проводить платеж на этапе проверки.
4 – Произошла ошибка при взаимодействии с магазином на этапе проверки платежа.
21 – Проверка платежа в магазине не выполнялась. Возможно магазин, или биллинг были заблокированы.
53 – Транзакция завершилась по таймауту, так как пользователь по каким-то причинам отказался продолжать платеж.
54 – Пользователь сознательно выбрал отмену платежа.

amount

Сумма платежа в минимальных единицах валюты. Для российского рубля – в копейках.

Примеры:
amount=20900

account_id

Идентификатор виртуального счета в системе Банка, по которому производилась оплата.

Примеры:
account_id=2C28C7C1959D0EE0D0877887047E0FB6

o.*

Параметры платежа из запроса на инициализацию.

Примеры:
o.order_id=25

p.authcode

Код авторизации из Процессингового центра. Передаётся только при успешной оплате.

Примеры:
p.authcode=100549

p.transmissionDateTime

Дата/время операции в Процессинговом центре в формате «MMddHHmmss».

Примеры:
p.transmissionDateTime=0417131256

p.isFullyAuthenticated

Результат 3-D Secure-аутентификации:
Y – результат успешный
N – результат неуспешный

Примеры:
p.isFullyAuthenticated=N

p.maskedPan

Частичный номер карты, по которой производилась оплата.

Примеры:
p.maskedPan=459226xxxxxx4562

p.cardholder

Имя держателя карты, введённое на странице реквизитов банковской карты при оплате.

Примеры:
p.cardholder=IVAN IVANOV

p.rrn

Необязательный параметр. Идентификатор платежа в Процессинговом центре.

Примеры:
p.rrn=001078490029

ts

Дата выполнения запроса в формате «yyyyMMdd HH:mm:ss»

Примеры:
ts=20170417+13%3A12%3A57

signature

ЭЦП банка-эквайера под запросом в формате PEM (кодированный Base64); подписывается весь сформированный URL начиная c “https://” (включительно) вплоть до “&signature=” (не включая “&signature=”)

В ответ Банк ожидает от Вашего сайта XML с результатами фиксации платежа в Вашей системе. Во избежание ошибок валидации на стороне систем Банка рекомендуется в названии XML тега использовать только строчные буквы.

Пример XML-ответа об успешной фиксации платежа:
Пример URL
<register-payment-response>
	<result>
		<code>1</code>
		<desc>Payment successfully registered</desc>
	</result>
</register-payment-response>

Банк рекомендует устанавливать в ответе заголовок Content-Type со значением application/xml.

Параметры XML-ответа на запрос фиксации платежа:
Элемент
Условия
result.code

Результат обработки запроса на фиксацию платежа. Возможные значения:
1 – Успешная обработка. Результат платежа зафиксирован в интернет-магазине.
2 – Невозможно зафиксировать результат платежа. Банку необходимо повторить запрос.

result.desc

Описание результата обработки запроса на фиксацию платежа. Не более 125 символов.

ВАЖНО: Положительный ответ (result.code=1) означает, что результат платежа обработан Вашим интернет-магазином. Это не зависит от того, была ли одобрена оплата банковской картой – Вы должны подтвердить фиксацию платежа (одобренного или нет). В случае result.code=2 Банк будет посылать повторные запросы на фиксацию платежа в системе интернет-магазина.