Введение
Процесс интеграции
Общие требования:
-
Мы работаем по типу подключения
host-to-host
-
Обмениваемся сообщениями в формате
JSON
-
Protocol не ниже
TLSv1.2
-
Авторизация по протоколу BasicAuth.
Login:Password
-shopToken:secKey
Авторизационные данные передавайте в заголовках
-
Ответы будут приходить с адресов:
178.161.210.54
и94.138.149.0/24
. Проследите чтоб их пропускал ваш файрвол. -
Ориентируйтесь на время прохождения транзакции 30 - 60 секунд (от создания платежа до передачи денежных средств поставщику услуг)
Тестовые параметры:
-
Тестовый URL для магазинов - https://demo-api2.bisys.ru/api-shop
Тестовая карта
Вы можете проверить сценарий оплаты банковской картой ниже
pan (номер карты) | срок | CVV | ожидаемый результат | RC | Платёжная система | Актуальная |
---|---|---|---|---|---|---|
5479 2700 0000 0000 | 03/22 | 123 | Успех с 3ds 12345678 | 00 | MASTER CARD | Да |
4111 1111 1111 1111 | 12/24 | 123 | Успех с 3ds 12345678 | 00 | VISA | Да |
2201 3820 0000 0013 | 12/24 | 123 | Успех с 3ds 12345678 | 00 | МИР | Да |
2201 3820 0000 0062 | 12/24 | 123 | Успех с 3ds 12345678 | 00 | МИР | Да |
2201 3820 0000 0039 | 12/24 | 123 | Успех с 3ds 12345678 | 00 | МИР | Да |
-Для получения RC=05 необходимо ввести неверный код cvc2. |
Боевые параметры
-
URL для магазинов - https://api2.bisys.ru/api-shop/rs/shop
-
ServCode
,shopToken
,secKey
будут высланы письмом техническому специалисту
Массив реквизитов
Массив реквизитов передается в параметре properties
Параметры запроса:
Параметр | Обязательность | Описание |
---|---|---|
AGREEMENT_NUMBER |
+ | ЛС абонента |
COMPANY_ACCOUNT_NUMBER |
+ | Счет зачисления |
SERVICES_PAYMENT |
+ | Абон.плата |
BANK_ACCOUNT_NUMBER |
+ | Счет_РСК |
CREDIT_AGREEMENT_NUMBER |
+ | Номер кредитного договора |
LOAN_ID |
+ | ИД кредитного договора |
ACTUAL_PAYMENT |
+ | Оплата рассрочки |
SURNAME |
- | Фамилия |
FIRSTNAME |
- | Имя |
PATRONYMIC |
- | Отчество |
TELEPHONE |
- | Телефон |
Платеж с 3ds
Некоторые рекуррентные платежи невозможны без данной технологии.
При этом будет сгенерировано исключение NeedPass3dsException
(смотри код 2365 в разделе Разбор ошибок), которое содержит номер платежа regPayNum
и securePageURL
(URL -
тот, на который необходимо перенаправить пользователя для прохождения 3ds методом GET)
Ислючение может быть получено на этапе создания рекуррента (описан в разделе "создание платежа"), а так же на этапе проверки статуса платежа (описан в разделе "Получение статуса платежа")
Параметр payType
Устанавливает тип оплаты. Возможные значения поля:
-
sbp - оплата через сервис СБП, в параметре payUrl передаётся ссылка на оплату через сервис СБП.
-
sberPay - оплата через мобильное приложение Сбербанка, с данным параметром обязателен параметр
userPhone
- номер телефона, привязанный к приложению Сбербанка, в формате 79XXXXXXXXX
Параметр payTypeVisible
payTypeVisible - используется если необходимо скрыть или скорректировать очередность способов оплаты.Если параметр не будет передан на платежной форме будут отражены все доступные способы оплаты. Возможные значения :
-
сard
-
sbp
-
sberPay
-
mirpay
Параметр clientAuInfo
Пример заполнения параметра clientAuInfo
{
"ipAddress": "xxx.xxx.xxx.xxx",
"agentName": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:80.0) Gecko/20100101 Firefox/80.0",
"authenticationInfo": "e2RldmljZS5icm93c2VyQWNjZXB0SGVhZGVyPXRleHQvaHRtbA0KZGV2aWNlLmJyb3dzZXJJUD05NC4xMzguMTQ5LjM0DQpicm93c2VySmF2YUVuYWJsZWQ6IGZhbHNlDQpicm93c2VyTGFuZ3VhZ2U6ICJydS1SVSINCmJyb3dzZXJDb2xvckRlcHRoOiAyNA0KYnJvd3NlclNjcmVlbkhlaWdodDogMTA4MA0KYnJvd3NlclNjcmVlbldpZHRoOiAxOTIwDQpicm93c2VyVFo6IC0zMDANCmJyb3dzZXJVc2VyQWdlbnQ6ICJNb3ppbGxhLzUuMCAoWDExOyBVYnVudHU7IExpbnV4IHg4Nl82NDsgcnY6ODAuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC84MC4wIn0="
}
Скрипт получения данных в браузере клиента
function getFingerprint() {
return btoa(JSON.stringify({
browserTZ: new Date().getTimezoneOffset(),
browserColorDepth: window.screen.colorDepth,
browserScreenHeight: window.screen.height,
browserScreenWidth: window.screen.width,
browserLanguage: navigator.language,
browserUserAgent: window.navigator.userAgent,
browserJavaEnabled: window.navigator.javaEnabled()
}));
}
В параметре clientAuInfo
необходимо передавать данные для корректного прохождения 3ds v2.
Применимо только для методов рекуррентного платежа: Cоздание рекуррентного платежа
Описание данных:
-
ipAddress
- IP-адрес плательщика -
agentName
- Имя приложения клиентаТип: строка
-
authenticationInfo
- Строка base64, содержит json информацию о браузере клиента согласно документацииEMVCo 3DS Spec v220 122018
Тип: строка
Достаточно передать параметры
AcceptHeader
, IP,JavaEnabled
,Language
,ColorDepth
,ScreenHeight
,ScreenWidth
,TZ
,UserAgent
-
acceptHeader
- значение заголовка HTTP Accept полученного от клиента. Необходим для реккурентов некоторых банков.
Параметр orderBestBefore
Данным параметром можно передать время истечения жизни заказа (в секундах). Время, до которого нужно оплатить заказ.
Значение параметра - абсолютная дата UTC, в секундах (сформировать абсолютную дату). Например:
По умолчанию срок жизни заказа 72 часа
-
1574934178
-
UTC Thu Nov 28 2019 09:42:58
-
PERM UTC+5 Thu Nov 28 2019 14:42:58
Создание ссылки на платежную форму
Наше API позволят создать платеж с регистрацией карты пользователя на нашу форму оплаты
Пример запроса платежа с оплатой картой
curl --location 'https://demo-api2.bisys.ru/api-shop/do/payment' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NWY4MmMxYWQtZTU0NS00NWM0LWIyYmMtMWNkODQ5ZTMyOTM1OjFlYjMwNTE1LTQ2ZWItNGQ0OS1hNWVjLTZjZWMwN2IwNWQyMA==' \
--data
'{
"serviceCode": "18550-18552-1",
"amount": "7000",
"comission": "0",
"shopLogin":"true",
"orderBestBefore": "1575362617720",
"login": "1b172bc5-7474-4cd0-bf0e-9e7ea7ea1c23",
"pfPayLink": "true",
"invUnic": "INV_SIMPLE",
"payTypeVisible":["card"],
"properties": [
{
"name": "AGREEMENT_NUMBER",
"value": "1234444422"
},
{
"name": "COMPANY_ACCOUNT_NUMBER",
"value": "12345678901234567891"
},
{
"name": "SERICES_PAYMENT",
"value": "200"
},
{
"name": "CREDIT_AGREEMENT_NUMBER",
"value": "12345"
},
{
"name": "BANK_ACCOUNT_NUMBER",
"value": "12345678901234567891"
},
{
"name": "LOAN_ID",
"value": "1234567"
},
{
"name": "ACTUAL_PAYMENT",
"value": "100"
},
{
"name": "SURNAME",
"value": "Иванов"
},
{
"name": "FIRSTNAME",
"value": "Сергей"
},
{
"name": "PATRONYMIC",
"value": "Степанович"
},
{
"name": "TELEPHONE",
"value": "9504442314"
}
]
}'
Пример ответа
{
"sign": "D745932BC4D62767AD1FD25743CE561F",
"userToken": "a49b9722-d734-47d3-a9d0-97203e41e140",
"shopToken": "82531ba2-6e86-4e57-bbcb-53066f8de29a",
"payUrl": "https://payframe.bisys.ru/?service=100-12865-1&amount=1000&pf_pm=card&%D0%9D%D0%9E%D0%9C%D0%95%D0%A0_%D0%A1%D0%A7%D0%95%D0%A2%D0%90=12356&amount_read_only=true&properties_read_only=true&start_pay_select=true&inv_sign=82531ba2-6e86-4e57-bbcb-53066f8de29a%7Cb4df0ab17c2801379287fae1f1c78ae7f6dd03e8a09aded27dfd2cd9602e8c20%7Cv5%7Cinv%3A63dbc530-ad6b-4e7a-970a-a7ae67f2d199%7Cinv_simple",
"methodType": "GET",
"invToken": "63dbc530-ad6b-4e7a-970a-a7ae67f2d199"
}
Пример запроса платежа с оплатой МирPay
curl --location 'https://demo-api2.bisys.ru/api-shop/do/payment' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NWY4MmMxYWQtZTU0NS00NWM0LWIyYmMtMWNkODQ5ZTMyOTM1OjFlYjMwNTE1LTQ2ZWItNGQ0OS1hNWVjLTZjZWMwN2IwNWQyMA==' \
--data
'{
"serviceCode": "100-12865-1",
"amount": "1000",
"comission": "0",
"shopLogin":"true",
"login": "1b172bc5-7474-4cd0-bf0e-9e7ea7ea1c23",
"orderBestBefore": "1575362617720",
"pfPayLink": "true",
"invUnic": "INV_SIMPLE",
"payTypeVisible":["mirpay"],
"properties": [
{
"name": "AGREEMENT_NUMBER",
"value": "1234444422"
},
{
"name": "COMPANY_ACCOUNT_NUMBER",
"value": "12345678901234567891"
},
{
"name": "SERICES_PAYMENT",
"value": "200"
},
{
"name": "CREDIT_AGREEMENT_NUMBER",
"value": "12345"
},
{
"name": "BANK_ACCOUNT_NUMBER",
"value": "12345678901234567891"
},
{
"name": "LOAN_ID",
"value": "1234567"
},
{
"name": "ACTUAL_PAYMENT",
"value": "100"
},
{
"name": "SURNAME",
"value": "Иванов"
},
{
"name": "FIRSTNAME",
"value": "Сергей"
},
{
"name": "PATRONYMIC",
"value": "Степанович"
},
{
"name": "TELEPHONE",
"value": "9504442314"
}
]
}'
Пример ответа
{
"sign": "6ECB956F8F2ED0CD7E6AC59DC1864CAC",
"userToken": "b32a1945-503c-4e94-abab-87461a3dbea9",
"shopToken": "5f82c1ad-e545-45c4-b2bc-1cd849e32935",
"regPayNum": null,
"payUrl": "https://demo-payframe.bisys.ru/?service=18550-18552-1&amount=8000&pf_pm=mirpay&%D0%94%D0%9E%D0%93_%D0%A0%D0%90%D0%A1%D0%A1%D0%A0%D0%9E%D0%A7%D0%9A%D0%98=%E2%84%963412354-%D0%B0%D0%B1%D0%B2&%D0%9E%D0%A2%D0%A7%D0%95%D0%A1%D0%A2%D0%92%D0%9E=%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&%D0%98%D0%9C%D0%AF=%D0%98%D0%B2%D0%B0%D0%BD&%D0%A1%D0%A3%D0%9C%D0%9C%D0%90_%D0%9A_%D0%9E%D0%9F%D0%9B%D0%90%D0%A2%D0%95=80&%D0%9B_%D0%A1%D0%A7%D0%95%D0%A2=123456789&%D0%A1%D0%A7%D0%95%D0%A2_%D0%A0%D0%A1%D0%9A=12345678901234567890&%D0%A4%D0%90%D0%9C%D0%98%D0%9B%D0%98%D0%AF=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2&%D0%A2%D0%95%D0%9B%D0%95%D0%A4%D0%9E%D0%9D=9009998899&%D0%A1%D0%A3%D0%9C%D0%9C%D0%90_%D0%90%D0%91%D0%9E%D0%9D_%D0%9F%D0%9B%D0%90%D0%A2%D0%90=500&amount_read_only=true&properties_read_only=true&start_pay_select=true&inv_sign=5f82c1ad-e545-45c4-b2bc-1cd849e32935%7C9214f5dbada118e7148a00656f00c77ac3223264edf1fd615250d848dcc7df36%7Cv5%7Cinv%3A99728952-1ceb-48d5-b6a7-1560e8e22d96",
"methodType": "GET",
"payUrlImg": null
}
Алгоритм создания и оплаты:
-
Создать платеж с параметрами
login
,shopLogin: true
иpfPayLink: true
-
Перевести Клиента по ссылке на платежную форму методом GET, полученной в ответе на запрос создания платежа
-
Перейдя по сслыке клиент перейдет на форму оплаты там ему необходимо выбрать удобный способ оплаты
-
Оплата платежа одним из доступных методов
-
Если при оплате необходима регистрация карты, в методе необходимо передать параметр needRegCard: true
Запрос - POST
Метод - /do/payment
Параметры запроса:
Параметр | Обязательность | Описание |
---|---|---|
login |
+ | логин плательщика, по умолчанию - номер телефона 79XXXXXXXXX, с параметром shopLogin может принимать любые значения, входящие в regex: [0-9a-zA-z]{3,50} |
shopLogin |
+ | используется если Вы хотите использовать свой абстрактный логин Клиента, а не номер телефона, передать TRUE (по умолчанию FALSE) |
serviceCode |
+ | уникальный код услуги |
amount |
+ | сумма платежа (указывается в копейках) |
comission |
+ | комиссия платежа (указывается в копейках), если комиссия не задана услугой - передается 0 |
pfPayLink |
- | Используется для создания ссылки на платежную форму, принимает значение true в ответе получаем ссылку на платежную форму, заместо формы ввода данных карты, по умолчанию false |
needRegCard |
- | используется если необходима регистрация карты |
payTypeVisible |
- | используется если необходимо скрыть или скорректировать очередность способов оплаты, если не передавать параметр на плетжной форме отображены все доступные способы оплаты |
InvUnic* |
- | Следит за уникальностью лицевого счета |
properties |
+ | массив реквизитов |
orderBestBefore |
- | Время истечения срока жизни заказа в секундах. Подробнее |
Параметры ответа (все параметры обязательные):
-
shopToken
- идентификатор магазина -
userToken
- идентификатор пользователя -
regPayNum
- номер платежа -
methodType
- метод перехода по url для оплаты (GET/POST) -
payUrl
- url оплаты -
sign
- подпись запроса -
invToken
- Уникальный идентификатор счета
Получение статуса счета
Пример запроса
curl --location 'https://demo-api2.bisys.ru/api-shop/shop/ver3/check/invoice/state' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NWY4MmMxYWQtZTU0NS00NWM0LWIyYmMtMWNkODQ5ZTMyOTM1OjFlYjMwNTE1LTQ2ZWItNGQ0OS1hNWVjLTZjZWMwN2IwNWQyMA==' \
--data {
invToken: 63dbc530-ad6b-4e7a-970a-a7ae67f2d199
}
Пример ответа
{
"invState": "PAYED",
"regPayNum": "10009351",
"payInfo": {
"sign": null,
"state": "holded",
"totalAmount": 1000,
"createdDate": "2024-04-02 16:47:21",
"providerServCode": "100-12865-1",
"providerName": "test",
"errorCode": null,
"error": null,
"message": null,
"provisionServices": false,
"procDate": null
}
}
Для получения статуса счета, вам необходимо отправить запрос с параметром invToken который вы получите в ответе на создание счета.В ответе вам придет номер платежа и его данные. С помощью этого параметра вы сможете сделать возврат платежа
Метод запроса - POST
URL - shop/ver3/check/invoice/state
Параметры запроса (все параметры обязательные):
-
invToken
- Уникальный идентификатор счета -
shopToken
- Идентификатор магазина
Параметры ответа:
Обязательные Параметры ответа:
-
InvoiceState
- Статус счета на оплату -
created
- создан -
payed
- оплачен -
expired
- истек -
closed
- закрыт -
regPayNum
- номер платежа -
state
- статус платежа (не указывается для анонимных платежей). -
totalAmount
- сумма платежа в копейках -
createdDate
- время создания платежа (Время должно быть в формате: yyyy-mm-dd hh:mm:ss) -
providerServCode
- уникальный код провайдера услуг -
providerName
- название провайдера услуг -
errorCode
- код ошибки, используется для локализации проблемы.
Возможные значения:
Необязательные параметры ответа:
-
error
- текст ошибки (используется для локализации проблемы, не должно выдаваться пользователю) -
message
- сообщение пользователю (ошибка, ее интерпретация, объяснение и т.п.) -
provisionServices
- флаг, была ли оказана услуга (true или false) -
procDate
- время проведения платежа (некоторые платежи могут проводиться с задержкой по времени до нескольких минут) Время должно быть в формате: yyyy-mm-dd hh:mm:ss
Sber Pay
Пример запроса платежа
curl --location 'https://demo-api2.bisys.ru/api-shop/do/payment' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NWY4MmMxYWQtZTU0NS00NWM0LWIyYmMtMWNkODQ5ZTMyOTM1OjFlYjMwNTE1LTQ2ZWItNGQ0OS1hNWVjLTZjZWMwN2IwNWQyMA==' \
--data
'{
"serviceCode": "18550-18552-1",
"amount": "8000",
"shopLogin": "true",
"login": "123456789",
"comission": "0",
"payType": "sberPay",
"orderBestBefore": "1575362617720",
"userPhone":"79991234456",
"properties": [
{
"name": "AGREEMENT_NUMBER",
"value": "1234444422"
},
{
"name": "COMPANY_ACCOUNT_NUMBER",
"value": "12345678901234567891"
},
{
"name": "SERICES_PAYMENT",
"value": "200"
},
{
"name": "CREDIT_AGREEMENT_NUMBER",
"value": "12345"
},
{
"name": "BANK_ACCOUNT_NUMBER",
"value": "12345678901234567891"
},
{
"name": "LOAN_ID",
"value": "1234567"
},
{
"name": "ACTUAL_PAYMENT",
"value": "100"
},
{
"name": "SURNAME",
"value": "Иванов"
},
{
"name": "FIRSTNAME",
"value": "Сергей"
},
{
"name": "PATRONYMIC",
"value": "Степанович"
},
{
"name": "TELEPHONE",
"value": "9504442314"
}
]
}'
Пример ответа
{
"sign": "383A1ED535B7EA15A6A6B1707D6E1FAA",
"shopToken": "5f82c1ad-e545-45c4-b2bc-1cd849e32935",
"regPayNum": "169251641",
"payUrl": null,
"methodType": "NONE",
"payUrlImg": null
}
Пример запроса платежа с параметром
"sberPayType": "back2app"
curl --location 'https://api2.bisys.ru/api-shop/do/payment' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic' \
--data
'{
"serviceCode": "18550-18552-1",
"amount": "8000",
"shopLogin": "true",
"login": "123456789",
"comission": "0",
"payType": "sberPay",
"userPhone": "79999999999",
"sberPayInfo": {
"sberPayType": "back2app"
},
"properties": [
{
"name": "AGREEMENT_NUMBER",
"value": "1234444422"
},
{
"name": "COMPANY_ACCOUNT_NUMBER",
"value": "12345678901234567891"
},
{
"name": "SERICES_PAYMENT",
"value": "200"
},
{
"name": "CREDIT_AGREEMENT_NUMBER",
"value": "12345"
},
{
"name": "BANK_ACCOUNT_NUMBER",
"value": "12345678901234567891"
},
{
"name": "LOAN_ID",
"value": "1234567"
},
{
"name": "ACTUAL_PAYMENT",
"value": "100"
},
{
"name": "SURNAME",
"value": "Иванов"
},
{
"name": "FIRSTNAME",
"value": "Сергей"
},
{
"name": "PATRONYMIC",
"value": "Степанович"
},
{
"name": "TELEPHONE",
"value": "9504442314"
}
]
}'
Пример запроса платежа с параметром
"sberPayType": "app2app"
curl --location 'https://api2.bisys.ru/api-shop/do/payment' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic' \
--data
'{
"serviceCode": "18550-18552-1",
"amount": "8000",
"shopLogin": "true",
"login": "123456789",
"comission": "0",
"payType": "sberPay",
"userPhone": "79999999999",
"sberPayInfo": {
"sberPayType": "app2app",
"deepLink": "android-app://ru.testbankmobile/main",
"sberPayOsType": "android"
},
"properties": [
{
"name": "AGREEMENT_NUMBER",
"value": "1234444422"
},
{
"name": "COMPANY_ACCOUNT_NUMBER",
"value": "12345678901234567891"
},
{
"name": "SERICES_PAYMENT",
"value": "200"
},
{
"name": "CREDIT_AGREEMENT_NUMBER",
"value": "12345"
},
{
"name": "BANK_ACCOUNT_NUMBER",
"value": "12345678901234567891"
},
{
"name": "LOAN_ID",
"value": "1234567"
},
{
"name": "ACTUAL_PAYMENT",
"value": "100"
},
{
"name": "SURNAME",
"value": "Иванов"
},
{
"name": "FIRSTNAME",
"value": "Сергей"
},
{
"name": "PATRONYMIC",
"value": "Степанович"
},
{
"name": "TELEPHONE",
"value": "9504442314"
}
]
}'
Алгоритм для Магазин.
1. Создаем платеж с параметром payType и типом оплаты SberPay
2. C помощью параметра sberPayInfo выбираем тип оплаты по sberPay
3. В ответ вы получите regpaynum c помощью которого вы сможете посмотреть статус платежа(см. подробнее Получение статуса платежа)
Описание значений для параметра sberPayInfo .
back2app-Ссылка на оплату,придет пуш или sms уведомлении на указанный в запросе номер телефона
app2app-Вызывается в приложение клиента, далее клиент перенаправляемся в мобильное приложение "Сбербанк-Онлайн"
web2app-Вызывается в браузере клиента, далее клиент перенаправляемся в мобильное приложение "Сбербанк-Онлайн"(Пока не поддерживается)
Запрос - POST
Метод запроса - /do/payment
Параметры запроса:
Параметр | Обязательный | Описание |
---|---|---|
serviceCode |
+ | код провайдера |
login |
+ | логин плательщика, по умолчанию - номер телефона 79XXXXXXXXX, с параметром shopLogin может принимать любые значения, входящие в regex: [0-9a-zA-z]{3,50} |
shopLogin |
+ | используется если Вы хотите использовать свой абстрактный логин Клиента, а не номер телефона, передать TRUE (по умолчанию FALSE) | amount |
+ | сумма платежа в копейках |
comission |
+ | комиссия платежа в копейках (при отсутствии комиссии передается 0) |
payType |
+ | способ оплаты подробнее в п. Параметр payType |
userPhone |
- | Телефон клиента(обязателен только для back2App) |
properties |
+ | массив реквизитов. |
sberPayInfo |
- | Дополнительная информация.По умолчанию используется sberPayInfo со значением back2app. |
orderBestBefore |
- | Время истечения срока жизни заказа в секундах. Подробнее |
Возможные занчения для параметра sberPayInfo:
-
sberPayType
- Выбор метода оплаты по SberPay (back2app, web2app, app2app) -
sberPayOsType
- Тип ОС клиента.Обязателен для app2app.(ios, android) -
deepLink
-Линк для возврата в приложение мерчанта. Обязателен для app2app `^([a-zA-Z0-9_]|-|:|/|\\.|&|\\?|=){1,256}$` -
backUrl
- Линк для возврата после оплаты.Только для web2app `https URL-Based ссылка до 256 символов`
Параметры ответа (все параметры обязательные):
-
shopToken
- идентификатор магазина -
shopLogin
- идентификатор пользователя -
regPayNum
- номер платежа -
sign
- подпись запроса -
sbolDeepLink
- (обязательный для web2app, app2app Ссылка на переход в мобильное приложение "Сбербанк-Онлайн" для завершения оплаты.) `^([a-zA-Z0-9_]|-|:|/|\\.|&|\\?|=){1,1024}$` -
sbolBankInvoiceId
- (обязательный для app2app.Уникальный идентификатор заказа, сгенерированный Банком ) -
sberPayload
- `https URL-Based ссылка до 256 символов`(Обязательный для web2app Зарегистрированная ссылка оплата по QR от Сбербанка формата двухмерного QR-кода (ISO/IEC 18004-2015), представляемая в виде URL-Based.)
СБП
Пример запроса платежа
curl --location 'https://demo-api2.bisys.ru/api-shop/do/payment' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NWY4MmMxYWQtZTU0NS00NWM0LWIyYmMtMWNkODQ5ZTMyOTM1OjFlYjMwNTE1LTQ2ZWItNGQ0OS1hNWVjLTZjZWMwN2IwNWQyMA==' \
--data
{
"serviceCode": "18550-18552-1",
"amount": "8000",
"shopLogin": "true",
"login": "123456789",
"orderBestBefore": "1575362617720",
"comission": "0",
"payType": "sbp",
"properties": [
{
"name": "AGREEMENT_NUMBER",
"value": "1234444422"
},
{
"name": "COMPANY_ACCOUNT_NUMBER",
"value": "12345678901234567891"
},
{
"name": "SERICES_PAYMENT",
"value": "200"
},
{
"name": "CREDIT_AGREEMENT_NUMBER",
"value": "12345"
},
{
"name": "BANK_ACCOUNT_NUMBER",
"value": "12345678901234567891"
},
{
"name": "LOAN_ID",
"value": "1234567"
},
{
"name": "ACTUAL_PAYMENT",
"value": "100"
},
{
"name": "SURNAME",
"value": "Иванов"
},
{
"name": "FIRSTNAME",
"value": "Сергей"
},
{
"name": "PATRONYMIC",
"value": "Степанович"
},
{
"name": "TELEPHONE",
"value": "9504442314"
}
]
}
Пример ответа
{
"sign": "3AC08C44A6FD2BDAB0867CF98B0F66A3",
"userToken": "b32a1945-503c-4e94-abab-87461a3dbea9",
"shopToken": "5f82c1ad-e545-45c4-b2bc-1cd849e32935",
"regPayNum": "519796",
"payUrl": "https://qr.nspk.ru/AD10002IFESR6KOL88IPDACFE9BU0LTG",
"methodType": "QR",
"payUrlImg": "iVBORw0KGgoAAAANSUhEUgAAA+gAAAPoAQAAAABl2OlJAAADxElEQVR42u3dTW4iMRAGUKNZsOQIHIWj0UfjKBwhSxYonigg3P5rkZloJm1ebVi426+3pbI/QvyfFeh0Op1Op9PpdDqdTqfT6XQ6nU6n0+l0Op1Op9PpdDqdTqfT6XQ6nU6n0+l0Ov2b9bfQrmO51HrrcN8xhH2M185OezqdTqfT6XQ6nU4fT9+Uvdb1pn/U+22D7Y1IH3av0/zDrtlSnH8YnU6n0+l0Op1Op4+on+ZtV64fHs+eQ/j18TN9Prfp6Kn729LpdDqdTqfT6XT6K+r3Zm2bvfKh77IWj06n0+l0Op1Op9Pp1WzrcmvWzvOJ2L3Fu5Rv0el0Op1Op9PpdPqr6AtnCzMivRU6fdw3n2yk0+l0Op1Op9Pp9B+pL+RdbNJErGzWmkvfm7ZBp9PpdDqdTqfT6T9TX6g8HjA+bmlVc7T4haLT6XQ6nU6n0+n09euJuPTzLi6NFm9Wfz0Ro9PpdDqdTqfT6fRV6fdKoRbnRzzgrlxaqPNiqCCdTqfT6XQ6nU6nD6y3mrWqxcvqq99Mp9PpdDqdTqfT6evXW/etYtaRxTLvYmpksKdjhzH7D6zwbG4hnU6n0+l0Op1Op69KD9nDvYr9W1pZi7fLMTqdTqfT6XQ6nU4fT08TsVR5R1bVcZ7cnv/RVavodDqdTqfT6XQ6fVA97RPLoPVUidj1P6w6rEin0+l0Op1Op9Ppo+nVVawwT67Ir2LF+S2tKtQin4jR6XQ6nU6n0+l0+tD67JZW2azF2M0AzOPZ78T0aPEOnW6RTqfT6XQ6nU6n00fSQ2OfaliWV/VhU7vFo9PpdDqdTqfT6fTR9FC2XXnQ+qH8X+CqYpHB/qfJgXQ6nU6n0+l0Op2+Kj000tSXjx028y6OjQ0jnU6n0+l0Op1Opw+thyJN/T1bCuWxw/hMi0en0+l0Op1Op9Ppo+kLVV3gip28i2zs1Rqx0el0Op1Op9PpdPpQ+lunATt+rr6XBwh7fdx+ntxOp9PpdDqdTqfT6cPrm/KJa0vPhmVV7RsbXsKzaRt0Op1Op9PpdDqdvkb9VBLH/gWuaR5q0TtbeCjj2el0Op1Op9PpdDr9tfRqWPbWCVqf2sMyOp1Op9PpdDqdTn8VPTb+4ffaOluYtXihf4GLTqfT6XQ6nU6n04fSW2cLe0vhQXT02RyNTqfT6XQ6nU6n08fUnxt7pX2mxgHC1tnCZtHpdDqdTqfT6XT6+vV/XXQ6nU6n0+l0Op1Op9PpdDqdTqfT6XQ6nU6n0+l0Op1Op9PpdDqdTqfT6XQ6nb52/Tfgrydky7vxVAAAAABJRU5ErkJg"
}
Алгоритм для Магазин:
1. Создаем платеж с параметром payType и типом оплаты sbp
2. В ответе придут параметры payUrlImg QR код на оплату в Base64 и payurl где будет ссылка на оплату, для оплаты клиента можно перенаправить на ссылку пришедшей в параметре payurl либо показать qr-код пришедший в параметре payUrlImg
3. В ответ вы получите regpaynum c помощью которого вы сможете посмотреть статус платежа(см. подробнее Получение статуса платежа)
Запрос - POST
Метод запроса - /do/payment
Параметры запроса:
Параметр | Обязательный | Описание |
---|---|---|
serviceCode |
+ | код провайдера |
login |
+ | логин плательщика, по умолчанию - номер телефона 79XXXXXXXXX, с параметром shopLogin может принимать любые значения, входящие в regex: [0-9a-zA-z]{3,50} |
shopLogin |
+ | используется если Вы хотите использовать свой абстрактный логин Клиента, а не номер телефона, передать TRUE (по умолчанию FALSE) | amount |
+ | сумма платежа в копейках |
comission |
+ | комиссия платежа в копейках (при отсутствии комиссии передается 0) |
payType |
+ | способ оплаты подробнее в п. Параметр payType |
properties |
+ | массив реквизитов. |
orderBestBefore |
- | Время истечения срока жизни заказа в секундах. Подробнее |
Параметры ответа (все параметры обязательные):
-
shopToken
- идентификатор магазина -
userToken
- идентификатор пользователя -
regPayNum
- номер платежа -
methodType
- метод перехода по url для оплаты (GET/POST) -
payUrl
- url оплаты -
sign
- подпись запроса -
payUrlImg
- ссылка на qr-код
Рекуррентный платеж
Онлайн магазин, позволяющий сохранять данные карты, держать список карт по пользователю, проводить оплату из сохраненных карточных данных.
Алгоритм работы
Регистрация карты
Пример запроса на регистрацию карты
curl --location 'https://demo-api2.bisys.ru/api-shop/do/payment' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NWY4MmMxYWQtZTU0NS00NWM0LWIyYmMtMWNkODQ5ZTMyOTM1OjFlYjMwNTE1LTQ2ZWItNGQ0OS1hNWVjLTZjZWMwN2IwNWQyMA==' \
--data {
"serviceCode": "100-7462-1",
"amount": "100",
"comission": "0",
"shopLogin":"true",
"login": "1b172bc5-7474-4cd0-bf0e-9e7ea7ea1c23",
"pfPayLink": "true",
needRegCard" : "true",
"payTypeVisible":["card"],
"properties": [
{
"name": "N_ТЕЛЕФОНА",
"value": "9992233322"
}
]
}
Пример ответа
{
"sign": "DE71B534B913D0555E4AF4C3A2D5568B",
"userToken": "6b9de487-b04d-4383-92ee-73d18768dd5f",
"shopToken": "4eb6d7a4-8e41-4e33-8f37-8f84cbd8982b",
"regPayNum": null,
"payUrl": "https://demo-payframe.bisys.ru/?service=100-7462-1&amount=100&pf_pm=card&N_%D0%A2%D0%95%D0%9B%D0%95%D0%A4%D0%9E%D0%9D%D0%90=9992233322&amount_read_only=true&properties_read_only=true&start_pay_select=true&inv_sign=4eb6d7a4-8e41-4e33-8f37-8f84cbd8982b%7Cf44ecac83faf192c9945e4ea8a736c281ec1b8f62351a4a484b6ae7da1c80fbb%7Cv5%7Cinv%3A16123adf-8f83-419d-abe6-11cf98109848",
"methodType": "GET",
"payUrlImg": null
}
Метод регистрации карты не отличается от метода создания счета, в параметр servicecode cледует передать номер услуги 100-12865-1, сумму для холдирования можете передавать любую.Для регистрации карты необходимо передавать значение paytypevisible:["card"]
После подтверждения оплаты карта появится в списке и станет доступной для создания рекуррентных платежей, см. пункт Получение списка карт.
Для тестового соединения нужно использовать тестовую карту, см. пункт Тестовые, боевые данные
В ответ на запрос приходит номер платежа, url регистрации и способ перехода.
-
Метод запроса - POST
-
URL - /do/payment
Параметры запроса:
Параметр | Обязательный | Описание |
---|---|---|
serviceCode |
+ | уникальный код услуги |
amount |
+ | сумма платежа (указывается в копейках) |
comission |
+ | комиссия платежа (указывается в копейках), если комиссия не задана услугой - передается 0 |
shopLogin |
+ | используется если Вы хотите использовать свой абстрактный логин Клиента, а не номер телефона, передать TRUE (по умолчанию FALSE) |
login |
+ | логин плательщика, по умолчанию - номер телефона 79XXXXXXXXX, с параметром shopLogin может принимать любые значения, входящие в regex: [0-9a-zA-z]{3,50} |
payType |
- | способ оплаты |
needRegCard |
+ | необходим для привязки карты к пользователю после успешной оплаты |
paytypevisible |
+ | используется если необходимо скрыть или скорректировать очередность способов оплаты |
properties |
+ | массив реквизитов |
orderBestBefore |
- | Время истечения срока жизни заказа в секундах. Подробнее |
Параметры ответа (все параметры обязательные):
-
shopToken
- идентификатор магазина -
userToken
- идентификатор пользователя -
regPayNum
- номер платежа -
methodType
- метод перехода по url для оплаты (GET/POST) -
payUrl
- url оплаты -
sign
- подпись запроса
Получение списка привязанных банковских карт
Пример запроса списка привязанных банковских карт
curl --location 'https://demo-api2.bisys.ru/api-shop/ver3/get/cards' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NWY4MmMxYWQtZTU0NS00NWM0LWIyYmMtMWNkODQ5ZTMyOTM1OjFlYjMwNTE1LTQ2ZWItNGQ0OS1hNWVjLTZjZWMwN2IwNWQyMA==' \
--data {
"shopLogin":"true",
"login": "1b172bc5-7474-4cd0-bf0e-9e7ea7ea1c23"
}
Пример ответа
{
"userToken":"USER_TOKEN",
"cards":[{"cardMask":"123456******1234","cardToken":"CARD_TOKEN","cardType":"master_card","state":"active"}]
}
Запрос - POST
Метод - ver3/get/cards
Параметры запроса:
Параметр | Обязательность | Описание |
---|---|---|
login |
+ | логин плательщика, по умолчанию - номер телефона 79XXXXXXXXX, с параметром shopLogin может принимать любые значения, входящие в regex: [0-9a-zA-z]{3,50}) |
shoplogin |
+ | используется если Вы хотите использовать свой абстрактный логин Клиента, а не номер телефона, передать TRUE (по умолчанию FALSE)) |
Параметры ответа:
Параметр | Обязательность | Описание | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
sign |
+ | подпись | ||||||||||||||||||
userToken |
+ | уникальный идентификатор пользователя | ||||||||||||||||||
shopToken |
+ | токен Вашего магазина | ||||||||||||||||||
cards |
+ | список привязанных банковских карт | ||||||||||||||||||
|
Удаление привязанной карты
Пример запроса удаления привязанной банковской карты
curl --location 'https://demo-api2.bisys.ru/api-shop/ver2/create/refund/ask' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NWY4MmMxYWQtZTU0NS00NWM0LWIyYmMtMWNkODQ5ZTMyOTM1OjFlYjMwNTE1LTQ2ZWItNGQ0OS1hNWVjLTZjZWMwN2IwNWQyMA==' \
--data{
"shopLogin":"true",
"cardToken": "718d33b0-92f2-4f94-89b8-b9e9d7c7962e",
"login": "1b172bc5-7474-4cd0-bf0e-9e7ea7ea1c23"
}
Пример ответа
{
"resultState":"success",
"desc":"Success deactivate card with token(cardToken)",
"userToken":"USER_TOKEN"
"shopToken":"SHOP_TOKEN"
}
После получения success
на удаление карты, карта больше не будет активна на пользователе.
Чтобы вновь начать использовать эту же карту - необходимо повторно ее привязать, токен при этом изменится
Запрос - POST
Метод - /card/deactivation/
Параметры запроса:
Параметр | Обязательность | Описание |
---|---|---|
cardToken |
+ | идентификатор карты |
login |
+ | логин плательщика, по умолчанию - номер телефона 79XXXXXXXXX, с параметром shopLogin может принимать любые значения, входящие в regex: [0-9a-zA-z]{3,50} |
shopLogin |
+ | используется если Вы хотите использовать свой абстрактный логин Клиента, а не номер телефона, передать TRUE (по умолчанию FALSE) |
Параметры ответа:
Параметр | Обязательность | Описание |
---|---|---|
resultState |
+ | результат операции |
desс |
+ | описания результата операции |
userToken |
+ | уникальный идентификатор пользователя |
shopToken |
+ | токен Вашего магазина |
Создание рекуррентного платежа
Пример запроса создания рекуррентного платежа без 3ds
curl --location 'https://demo-api2.bisys.ru/api-shop/do/payment' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NWY4MmMxYWQtZTU0NS00NWM0LWIyYmMtMWNkODQ5ZTMyOTM1OjFlYjMwNTE1LTQ2ZWItNGQ0OS1hNWVjLTZjZWMwN2IwNWQyMA==' \
--data {
"serviceCode": "18550-18552-1",
"amount": "8000",
"shopLogin": "true",
"login": "123456789",
"orderBestBefore": "1575362617720",
"cardToken": "48a8f636-58db-4ef6-a66e-e51cd390408e",
"comission": "0",
"properties": [
{
"name": "AGREEMENT_NUMBER",
"value": "1234444422"
},
{
"name": "COMPANY_ACCOUNT_NUMBER",
"value": "12345678901234567891"
},
{
"name": "SERICES_PAYMENT",
"value": "200"
},
{
"name": "CREDIT_AGREEMENT_NUMBER",
"value": "12345"
},
{
"name": "BANK_ACCOUNT_NUMBER",
"value": "12345678901234567891"
},
{
"name": "LOAN_ID",
"value": "1234567"
},
{
"name": "ACTUAL_PAYMENT",
"value": "100"
},
{
"name": "SURNAME",
"value": "Иванов"
},
{
"name": "FIRSTNAME",
"value": "Сергей"
},
{
"name": "PATRONYMIC",
"value": "Степанович"
},
{
"name": "TELEPHONE",
"value": "9504442314"
}
]
}
Пример ответа
{
"sign": "736856F096B0D8E7C3383C7473E0942D",
"userToken": "b32a1945-503c-4e94-abab-87461a3dbea9",
"shopToken": "5f82c1ad-e545-45c4-b2bc-1cd849e32935",
"regPayNum": "13308162",
"payUrl": "https://demo.bisys.ru/ticket/TzctVrmb-ZXOFVe4nweN1YaIkikRkvZeLyI1zgT_jYVJWIedkiSLYdndVEVqs3wJ?shop_token=5f82c1ad-e545-45c4-b2bc-1cd849e32935",
"methodType": "GET",
"payUrlImg": null
}
Пример запроса создания рекуррентного платежа c 3ds
curl --location 'https://demo-api2.bisys.ru/api-shop/do/payment' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic NWY4MmMxYWQtZTU0NS00NWM0LWIyYmMtMWNkODQ5ZTMyOTM1OjFlYjMwNTE1LTQ2ZWItNGQ0OS1hNWVjLTZjZWMwN2IwNWQyMA==' \
--data{
"serviceCode": "18550-18552-1",
"amount": "8000",
"shopLogin": "true",
"login": "123456789",
"orderBestBefore": "1575362617720",
"cardToken": "48a8f636-58db-4ef6-a66e-e51cd390408e",
"comission": "0",
"enableSMSConfirm": "true",
"properties": [
{
"name": "AGREEMENT_NUMBER",
"value": "1234444422"
},
{
"name": "COMPANY_ACCOUNT_NUMBER",
"value": "12345678901234567891"
},
{
"name": "SERICES_PAYMENT",
"value": "200"
},
{
"name": "CREDIT_AGREEMENT_NUMBER",
"value": "12345"
},
{
"name": "BANK_ACCOUNT_NUMBER",
"value": "12345678901234567891"
},
{
"name": "LOAN_ID",
"value": "1234567"
},
{
"name": "ACTUAL_PAYMENT",
"value": "100"
},
{
"name": "SURNAME",
"value": "Иванов"
},
{
"name": "FIRSTNAME",
"value": "Сергей"
},
{
"name": "PATRONYMIC",
"value": "Степанович"
},
{
"name": "TELEPHONE",
"value": "9504442314"
}
]
}'
Пример ответа
{
"sign": "5F91002BFE4E8E5EA7203BCDEA3C146B",
"message": "For recurrent need pass 3ds",
"userMessage": "Необходимо ввести 3ds код",
"code": 2365,
"regPayNum": "13308194",
"securePageURL": "https://acq-demo.bisys.ru/secure/redirect/e0f77fc7-9260-42a1-9f13-cbb544c5555c"
}
В ответе на запрос рекуррентного платежа Вы получите ссылку на чек
Запрос - POST
Метод запроса - /do/payment
Параметры запроса:
Параметр | Обязательный | Описание |
---|---|---|
serviceCode |
+ | код провайдера |
login |
+ | логин плательщика, по умолчанию - номер телефона 79XXXXXXXXX, с параметром shopLogin может принимать любые значения, входящие в regex: [0-9a-zA-z]{3,50} |
shoplogin |
+ | идентификатор пользователя |
amount |
+ | сумма платежа в копейках |
comission |
+ | комиссия платежа в копейках (при отсутствии комиссии передается 0) |
cardToken |
- | идентификатор карты (для рекуррентного платежа) |
clientAuInfo |
+ | Параметры браузера для прохождения 3ds v2. Подробнее |
properties |
+ | массив реквизитов. |
orderBestBefore |
- | Время истечения срока жизни заказа в секундах. Подробнее |
Параметры ответа (все параметры обязательные):
-
shopToken
- идентификатор магазина -
shopLogin
- идентификатор пользователя -
regPayNum
- номер платежа -
payUrl
- ссылка на информационный чек -
sign
- подпись запроса
Возврат платежа
Пример запроса возврата платежа
curl --location 'https://tst2.autopays.ru/api-shop/ver2/create/refund/ask' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic MWRkYzM5YzgtN2NmOC00NzgyLWJmM2UtZTdkOWU4OGI0NjE0OmE4MjRjMGRhLTA2NzAtNGM5ZC1iZGI1LTU0ZmUyODAzNmU0ZQ==' \
--data ''{
"regPayNum": "131009063835",
"note": "ref test",
"refundAmount": "8000",
"remainingAmount": "0"
}''
Пример ответа
{
"sign": "408CCF81277FFB470EFC0CEF4416459F",
"resultState": "success",
"desc": "Success created refund ask, please wait execution",
"shopToken": "a4725b61-94b2-47a6-a8ed-281187ae5c8c"
}
Данный метод позволят совершить возврат или частичный возврат денежных средств, после перехода платежа в статус processed.
Осуществить возврат возможно только с помощью параметра regPayNum,если вы сделали оплату по инвойсу, то необходимо сначала узнать статус платежа для получения regPayNum
Запрос - POST
Метод - ver2/create/refund/ask
Параметры запроса
Параметр | Обязательность | Описание |
---|---|---|
regPayNum |
+ | Номер платежа |
note |
+ | Причина возврата |
refundAmount |
+ | Возвращаемая сумма |
refundAmount |
+ | Сумма остатка |
Параметры ответа
Параметр | Обязательность | Описание |
---|---|---|
resultState |
+ | Результат |
desc |
+ | Описание ответа |
shopToken |
+ | Токен Вашего магазина |
Получение статуса платежа для рекуррентного платежа, СБП , сберпей
Пример запроса статуса платежа
curl --location 'https://tst2.autopays.ru/api-shop/rs/shop/check/payment/state' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic MWRkYzM5YzgtN2NmOC00NzgyLWJmM2UtZTdkOWU4OGI0NjE0OmE4MjRjMGRhLTA2NzAtNGM5ZC1iZGI1LTU0ZmUyODAzNmU0ZQ==' \
--data '{
"regPayNum": "10009438"
}'
Пример ответа
{
"sign": "977341472EE62E6328D865D4C085E21C",
"state": "processed",
"totalAmount": 2000,
"createdDate": "2024-04-03 16:49:06",
"providerServCode": "100-12865-1",
"providerName": "test",
"errorCode": null,
"error": null,
"message": null,
"provisionServices": false,
"procDate": null
}
}
-
URL - /check/payment/state
При оплате рекуррентом с обязательным вводом 3ds в ответе будет получено исключение:NeedPass3dsException
Для прохождения 3ds проверки необходимо перенаправить пользователя по ссылке в параметре securePageURL
методом GET
Параметры запроса
-
regPayNum*
- номер платежа (выдается после успешного создания платежа)
Обязательные Параметры ответа:
-
state
- статус платежа (не указывается для анонимных платежей). -
totalAmount
- сумма платежа в копейках -
createdDate
- время создания платежа (Время должно быть в формате: yyyy-mm-dd hh:mm:ss) -
providerServCode
- уникальный код провайдера услуг -
providerName
- название провайдера услуг -
errorCode
- код ошибки, используется для локализации проблемы.
Необязательные параметры ответа:
-
error
- текст ошибки (используется для локализации проблемы, не должно выдаваться пользователю) -
message
- сообщение пользователю (ошибка, ее интерпретация, объяснение и т.п.) -
provisionServices
- флаг, была ли оказана услуга (true или false) -
procDate
- время проведения платежа (некоторые платежи могут проводиться с задержкой по времени до нескольких минут) Время должно быть в формате: yyyy-mm-dd hh:mm:ss
Разбор ошибок
Ошибки, сигнализирующие о том, что необходимо заново регистрировать карту:
-
code:112 {"message":"Unknown card","userMessage":"Необходимо заново зарегистрировать карту","code":112}
-
code:116 {"message":"Card record expired":"Необходимо заново зарегистрировать карту","code":116}
-
code:117 {"message":"Unknown card","userMessage":"Необходимо заново зарегистрировать карту","code":117}
-
code:203 {"message":"Card expired","userMessage":"Действие карты истекло","code":203}
-
code:204 {"message":"Channel card declined","userMessage":"Карта в стоп-листе","code":204}
-
code:206 {"message":"Card locked","userMessage":"Карта заблокирована","code":206}
Ошибки, связанные со сложностями в авторизации:
-
code:2001 {"message":"Incorrect request param {0}","userMessage":"Некорректный параметр запроса {0}","code":2001}
-
code:2700 {"message":"Incorrect signature","userMessage":"Некорректная подпись","code":2700}
-
code 2701 {"message":"Unknown shop token","userMessage":"Неизвестный идентификатор магазина","code":2701}
-
code 2703 {"message":"User not registered for shop","userMessage":"Пользователь не зарегистрирован для данного магазина","code":2703}
-
code 2709 {"message":"Merchant not registered for shop","userMessage":"Мерчант не зарегистрирован для магазина","code":2709}
Не удалось получить список услуг:
-
code 1263 {"message":"Can't pay for number","userMessage":"Невозможно оплатить данный номер","code":1263}
Сложности с регистрацией:
-
code 1951 {"message":"Can't create new user","userMessage":"Не удалось зарегистрировать нового пользователя","code":1951}
-
code 2751 {"message":"Invalid user login","userMessage":"Некорректный логин","code":2751}
Сложности с активацией:
-
code 2350 {"message":"Activate card error","userMessage":"Ошибка привязки карты","code":2350}
-
code 2356 {"message":"Incorrect sms code","userMessage":"Неверный SMS код","code":2356}
-
code 2600 {"message":"SMS to number {0} already sent","userMessage":"Отправили СМС на номер {0}","code":2600, "canSendNewSMSThrough":60000}.
canSendNewSMSThrough
- время в милисекундах до следущей попытки отправить SMS
Проблемы со статусом платежа:
-
code 2365 {"message":"For recurrent need pass 3ds":"Необходимо ввести 3ds код","code":2365,"regPayNum":"1234567890","securePageURL":"https://ya.ru"}
-
code 2704 {"message":"User not owned payment","userMessage":"Платеж не принадлежит пользователю","code":2704}
-
code 2705 {"message":"Shop not owned payment","userMessage":"Платеж не принадлежит магазину","code":2705}
-
code 2366 {"message":"Recurrent 3ds not support", "userMessage":"Невозможно ввести 3ds код", "code":2366}
Данная ошибка возвращается если возникла необходимость в вводе 3ds кода, когда этого не ожидалось
Трудности в создании платежа:
-
code 1295 {"message":"Can't create payment, please try later","userMessage":"В данный момент принять платеж невозможно, попробуйте позже","code":1295}
-
code 2354 {"message":"Create recurrent payment error. Try other car","userMessage":"Ошибка проведения платежа. Попробуйте другую карту"}
-
code 2360 {"message":"Can't create recurrent payment","userMessage":"Мы сожалеем, но вы не можете совершить этот платеж привязанной картой из соображений вашей безопасности"}
Общее:
-
code:1300 {"message":"Provider not found","userMessage":"Оператор не найден","code":1300}
-
code:2702 {"message":"Provider forbidden for shop","userMessage":"Поставщик запрещен для данного магазина","code":2702}
-
code:2706 {"message":"Incorrect user state:{0}","userMessage":"Некорректное состояние пользователя","code":2706}
-
code:1262 {"message":"Unknown error, try later","userMessage":"Непредвиденная ошибка, попробуйте позже","code":1262}
Коды ошибок проводки платежа
-
101:
System Error - Системная ошибка. Обратитесь к эквайеру -
102:
Temporary Error - Временный отказ -
103:
BankInteraction Error - Ошибка взаимодействия с банком -
104:
Antifraud blocked - Операция отклонена антифродом банка -
105:
Unsupported Security Action - Запрошен 3DS для операции, в которой его использование невозможно -
106:
Unexpected Bank Response - Неожиданный ответ банка -
107:
AcqAccess Denied - Магазину доступ запрещен -
108:
AcqIncorrect Data - Не известный тип заказа, номер заказа и т.п. -
109:
Parallel Processing - Попытка параллельной оплаты -
110:
Processing Error - Ошибка, связанная с обработкой конкретного заказа -
111:
Auth Failed - Ошибки авторизации запроса (подпись, токен и т.п.) -
112:
Unknown Card - Неизвестная карта. Необходимо заново зарегистрировать карту -
113:
Unknown Order - Неизвестный заказ -
201:
Transaction declined by acquirer, Transaction Declined - Эквайер отклонил транзакцию -
202:
Security check failed - Эквайер отклонил транзакцию, Не пройдена проверка безопасности -
203:
Card expired - Действие карты истекло -
204:
Transaction declined by issuer, Card Declined - Банк отклонил транзакцию -
205:
Channel Insufficient Funds - Недостаточно средств -
206:
Insufficient funds - Карта заблокирована -
207:
Not Permitted - Эквайер отклонил транзакцию -
208:
Temporary Decline - Эквайер временно отклонил транзакцию -
209:
3DS Failed - Ошибка при выполнении аутентификации 3-D Secure, Эквайер отклонил транзакцию -
210:
Card not found - Карта недействительна, либо карта с указанным токеном не найдена -
211:
Transaction error - Транзакция отклонена эквайером -
212:
Card incorrect data - Проблемы с картой, карточными данными. Неверно указаны данные карты (например, CVV2/CVC2) -
213:
Card too often - Превышен установленный лимит на количество операций за отведенный период.Превышен установленный лимит на количество или общую сумму операций за отведенный период. -
214:
Limit settled - Превышен установленный лимит на общую сумму операций за отведенный период.Превышен установленный лимит на количество или общую сумму операций за отведенный период. -
217:
Declined by client - Аутентификация отклонена клиентским устройством.
Общие ошибки:
-
1295
:CreatePaymentFailed - Не удалось создать платеж -
2354
:CreateRecurrentFailed - Не удалось создать рекуррентный платеж -
2715
:Access to {0} API denied{1} - Доступ запрещен