Введение
Мы предполагаем, что если вы здесь, значит, вы зарегистрировались в личном кабинете, пообщались с нашим отделом продаж, определились с типом взаимодействия с нами и готовы перейти к тестированию боевых, либо тестовых параметров. Получили сертификат, токен и готовы продолжить.
Что дальше:
- Подключите свое ПО к нашей демо-зоне
- Проведите несколько тестовых платежей
- Выводите свое ПО в боевой режим
Основные понятия
Рекуррентный платеж - платеж, созданный по ранее сохраненным данным банковской карты.
Поставщик услуг (Принципал, ПУ, провайдер услуг) - юридическое лицо или индивидуальный предприниматель, получающие денежные средства Плательщика за реализуемые Поставщиком Услуги, а также органы государственной власти и местного самоуправления, бюджетные учреждения, получающие денежные средства Плательщика в рамках выполнения ими функций, установленных законодательством РФ.
Общество - юридическое лицо, действующее по поручению Поставщика, являющееся посредником между Поставщиком и конечным потребителем услуги (Плательщиком).
Банк - эмитент - банк, выпускающий в обращение (эмитирующий) денежные знаки или ценные бумаги и платёжно-расчётные документы (банковские карты, чековые книжки). В нашем случае, говоря простыми словами, это банк, имеющий доступ к денежным средствам на счете клиента.
Интернет эквайринг - технология, позволяющая принимать к оплате банковские карты, виртуальные карты и электронные кошельки.
Агрегатор - компании, предоставляющие программное обеспечение Поставщикам Услуг. Фактически, интеграция происходит в программном обеспечении Агрегатора.
Технолог - разработчик программного обеспечения, который имеет собственный процессинг и предоставляет собственную инфраструктуру клиенту.
Процессинг - это деятельность по обработке информации, используемой при совершении платёжных операций. Такую деятельность осуществляют процессинговые центры.
ОП - отдел продаж
Процесс интеграции
Общие требования:
-
Мы работаем по типу подключения
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.ipsp.kz/api-shop
-
ServCode
,shopToken
,secKey
будут высланы письмом техническому специалисту
Тестовые карты
Вы можете проверить сценарий оплаты банковскими картами разных типов с разными результатами:
pan (номер карты) | срок | CVV | ожидаемый результат | RC | Платёжная система | Актуальная |
---|---|---|---|---|---|---|
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 | Да |
6011 0000 0000 0004 | 12/24 | 123 | Успех с 3ds 12345678 | 00 | MAESTRO | Да |
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.ipsp.kz/api-shop/rs/shop
-
ServCode
,shopToken
,secKey
будут высланы письмом техническому специалисту
Платеж с 3ds
Некоторые рекуррентные платежи невозможны без данной технологии.
При этом будет сгенерировано исключение NeedPass3dsException
(смотри код 2365 в разделе Разбор ошибок), которое содержит номер платежа regPayNum
и securePageURL
(URL -
тот, на который необходимо перенаправить пользователя для прохождения 3ds методом GET)
Ислючение может быть получено на этапе создания рекуррента (описан в разделе "создание платежа"), а так же на этапе проверки статуса платежа (описан в разделе "Получение статуса платежа")
Параметр enableSMSConfirm
-
false
- включен по умолчанию -
true
Используется только для рекуррентных платежей
Данный параметр определяет включать ли поддержку 3ds
Задается при Создании платежа
При необходимости пройти 3ds, будет сгенерировано исключение: CreatePaymentException
(код 1295), либо CantDoRecurrent
(код 2360) в разделе разбор ошибок
При необходимости пройти 3ds платёж будет создан. При проверке статуса) данного платежа будет сгенерировано исключение NeedPass3dsException
(код 2365)
В параметре securePageURL
будет передана ссылка на прохождение 3дс, перенаправьте по ней клиента вызовом метода GET
Параметр payType
Создан для того, чтоб указать тип оплаты в запросах. Возможные значения поля:
-
сard - оплата картой (установлен по умолчанию), вместе с ним обязателен параметр
cardToken
Параметр orderBestBefore
Данным параметром можно передать время истечения жизни заказа (в секундах). Время, до которого нужно оплатить заказ.
Значение параметра - абсолютная дата UTC, в секундах (сформировать абсолютную дату). Например:
-
1574934178
-
UTC Thu Nov 28 2019 09:42:58
-
PERM UTC+5 Thu Nov 28 2019 14:42:58
Параметр 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 полученного от клиента. Необходим для реккурентов некоторых банков.
Параметр orderNote
В параметре orderNote
передаются дополнительные данные, которые будут отображаться на платёжной форме.
Доп. справочное поле для пользователя.
Применимо только для методов, когда используется форма для ввода данных карты: Создание платежа, анонимного платежа, Cоздание рекуррентного платежа с типом оплаты картой ("payType":"card"
) и без заполненного параметра cardToken
Описание:
orderNote
- тип строка, 3-50 символов, допустимые символы - латинские буквы, кириллица, знаки -+.,:;()_
В параметре также есть возможность передачи валюты. Для этого необходимо указать валюту в кодировке ISO 4217 (буквенной). На форме ввода данных карты валюта в кодировке ISO 4217 будет показа символьным эквивалентом. Передавать в параметр валюту необходимо в таком виде _RUB_
Список допустимых валют:
Буквенный код | Цифровой код | Валюта | Разменная валюта | Символ |
---|---|---|---|---|
RUB | 643 | российский рубль | копейки (1⁄100) | ₽ |
KZT | 398 | тенге, Казахстан | тиын(1⁄100) | 〒 |
USD | 840 | американский бакс | цент (1⁄100) | $ |
EUR | 978 | ойро | евроцент (1⁄100) | € |
GPB | 826 | фунт, Великобритания | пе́нни (1⁄100) | £ |
KGS | 417 | сом, Киргизия | тыйын (1⁄100) | с • |
UZS | 860 | сум, узбекский | тийин (1⁄100) | So'm |
AZN | 944 | азербайджанский манат | гяпик (1⁄100) | ₼ |
GEL | 981 | лари, Грузия | тетри (1⁄100) | ₾ |
TRY | 949 | турецкая лира | куруш (1⁄100) | ₺ |
CNY | 156 | юань | фынь (1⁄100) | ¥ |
AMD | 051 | армянский драм | лума (1⁄100) | ֏ |
Статусы платежей
Платеж - последовательная сущность. Он линейно переходит из одного статуса в другой. Если что-то пошло не так, есть альтернативный набор статусов, сигнализирующий о неуспешности оплаты.
Cтатусы c неуспешным результатом (платеж не достиг состояния "оплачен"):
-
created_error
- ошибка при создании платежа -
created
- платеж создан, но не оплачен -
rejected
- платеж отменен (если оплачивает не рекуррент, то возможен переход в статусpayed
, например, при повторном вводе данных карты) -
refunded
- оплата возвращена -
payed
- платеж оплачен. Статус присваивается когда в банк-эквайер отправлен запрос на перевод денежных средств и банк-эквайер принял этот запрос для исполнения. Может смениться на error, если при переводе денежных средств возникнет ошибка. -
holded
- денежные средства заморожены -
processed
- - платеж оплачен и успешно проведен. Не может смениться, т.к. транзакция уже завершена. -
error
- ошибка при проведении (платеж оплачен, но при проведении платежа возникла ошибка)
Платеж оплачен и ожидает исполнения (можно оказывать услугу):
Получение статуса платежа
Пример запроса статуса платежа
{
"regPayNum":"1310958041"
}
Пример ответа
{
'errorCode':'1001',
'provisionServices':'true',
totalAmount':'100000',
'serviceCode':'serviceCode',
'providerName':'providerName',
'state':'payed',
'createdDate':'2012-10-06 03:02:01',
'error':'error',
'message':'message',
'procDate':'2015-01-05 12:14:18'
}
{ " "state":"holded", "totalAmount":2575, "createdDate":"2020-05-29 14:11:21", "providerServCode":"1000-13864-3", "providerName":"Тест ShopAPI", "errorCode":null, "error":null, "message":null, "provisionServices":false, "procDate":null }
Отправляется несколько попыток с нарастающим интервалом
Наш API позволяет отправлять повторные уведомления для одного платежа, в таких случаях ожидается успешный ответ
- Метод запроса - POST. От нас до вашего сервера
-
URL - https://api2.ipsp.kz/api-shop/rs/shop/check/payment/state
При оплате рекуррентом с обязательным вводом 3ds в ответе будет получено исключение:NeedPass3dsException
(смотри код 2365 в разделе Разбор ошибок)
Для прохождения 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
Уведомление об оплате
Пример запроса
{
"regPayNum":"1310958041",
"amount":"100000",
"comission":"1000",
"state":"payed"
}
Пример ответа
Ожидается любой ответ со статусом "200"
- Метод запроса - POST. От нас до вашего сервера.
-
URL: ваш
{cb url}
. Например:https://site.ru/pay
По умолчанию отправляются только успешные платежи
При неуспешном создании платежа уведомление не отправляется
С нашеё стороны отправляется POST запросы с нарастающим интервалом
Ожидается любой ответ с http - статусом 200
Параметры запроса:
Параметр | Обязательный | Описание |
---|---|---|
regPayNum |
+ | номер платежа в нашей системе |
amount |
+ | сумма платежа в копейках |
comission |
+ | сумма комиссии в копейках |
state |
+ | статус платежа. Подробнее |
errorCode |
- | код ошибки |
errorMsg |
- | текст ошибки |
Возврат платежа
Пример запроса
{
"regPayNum": "13693892457",
"note": "test",
"refundAmount": "2400",
"remainingAmount": "225"
}
С помощью данного метода можно можно отправлять заявки на возврат и частичный возврат. Метод доступен только для Магазин. Рекуррентный платёж или Магазин. Анонимный платеж.
-
Тип запроса -
POST
-
URL -
ver2/create/refund/ask
Параметры запроса(все обязательные):
-
regPayNum
- номер платежа -
note
- причина возврата -
refundAmount
- сумма возврата в копейках -
remainingAmount
- остаток платежа (сумма платежа минус сумма возврата в копейках)
Параметры ответа(все обязательные):
-
resultState
- результат (success - успех, fail - неудача), -
desc
- описание (пояснение) -
userToken
- идентификатор пользователя
Магазин. Анонимный платеж
Онлайн магазин, в котором принимается к оплате банковская карта.
Под "Анонимным" платежом предполагается платеж без сохраненных ранее данных по банковской карте.
Алгоритм работы
Создание анонимного платежа
Пример запроса на создание анонимного платежа
{
"serviceCode":"109-5804-1",
"amount":450,
"comission":13300,
"payType":"card",
"clientType":"web",
"userPhone":"79020000000",
"userEmail":"ana@mi.ru",
"properties":
[
{"name":"Л/СЧЕТ","value":"9503006477"},
{"name":"ФИО","value":"Иванов Н П"},
{"name":"АДРЕС","value":"Ленина 10"},
{"name":"МЕСЯЦ","value":"05.2015"},
{"name":"СУММА_ПЕНИ","value":"10000"}
],
"orderItems":
[
{"num":1,"name":"name1","quantity":2,"price":100,"tax":"vat0"},
{"num":2,"name":"name2","quantity":5,"price":50,"tax":"vat110"}
]
}
Пример ответа
{
'regPayNum':'1234567890',
'methodType':'GET',
'payUrl':'https://ipsp.kz/payment/#!search_payment',
'userToken':'USER_TOKEN'
}
Метод вызывается после успешной проверки на возможность создания платежа.
В ответ приходит номер платежа, URL
и способ перехода.
-
Метод запроса - POST
-
URL: /do/payment/anonymous
Параметры запроса:
Параметр | Обязательный | Описание |
---|---|---|
serviceCode |
+ | код провайдера |
amount |
+ | сумма платежа в копейках (сумма которая идет на счет пользователю) |
comission |
+ | комиссия платежа в копейках (если нет комиссии - передается 0) |
payType |
- | способ оплаты Функция payType |
clientType |
- | тип клиента* |
userPhone |
- | Номер телефона пользователя(для СМС платежа), с которого будет произведена полата |
orderBestBefore |
- | Время истечения срока жизни заказа в секундах. Подробнее |
properties |
+ | массив реквизитов** |
orderNote |
- | Доп. справочное поле для пользователя. Подробнее |
Параметры ответа (все обязательные):
-
regPayNum
- номер платежа -
methodType
- метод перехода по url для оплаты (GET/POST) -
payUrl
url для перехода к оплате
Магазин. Рекуррентный платеж
Онлайн магазин, позволяющий сохранять данные карты, держать список карт по пользователю, проводить оплату из сохраненных карточных данных.
Алгоритм работы
Регистрация пользователя
Пример запроса на регистрацию пользователя
{
"login":"Login",
"email":"Email",
"name":"Name",
"surName":"SurName",
"middleName":"MiddleName"
}
-
Метод запроса - POST
-
URL - /user/registration
Параметры запроса:
Параметр | Обязательный | Описание |
---|---|---|
login |
+ | номер телефона с кодом, но без '+', например - 79020000000. |
email |
- | e-mail (на него отправляются чеки после оплаты) |
name |
- | имя |
surName |
- | фамилия |
middleName |
- | отчество |
Параметры ответа:
Параметр | Обязательный | Описание |
---|---|---|
login |
+ | номер телефона с кодом, но без '+', например - 79020000000. |
email |
- | e-mail (на него отправляются чеки после оплаты) |
name |
- | имя |
surName |
- | фамилия |
middleName |
- | отчество |
state |
+ | статус. Более подробно - Статус пользователя |
userToken |
+ | идентификатор пользователя |
Статус пользователя
Пример запроса статуса пользователя
{
"login":"79150000000"
}
Пример ответа
{
"state":"active",
"login":"getLogin()",
"email":"getEmail()",
"name":"getName()",
"surName":"getSurName()",
"middleName":"getMiddleName()"
,"userToken":"USER_TOKEN"
}
Если пользователь не зарегистрирован, то будет сгенерировано исключение UserNotRegisteredForShop
(см. Разбор ошибок)
-
Метод запроса - POST
-
URL - /user/status
Параметры запроса (все параметры обязательные):
-
login
- номер телефона с кодом, но без '+', например - 79020000000.
Параметры ответа:
Параметр | Обязательный | Описание |
---|---|---|
login |
+ | номер телефона |
email |
- | name |
- | имя |
surName |
- | фамилия |
middleName |
- | отчество |
state |
+ | статус* |
userToken |
+ | идентификатор пользователя |
Регистрация карты
Пример запроса на регистрацию карты
{
"userToken":"USER_TOKEN",
"clientType":"web"
}
Во время регистрации карты будет списано до 5 тенге, после добавления карты деньги будут возвращены
После подтверждения оплаты карта появится в списке и станет доступной для создания рекуррентных платежей, см. пункт Получение списка карт.
Для тестового соединения нужно использовать тестовую карту, см. пункт Тестовые, боевые данные
В ответ на запрос приходит номер платежа, url регистрации и способ перехода.
-
Метод запроса - POST
-
URL - /card/registration
Параметры запроса:
Параметр | Обязательный | Описание |
---|---|---|
clientType |
- | тип клиента* |
userToken |
+ | идентификатор пользователя |
Параметры ответа (все параметры обязательные):
-
userToken
- идентификатор пользователя -
regPayNum
- номер платежа -
methodType
- метод перехода по url для оплаты (GET/POST) -
payUrl
- url оплаты
Получение списка карт
Пример запроса списка карт
{
"userToken":"USER_TOKEN"
}
{ "userToken":"cc507cb4-fe90-4cb4-af75-37b9b5b41387" "cards": [{ "cardMask":"400000******0002", "cardToken":"ae7f3942-4e7c-44d3-9ab9-8c84d118b5ed", "cardType":"visa", "state":"active" }] }
Для того что бы карта появилась в списке нужно произвести регистрацию карты см. пункт Регистрация карты
-
Метод запроса - POST
-
URL - /get/cards
Параметры запроса (все параметры обязательные):
-
userToken
- идентификатор пользователя
Параметры ответа (все параметры обязательные):
-
userToken
- идентификатор пользователя -
cards
- список карт -
cardMask
- маскированый номер карты -
cardToken
- токен карты (используется для создания рекуррентного платежа, и активации карты) -
cardType
- тип карты* -
state
- статус карты**
Данные в переменной cards
:
Деактивация/удаление карты
Пример запроса удаления карты
{
"userToken":"USER_TOKEN",
"cardToken":"CARD_TOKEN"
}
Пример ответа
{
"resultState":"success",
"desc":"descSuccess",
"userToken":"USER_TOKEN"
}
После исполнения запроса состояние карты становится inactive
и карта будет недоступна для оплаты (необходимо будет провести повторную привязку карты, см пункт Регистрация карты
-
Метод запроса - POST
-
URL - /card/deactivation/
Параметры запроса (все параметры обязательные):
-
userToken
- идентификатор пользователя -
cardToken
- идентификатор карты
Параметры ответа (все параметры обязательные):
-
resultState
- результат -
success
- успех -
fail
- неудача -
desc
- описание (пояснение) -
userToken
- идентификатор пользователя
Возможные значения для resultState
:
Cоздание рекуррентного платежа
Пример запроса создания рекуррентного платежа
{
"cardToken":"CARD_TOKEN",
"value":"10000",
"clientType":"web",
"payType":"card",
"properties":
[
{"name":"Л/СЧЕТ","value":"9503006477"},
{"name":"ФИО","value":"Иванов Н П"},
{"name":"АДРЕС","value":"Ленина10"},
{"name":"МЕСЯЦ","value":"05.2015"},
{"name":"СУММА_ПЕНИ","value":"10000"}
],
"orderItems":
[
{"num":1,"name":"name1","quantity":2,"price":100,"tax":"vat0"},
{"num":2,"name":"name2","quantity":5,"price":50,"tax":"vat110"}
],
"serviceCode":"109-5804-1",
"userToken":"USER_TOKEN",
"amount":"10000",
"comission":"13300"
}
Пример ответа
{
'regPayNum':'1234567890',
'methodType':'GET',
'payUrl':'https://ipsp.kz/payment/#!search_payment',
'userToken':'USER_TOKEN'
}
В ответ приходит номер платежа, url для оплаты и способ перехода.
При рекурентном платеже - url со ссылкой на чек.
-
Метод запроса - POST
-
URL - /do/payment
Параметры запроса:
Параметр | Обязательный | Описание |
---|---|---|
serviceCode |
+ | код провайдера |
userToken |
+ | идентификатор пользователя | amount |
+ | сумма платежа в копейках, которая идет на счет пользователю |
comission |
+ | комиссия платежа в копейках (при отсутствии комиссии передается 0) |
cardToken |
- | идентификатор карты (для рекуррентного платежа), см. пункт Получение списка карт |
enableSMSConfirm |
- | более подробно: EnableSMScnfirm |
payType |
- | способ оплаты подробнее в п. Параметр payType |
clientType |
- | более подробно в п. Создание анонимного платежа |
orderBestBefore |
- | Время истечения срока жизни заказа в секундах. Подробнее |
properties |
+ | массив реквизитов. Более подробно в п. Создание анонимного платежа |
orderNote |
- | Доп. справочное поле для пользователя. Подробнее |
Параметры ответа (все параметры обязательные):
-
userToken
- идентификатор пользователя -
regPayNum
- номер платежа -
methodType
- метод перехода по url для оплаты (GET/POST) -
payUrl
- url оплаты
Уведомление о регистрации карты
Пример запроса создания уведомления
{
"userToken":"USER_TOKEN",
"cardMask":"546949******9929",
"cardToken":"77a3adeb-1f50-400a-88a9-7127dc9ea9f3",
"cardType":"master_card"
}
-
URL: {cb url}/card-reg
Параметры запроса:
Параметр | Обязательный | Описание |
---|---|---|
userToken |
+ | идентификатор пользователя |
cardToken |
+ | токен карты |
cardMask |
+ | маскированый номер карты |
cardType |
+ | тип карты. Подробнее см. п. Получение списка карт |
В ответ ожидается любой ответ со статусом 200
Разбор ошибок
Ошибки, сигнализирующие о том, что необходимо заново регистрировать карту:
-
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 кода, когда этого не ожидалось
Например, в создании платежа, где в параметре
enableSMSConfirm
указаноfalse
, но банк-эмитент карты клиента запросил ввод кода 3dsРекомендуем в данном случае повторно создать платеж с указанием параметра
enableSMSConfirm
на значениеtrue
ПодробнеПример реализации сценария оплаты с вводом кода 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} - Доступ запрещен