Приложения


Приложение 1. Формат payload

В СБП используется формат двухмерного кода QR Code (ISO/IEC 18 004--2015).

Payload QR-кода может быть представлен в двух вариантах:

  1. Короткий вариант Payload: https://HOST/QR_ID

  2. Длинный вариант Payload: https://HOST/QR_ID?type=QR_TYPE&bank=MEMBER_ID&sum=SUM&cur=CUR&crc=CRC

Описание параметров URL-based payload:

ПараметрОписаниеrequiredФормат
HOST

qr.nspk.ru — для QR_TYPE = 01 и 02

sub.nspk.ru — для QR_TYPE = 03

yString
QR_IDИдентификатор зарегистрированного QR кода в СБПyString 32 символа
QR_TYPE

Тип QR кода:

01 — QR Static (QR наклейка);

02 — QR Dynamic (QR на кассе);

03 — QR-Subscription (Оформление привязки счета).

yString 2 цифры
MEMBER_IDИдентификатор Банка Получателя (ТСП) (Member_ID)yString 12 символов
SUMСумма в копейках

y (если QR_TYPE = 02);

Отсутствует, если QR_TYPE = 03

String до 12 цифр
CURВалюта операцииy (если присутствует SUM)String 3 символа
CRCЗначение контрольной суммыyString 4 символа

Приложение 2. Описание кодов ответа

Полный перечень кодов представлен на сайте НСПК. Данная спецификация не описывает всего перечня кодов ответов т. к. в случае исключительных ситуаций системой возможна генерация собственных кодов. Не описанные в документе коды следует обрабатывать как техническую (системную) ошибку.

ErrorCodemessage
«-999»Прочее сообщение FSCryptoProxy
«-71»Неверные данные Basic авторизации запроса. Не прошла проверка авторизации запроса от fsCryptoProxy → GW
«-9»Система перегружена. Повторите запрос через несколько секунд. Очередь: %1
«-8»Запрос отклонен. '%1' превышено ограничение на размер очереди. Ограничение: %2 Очередь: %3
«-7»Неверная подпись сообщения. Не прошла проверка связки запроса от fsCryptoProxy → GW, закрытый ключ, указанный в настройках fsCryptoProxy (proxyAlias) не соответствует открытому ключу, указанному в GW, продукции у БС в настройке PublicKeyFile
«-6»Не передана подпись сообщения в параметре Authorization заголовка
«-5»Тип запроса %1 не поддерживается
«-4»При получении данных возникли проблемы: %1
«-3»При создании потока JSON не образовался потоковый объект
«-2»Возникли проблемы при преобразовании объекта в JSON %1
«-1»Возникли проблемы при обработке запроса %1
«0»«OK»
«1»Внутренняя ошибка %1
«2»Терминал %1 не обнаружен
«3»Не заполнены данные запроса %1
«301»Некорректно заполнены данные запроса %1
«4»Не передан qrcId или payrrn
«5»Не получены данные от СПБ
«8»Таймаут ответа, попробуйте позже
«9»Ошибка идентификации, попробуйте позже
«10»Не передан реквизит command
«11»Данная команда не поддерживается
«12»«Не найдены данные для возврата»
«13»Не найден успешный ответ на вызов GetQRCreversalData по причине: %1
«14»Повторное открытие смены невозможно. Смена уже открыта.
«15»Закрытие смены невозможно. Смена не открыта
«16»Не передан TermNo
«17»Не удалось найти QR по payrrn
«18»Платеж не найден в запросах B07%1
«19»Платеж не найден в запросах B08%1
«20»Получен отказ на запрос возврата. Статус %1%2%3
«21»Не удалось получить получателя перевода
«22»payrrn=%1 в запросе не соответствует данным qrcId=%2 у которого payrrn=%3
«23»Возврат невозможен для указанных параметров. Для payrrn=%1 соответствует trxId=%2, а в запросе получен %3
«24»Возврат невозможен для указанных параметров. Для qrcId=%1 соответствует trxId=%2, а в запросе получен %3
«25»«Терминал %1 заблокирован
«26»«Ошибка идентификации»
«27»«Невозможно выполнить возврат по данному Терминалу, т. к. счет зачисления не равен счету списания»
«28»Запрос QR-кода не удался, не был получен Идентификатор QR-кода
«29»Возврат невозможен. Для qrcId=%1 не удалось найти успешный ответ на запрос GetQRCstatus
«30»Отсутствуют данные в переданных параметрах
«31»Не удалось определить параметры: legalid или Для legalid не удалось найти данные в спр. счетов или в спр. клиентов
«32»Отсутствуют данные получателя
«33»Отсутствуют данные отправителя
«34»Значения параметров запроса не совпадают с данными предыдущего шага
«35»Не заполнен обязательный параметр REF
«40»Возврат невозможен. Для payrrn=%1 не удалось найти успешный ответ на запрос GetQRCstatus
«41»При активации кассовой ссылки, не удалось получить paramsId
«42»Счет %1 не зарегистрирован у клиента. Изменение невозможно.
«43»Данные об оплате еще не известны. По qrcId не получено уведомление (Notification) от НСПК
«44»Кассовая ссылка зарегистрирована на устройстве #'%1' и может быть использована только на этом устройстве.
«45»Общая Ошибка поиска архивной операции C2B
«46»Ошибка поиска архивной операции C2B, по причине: %1
«47»Для выяснения статуса возврата необходимо передать один из параметров запроса: messageID, trxId или opkcRefundRequestId
«48»Возврат с messageID '%1' на устройстве #'%2' не обнаружен
«49»По возврату с messageID '%1' не обнаружен Идентификатор Операции СБП B2C по сценарию Возврат по Операции СБП C2B
«50»Идентификаторы Операции СБП B2C по сценарию Возврат по Операции СБП C2B переданный в запросе '%1' отличается от данных возврата '%2' полученного по messageID '%3'
«51»Возврат по Идентификаторы Операции СБП B2C '%1' не обнаружен
«52»Если передан реквизит opkcRefundRequestId запроса, то для выяснения статуса возврата необходимо также передать один из параметров запроса payrrn или originalTrxId
«53»По данным payrrn '%1' не удалось определить Идентификатор исходной Операции СБП C2B
«54»Не передан параметр LegalId
«55»Не передан параметр quantity
«67»ТСП '%1' не обнаружено с справочнике системы
«68»Выплата по ТСП '%1' для устройства '%2' — запрещена
«101»Тип запроса command='%1' не поддерживается
«121»Возврат не может быть осуществлен, т. к. операция оплаты не имеет финального статуса
«201»Получен отказ на запрос возврата. «Статус %1, Недостаточно средств на счете»
«1001»«Сервис временно недоступен»
«RQ00000»Запрос обработан успешно.
«RQ00030»Согласие на выполнение платежа.
«RQ00031»Ожидание решения по возврату от Банка Плательщика.
«RQ02034»Некорректное значение code.
«RQ03001»Ошибка валидации. Неверный формат запроса.
«RQ05001»Значение agentId отсутствует в ОПКЦ СБП (Агент с указанным идентификатором не найден).
«RQ05002»Значение memberId отсутствует в ОПКЦ СБП (участник с указанным идентификатором не найден).
«RQ05003»Значение LegalId отсутствует в ОПКЦ СБП (юридическое лицо с указанным идентификатором не найдено).
«RQ05004»Счет юридического лица не найден.
«RQ05005»Значение merchantId отсутствует в ОПКЦ СБП (ТСП с указанным идентификатором не зарегистрировано в СБП).
«RQ05006»Некорректное значение currency (код валюты).
«RQ05007»Неверная версия шаблона Платежной или Информационной ссылки СБП (неверная версия шаблона QRC).
«RQ05008»Неверный тип Платежной или Информационной ссылки СБП (неверный тип QRC).
«RQ05009»Значение amount меньше минимально допустимого
«RQ05010»Значение amount больше максимально допустимого
«RQ05011»amount и currency должны одновременно присутствовать или одновременно отсутствовать при qrcType = 01 (QR-Static)
«RQ05012»Отсутствует currency при qrcType = 02 (QR-Dynamic)
«RQ05013»Отсутствует amount при qrcType = 02 (QR-Dynamic)
«RQ05014»Значение qrcId не найдено
«RQ05015»Превышено допустимое значение элементов в запросе
«RQ05016»Некорректный формат qrcId
«RQ05017»Некорректный формат или отсутствует paymentPurpose
«RQ05018»Некорректный формат subscriptionPurpose
«RQ05019»Отсутствует amount при активации Кассовой ссылки СБП
«RQ05020»Период использования динамической Платежной ссылки СБП в поле qrTtl выходит за допустимый диапазон
«RQ05021»Некорректный формат subscriptionToken
«RQ05022»Невозможно деактивировать Кассовую ссылку СБП
«RQ05023»qrTtl для Кассовой ссылки СБП выходит за допустимый диапазон
«RQ05024»Некорректный формат redirectUrl
«RQ05025»Отказ в смене счета ЮЛ, ИП или самозанятого. Кассовая ссылка СБП не деактивирована
«RQ05026»Кассовая ссылка с указанным идентификатором уже существует
«RQ05030»Отказ Банка Плательщика. Плательщик отказался от привязки счета
«RQ05031»Отказ Банка Плательщика. Привязка счета не найдена
«RQ05032»Отказ Банка Плательщика в выполнении платежа
«RQ05033»Отказ в повторном платеже
«RQ05034»Сценарий не поддерживается Банком Плательщика
«RQ05035»Истекло время ожидания решения Банка Плательщика
«RQ05036»Дублирование идентификатора запроса, назначаемого ТСП или Агентом ТСП, — agentRefundRequestId
«RQ05037»Предыдущий запрос на возврат по Операции СБП C2B еще не обработан
«RQ05038»Параметры запроса отличаются от параметров исходной Операции СБП C2B
«RQ05039»Не найдена исходная Операция СБП C2B
«RQ05040»Отказ от Банка Плательщика. Сумма возврата превышает сумму исходной Операции СБП C2B
«RQ05041»Запрос на возврат по операции C2B не найден
«RQ05042»Некорректный формат или отсутствует amount
«RQ05043»Некорректный формат или отсутствует takeTax
«RQ05044»Некорректный формат или отсутствует totalTaxAmount
«RQ05045»Некорректный формат uip
«RQ05046»Неверный тип платежной ссылки
«RQ05047»Запрос на возврат с указанным идентификатором не найден
«RQ05050»Сценарии с привязкой счета для ЮЛ/ИП недоступны
«RQ05051»Решение выполнения оплаты с привязанного счета от Банка Плательщика еще не получено
«RQ05052»Распоряжение от Банка Плательщика не было получено в ожидаемое время
«RQ05053»От Банка Плательщика было получено положительное решение об оплате с привязанного счета Плательщика
«RQ07999»Техническая ошибка

Ошибки по методу GetQRCd

КодОписание
-1Возникли проблемы при обработке запроса: <...>
1Внутренняя ошибка <...>
3Не заполнены данные: <...>
8Таймаут ответа, попробуйте позже
26Ошибка идентификации
28Запрос QR-кода не удался, не был получен Идентификатор QR-кода
301Некорректно заполнены данные данные: <...>
100Ошибка во время выполнения SQL-запроса для поиска AccountDR для TermNo=<TermNo>
101Ошибка во время выполнения SQL-запроса для проверки isUniQR для QrcId = <QrcId>
999*Неизвестная ошибка. Необходимо уточнить статус операции

Ошибки по методу GetQRCstatus

КодОписание
-1Возникли проблемы при обработке запроса: <...>
1Внутренняя ошибка <...>
2Терминал <номер терминала> не обнаружен
4Не передан qrcId или payrrn
5Не получены данные от СПБ
8Таймаут ответа, попробуйте позже
9Ошибка идентификации, попробуйте позже
16Не передан параметр TermNo
18Платеж не найден в запросах B07,B23 <...>
25Терминал <номер терминала> заблокирован
999*Неизвестная ошибка. Необходимо уточнить статус операции.

Ошибки по методу GetQRCreversalData

КодОписание
-1Возникли проблемы при обработке запроса: <текст с более подробным описанием ошибки>
1Внутренняя ошибка <текст с более подробным описанием ошибки>
2Терминал <номер терминала> не обнаружен
3Не заполнены данные: <текст с более подробным описанием ошибки>
8Таймаут ответа, попробуйте позже
12Не найдены данные для возврата
16Не передан параметр TermNo
20Получен отказ на запрос возврата. Статус <статус и при наличии код с текстом ошибки>
21Не удалось получить получателя перевода
22payrrn=<значение payrrn> в запросе не соответствует данным qrcId=<значение qrcId> у которого payrrn=<значение payrrn>
23Возврат невозможен для указанных параметров. Для payrrn=<значение payrrn> соответствует trxId=<значение trxId>, а в запросе получен <значение trxId>
24Возврат невозможен для указанных параметров. Для qrcId=<значение qrcId> соответствует trxId=<значение trxId>, а в запросе получен <значение trxId>
25Терминал <номер терминала> заблокирован
27Невозможно выполнить возврат по данному Терминалу, т.к. счёт зачисления не равен счёту списания
29Возврат невозможен. Для qrcId=<значение qrcId> не удалось найти успешный ответ на запрос GetQRCstatus
40Возврат невозможен. Для payrrn=<значение payrrn> не удалось найти успешный ответ на запрос GetQRCstatus
1001Превышено количество повторных запросов возврата B2C

Ошибки по методу QRCreversal

КодОписание
-1Возникли проблемы при обработке запроса: <текст с более подробным описанием ошибки>
1Внутренняя ошибка <текст с более подробным описанием ошибки>
2Терминал <номер терминала> не обнаружен
3Не заполнены данные: <текст с более подробным описанием ошибки>
8Таймаут ответа, попробуйте позже
12Не найдены данные для возврата
13Не найден успешный ответ на вызов GetQRCreversalData
16Не передан параметр TermNo
20Получен отказ на запрос возврата. Статус <статус и при наличии код с текстом ошибки>
21Не удалось получить получателя перевода
22payrrn=<значение payrrn> в запросе не соответствует данным qrcId=<значение qrcId> у которого payrrn=<значение payrrn>
23Возврат невозможен для указанных параметров. Для payrrn=<значение payrrn> соответствует trxId=<значение trxId>, а в запросе получен <значение trxId>
24Возврат невозможен для указанных параметров. Для qrcId=<значение qrcId> соответствует trxId=<значение trxId>, а в запросе получен <значение trxId>
25Терминал <номер терминала> заблокирован
27Невозможно выполнить возврат по данному Терминалу, т.к. счёт зачисления не равен счёту списания
40Возврат невозможен. Для payrrn=<значение payrrn> не удалось найти успешный ответ на запрос GetQRCstatus
201Получен отказ на запрос возврата. Статус <статус>, недостаточно средств на счёте
999*Неизвестная ошибка. Необходимо уточнить статус операции

Ошибки по методу ActivateCashQRc

КодОписание
-1Возникли проблемы при обработке запроса: <текст с более подробным описанием ошибки>
1Внутренняя ошибка <...>
2Терминал <номер терминала> не обнаружен
3Не заполнены данные: <...>
8Таймаут ответа, попробуйте позже
16Не передан параметр TermNo
25Терминал <номер терминала> заблокирован
28Запрос QR-кода не удался, не был получен Идентификатор QR-кода
41При активации кассовой ссылки не удалось получить paramsId
44Кассовая ссылка зарегистрирована на устройстве #'<номер терминала>' и может быть использована только на этом устройстве
301Некорректно заполнены данные данные: <...>
999*Неизвестная ошибка. Необходимо уточнить статус операции

Коды ответов, направляемые в callback-уведомлении по сценарию «Оплата с привязанного счёта» по методу «resolution /notification»

ErrorCodemessage
«RQ05031»Отказ Банка Плательщика. Привязка счёта не найдена
«RQ05032»Отказ Банка Плательщика в проведении платежа
«RQ05060»Недостаточно денежных средств для проведения операции
«RQ05061»Превышен лимит по сумме операций по СБП
«RQ05062»Превышен лимит по количеству операций по СБП
«RQ05063»Подозрение в мошенничестве
«RQ05064»Выполнение операций в данной категории ТСП запрещено
«RQ05065»Счёт заблокирован
«RQ05066»Счёт закрыт
«RQ05067»Выполнение операции запрещено по требованию законодательства

Примечание: Применение кода ответа «RQ05032» допускается не более, чем в 20% от общего числа отказов со стороны Банка Плательщика при выполнении Сценария «Оплата с привязанного счёта».

Приложение 3. Пояснение для колонки «required»

«y» — «Yes» обязательное;

«o» — «Optional» (опционально);

«y/o» — «Условно обязательное» определяется условиями запроса.

Приложение 4. Пояснение для колонки «Тип данных»

НотацияОписание
a

Символы латинского алфавита (A–Z и a–z) с десятичными кодами из диапазонов [065-090] и [097-122] в кодировке UTF-8;

Символы русского алфавита (А-Я и а-я) с десятичными кодами из диапазона [1040-1103] в кодировке UTF-8.

nЦифры 0-9 с десятичными кодами из диапазона [048-057] в кодировке UTF-8.
an

Символы латинского алфавита (A–Z и a–z) с десятичными кодами из диапазонов [065-090] и [097-122] в кодировке UTF-8;

Символы русского алфавита (А-Я и а-я) с десятичными кодами из диапазона [1040-1103] в кодировке UTF-8;

Цифры 0-9 с десятичными кодами из диапазона [048-057] в кодировке UTF-8.

ans

Символы латинского алфавита (A–Z и a–z) с десятичными кодами из диапазонов [065-090] и [097-122] в кодировке UTF-8;

Символы русского алфавита (А-Я и а-я) с десятичными кодами из диапазона [1040-1103] в кодировке UTF-8;

Цифры 0-9 с десятичными кодами из диапазона [048-057] в кодировке UTF-8;

Специальные символы с десятичными кодами из диапазонов [032-047], [058-064], [091-096], [123-126] в кодировке UTF-8;

Символ «№» под номером 8470 в кодировке UTF-8.