openapi: 3.0.1 info: version: 2.46.0 title: API модуля Агента ТСП (СБП) description: >- # Общая информация Данное API предназначено как для банка, обслуживающего счета юридических лиц, так и для непосредственно юридических лиц. (см. "Права пользователей API") Модуль Агент ТСП может посылать асинхронные уведомления с информацией на сторонние WEB ресурсы. * Платежи, возвраты, переводы. Предназначено для юр.лиц. Описание API на /webapi-doc/callback * Окончание регистарции юр.лиц, ТСП и счетов. Предназначено для ДБО банков. Описание API на /webapi-doc/callbackBank # Рекомендации по реализации API Возможно добавление новых параметров в ответы и опциональных параметров в запросы. Для совсместимости следует использовать опцию парссинга json разрешающую неизветные параметры (как, например DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES в false для jakson) # Права пользователей API Использование API предполагает идентификацию и аутентфикацию пользователя API. Доступно несколько режимов для пользователей API. * Общий доступ к API по TLS сертификату банка. * Персональный доступ для каждого юридического лица/ТСП юридического лица. * Персональный доступ для ServicePoint (SP) юр.лица. ## Общий доступ банка по TLS сертификату. Этот доступ (канал) предоставляется банку и/или ДБО банка. В нем дается полный доступ ко всем функциям без ограничений. Доступ контролируется по белому списку разрешенных сертификатов банка. Сертификат (ДБО, Банк) регистрируется как доверенный в ПО сервиса. Количество зарегистрированных сертификатов от одного и более. Идентификация пользователя API не требуется. Любое TLS соединение с сертификатом банка имеет права на любою функцию API. ## Доступ юридического лица. Данный режим предназначен для Юридических Лиц (Web сайт и пр.) в режиме соединения host Агента ТСП <- host/концентратор юр.лица. Запрос _может_ содержать заголовок "_**legal-entity-sp-id**_", содержимое заголовка будет добавлено в историю финансовых операций (возвраты/переводы), как имя SevicePoint данного юр.лица. Режим доступа выставляется для каждого юридического лица отдельно и дает право на все действий с конкретным юридическим лицом/отдельным ТСП юридического лица, включая устновку нового метода аутентификации и/или смену данных для аутентфикации. Первоначальная установка (как и регистрация юридического лица), для только что зарегистрированного юридического лица, доступна только ДБО/банку через аутентификацию по TLS сертификату банка. Для одного юридического лица может быть установлен только один способ аутенфикации (и данные аутентфиикации). На данный момент поддерживается (разрешен) только TLS (по TLS сертификату клиента) ## Персональный доступ для Service Point (SP) юр.лица. Данный способ предназначен для случая, когда ПО юр.лица не имееет возможности выходить на Агента ТСП как хост (концентратор). Т.е., например, каждая касса/терминал юр.лица может/должен только напрямую (HTTPs) выходить на Агента ТСП. Для этого случая, каждый такой объект юр.лица (ServicePoint) должен быть отдельно зарегистрован в Агенте ТСП и ему назначены права на объекты СБП (ТСП + счета) и права на операции (QRc, возвраты). SP и его права это сервисная надстройка над объектами СБП и нигде кроме как в ПО Агента СБП не региструется. На данный момент поддерживается только: - TLS (по сертификату клиента) - Аутентификация по выданному токену. Для режима TLS, запрос **должен** содержать заголовок "_**auth-sp-id**_". По содержимому заголовка будет искаться запись в списке SP и проверяться права. Имя SP будет добавлено в историю финансовых операций (возвраты/переводы), как имя SevicePoint данного юр.лица. # Варианты аутентификации/идентификации для юр.лица и SP юр.лица. ## Аутентификация по TLS сертификату клиента. При установление TLS соединения проверяется, что сертификаты выдан ЦА и сравнивается поле Issuer сертификата с тем, что зарегистрировано в БД. Описание процедуры выдачи сертификата, не в рамках данной спецификации. ## Подпись секретным ключом (ГОСТ 2012) клиента. Запрос должен содержать заголовок: _**body-signature: sign**_. Где sign - base64 (не base64url) строка подписи HTTP body секретным EC ключом клиента ("GOST3411_2012_512withGOST3410_2012_512" - КриптоПро GSP). Сервер проверяет подпись публичным ключом, зарегистрированным ранее через API 'Управление параметрами аутентификации'. ## Аутентификация по токену Запрос должен содержать заголовок: "_Authorization: Bearer токен_". Где токен - строка (jwt), получаемая через API 'Управление параметрами аутентификации'. _На данный момент доступ по токену разрешен только для SP._ Данные способ допустим исключительно только при использовании TLS (анонимный клиент без валидации сертфииката клиента). См. Базовый доступ к API # Базовый доступ к API При использовании базового доступа к API доступны только запросы, относящиеся к генерации QR-кодов С2В, выполнение возврата одним запросом и работа с кассовой ссылкой. Остальные запросы будут отвергаться сервером. ## Получение данных для авторизации и выполнение запросов в песочнице Использование базового доступа к API предполагает идентификацию и аутентификацию пользователя API с помощью Bearer token. Дополнительно не требуется обмениваться с Платформой сертификатами. Для отладки и выполнения тестовых запросов всегда есть возможность выполнять тестирование на песочнице с Платформой (песочница Платформы, в свою очередь, взаимодействует с песочницей НСПК). Актуальные для песочницы параметры запросов можно получить, выполнив запрос **GET http://ahmad.ftc.ru:10453/info**. Запросы на тестовой среде выполняются без установления TLS-соединения, настроена анонимная аутентификация. ## Получение данных для авторизации и выполнение запросов в промышленной среде Запросы в промышленной среде отправляются на адрес '**https://zkc2b.koronacard.ru**' из сети Интернет с обязательным использованием шифрования TLS. Для получения данных авторизации на промышленной среде используйте ресурс "Портал ТСП", предоставленный вашим банком. Если банк не предоставил вам доступ к Порталу ТСП, попросите данные для авторизации в банке. Для создания сервисных точек банк должен выдать Вам для Портала ТСП соответствующие права и возможность получать ОТР (OneTimePassword - одноразовый пароль). На Портале ТСП найдите раздел "Настройка API", нажмите кнопку "+" или "Добавить", введите одноразовый код подтверждения и на форме добавления сервисной точки заполните поля, выберите ТСП и счет, в пользу которого будет осуществляться прием платежей, включите требуемые права. После создания сервисной точки вам будут предоставлены данные для авторизации. Обязательно в этот момент скопируйте данные (значение полей Token, extEntityId, merchantId). **ВНИМАНИЕ!** Значение Token вы сможете увидеть только один раз после создания! После его получения вы обязаны принять все возможные меры по сохранению его в секрете и обеспечить невозможность "подсмотреть" его в будущем. Не пересылайте его по e-mail, не печатайте на бумаге и не сохраняйте в файлах. В идеале, он не должен сохраняться нигде, кроме защищенной зоны сервера. В случае компрометации (или подозрения на компрометацию) Token'a сервисная точка должна быть заблокирована в Портале ТСП. Token имеет ограниченный срок жизни (максимум один год). Для замены токена с минимальными простоями, до истечения срока действия текущего Token потребуется сделать ещё один Token в имеющейся сервисной точке, и заменить Token на новый в рабочих системах. Более подробно процесс получения данных для авторизации см. в Руководстве пользователя Портала ТСП. ## Использование данных для авторизации Полученное значение Token нужно добавлять в заголовок запроса Authorization с указанием "Bearer": *Пример*: headers = {"Authorization": "Bearer %значение_поля_Token_целиком%"} Остальные данные указываются в теле запроса согласно спецификации. # Реализация стандартных сценариев приема платежей С2В СБП В этом разделе содержатся рекомендации по реализации наиболее распространенных сценариев приема платежей С2В СБП в ТСП с использованием методов данного API. Для получения консультаций по нестандартным решениям (крупный ритейл, подписки (привязка счета СБП), не стандартные схемы подключения и т.п.) следует через ваш банк обратиться в сопровождение Платформы. ## Выбор способа приема платежей Для организации приема платежей С2В в торгово-сервисных предприятиях могут использоваться три способа или их комбинации: - **Статический QR** - один для множества платежей. Срок жизни не ограничен. Сумма либо строго фиксирована, либо для каждого платежа указывается плательщиком. Оплата доступна в любое время. Нет возможности отследить оплату по QR. Для получения информации об оплате необходимо получить callback. - **Динамический QR** - для каждого платежа создается новый. Срок жизни ограничен. Сумма указывается продавцом\кассиром при создании и строго фиксирована. Один QR можно оплатить только один раз. Можно отследить факт оплаты конкретного QR запросом его статуса. Сценарий похож на выставление счета на оплату с отслеживанием факта оплаты. Единственный подходящий способ для интернет-эквайринга, может использоваться в терминалах, отправляться плательщику. - **Кассовая ссылка** - одна для множества операций (срок жизни не ограничен). Сумма указывается продавцом при каждой активации, оплата доступна только после активации. В один момент времени может быть выполнена только одна оплата. Можно определить факт оплаты каждой активации. Способ наиболее похож на клиентский путь приема карточных платежей в POS-терминалах (лицом к лицу). Кассовая ссылка может быть представленав в виде изображения QR, записана на NFC-метку для оплаты приложением СБПэй. Идентификаторы кассовой ссылки могут быть созданы массово до привязки к конкретному ТСП. ## Стандартный сценарий приема платежей С2В СБП по динамическому QR. * Формируется "корзина" либо заказ. Сумма для оплаты должна быть известна. * Формируется QR-код **qrcType=02** (addQrCode) для отображения либо отправки покупателю. Рекомендуется предусмотреть отображение\передачу как в виде изображения QR-кода, так и возможность перейти по платежной ссылке payload (для возможности оплаты в смартфоне и в ДБО на платформе WEB). Рекомендуется выбирать срок жизни QR минимальный и достаточный в зависимости от сценария оплаты. * После формирования QR нужно ожидать получения callback-уведомления (rcvEventC2B) в течение адекватного времени, достаточного для оплаты и не превышающего срока жизни QR. Если такое уведомление не было получено, следует направить запрос (getQrCodeState) для выяснения статуса оплаты. ## Стандартный сценарий приема платежей по кассовой ссылке. В данном документе описываются только стандартные прямые сценарии использования кассовой ссылки. Вопросы по замене данных кассовой ссылки и остальные возможности не входят в данный документ. Работа с кассовой ссылкой предполагает, условно, 2 этапа: Регистрацию кассовой ссылки и цикл приема платежа по кассовой ссылке ### Регистрация кассовой ссылки Выполняется обычно один раз для кассы до начала обслуживания. Можно выделить два основных сценария: - С предварительным получением массива идентификаторов qrcid. * В этом случае банк для своих клиентов получает в Платформе массив QRCID. Далее банк выбирает производителя и своими силами размещает заказ на изготовление табличек с QR-кодами\NFC. После получения готовых табличек, банк раздает их своим клиентам. * Для того, чтобы приложение на кассе могло использовать (активировать) такие таблички, в ПО кассы требуется предусмотреть регистрацию кассовой ссылки с указанием считанного с таблички идентификатора. А также саму процедуру считывания идентификатора. * Касса считывает с QR-кода таблички содержимое, представляющее из себя платежную ссылку (вида https://qr.nspk.ru/AS1000670LSS7DN18SJQDNP4B05KLJL2). * Касса отправляет запрос на регистрацию кассовой ссылки (addCashQrc), в который кроме прочего добавляет параметр qrcId, содержащий считанную платежную ссылку. * В ответе на запрос касса получает все данные кассовой ссылки для последующего использования в цикле приема платежа. - Без получения массива идентификаторов qrcid * Для случаев, когда использование внешних носителей информации (табличек) не требуется, а отображение QR-кода для оплаты предполагается, например, на экране кассы, процесс регистрации кассовой ссылки выполняется кассой сразу запросом (addCashQrc) без заполнения параметра qrcId. В ответе на запрос касса получает все данные кассовой ссылке для последующего использования в цикле приема платежа. ### Цикл оплаты по кассовой ссылке - После формирования корзины касса отправляет запрос на активацию кассовой ссылки (activateCashQrc), в ответ на который получает параметры, основными из которых являются paramsId и localParamsId - это идентификатор конкретной активации. - Далее касса должна ожидать оплаты (получения callback rcvEventC2B) в течение периода использования кассовой ссылки либо до отправки кассой запроса на деактивацию кассовой ссылки. - При получении callback по оплате qrcId привязанной кассовой ссылки следует завершить цикл оплаты. - Если за отведенное время callback не был получен, либо цикл ожидания по какой-то причине прервался, следует запросить статус оплаты по последней активации (getCashQrcHistoryState) с использованием paramsId и проанализировать статус оплаты. - Если нужно прекратить ожидание оплаты, либо если цикл оплаты прервался и есть вероятность, что кассовая ссылка осталась активирована, следует использовать запрос на деактивацию кассовой ссылки (deactivateCashQrc) с использованием qrcId кассовой ссылки. ## Стандартный сценарий выполнения возврата В2С. При необходимости выполнить полный или частичный возврат после успешно завершенной оплаты С2В возможно сипользовать один из двух вариантов: возврат одни запросом либо возврат с проверкой и подтвержденим (двумя запросами) ### Возврат одним запросом В большинстве случаев удобно и достаточно выполнять возврат одни запросом. Для этого следует вызвать метод (refundSingleRq). Данный запрос - единственно возможный при использовании заявок на возврат. Основные особенности запроса: - Следует внимательно изучить описание параметра **longWait**, от него зависит сценарий выполнения этого запроса. Чтобы не держать соединение для ожидания выполнения полного цикла возврата рекомендуется использовать **longWait = false** и корректную обработку статуса 202 с последующим опросом по **/refund GET**. - Выбор значения **refType** зависит от способа приема платежа С2В. Значение **"trxId"** наиболее универсально, подходит для всех операций (если, конечно, известно). При использовании динамических QR можно использовать значения **"qrcId"** или **"localQrcId"** или **"payload"**. При использовании кассовой ссылки следует использовать **"paramsId"** или **"localParamsId"**. - Очень желательно заполнять **riskData** на случай спорных ситуаций. ### Возврат с подтверждением (двумя запросами) Данный сценарий следует использовать только в том случае, если требуется проверка получателя средств перед выполнением возврата. Если такой необходимости нет, следует использовать возврат одним запросом. Данный сценарий невозможен при использовании заявок на возврат. - Первый запрос возврата - Проверка возможности (refundCheckRq) - Второй запрос - Подтверждение (refundConfirmRq) # Коды ошибок Значение поля code в блоке "Стандартный ответ ошибки." (ErrorResultData) - это код общей проблемы, которую может диагностировать модуль Агента СБП по своим данным. Коды не систематизированы и применялись ранее исключительно для внутренних целей. - Поле sbpCode заполняются кодами СБП (если есть) и для их анализа нужно смотреть актуальную документацию СБП. - Поле appCode заполняется кодами внешних систем (АБС банка, фрод мониторинга и т.п.) Каждая система может иметь свои диапазоны кодов. Назначение и состав этих систем может меняться от настроек банка. Для анализа нужно обращаться к спецификациям на внешние системы. Сущность СБП "юр.лица/ИП/.." - далее просто "организация" | code | HTTP | описание | |----- |------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 | 404 | Проблемы с поиском организации. Текст вида "Организация не найдена","ИНН не соответствует","ОГРН не соответствует" и пр. связанное с невозможностью найти экземпляр однозначно. | | 2 | 428 | Отказ СБП в регистрации организации | | 3 | 428 | Процесс регистрации в СБП организации еще не завершен. Возникает при попытке использовать данное юр.лицо для чего либо | | 4 | 406 | Организация заблокирована для использования на уровне БД Агента ТСП (не в СБП. там такой функции нет) | | 5 | 404 | У организации нет счетов вообще. в запросах, связанных с использованием счета | | 6 | 404 | У организации нет ТСП вообще. в запросах, связанных с использованием ТСП | | 7 | 428 | Организация уже была зарегистрирована. При попытке регистрировать организацию с тем же ОГРН/ИНН | | 8 | 406 | Для данной организации данные действия запрещены правилами СБП. Например "B2C переводы от имени самозанятого запрещены" | | 9 | 406 | Для данной организации запрещены B2B переводы. | | 10 | 404 | Не найден указанный в запросе счет для данной организации. Хотя СБП уже не требует регистрации счетов, но в Агенте СБП локальная регистарция счета оставлена для возможности контроля переводов по "белому" списку счетов | | 11 | 406 | Счет заблокирован на уровне Агента ТСП для любых операций (можно только разблокировать) | | 14 | 428 | Ошибка регистрации счета "Такой счет уже зарегистрирован" | | 20 | 404 | Не найден ТСП, указанный в запросе | | 21 | 406 | ТСП заблокирован на уровне Агента ТСП для любых операций (можно только разблокировать) | | 27 | 404 | В Агенте ТСП есть понятие "счет по умолчанию для ТСП" (есть системы, которые оперируют только сущностью ТСП и считают что ТСП=счет). Данная ошибка возникает когда в запросе счет не указан и не задан счет по умолчанию у ТСП, запрос предполагает использование пары СБП ТСП+счет | | 30 | 406 | Разблокировка запрещена. Недопустимо более одного рабочего ИП/Самозанятого/.. (одни ИНН). Разблокировка возможна, если на данный момент, явно заблокированы все объекты с данным ИНН | | 50 | 404 | По указанному СБП ID не найден QRC (любого типа, в зависимости от запроса). Следует иметь в виду, что СБП и Агент ТСП не хранит в активных таблицах QRCD созданные 3 месяца назад. | | 51 | 403 | Проблема с регистрацией QRC (любая, включая "нет связи" и пр.). Если отказ СБП, то содержит поле sbpCode | | 52 | 406 | счет и/или ТСП и/или организация данного QRC заблокированы. Действие над данным QRC запрещены | | 53 | 410 | QRC просрочен по СБП сроку действия или локальному сроку действия. Действие над данным QRC запрещены. Кроме СБП срока действия есть еще и локальный срок действия (в сек). Во многих системах решение СБП использовать минуты как единицы жизни QRC не устроило. Агент ТСП поддерживает (опционально) локальный управляемый срок жизни в в секундах | | 55 | 403 | Проблема с изменением параметров кассовой ссылки (отказ СБП). | | 56 | 406 | Отказ в регистрации QRC не фатальный с кодом RQ05022. НСПК в консультациях специально выделило код RQ05022 как "временные проблемы". Какое то время эти временные проблемы были регулярны. Код остался. | | 60 | 404 | Заказа кассовых ссылок не найдено (тема "перед заказа QRC табличек кассовых ссылок") | | 100 | 400 | Требуется уточненные параметры запроса (для систем, которые считают что в ТСП только 1 счет). Выбрано более одного объекта. Пример: "Зарегистрировано более одного счета для организации. Выбор QR кода без указания счета не возможен" | | 101 | 428 | Попытка удалить объект (счет например), на который ссылается другой объект (например счет указан как счет по умолчанию у ТСП) | | 200 | 400 | Попытка повторить возврат, указав уже что это повтор уже зарегистрированного возврата, но в запросе указаны другие параметры. например: "Разные телефоны. Было:.... Указали сейчас:..." | | 201 | 500 | Фатальная ошибка соединения с каким то внешним сервисом (не СБП. например фрод мониторинг банка и т.п.) | | 202 | 428 | Внешний сервис (например фрод мониторинг банка и т.п.) отказал в проведении операции. Если доступен код отказа внешнего сервиса (специфицируется конкретным сервисом), то заполняется appCode | | 203 | 404 | Не найдена корректный исходный платеж (может быть и есть, но не от того ТСП), по которому требуется возврат. | | 204 | 404 | Не найден возврат по запросам получения состояния возврата | | 206 | 401 | Возвраты запрещены настройками банка | | 207 | 428 | Запрос на возврат отклонен СБП. такая ошибка только для режима "https://sbp.nspk.ru/api/#operation/createPaymentPetition". Специальный режим банка | | 300 | 404 | Отказ НСПК с кодом RQ50014. НСПК в консультациях специально выделило этот код как "ничего не знаем про что что запрашиваете". | | 301 | 428 | Контролька проверки на PAM не прошла в запросе на перевод B2C. СБП возлагает ответственность на банки, но Агент ТСП дополнительно контролирует что PAM клиента в запросе равен фактическому. | | 310 | 428 | В запросе отказано одной из внешних систем. Специфичная причина указана в поле appCode и тексте ошибки | | 311 | 428 | В запросе отказано СБП или одной из внешних систем. Специфичная причина указана в поле sbpCode и тексте ошибки | | 312 | 502 | Физическая проблема (не TCP/IP соединения и пр.) с доступом к внешнему сервису. | | 400 | 404 | Нет указанного пользователя Телеграм | | 401 | 404 | Не найдена запись настройки на ТСП для пользователя telegram | | 402 | 428 | Такой пользователь telegram уже есть | | 403 | 428 | Такая запись настройки на ТСП для пользователя telegram уже есть | | 500 | 428 | Настройка данного терминала уже существует | | 501 | 404 | Терминал не зарегистрирован | | 502 | 502 | Не получается послать e-mail по техническим причинам (активация терминала) | | 503 | 428 | Не получается послать e-mail (не правильно указан email) | | 600 | 404 | Не найден перевод B2C по запросу "дай статус" | | 601 | 403 | Переводы B2C запрещены банком | | 602 | 403 | Переводы B2B запрещены банком | | 700 | 404 | Service Point не найден (Service Point - технологический объект с правами, ограничивающими использование общего API. Доступ в API по токену и/или TLS сертификату клиента) | | 701 | 401 | Нет прав у Service Point на данную операцию | | 702 | 428 | Service Point c таким именем (ID) уже регистрировался | | 703 | 404 | Не найден Счет у данного LegalEntity (При задании прав на Service Point) | | 704 | 404 | Не найдено ТСП у данного LegalEntity (При задании прав на Service Point) | | 800 | 428 | Такой пользователь уже существует (WEB пользователи сайта Портал ТСП) | | 801 | 404 | Пользователь не найден (WEB пользователи сайта Портал ТСП) | | 802 | 502 | Не получается послать e-mail пользователю по техническим причинам (WEB пользователи сайта Портал ТСП) | | 803 | 428 | Не получается послать e-mail пользователю (WEB пользователи сайта Портал ТСП) | | 804 | 404 | Не найдено право для удаления (WEB пользователи сайта Портал ТСП) | | 805 | 404 | Не задано OTP у пользователя (WEB пользователи сайта Портал ТСП) | | -1 | 400 | Ошибка в аргументах вызова. В message - пояснение, что не так | | -2 | 400 | Ошибка в заголовках HTTP вызова. В message - пояснение, что не так | | -10 | 401 | Ошибка аутентификации по TLS сертификату клиента. | | -11 | 401 | Ошибка аутентификации. В message - пояснение, что не так| | -12 | 401 | Нет прав на запрашиваемое действие. В message - пояснение, что не так | | -100 | 500 | Общая неопределенная ошибка (не предвиденный, не перехваченный Exception) | # История изменений | Дата | версия | Описание изменений | |--------- |--------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 02.04.24 | 2.31.0 | Ограничение на B2B операции для Legal Entity PUT /auth/entity/{extEntityId} и GET /auth/entity/{extEntityId}| | 10.04.24 | 2.31.0 | 'POST /entity/account/{extEntityId}' + внутренний id в ответе.| | | | 'PUT /entity/account/{extEntityId}' + внутренний id в ответе.| | | | 'DELETE /entity/account/{extEntityId}/{id}' + по внутреннему id. + внутренний id в ответе.| | | | 'POST/entity/merchant/{extEntityId}' + внутренний id в ответе.| | | | 'PUT/entity/merchant/{extEntityId}' + внутренний id в ответе.| | | | 'DELETE /entity/merchant/{extEntityId}' + по СБП Id. + внутренний id в ответе.| | | | Новый запрос 'GET /entity/account/{extEntityId}' - Получить спиcок id (внутренний id) счетов организации.| | | | Новый запрос 'GET /entity/account/{extEntityId}/{id}' - Информация по счету.| | | | Новый запрос 'GET /entity/merchant/{extEntityId}' - Получить список (внутренние Id) ТСП организации.| | | | Новый запрос 'GET /entity/merchant/{extEntityId}/{id}' - Информация по ТСП| | 25.04.2024| 2.32.0| Добавлено описание использования платежных ссылок С2В и типовые сценарии приема платежей С2В. API не менялось| | 13.05.2024| 2.33.0| Добавлены опциональные параметры subscriptionServiceId и subscriptionServiceName в запрос генерации QRC и получения статуса QRC| | 30.05.2024| 2.34.0| Опциональный параметр нового ТСП и redirectUrl для кассовой ссылки PUT /cash-qr/{id}| | 30.05.2024| 2.34.0| Опциональный параметр redirectUrl для активации кассовой ссылки PUT /cash-qr/state/{id}| | 05.06.2024| 2.34.0| Объект DynamicQRPayStatus (ответ на GET /qr/state/{id}) расширен опциональными полями sbpCode и sbpMsg | | 19.06.2024| 2.34.0| в POST /terminals/link/{termName}/{route} и PUT /terminals/link/cash-qr/{termName}/{route} добавлено поле orderedCashLinkQrcId (Из заказа на выпуск кассовых ссылок)| | 21.06.2024| 2.34.0| в ответе на GET /qr/state/{id} и GET /cash-qr/state/history/{id}/{paramsId} новые опциональные параметры (clientPAM - PAM Получателя, payerId - Маскированный номер телефона Клиента-Плательщика и payTime - время совершения платежа)| | 27.06.2024| 2.34.0| расширен ErrorResultData полем appCode. Добавлена в описание таблица значений ErrorResultData.code | | 22.08.2024| 2.35.0| расширены структуры B2bTransferStatus,TransferStatus,RefundStatus опциональным полем appCode (переводы B2C и B2B). Поля trxId и settlmntDtTm сделаны опциональными (была ошибка в описании с обязательностью полей. До перевода в СБП могло и не дойти и полей может и не быть)| | 06.09.24| 2.35.0| в Данные ответа по C2B и B2B qrc (структуры QRCode и QrcB2B) добавлено поле redirectUrl| | 09.09.24| 2.36.0| Добавлен функционал работы с MPI (mpiApi)| | 03.10.24| 2.36.0| Разрешено указывать, при пере регистрации кассовой ссылки, ТСП в другой организации (PUT /cash-qr/{id}). Разрешено только для банка. | | 03.10.24| 2.36.0| в ответе на GET /cash-qr/state/history/{id}/{paramsId} новые параметры, определяющие привязку кассовой ссылки на момент платежа (ТСП, счет). Запрос истории операции от имению организации (не банк) будет отклонятся, если операция была выполнена в другой организации (был перенос кассовой ссылки в другую организацию)| | 15.10.24| 2.36.0| Опциональный дополнительный список параметров (поле addParameters) в запросах на возврат POST /refund/check и POST /refund | | 19.12.24| 2.37.0| Для сервисных точек расширены права. Добавлена возможность управлять настройками callback (см. ServicePointLink: rights) | | 10.03.25| 2.38.0| Стала допустима регистрация нескольких объектов с одним ИНН (например, при смене вида деятельности ИП с замозанятого и т.п). При этом проверяется, при регистрации и разблокировке приема платежей, что после вызова API (POST /entity,PUT /entity/state/{entityId}) будет только один активный (не заблокированный) объект. Новый код ошибки http:406, code:30 | | 17.04.25| 2.39.0| В ответе на запрос "GET /qr/state/{id} Получить статус QR кода" уточнена логика заполнения полей "subscription.last_". Добавлено поле lastQrcId | | 13.05.25| 2.40.0| В операциях со счетами блок данных расширен типом счета (Цифровой рубль) и размерность поля расширена под Цифровой рубль | | 13.05.25| 2.40.0| Добавлены функции работы с настройками банка по <Универсальному QRC> tag uniQrcConfig | | 14.05.25| 2.40.0| Расширены функции работы с ТСП (регистрация, модификация и данные ТСП) для Универсального QRC. Возможность указать счет Цифрового Рубля (defAccDr) и настройку банка (defUniQrcCfgId) | | 15.05.25| 2.40.0| Расширены функции работы с QRC для Универсального QRC. Возможность указать счет Цифрового Рубля (defAccDr) и настройку банка (defUniQrcCfgId) | | 16.05.25| 2.40.0| В ответ (DynamicQRPayStatus) на GET /qr/state/{id} добавлено опциональное поле paymentServiceId. | | 19.05.25| 2.40.0| Расширены функции работы с кассовой ссылкой (/cash-qr/). Возможность указать счет Цифрового Рубля (defAccDr) и настройку банка (defUniQrcCfgId)| | 23.05.25| 2.40.0| Добавлен новый параметр paymentPageUrl в запросы работы с QRC и Кассовыми сылками| | 23.05.25| 2.40.0| Добавлен PUT /qr/uni/{qrcId} для изменения параметров многоразового Универсального QRC| | 16.07.25| 2.40.0| Добавлен опциональный параметр useAuthSMS в components/schemas/WebUserAttr (POST /wp/user/{extEntityId}, PATCH /wp/user/info). Выставляет режим аутентификации через SMS, а не TOTP| | 22.07.25| 2.41.0| Расширены методы регистрации ТСП (ОПЕРАЦИОННЫЙ БЮЛЛЕТЕНЬ #09.2025 О расширении перечня реквизитов ТСП)| | 01.08.25| 2.41.0| Расширен формат данных авторизации (AuthModeDataOptions) опциональным информационным полем | | 02.02.26| 2.43.0| Добавлен новый параметр sndPhone в запрос регистрации динамического QRC (см. QRCodeGenerateRequest)| | 03.02.26| 2.43.0| Опциональный параметр timeout в запросе на получение статуса QR кода (GET /qr/state/{id}) и кассовой ссылки (GET /cash-qr/state/{id}). | | 06.02.26| 2.43.0| возможность получения статуса (опросом) для ЦР (только динамические универсальные QRC и Кассовые Ссылки) и возврата B2C для ЦР | | 25.02.26| 2.43.0| новое опциональное поле defPaymentPurposeCl в ServicePointDataRq, ServicePointUpdData, ServicePointDataInfo, MpiInfoResult | | 07.04.26| 2.44.0| Добавлен новый параметр sndFio в запросы регистрации динамического QRC (см. QRCodeGenerateRequest) | | 29.04.26| 2.44.0| опциональный набор параметров (addParameters) в запросе POST /transfer/check и POST /transfer | | 29.04.26| 2.44.0| опциональный набор (настройка на банк) параметров (addParameters) в ответах POST /refund/check и POST /transfer/check | | 10.05.26| 2.45.0| добавлен параметр opkcFraudScore в блок TransferInfoB2B ответов на запросы работы с B2B переводами | | 10.05.26| 2.45.0| в блок payStatus (DynamicQRPayStatus) ответ на GET /qr/state/{id} addParameters (тип AddParametersResponse). Список параметров перевода, настраивается на конкретную организацию (поле 'addFieldsC2B_RR' в настройках организации). Если настройка не задана, то addParameters не будет | | 10.05.26| 2.45.0| опциональный набор (настройка на банк) параметров addParameters (RefundStatus/TransferStatus) в ответах POST /refund, GET /refund/{internalTxId}, POST /transfer и GET /transfer/{internalTxId} | | 23.07.26| 2.45.0| дополнено описание 'PUT /entity/{extEntityId}'. Параметры которые не возможно изменить, после того как организация была зарегистрирована в СБП | | 30.07.26| 2.46.0| Маршрутизация в запрос СБП 'POST /sbp-api/payment/v2/universal-payment-link/{uniQrId}/notification'. Уведомление для Оператора об изменении статуса платежа от Провайдера | | 03.08.26| 2.45.1| Дополнение описания. пояснения по поводу expDt. о том, что используется только для QRC 02 и 03 в запросах работы с QRC | servers: - url: 'http://ahmad.ftc.ru:10453/' description: Песочница - url: 'https://zkc2b.koronacard.ru' description: Промышленный сервер tags: - name: telegramUsersApi description: Управление пользователями telegram - name: authApi description: Управление параметрами аутентификации - name: merchantApi description: API для ТСП - name: transferApi description: API для юр.лица (выполнение перевода B2C) - name: transferB2bApi description: API для юр.лица (выполнение перевода B2B) - name: registrationApi description: Регистрация юридического лица - name: controlApi description: Управление зарегистрированными объектами - name: informationApi description: информационные запросы - name: terminalsLinkApi description: Привязка POS терминалов к ТСП и Счетам - name: callbackController description: Управление callback уведомлениями о переводах. - name: webUserCtrlApi description: управления пользователями Web портала. - name: cashLinksBatch description: Функции работы с заказами (выпуск кассовых ссылок массово) - name: mpiApi description: Функции работы с MPI (мобильно приложение ТСП) - name: uniQrcConfig description: Функции настройки банка на работу с по <Универсальному QRC> - name: sbpApi description: Маппинг на API СБП x-tagGroups: - name: Все доступные функции для мерчантов tags: - merchantApi - transferApi - transferB2bApi - name: Информационные функции tags: - informationApi - name: Функции для банков tags: - authApi - telegramUsersApi - registrationApi - controlApi - terminalsLinkApi - callbackController - webUserCtrlApi - cashLinksBatch - mpiApi - uniQrcConfig paths: /version: get: operationId: getVersion summary: Запрос версии ПО description: >- Служебный запрос версии ПО. Не требует наличия прав. tags: - informationApi responses: 200: description: Успешное выполнение content: text/plain: schema: type: string /participants: get: operationId: getParticipants summary: Справочник банков участников СБП. description: >- Справочник банков участников СБП. Отдельных прав не требует. tags: - informationApi parameters: - in: query name: filter required: false schema: type: string example: 'B2COther:Sender' description: >- Для тех, кто не хочет или не может написать пару строк на любом языке программирования для фильтрации, сделаны предопределенные значения фильтра. По умолчанию возвращатеся полный список. Примеры значения: * 'forRefund' или 'C2BRfnd:Receiver' - список участников с scenarios C2BRfnd Receiver * 'C2BRfnd' - список участников с scenarios C2BRfnd Receiver, Sender * 'me2MePull:Sender' формат фильтра: * Имя сценария * Опциональный разделитель ':' и тип 'Sender' или 'Reciever' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/ParticipantsInfo' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /telegram/user: post: operationId: addTelegramUser summary: Добавить пользователя telegram и/или добавить новую привязку к ТСП + счет description: >- Запрос добавляет нового пользователя telegram. Если пользователь уже есть то вовращается статус 200 с информацией о пользователе. Должна быть задана хотя бы одна запись в links. Регистрация пользователя, которому не назначены ТСП и счета не имеет смысла. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - telegramUsersApi requestBody: description: Данные пользователя content: application/json: schema: $ref: '#/components/schemas/TelegramUserRequest' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/TelegramUserInfo' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' put: operationId: setTelegramUserLockUnlock summary: Заблокировать/разблокировать пользователя telegram description: >- Запрос изменяет состояние пользователя telegram. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - telegramUsersApi requestBody: description: Данные пользователя content: application/json: schema: $ref: '#/components/schemas/TelegramUserLockUnlock' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/TelegramUserInfo' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: 'Не найден пользователь telegram' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /telegram/entity/{extEntityId}: get: operationId: getTelegramUsersList summary: Получить список пользователей telegram для юр.лица description: >- Получить полный список пользователей telegram для указанного юр.лица. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - telegramUsersApi parameters: - in: path name: extEntityId style: simple required: true schema: type: string description: Уникальный ID выданный Платформой при регистрации юр. лица responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/TelegramUsersListResult' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /telegram/user/{telegramUserId}: get: operationId: getTelegramUserInfo summary: Информация по пользователю telegram description: >- Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - telegramUsersApi parameters: - in: path name: telegramUserId example: 112345623 description: >- Уникальный ID пользователя telegram (@userinfobot) required: true schema: type: integer format: int64 responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/TelegramUserInfo' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' delete: operationId: delTelegramUser summary: Удалить пользователя telegram description: >- Удаление пользователя telegram возможно только если у него не было ни одной операции. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - telegramUsersApi parameters: - in: path name: telegramUserId example: 112345623 description: >- Уникальный ID пользователя telegram (@userinfobot) required: true schema: type: integer format: int64 responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/TelegramUserInfo' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /telegram/link: put: operationId: delTelegramUserLink summary: Удалить привязку пользователя telegram к ТСП/счету. description: >- Запрос удаляет привязку пользователя telegram к ТСП/счету. Используется put (не delete) что бы ихбежать неоднозначностей кодирования произвольного AccAlias в url Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - telegramUsersApi requestBody: description: данные для добавления привязки к ТСП и счету content: application/json: schema: $ref: '#/components/schemas/TelegramUserLinkDeleteRequest' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/TelegramUserInfo' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /auth/entity/{extEntityId}: put: operationId: setLegalEntityAuthMode summary: Установить режим аутентификации юр.лица description: >- Запрос устанавливает режим аутентификации для указанного (по extEntityId) юридического лица. Для установки режима может использоваться как ранее установленный способ аутентфикации, так и аутентификация по сертфикату банка (единственный доступный способ для только что зарегистрированного юридического лица) Если поле auth или right не установлено в запросе, то значение отставляется прежним. На данный момент разрешен только режим TLS. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - authApi parameters: - in: path name: extEntityId style: simple required: true example: 12%ABq1+2 schema: type: string description: Уникальный ID выданный Платформой при регистрации юр. лица requestBody: description: Режим аутентификации content: application/json: schema: $ref: '#/components/schemas/LegalEntityAuthRq' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/LegalEntityAuthInfo' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' get: operationId: getLegalEntityAuthMode summary: Узнать режим аутентификации юр.лица description: >- Запрос возвращает режим аутентификации для указанного (по extEntityId) юридического лица. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - authApi parameters: - in: path name: extEntityId style: simple required: true example: 12%ABq1+2 schema: type: string description: Уникальный ID выданный Платформой при регистрации юр. лица responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/LegalEntityAuthInfo' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /auth/sp/{extEntityId}: post: operationId: addServicePoint summary: Зарегистрировать Service Point description: >- Зарегистрировать новый Service Point и его права. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - authApi parameters: - in: path name: extEntityId style: simple required: true example: 12%ABq1+2 schema: type: string description: Уникальный ID выданный Платформой при регистрации юр. лица requestBody: description: Данные SP content: application/json: schema: $ref: '#/components/schemas/ServicePointDataRq' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/ServicePointDataInfo' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' get: operationId: getServicePointList summary: Получить список SP description: >- Получить список SP для юр.лица. tags: - authApi parameters: - in: path name: extEntityId style: simple required: true example: 12%ABq1+2 schema: type: string description: Уникальный ID выданный Платформой при регистрации юр. лица - in: query name: name description: Опциональный фильтр по name required: false example: NN01231 schema: type: string responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/ServicePointListResult' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /auth/sp/{extEntityId}/{name}: put: operationId: updateServicePoint summary: Изменить SP description: >- Изменить некоторые параметры SP. В частности, для установки данных аутентификации. Не заполненные или null параметры не меняются запросом. Управление каждым элементом links не предусмотрено. Меняется сразу все, если указаны элементы списка. На данный момент разрешен только режим TLS и BEARER аутентификации. tags: - authApi parameters: - in: path name: extEntityId style: simple required: true example: 12%ABq1+2 schema: type: string description: Уникальный ID выданный Платформой при регистрации юр. лица - in: path name: name description: SP.name required: true example: NN01231 schema: type: string requestBody: description: Данные SP content: application/json: schema: $ref: '#/components/schemas/ServicePointUpdData' responses: 200: description: Успешное выполнение. Измененый SP content: application/json: schema: $ref: '#/components/schemas/ServicePointDataInfo' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' delete: operationId: deleteServicePoint summary: Удалить SP description: >- Получить список SP для юр.лица. tags: - authApi parameters: - in: path name: extEntityId style: simple required: true example: 12%ABq1+2 schema: type: string description: Уникальный ID выданный Платформой при регистрации юр. лица - in: path name: name description: SP.name required: true example: NN01231 schema: type: string responses: 200: description: Успешное выполнение. Удаленный SP content: application/json: schema: $ref: '#/components/schemas/ServicePointDataInfo' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /qr: post: operationId: addQrCode summary: Зарегистрировать QR код description: >- Запрос доступен только для уже зарегистрированного ТСП. Запрос предполагает цикл обмена сообщениями Платформа-ОПКЦ СБП и занимает определенное время Поля, указывающие на счет, могут отсутствовать, если у ТСП есть счет по умолчанию. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - merchantApi parameters: - in: query name: mediaType description: Опциональное получение QR-картинки required: false schema: type: string enum: [ image/png, image/svg+xml ] - in: query name: size description: Ширина/высота изображения required: false schema: type: integer default: 300 minimum: 200 requestBody: description: Регистрационные даныне QR кода content: application/json: schema: $ref: '#/components/schemas/QRCodeGenerateRequest' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/QRCode' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден по id content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: Отказ по прикладным причинам. content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /qr/uni/{id}: put: operationId: updUniQrcReusable summary: Изменения параметров универсального многоразовго QRC description: >- Запрос доступен только для уже зарегистрированного ТСП. Запрос предполагает цикл обмена сообщениями Платформа-ОПКЦ СБП и занимает определенное время * Если поле(я) счета не указано, то счет не меняется. * Если поле merchantId не указано, то ТСП не меняется. (Для канала банка допустимо указывать ТСП другого юр.лица. Кассовая ссылка будет привязана к другому юр.лицу) * Если поле redirectUrl не указано, то url не меняется. * Если description не указан (null), то не меняется. * Если поле accountDr не указано (null), то счет Цифрового рубля не меняется. (имеет смысл только для QRC, созданных как UniQRC и в списке платежных сервисов есть Цифровой Рубль) * Если поле uniQrcCfgId не указано (null), то список платежных сервисов не меняется. (изменение списка платежных сервисов доступно только если изначально кассовая ссылка создавалась как Универсальный QRC) * Если поле paymentPageUrl не указано, то url не меняется. (Поле paymentPageUrl имеет смысл только для QRC, созданных как UniQRC) Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - merchantApi parameters: - in: path name: id style: simple required: true schema: type: string description: id полученный в ответе на запрос генерации QR кода. Может использоваться как qrcId так и localQrcId. Тип id определится по характерным признакам id requestBody: description: Новые даныне Универсального многоразового QR кода content: application/json: schema: $ref: '#/components/schemas/UpdateUniQrcRequest' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/QRCode' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден по id content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: Отказ по прикладным причинам. content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /b2b/qr: post: operationId: addQrCodeB2B summary: Зарегистрировать QR код для B2B description: >- Запрос доступен только для уже зарегистрированного ТСП. Запрос предполагает цикл обмена сообщениями Платформа-ОПКЦ СБП и занимает определенное время Поля, указывающие на счет, могут отсутствовать, если у ТСП есть счет по умолчанию. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - merchantApi parameters: - in: query name: mediaType description: Опциональное получение QR-картинки required: false schema: type: string enum: [ image/png, image/svg+xml ] - in: query name: size description: Ширина/высота изображения required: false schema: type: integer default: 300 minimum: 200 requestBody: description: Регистрационные даныне QR кода content: application/json: schema: $ref: '#/components/schemas/QrcB2bGenerateRequest' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/QrcB2B' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден по id content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: Отказ по прикладным причинам. content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /qr/{id}: delete: operationId: delQrCode summary: Удаление QRC локальное. description: >- Удаление QRC (точнее перенос в долговременный архив без возможности автоматизированного востановления). Прием платежей по данному статическому или динамическому QRC будет невозможен (если настройки авторизации предусматривают проверку входящего QRC в Агенте ТСП). В СБП API удаления QRC нет. Поэтому данную функция не обеспечивает гарантированного запрета на платеж со стороны плательщика. Это просто сервисная функция для уменьшения размера локального списка QRC в Агенте ТСП. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - merchantApi parameters: - in: path name: id style: simple required: true schema: type: string description: id полученный в ответе на запрос генерации QR кода. Может использоваться как qrcId так и localQrcId. Тип id определится по характерным признакам id responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/QRCode' 400: description: Неверные параметры запроса content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден по id content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /b2b/qr/{id}: delete: operationId: delQrCodeB2B summary: Удаление QRC B2B локальное. description: >- Удаление QRC (точнее перенос в долговременный архив без возможности автоматизированного востановления). Прием платежей по данному статическому или динамическому QRC будет невозможен (если настройки авторизации предусматривают проверку входящего QRC в Агенте ТСП). Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - merchantApi parameters: - in: path name: id style: simple required: true schema: type: string description: id полученный в ответе на запрос генерации QR кода. Может использоваться как qrcId так и localQrcId. Тип id определится по характерным признакам id responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/QrcB2B' 400: description: Неверные параметры запроса content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден по id content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /qr/slist/{extEntityId}: get: operationId: getStaticQrCodes summary: Получить статические QR коды description: >- Запрос возвращает список статических QR кодов. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - merchantApi parameters: - in: path name: extEntityId style: simple required: true schema: type: string description: Уникальный ID выданный Платформой при регистрации юр. лица - in: query name: merchantId required: false schema: type: string example: MF0000000001 description: >- Id ТСП СБП, полученный после ее успешной регистрации. Отсутствие в параметрах допустимо если зарегистрирована только одно ТСП на юр.лицо - in: query name: account required: false schema: type: string example: '40702810100010000001' description: >- Номер счета. - in: query name: accAlias schema: type: string required: false example: '56ac3fb2-c929-45c4-9042-2201de1df638' description: Альтернатива указанию номера счета account responses: 200: description: Успешное выполнение content: application/json: schema: type: array items: type: string description: QRC Id example: 'AS10004LJ4J9UANJ8VNA9B8VA0THSCDI' 400: description: Неверные параметры запроса content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден по id content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /qr/image/{qrcId}: get: operationId: getQrCodeImage summary: Получить изображение QR кода. description: >- Запрос предполагает, что генерация QR кода уже была выполнена Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - merchantApi parameters: - in: path name: qrcId style: simple required: true schema: type: string description: СБП id полученный в ответ на запрос генерации динамического QR кода - in: query name: mediaType description: Опциональное получение QR-картинки required: false schema: type: string enum: [ image/png, image/svg+xml ] default: image/png - in: query name: size description: Ширина/высота изображения required: false schema: type: integer default: '300' minimum: 200 responses: 200: description: PNG QR код content: image/png: schema: type: string format: binary 400: description: Неверные параметры запроса content: text/plain: schema: type: string 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден по id content: text/plain: schema: type: string 406: description: QRC не доступен для использования (прием запрещен). В тексте выводится информация о причине. content: text/plain: schema: type: string 410: description: QRC не доступен для использования (просрочен). В тексте выводится информация о причине. content: text/plain: schema: type: string 500: description: Общая (неопределенная) критическая проблема content: text/plain: schema: type: string /b2b/qr/image/{qrcId}: get: operationId: getQrcB2bImage summary: Получить изображение B2B QR кода. description: >- Запрос предполагает, что генерация QR кода уже была выполнена Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - merchantApi parameters: - in: path name: qrcId style: simple required: true schema: type: string description: СБП id полученный в ответ на запрос генерации динамического QR кода - in: query name: mediaType description: Опциональное получение QR-картинки required: false schema: type: string enum: [ image/png, image/svg+xml ] default: image/png - in: query name: size description: Ширина/высота изображения required: false schema: type: integer default: '300' minimum: 200 responses: 200: description: PNG QR код content: image/png: schema: type: string format: binary 400: description: Неверные параметры запроса content: text/plain: schema: type: string 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден по id content: text/plain: schema: type: string 406: description: QRC не доступен для использования (прием запрещен). В тексте выводится информация о причине. content: text/plain: schema: type: string 410: description: QRC не доступен для использования (просрочен). В тексте выводится информация о причине. content: text/plain: schema: type: string 500: description: Общая (неопределенная) критическая проблема content: text/plain: schema: type: string /qr/state/{id}: put: operationId: setQrCodeState summary: Изменить срок действия description: >- Позволяет в любой момент после создания изменить срок действия QRC в Агенте ТСП. Срок действия в СБП изменить не возможно. tags: - merchantApi parameters: - in: path name: id style: simple required: true schema: type: string description: id полученный в ответе на запрос генерации динамического QR кода. Может использоваться как qrcId так и localQrcId. Тип id определится по характерным признакам id requestBody: description: Новый срок действия content: application/json: schema: $ref: '#/components/schemas/QRCodeStateRequest' responses: 200: description: Состояние QRC content: application/json: schema: $ref: '#/components/schemas/QRCodeStateResult' 400: description: Неверные параметры запроса content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден по id content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' get: operationId: getQrCodeState summary: Получить статус QR кода. description: >- Возвращает статус QR кода (заблокирована оплата или нет). Для динамического QR кода возвращает так же информацию о статусе платежа. Перевод по QR коду может быть запрещен (см. /entity/state/ PUT) если: * Запрещен прием оплаты для юридического лица целиком * Запрещен прием оплаты ТСП на который был выдан QR код * Запрещен прием оплаты счета на который был выдан QR код Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - merchantApi parameters: - in: path name: id style: simple required: true schema: type: string description: id полученный в ответе на запрос генерации динамического QR кода. Может использоваться как qrcId так и localQrcId. Тип id определится по характерным признакам id - in: query name: timeout style: simple required: false schema: type: integer description: >- Опционально можно указать время ожидания ответа в ms от системы учета Цифрового Рубля с асинхронным API. Если не указано, то по умолчанию настройками банка (варьируются для банков). Используется только для ЦР. responses: 200: description: Состояние QRC content: application/json: schema: $ref: '#/components/schemas/QRCodeStateResult' 400: description: Неверные параметры запроса content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден по id content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /b2b/qr/state/{id}: get: operationId: getQrcB2bState summary: Получить статус B2B QR кода. description: >- Возвращает статус B2B QR кода (заблокирован перевод или нет). Для одноразового QR кода возвращает так же информацию о статусе платежа. Перевод по QR коду может быть запрещен (см. /entity/state/ PUT) если: * Запрещен прием оплаты для юридического лица целиком * Запрещен прием оплаты ТСП на который был выдан QR код * Запрещен прием оплаты счета на который был выдан QR код Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - merchantApi parameters: - in: path name: id style: simple required: true schema: type: string description: id полученный в ответе на запрос B2B QR кода. Может использоваться как qrcId так и localQrcId. Тип id определится по характерным признакам id responses: 200: description: Состояние QRC content: application/json: schema: $ref: '#/components/schemas/QrcB2bStateResult' 400: description: Неверные параметры запроса content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден по id content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /cash-qr: post: operationId: addCashQrc summary: Зарегистрировать QRC - Кассовую ссылку description: >- Запрос доступен только для уже зарегистрированного ТСП. Запрос предполагает цикл обмена сообщениями Платформа-ОПКЦ СБП и занимает определенное время Поля, указывающие на счет, могут отсутствовать, если у ТСП есть счет по умолчанию. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - merchantApi parameters: - in: query name: mediaType description: Опциональное получение QR-картинки required: false schema: type: string enum: [ image/png, image/svg+xml ] - in: query name: size description: Ширина/высота изображения required: false schema: type: integer default: 300 minimum: 200 requestBody: description: Регистрационные даныне QR кода content: application/json: schema: $ref: '#/components/schemas/CashQRCGenerateRequest' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/CashQrcState' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден по id content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: Отказ по прикладным причинам. content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /cash-qr/{id}: delete: operationId: delCashQrc summary: удаление кассовой ссылки локальное. description: >- Удаление QRC (точнее перенос в долговременный архив без возможности автоматизированного восстановления). Активация QRC будет не возможна (если настройки авторизации предусматривают проверку в Агенте ТСП). Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - merchantApi parameters: - in: path name: id style: simple required: true schema: type: string description: id полученный в ответе на запрос генерации QR кода. Может использоваться как qrcId так и localQrcId. Тип id определится по характерным признакам id responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/CashQrcState' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' put: operationId: updateCashQrc summary: Изменить параметры кассовой ссылки description: >- Запрос доступен для уже зарегистрированной кассовой ссылки (как обычной, так и типа Универсальный QRC). Запрос предполагает цикл обмена сообщениями Платформа-ОПКЦ СБП и занимает определенное время. Параметр uniQrcCfgId <> null не допустим для обычного QRC (не универсального) и их указание будет вызвать ошибку. Значения парамеров paymentPageUrl, accountDr для обычного QRC игнорируются (не поддерживаются СБП на данный момент). * Если поле(я) счета не указано, то счет не меняется. * Если поле merchantId не указано, то ТСП не меняется. (Для канала банка допустимо указывать ТСП другого юр.лица. Кассовая ссылка будет привязана к другому юр.лицу) * Если поле redirectUrl не указано, то url не меняется. * Если description не указан (null), то не меняется. * Если поле accountDr не указано (null), то счет Цифрового рубля не меняется. (имеет смысл только для QRC, созданных как UniQRC и в списке платежных сервисов есть Цифровой Рубль) * Если поле uniQrcCfgId не указано (null), то список платежных сервисов не меняется. (изменение списка платежных сервисов доступно только если изначально кассовая ссылка создавалась как Универсальный QRC) * Если поле paymentPageUrl не указано, то url не меняется. (Поле paymentPageUrl имеет смысл только для QRC, созданных как UniQRC) Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - merchantApi parameters: - in: path name: id style: simple required: true schema: type: string description: id полученный в ответе на запрос генерации QR кода. Может использоваться как qrcId так и localQrcId. Тип id определится по характерным признакам id requestBody: description: Данные для изменения счета content: application/json: schema: $ref: '#/components/schemas/CashQRCUpdateRequest' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/CashQrcState' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /cash-qr/list/{extEntityId}: get: operationId: getCashQrCodes summary: Получить Кассовые ссылки description: >- Запрос возвращает список кассовых ссылок. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - merchantApi parameters: - in: path name: extEntityId style: simple required: true schema: type: string description: Уникальный ID выданный Платформой при регистрации юр. лица - in: query name: merchantId required: false schema: type: string example: MF0000000001 description: >- Id ТСП СБП, полученный после ее успешной регистрации. - in: query name: account required: false schema: type: string example: '40702810100010000001' description: >- Номер счета. - in: query name: accAlias schema: type: string required: false example: '56ac3fb2-c929-45c4-9042-2201de1df638' description: Альтернатива указанию номера счета account responses: 200: description: Успешное выполнение content: application/json: schema: type: array items: type: string description: QRC Id example: 'AS10004LJ4J9UANJ8VNA9B8VA0THSCDI' 400: description: Неверные параметры запроса content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден по id content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /cash-qr/image/{qrcId}: get: operationId: getCashQrcImage summary: Получить изображение QR кода кассовой ссылки. description: >- Запрос предполагает, что генерация QR кода уже была выполнена Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - merchantApi parameters: - in: path name: qrcId style: simple required: true schema: type: string description: СБП id полученный в ответ на запрос генерации динамического QR кода - in: query name: mediaType description: Опциональное получение QR-картинки required: false schema: type: string enum: [ image/png, image/svg+xml ] default: image/png - in: query name: bottomText description: Текст внизу картинки (только image/png). Допустимы переводы строки. required: false schema: type: string - in: query name: topText description: Текст сверху картинки (только image/png). Допустимы переводы строки. required: false schema: type: string - in: query name: fontSzK description: соотношение высоты шрифта к размеру. По умолчанию = 21 required: false schema: type: number format: int32 - in: query name: size description: Ширина/высота изображения required: false schema: type: integer default: '300' minimum: 200 responses: 200: description: PNG QR код content: image/png: schema: type: string format: binary 400: description: Неверные параметры запроса content: text/plain: schema: type: string 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден по id content: text/plain: schema: type: string 406: description: QRC не доступен для использования (прием запрещен). В тексте выводится информация о причине. content: text/plain: schema: type: string 410: description: QRC не доступен для использования (просрочен). В тексте выводится информация о причине. content: text/plain: schema: type: string 500: description: Общая (неопределенная) критическая проблема content: text/plain: schema: type: string /cash-qr/state/{id}: put: operationId: activateCashQrc summary: Активировать кассовую ссылку description: >- Выполняет запрос активации кассовой ссылки tags: - merchantApi parameters: - in: path name: id style: simple required: true schema: type: string description: id полученный в ответе на запрос генерации динамического QR кода. Может использоваться как qrcId так и localQrcId. Тип id определится по характерным признакам id requestBody: description: Данные активации content: application/json: schema: $ref: '#/components/schemas/CashQrcActivateRequest' responses: 200: description: Состояние QRC content: application/json: schema: $ref: '#/components/schemas/CashQrcState' 400: description: Неверные параметры запроса content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден по id content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 403: description: Отказ СБП в активации кассовой ссылки. content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 406: description: Невозможно выполнить запрос, происходит выполнение Операции (RQ05022 - ОПЕРАЦИОННЫЙ БЮЛЛЕТЕНЬ #04.2023). content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' delete: operationId: deactivateCashQrc summary: Деактивировать кассовую ссылку description: >- Выполняет запрос деактивации кассовой ссылки tags: - merchantApi parameters: - in: path name: id style: simple required: true schema: type: string description: id полученный в ответе на запрос генерации динамического QR кода. Может использоваться как qrcId так и localQrcId. Тип id определится по характерным признакам id responses: 200: description: Состояние QRC content: application/json: schema: $ref: '#/components/schemas/CashQrcState' 400: description: Неверные параметры запроса content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден по id content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 403: description: Отказ СБП в деактивации кассовой ссылки. content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 406: description: Невозможно выполнить запрос, происходит выполнение Операции (RQ05022 - ОПЕРАЦИОННЫЙ БЮЛЛЕТЕНЬ #04.2023). content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' get: operationId: getCashQrcState summary: Получить информацию по кассовой сcылке. description: >- Получить информацию по кассовой сcылке, как статической ссылке. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - merchantApi parameters: - in: path name: id style: simple required: true schema: type: string description: id полученный в ответе на запрос генерации кассовой ссылки. (qrcId или localQrcId) - in: query name: timeout style: simple required: false schema: type: integer description: >- Опционально можно указать время ожидания ответа в ms от системы учета Цифрового Рубля с асинхронным API. Если не указано, то по умолчанию настройками банка (варьируются для банков). Используется только для ЦР. responses: 200: description: Состояние QRC content: application/json: schema: $ref: '#/components/schemas/CashQrcState' 400: description: Неверные параметры запроса content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден по id content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /cash-qr/state/history/{id}/{paramsId}: get: operationId: getCashQrcHistoryState summary: Получить информацию по истории кассовой сcылки. description: >- Не гарантировано, что история будет хранится за все время существование ссылки (как инимум за последние 24 часа). Поскольку данная операция предназначена для оперативного получения информации. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - merchantApi parameters: - in: path name: id style: simple required: true schema: type: string description: id полученный в ответе на запрос генерации кассовой ссылки. (qrcId или localQrcId) - in: path name: paramsId style: simple required: true schema: type: string description: paramsId (терминология НСПК) полученный при активации ссылки. responses: 200: description: Состояние QRC content: application/json: schema: $ref: '#/components/schemas/CashQrcHistoryState' 400: description: Неверные параметры запроса content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден по id content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /refund/check: post: operationId: refundCheckRq summary: Проверка возможности возврата. description: >- Проверка возможности возврата. Надо иметь в виду, что время между запросом СБП на возможность совершить перевод и самим переводом ограничено ТC2B ОПКЦ 25-28 = 180 сек. Т.е. после запроса /refund/check сразу (dt<180cек) должен идти /refund/confirm. Иначе в /refund/confirm будет однозначный отказ СБП. Если это невозможно обеспечить, то нужно пользоваться /refund (возврат за один запрос) и модуль Агента ТСП сам поддержит цикл перевода. Доступ к запросу от имени ТСП/юр.лица может быть отключен настройками банка. см. GET /config Для ЦР, данный запрос только проверяет, что исходный платеж по Кассовой ссылке и/или по QR коду был сделан по ЦР. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - merchantApi requestBody: description: Данные для возврата content: application/json: schema: $ref: '#/components/schemas/RefundCheckRequest' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/RefundCheckStatus' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден по id content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: Условия платежа не корректны content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /refund/confirm: post: operationId: refundConfirmRq summary: Подтверждение возврата после проверки возможности возврата. description: >- Следует учесть, что максимальное время на выполнение цикла возврата в НСПК(Tc2b бп23-34 = 5минут) довольно большое. ПО клиента должено это учитывать. Одноступенчатый запрос отмены можно использовать, если данные клиента (PAM) не требуется проверять в ТСП перед возвратом. Повторые запросы (с тем же refId) будут возвращать фактический статус исходного запроса возврата. Доступ к запросу от имени ТСП/юр.лица может быть отключен настройками банка. см. GET /config Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - merchantApi requestBody: description: Данные для возврата content: application/json: schema: $ref: '#/components/schemas/RefundConfirmRequest' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/RefundStatus' 202: description: Запрос успешно принят в обработку content: application/json: schema: $ref: '#/components/schemas/RefundRef' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: Условия платежа не корректны или другая прикладная ошибка (обращения во внешнюю систему, например) content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден по id content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /refund: post: operationId: refundSingleRq summary: Возврат по платежу одним запросом. description: >- Следует учесть, что максимальное время на выполнение цикла возврата в НСПК(Tc2b бп23-34 = 5минут) довольно большое. ПО клиента должено это учитывать и не расчитываеть на возврат 200 во всех случаях. Максимальное время до возврата 200/202 определяется настройками хоста и не специфицируется. По умолчанию - 30 сек. Но может быть скорректировано в меньщую строну. Доступ к запросу от имени ТСП/юр.лица может быть отключен настройками банка. см. GET /config Одноступенчатый запрос отмены можно использовать, если данные клиента (PAM) не требуется проверять в ТСП перед возвратом. Повторые запосы (с тем же refId) будут возвращать фактический статус исходного запроса возврата. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - merchantApi requestBody: description: Данные для возврата content: application/json: schema: $ref: '#/components/schemas/RefundRequest' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/RefundStatus' 202: description: Запрос успешно принят в обработку content: application/json: schema: $ref: '#/components/schemas/RefundRef' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден по id content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: Условия платежа не корректны или другая прикладная ошибка (обращения во внешнюю систему, например) content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /refund/{internalTxId}: get: operationId: getRefundInfo summary: информация по возврату. description: >- Запрос используется, совместно с /refund POST при ответе HTTP code 202 tags: - merchantApi parameters: - in: path name: internalTxId style: simple required: true schema: type: string description: internalTxId полученный в ответ (HTTP code 202) на запрос /refund POST responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/RefundStatus' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: Условия платежа не корректны или другая прикладная ошибка (обращения во внешнюю систему, например) content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден по id content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /refund/order: post: operationId: refundOrderRq summary: Заявка на возврат по платежу. description: >- Регистарция заявки на B2C возврат в банк. Сам возврат выполняет банк после необходимых проверок. Статус возврата (если банк его выполнил) ТСП получает по: * callback вызову (как обычно) * опросом GET /refund/{internalTxId} Статус обработки в банке * опросом GET /refund/order/{internalTxId} Получение статуса /refund/order/ и /refund/ опросом допустимо только в интерактивном режиме. Никаких автоматических опросов с периодом не допустимо. Поскольку время выполнения заявки банком никак не рагламентировано. Доступ к запросу может быть отключен настройками банка. см. GET /config Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - merchantApi requestBody: description: Данные для возврата content: application/json: schema: $ref: '#/components/schemas/RefundOrderRequest' responses: 200: description: Запрос успешно принят в обработку content: application/json: schema: $ref: '#/components/schemas/RefundRef' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден по id content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: Условия платежа не корректны или другая прикладная ошибка (обращения во внешнюю систему, например) content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /refund/order/{internalTxId}: get: operationId: getRefundOrderInfo summary: информация по заявке на возврат. description: >- Запрос используется, совместно с /refund/order POST. Возвращает состояние заявки в банке. tags: - merchantApi parameters: - in: path name: internalTxId style: simple required: true schema: type: string description: internalTxId полученный в ответ /refund/order POST responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/RefundOrderStatus' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: Условия платежа не корректны или другая прикладная ошибка (обращения во внешнюю систему, например) content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден по id content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /subscribe: post: operationId: subscribePayRq summary: Запрос платежа по подписке. description: >- Выполняет запрос платежа по подписке. QRC Типа 02 должен быть быть создан заранее. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу В запросе может быть использован subscriptionQrcId и/или SubscriptionToken, полученный /webapi-doc/callback#operation/rcvEventSubscription. Поскольку по одному QRC подписки может быть выполнена только одна подписка, то эти ID соотносятся как "один к одному". Если указаны оба, то заодно проверяется что эти ID ссылаются на одну подписку. tags: - merchantApi requestBody: description: Данные платежа content: application/json: schema: $ref: '#/components/schemas/RequestSubscribePay' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/SubscribeRqPayStatus' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден по id content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: Условия платежа не корректны или другая прикладная ошибка (обращения во внешнюю систему, например) content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /transfer/check: post: operationId: transferCheckRq summary: Запрос проверки возможности перевода B2C. description: >- Данный запрос порождает ТОЛЬКО начало перевода СБП (D01,D02) Надо иметь в виду, что время между запросом СБП на возможность совершить перевод и самим переводом ограничено ТC2B ОПКЦ 25-28 = 180 сек. Т.е. после запроса /transfer/check сразу (dt<180cек) должен идти /transfer/confirm. Иначе в /transfer/confirm будет однозначный отказ СБП. Если это невозможно обеспечить, то нужно пользоваться /transfer (перевод за один запрос) и модуль Агента ТСП сам поддержит цикл перевода. Обязательно должно быть указан счет. Либо ссылка на уже зарегистрированный счет (accAlias) либо сам счет (account). Счет отправителя являтеся обязательным в протоколе СБП Доступ к запросу от имени ТСП/юр.лица может быть отключен настройками банка. см. GET /config Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - transferApi requestBody: description: Данные для перевода content: application/json: schema: $ref: '#/components/schemas/TransferCheckRequest' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/TransferCheckStatus' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: Условия платежа не корректны или другая прикладная ошибка (обращения во внешнюю систему, например) content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /transfer/confirm: post: operationId: transferConfirmRq summary: Перевод B2C после запроса на возможность перевода. description: >- Следует учесть, что максимальное время на выполнение последовательности запросов СБП перевода довольно большое. ПО клиента должено это учитывать. Повторые запросы (с тем же Id) будут возвращать фактический статус исходного запроса перевода. Доступ к запросу от имени ТСП/юр.лица может быть отключен настройками банка. см. GET /config Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - transferApi requestBody: description: Данные для перевода content: application/json: schema: $ref: '#/components/schemas/TransferConfirmRequest' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/TransferStatus' 202: description: Запрос успешно принят в обработку content: application/json: schema: $ref: '#/components/schemas/TransferRef' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: Условия платежа не корректны или другая прикладная ошибка (обращения во внешнюю систему, например) content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /transfer: post: operationId: transferRq summary: Перевод B2C за один запрос. description: >- Следует учесть, что максимальное время на выполнение последовательности запросов СБП перевода довольно большое. ПО клиента должено это учитывать. Повторые запросы (с тем же refId) будут возвращать фактический статус исходного запроса перевода. Обязательно должно быть указан счет. Либо ссылка на уже зарегистрированный счет (accAlias) либо сам счет (account). Счет отправителя являтеся обязательным в протоколе СБП. Доступ к запросу от имени ТСП/юр.лица может быть отключен настройками банка. см. GET /config Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - transferApi requestBody: description: Данные для возврата content: application/json: schema: $ref: '#/components/schemas/TransferRequest' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/TransferStatus' 202: description: Запрос успешно принят в обработку content: application/json: schema: $ref: '#/components/schemas/TransferRef' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: Условия платежа не корректны или другая прикладная ошибка (обращения во внешнюю систему, например) content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /transfer/order: post: operationId: transferOrderRq summary: Заявка на B2C перевод. description: >- Регистарция заявки на B2C перевод в банк. Сам перевод выполняет банк после необходимых проверок. Статус перевода ТСП получает по: * callback вызову (как обычно) * опросом GET /transfer/{internalTxId} Получение статуса опросом допустимо только в интерактивном режиме. Никаких автоматических опросов с периодом не допустимо. Поскольку время выполнения заявки банком никак не рагламентировано. Доступ к запросу может быть отключен настройками банка. см. GET /config Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - transferApi requestBody: description: Данные для возврата content: application/json: schema: $ref: '#/components/schemas/TransferOrderRequest' responses: 200: description: Запрос успешно принят в обработку content: application/json: schema: $ref: '#/components/schemas/TransferRef' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: Условия платежа не корректны или другая прикладная ошибка (обращения во внешнюю систему, например) content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /transfer/{internalTxId}: get: operationId: getTransferInfo summary: информация по переводу. description: >- Запрос используется, совместно с /transfer и /transfer/confirm POST при ответе HTTP code 202 tags: - transferApi parameters: - in: path name: internalTxId style: simple required: true schema: type: string description: internalTxId полученный в ответ (HTTP code 202) на запрос /refund POST responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/TransferStatus' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: другая прикладная ошибка (обращения во внешнюю систему, например) content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /b2b/transfer/qrc: get: operationId: transferInfoB2B summary: Запросить информацию по QRC B2B description: >- Иницируется запрос в СБП от имени банка отправителя для получения информации по QRC Доступ к запросу от имени ТСП/юр.лица может быть отключен настройками банка. см. GET /config Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - transferB2bApi parameters: - in: query name: qrcId description: Указывается либо qrcId либо qrcPayload required: false example: 'AS1B006N8B96ASV183EAIN4O94VPJ8V1' schema: type: string - in: query name: qrcPayload description: Указывается либо qrcId либо qrcPayload example: 'https://b2b.cbrpay.ru/AS1B006N8B96ASV183EAIN4O94VPJ8V1' required: false schema: type: string responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/TransferInfoB2B' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: Условия платежа не корректны content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /b2b/transfer: post: operationId: transferB2bRq summary: Запросить выполнение перевода B2B. description: >- Следует учесть, что максимальное время на выполнение последовательности запросов СБП перевода довольно большое. ПО клиента должено это учитывать. Повторые запросы (с тем же refId) будут возвращать фактический статус исходного запроса перевода. Доступ к запросу от имени ТСП/юр.лица может быть отключен настройками банка. см. GET /config Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - transferB2bApi requestBody: description: Данные для возврата content: application/json: schema: $ref: '#/components/schemas/TransferB2bRequest' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/B2bTransferStatus' 202: description: Запрос успешно принят в обработку content: application/json: schema: $ref: '#/components/schemas/B2bTransferRef' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: Условия платежа не корректны content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /b2b/transfer/{internalTxId}: get: operationId: getTransferB2bInfo summary: информация по переводу. description: >- Запрос используется, совместно c POST /b2b/transfer при ответе HTTP code 202 tags: - transferB2bApi parameters: - in: path name: internalTxId style: simple required: true schema: type: string description: internalTxId полученный в ответ (HTTP code 202) на запрос /refund POST responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/B2bTransferStatus' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /entity: post: operationId: registerEntity summary: Регистрация ИП, юридического лица (ЮЛ), самозанятого, ЮЛ-нерезидента description: >- Запрос предназначен для регистрации юридического лица, ИП, самозанятого и ЮЛ-нерезидента, одновременно со счетами и ТСП. По набору данных автоматически определяется тип * Если присутствует ogrn, то это ИП или юр.лицо. countryCode не указано или 'RU'. Поля ФИО опциональны. Если поля ФИО указаны, то фиксируется просто как доп.информация (сейчас СБП ФИО учередителя не возвращает при регистрации) _Пример: {"entity": {"ogrn": "306103009833110"},,_ * Если не указано ogrn и countryCode не указано или countryCode 'RU', то считается, что это самозанятый. Поля firstName, lastName и inn для него обязательны _Пример: '{"entity": {"inn": "571484371719","lastName": "Петрова","firstName": "Анна Мария", "middleName": "Сергеевна"},,_ * Если countryCode указано и не 'RU', то считается что это ЮЛ-нерезидента. Поля name, inn, kpp обязательны. Поля ФИО опциональны. Если указаны, то фиксируется просто как доп.информация _Пример: '{"entity": {"inn": "571484371719","name": "OOO Ромашка","kpp": "783587001","countryCode": "BY"},,_ Если требуется отложенная региcтрация (подтверждение сотрудникми банка через АРМ Агента ТСП), то должен быть указано regAttr.readyForReg = false. До тех пор пока regAttr.readyForReg = false, регистарция в СБП не выполняеся. Аутентификация запроса только по сертификату банка. T.e. регистарция доступна только банку. tags: - registrationApi requestBody: description: Регистрационные даныне required: true content: application/json: schema: $ref: '#/components/schemas/RegistrationEntityRequest' responses: 200: description: Результат регистрации content: application/json: schema: $ref: '#/components/schemas/RegistrationEntityResult' 400: description: Неправильный запрос content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: 'Уже существует' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' get: operationId: findEntity summary: Поиск организации по атрибутам. description: >- Используется для поиска организации по атрибутам (одному или комбинации по совпадению всех), Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - registrationApi parameters: - in: query name: ogrn description: По ОГРН required: false schema: type: string - in: query name: inn description: По ИНН required: false schema: type: string responses: 200: description: Результат проверки регистрации content: application/json: schema: $ref: '#/components/schemas/FindEntityResult' 400: description: Неправильный запрос content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Данные не найдены content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /entity/{extEntityId}: put: operationId: entityUpdate summary: Изменение параметров ИП, юридического лица (ЮЛ), самозанятого, ЮЛ-нерезидента. description: >- Запрос предназначен для модификации параметров ИП, юридического лица (ЮЛ), самозанятого, ЮЛ-нерезидента. Позволяет корректировать параметры ИП, юридического лица (ЮЛ), самозанятого, ЮЛ-нерезидента, только если регистарция не завершена или в ней отказано. Если регистрация завершена, то regAttr.readyForReg, ogrn, inn и ФИО в запросе игнорируются. Если была не успешная регистрация, то информация о ней сбрасывается и выпоняется запрос регистарции заново. Аутентификация запроса только по сертификату банка. T.e. регистарция доступна только банку. tags: - registrationApi parameters: - in: path name: extEntityId style: simple required: true schema: type: string example: 12%ABq1+2 description: Уникальный ID Платформы выданный при регистрации requestBody: description: Регистрационные даныне required: true content: application/json: schema: $ref: '#/components/schemas/RegEntity' responses: 200: description: Результат регистрации content: application/json: schema: $ref: '#/components/schemas/RegistrationEntityResult' 400: description: Неправильный запрос content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' delete: operationId: entityDelete summary: ИП, юридического лица (ЮЛ), самозанятого, ЮЛ-нерезидента. description: >- Запрос предназначен для удаление ИП, юридического лица (ЮЛ), самозанятого, ЮЛ-нерезидента. При условии, что не прошла регистрцию в СБП Аутентификация запроса только по сертификату банка. T.e. регистарция доступна только банку. tags: - registrationApi parameters: - in: path name: extEntityId style: simple required: true schema: type: string example: 12%ABq1+2 description: Уникальный ID Платформы выданный при регистрации responses: 200: description: Результат удаления content: application/json: schema: type: object 400: description: Неправильный запрос content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: Уже зарегистрирован в СБП content: application/json: schema: $ref: '#/components/schemas/StateResult' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /entity/account/{extEntityId}: post: operationId: accountRegistration summary: Регистрация дополнительного счета description: >- Запрос предназначен для регистрации дополнительного счета юридического лица или самозанятого. Запрос опционален. Используется, если появился новый счет, не учтенный на этапе регистрации . Если требуется отложенная регистрация (подтверждение сотрудниками банка через АРМ Агента ТСП), то должен быть указано regAttr.readyForReg = false. До тех пор пока regAttr.readyForReg = false, регистрация в СБП не выполняется. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - registrationApi parameters: - in: path name: extEntityId style: simple required: true schema: type: string example: 12%ABq1+2 description: Уникальный ID Платформы выданный при регистрации requestBody: description: Регистрационные даныне required: true content: application/json: schema: type: array items: $ref: '#/components/schemas/Account' responses: 200: description: Результат регистрации content: application/json: schema: $ref: '#/components/schemas/RegistrationResult' 400: description: Неправильный запрос content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: 'Уже существует' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' get: operationId: accountsList summary: Получить спиcок id (внутренний id) счетов организации. description: >- Получить полный спиcок id (внутренний id) счетов организации. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - registrationApi parameters: - in: path name: extEntityId style: simple required: true schema: type: string example: 12%ABq1+2 description: Уникальный ID Платформы выданный при регистрации responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/IdsListResult' 404: description: Не найден content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' put: operationId: accountsUpdate summary: Изменение параметров счета description: >- Запрос предназначен изменения параметров счета организации. Для уже зарегистрированных счетов, измение номера счета и regAttr.readyForReg не имеет смысла и будет проигнорировано. Счет ищется по одному из параметров: account,alias,id Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - registrationApi parameters: - in: path name: extEntityId style: simple required: true schema: type: string example: 12%ABq1+2 description: Уникальный ID Платформы выданный при регистрации requestBody: description: Регистрационные даныне required: true content: application/json: schema: type: array items: $ref: '#/components/schemas/AccountUpdData' responses: 200: description: Результат регистрации content: application/json: schema: $ref: '#/components/schemas/RegistrationResult' 400: description: Неправильный запрос content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /entity/account/{extEntityId}/{id}: get: operationId: accountInfo summary: Информация по счету description: >- Запрос предназначен для получения информации по счету Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - registrationApi parameters: - in: path name: extEntityId style: simple required: true schema: type: string example: 12%ABq1+2 description: Уникальный ID Платформы выданный при регистрации - in: path name: id style: simple required: true schema: type: string description: счет либо alias счета либо внутренний id responses: 200: description: Результат удаления content: application/json: schema: $ref: '#/components/schemas/AccountInfo' 404: description: Не найден content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' delete: operationId: accountDelete summary: Удаление счета description: >- Запрос предназначен для удаления счета юридического лица. Удаление возможно только для счета, который не привязан к ТСП и пр. (нет constrain в БД) Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - registrationApi parameters: - in: path name: extEntityId style: simple required: true schema: type: string example: 12%ABq1+2 description: Уникальный ID Платформы выданный при регистрации - in: path name: id style: simple required: true schema: type: string description: счет либо alias счета либо внутренний id responses: 200: description: Результат удаления content: application/json: schema: $ref: '#/components/schemas/RegistrationResult' 404: description: Не найден content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: Отказ по прикладным причинам. content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /entity/merchant/{extEntityId}: post: operationId: merchantsRegistration summary: Регистрация дополнительного ТСП юридического лица description: >- Запрос предназначен для регистрации дополнительно ТСП. Опциональный запрос. Используется, если появился новый ТСП, не учтенный на этапе регистрации юридического лица. Если требуется отложенная региcтрация (подтверждение сотрудникми банка через АРМ Агента ТСП), то должен быть указано regAttr.readyForReg = false. До тех пор пока regAttr.readyForReg = false, регистарция в СБП не выполняеся. СБП требует (сейчас) МСС=9999 для самозанятых. Тем не менне, в API оставлена возможнсть указать MCC Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - registrationApi parameters: - in: path name: extEntityId style: simple required: true schema: type: string example: 12%ABq1+2 description: Уникальный ID Платформы, выданный при регистрации юр. лица requestBody: description: Регистрационные даныне required: true content: application/json: schema: type: array items: $ref: '#/components/schemas/Merchant' responses: 200: description: Результат регистрации content: application/json: schema: $ref: '#/components/schemas/RegistrationResult' 400: description: Неправильный запрос content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: 'Уже существует' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' get: operationId: merchantsList summary: Получить список (внутренние Id) ТСП организации description: >- Запрос предназначен для получения полного списка идентифиуаторв (внутренних) организаций. Как уже зарегистрированных в СБП, так и не прошедших регистрацию. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - registrationApi parameters: - in: path name: extEntityId style: simple required: true schema: type: string example: 12%ABq1+2 description: Уникальный ID Платформы, выданный при регистрации юр. лица responses: 200: description: Результат регистрации content: application/json: schema: $ref: '#/components/schemas/IdsListResult' 400: description: Неправильный запрос content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: 'Уже существует' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' put: operationId: merchantSetDefAcc summary: Изменение параметров ТСП (одного ТСП) description: >- Запрос предназначен для установки новых параметров одного ТСП. (Не групповая операция. Именно для одного ТСП в данной реализации) ТСП ищется по ссылке на юр.лицо (path: extEntityId) и одному из параметров: id или merchantId (json body). Достаточно указывать только один из параметров (если указан id, то merchantId игнорируется). Сейчас групповые (без указания ТСП для всего Legal Entity) операции не поддерживаются (запрещены и убраны из кода). На практике риск ошибки оказался слишком велик для групповых операций над всеми ТСП одного Legal Entity. (Передача ссылки на ТСП внутри json, а не в path. Данный API нужно принять как данность, пусть это не соответствует представлениям о идеальном API) Параметры которые отправляются в СБП недоступны для модификации, если была успешная регистрация и не модифицируются. Меняются только параметры, указанные в запросе (и не null). Если нужно сбросить значение, то должен быть параметр с пустой строкой (отсутствующий параметр или равный null, значение данного атрибута ТСП не меняет) Запрос так же сбрасывает ошибку регистрации в СБП и отправляет на регистрацию заново. Типичная ошибка СБП это "не правильный" МСС. Данным запросом можно, в частности, изменить МСС и отправить на регистрацию заново. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - registrationApi parameters: - in: path name: extEntityId style: simple required: true schema: type: string example: 12%ABq1+2 description: Уникальный ID Платформы, выданный при регистрации юр. лица requestBody: description: Регистрационные данные required: true content: application/json: schema: type: array items: $ref: '#/components/schemas/MerchantUpdData' responses: 200: description: Результат регистрации content: application/json: schema: $ref: '#/components/schemas/RegistrationResult' 400: description: Неправильный запрос content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /entity/merchant/{extEntityId}/{id}: get: operationId: merchantInfo summary: Информация по ТСП description: >- Запрос предназначен для получения информации по ТСП Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - registrationApi parameters: - in: path name: extEntityId style: simple required: true schema: type: string example: 12%ABq1+2 description: Уникальный ID Платформы, выданный при регистрации юр. лица - in: path name: id style: simple required: true schema: type: string example: '2223' description: локальный id ТСП или СБП id responses: 200: description: Результат регистрации content: application/json: schema: $ref: '#/components/schemas/MerchantInfo' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: 'Не найден' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' delete: operationId: merchantDelete summary: Удаление ТСП description: >- Запрос предназначен для удаления ТСП. Удаление возможно только, если ТСП не зарегистрирован в СБП Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - registrationApi parameters: - in: path name: extEntityId style: simple required: true schema: type: string example: 12%ABq1+2 description: Уникальный ID Платформы, выданный при регистрации юр. лица - in: path name: id style: simple required: true schema: type: string example: '2223' description: локальный id ТСП или СБП id responses: 200: description: Результат регистрации content: application/json: schema: $ref: '#/components/schemas/RegistrationResult' 400: description: Неправильный запрос content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: 'Не найден' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: Уже зарегистрирован в СБП content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /entity/info/{extEntityId}: get: operationId: verifyEntityRegistration summary: Проверка статуса регистрации ИП, юридического лица (ЮЛ), самозанятого, ЮЛ-нерезидента по внутрененeму id, выданному в ответе на запрос регистарции description: >- Запрос предназначен: * Для проверки состояния регистрации (см. StateResult.regFinished) юр.лица/самозанятого. Поскольку регистрация в СБП выполняется многоступенчато и растянута по времени. * Получения справочно информации о зарегистрированной инфраструктуре * Получения справочно информации о блокировках приема и отправки переводов для юр.лица/самозанятого целиком, его счетов и ТСП (locked поле) Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - registrationApi parameters: - in: path name: extEntityId style: simple allowEmptyValue: false schema: type: string required: true description: Уникальный ID Платформы выданный при регистрации юр.лица (получателя) - in: query name: reqSbpInfo description: Опциональный. true - Если Legal Entity зарегситрирован, то сделать запрос к СБП https://sbp.nspk.ru/api/new/#operation/getLegalData для уточенения name и inn required: false schema: type: boolean responses: 200: description: Результат проверки регистрации content: application/json: schema: $ref: '#/components/schemas/StateResult' 400: description: Неправильный запрос content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Данные не найдены content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /entity/ogrn/{ogrn}: get: deprecated: true operationId: verifyEntityRegistrationByOGRN summary: Проверка статуса регистрации юр.лица,ИП по ОГРН description: >- Запрос предназначен: * Для проверки состояния регистрации (см. StateResult.regFinished) юр.лица. Поскольку регистрация в СБП выполняется многоступенчато и растянута по времени. * Получения справочно информации о зарегистрированной инфраструктуре юр.лица. * Получения справочно информации о блокировках приема и отправки переводов для юр.лица целиком, его счетов и ТСП (locked поле) Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу Запрос устарел, после появления самозанятых и ЮЛ-нерезидентов. После анализа использования в ПО, скорее всего будет удален. Новое ПО не должно использовать данный запрос. tags: - registrationApi parameters: - in: path name: ogrn style: simple allowEmptyValue: false schema: type: string required: true description: ogrn юр.лица - in: query name: reqSbpInfo description: Опциональный. true - Если Legal Entity зарегситрирован, то сделать запрос к СБП https://sbp.nspk.ru/api/new/#operation/getLegalData для уточенения name и inn required: false schema: type: boolean responses: 200: description: Результат проверки регистрации content: application/json: schema: $ref: '#/components/schemas/StateResult' 400: description: Неправильный запрос content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Данные не найдены content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /entity/state/{extEntityId}: put: operationId: controlEntity summary: Управление приемом переводов. description: >- Управление приемом переводов для всей инфраструктуры юридического лица. Позволяет запретить/разрешить C2B переводы как для всего юр.лица целиком, так и для его отдельных счетов и ТСП Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - controlApi parameters: - in: path name: extEntityId style: simple required: true schema: type: string description: Уникальный ID выданный при регистрации полчателя (юр.лица,ИЧП) requestBody: description: Регистрационные даныне required: true content: application/json: schema: $ref: '#/components/schemas/StateControlRequest' responses: 200: description: Результат проверки регистрации content: application/json: schema: $ref: '#/components/schemas/StateResult' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Данные не найдены content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /terminals/link/{termName}/{route}: post: operationId: addTerminalLink summary: Регистрация привязки POS терминала к ТСП+счет. description: >- Регистрация привязки POS терминала к сочетанию ТСП+счет. Данная привязка используется, когда терминал посылает запрос на получение QRC. Данная информация используется для POS терминалов, которые в запросе ничего кроме своего имени не посылают (не указывают ни номер счета ни ТСП) Для идентификации счета может быть указан либо номер счета (account) либо синоним (accAlias) Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - terminalsLinkApi parameters: - in: path name: termName style: simple required: true schema: type: string description: Уникальный ID терминала с которым он будет приходить за QRC - in: path name: route description: >- ID конкретной настройки терминала required: true schema: type: integer format: int32 requestBody: description: данные для регистрации required: true content: application/json: schema: $ref: '#/components/schemas/TerminalLinkAdd' responses: 200: description: Результат регистрации content: application/json: schema: $ref: '#/components/schemas/TerminalLinkInfo' 400: description: Неправильный запрос content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: 'Уже существует' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' put: operationId: updTerminalLink summary: Изменение параметров привязки POS терминала к ТСП+счет. description: >- Изменение парамтетров привязки POS терминала к ТСП+счет Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - terminalsLinkApi parameters: - in: path name: termName style: simple required: true schema: type: string description: Уникальный ID терминала с которым он будет приходить за QRC - in: path name: route description: >- ID конкретной настройки терминала required: true schema: type: integer format: int32 requestBody: description: данные для регистрации required: true content: application/json: schema: $ref: '#/components/schemas/TerminalLinkUpd' responses: 200: description: Результат регистрации content: application/json: schema: $ref: '#/components/schemas/TerminalLinkInfo' 400: description: Неправильный запрос content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: 'Уже существует' content: application/json: schema: $ref: '#/components/schemas/TerminalLinkInfo' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' delete: operationId: delTerminalLink summary: Удалить запись о привязке терминала description: >- Удалить запись о привязке терминала. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - terminalsLinkApi parameters: - in: path name: termName style: simple required: true schema: type: string description: Уникальный ID терминала - in: path name: route description: >- ID конкретной настройки терминала required: true schema: type: integer format: int32 responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/TerminalLinkInfo' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' get: operationId: getTerminalLink summary: Информация о привязке description: >- Запрос предназначен для получения информации о привязки терминала к сочетанию ТСП+счет. Запрос получения списка не предусмотрен в этом API. tags: - terminalsLinkApi parameters: - in: path name: termName style: simple required: true schema: type: string description: Уникальный ID терминала с которым он будет приходить за QRC - in: path name: route description: >- ID конкретной настройки терминала required: true schema: type: integer format: int32 responses: 200: description: Результат content: application/json: schema: $ref: '#/components/schemas/TerminalLinkInfo' 403: description: 'Нет прав на выполнение' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /terminals/link/cash-qr/{termName}/{route}: put: operationId: updTerminalLinkCashQr summary: Генерация кассовой ссылки и/или отправка ее по email. description: >- Генерация кассовой ссылки и/или отправка ее по email. Если параметр createCashLinkQrc=true или кассовой ссылки нет, то выполняется генерация кассовой ссылки. если указан email, то выполняется отправка созданной кассовой ссылки. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - terminalsLinkApi parameters: - in: path name: termName style: simple required: true schema: type: string description: Уникальный ID терминала с которым он будет приходить за QRC - in: path name: route description: >- ID конкретной настройки терминала required: true schema: type: integer format: int32 requestBody: description: данные для регистрации required: true content: application/json: schema: $ref: '#/components/schemas/TerminalLinkCashQrcUpd' responses: 200: description: Результат регистрации content: application/json: schema: $ref: '#/components/schemas/TerminalLinkInfo' 400: description: Неправильный запрос content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: 'Уже существует' content: application/json: schema: $ref: '#/components/schemas/TerminalLinkInfo' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /callback/entity/{extEntityId}: put: operationId: setEntityCallback summary: Управление функционалом отправки уведомлений от Агента ТСП в единое WEB API юр.лица. description: >- Позволяет включить/выключить и настроить отправку уведомлений по переводам (С2B) и/или завершению возвратов (B2C) для единого WEB API юр.лица. Для удаления настройки нужно послать json без/с null "c2b" и/или "b2b" _Описание API уведомлений доступно по './callback'_ Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - callbackController parameters: - in: path name: extEntityId style: simple required: true schema: type: string description: Уникальный ID выданный при регистрации получателя (юр.лица,ИЧП) requestBody: description: данные для регистрации required: true content: application/json: schema: $ref: '#/components/schemas/CallbackController' responses: 200: description: Результат content: application/json: schema: $ref: '#/components/schemas/CallbackEntityInfo' 400: description: Неправильный запрос content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' get: operationId: getEntityCallback summary: Информация по настройкам description: >- Получить информацию по настройкам юр.лица и персональным настройкам ТСП (если они есть). В список ТСП попадают только те ТСП, у которых есть персональные настройки. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - callbackController parameters: - in: path name: extEntityId style: simple required: true schema: type: string description: Уникальный ID выданный при регистрации полчателя (юр.лица,ИЧП) responses: 200: description: Результат content: application/json: schema: $ref: '#/components/schemas/CallbackEntityInfo' 400: description: Неправильный запрос content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /callback/merchant/{merchantId}: put: operationId: setMerchantCallback summary: Управление функционалом отправки уведомлений от Агента ТСП в персональное WEB API ТСП. description: >- Позволяет включить/выключить и настройть отправку уведомлений по перeводах (С2B) и/или завершениях возвратов (B2C) для WEB API конкретного ТСП. Для удаления настройки нужно послать json без/с null "c2b" и/или "b2b" _Описание API уведомлений доступно по './callbac'_ Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - callbackController parameters: - in: path name: merchantId style: simple required: true schema: type: string description: Идентификатор зарегистрированного ТСП в СБП. example: MF0000000001 requestBody: description: данные для регистрации required: true content: application/json: schema: $ref: '#/components/schemas/CallbackMerchantController' responses: 200: description: Результат content: application/json: schema: $ref: '#/components/schemas/CallbackMerchantController' 400: description: Неправильный запрос content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' get: operationId: getMerchantCallback summary: Информация по настройкам ТСП description: >- Получить информацию по настройкам ТСП. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - callbackController parameters: - in: path name: merchantId style: simple required: true schema: type: string description: Идентификатор зарегистрированного ТСП в СБП. example: MF0000000001 responses: 200: description: Результат content: application/json: schema: $ref: '#/components/schemas/CallbackMerchantController' 400: description: Неправильный запрос content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /callback/sp/{extEntityId}/{spName}: put: operationId: setSpCallback summary: Управление функционалом отправки уведомлений от Агента ТСП в персональное WEB API ТСП. description: >- Позволяет включить/выключить и настройть отправку уведомлений по переводах (С2B). Для удаления настройки нужно послать json без/с null "c2b" и/или "b2b" _Описание API уведомлений доступно по './callback'_ Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - callbackController parameters: - in: path name: extEntityId style: simple required: true schema: type: string description: Уникальный ID выданный при регистрации получателя (юр.лица,ИЧП) - in: path name: spName style: simple required: true schema: description: ID ServicePoint. Уникальное в рамках юр.лица type: string maxLength: 50 example: NN01231 requestBody: description: данные для регистрации required: true content: application/json: schema: $ref: '#/components/schemas/CallbackController' responses: 200: description: Результат content: application/json: schema: $ref: '#/components/schemas/CallbackController' 400: description: Неправильный запрос content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' get: operationId: getSpCallback summary: Информация по настройкам ТСП description: >- Получить информацию по настройкам SP. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - callbackController parameters: - in: path name: extEntityId style: simple required: true schema: type: string description: Уникальный ID выданный при регистрации полчателя (юр.лица,ИЧП) - in: path name: spName style: simple required: true schema: description: ID ServicePoint. Уникальное в рамках юр.лица type: string maxLength: 50 example: NN01231 responses: 200: description: Результат content: application/json: schema: $ref: '#/components/schemas/CallbackController' 400: description: Неправильный запрос content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: Общая (неопределенная) критическая проблема content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /wp/user/{extEntityId}: post: operationId: addWUser description: >- Добавить нового пользователя WEB портала. API универсальное и для сотрудников банка и для юр.лиц. Но для юр.лиц есть ограничения. Параметр extEntityId в path нужен для того что бы зафиксировать какое юр.лицо будет/может управлять пользователем. Это нужно, когда пользователя создает сотрудник банка. Если пользователя создает юр.лицо, то просто выполняется проверка права и параметр фактичкески дублирует информацию о юр.лице. Сотрудник банка при создание в 'rights' может указать несколько юр.лиц. Если пользователя создает юр.лицо, то можно указать только свое юр.лицо. _Примечание: Oба параметра 'extEntityId' и 'legalId' в 'rights/LegalEntities' указывать не обязательно. Можно использовать тот, что удобнее._ Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - webUserCtrlApi parameters: - in: path name: extEntityId style: simple required: true schema: type: string description: Уникальный ID выданный Платформой при регистрации юр. лица. requestBody: description: Данные пользователя content: application/json: schema: $ref: '#/components/schemas/AddWebUserRequest' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/WebUserInfo' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /wp/user/info: patch: operationId: patchWUserInfo description: >- Изменить параметры/права пользователя WEB портала. Меняются только данные, указанные в запросе. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - webUserCtrlApi requestBody: description: Данные пользователя content: application/json: schema: $ref: '#/components/schemas/WebUserAttr' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/WebUserInfo' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /wp/user/rights/{login}: put: operationId: changeWUserRights description: >- Добавить новых юр.лиц. Если уже есть такие, то изменить параметры существующих. Меняются только данные, указанные в запросе. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - webUserCtrlApi parameters: - in: path name: login style: simple required: true schema: type: string requestBody: description: Данные пользователя content: application/json: schema: $ref: '#/components/schemas/WebUserRights' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/WebUserInfo' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /wp/user/right/{login}/{extEntityId}: delete: operationId: removeWUserRights description: >- Удалить права на работу с данным юр.лицом. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - webUserCtrlApi parameters: - in: path name: login style: simple required: true schema: type: string - in: path name: extEntityId style: simple required: true schema: type: string description: Уникальный ID выданный Платформой при регистрации юр. лица responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/WebUserInfo' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /wp/user/{login}: delete: operationId: deleteWUser description: >- Удалить пользователя. Сотрудник банка может удалить любого пользователя. Юр.лицо может удалить только пользователя, которого создало (или который был назначен на это юр.лицо) Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - webUserCtrlApi parameters: - in: path name: login style: simple required: true schema: type: string responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/WebUserInfo' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' get: operationId: getUserInfo description: >- Получить информацию о пользователе. Доступно только тем юр.лицам на которые пользователь имеет право. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - webUserCtrlApi parameters: - in: path name: login style: simple required: true schema: type: string responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/WebUserInfo' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /wp/user/otp/value/{login}: get: operationId: getWUserTOPTValue description: >- Получить ключ для TOTP (Time-based One-Time Password Algorithm, RFC 6238[1]). Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - webUserCtrlApi parameters: - in: path name: login style: simple required: true schema: type: string - in: query name: size description: >- Ширина/высота изображения. Если не указано, то поле image не заполняется. required: false schema: type: integer default: 300 minimum: 300 responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/WebUserTOTP' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /wp/user/otp/link/{login}: get: operationId: sendWUserTOPTEmailLink description: >- Отправить email пользователю со ссылкой на страницу портала для получения и активации OTP. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - webUserCtrlApi parameters: - in: path name: login style: simple required: true schema: type: string responses: 200: description: Успешное выполнение 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /wp/user/otp/image/{login}: get: operationId: getWUserTOPTImage description: >- Получить ключ для TOTP (Time-based One-Time Password Algorithm, RFC 6238[1]). Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - webUserCtrlApi parameters: - in: path name: login style: simple required: true schema: type: string - in: query name: size description: Ширина/высота изображения required: false schema: type: integer default: 300 minimum: 300 responses: 200: description: Успешное выполнение content: image/png: schema: type: string format: binary 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /user/otp/check/{login}/{otp}: get: operationId: checkWUserTOPT description: >- Проверить ключ для TOTP (Time-based One-Time Password Algorithm, RFC 6238[1]). Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - webUserCtrlApi parameters: - in: path name: login style: simple required: true schema: type: string - in: path name: otp description: текущее значение OTP (цифры) style: simple required: true schema: type: string responses: 200: description: Успешное выполнение content: image/png: schema: type: string format: binary 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 428: description: 'Не верный OTP пароль' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /wp/user/password: put: operationId: setWUserPassword description: >- Установить пароль пользователю. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - webUserCtrlApi requestBody: description: Данные пользователя content: application/json: schema: $ref: '#/components/schemas/SetWebUserPasswordRequest' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/WebUserInfo' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /wp/users/{extEntityId}: get: operationId: getWUsersList description: >- Получить список пользователей имеющих права на работу с данным юр.лицом. В списке выводятся пользователи, котрые управляются данным юр.лицом, пусть даже не имею прав на него. Аутентификация запроса: * по сертификату банка * по зарегистрированному для данного юр.лица способу tags: - webUserCtrlApi parameters: - in: path name: extEntityId style: simple required: true schema: type: string description: Уникальный ID выданный Платформой при регистрации юр. лица responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/WebUsersListResult' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /cl_batch: post: operationId: addCashLinkBatch description: >- Создание заказа на выпуск кассовых ссылок (ОПЕРАЦИОННЫЙ БЮЛЛЕТЕНЬ #18.2022 от 23.09.2022) tags: - cashLinksBatch requestBody: description: Данные пользователя content: application/json: schema: $ref: '#/components/schemas/AddCashLinkBatchRequest' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/CashLinkBatchFullData' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' get: operationId: getCashLinkBatchList description: >- Запрос списка заказов tags: - cashLinksBatch parameters: - in: query name: cFrom description: C какого времени создания выбирать список (ISO 8601 формат) example: '2024-08-01T16:24:11.252+07:00' schema: type: string - in: query name: cTo description: По какое врмя создания выбирать список (ISO 8601 формат) example: '2024-08-15T16:24:11.252+07:00' schema: type: string responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/CashLinkBatchList' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /cl_batch/{orderExtId}: get: operationId: getCashLinkBatchFull description: >- Запрос полной информации, включая список QRC tags: - cashLinksBatch parameters: - in: path name: orderExtId style: simple required: true schema: type: string responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/CashLinkBatchFullData' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /cl_batch/hd/{orderExtId}: get: operationId: getCashLinkBatchHd description: >- Запрос информации, НЕ включая список QRC tags: - cashLinksBatch parameters: - in: path name: orderExtId style: simple required: true schema: type: string responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/CashLinkBatchData' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' put: operationId: putCashLinkBatchHd description: >- Изменени информации. tags: - cashLinksBatch parameters: - in: path name: orderExtId style: simple required: true schema: type: string requestBody: description: данные для регистрации required: true content: application/json: schema: $ref: '#/components/schemas/CashLinkBatchDataForUpdate' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/CashLinkBatchData' 400: description: 'Неверные параметры запроса' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 401: description: 'Не достаточно прав' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /mpi/list/{extEntityId}: get: operationId: getMpiList summary: Получить список MPI (SP) для юр.лица description: >- Получить весь актуальынй список MPI устройств (MPI точек обслуживания) для юр.лица. tags: - mpiApi parameters: - in: path name: extEntityId style: simple required: true example: 12%ABq1+2 schema: type: string description: Уникальный ID выданный Платформой при регистрации юр. лица - in: query name: name description: Опциональный фильтр по name required: false example: NN01231 schema: type: string responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/MpiListResult' 401: description: 'Не достаточно прав. Разрешен вызов только в канале банка' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 404: description: Не найден content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /mpi: post: operationId: getActivateCode summary: Сгенерить новый код активации description: Сгенерить новый код активации (нового Листа Активации для первой или повторной активации устройства) tags: - mpiApi requestBody: description: Данные пользователя content: application/json: schema: $ref: '#/components/schemas/MpiGetActivateCodeRequest' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/MpiGetActivateCodeResult' 401: description: 'Не достаточно прав. Разрешен вызов только в канале банка' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /mpi/state/{extEntityId}/{spId}: get: operationId: getMpiDeviceInfo summary: Получить информацию по конкретному SP description: Получить информацию по конкретному SP tags: - mpiApi parameters: - in: path name: extEntityId style: simple required: true schema: type: string description: Уникальный ID выданный Платформой при регистрации юр. лица. - in: path name: spId style: simple required: true schema: description: ID БД ServicePoint. type: string example: '33224' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/MpiInfoResult' 401: description: 'Не достаточно прав. Разрешен вызов только в канале банка' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /mpi/{extEntityId}/{spId}: delete: operationId: lockMpiDevice summary: Заблокировать SP в MPI description: Заблокировать SP в MPI tags: - mpiApi parameters: - in: path name: extEntityId style: simple required: true schema: type: string description: Уникальный ID выданный Платформой при регистрации юр. лица. - in: path name: spId style: simple required: true schema: description: ID БД ServicePoint. type: string example: '33224' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/MpiInfoResult' 401: description: 'Не достаточно прав. Разрешен вызов только в канале банка' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /uniQrc/psrv/all: get: operationId: getGlobalUniQrcPaymentSrvList summary: Получить общий список сервисов универсального QRC description: >- Получить общий список сервисов универсального QRC. Доступно только банку tags: - uniQrcConfig responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/GlobalUniQrcPaymentSrvList' 401: description: 'Не достаточно прав. Разрешен вызов только в канале банка' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /uniQrc/psrv/cfg: get: operationId: getUniQrcPaymentSrvCfgList summary: список настроек банка для сервисов универсального QRC description: >- Получить список настроек банка для сервисов универсального QRС. Доступно всем. Используется при регистрации ТСП tags: - uniQrcConfig - registrationApi responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/UniQrcPaymentSrvCfgList' 401: description: 'Не достаточно прав. Разрешен вызов только в канале банка' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' post: operationId: addUniQrcPaymentSrvCfg summary: добавить настройку банка для сервисов универсального QRC description: >- Добавить настройку банка для сервисов универсального QRC. Доступно только банку tags: - uniQrcConfig requestBody: description: данные для регистрации required: true content: application/json: schema: $ref: '#/components/schemas/UniQrcPaymentSrvCfgAdd' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/UniQrcPaymentSrvCfg' 401: description: 'Не достаточно прав. Разрешен вызов только в канале банка' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' put: operationId: updUniQrcPaymentSrvCfg summary: Изменить настройку банка для сервисов универсального QRC description: >- Изменить настройку банка для сервисов универсального QRC. Доступно только банку tags: - uniQrcConfig requestBody: description: данные для регистрации required: true content: application/json: schema: $ref: '#/components/schemas/UniQrcPaymentSrvCfgUpd' responses: 200: description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/UniQrcPaymentSrvCfg' 401: description: 'Не достаточно прав. Разрешен вызов только в канале банка' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /uniQrc/psrv/cfg/{cfgId}: delete: operationId: delUniQrcPaymentSrvCfg summary: Удалить настройку банка для сервисов универсального QRC description: >- Удалить настройку банка для сервисов универсального QRC (доступно для ТСП). Удаление возможно, если данной настройкой не пользуется ни один ТСП банка tags: - uniQrcConfig parameters: - in: path name: cfgId style: simple required: true schema: type: string example: 628648 description: Уникальный ID выданный при регистрации настройки. и в ответе на GET /uniQrc/psrv/cfg responses: 200: description: Успешное выполнение 401: description: 'Не достаточно прав. Разрешен вызов только в канале банка' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' 500: description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' /sbp-api/payment/v2/universal-payment-link/{uniQrId}/notification: post: tags: - sbpApi summary: Уведомление для Оператора об изменении статуса платежа от Провайдера operationId: sendUniqrStatusV2 parameters: - name: uniQrId in: path description: Идентификатор УПК required: true schema: minLength: 32 maxLength: 32 type: string example: AD20004HR86RVH4S8BQAB51AFH4P0FIR requestBody: content: application/json: schema: $ref: '#/components/schemas/UniqrStatusNotificationRequestV2Dto' responses: '200': description: Успешное выполнение '500': description: 'Общая (неопределенная) критическая проблема' content: application/json: schema: $ref: '#/components/schemas/ErrorResultData' components: schemas: TelegramUserRequest: title: Запрос добавления пользователя telegram и/или добавления новых привязок (links). Список links должен содержать хотя бы одну запись. type: object properties: userId: type: integer format: int64 example: 112345623 description: Уникальный ID пользователя telegram(@userinfobot) links: type: array items: $ref: '#/components/schemas/TelegramUserAddLink' required: - userId TelegramUserLockUnlock: title: Запрос блокирует/разблокирует работу пользователя. type: object properties: userId: type: integer format: int64 example: 112345623 description: Уникальный ID пользователя telegram (@userinfobot) lock: type: boolean example: false description: Запрет на работу пользователя required: - userId - lock TelegramUserAddLink: title: Привязка пользователя telegram к ТСП и счету. description: >- Дополнительная привязка пользователя telegram к ТСП и счету. Можно указывать либо account либо accAlias. Автоматически привязывает по факту так же к юр.лицу. type: object properties: merchantId: description: >- Идентификатор зарегистрированного ТСП в СБП. type: string maxLength: 12 example: MF0000000001 accAlias: type: string description: >- ID/синоним счета.Что бы не использовать фактическое значение номера счета (там где это запрещено правилами и требованиями безопасности). Значение задается при регистрации или генерируется автоматически при регистрации счета в Агенте ТСП. accAlias обязателен к указанию в запросах, если нет поля счета (account). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 account: description: >- Номер счета (классический. шаблона '^[\d+]{5}810[\d+]{12}$'). Значение задается при регистрации счета в Агенте ТСП. Обязателен к указанию в запросах, если нет поля альтернативного указания счета (accAlias). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. type: string pattern: '^[\d+]{5}810[\d+]{12}$' example: "40702810250011001666" description: description: >- Краткое описание записи о привязке. Показывается в интерфейсе бота telegram. type: string maxLength: 255 example: Касса алкоголя rights: description: >- Битовая маска прав пользователя. * 0x01 - право на выполнение возвратов * 0x02 - право на просмотр не только своих qrc кодов. * 0x04 - право создание статических qrc. * 0x08 - уведомления по всем переводам (C2B) данного ТСП. type: integer example: 3 required: - merchantId TelegramUserLinkDeleteRequest: title: Удаление привязки пользователя telegram к ТСП и счету. description: >- Удаление привязки пользователя telegram к ТСП и счету. Можно указывать либо account либо accAlias type: object properties: userId: type: integer format: int64 example: 112345623 description: >- Уникальный ID пользователя telegram (@userinfobot) links: type: array items: type: object properties: merchantId: description: >- Идентификатор зарегистрированного ТСП в СБП. type: string maxLength: 12 example: MF0000000001 accAlias: type: string description: >- ID/синоним счета.Что бы не использовать фактическое значение номера счета (там где это запрещено правилами и требованиями безопасности). Значение задается при регистрации или генерируется автоматически при регистрации счета в Агенте ТСП. accAlias обязателен к указанию в запросах, если нет поля счета (account). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 account: description: >- Номер счета (классический. шаблона '^[\d+]{5}810[\d+]{12}$'). Значение задается при регистрации счета в Агенте ТСП. Обязателен к указанию в запросах, если нет поля альтернативного указания счета (accAlias). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. type: string pattern: '^[\d+]{5}810[\d+]{12}$' example: "40702810250011001666" required: - merchantId required: - userId - links TelegramUsersListResult: title: Cписок пользователей telegram для юр.лица type: object properties: users: type: array items: $ref: '#/components/schemas/TelegramUserInfo' TelegramUserInfo: title: Информация по пользователю telegram. type: object properties: userId: type: integer example: 112345623 format: int64 description: >- Уникальный ID пользователя telegram (@userinfobot) locked: type: boolean example: false description: Признак запрета на работу пользователя firstName: type: string description: Имя пользователя, полученное при первом его заходе в бот lastName: type: string description: Имя пользователя, полученное при первом его заходе в бот userName: type: string description: Имя пользователя, полученное при первом его заходе в бот regTime: description: Время регистрации пользователя (ISO 8601 формат) example: '2020-07-02T18:24:11.252+07:00' type: string lastTime: description: Время последней активности пользователя (ISO 8601 формат) example: '2020-07-12T09:24:12.234+07:00' type: string links: type: array items: type: object properties: extEntityId: type: string maxLength: 32 example: 12%ABq1+2 description: Уникальный ID Платформы, выданный при регистрации юр. лица rights: description: >- Битовая маска прав пользователя. * 0x01 - право на выполнение возвратов. * 0x02 - право на просмотр всех данных ТСП. * 0x04 - право создание статических qrc и кассовых ссылок. * 0x08 - уведомления по всем переводам (C2B) данного ТСП. type: integer example: 3 merchantId: description: Идентификатор зарегистрированного ТСП в СБП. type: string maxLength: 12 example: MF0000000001 accAlias: type: string description: >- ID/синоним счета.Что бы не использовать фактическое значение номера счета (там где это запрещено правилами и требованиями безопасности). Значение задается при регистрации или генерируется автоматически при регистрации счета в Агенте ТСП. accAlias обязателен к указанию в запросах, если нет поля счета (account). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 account: type: string example: 40702***666 description: Счет юридического лица (маскированный). description: description: >- Краткое описание записи о привязке. Показывается в интерфейсе бота telegram. type: string maxLength: 255 example: Касса алкоголя regTime: description: Время регистрации записи о привязке (ISO 8601 формат) example: '2020-07-02T18:24:11.252+07:00' type: string AuthModeDataInfo: title: Информация о режиме аутентификации и данные аутентификации type: object properties: mode: type: string enum: - BEARER - SIGN - TLS description: Режим аутентфикации data: type: string maxLength: 1000 description: >- данные для аутентификации. * в запросе для для режима BEARER это список маскированных значений. Фактическое значение выдается только если был запрос создания нового. * Для режима SIGN это null. Фактическое значение не выдается. * Для режима TLS, это поле (список полей через разделитель '|') Issuer CN сертификата клиента. expiredDays: type: integer format: int32 description: >- дней до истечения срока действия авторизационных данных (последнего элемента в списке). Присутствует только в ответе. Определяется опциями при добавлнии данных и/или настройками Агента emails: type: string description: >- Опциональный список e-mail для оповещения о скором времни истечения срока действия аутентификационных данных example: 'na.22@gmail.com;aaa122@yandex.ru' options: $ref: '#/components/schemas/AuthModeDataOptions' required: - mode AuthModeDataRq: title: Запрос на установку режима аутентфикации и данных аутентфикации type: object properties: mode: type: string enum: - BEARER - SIGN - TLS description: Режим аутентфикации data: type: string maxLength: 1000 description: >- данные для аутентификации. * в запросе для для режима BEARER это null или любые данные (<80) символов для поля claims.iss. * Для режима SIGN это публичный EC ключ (X509 encoded) в base64 (не base64url) формате. * Для режима TLS, это добавляемое поле (или список полей через разделитель '|') Issuer CN сертификата клиента. removeOld: type: boolean description: >- * true - старые данные аутентификации не будут использованы и целиком будет заменены на новые. * false - к последнему элементу в текущем списке данных авторизации (jwt, EC ключ, сертификат) добавятся новые данные из запроса. Это позволит заранее создавать, например, новый JWT токен, оставля старый действующим. default: false example: false options: $ref: '#/components/schemas/AuthModeDataOptions' required: - mode AuthModeDataOptions: title: дополнительные данные аутентфикации type: object properties: list: type: array items: $ref: '#/components/schemas/AuthModeDataOptionsItems' AuthModeDataOptionsItems: title: дополнительные данные аутентфикации по каждому объекту в data type: object properties: id: type: string description: >- CN сертификата (авторизация по сертификату) или токен (автоизация по токену). notAfter: type: string example: '2026-07-02T18:24:11.252+07:00' description: >- Дата истечения срока действия. информационный параметр. notBefore: type: string example: '2026-07-02T18:24:11.252+07:00' description: >- Дата начала срока действия. информационный параметр. actual: type: boolean example: true description: >- true - если срок действия (notAfter) был указан явно при регистрации (токен). false - если срок действия взят по умолчанию. При регистрации не был указан. info: type: string maxLength: 512 description: >- Любая дополнительная информация required: - id - notAfter ServicePointDataRq: title: Данные Service Point с его правами type: object properties: locked: type: boolean example: false description: Признак запрета на работу name: type: string maxLength: 50 example: NN01231 description: ID ServicePoint. Уникальное в рамках юр.лица description: type: string maxLength: 255 example: Рабочее место в офисе. description: Опциональное описание. type: type: string description: >- Тип Service Point. Используется, в частности, в системе Fraud monitoring. * 'ATTENDED' - Касса/АРМ/любое ПО с сотрудником, принимающим решение. * 'UNATT_SS' - Терминал самообслуживания. * 'DBO' - системы, аналогичные по уровню безопастнотис ДБО банка. С обязательно аутнтификацией пользователя. * 'AUTO' - Любая система, автоматически принимающая решения без участия клиента и сотрудника. * 'MPI' - Мобильное приложение ЦФТ * 'MPICashR' - касса на ОС Android ЦФТ defPaymentPurposeCl: type: string description: >- Дает возможность указать шаблон PaymentPurpose при активации кассовой ссылки. * null - шаблон не задан. Используется значение присланное в запросе активации кассовой ссылки. * любой текст - шаблон для формирования PaymentPurpose. Заменяет значение присланное в запросе активации кассовой ссылки. Предназначено для ситуаций когда нужно кастомизировать PaymentPurpose, присылаемой из ПО, стоящего на кассах или терминалах. Шаблон может содержать подстроки "{tname}", "{LE.name}", "{LE.inn}", "{LE.ogrn}", "{M.brandName}", "{M.address}", "{M.inn}", "{M.phone}", заменяемые на соответствующие значения. auth: $ref: '#/components/schemas/AuthModeDataRq' emails: type: string description: >- Опциональный список e-mail для оповещения о скором времни истечения срока действия аутентификационных данных example: 'na.22@gmail.com;aaa122@yandex.ru' links: type: array items: $ref: '#/components/schemas/ServicePointLink' required: - name - type - mode - data ServicePointDataInfo: title: Данные Service Point с его правами type: object properties: locked: type: boolean example: false description: Признак запрета на работу name: type: string maxLength: 50 example: NN01231 description: ID ServicePoint. Уникальное в рамках юр.лица description: type: string maxLength: 255 example: Рабочее место в офисе. description: Опциональное описание. type: type: string description: >- Тип Service Point. Используется, в частности, в системе Fraud monitoring. * 'ATTENDED' - Касса/АРМ/любое ПО с сотрудником, принимающим решение. * 'UNATT_SS' - Терминал самообслуживания. * 'DBO' - системы, аналогичные по уровню безопасности ДБО банка. С обязательно аутентификацией пользователя. * 'AUTO' - Любая система, автоматически принимающая решения без участия клиента и сотрудника. * 'MPI', 'MPICashR' - Мобильное приложение ЦФТ defPaymentPurposeCl: type: string description: >- Дает возможность указать шаблон PaymentPurpose при активации кассовой ссылки (см полное описание в ServicePointDataRq). auth: $ref: '#/components/schemas/AuthModeDataInfo' links: type: array items: $ref: '#/components/schemas/ServicePointLink' required: - name - type - mode - data ServicePointUpdData: title: Данные Service Point с его правами (модификация). type: object properties: locked: type: boolean example: false description: Признак запрета на работу description: type: string maxLength: 255 example: Рабочее место в офисе. description: Опциональное описание. type: type: string description: >- Тип Service Point. Используется, в частности, в системе Fraud monitoring. * 'ATTENDED' - Касса/АРМ/любое ПО с сотрудником, принимающим решение. * 'UNATT_SS' - Терминал самообслуживания. * 'DBO' - системы, аналогичные по уровню безопастнотис ДБО банка. С обязательно аутнтификацией пользователя. * 'AUTO' - Любая система, автоматически принимающая решения без участия клиента и сотрудника. * 'MPI' - Мобильное приложение ЦФТ * '1C' - Интеграция с 1С. Счет по умолчанию у ТСП должен быть такой же или не указан вообще, если у ТСП есть счет по умолчанию. defPaymentPurposeCl: type: string description: >- Дает возможность указать шаблон PaymentPurpose при активации кассовой ссылки (см полное описание в ServicePointDataRq). если null, то не меняется. auth: $ref: '#/components/schemas/AuthModeDataRq' emails: type: string description: >- Опциональный список e-mail для оповещения о скором времни истечения срока действия аутентификационных данных example: 'na.22@gmail.com;aaa122@yandex.ru' links: type: array default: null items: $ref: '#/components/schemas/ServicePointLink' ServicePointLink: title: Право SP на работу с ТСП и действия type: object properties: merchantId: description: >- Идентификатор зарегистрированного ТСП в СБП. type: string maxLength: 12 example: MF0000000001 accAlias: type: string description: >- ID/синоним счета.Что бы не использовать фактическое значение номера счета (там где это запрещено правилами и требованиями безопасности). Значение задается при регистрации или генерируется автоматически при регистрации счета в Агенте ТСП. accAlias обязателен к указанию в запросах, если нет поля счета (account). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 description: type: string maxLength: 255 example: Для выдачи чего то там. description: Опциональное описание. rights: description: >- Битовая маска прав работы через аутентификацию данными данной Сервисной Точки. * 0x01 - право создание статических qrc и кассовых ссылок. * 0x02 - право на выполнение возвратов. * 0x04 - право на переводы B2C. * 0x200 (512) - право на управление настройками callback type: integer example: 3 required: - rights - merchantId ServicePointListResult: title: Список Service Points для юр.лица type: array items: $ref: '#/components/schemas/ServicePointDataInfo' LegalEntityAuthRq: title: Права юр.лица и режим аутентфиикации type: object properties: auth: $ref: '#/components/schemas/AuthModeDataRq' rights: description: >- Битовая маска прав. * 1 - генерация QR * 2 - возврат (B2C) * 4 - прочие переводы (B2C) * 8 - Управление пользователями telegram(telegramUsersApi) * 16 - Управление параметрами аутентификации и callback (AuthApi+callbackController) * 32 - Добавление/управление счетами и ТСП * 64 - управление терминалами terminalsLinkApi) * 128 - Управление пользователями WEB портала * 256 - исходящие переводы B2B. * 512 - Управление настройками callback type: integer example: 1 emails: type: string description: >- Опциональный список e-mail для оповещения о скором времени истечения срока действия аутентификационных данных example: 'na.22@gmail.com;aaa122@yandex.ru' LegalEntityAuthInfo: title: Права юр.лица и режим аутентфиикации type: object properties: auth: $ref: '#/components/schemas/AuthModeDataInfo' rights: description: >- Битовая маска прав. * 1 - генерация QR * 2 - возврат (B2C) * 4 - прочие переводы (B2C) * 8 - Управление пользователями telegram(telegramUsersApi) * 16 - Управление параметрами аутентификации и callback (AuthApi+callbackController) * 32 - Добавление/управление счетами и ТСП * 64 - управление терминалами terminalsLinkApi) * 128 - Управление пользователями WEB портала * 256.. - RFU type: integer example: 1 QRCodeGenerateRequest: title: Запрос генерации QRC type: object properties: extEntityId: type: string maxLength: 32 example: 12%ABq1+2 description: Уникальный ID Платформы, выданный при регистрации юр. лица merchantId: description: >- Идентификатор зарегистрированного ТСП в СБП. type: string maxLength: 12 example: MF0000000001 account: description: >- Номер счета (классический. шаблона '^[\d+]{5}810[\d+]{12}$'). Значение задается при регистрации счета в Агенте ТСП. Обязателен к указанию в запросах, если нет поля альтернативного указания счета (accAlias). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. type: string pattern: '^[\d+]{5}810[\d+]{12}$' example: "40702810250011001666" accAlias: type: string description: >- ID/синоним счета.Что бы не использовать фактическое значение номера счета (там где это запрещено правилами и требованиями безопасности). Значение задается при регистрации или генерируется автоматически при регистрации счета в Агенте ТСП. accAlias обязателен к указанию в запросах, если нет поля счета (account). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 accountDr: type: string description: >- Номера счета Цифрового Рубля (опционально). Может быть указан, если по каким то причинам не устраивает счет по умолчанию для ТСП. Счет уже должен быть зарегистрирован example: "g.ab.cbrdc.wlt.clt.abcd0123-ab12-4a12-89ab-abcdef011111" uniQrcCfgId: type: string description: >- Опциональная ссылка на список настроек банка (см. GET /uniQrc/psrv/cfg). Может быть указано, если по каким то причинам не устраивает настройка ТСП по умолчанию. example: 233442 amount: description: >- Сумма платежа в копейках (валюта только RUB) Сумма обязательна для qrcType = 02. type: number minLength: 1 maxLength: 12 example: 130000 paymentPurpose: description: Назначение платежа (UTF-8). Длина не более 140. Обязательно для оплаты по привязанному ранее счёту type: string maxLength: 140 example: Покупка чего-то там subscriptionPurpose: description: Информация от ТСП с деталями подписки. Поле обязательно для QR для подписки (qrcType = "03") и для QR для оплаты с подпиской type: string maxLength: 140 example: Подписка на чего-то там subscriptionServiceId: maxLength: 32 type: string description: Идентификатор привязки example: 3842ca282aea11e88feca860b60304d5 subscriptionServiceName: maxLength: 70 type: string description: Наименование привязки example: Бабушкина подписка fraudScore: type: string maxLength: 16 description: Индикатор Подозрительной Операции Банка Получателя (ИПО БПо) sndPhone: type: string description: >- Номер телефона отправителя (все или последние цифры. Можно указать от 3 до 15 цифр). Опциональный параметр. Применим только к динамическим QRC. Если указан при создании QRC, то при получении C2B перевода будет дополнительно контролироваться (если настроена для банка хождение в Агента ТСП) на совпадение (полное) с номером телефона отправителя, указанным во входящем переводе. Сравнение производится по последним цифрам номера телефона. example: 79111234567 maxLength: 15 sndFio: type: string description: >- ФИО отправителя в формата СБП (разделитель '|'). Сравнивается на точное совпадение всех подчастей (фамилии имени и, если есть, отчества). Опциональный параметр. Применим только к динамическим QRC. Если указан при создании QRC, то при получении C2B перевода будет дополнительно контролироваться (если настроена для банка хождение в Агента ТСП) на совпадение (полное) с ФИО отправителя, указанным во входящем переводе. Сравнение производится по всем под частям (разделитель '|'). example: Иванов|Иван|Иванович maxLength: 140 qrcType: type: string example: '01' enum: - '01' - '02' - '03' description: | Тип QR кода: * 01 - QR-Static (QR наклейка) * 02 - QR-Dynamic (QR на кассе) * 03 - QR-Subscription (QR для подписки) expDt: description: >- Используется _только_ для динамических QRC (02) и QRC подписки (03). Опциональный параметр. "время жизни" QRC в минутах. "ОПЕРАЦИОННЫЙБЮЛЛЕТЕНЬ #03.2021от 11.02.2021О возможности указания максимального периода использования динамической платежной ссылки Агентами СБП" Если указано меньше/меньше минимального/максимального значения (5 минут/90 дней). на дату выпуска бюллетеня), то ставится в максимум/минимум по требованию бюллетеня. По умолччанию (если не указано - 72 часа) type: integer format: int32 example: 5 localExpDt: description: >- Используется _только_ для динамических QRC Опциональное "время жизни" QRC в секундах(!). Введено для требований "которые не нужны рынку" (цитата НСПК), но тем не менее нужны нашим вендорам. Минимальное значение - любое. Максимальное значение не будет превышать указанное в "expDt" (или 72, если expDt не указано) Используется, если запрос валидации QRC идет через Агента ТСП. type: integer format: int64 example: 60 redirectUrl: maxLength: 1024 type: string description: | Содержит ссылку для автоматического возврата Плательщика из приложения Банка в приложение или на сайт ТСП. Допускаются только символы в кодировке ASCII. Формат должен соответствовать правилам кодировки URL. example: "https://horns.hooves.ru/" paymentPageUrl: maxLength: 1024 minLength: 1 type: string description: Ссылка для перенаправления Покупателя на Платежную страницу Участника Сервиса УПК. Допускаются только символы в кодировке ASCII. Формат должен соответствовать спецификации RFC-3986 example: https://example.ru riskData: type: object description: Структура описана в отдельном документе (/webapi-doc/riskData) required: - extEntityId - merchantId - qrcType QrcB2bGenerateRequest: title: Запрос генерации QRC для B2B type: object properties: extEntityId: type: string maxLength: 32 example: 12%ABq1+2 description: Уникальный ID Платформы, выданный при регистрации юр. лица merchantId: description: >- Идентификатор зарегистрированного ТСП в СБП. type: string maxLength: 12 example: MF0000000001 account: description: >- Номер счета (классический. шаблона '^[\d+]{5}810[\d+]{12}$'). Значение задается при регистрации счета в Агенте ТСП. Обязателен к указанию в запросах, если нет поля альтернативного указания счета (accAlias). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. type: string pattern: '^[\d+]{5}810[\d+]{12}$' example: "40702810250011001666" accAlias: type: string description: >- ID/синоним счета.Что бы не использовать фактическое значение номера счета (там где это запрещено правилами и требованиями безопасности). Значение задается при регистрации или генерируется автоматически при регистрации счета в Агенте ТСП. accAlias обязателен к указанию в запросах, если нет поля счета (account). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 amount: type: number minLength: 1 maxLength: 12 nullable: true description: >- Сумма Операции СБП B2B в копейках. Целое, положительное число. Обязательное для одноразового кода Валюта Операции СБП - рубли РФ. example: '100000' paymentPurpose: type: string maxLength: 210 description: Назначение платежа example: оплата по договору №123456789 от 01.09.2001 fraudScore: type: string maxLength: 16 minLength: 16 nullable: true description: Индикатор Подозрительной Операции Агента ТСП example: '0000000000000000' redirectUrl: type: string maxLength: 1024 nullable: true description: > Содержит ссылку для автоматического возврата Плательщика из приложения Банка в приложение или на сайт ТСП. Допускаются только символы в кодировке ASCII. Формат должен соответствовать спецификации RFC-3986. example: https://exampletsp.io/qwertyui takeTax: type: boolean description: | Информация о взимании НДС. Допустимые значения: * true – облагается НДС; * false – не облагается НДС; enum: - true - false example: true totalTaxAmount: type: number minLength: 1 maxLength: 12 nullable: true description: | Сумма НДС в копейках. Валюта НДС - рубли РФ. Для многоразовой ссылки если поле "totalTaxAmount" отсутствует, а поле "takeTax"=true, то Плательщик должен указать сумму НДС по Операции СБП B2B при составлении распоряжения на перевод по Операции СБП B2B для передачи значения Банком Плательщика в сообщении M05-pacs.008.001.07 Для одноразовой totalTaxAmount всегда присутствует при takeTax=TRUE (при этом ЭБД 297 всегда отсутствует в сообщении M05); example: 0 reusable: description: >- Признак того, что ссылка многоразовая. type: boolean default: false expDt: description: >- Срок жизни Функциональной ссылки СБП B2B в минутах. Минимальное допустимое значение - 1. Максимальное допустимое значение - 129600 (90 дней). Если поле "qrTtl" не передано в запросе, будет использовано значение по умолчанию - 4320 минут (3 суток). type: integer format: int32 example: 5 uip: type: string maxLength: 35 minLength: 1 nullable: true description: > Уникальный Идентификатор Платежа, назначаемый Получателем Может использоваться и имеет смысл только для одноразовой QRC example: 281000670LSS7DN18SJQDNP4B05KLJL2 riskData: type: object description: Структура описана в отдельном документе (/webapi-doc/riskData) required: - extEntityId - takeTax CashQRCGenerateRequest: title: Запрос генерации кассовой ссылки type: object properties: extEntityId: type: string maxLength: 32 example: 12%ABq1+2 description: Уникальный ID Платформы, выданный при регистрации юр. лица merchantId: description: >- Идентификатор зарегистрированного ТСП в СБП. type: string maxLength: 12 example: MF0000000001 account: description: >- Номер счета (классический. шаблона '^[\d+]{5}810[\d+]{12}$'). Значение задается при регистрации счета в Агенте ТСП. Обязателен к указанию в запросах, если нет поля альтернативного указания счета (accAlias). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. type: string pattern: '^[\d+]{5}810[\d+]{12}$' example: "40702810250011001666" accAlias: type: string description: >- ID/синоним счета.Что бы не использовать фактическое значение номера счета (там где это запрещено правилами и требованиями безопасности). Значение задается при регистрации или генерируется автоматически при регистрации счета в Агенте ТСП. accAlias обязателен к указанию в запросах, если нет поля счета (account). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 accountDr: type: string description: >- Номера счета Цифрового Рубля (опционально). Может быть указан, если по каким то причинам не устраивает счет по умолчанию для ТСП. Счет уже должен быть зарегистрирован example: "g.ab.cbrdc.wlt.clt.abcd0123-ab12-4a12-89ab-abcdef011111" uniQrcCfgId: type: string description: >- Опциональная ссылка на список настроек банка (см. GET /uniQrc/psrv/cfg). Может быть указано, если по каким то причинам не устраивает настройка ТСП по умолчанию. example: 233442 redirectUrl: maxLength: 1024 type: string description: >- Содержит ссылку для автоматического возврата Плательщика из приложения Банка в приложение или на сайт ТСП. Допускаются только символы в кодировке ASCII. Формат должен соответствовать правилам кодировки URL. example: "https://horns.hooves.ru/" paymentPageUrl: maxLength: 1024 minLength: 1 type: string description: Ссылка для перенаправления Покупателя на Платежную страницу Участника Сервиса УПК. Допускаются только символы в кодировке ASCII. Формат должен соответствовать спецификации RFC-3986 example: https://example.ru description: description: >- Опциональное внутреннее для Агента ТСП поле. Используется для отчетов и показа в АРМ. maxLength: 140 type: string example: 'вручную для кассы N13' riskData: type: object description: Структура описана в отдельном документе (/webapi-doc/riskData) qrcId: type: string description: >- Опциональный идентификатор Платежной ссылки СБП (кассовой ссылки). Из заказа на выпуск кассовых ссылок (ОПЕРАЦИОННЫЙ БЮЛЛЕТЕНЬ #18.2022 от 23.09.2022). может так же содержать payload QRC (http://...) example: AS1R007NVU0DI01A9I0PGCEG1QKSDBAI required: - extEntityId - merchantId CashQRCUpdateRequest: title: Данные для изменения кассовой ссылки type: object properties: account: description: >- Номер счета (классический. шаблона '^[\d+]{5}810[\d+]{12}$'). Значение задается при регистрации счета в Агенте ТСП. Обязателен к указанию в запросах, если нет поля альтернативного указания счета (accAlias). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. type: string pattern: '^[\d+]{5}810[\d+]{12}$' example: "40702810250011001666" accAlias: type: string description: >- ID/синоним счета.Что бы не использовать фактическое значение номера счета (там где это запрещено правилами и требованиями безопасности). Значение задается при регистрации или генерируется автоматически при регистрации счета в Агенте ТСП. accAlias обязателен к указанию в запросах, если нет поля счета (account). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 merchantId: maxLength: 12 minLength: 12 type: string description: Идентификатор ТСП example: MF0000000001 redirectUrl: maxLength: 1024 type: string nullable: true description: | Содержит ссылку для автоматического возврата Плательщика из приложения Банка в приложение или на сайт ТСП. Допускаются только символы в кодировке ASCII. Формат должен соответствовать спецификации RFC-3986. example: https://exampletsp.io/qwertyui paymentPageUrl: maxLength: 1024 minLength: 1 type: string description: Ссылка для перенаправления Покупателя на Платежную страницу Участника Сервиса УПК. Допускаются только символы в кодировке ASCII. Формат должен соответствовать спецификации RFC-3986 example: https://example.ru description: description: >- Опциональное внутреннее для Агента ТСП поле. Используется для отчетов и показа в АРМ. maxLength: 140 type: string example: 'вручную для кассы N13' accountDr: type: string description: >- Cчет Цифрового Рубля (опционально). example: "g.ab.cbrdc.wlt.clt.abcd0123-ab12-4a12-89ab-abcdef011111" uniQrcCfgId: type: string description: >- Опциональная ссылка на список настроек банка (см. GET /uniQrc/psrv/cfg). example: 233442 CashQrcData: title: Данные кассовой ссылки. type: object properties: merchantId: description: Идентификатор зарегистрированного ТСП в СБП. type: string maxLength: 12 example: MF0000000001 accAlias: type: string description: >- ID/синоним счета.Что бы не использовать фактическое значение номера счета (там где это запрещено правилами и требованиями безопасности). Значение задается при регистрации или генерируется автоматически при регистрации счета в Агенте ТСП. accAlias обязателен к указанию в запросах, если нет поля счета (account). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 accountDr: type: string description: >- Cчет Цифрового Рубля (опционально). example: "g.ab.cbrdc.wlt.clt.abcd0123-ab12-4a12-89ab-abcdef011111" uniQrcCfgId: type: string description: >- Опциональная ссылка на список настроек банка (см. GET /uniQrc/psrv/cfg). example: 233442 qrcId: type: string description: Идентификатор зарегистрированного QR кода в СБП maxLength: 32 example: AS1000670LSS7DN18SJQDNP4B05KLJL2 localQrcId: type: integer format: int64 description: >- Внутренний id (однозначно связан с qrcId). minimum: 1 maximum: 12 example: 12450 lastTime: description: Время последнего использования кассовой ссылки example: '2020-07-02T18:24:11.252+07:00' type: string activated: description: Активная или не активная ссылка (без учета срока действия). Выставляется явно при активации и сбрасывается при деактивации. type: boolean paramsId: type: string maxLength: 32 description: Идентификатор активных значений параметров Платежной ссылки СБП example: "8374629037658302985647382901" localParamsId: type: integer format: int64 description: Внутренний id, (однозначно связан с paramsId). Предназначен для операций возврата, где UI с клиентом не позволяет ввести исходный длинный paramsId (например, только цифровая клавиатура) example: 18374 usedCnt: description: количество активаций ссылки type: integer format: int32 regTime: description: Время регистрации QRC example: '2020-07-02T18:24:11.252+07:00' type: string expDt: description: >- Оциональное "время жизни" активированной кассовой ссылки в минутах. Минимальное допустимое значение - 5. Максимальное допустимое значение - 20. Если поле "qrTtl" не передано в запросе метода "Активация Кассовой ссылки", то за период использования Кассовой ссылки берется значение по умолчанию – 5 минут type: integer format: int32 example: 5 localExpDt: description: >- Используется для активированных кассовых ссылок. Опциональное "время жизни" кассовой ссылки в секундах(!). Минимальное значение - любое. Максимальное значение не будет превышать указанное в "expDt". Используется, если запрос валидации QRC идет через Агента ТСП. type: integer format: int64 example: 60 payload: type: string description: Payload зарегистрированного QR кода в СБП maxLength: 999 example: >- https://qr.nspk.ru/AS1000670LSS7DN18SJQDNP4B05KLJL2?type=01&bank=100000000001&sum=10000&cur=RUB&crc=C08B redirectUrl: maxLength: 1024 type: string description: | Содержит ссылку для автоматического возврата Плательщика из приложения Банка в приложение или на сайт ТСП. Допускаются только символы в кодировке ASCII. Формат должен соответствовать правилам кодировки URL. example: "https://horns.hooves.ru/" paymentPageUrl: maxLength: 1024 minLength: 1 type: string description: Ссылка для перенаправления Покупателя на Платежную страницу Участника Сервиса УПК. Допускаются только символы в кодировке ASCII. Формат должен соответствовать спецификации RFC-3986 example: https://example.ru description: description: >- Опциональное внутреннее для Агента ТСП поле. Используется для отчетов и показа в АРМ. maxLength: 140 type: string example: 'вручную для кассы N13' image: type: string description: base64encoded image. Формат для декодирования зависит от mediaType example: iVBORw0KGgoAAAANSUhEUgAABEoAAARKCAIAAADXJAK3AAAABmJLR0QA/wD...YII= required: - qrcId - localQrcId - payload CashQrcActivateRequest: title: Запрос активации Кассовой ссылки type: object properties: amount: description: Сумма платежа в копейках (валюта только RUB). Сумма обязательна. type: number minLength: 1 maxLength: 12 example: 130000 paymentPurpose: description: Назначение платежа (UTF-8). Длина не более 140 type: string maxLength: 140 example: Покупка чего-то там fraudScore: type: string maxLength: 16 description: Индикатор Подозрительной Операции Банка Получателя (ИПО БПо) expDt: description: >- Период использования Кассовой ссылки в минутах. Необязательное поле. Конкретные минимальные и максимальные значения нужно смотреть/узнавать у НСПК. НСПК их меняет без предупреждения. type: integer format: int32 example: 5 localExpDt: description: >- Используется для активированных кассовых ссылок. Опциональное "время жизни" кассовой ссылки в секундах(!). Минимальное значение - любое. Максимальное значение не будет превышать указанное в "expDt". Используется, если запрос валидации QRC идет через Агента ТСП. type: integer format: int64 example: 60 redirectUrl: type: string maxLength: 1024 nullable: true description: | Содержит ссылку для автоматического возврата Плательщика из приложения Банка в приложение или на сайт ТСП. Допускаются только символы в кодировке ASCII. Формат должен соответствовать спецификации RFC-3986. example: https://exampletsp.io/qwertyui riskData: type: object description: Структура описана в отдельном документе (/webapi-doc/riskData) required: - amount CashQrcState: title: состояние Кассовой ссылки type: object properties: locked: type: boolean description: >- Статус разрешения приема и отправки переводов для данного QR кода. Определяется по признакам loсked юридического лица, счета и ТСП. example: false qrCode: $ref: '#/components/schemas/CashQrcData' CashQrcHistoryState: title: состояние конретной активации ссылки properties: localParamsId: type: integer format: int64 description: Внутренний id, (однозначно связан с paramsId). Предназначен для операций возврата, где UI с клиентом не позволяет ввести исходный длинный paramsId (например, только цифровая клавиатура) example: 18374 amount: description: Сумма платежа в копейках (валюта только RUB). Сумма опциональна. type: number minLength: 1 maxLength: 12 example: 130000 paymentPurpose: description: Назначение платежа (UTF-8). Длина не более 140 type: string example: Оплата алкоголя regTime: description: Время регистрации QRC example: '2020-07-02T18:24:11.252+07:00' type: string payTime: description: Время платежа example: '2020-07-02T18:24:11.252+07:00' type: string payStatus: type: string enum: - NTST - RCVD - ACWP - RJCT description: >- Статус операции, инициированной кассовой ссылкой: * NTST - NOT_STARTED операции по QR коду не существует * RCVD - RECEIVED операция в обработке * ACWP - ACCEPTED операция завершена успешно * RJCT - REJECTED операция отклонена trxId: type: string description: Идентификатор операции, инициированной кассовой ссылкой maxLength: 32 example: X1A2S3D5F6G7H8J9K0C4S5C6D7V5D1K2 paymentServiceId: maxLength: 12 minLength: 12 type: string description: Идентификатор способа приема платежа. Для совместимости со старым API, для значения PS0000000001 (СБП платежи), поле не выдается в ответе. example: PS0000000002 clientPAM: type: string description: >- PAM Получателя (Personal Assurance Message). Опционально. Заполняется если доступно. maxLength: 140 example: 'Джон Петрович Ж' payerId: minLength: 13 maxLength: 15 type: string description: Маскированный номер телефона Клиента-Плательщика. Опционально. Заполняется если доступно. nullable: true example: '*********6731' merchantId: description: >- Идентификатор зарегистрированного ТСП в СБП. type: string maxLength: 12 example: MF0000000001 extEntityId: type: string maxLength: 32 example: 12%ABq1+2 description: Уникальный ID Платформы, выданный при регистрации юр. лица legalId: type: string description: >- Идентификатор зарегистрированного юридического лица в СБП maxLength: 12 example: LF0000000001 accAlias: type: string description: >- ID/синоним счета.Что бы не использовать фактическое значение номера счета (там где это запрещено правилами и требованиями безопасности). Значение задается при регистрации или генерируется автоматически при регистрации счета в Агенте ТСП. accAlias обязателен к указанию в запросах, если нет поля счета (account). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 account: description: >- Номер счета (классический. шаблона '^[\d+]{5}810[\d+]{12}$'). Значение задается при регистрации счета в Агенте ТСП. Обязателен к указанию в запросах, если нет поля альтернативного указания счета (accAlias). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. type: string pattern: '^[\d+]{5}810[\d+]{12}$' example: "40702810250011001666" UpdateUniQrcRequest: title: Новые параметры Универсального многоразового QRC type: object properties: account: description: >- Номер счета (классический. шаблона '^[\d+]{5}810[\d+]{12}$'). Значение задается при регистрации счета в Агенте ТСП. Обязателен к указанию в запросах, если нет поля альтернативного указания счета (accAlias). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. type: string pattern: '^[\d+]{5}810[\d+]{12}$' example: "40702810250011001666" accAlias: type: string description: >- ID/синоним счета.Что бы не использовать фактическое значение номера счета (там где это запрещено правилами и требованиями безопасности). Значение задается при регистрации или генерируется автоматически при регистрации счета в Агенте ТСП. accAlias обязателен к указанию в запросах, если нет поля счета (account). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 merchantId: maxLength: 12 minLength: 12 type: string description: Идентификатор ТСП example: MF0000000001 redirectUrl: maxLength: 1024 type: string nullable: true description: | Содержит ссылку для автоматического возврата Плательщика из приложения Банка в приложение или на сайт ТСП. Допускаются только символы в кодировке ASCII. Формат должен соответствовать спецификации RFC-3986. example: https://exampletsp.io/qwertyui paymentPageUrl: maxLength: 1024 minLength: 1 type: string description: Ссылка для перенаправления Покупателя на Платежную страницу Участника Сервиса УПК. Допускаются только символы в кодировке ASCII. Формат должен соответствовать спецификации RFC-3986 example: https://example.ru description: description: >- Опциональное внутреннее для Агента ТСП поле. Используется для отчетов и показа в АРМ. maxLength: 140 type: string example: 'вручную для кассы N13' accountDr: type: string description: >- Cчет Цифрового Рубля (опционально). example: "g.ab.cbrdc.wlt.clt.abcd0123-ab12-4a12-89ab-abcdef011111" uniQrcCfgId: type: string description: >- Опциональная ссылка на список настроек банка (см. GET /uniQrc/psrv/cfg). example: 233442 QRCode: title: QR код. type: object properties: merchantId: description: Идентификатор зарегистрированного ТСП в СБП. type: string maxLength: 12 example: MF0000000001 accAlias: type: string description: >- ID/синоним счета.Что бы не использовать фактическое значение номера счета (там где это запрещено правилами и требованиями безопасности). Значение задается при регистрации или генерируется автоматически при регистрации счета в Агенте ТСП. accAlias обязателен к указанию в запросах, если нет поля счета (account). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 accountDr: type: string description: >- Cчет Цифрового Рубля (опционально). Есть, если был универсальный QRC example: "g.ab.cbrdc.wlt.clt.abcd0123-ab12-4a12-89ab-abcdef011111" uniQrcCfgId: type: string description: >- Опциональная ссылка на список настроек банка (см. GET /uniQrc/psrv/cfg). Есть, если был универсальный QRC example: 233442 qrcType: type: string example: '01' enum: - '01' - '02' - '03' description: | Тип QR кода: * 01 - QR-Static (QR наклейка) * 02 - QR-Dynamic (QR на кассе) * 03 - QR-Subscription (QR для подписки) qrcId: type: string description: Идентификатор зарегистрированного QR кода в СБП maxLength: 32 example: AS1000670LSS7DN18SJQDNP4B05KLJL2 localQrcId: type: integer format: int64 description: >- Внутренний id (однозначно связан с qrcId). Предназначен для операций возврата, где UI с клиентом не позволяет ввести исходный длинный qrcId (например, только цифровая клавиатура) minimum: 1 maximum: 12 example: 12450 subscriptionQrcId: type: string description: >- Если данный QRC это платеж по подписке, то поле содержит ссылку на QRC подписки (типа 03 или 02) maxLength: 32 example: AS1000670LSS7DN18SJQDNP4B05KLJL3 regTime: description: Время регистрации QRC example: '2020-07-02T18:24:11.252+07:00' type: string expDt: description: >- Используется _только_ для динамических QRC (02) и QRC подписки (03). Опциональный параметр, "время жизни" QRC в минутах. Если указано меньше/меньше минимального/максимального значения (5 минут/90 дней). на дату выпуска бюллетеня), то ставится в максимум/минимум по требованию бюллетеня. По умолччанию (если не указано - 72 часа) type: integer format: int32 example: 5 localExpDt: description: >- Используется _только_ для динамических QRC Опциональное "время жизни" QRC в секундах(!). Минимальное значение - любое. Максимальное значение не будет превышать указанное в "expDt" (или 72, если expDt не указано) Используется, если запрос валидации QRC идет через Агента ТСП. type: integer format: int64 example: 60 payload: type: string description: Payload зарегистрированного QR кода в СБП maxLength: 999 example: >- https://qr.nspk.ru/AS1000670LSS7DN18SJQDNP4B05KLJL2?type=01&bank=100000000001&sum=10000&cur=RUB&crc=C08B redirectUrl: type: string maxLength: 1024 nullable: true description: | Содержит ссылку для автоматического возврата Плательщика из приложения Банка в приложение или на сайт ТСП. Допускаются только символы в кодировке ASCII. Формат должен соответствовать спецификации RFC-3986. example: https://exampletsp.io/qwertyui paymentPageUrl: maxLength: 1024 minLength: 1 type: string description: Ссылка для перенаправления Покупателя на Платежную страницу Участника Сервиса УПК. Допускаются только символы в кодировке ASCII. Формат должен соответствовать спецификации RFC-3986 example: https://example.ru image: type: string description: base64encoded image. Формат для декодирования зависит от mediaType example: iVBORw0KGgoAAAANSUhEUgAABEoAAARKCAIAAADXJAK3AAAABmJLR0QA/wD...YII= required: - qrcId - localQrcId - payload QrcB2B: title: QR код B2B. type: object properties: amount: description: >- Сумма платежа в копейках (валюта только RUB) Сумма обязательна для одноразового кода. type: number minLength: 1 maxLength: 12 example: 130000 merchantId: description: Идентификатор зарегистрированного ТСП в СБП. type: string maxLength: 12 example: MF0000000001 accAlias: type: string description: >- ID/синоним счета.Что бы не использовать фактическое значение номера счета (там где это запрещено правилами и требованиями безопасности). Значение задается при регистрации или генерируется автоматически при регистрации счета в Агенте ТСП. accAlias обязателен к указанию в запросах, если нет поля счета (account). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 reusable: type: boolean example: 'true' description: >- Одноразовый (false) или многоразовый (true) QRC expDt: description: >- Оциональное "время жизни" ссылки в минутах. Минимальное допустимое значение - 5. Максимальное допустимое значение - 20. берется значение по умолчанию – 5 минут type: integer format: int32 example: 5 localQrcId: type: integer format: int64 description: >- Внутренний id (однозначно связан с qrcId). Предназначен для операций возврата, где UI с клиентом не позволяет ввести исходный длинный qrcId (например, только цифровая клавиатура) minimum: 1 maximum: 12 example: 12450 qrcId: type: string description: Идентификатор зарегистрированного QR кода в СБП maxLength: 32 example: AS1000670LSS7DN18SJQDNP4B05KLJL2 regTime: description: Время регистрации QRC example: '2020-07-02T18:24:11.252+07:00' type: string takeTax: type: boolean description: | Информация о взимании НДС. Допустимые значения: * true – облагается НДС; * false – не облагается НДС; enum: - true - false example: true totalTaxAmount: type: number minLength: 1 maxLength: 12 nullable: true description: | Сумма НДС в копейках. Валюта НДС - рубли РФ. Условия заполнения в зависимости от значения поля takeTax: * totalTaxAmount всегда отсутствует при takeTax=FALSE; * totalTaxAmount всегда присутствует при takeTax=TRUE (при этом ЭБД 297 всегда отсутствует в сообщении M05); example: 0 uip: type: string maxLength: 35 minLength: 1 nullable: true description: > Уникальный Идентификатор Платежа, назначаемый Получателем Может использоваться и имеет смысл только для одноразовой QRC example: 281000670LSS7DN18SJQDNP4B05KLJL2 payload: type: string description: Payload зарегистрированного QR кода в СБП maxLength: 999 example: >- https://qr.nspk.ru/AS1000670LSS7DN18SJQDNP4B05KLJL2?type=01&bank=100000000001&sum=10000&cur=RUB&crc=C08B redirectUrl: type: string maxLength: 1024 nullable: true description: | Содержит ссылку для автоматического возврата Плательщика из приложения Банка в приложение или на сайт ТСП. Допускаются только символы в кодировке ASCII. Формат должен соответствовать спецификации RFC-3986. example: https://exampletsp.io/qwertyui image: type: string description: base64encoded image. Формат для декодирования зависит от mediaType. Передается только в запросах, где требуется example: iVBORw0KGgoAAAANSUhEUgAABEoAAARKCAIAAADXJAK3AAAABmJLR0QA/wD...YII= required: - qrcId - localQrcId - payload QrcSubscription: title: Данные подписки на платежи по QRC. Только для type=03. type: object properties: subscriptionToken: maxLength: 32 minLength: 32 type: string description: Идентификатор подписки, назначаемый Банком Плательщика nullable: true example: 70LSS7DN18SJQRS10006DNPKLJL24B05 code: maxLength: 7 minLength: 7 type: string description: >- Код ответа оформления подписки. В спецификации ОПЕРАЦИОННЫЙ БЮЛЛЕТЕНЬ 23.2021 в одном месте пишется что (3.6.) <значение параметра code = «RS00000»;> и в https://sbp.nspk.ru/api/new/#operation/sendSubscribtionResult (NotificationSubscriptionDto)ь RS00000 без описания. В другом месте спецификации <"RQ00000" – Запрос обработан успешно;> Что бы исключить коллизии в дальнейшем. enum убран. Наверное (по факту тестов и эксплуатации) нужно полагаться на значения "RQxxxxxx" * "RQ00000" – Запрос обработан успешно; * "RQ05030" – Плательщик отказался от оформления подписки * "RQ05034" – Сценарий не поддерживается Банком Плательщика example: RQ00000 message: maxLength: 255 type: string description: Описание кода ответа example: Подписка оформлена status: minLength: 4 maxLength: 4 type: string description: Статус оформления подписки example: "ACWP" subscriptionPurpose: maxLength: 140 type: string description: Информация от ТСП с деталями подписки. Поле обязательно для QR для подписки (qrcType = "03") и для QR для оплаты с подпиской subscriptionServiceId: maxLength: 32 type: string description: Идентификатор привязки (подписки) subscriptionServiceName: maxLength: 70 type: string description: Наименование привязки (подписки) statusTime: description: Время изменения статуса example: '2020-07-02T18:24:11.252+07:00' type: string subscriberMemberId: description: Банк подписчика (физ. лица, подписавшегося на платежи) type: string maxLength: 12 minLength: 12 example: '100000000052' lastTime: description: >- Время последнего запроса на платеж по подписке от ТСП (POST/subscribe). Именно время запроса, а не платежа. В lastQrcId - QRC к которому относится данный example: '2020-07-02T18:24:11.252+07:00' type: string lastCode: maxLength: 7 minLength: 7 type: string description: >- Код СБП пришедший в callback от СБП как "Уведомление для Агента ТСП о решении об оплате с привязанного счета Плательщика от ОПКЦ СБП" (https://sbp.nspk.ru/api/#operation/resolutionForPaymentBySubscribtion). в lastQrcId - QRC к которому относится данный callback СБП example: RQ00000 lastQrcId: type: string description: последний (по времени) QRС ID созданный для оплаты по подписке. maxLength: 32 example: AD10002TN7ACHBQF9K3P6QO2HAV7SAG6 QRCodeStateRequest: title: Запрос изменения срока действия QRC type: object properties: localExpDt: description: >- Используется _только_ для динамических QRC Опциональное "время жизни" QRC в секундах(!). Минимальное значение - любое. Максимальное значение не будет превышать указанное в "expDt" (или 72, если expDt не указано) Используется, если запрос валидации QRC идет через Агента ТСП. type: integer format: int64 example: 120 QRCodeStateResult: title: Ответ на запрос о состоянии QR кода. type: object properties: locked: type: boolean description: >- Статус разрешения приема и отправки переводов для данного QR кода. Определяется по признакам loсked юридического лица, счета и ТСП. example: false payStatus: $ref: '#/components/schemas/DynamicQRPayStatus' qrCode: $ref: '#/components/schemas/QRCode' subscription: $ref: '#/components/schemas/QrcSubscription' required: - locked - qrCode QrcB2bStateResult: title: Ответ на запрос о состоянии QR кода. type: object properties: locked: type: boolean description: >- Статус разрешения приема и отправки переводов для данного QR кода. Определяется по признакам loсked юридического лица, счета и ТСП. example: false payStatus: $ref: '#/components/schemas/QrcB2bPayStatus' qrCode: $ref: '#/components/schemas/QrcB2B' required: - locked - qrCode DynamicQRPayStatus: title: Статус платежа для динамического QR кода. Для статического не возвращается. type: object properties: status: type: string enum: - NTST - RCVD - ACWP - RJCT description: >- Статус операции, инициированной Dynamic QR кодом: * NTST - NOT_STARTED операции по QR коду не существует * RCVD - RECEIVED операция в обработке * ACWP - ACCEPTED операция завершена успешно * RJCT - REJECTED операция отклонена trxId: type: string description: >- Идентификатор операции, инициированной Dynamic QR кодом Применимо только для статуса СБП ACWP. Для ЦР не используется. maxLength: 32 example: X1A2S3D5F6G7H8J9K0C4S5C6D7V5D1K2 paymentServiceId: maxLength: 12 minLength: 12 type: string description: >- Идентификатор способа приема платежа. Для совместимости со старым API, для значения PS0000000001 (СБП платежи), поле не выдается в ответе. example: PS0000000002 sbpCode: type: string description: код СБП (например прична RJCT) maxLength: 7 example: "RQ05061" sbpMsg: type: string description: описание кода СБП (присланное СБП) maxLength: 255 example: 'Превышен лимит по сумме операций по СБП' clientPAM: type: string description: >- PAM Получателя (Personal Assurance Message). Опционально. Заполняется если доступно. maxLength: 140 example: 'Джон Петрович Ж' payerId: minLength: 13 maxLength: 15 type: string description: Маскированный номер телефона Клиента-Плательщика. Опционально. Заполняется если доступно. nullable: true example: '*********6731' payTime: description: Время платежа example: '2020-07-02T18:24:11.252+07:00' type: string addParameters: $ref: '#/components/schemas/AddParametersResponse' QrcB2bPayStatus: title: Статус для одноразового QRC B2B. Для многоразового не возвращается. type: object properties: status: type: string enum: - NTST - RCVD - ACWP - RJCT description: >- Статус операции, инициированной Dynamic QR кодом: * NTST - NOT_STARTED операции по QR коду не существует * RCVD - RECEIVED операция в обработке * ACWP - ACCEPTED операция завершена успешно * RJCT - REJECTED операция отклонена trxId: type: string description: 'Идентификатор операции, инициированной Dynamic QR кодом' maxLength: 32 example: X1A2S3D5F6G7H8J9K0C4S5C6D7V5D1K2 ErrorResultData: title: Стандартный ответ ошибки. type: object properties: code: type: integer description: Код ответа example: 666 sbpCode: type: string description: Опциональное поле СБП кода ошибки. Присутствует, если отказ в операции пришел из СБП. example: 'RQ05017' appCode: type: string description: Опциональное поле кода ответа внешней системы (не СБП). Коды специфицируются в конретных внешних системах (АБС банка, фрод мониторинг и т.п.). example: '2003' message: type: string description: Описание кода ответа example: Описание ошибки maxLength: 255 addInfo: type: string description: Дополнительная информация maxLength: 255 example: "Дополнительная информация по ошибке" required: - code - message RegistrationEntityResult: title: Положительный ответ на запрос регистрации юридического лица type: object properties: extEntityId: type: string description: >- Уникальный ID юрлица в Платформе, по которому он может получать QR код и проверять статус регистрации maxLength: 32 example: 12%ABq1+2 required: - extEntityId RegistrationResult: title: Положительный ответ на запрос регистрации type: object properties: id: description: Внутренний id объекта type: integer format: int64 example: 234999 StateResult: title: Ответ на запрос проверки статуса. type: object properties: regFinished: type: boolean description: >- Консолидированный признак того, что регистрация всех объектов (счетов, ТСП, статических QR) на данный момент завершена locked: type: boolean description: Статус разрешения приема и отправки переводов example: false regCode: type: string description: Код ответа maxLength: 7 example: RM00000 regMessage: type: string description: Описание ответа на регистрацию в СБП maxLength: 255 example: Запрос обработан успешно regStatus: type: string description: >- Статус регистрации юридического лица. * "INITED" - Запрос только зарегистрирован. В СБП еще не посылалался. * "REQUESTED" - запрос отправлен в СБП * "IN_PROCESS" - Запрос в процессе выполнения в СБП * "CREATED" - Успешно зарегистрировано в СБП * "ERROR" - проблема с регистрацией в СБП enum: - INITED - REQUESTED - IN_PROCESS - CREATED - ERROR example: CREATED extEntityId: type: string maxLength: 32 example: 12%ABq1+2 description: Уникальный ID Платформы, выданный при регистрации юр. лица legalId: type: string description: >- Идентификатор зарегистрированного юридического лица в СБП (если уже получен) maxLength: 12 example: LF0000000001 legalEntity: $ref: '#/components/schemas/Entity' accounts: type: array items: type: object properties: regAttr: $ref: '#/components/schemas/RegAttr' locked: type: boolean description: 'Статус разрешения приема и отправки переводов (см. /entity/state/ PUT)' example: false description: type: string description: Дополнительная информация по счету maxLength: 255 example: 'Счет кассы оплаты алкоголя' alias: type: string description: >- Cиноним номера счета. Необходим что бы не использовать фактические значение номера счетов. Задается при регистрации или генерится автоматически при регистрации. Используется в отвветах на информационые запросы. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 account: type: string example: 40702***666 description: счет юридического лица. Может быть маскирован (настройки банка) id: type: string description: >- Внутренний ID Агента ТСП. Для возможности в дальнейшем управлять через PUT /entity/account/{extEntityId}. В точм числе и параметрами еще не зарегистрированного счета example: '12423' merchants: type: array items: type: object properties: id: type: string description: >- Внутренний ID Агента ТСП. Для возможности в дальнейшем управлять через PUT /entity/merchant/{extEntityId}. В точм числе и параметрами еще не зарегистрированной ТСП example: '12423' regAttr: $ref: '#/components/schemas/RegAttr' locked: type: boolean description: Статус разрешения приема и отправки переводов example: false regCode: type: string description: Код ответа maxLength: 7 example: RM00000 regMessage: type: string description: Описание ответа на регистрацию в СБП maxLength: 255 example: Запрос обработан успешно regStatus: description: Статус регистрации ТСП. enum: - INITED - IN_PROCESS - CREATED - ERROR example: CREATED mcc: type: string maxLength: 4 description: MCC pattern: ^\d+$ example: 4122 brandName: type: string example: Продажа банковских карт description: Название ТСП. address: type: string description: Юридический адрес maxLength: 140 example: УЛИЦА ТАТАРСКАЯ Б. ДОМ 13 zip: type: string maxLength: 6 description: Индекс example: 115184 salesMode: type: string description: Способ приема оплаты ТСП. REMOTE - дистанционно; FACE_TO_FACE – очно, с личным присутствием плательщика example: REMOTE url: maxLength: 1024 minLength: 1 type: string nullable: false description: Веб-сайт ТСП. Обязателен, если в salesMode передано значение REMOTE. Допускаются только символы в кодировке ASCII. Формат должен соответствовать спецификации RFC-3986. example: https://website.com inn: maxLength: 32 minLength: 1 type: string description: Государственный идентификатор налогоплательщика ТСП. Для РФ - ИНН example: '3664069397' countrySubDivisionCode: type: string maxLength: 2 description: >- Код региона-регистрации юридического лица, первые две цифры кода ОКТМО example: '45' merchantId: description: Идентификатор зарегистрированного ТСП в СБП type: string maxLength: 12 example: MF0000000001 defAccDr: type: string description: >- Cчет Цифрового Рубля, по умолчанию для ТСП (опционально). Счет уже должен быть зарегистрирован example: "g.ab.cbrdc.wlt.clt.abcd0123-ab12-4a12-89ab-abcdef011111" defAccAlias: type: string description: >- ID/синоним счета.Что бы не использовать фактическое значение номера счета (там где это запрещено правилами и требованиями безопасности). Значение задается при регистрации или генерируется автоматически при регистрации счета в Агенте ТСП. accAlias обязателен к указанию в запросах, если нет поля счета (account). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df63 defUniQrcCfgId: type: string description: >- Ссылка на список настроек банка (см. GET /uniQrc/psrv/cfg). Если поле не пустое, то QRC для данного ТСП создаются, по умолчанию, как Универсальный QRC со списком PaymentServices, на который ссылается данное поле. example: 233442 tradeDiscount: $ref: '#/components/schemas/MerchantTradeDiscount' staticQRCodes: type: array description: >- Список ограничен настройками сервера. По умолчанию не более 10 записей. Если ТСП использует статические QRC массово, то должно хранить у себя список QRC и запрашивать через API индивидуальную информацию. items: type: object properties: regCode: type: string description: Код ответа maxLength: 7 example: RM00000 regMessage: type: string description: Описание ответа на регистрацию в СБП maxLength: 255 example: Запрос обработан успешно regStatus: description: Статус регистрации ТСП. enum: - INITED - IN_PROCESS - CREATED - ERROR example: CREATED accAlias: type: string description: ID счета.Что бы не использовать фактичесокое значение номера счета. Задается при регистрации или генерится автоматически при регистрации. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 qrcId: type: string description: Идентификатор зарегистрированного QR кода в СБП maxLength: 32 example: AS1000670LSS7DN18SJQDNP4B05KLJL2 payload: type: string description: Payload зарегистрированного QR кода в СБП maxLength: 999 example: >- https://qr.nspk.ru/AS1000670LSS7DN18SJQDNP4B05KLJL2?type=01&bank=100000000001&sum=10000&cur=RUB&crc=C08B amount: description: Сумма платежа в копейках (валюта только RUB). Сумма опциональна. type: number minLength: 1 maxLength: 12 example: 130000 paymentPurpose: description: Назначение платежа (UTF-8). Длина не более 140 type: string example: Оплата алкоголя required: - status FindEntityResult: title: Основные ID организации type: object properties: locked: type: boolean description: Статус разрешения приема и отправки переводов example: false regCode: type: string description: Код ответа maxLength: 7 example: RM00000 regMessage: type: string description: Описание ответа на регистрацию в СБП maxLength: 255 example: Запрос обработан успешно regStatus: type: string description: >- Статус регистрации юридического лица. * "INITED" - Запрос только зарегистрирован. В СБП еще не посылалался. * "REQUESTED" - запрос отправлен в СБП * "IN_PROCESS" - Запрос в процессе выполнения в СБП * "CREATED" - Успешно зарегистрировано в СБП * "ERROR" - проблема с регистрацией в СБП enum: - INITED - REQUESTED - IN_PROCESS - CREATED - ERROR example: CREATED extEntityId: type: string maxLength: 32 example: 12%ABq1+2 description: Уникальный ID Платформы, выданный при регистрации юр. лица legalId: type: string description: >- Идентификатор зарегистрированного юридического лица в СБП (если уже получен) maxLength: 12 example: LF0000000001 subscriptionsRestricted: type: boolean default: false example: true description: >- true - ограничения Сценариев привязки счета и оплаты с привязанного счета для ЮЛ или ИП b2bRestricted: type: boolean example: true description: >- true - запрет B2B (прием/отправка) name: type: string description: Полное наименование юридического лица maxLength: 512 example: ИП "Карты и деньги" type: type: string description: Организационно-правовая форма юридического лица (ОКОПФ:50102 - ИП, ) maxLength: 10 example: 50102 inn: type: string maxLength: 12 description: ИНН pattern: '^[\d+]{10,12}$' example: '571484371719' ogrn: type: string maxLength: 15 description: ОГРН. Нет для самозанятых pattern: '^[1-9]\d{2}\d{2}(\d{2}\d{5}|\d{9})\d$' example: '306103009833110' kpp: maxLength: 9 minLength: 9 type: string description: КПП example: '783587001' lastName: type: string description: Фамилия (в СБП используется только для самозанятых) minLength: 1 example: "Петрова" firstName: type: string description: Имя (в СБП используется только для самозанятых) minLength: 1 example: "Анна Мария" middleName: type: string description: Отчество (в СБП используется только для самозанятых) minLength: 1 example: "Сергеевна" countryCode: type: string maxLength: 2 description: >- Код страны-регистрации юридического лица, в формате "ISO 3166, Alpha-2" example: RU countrySubDivisionCode: type: string maxLength: 2 description: >- Код региона-регистрации юридического лица, первые две цифры кода ОКТМО example: '45' city: type: string description: Город maxLength: 280 example: Москва zip: type: string maxLength: 6 description: Индекс example: 115184 address: type: string description: Юридический адрес maxLength: 500 example: УЛИЦА ТАТАРСКАЯ Б. ДОМ 13 regAttr: $ref: '#/components/schemas/RegAttr' required: - extEntityId RegistrationEntityRequest: title: Данные регистрируемого юридического лица или самозанятого. Включая счета и ТСП type: object properties: entity: $ref: '#/components/schemas/RegEntity' accounts: type: array items: $ref: '#/components/schemas/Account' merchants: type: array items: $ref: '#/components/schemas/Merchant' required: - entity RegAttr: title: Дополнительные данные регистрации. Локальные для Агента ТСП. В СБП не отправляются. type: object properties: readyForReg: title: Признак готовности к регистрации. Выставляется через АРМ ТСП. type: boolean default: true info: title: Произвольный текст от того, кто отпарвил запрос на регистрацию. Используется для показа в АРМ Агента ТСП type: string example: 'ЗАО чебурашка. Контактное лицо Седоров Данила Саахмундилович. сотовый +79139865195' attr: title: произвольный json объект. макситмальная длина стоки json = 512. RFU-Зарезервировано на будущее. type: object RegEntity: title: Данные регистрируемого юридического лица или данные на изменение description: >- Тип регистрируемого объекта определяется по полям. см. описание в POST /entity Этот же объект используется для изменения данных юр. лица. Но с учетом того, что некоторые поля не могут быть изменены после успешной регистрации в СБП. type: object properties: ogrn: type: string maxLength: 15 description: >- ОГРН организации. Не меняется после регистрации в СБП example: '306103009833110' subscriptionsRestricted: type: boolean example: true description: >- Флаг ограничения Сценариев привязки счета и оплаты с привязанного счета для ЮЛ или ИП. Может быть изменено после регистрации в СБП (используется специальный запрос в СБП для уже зарегистрированных организаций) Свойство организации в СБП. b2bRestricted: type: boolean example: true description: >- true - запрет B2B (прием/отправка). Может быть изменено после регистрации в СБП (локальное свойство организации в Агенте ТСП) inn: type: string maxLength: 12 description: >- ИНН организации. Не меняется после регистрации в СБП example: '571484371719' lastName: type: string description: >- Фамилия (в СБП используется только для самозанятых) Не меняется после регистрации в СБП example: "Петрова" firstName: type: string description: >- Имя (в СБП используется только для самозанятых) Не меняется после регистрации в СБП example: "Анна Мария" middleName: type: string description: >- Отчество (в СБП используется только для самозанятых) Не меняется после регистрации в СБП example: "Сергеевна" name: maxLength: 512 minLength: 1 type: string description: >- Наименование ЮЛ-нерезидента Не меняется после регистрации в СБП example: OOO Ромашка kpp: maxLength: 9 minLength: 9 type: string description: >- КПП Не меняется после регистрации в СБП example: '783587001' countryCode: maxLength: 2 minLength: 2 type: string description: >- Код страны регистрации ЮЛ-нерезидента в формате альфа-2 в соответствии с Приложением А Общероссийского классификатора стран мира Не меняется после регистрации в СБП example: BY regAttr: $ref: '#/components/schemas/RegAttr' Entity: title: Данные зарегистрированного юридического лица description: kpp убрано из протокола НСПК type: object properties: regAttr: $ref: '#/components/schemas/RegAttr' subscriptionsRestricted: type: boolean default: false example: true description: >- Флаг ограничения Сценариев привязки счета и оплаты с привязанного счета для ЮЛ или ИП b2bRestricted: type: boolean example: true description: >- true - запрет B2B (прием/отправка) name: type: string description: Полное наименование юридического лица maxLength: 512 example: ИП "Карты и деньги" type: type: string description: Организационно-правовая форма юридического лица (ОКОПФ:50102 - ИП, ) maxLength: 10 example: 50102 inn: type: string maxLength: 12 description: ИНН pattern: '^[\d+]{10,12}$' example: '571484371719' ogrn: type: string maxLength: 15 description: ОГРН. Нет для самозанятых pattern: '^[1-9]\d{2}\d{2}(\d{2}\d{5}|\d{9})\d$' example: '306103009833110' kpp: maxLength: 9 minLength: 9 type: string description: КПП example: '783587001' lastName: type: string description: Фамилия (в СБП используется только для самозанятых) minLength: 1 example: "Петрова" firstName: type: string description: Имя (в СБП используется только для самозанятых) minLength: 1 example: "Анна Мария" middleName: type: string description: Отчество (в СБП используется только для самозанятых) minLength: 1 example: "Сергеевна" countryCode: type: string maxLength: 2 description: >- Код страны-регистрации юридического лица, в формате "ISO 3166, Alpha-2" example: RU countrySubDivisionCode: type: string maxLength: 2 description: >- Код региона-регистрации юридического лица, первые две цифры кода ОКТМО example: '45' city: type: string description: Город maxLength: 280 example: Москва zip: type: string maxLength: 6 description: Индекс example: 115184 address: type: string description: Юридический адрес maxLength: 500 example: УЛИЦА ТАТАРСКАЯ Б. ДОМ 13 Account: title: Счет юридического лица type: object properties: regAttr: $ref: '#/components/schemas/RegAttr' description: type: string description: Дополнительная информация по счету maxLength: 255 example: 'Счет кассы оплаты алкоголя' alias: type: string description: Фактически ID счета, по которому можно потом обращаться в запросах работы с QR кодами. Что бы не использовать фактическое значение номера счета. Должен быть уникальным для данного юр.лица или вообще не присутствовать в запросе (будет сгенерен автоматически как SHA256 от account). maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 accType: description: Тип счета. на данный момент либо не указывается - стандартный счет, либо 'DR' - Цифровой рубль. type: string example: 'DR' account: description: Счет юридического лица. Для accType != 'DR' счет должен соответствовать шаблону '^[\d+]{5}810[\d+]{12}$'. type: string example: "40702810250011001666" AccountUpdData: title: Счет юридического лица type: object properties: regAttr: $ref: '#/components/schemas/RegAttr' description: type: string description: Дополнительная информация по счету maxLength: 255 example: 'Счет кассы оплаты алкоголя' alias: type: string description: Фактически ID счета, по которому можно потом обращаться в запросах работы с QR кодами. Что бы не использовать фактическое значение номера счета. Должен быть уникальным для данного юр.лица или вообще не присутствовать в запросе (будет сгенерен автоматически как SHA256 от account). maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 account: description: Счет юридического лица type: string pattern: '^[\d+]{5}810[\d+]{12}$' example: "40702810250011001666" id: type: string description: >- Внутренний ID счета 'Агента ТСП'. example: '1234' Merchant: title: ТСП юридического лица description: >- Поле mcc обязательно, если не указан режим отложенного подтверждения (readyForReg": false) Если не указаны поля 'salesMode,inn,url', то, для совместимости, используется регистрация ТСП по старому вызову НСПК. Для ТСП зарегистрированных ранее, эти параметры null рекомендуется переходить на указание этих полей в соответствии с "ОПЕРАЦИОННЫЙ БЮЛЛЕТЕНЬ #09.2025 О расширении перечня реквизитов ТСП" type: object properties: regAttr: $ref: '#/components/schemas/RegAttr' brandName: type: string maxLength: 35 description: Название ТСП (имя по вывеске) example: Продажа банковских карт mcc: type: string maxLength: 4 description: MCC pattern: ^\d+$ example: 4122 countryCode: type: string maxLength: 2 description: >- Код страны-регистрации юридического лица, в формате "ISO 3166, Alpha-2" example: RU countrySubDivisionCode: type: string maxLength: 2 description: >- Код региона-регистрации юридического лица, первые две цифры кода ОКТМО example: '45' city: type: string description: Город maxLength: 140 example: Москва zip: type: string maxLength: 6 description: Индекс example: 115184 salesMode: type: string description: Способ приема оплаты ТСП. REMOTE - дистанционно; FACE_TO_FACE – очно, с личным присутствием плательщика example: REMOTE url: maxLength: 1024 minLength: 1 type: string nullable: false description: Веб-сайт ТСП. Обязателен, если в salesMode передано значение REMOTE. Допускаются только символы в кодировке ASCII. Формат должен соответствовать спецификации RFC-3986. example: https://website.com inn: maxLength: 32 minLength: 1 type: string description: Государственный идентификатор налогоплательщика ТСП. Для РФ - ИНН example: '3664069397' address: type: string description: Фактический адрес ТСП maxLength: 140 example: УЛИЦА ТАТАРСКАЯ Б. ДОМ 11 contactPhoneNumber: type: string description: Контактный номер телефона ТСП pattern: '^[0-9]{10,13}$' example: 79991234567 dynamicQR: description: Имется ли возможность работы с динамическим QR кодом type: boolean default: true defQrcExpDt: type: integer format: int32 description: >- Срок действия (в минутах) динамического QRC по умолчанию в СБП. defQrcLocalExpDt: type: integer format: int64 description: >- Срок действия (в секундах) динамического QRC по умолчанию в Агенте ТСП (может быть меньше чем в СБП). defAcc: type: string description: >- Номера счета, по умолчанию для ТСП (опционально). Счет уже должен быть зарегистрирован example: "40702810250011001666" defAccDr: type: string description: >- Cчет Цифрового Рубля, по умолчанию для ТСП (опционально). Счет уже должен быть зарегистрирован example: "g.ab.cbrdc.wlt.clt.abcd0123-ab12-4a12-89ab-abcdef011111" defAccAlias: type: string description: >- ID/синоним счета.Что бы не использовать фактическое значение номера счета (там где это запрещено правилами и требованиями безопасности). Значение задается при регистрации или генерируется автоматически при регистрации счета в Агенте ТСП. accAlias обязателен к указанию в запросах, если нет поля счета (account). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 defUniQrcCfgId: type: string description: >- Ссылка на список настроек банка (см. GET /uniQrc/psrv/cfg). Если поле не пустое, то QRC для данного ТСП создаются, по умолчанию, как Универсальный QRC со списком PaymentServices, на который ссылается данное поле. example: 233442 tradeDiscount: $ref: '#/components/schemas/MerchantTradeDiscount' staticQRCodes: type: array description: Опциональный список статических QRC. QRC можно дорегистрировать и потом. items: type: object properties: amount: description: Сумма платежа в копейках (валюта только RUB). Сумма опциональна. type: number minLength: 1 maxLength: 12 example: 130000 accAlias: type: string description: >- ID/синоним счета.Что бы не использовать фактическое значение номера счета (там где это запрещено правилами и требованиями безопасности). Значение задается при регистрации или генерируется автоматически при регистрации счета в Агенте ТСП. accAlias обязателен к указанию в запросах, если нет поля счета (account). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 account: description: Счет юридического лица type: string pattern: '^[\d+]{5}810[\d+]{12}$' example: "40702810250011001666" paymentPurpose: description: Назначение платежа (UTF-8). Длина не более 140 type: string example: Оплата алкоголя required: - brandName - countryCode - countrySubDivisionCode - city - zip - address MerchantUpdData: title: Параметры ТСП type: object properties: regAttr: $ref: '#/components/schemas/RegAttr' brandName: type: string maxLength: 35 description: Название ТСП (имя по вывеске) example: Продажа банковских карт mcc: type: string maxLength: 4 description: MCC pattern: ^\d+$ example: 4122 countryCode: type: string maxLength: 2 description: >- Код страны-регистрации юридического лица, в формате "ISO 3166, Alpha-2" example: RU countrySubDivisionCode: type: string maxLength: 2 description: >- Код региона-регистрации юридического лица, первые две цифры кода ОКТМО example: '45' city: type: string description: Город maxLength: 140 example: Москва zip: type: string maxLength: 6 description: Индекс example: 115184 address: type: string description: Фактический адрес ТСП maxLength: 140 example: УЛИЦА ТАТАРСКАЯ Б. ДОМ 11 salesMode: type: string description: Способ приема оплаты ТСП. REMOTE - дистанционно; FACE_TO_FACE – очно, с личным присутствием плательщика example: REMOTE url: maxLength: 1024 minLength: 1 type: string nullable: false description: Веб-сайт ТСП. Обязателен, если в salesMode передано значение REMOTE. Допускаются только символы в кодировке ASCII. Формат должен соответствовать спецификации RFC-3986. example: https://website.com inn: maxLength: 32 minLength: 1 type: string description: Государственный идентификатор налогоплательщика ТСП. Для РФ - ИНН example: '3664069397' contactPhoneNumber: type: string description: Контактный номер телефона ТСП pattern: '^[0-9]{10,13}$' example: 79991234567 dynamicQR: description: Имется ли возможность работы с динамическим QR кодом type: boolean default: true defQrcExpDt: type: integer format: int32 description: >- Срок действия (в минутах) динамического QRC по умолчанию в СБП. defQrcLocalExpDt: type: integer format: int64 description: >- Срок действия (в секундах) динамического QRC по умолчанию в Агенте ТСП (может быть меньше чем в СБП). defAcc: type: string description: >- номера счета, по умолчанию для ТСП (опционально). Счет уже должен быть зарегистрирован example: "40702810250011001666" defAccDr: type: string description: >- Cчет Цифрового Рубля, по умолчанию для ТСП (опционально). Счет уже должен быть зарегистрирован Если нужно сбросить счет, то должен быть параметр с пустой строкой (отсутствующий параметр или равный null, значение данного атрибута ТСП не меняет) example: "g.ab.cbrdc.wlt.clt.abcd0123-ab12-4a12-89ab-abcdef011111" defAccAlias: type: string description: >- ID/синоним счета.Что бы не использовать фактическое значение номера счета (там где это запрещено правилами и требованиями безопасности). Значение задается при регистрации или генерируется автоматически при регистрации счета в Агенте ТСП. accAlias обязателен к указанию в запросах, если нет поля счета (account). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 defUniQrcCfgId: type: string description: >- Ссылка на список настроек банка (см. GET /uniQrc/psrv/cfg). Если поле не пустое, то QRC для данного ТСП создаются, по умолчанию, как Универсальный QRC со списком PaymentServices, на который ссылается данное поле. Если нужно сбросить значение, то должен быть параметр с пустой строкой (отсутствующий параметр или равный null, значение данного атрибута ТСП не меняет) example: 233442 tradeDiscount: $ref: '#/components/schemas/MerchantTradeDiscount' merchantId: description: Идентификатор зарегистрированного ТСП в СБП type: string maxLength: 12 example: MF0000000001 id: type: string description: >- Внутренний ID ТСП 'Агента ТСП'. example: '1234' MerchantTradeDiscount: title: Данные торговой скидки type: object properties: percent: type: number minimum: 0 maximum: 100 description: >- Процент от суммы. Именно процент. 0.1 - это 0.1 % (сумма платежа / 100 * 0.1) example: 0.1 round: type: string description: >- Округление суммы (до копеек). Если не указано, то в текущей реализации считася как UP Примеры: * _UP_ 5.5->6, 1.6->2, 1.1->2, 1.0->1 * _DOWN_ 5.5->5, 1.6->1, 1.1->1, 1.0->1 * _HALF_ 5.5->5, 1.6->2, 1.1->1, 1.0->1 enum: - UP - DOWN - HALF minAmount: type: integer description: >- Минимальная сумма в копейках. Если сумма по процентам меньше чем minAmount, то используется minAmount example: 0 maxAmount: type: integer description: >- Максимальная сумма в копейках. Если сумма по процентам больше чем maxAmount, то используется maxAmount example: 5000 calcAmount: type: boolean default: true description: >- Если true, то сумма будет расчитана и включена в параметры платежа. Если false, то будет передана только информация о проценте и предполагается, что рачет делает внешнаяя система, а в Агенте ТСП хранятся только справочные даныне процента. example: true required: - percent StateControlRequest: title: Управление разрешением приема и отправки переводов для юр.лица type: object properties: lock: type: boolean description: Статус разрешения приема и отправки перeводов всей инфраструктуры example: false accounts: type: array items: type: object description: Может быть указан либо account либо alias либо локальный id для ссылки на счет. properties: lock: type: boolean description: Статус разрешения приема и отправки переводов по данному счету default: false example: false account: type: string pattern: '^[\d+]{5}810[\d+]{12}$' example: 40702810250011001666 description: счет юридического лица. alias: type: string description: Фактически ID счета, по которому можно потом обращаться в запросах работы с QR кодами. Что бы не использовать фактическое значение номера счета. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 id: type: string description: >- Внутренний ID счета 'Агента ТСП'. example: '1234' merchants: type: array items: type: object properties: lock: type: boolean description: Статус разрешения приема и отправки переводов для данной ТСП default: false example: false merchantId: description: Идентификатор зарегистрированного ТСП в СБП type: string maxLength: 12 example: MF0000000001 RefundCheckRequest: title: Запрос проверки возможности возврата. type: object properties: internalTxId: type: string description: >- Внутренний ID перевода. Опционален. Если не указан, то создается автоматически. Если указан, то должен быть уникален в пределах всех запросов банка. maxLength: 32 example: 'blabla12345' amount: type: integer description: >- Сумма платежа в копейках (валюта только RUB). Сумма может быть только меньше или равной сумме исходного платеже. Если сумма не указана, то возврат на полную сумму платежа. Сумму допустимо НЕ указывать только для возвратов по динамическим QR и кассовым ссылкам. minLength: 1 maxLength: 12 example: 130000 rcvBankMemberId: type: string description: >- Опциональное поле ID банка участника СБП, на счет клиента в котором будет выполнятся возврат Если не указано, то используется банк из отменяемого платежа. Если возврат по ЦР, то не применим. maxLength: 12 minLength: 12 example: '100000000052' rcvPhone: type: string description: >- Опциональное поле номера телефона клиента (с кодом 007-RU). Если не указано, то используется значение из отменяемого платежа. Если возврат по ЦР, то не применим. pattern: '^[0-9]{10,13}$' example: '0079874561231' remitInfo: type: string maxLength: 140 description: >- Опциональное поле причины возврата. example: 'Возврат товара на полку' refType: type: string description: >- Определяет назначения данных в поле refData enum: - qrcId - localQrcId - paramsId - localParamsId - payload - trxId refData: type: string description: >- Данные для поиска исходного платажа. Состав определяется refType * qrcId - Идентификатор зарегистрированного QR кода в СБП. Пример 'AS1000670LSS7DN18SJQDNP4B05KLJL2' * localQrcId - Внутренний id, выдаваемый при генерации QR кода (однозначно связан с qrcId). Предназначен для операций возврата, где UI с клиентом не позволяет ввести исходный qrcId (например, только цифровая клавиатура). Пример '17390' * paramsId - СБП ID активации кассовой ссылки. Пример: 'AP10000QBF00RRSK9358IVFD8796KPKN' * localParamsId локальный ID активации кассовой ссылки. Пример '27392' * payload - Payload зарегистрированного QR кода в СБП. Пример: 'https://qr.nspk.ru/AS1000670LSS7DN18SJQDNP4B05KLJL2?type=01&bank=100000000001&sum=10000&cur=RUB&crc=C08B' * trxId - СБП ID исходного платежа. Единственный способ возврата для статических QR кодов. Пример: 'A931608381015300KXVWKp1837BE5609' maxLength: 999 kvd: description: Код вида дохода ЭБД{33}. Опционален type: string example: '2' riskData: type: object description: Структура описана в отдельном документе (/webapi-doc/riskData) addParameters: $ref: '#/components/schemas/AddParametersRequest' required: - refType - refData RefundCheckStatus: title: Статус возможности отмены платежа. Возвращатеся, если, как минимум, исходный платеж найден и начат цикл отмены СБП. type: object properties: internalTxId: type: string description: Внутренний ID перевода. maxLength: 32 example: 'rfnd-6654' amount: type: number description: >- Сумма возврата в копейках (валюта в СБП только RUB). Фактическая сумма возврата. Если сумма указана в запросе, то берется из запроса. Если не была указана, то фактическая сумма - это сумма исходного платежа (возврат на все) Для ЦР режим рассчета суммы как сумма платеже минус уже совершенные возвраты автоматически не поддерживается. minLength: 1 maxLength: 12 example: 130000 orgnlTxId: type: string description: >- СБП ID исходного платежа. ЭБД{104} Если возврат по ЦР, то не применим. maxLength: 32 example: 'A931608381015300KXVWKp1837BE5609' trxId: type: string description: >- СБП ID операции отмены. ЭБД{27} Если возврат по ЦР, то не применим. maxLength: 32 example: 'A931608381015300KXVWKp1837BE5609' clientPAM: type: string description: >- PAM Получателя (Personal Assurance Message) Заполняется, только если получено в цикле отмены. (Для СБП ЭБД{74}) maxLength: 140 example: 'Джон Петрович Ж' addParameters: $ref: '#/components/schemas/AddParametersResponse' RefundConfirmRequest: title: Запрос выполнения перевода B2C в двухэтапной схеме. type: object properties: longWait: type: boolean description: >- Полный цикл возврата может занимать (по правилам СБП) несколько минут. По факту в среднем 5-10 сек. Это может оказаться слишком большим временем для HTTP запроса. Рекомендуется использовать longWait = false и корректную обработку статуса 202 с последующим опросом по /refund GET или /refund POST (лучше использовать GET). Время для получения 202 - это время необходимое на поиск в БД банка исходного платежа и регистрацию в БД цикла возврата. Время ответа с HTTP code 202 в пределах 2-3 сек. default: true example: false internalTxId: type: string description: Внутренний ID перевода. maxLength: 36 example: 'transf-12023' required: - internalTxId RefundRequest: title: Запрос отмены платежа. type: object properties: longWait: type: boolean description: >- Полный цикл возврата может занимать (по правилам СБП) несколько минут. По факту в среднем 5-10 сек. Это может оказаться слишком большим временем для HTTP запроса. Рекомендуется использовать longWait = false и корректную обработку статуса 202 с последующим опросом по /refund GET или /refund POST (лучше использовать GET). Время для получения 202 - это время необходимое на поиск в БД банка исходного платежа и регистрацию в БД цикла возврата. Время ответа с HTTP code 202 в пределах 2-3 сек. default: true example: false internalTxId: type: string description: >- Внутренний ID перевода. Опционален. Если не указан, то создается автоматически. Если указан, то должен быть уникален в пределах всех запросов банка. maxLength: 32 example: 'blabla12345' refId: type: string description: >- Любое уникальное значение минимум в рамках возвратов по одному исходному платежу. Необходимо для отслеживания возвратов состояние которых не было получено по техническим причинам (обрыв TCP/IP соединения с потерей данных ответа и пр). Повторные запросы с тем же refId порождают либо возврат (если он фактически не был начат) или возвращают состояние по начатому ранее процессу возврата. Повторные запросы должны содержать те же параметры, что и исходный (amount и пр., если были указаны). При проверки состояние эти параметы уже не влияют на запущенный процесс возврата, но контролируются сервером на соответствие исходным. minLength: 1 maxLength: 140 example: 'abcd123' amount: type: integer description: >- Сумма платежа в копейках (валюта только RUB). Сумма может быть только меньше или равной сумме исходного платаже. Если сумма не указана, то возврат на полную сумму платежа. Сумму допустимо НЕ указывать только для возвратов по динамическим QR minLength: 1 maxLength: 12 example: 130000 rcvBankMemberId: type: string description: >- Опциональное поле ID банка участника СБП, на счет клиента в котором будет выполнятся возврат Если не указано, то используется банк из отменяемого платежа. maxLength: 12 minLength: 12 example: '100000000052' rcvPhone: type: string description: >- Опциональное поле номера телефона клиента (с кодом 007-RU). Если не указано, то используется значение из отменяемого платежа. pattern: '^[0-9]{10,13}$' example: '0079874561231' remitInfo: type: string maxLength: 140 description: >- Опциональное поле причины возврата. example: 'Возврат товара на полку' refType: type: string description: Определяет назначения данных в поле refData enum: - qrcId - localQrcId - paramsId - localParamsId - payload - trxId refData: type: string description: >- Данные для поиска исходного платажа. Состав определяется refType * qrcId - Идентификатор зарегистрированного QR кода в СБП. Пример 'AS1000670LSS7DN18SJQDNP4B05KLJL2' * localQrcId - Внутренний id, выдаваемый при генерации QR кода (однозначно связан с qrcId). Предназначен для операций возврата, где UI с клиентом не позволяет ввести исходный qrcId (например, только цифровая клавиатура). Пример '17390' * paramsId - СБП ID активации кассовой ссылки. Пример: 'AP10000QBF00RRSK9358IVFD8796KPKN' * localParamsId локальный ID активации кассовой ссылки. Пример '27392' * payload - Payload зарегистрированного QR кода в СБП. Пример: 'https://qr.nspk.ru/AS1000670LSS7DN18SJQDNP4B05KLJL2?type=01&bank=100000000001&sum=10000&cur=RUB&crc=C08B' * trxId - СБП ID исходнго платежа. Единственный способ возврата для статических QR кодов. Пример: 'A931608381015300KXVWKp1837BE5609' maxLength: 999 kvd: description: Код вида дохода ЭБД{33}. Опционален type: string example: '2' riskData: type: object description: Структура описана в отдельном документе (/webapi-doc/riskData) addParameters: $ref: '#/components/schemas/AddParametersRequest' required: - refId - refType - refData RefundOrderRequest: title: Запрос отмены платежа. type: object properties: internalTxId: type: string description: >- Внутренний ID перевода. Опционален. Если не указан, то создается автоматически. Если указан, то должен быть уникален в пределах всех запросов банка. maxLength: 32 example: 'blabla12345' refId: type: string description: >- Любое уникальное значение минимум в рамках возвратов по одному исходному платежу. Необходимо для отслеживания возвратов состояние которых не было получено по техническим причинам (обрыв TCP/IP соединения с потерей данных ответа и пр). Повторные запросы с тем же refId порождают либо возврат (если он фактически не был начат) или возвращают состояние по начатому ранее процессу возврата. Повторные запросы должны содержать те же параметры, что и исходный (amount и пр., если были указаны). При проверки состояние эти параметы уже не влияют на запущенный процесс возврата, но контролируются сервером на соответствие исходным. minLength: 1 maxLength: 140 example: 'abcd123' amount: type: integer description: >- Сумма платежа в копейках (валюта только RUB). Сумма может быть только меньше или равной сумме исходного платаже. Если сумма не указана, то возврат на полную сумму платежа. Сумму допустимо НЕ указывать только для возвратов по динамическим QR minLength: 1 maxLength: 12 example: 130000 rcvBankMemberId: type: string description: >- Опциональное поле ID банка участника СБП, на счет клиента в котором будет выполнятся возврат Если не указано, то используется банк из отменяемого платежа. maxLength: 12 minLength: 12 example: '100000000052' rcvPhone: type: string description: >- Опциональное поле номера телефона клиента (с кодом 007-RU). Если не указано, то используется значение из отменяемого платежа. pattern: '^[0-9]{10,13}$' example: '0079874561231' remitInfo: type: string maxLength: 140 description: >- Опциональное поле причины возврата. example: 'Возврат товара на полку' refType: type: string description: Определяет назначения данных в поле refData enum: - qrcId - localQrcId - localParamsId - payload - trxId - paramsId refData: type: string description: >- Данные для поиска исходного платажа. Состав определяется refType * qrcId - Идентификатор зарегистрированного QR кода в СБП. Пример 'AS1000670LSS7DN18SJQDNP4B05KLJL2' * localQrcId - Внутренний id, выдаваемый при генерации QR кода (однозначно связан с qrcId). Предназначен для операций возврата, где UI с клиентом не позволяет ввести исходный qrcId (например, только цифровая клавиатура). Пример '17390' * paramsId - СБП ID активации кассовой ссылки. Пример: 'AP10000QBF00RRSK9358IVFD8796KPKN' * localParamsId локальный ID активации кассовой ссылки. Пример '27392' * payload - Payload зарегистрированного QR кода в СБП. Пример: 'https://qr.nspk.ru/AS1000670LSS7DN18SJQDNP4B05KLJL2?type=01&bank=100000000001&sum=10000&cur=RUB&crc=C08B' * trxId - СБП ID исходнго платежа. Единственный способ возврата для статических QR кодов. Пример: 'A931608381015300KXVWKp1837BE5609' maxLength: 999 kvd: description: Код вида дохода ЭБД{33}. Опционален type: string example: '2' addParameters: $ref: '#/components/schemas/AddParametersRequest' riskData: type: object description: Структура описана в отдельном документе (/webapi-doc/riskData) required: - refId - refType - refData RefundRef: title: Ссылка на запущенный процесс отмены платежа. type: object properties: internalTxId: type: string description: Внутренний ID перевода. maxLength: 32 example: 'rfnd-6654' amount: type: number description: >- Сумма возврата в копейках (валюта в СБП только RUB). Фактическая сумма возврата. Если сумма указана в запросе, то берется из запроса. Если не была указана, то фактическая сумма - это сумма исходного платежа (возврат на все) minLength: 1 maxLength: 12 example: 130000 RefundStatus: title: Статус возврата платежа. Возвращатеся, если, как минимум, исходный платеж найден и начат цикл отмены СБП. type: object properties: internalTxId: type: string description: Внутренний ID перевода. maxLength: 32 example: 'rfnd-6654' amount: type: number description: >- Сумма возврата в копейках (валюта в СБП только RUB). Фактическая сумма возврата. Если сумма указана в запросе, то берется из запроса. Если не была указана, то фактическая сумма - это сумма исходного платежа (возврат на все) minLength: 1 maxLength: 12 example: 130000 status: type: integer description: >- Обобщенный статус отмены. Выставляется на основе состояния цикла отмены и анализа финального статуса СБП. В скобочках внутренние служебные статусы (для информации сопровождению) * равно 0 - OK. завершено успешно. ("CONFIRMED") * меньше 0 - Процесс отмены не завершен. В некоторых случаях возможны ситуации, когда статус возврата не переходит в конечный в течение длительного времени, при этом клиента можно отпустить с чеком _запрос на возврат принят в обработку_. ** -1 - перевод зарегистрирован. Идет валидация в систему банка возможности совершения перевода ("REQCHECKPA") ** -2 - перевод зарегистрирован. Прошла успешно валидация в систему банка возможности совершения перевода ("APPROVED"). ** -3 - Выполнение перевода подверждено. Завершение перевода в процессе. ("CONFIRMPAY") ** -4 - выполнение перевода приостановлено на этапе выполнения перевода после подтверждения (оператором или автоматически по истечению количества попыток доставить до банка факт перевода). Требутся ручное вмешательство для завершения перевода. ("STOPPED") * больше 0 - Окончательный статус отказа в отмене. Рекомендуем анализировать причину отказа по содержимому поля _infoMsg_ и принять меры к поиску и устранению причин отказа, либо выбрать иной способ вернуть денежные средства клиенту ** 1 - перевод отклонен на этапе валидадации в систему банка ("REJECT") ** 2 - перевод отменен на этапе выполнения перевода после этапа валидации ("CANCELED"). Отменен, например, другой строной или СБП по техническим причинам. ** 3 - перевод отменен на этапе выполнения перевода после этапа валидации ("REQCANCELP"). Получен сигнал на отмену. ** 4 - перевод отменен на этапе выполнения перевода ("REFUSED"). Банк получил сообщение о завершении перевода, но при этом вернул статус, что с этим не согласен. Требутся ручное вмешательство. ** 5 - перевод отклонен на этапе валидадации в систему банка ("CHECKFAULT"). Причина - не удалось доставить запрос до системы банка по техническим причинам. example: 0 infoMsg: type: string description: >- Сообщение заполняется, при отказе, сообщением СБП или внешней Системой (типа фродмониторинга) о причинах отказа example: "" orgnlTxId: type: string description: СБП ID исходного платежа. ЭБД{104} maxLength: 32 example: 'A931608381015300KXVWKp1837BE5609' trxId: type: string description: СБП ID операции отмены. ЭБД{27}. Есть, если дошло до стадии перевода в СБП maxLength: 32 example: 'A931608381015300KXVWKp1837BE5609' clientPAM: type: string description: >- PAM Получателя (Personal Assurance Message) ЭБД{74} Заполняется, только если получено в цикле отмены. Т.е. если дошло до стадии перевода в СБП maxLength: 140 example: 'Джон Петрович Ж' payerId: minLength: 13 maxLength: 15 type: string description: Маскированный номер телефона Клиента-Плательщика nullable: true example: '*********6731' appCode: type: string description: Опциональное поле кода ответа внешеней системы (не СБП). Коды специфицируются в конретных внешних системах (АБС банка, фрод мониторинг и т.п.). example: '2003' sbpStatus: type: string description: статус ЭБД{42} СБП. (как дополнительная информация). Опционален. До обращения в СБП могло и не дойти. maxLength: 4 example: 'ACWP' settlmntDtTm: type: string description: Дата расчета операции СБП ЭБД{105}. Опционален. До обращения в СБП могло и не дойти. example: '2019-11-12' addParameters: $ref: '#/components/schemas/AddParametersResponse' required: - amount - status - orgnlTxId RefundOrderStatus: title: Статус обработки в банке заявки возврата платежа. type: object properties: bankStatus: type: string description: >- статус обработки заявки в банке * IN_PROGRESS - банк еще не принял решение по заявке. * COMPLETED - банк послал запрос на возврат. статус возврат нужно получать GET /refund/{internalTxId} информация по возврату. * REFUSED_BANK - банк отказал в возврате. Прична отказа в infoMsg * ERROR - какая то прикладная ошибка переданная банком enum: - IN_PROGRESS - COMPLETED - REFUSED_BANK - ERROR example: IN_PROGESS infoMsg: type: string description: Сообщение, комментирующее статус example: "" required: - bankStatus TerminalLinkAdd: title: Привязка POS терминала к ТСП и счету. description: >- Привязка терминала к к ТСП и счету. Терминал может быть привязан только к одной комбинации ТСП + счет. type: object properties: merchantId: description: >- Идентификатор зарегистрированного ТСП в СБП. type: string maxLength: 12 example: MF0000000001 accAlias: type: string description: >- ID/синоним счета.Что бы не использовать фактическое значение номера счета (там где это запрещено правилами и требованиями безопасности). Значение задается при регистрации или генерируется автоматически при регистрации счета в Агенте ТСП. accAlias обязателен к указанию в запросах, если нет поля счета (account). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 account: description: >- Номер счета (классический. шаблона '^[\d+]{5}810[\d+]{12}$'). Значение задается при регистрации счета в Агенте ТСП. Обязателен к указанию в запросах, если нет поля альтернативного указания счета (accAlias). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. type: string pattern: '^[\d+]{5}810[\d+]{12}$' example: "40702810250011001666" description: description: >- Краткое описание записи о привязке. type: string maxLength: 255 example: Касса алкоголя paymentPurpose: description: >- поле QRC. Если не указано, то заполняется тем, что пришлет терминал. type: string maxLength: 140 example: Чегото createCashLinkQrc: description: >- признак необходимости автоматически сгенерить и кассовую ссылку для терминала type: boolean example: true default: false orderedCashLinkQrcId: type: string description: >- Опциональный идентификатор Платежной ссылки СБП (кассовой ссылки). Из заказа на выпуск кассовых ссылок (ОПЕРАЦИОННЫЙ БЮЛЛЕТЕНЬ #18.2022 от 23.09.2022). может так же содержать payload QRC (http://...) example: AS1R007NVU0DI01A9I0PGCEG1QKSDBAI cashLinkQrcEmail: description: >- Опциональное поле. Если поле задано и createCashLinkQrc = true, то кассовая ссылка (png) будет отправлена почтой type: string example: a.ivanov233@swr.ru cashLinkQrcSz: description: >- Опциональное поле. Если поле задано и createCashLinkQrc = true, то кассовая ссылка (png) будет отправлена почтой c указанным размером (пиксели) type: integer format: int32 example: 500 required: - merchantId TerminalLinkUpd: title: Измеенние параметров POS терминала. description: >- Измеенние параметров POS терминала.. type: object properties: description: description: >- Краткое описание записи о привязке. type: string maxLength: 255 example: Касса алкоголя paymentPurpose: description: >- поле QRC. Если не указано, то заполняется тем, что пришлет терминал. type: string maxLength: 140 example: Чегото accAlias: type: string description: >- ID/синоним счета.Что бы не использовать фактическое значение номера счета (там где это запрещено правилами и требованиями безопасности). Значение задается при регистрации или генерируется автоматически при регистрации счета в Агенте ТСП. accAlias обязателен к указанию в запросах, если нет поля счета (account). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 account: description: >- Номер счета (классический. шаблона '^[\d+]{5}810[\d+]{12}$'). Значение задается при регистрации счета в Агенте ТСП. Обязателен к указанию в запросах, если нет поля альтернативного указания счета (accAlias). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. type: string pattern: '^[\d+]{5}810[\d+]{12}$' example: "40702810250011001666" TerminalLinkCashQrcUpd: title: Измеенние параметров POS терминала. description: >- Изменение параметров POS терминала.. type: object properties: createCashLinkQrc: description: >- признак необходимости автоматически сгенерить и кассовую ссылку для терминала type: boolean example: true default: false orderedCashLinkQrcId: type: string description: >- Опциональный идентификатор Платежной ссылки СБП (кассовой ссылки). Из заказа на выпуск кассовых ссылок (ОПЕРАЦИОННЫЙ БЮЛЛЕТЕНЬ #18.2022 от 23.09.2022). может так же содержать payload QRC (http://...) example: AS1R007NVU0DI01A9I0PGCEG1QKSDBAI cashLinkQrcEmail: description: >- Опциональное поле. Если поле задано и createCashLinkQrc = true, то кассовая ссылка (png) будет отправлена почтой type: string example: a.ivanov233@swr.ru cashLinkQrcSz: description: >- Опциональное поле. Если поле задано и createCashLinkQrc = true, то кассовая ссылка (png) будет отправлена почтой c указанным размером (пиксели) type: integer format: int32 example: 500 TerminalLinkInfo: title: Привязка POS терминала к ТСП и счету. description: >- Привязка терминала к к ТСП и счету. Терминал может быть привязан только к одной комбинации ТСП + счет. type: object properties: termName: description: ID терминала type: string maxLength: 23 example: J004567 route: description: >- ID конкретной настройки терминала type: integer format: int32 merchantId: description: >- Идентификатор зарегистрированного ТСП в СБП. type: string maxLength: 12 example: MF0000000001 accAlias: type: string description: >- ID/синоним счета.Что бы не использовать фактическое значение номера счета (там где это запрещено правилами и требованиями безопасности). Значение задается при регистрации или генерируется автоматически при регистрации счета в Агенте ТСП. accAlias обязателен к указанию в запросах, если нет поля счета (account). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 description: description: >- Краткое описание записи о привязке. type: string maxLength: 255 example: Касса алкоголя paymentPurpose: description: >- поле QRC. Если не указано, то заполняется тем, что пришлет терминал. type: string maxLength: 140 example: Чегото regTime: description: Время регистрации привязки (ISO 8601 формат) example: '2020-07-02T18:24:11.252+07:00' type: string cashLinkQrcId: description: Кассовая ссылка (если была создана для терминала) example: AS1000670LSS7DN18SJQDNP4B05KLJL2 type: string cashLinkQrcEmail: description: email на который было посдедний раз отправлено письмо с Кассовой Ссылкой example: a.wqa@hor.ru type: string required: - merchantId - accAlias ParticipantsInfo: title: Информация об участниках СБП description: >- Информация об участниках СБП, регулярно получаемая от НСПК. Используется формат "ОПЕРАЦИОННЫЙ БЮЛЛЕТЕНЬ #22.2020 от 08.09.2020". Поэтому формат уж какой есть.. type: object properties: rcvTime: description: >- Время получения данных от СБП (ISO 8601 формат) type: string example: '2020-10-13T04:00:11.252+07:00' list: description: >- Список участников type: array items: type: object properties: member_id: description: >- Идентификатор Участника СБП, присвоенный Участнику СБП ОПКЦ СБП type: string maxLength: 12 example: '500000000005' member_name: description: >- Наименование Участника СБП по Идентификатору Участника СБП (транслитерация на английском языке) type: string maxLength: 50 example: 'ZOLOTAYA KORONA' member_name_rus: description: >- Наименование Участника СБП по Идентификатору Участника СБП type: string maxLength: 50 example: 'ЗОЛОТАЯ КОРОНА' effective_date: description: >- Операционный день (YYYYMMDD) ОПКЦ СБП, на который действует справочник Участников СБП type: string maxLength: 8 example: '20201013' bic: description: БИК Участника СБП type: string maxLength: 9 example: '123456789' scenarios: description: >- Сценарии Операции СБП и Роли, в которых выступает Участник СБП в каждом из сценариев. См. <Стандарт ОПКЦ СБП. Руководство по подключению и операционному взаимодействию с ОПКЦ СБП> type: object properties: C2CPush: description: C2C. Быстрый платеж C2C Push [Sender,Receiver] type: array items: type: string example: Sender Me2MePush: description: C2C. Быстрый платеж Me2Me Push [Sender,Receiver] type: array items: type: string example: Sender Me2MePull: description: C2C. Запрос Перевода со своих счетов Me2Me Pull [Sender,Receiver] type: array items: type: string example: Sender C2BQRD: description: C2B. QR на кассе [Sender,Receiver] type: array items: type: string example: Sender C2BQRS: description: C2B. QR-наклейка [Sender,Receiver] type: array items: type: string example: Sender C2BMcom: description: C2B. Мгновенный счет [Sender,Receiver] type: array items: type: string example: Sender SbscrLnk: description: C2B. Привязка счета, оплата с привязанного счета [Sender,Receiver] type: array items: type: string example: Sender C2BRfnd: description: B2C. Возврат по Операции СБП C2B [Sender,Receiver] type: array items: type: string example: Sender B2COther: description: B2C. Прочие выплаты физическому лицу [Sender,Receiver] type: array items: type: string example: Sender C2GPush: description: C2G. Быстрый платеж C2G Push [Sender,Receiver] type: array items: type: string example: Sender B2BPush: description: B2B. Быстрый платеж B2B Push [Sender,Receiver] type: array items: type: string example: Sender C2CIntPush: description: C2СINT. Быстрый трансграничный платеж C2C Push [Sender,Receiver] type: array items: type: string example: Sender TransferCheckRequest: title: Запрос проверки возможности перевода B2C. description: >- Обязательно должно быть указан счет. Либо ссылка на уже зарегистрированный счет (accAlias) либо сам счет (account). Счет отправителя являтеся обязательным в протоколе СБП type: object properties: extEntityId: type: string maxLength: 32 example: 12%ABq1+2 description: Уникальный ID Платформы, выданный при регистрации юр. лица merchantId: description: >- Идентификатор зарегистрированного ТСП в СБП. Опционально. На усмотрение банка отправителя type: string maxLength: 12 example: MF0000000001 internalTxId: type: string description: >- Внутренний ID перевода. Опционален. Если не указан, то создается автоматически. Если указан, то должен быть уникален в пределах всех запросов банка. maxLength: 32 example: 'blabla12345' amount: type: integer description: >- Сумма платежа в копейках (валюта только RUB). minLength: 1 maxLength: 12 example: 130000 rcvBankMemberId: type: string description: >- ID банка участника СБП, на счет клиента в котором будет выполнятся перевод maxLength: 12 minLength: 12 example: '100000000052' rcvPhone: type: string description: >- номер телефона клиента (с кодом 007-RU). pattern: '^[0-9]{10,13}$' example: '0079874561231' remitInfo: type: string maxLength: 140 description: >- Опциональное поле причины перевода. example: 'За все хорошее' accAlias: type: string description: >- ID/синоним счета.Что бы не использовать фактическое значение номера счета (там где это запрещено правилами и требованиями безопасности). Значение задается при регистрации или генерируется автоматически при регистрации счета в Агенте ТСП. accAlias обязателен к указанию в запросах, если нет поля счета (account). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 account: description: >- Номер счета (классический. шаблона '^[\d+]{5}810[\d+]{12}$'). Значение задается при регистрации счета в Агенте ТСП. Обязателен к указанию в запросах, если нет поля альтернативного указания счета (accAlias). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. type: string pattern: '^[\d+]{5}810[\d+]{12}$' example: "40702810250011001666" kvd: description: Код вида дохода ЭБД{33}. Опционален type: string example: '2' riskData: type: object description: Структура описана в отдельном документе (/webapi-doc/riskData) addParameters: $ref: '#/components/schemas/AddParametersRequest' required: - extEntityId - amount - rcvBankMemberId - rcvPhone TransferConfirmRequest: title: Запрос выполнения перевода B2C в двухэтапной схеме. type: object properties: longWait: type: boolean description: >- Полный цикл перевода может занимать (по правилам СБП) несколько минут. По факту в среднем 5-10 сек. Это может оказаться слишком большим временем для HTTP запроса. Рекомендуется использовать longWait = false и корректную обработку статуса 202 с последующим опросом по /transfer GET или /transfer POST (лучше использовать GET). Время для получения 202 - это время необходимое на валидацию возможности перевода. Время ответа с HTTP code 202 в пределах 2-3 сек. default: true example: false internalTxId: type: string description: Внутренний ID перевода. maxLength: 32 example: 'transf-12023' required: - internalTxId TransferCheckStatus: title: Статус проверки возможности перевода. type: object properties: internalTxId: type: string description: Внутренний ID перевода. maxLength: 32 example: 'transf-12023' trxId: type: string description: СБП ID операции. ЭБД{27} maxLength: 32 example: 'A931608381015300KXVWKp1837BE5609' clientPAM: type: string description: >- PAM Получателя (Personal Assurance Message) Заполняется, только если получено от НСПК. ЭБД{74} maxLength: 140 example: 'Ж Джон Петрович' addParameters: $ref: '#/components/schemas/AddParametersResponse' required: - internalTxId - status AddParametersRequest: type: array description: >- Дополнительные опциональные параметры, которые ТСП хочет сообщить банку. Список параметров определяется в рамках конкретного банка. items: type: object properties: name: type: string description: имя параметра example: merchantPhone value: type: string description: Значение параметра example: +79139864191 AddParametersResponse: type: array description: >- Дополнительные опциональные параметры. Список параметров необходимость возвращать addParameters определяется настройками на банк. items: type: object properties: name: type: string description: имя параметра example: merchantPhone value: type: string description: Значение параметра example: +79139864191 TransferRequest: title: Запрос перевода B2C. description: >- Обязательно должно быть указан счет. Либо ссылка на уже зарегистрированный счет (accAlias) либо сам счет (account). Счет отправителя является обязательным в протоколе СБП type: object properties: longWait: type: boolean description: >- Полный цикл перевода может занимать (по правилам СБП) несколько минут. По факту в среднем 5-10 сек. Это может оказаться слишком большим временем для HTTP запроса. Рекомендуется использовать longWait = false и корректную обработку статуса 202 с последующим опросом по /transfer GET или /transfer POST (лучше использовать GET). Время для получения 202 - это время необходимое на валидацию возможности перевода. Время ответа с HTTP code 202 в пределах 2-3 сек. default: true example: false extEntityId: type: string maxLength: 32 example: 12%ABq1+2 description: Уникальный ID Платформы, выданный при регистрации юр. лица merchantId: description: >- Идентификатор зарегистрированного ТСП в СБП. Опционально. На усмотрение банка отправителя type: string maxLength: 12 example: MF0000000001 internalTxId: type: string description: >- Внутренний ID перевода. Опционален. Если не указан, то создается автоматически. Если указан, то должен быть уникален в пределах всех запросов банка. maxLength: 32 example: 'blabla12345' refId: type: string description: >- Любое уникальное значение в рамках данного юр.лица. Необходимо для отслеживания платежей, состояние которых не было получено по техническим причинам (обрыв TCP/IP соединения с потерей данных ответа и пр). Повторные запросы с тем же refId порождают либо перевод (если он фактически не был начат) или возвращают состояние по начатому ранее процессу перевода. minLength: 1 maxLength: 140 example: 'abcd123' amount: type: integer description: >- Сумма платежа в копейках (валюта только RUB). minLength: 1 maxLength: 12 example: 130000 rcvBankMemberId: type: string description: >- ID банка участника СБП, на счет клиента в котором будет выполнятся перевод maxLength: 12 minLength: 12 example: '100000000052' rcvPhone: type: string description: >- номер телефона клиента (с кодом 007-RU). pattern: '^[0-9]{10,13}$' example: '0079874561231' remitInfo: type: string maxLength: 140 description: >- Опциональное поле причины перевода. example: 'За все хорошее' clientPAM: type: string description: >- PAM Получателя (Personal Assurance Message) Опциональное поле (может быть объявлено обязательным по требованию банка). Заполняется если требуется перед переводом сравнить с тем, что пришлет НСПК. ЭБД{74} Это позволит, в какой то мере, избежать ошибочных переводов. maxLength: 140 example: 'Джон Петрович Ж' accAlias: type: string description: >- ID/синоним счета.Что бы не использовать фактическое значение номера счета (там где это запрещено правилами и требованиями безопасности). Значение задается при регистрации или генерируется автоматически при регистрации счета в Агенте ТСП. accAlias обязателен к указанию в запросах, если нет поля счета (account). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 account: description: >- Номер счета (классический. шаблона '^[\d+]{5}810[\d+]{12}$'). Значение задается при регистрации счета в Агенте ТСП. Обязателен к указанию в запросах, если нет поля альтернативного указания счета (accAlias). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. type: string pattern: '^[\d+]{5}810[\d+]{12}$' example: "40702810250011001666" kvd: description: Код вида дохода ЭБД{33}. Опционален type: string example: '2' riskData: type: object description: Структура описана в отдельном документе (/webapi-doc/riskData) addParameters: $ref: '#/components/schemas/AddParametersRequest' required: - extEntityId - refId - amount - rcvBankMemberId - rcvPhone TransferOrderRequest: title: Запрос перевода B2C. description: >- Обязательно должно быть указан счет. Либо ссылка на уже зарегистрированный счет (accAlias) либо сам счет (account). Счет отправителя являтеся обязательным в протоколе СБП type: object properties: extEntityId: type: string maxLength: 32 example: 12%ABq1+2 description: Уникальный ID Платформы, выданный при регистрации юр. лица merchantId: description: >- Идентификатор зарегистрированного ТСП в СБП. Опционально. На усмотрение банка отправителя type: string maxLength: 12 example: MF0000000001 internalTxId: type: string description: >- Внутренний ID перевода. Опционален. Если не указан, то создается автоматически. Если указан, то должен быть уникален в пределах всех запросов банка. maxLength: 32 example: 'blabla12345' refId: type: string description: >- Любое уникальное значение в рамках данного юр.лица. Необходимо для отслеживания платежей, состояние которых не было получено по техническим причинам (обрыв TCP/IP соединения с потерей данных ответа и пр). Повторные запросы с тем же refId порождают либо перевод (если он фактически не был начат) или возвращают состояние по начатому ранее процессу перевода. minLength: 1 maxLength: 140 example: 'abcd123' amount: type: integer description: >- Сумма платежа в копейках (валюта только RUB). minLength: 1 maxLength: 12 example: 130000 rcvBankMemberId: type: string description: >- ID банка участника СБП, на счет клиента в котором будет выполнятся перевод maxLength: 12 minLength: 12 example: '100000000052' rcvPhone: type: string description: >- номер телефона клиента (с кодом 007-RU). pattern: '^[0-9]{10,13}$' example: '0079874561231' remitInfo: type: string maxLength: 140 description: >- Опциональное поле причины перевода. example: 'За все хорошее' clientPAM: type: string description: >- PAM Получателя (Personal Assurance Message) Опциональное поле (может быть объявлено обязательным по требованию банка). Заполняется если требуется перед переводом сравнить с тем, что пришлет НСПК. ЭБД{74} Это позволит, в какой то мере, избежать ошибочных переводов. maxLength: 140 example: 'Джон Петрович Ж' accAlias: type: string description: >- ID/синоним счета.Что бы не использовать фактическое значение номера счета (там где это запрещено правилами и требованиями безопасности). Значение задается при регистрации или генерируется автоматически при регистрации счета в Агенте ТСП. accAlias обязателен к указанию в запросах, если нет поля счета (account). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 account: description: >- Номер счета (классический. шаблона '^[\d+]{5}810[\d+]{12}$'). Значение задается при регистрации счета в Агенте ТСП. Обязателен к указанию в запросах, если нет поля альтернативного указания счета (accAlias). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. type: string pattern: '^[\d+]{5}810[\d+]{12}$' example: "40702810250011001666" addParameters: $ref: '#/components/schemas/AddParametersRequest' kvd: description: Код вида дохода ЭБД{33}. Опционален type: string example: '2' riskData: type: object description: Структура описана в отдельном документе (/webapi-doc/riskData) required: - extEntityId - refId - amount - rcvBankMemberId - rcvPhone TransferRef: title: Ссылка на запущенный процесс перевода. type: object properties: internalTxId: type: string description: Внутренний ID перевода. maxLength: 32 example: 'transf-12023' B2bTransferRef: title: Ссылка на запущенный процесс перевода. type: object properties: internalTxId: type: string description: Внутренний ID перевода. maxLength: 32 example: 'b2b-12345' TransferStatus: title: Статус перевода. type: object properties: internalTxId: type: string description: Внутренний ID перевода. maxLength: 32 example: 'transf-12023' status: type: integer description: >- Обобщенный статус перевода. Выставляется на основе состояния цикла перевода и анализа финального статуса СБПВ скобочках внутренние служебные статусы (для информации сопровождению) * равно 0 - OK. завершено успешно. ("CONFIRMED") * меньше 0 - Процесс отмены не завершен. ** -1 - перевод зарегистрирован. Идет валидация в систему банка возможности совершения перевода ("REQCHECKPA") ** -2 - перевод зарегистрирован. Прошла успешно валидация в систему банка возможности совершения перевода ("APPROVED"). ** -3 - Выполнение перевода подверждено. Завершение перевода в процессе. ("CONFIRMPAY") ** -4 - выполнение перевода приостановлено на этапе выполнения перевода после подтверждения (оператором или автоматически по истечению количества попыток доставить до банка факт перевода). Требутся ручное вмешательство для завершения перевода. ("STOPPED") * больше 0 - Окончательный статус отказа в отмене. ** 1 - перевод отклонен на этапе валидадации в систему банка ("REJECT") ** 2 - перевод отменен на этапе выполнения перевода после этапа валидации ("CANCELED"). Отменен, например, другой строной или СБП по техническим причинам. ** 3 - перевод отменен на этапе выполнения перевода после этапа валидации ("REQCANCELP"). Получен сигнал на отмену. ** 4 - перевод отменен на этапе выполнения перевода ("REFUSED"). Банк получил сообщение о завершении перевода, но при этом вернул статус, что с этим не согласен. Требутся ручное вмешательство. ** 5 - перевод отклонен на этапе валидадации в систему банка ("CHECKFAULT"). Причина - не удалось доставить запрос до системы банка по техническим причинам. example: 0 infoMsg: type: string description: >- Сообщение заполняется, при отказе, сообщением СБП или внешней Системой (типа фродмониторинга) о причинах отказа example: "" trxId: type: string description: СБП ID операции. ЭБД{27}. Есть, если дошло до стадии перевода в СБП maxLength: 32 example: 'A931608381015300KXVWKp1837BE5609' clientPAM: type: string description: >- PAM Получателя (Personal Assurance Message) Заполняется, только если получено от СБП. ЭБД{74} maxLength: 140 example: 'Джон Петрович Ж' appCode: type: string description: Опциональное поле кода ответа внешеней системы (не СБП). Коды специфицируются в конретных внешних системах (АБС банка, фрод мониторинг и т.п.). example: '2003' sbpStatus: type: string description: статус ЭБД{42} СБП. (как дополнительная информация). Опционален. До обращения в СБП могло и не дойти. maxLength: 4 example: 'ACWP' settlmntDtTm: type: string description: Дата расчета операции СБП ЭБД{105}. Опционален. До обращения в СБП могло и не дойти. example: '2019-11-12' addParameters: $ref: '#/components/schemas/AddParametersResponse' required: - internalTxId - status B2bTransferStatus: title: Статус перевода. type: object properties: internalTxId: type: string description: Внутренний ID перевода. maxLength: 32 example: 'transf-12023' status: type: integer description: >- Обобщенный статус перевода. Выставляется на основе состояния цикла перевода и анализа финального статуса СБПВ скобочках внутренние служебные статусы (для информации сопровождению) * равно 0 - OK. завершено успешно. ("CONFIRMED") * меньше 0 - Процесс отмены не завершен. ** -1 - перевод зарегистрирован. Идет валидация в систему банка возможности совершения перевода ("REQCHECKPA") ** -2 - перевод зарегистрирован. Прошла успешно валидация в систему банка возможности совершения перевода ("APPROVED"). ** -3 - Выполнение перевода подверждено. Завершение перевода в процессе. ("CONFIRMPAY") ** -4 - выполнение перевода приостановлено на этапе выполнения перевода после подтверждения (оператором или автоматически по истечению количества попыток доставить до банка факт перевода). Требутся ручное вмешательство для завершения перевода. ("STOPPED") * больше 0 - Окончательный статус отказа в отмене. ** 1 - перевод отклонен на этапе валидадации в систему банка ("REJECT") ** 2 - перевод отменен на этапе выполнения перевода после этапа валидации ("CANCELED"). Отменен, например, другой строной или СБП по техническим причинам. ** 3 - перевод отменен на этапе выполнения перевода после этапа валидации ("REQCANCELP"). Получен сигнал на отмену. ** 4 - перевод отменен на этапе выполнения перевода ("REFUSED"). Банк получил сообщение о завершении перевода, но при этом вернул статус, что с этим не согласен. Требутся ручное вмешательство. ** 5 - перевод отклонен на этапе валидадации в систему банка ("CHECKFAULT"). Причина - не удалось доставить запрос до системы банка по техническим причинам. example: 0 infoMsg: type: string description: >- Сообщение заполняется, при отказе, сообщением СБП или внешней Системой (типа фродмониторинга) о причинах отказа example: "" appCode: type: string description: Опциональное поле кода ответа внешеней системы (не СБП). Коды специфицируются в конретных внешних системах (АБС банка, фрод мониторинг и т.п.). example: '2003' trxId: type: string description: СБП ID операции. ЭБД{27}. Есть, если дошло до стадии перевода в СБП maxLength: 32 example: 'A931608381015300KXVWKp1837BE5609' sbpStatus: type: string description: статус ЭБД{42} СБП. (как дополнительная информация). Опционален. До обращения в СБП могло и не дойти. maxLength: 4 example: 'ACWP' settlmntDtTm: type: string description: Дата расчета операции СБП ЭБД{105}. Опционален. До обращения в СБП могло и не дойти. example: '2019-11-12' info: $ref: '#/components/schemas/TransferInfoB2B' required: - internalTxId - status TransferInfoB2B: title: Информация о QRC B2B type: object properties: qrcId: type: string description: Идентификатор зарегистрированного QR кода в СБП maxLength: 32 example: AS1000670LSS7DN18SJQDNP4B05KLJL2 agentId: type: string maxLength: 12 minLength: 12 description: Идентификатор Агента ТСП, который зарегистрировал Платежную ссылку СБП example: A00000000001 memberId: type: string maxLength: 12 minLength: 12 description: Идентификатор Банка Получателя example: '100000000001' legalId: type: string maxLength: 12 minLength: 12 description: Идентификатор ЮЛ или ИП в ОПКЦ СБП example: LF0000000001 legalName: type: string maxLength: 512 description: Сокращенное наименование ЮЛ или ИП example: ООО Торг inn: type: string maxLength: 12 minLength: 10 description: ИНН ЮЛ или ИП example: '4285733785' merchantId: type: string maxLength: 12 minLength: 12 description: Идентификатор ТСП example: MR1234567890 brandName: type: string maxLength: 35 description: Торговое наименование ТСП example: ООО Торг на Б.Татарской address: type: string maxLength: 140 description: Фактический адрес ТСП example: г. Москва, ул. Б.Татарская, д.133, стр.1 mcc: type: string maxLength: 4 minLength: 4 description: MCC example: '4122' amount: type: number minLength: 1 maxLength: 12 description: >- Сумма Операции СБП B2B в копейках. Целое, положительное число. Обязательное для одноразового кода Валюта Операции СБП - рубли РФ. example: '100000' paymentPurpose: type: string maxLength: 210 description: Назначение платежа example: оплата по договору №123456789 от 01.09.2001 fraudScore: type: string maxLength: 16 minLength: 16 nullable: true description: Индикатор Подозрительной Операции Агента ТСП example: '0000000000000000' opkcFraudScore: type: string maxLength: 16 minLength: 16 nullable: true description: Индикатор Подозрительной Операции ОПКЦ СБП example: '0000000000000000' redirectUrl: type: string maxLength: 1024 nullable: true description: > Содержит ссылку для автоматического возврата Плательщика из приложения Банка в приложение или на сайт ТСП. Допускаются только символы в кодировке ASCII. Формат должен соответствовать спецификации RFC-3986. example: https://exampletsp.io/qwertyui reusable: description: >- Признак того, что ссылка многоразовая. type: boolean default: false takeTax: type: boolean description: | Информация о взимании НДС. Допустимые значения: * true – облагается НДС; * false – не облагается НДС; enum: - true - false example: true totalTaxAmount: type: number minLength: 1 maxLength: 12 nullable: true description: | Сумма НДС в копейках. Валюта НДС - рубли РФ. Условия заполнения в зависимости от значения поля takeTax: * totalTaxAmount всегда отсутствует при takeTax=FALSE; * totalTaxAmount всегда присутствует при takeTax=TRUE (при этом ЭБД 297 всегда отсутствует в сообщении M05); example: 0 uip: type: string maxLength: 35 minLength: 1 nullable: true description: > Уникальный Идентификатор Платежа, назначаемый Получателем Может использоваться и имеет смысл только для одноразовой QRC example: 281000670LSS7DN18SJQDNP4B05KLJL2 TransferB2bRequest: title: Запрос перевода B2B type: object properties: longWait: type: boolean description: >- Полный цикл перевода может занимать (по правилам СБП) несколько минут. По факту в среднем 5-10 сек. Это может оказаться слишком большим временем для HTTP запроса. Рекомендуется использовать longWait = false и корректную обработку статуса 202 с последующим опросом по /b2b/transfer GET или /b2b/transfer POST (лучше использовать GET). Время для получения 202 - это время необходимое на валидацию возможности перевода. Время ответа с HTTP code 202 в пределах 2-3 сек. default: true example: false extEntityId: type: string maxLength: 32 example: 12%ABq1+2 description: Уникальный ID Платформы, выданный при регистрации юр. лица internalTxId: type: string description: >- Внутренний ID перевода. Опционален. Если не указан, то создается автоматически. Если указан, то должен быть уникален в пределах всех запросов банка. maxLength: 32 example: 'b2b-12345' refId: type: string description: >- Любое уникальное значение в рамках данного юр.лица. Необходимо для отслеживания платежей, состояние которых не было получено по техническим причинам (обрыв TCP/IP соединения с потерей данных ответа и пр). Повторные запросы с тем же refId порождают либо перевод (если он фактически не был начат) или возвращают состояние по начатому ранее процессу перевода. minLength: 1 maxLength: 140 example: 'abcd123' amount: type: integer description: >- Сумма платежа в копейках (валюта только RUB). Если не указан, то берется из даных QRC. minLength: 1 maxLength: 12 example: 130000 qrcId: type: string description: >- Идентификатор зарегистрированного QR кода в СБП. Должен быть указан либо qrcId либо qrcPayload. Если указан qrcId, то qrcPayload игнорируется maxLength: 32 example: AS1000670LSS7DN18SJQDNP4B05KLJL2 qrcPayload: type: string description: >- Payload зарегистрированного QR кода в СБП Должен быть указан либо qrcId либо qrcPayload. Если указан qrcId, то qrcPayload игнорируется maxLength: 999 example: >- https://qr.nspk.ru/AS1000670LSS7DN18SJQDNP4B05KLJL2?type=01&bank=100000000001&sum=10000&cur=RUB&crc=C08B accAlias: type: string description: >- ID/синоним счета.Что бы не использовать фактическое значение номера счета (там где это запрещено правилами и требованиями безопасности). Значение задается при регистрации или генерируется автоматически при регистрации счета в Агенте ТСП. accAlias обязателен к указанию в запросах, если нет поля счета (account). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 account: description: >- Номер счета (классический. шаблона '^[\d+]{5}810[\d+]{12}$'). Значение задается при регистрации счета в Агенте ТСП. Обязателен к указанию в запросах, если нет поля альтернативного указания счета (accAlias). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. type: string pattern: '^[\d+]{5}810[\d+]{12}$' example: "40702810250011001666" fraudScore: type: string maxLength: 16 description: >- ЭБД{107} Индикатор Подозрительной Операции Банка Плательщика. Опционален. Если нет, то заполняется по умолчанию. example: 'DDDDDDDDDDDDDDDD' totalTaxAmount: type: number description: >- Сумма НДС (в копейках). Отправляется если указано (GET /b2b/transfer/qrc) takeTax = true, но сумма НДС в QRC не задана. example: 100 paymentPurpose: type: string description: >- Назначение перевода. Указывается, если в QRC (GET /b2b/transfer/qrc) не задано. example: 'Договор 666' operId: type: string description: >- уникальный ID платежа со стороны плательщика. Передается получателю. Если не задан, то сгенерится автоматически example: '00000000000000000001671506932834' riskData: type: object description: >- Опционален. Структура описана в отдельном документе (/webapi-doc/riskData) CallbackController: title: Управление посылкой всех уведомлений type: object properties: c2b: $ref: '#/components/schemas/CallbackData' refund: $ref: '#/components/schemas/CallbackData' transfer: $ref: '#/components/schemas/CallbackData' subscribe: $ref: '#/components/schemas/CallbackData' subscribePay: $ref: '#/components/schemas/CallbackData' b2bSend: $ref: '#/components/schemas/CallbackData' b2bReceived: $ref: '#/components/schemas/CallbackData' CallbackMerchantController: title: Управление посылкой уведомлений для ТСП type: object properties: c2b: $ref: '#/components/schemas/CallbackData' refund: $ref: '#/components/schemas/CallbackData' subscribe: $ref: '#/components/schemas/CallbackData' subscribePay: $ref: '#/components/schemas/CallbackData' CallbackMerchantInfo: title: элемент списка информации о ТСП type: object properties: merchantId: description: >- Идентификатор зарегистрированного ТСП в СБП type: string maxLength: 12 example: MF0000000001 callback: $ref: '#/components/schemas/CallbackMerchantController' CallbackSpInfo: title: элемент списка информации о SP type: object properties: name: description: >- Идентификатор SP type: string maxLength: 12 example: MF0000000001 callback: $ref: '#/components/schemas/CallbackController' CallbackEntityInfo: title: Информация о настройке уведомлений у юр.лица type: object properties: entityCallback: $ref: '#/components/schemas/CallbackController' merchants: type: array items: $ref: '#/components/schemas/CallbackMerchantInfo' sp: type: array items: $ref: '#/components/schemas/CallbackSpInfo' CallbackData: title: Параметры callback. type: object properties: url: type: string description: >- http url для отправки нотификаций. maxLength: 256 example: 'https://rogaikopyta.ru/events/blabla' hd: type: string description: >- Добавлять любые HTTP заголовки (кроме Host). Список через '|' maxLength: 512 example: 'Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l|blabla: blabala1' email: description: >- Опциональный список пользователей (/wp/user/) для отправки уведомлений через e-mail type: array items: type: string description: login ранее зарегистрированного пользователя. example: 'login999' sms: description: >- Опциональный список пользователей (/wp/user/) для отправки уведомлений через SMS type: array items: type: string description: login ранее зарегистрированного пользователя. example: 'login999' SubscribeRqPayStatus: title: Положительный ответ на запрос регистрации type: object RequestSubscribePay: title: Запрос на платеж по подписке. description: Должен быть указан subscriptionQrcId и/или subscriptionToken. type: object properties: subscriptionQrcId: type: string description: Идентификатор QR кода в СБП (тип 02/03) по которому была подписка. maxLength: 32 example: AS1000670LSS71238SJQDNP4B05KLJL2 subscriptionToken: minLength: 32 maxLength: 32 type: string description: Идентификатор Подписки, назначаемый Банком Плательщика example: "70LSS7DN18SJQRS10006DNPKLJL24B05" payQrcId: type: string description: Идентификатор QR кода в СБП (тип 02) по которому будет выполнятся платеж. maxLength: 32 example: AS1000670LSS7DN18SJQDNP4B05KLJL2 required: - payQrcId WebUserAttr: title: Данные пользователя type: object properties: login: type: string description: Уникальное в рамках Агента ТСП имя пользователя maxLength: 128 example: ivan.s12 phone: type: string description: Контактный номер телефона pattern: '^[0-9]{10,13}$' example: 79991234567 email: type: string description: e-mail. Нужен для сброса пароля. example: wq122zs@gmail.com info: type: string description: произвольная инфрмация о пользователе maxLength: 512 example: Младший помошник старшего продаваца кукурузы на пляже. Бирюков Сергей locked: type: boolean description: Заблокирован или нет данный пользователь example: false default: false useAuthSMS: type: boolean description: >- Данный пользователь, по каким то причинам, не способен использовать TOTP и для него режим аутентификации через SMS (поле phone обязательно к заполнению). example: false default: false required: - login WebUserRights: title: Данные пользователя description: Права пользователя в рамках конкретного юр.лица. type: object properties: LegalEntities: type: array description: Список юр.лиц. items: type: object description: права на юр.лицо. properties: extEntityId: type: string maxLength: 32 example: 12%ABq1+2 description: Уникальный ID Платформы, выданный при регистрации юр. лица legalId: type: string description: >- Идентификатор зарегистрированного юридического лица в СБП maxLength: 12 example: LF0000000001 permissions: description: >- Права пользователя на определенные действия. По умолчанию, пользователь может смотреть только только операции, сделанные им. * 'allPaymentsList' - Просмотp операций C2B и B2C refund * 'B2bPaymentsList' - Просмотp операций B2B (входящих и исходящих) * 'B2cTransferList' - Просмотp операций B2C transfer * 'doRefund' - Возврат средств * 'doTransfer' - Переводы B2C * 'doB2bTr' - Выполнение B2B переводов (исходящих) * 'genQRD' - Генерация QRD * 'genQRS' - Генерация QRS * 'genQrB2B' - Генерация QRC B2B (для входящих) * 'usersCtrl' - Контроль пользователей * 'orgCtrl' - Управление ТСП и счетами * 'telegramCtrl' - Управление пользователями Телеграм * 'MpiCtrl' - Управление кассами/смартфонами * '1cCtrl' - Регистрация 1С подключений * 'ApiCtrl' - Регистрация API подключений type: array items: type: string enum: - genQRS - genQRD - doRefund - doTransfer - allPaymentsList - usersCtrl - orgCtrl - telegramCtrl - MpiCtrl - 1cCtrl - ApiCtrl - doB2bTr - genQrB2B - B2bPaymentsList - B2cTransferList merchants: description: >- Список, ограничивающий права. Если список не указан, то считается что права есть на все ТСП юр.лица. type: array items: description: Идентификатор зарегистрированного ТСП в СБП. type: string maxLength: 12 example: MF0000000001 AddWebUserRequest: title: новый пользователь type: object properties: genPassword: type: boolean description: Необходимо сгенерить временный пароль и отправить его на e-mail default: true example: true user: $ref: '#/components/schemas/WebUserAttr' rights: $ref: '#/components/schemas/WebUserRights' required: - user SetWebUserPasswordRequest: title: данные для сброса пароля type: object properties: login: type: string description: Уникальное в рамках Агента ТСП имя пользователя maxLength: 128 example: ivan.s12 extPassword: description: >- Если параметр не указан, то будет выполнен обычный сброс пароля и ссылка на сброс пароля будет отправлена на e-mail клиента. type: object properties: password: type: string description: >- Пароль передается как PBKDF2 хэш пароля и login. При пребразование текста в байты используется UTF-8. пример: * pass: 'TheHardPassEver!@0' * salt (login): 'superuser' * iterations: 10000 * keylen: 32 * digest: sha512 * result: pMPG4/GaU0EbuRxUnYkbVi3DkHi1LywpfJ7U4LHPfzE= * первые байты - константа '0.' example: '0.pMPG4/GaU0EbuRxUnYkbVi3DkHi1LywpfJ7U4LHPfzE=' isTmpPassword: type: boolean description: >- Признак, что пароль (указанный или сгенернный) - это временный пароль, который клиент должне сразу сменить. default: true example: false WebUserPswdState: title: информация о состоянии паролей пользователя Web портала type: object properties: pswdState: description: Состояние пароля пользователя type: string enum: - notSet - reseted - work - tmp - expired pswdTime: description: время последней установки/сброса пароля example: '2020-08-23T18:24:11.252+07:00' type: string pswdErrorTime: description: время последней неудачной проверки пароля (не тот пароль) example: '2020-08-23T19:24:11.252+07:00' type: string tryNum: description: Количество последовательных неуспешных предъявлений пароля type: integer format: int32 example: 0 otpTime: description: время последней установки ОТП пароля example: '2020-08-23T18:24:11.252+07:00' type: string otpEmailTime: description: время последней отправки email со ссылкой на получение ОТП пароля example: '2020-08-23T18:24:11.252+07:00' type: string WebUserInfo: title: информация о пользователе Web портала type: object properties: user: $ref: '#/components/schemas/WebUserAttr' password: $ref: '#/components/schemas/WebUserPswdState' created: type: object description: юр.лицо, которое создало пользователя. properties: extEntityId: type: string maxLength: 32 example: 12%ABq1+2 description: Уникальный ID Платформы, выданный при регистрации юр. лица legalId: type: string description: >- Идентификатор зарегистрированного юридического лица в СБП maxLength: 12 example: LF0000000001 ctime: description: Время регистрации пользователя (ISO 8601 формат) example: '2020-08-23T18:24:11.252+07:00' type: string wtime: description: Время последнего вохода пользователя (ISO 8601 формат) example: '2020-08-27T0:21:12.232+07:00' type: string rights: $ref: '#/components/schemas/WebUserRights' WebUserTOTP: title: Данные TOTP (2FA) для пользователя WEB портала type: object properties: url: type: string description: url для формирования QR кода для программ типа google authenticator example: 'otpauth://totp/%D0%97%D0%90%D0%9E%20%D0%A0%D0%BE%D0%B3%D0%B0%20%D0%B8%20%D0%BA%D0%BE%D0%BF%D1%8B%D1%82%D0%B0:wq122zs@gmail.com?secret=54IEQ7ZI32ZXRZOSHADLD5LQNCMWNWD6&issuer=%D0%97%D0%90%D0%9E%20%D0%A0%D0%BE%D0%B3%D0%B0%20%D0%B8%20%D0%BA%D0%BE%D0%BF%D1%8B%D1%82%D0%B0&algorithm=SHA1&digits=6&period=30' image: type: string description: base64encoded png image. example: iVBORw0KGgoAAAANSUhEUgAABEoAAARKCAIAAADXJAK3AAAABmJLR0QA/wD...YII= WebUsersListResult: title: список пользовалей Web портала type: object properties: list: type: array items: $ref: '#/components/schemas/WebUserInfo' AddCashLinkBatchRequest: title: Запрос на генерацию заказа. type: object properties: orderExtId: type: string description: >- Уникальный внешний ID заказа. Если не указан, то будет создан автоматически (UUID). maxLength: 250 quantity: type: integer format: int32 example: 1000 minimum: 1 maximum: 10000 legalId: type: string description: >- Идентификатор (СБП) зарегистрированного юридического лица в СБП. Опциональный параметр. Если указан, то означает, что заказ по конретную организацию. maxLength: 12 example: LF0000000001 info: type: string description: >- Опциональное произволное описание заказа maxLength: 250 attr: type: object description: >- Опциональные атрибуты заказа. required: - quantity CashLinkBatchDataForUpdate: title: информация по заказу, которую можно изменить type: object properties: legalId: type: string description: >- Идентификатор (СБП) зарегистрированного юридического лица в СБП. Опциональный параметр. Если указан, то означает, что заказ по конретную организацию. maxLength: 12 example: LF0000000001 info: type: string description: >- Опциональное произволное описание заказа maxLength: 250 attr: type: object description: >- Опциональные атрибуты заказа. state: type: string enum: - INITED - IN_PROCESS - READY description: состояние заказа. INITED - создан. IN_PROCESS - передан на изготовление. READY - готов CashLinkBatchData: title: информация по заказу type: object properties: orderExtId: type: string description: >- Уникальный внешний ID заказа. Если не указан, то будет создан автоматически (UUID). maxLength: 250 quantity: type: integer format: int32 example: 1000 minimum: 1 maximum: 10000 legalId: type: string description: >- Идентификатор (СБП) зарегистрированного юридического лица в СБП. Опциональный параметр. Если указан, то означает, что заказ по конретную организацию. maxLength: 12 example: LF0000000001 info: type: string description: >- Опциональное произволное описание заказа maxLength: 250 attr: type: object description: >- Опциональные атрибуты заказа. ctime: description: Время регистрации (ISO 8601 формат) example: '2023-08-23T18:24:11.252+07:00' type: string wtime: description: Время последнего изменения (ISO 8601 формат) example: '2023-08-27T0:21:12.232+07:00' type: string state: type: string enum: - INITED - IN_PROCESS - READY description: состояние заказа. INITED - создан. IN_PROCESS - передан на изготовление. READY - готов required: - quantity - orderExtId - state CashLinkBatchList: title: список найденных заказов type: object properties: list: type: array items: $ref: '#/components/schemas/CashLinkBatchData' CashLinkBatchItem: title: Заказанный QRCID type: object properties: qrcId: type: string description: идентификатор Платежной ссылки СБП (кассовой ссылки) example: AS1R007NVU0DI01A9I0PGCEG1QKSDBAI maxLength: 32 used: type: boolean description: true - была привязка к ТСП default: false required: - qrcId CashLinkBatchFullData: title: Полная информация по заказу (со список QRC) type: object properties: order: $ref: '#/components/schemas/CashLinkBatchData' list: type: array items: $ref: '#/components/schemas/CashLinkBatchItem' IdsListResult: title: список внутреннийх id type: object properties: list: type: array items: type: integer format: int64 example: 563290 AccountInfo: title: информация о счете type: object properties: regAttr: $ref: '#/components/schemas/RegAttr' locked: type: boolean description: 'Статус разрешения приема и отправки переводов (см. /entity/state/ PUT)' example: false description: type: string description: Дополнительная информация по счету maxLength: 255 example: 'Счет кассы оплаты алкоголя' alias: type: string description: >- ID/синоним счета номера счета. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df638 account: description: >- Номер счета. Значение задается при регистрации счета в Агенте ТСП. type: string example: "40702810250011001666" accType: description: Тип счета. на данный момент либо не указывается - стандартный счет, либо 'DR' - Цифровой рубль. type: string example: 'DR' id: type: string description: >- Внутренний ID Агента ТСП. Для возможности в дальнейшем управлять через PUT /entity/account/{extEntityId}. В том числе и параметрами еще не зарегистрированного счета example: '12423' MerchantInfo: title: информация по ТСП type: object properties: id: type: string description: >- Внутренний ID Агента ТСП. Для возможности в дальнейшем управлять через PUT /entity/merchant/{extEntityId}. В точм числе и параметрами еще не зарегистрированной ТСП example: '12423' regAttr: $ref: '#/components/schemas/RegAttr' locked: type: boolean description: Статус разрешения приема и отправки переводов example: false regCode: type: string description: Код ответа maxLength: 7 example: RM00000 regMessage: type: string description: Описание ответа на регистрацию в СБП maxLength: 255 example: Запрос обработан успешно regStatus: description: Статус регистрации ТСП. enum: - INITED - IN_PROCESS - CREATED - ERROR example: CREATED mcc: type: string maxLength: 4 description: MCC pattern: ^\d+$ example: 4122 brandName: type: string example: Продажа банковских карт description: Название ТСП. zip: type: string maxLength: 6 description: Индекс example: 115184 address: type: string description: Юридический адрес maxLength: 140 example: УЛИЦА ТАТАРСКАЯ Б. ДОМ 13 salesMode: type: string description: Способ приема оплаты ТСП. REMOTE - дистанционно; FACE_TO_FACE – очно, с личным присутствием плательщика example: REMOTE url: maxLength: 1024 minLength: 1 type: string nullable: false description: Веб-сайт ТСП. Обязателен, если в salesMode передано значение REMOTE. Допускаются только символы в кодировке ASCII. Формат должен соответствовать спецификации RFC-3986. example: https://website.com inn: maxLength: 32 minLength: 1 type: string description: Государственный идентификатор налогоплательщика ТСП. Для РФ - ИНН example: '3664069397' countrySubDivisionCode: type: string maxLength: 2 description: >- Код региона-регистрации юридического лица, первые две цифры кода ОКТМО example: '45' merchantId: description: Идентификатор зарегистрированного ТСП в СБП type: string maxLength: 12 example: MF0000000001 defAccDr: type: string description: >- Cчет Цифрового Рубля, по умолчанию для ТСП (опционально). Счет уже должен быть зарегистрирован example: "g.ab.cbrdc.wlt.clt.abcd0123-ab12-4a12-89ab-abcdef011111" defAccAlias: type: string description: >- ID/синоним счета.Что бы не использовать фактическое значение номера счета (там где это запрещено правилами и требованиями безопасности). Значение задается при регистрации или генерируется автоматически при регистрации счета в Агенте ТСП. accAlias обязателен к указанию в запросах, если нет поля счета (account). Т.е. должно быть указано хотя бы одно из полей accAlias или account. При наличие поля account, accAlias игнорируется. maxLength: 127 example: 56ac3fb2-c929-45c4-9042-2201de1df63 defUniQrcCfgId: type: string description: >- Ссылка на список настроек банка (см. GET /uniQrc/psrv/cfg). Если поле не пустое, то QRC для данного ТСП создаются, по умолчанию, как Универсальный QRC со списком PaymentServices, на который ссылается данное поле. example: 233442 tradeDiscount: $ref: '#/components/schemas/MerchantTradeDiscount' MpiGetActivateCodeRequest: title: Запрос на генерацию нового кода активации MPI type: object properties: extEntityId: type: string maxLength: 32 example: 12%ABq1+2 description: Уникальный ID Платформы, выданный при регистрации юр. лица spId: type: integer format: int64 description: ID (БД) точки обслуживания example: '23455' expire: type: integer format: int32 description: время действия листа активации в часах example: 24 MpiGetActivateCodeResult: title: Ответ на генерацию нового кода активации MPI type: object properties: activate_code: type: string MpiInfoResult: title: Информации по MPI type: object properties: id: type: integer format: int64 description: Внутренний (БД) ID example: 1234 wtime: type: string description: Дата создания format: date-time locked: type: boolean example: false description: Признак запрета на работу name: type: string maxLength: 50 example: NN01231 description: ID ServicePoint. Уникальное в рамках юр.лица description: type: string maxLength: 255 example: Рабочее место в офисе. description: Опциональное описание. type: type: string description: >- Тип Service Point. * 'MPI' - Мобильное приложение ЦФТ * 'MPICashR' - касса на ОС Android ЦФТ defPaymentPurposeCl: type: string description: >- Дает возможность указать шаблон PaymentPurpose при активации кассовой ссылки (см полное описание в ServicePointDataRq). link: $ref: '#/components/schemas/ServicePointLink' mpi: $ref: '#/components/schemas/ServicePointMPI' MpiListResult: title: Список Service Points для юр.лица type: array items: $ref: '#/components/schemas/MpiInfoResult' ServicePointMPI: title: Данные MPI type: object properties: code: type: string description: Код активации minLength: 7 maxLength: 40 example: D26l8SkQpCF wtime: type: string description: Дата генерации format: date-time expired: type: string description: Срок действия format: date-time link: description: Deep Link для активации на Android/iOS, включает в себя URL и Код активации. Может быть передан через SMS / Email и т.п. вместо Листа Активации type: string example: https://activate.cft.ru/link/68747470733A2F2F3139342E38352E3132362E3130333A3130333231204432366C38536B51704346 status: type: string description: >- 'none' - не активирована, 'activated' - активирована, 'locked' - заблокирована statusTime: type: string description: Время последнего запроса статуса format: date-time deviceInfo: type: string description: >- информация об устройстве, может отсутствовать, если статус = none example: Смартфон, Samsung A52, номер +79139877645 GlobalUniQrcPaymentSrvList: title: Преднастроенная конфигураци ВСЕХ платежных сервисов для Универсального QRC. type: object properties: list: type: array items: $ref: '#/components/schemas/UniQrcPaymentSrvItem' UniQrcPaymentSrvCfgList: title: список возможных комбинаций платежных сервисов, доступных для ТСП type: object properties: list: type: array items: $ref: '#/components/schemas/UniQrcPaymentSrvCfg' UniQrcPaymentSrvCfg: title: настройка набора комбинаций платежных сервисов, доступных для ТСП type: object properties: configId: type: string description: Внутренний ID настройки example: 244352 descr: type: string description: Описание настройки example: Основная. СБП+Цифровой Рубль paymentServices: type: array items: $ref: '#/components/schemas/UniQrcPaymentSrvItem' UniQrcPaymentSrvCfgAdd: title: настройка набора комбинаций платежных сервисов, доступных для ТСП. Добавление настройки type: object properties: descr: type: string description: Описание настройки example: Основная. СБП+Цифровой Рубль paymentServices: description: Список ссылок на настройки - список id из "GET /uniQrc/psrv/all". Если не указано, то не меняется type: array items: type: string required: - descr - paymentServices UniQrcPaymentSrvCfgUpd: title: настройка набора комбинаций платежных сервисов, доступных для ТСП. Добавление настройки type: object properties: configId: type: string description: Внутренний ID настройки example: 244352 descr: type: string description: Описание настройки. Если не указано, то не меняется. example: Основная. СБП+Цифровой Рубль paymentServices: description: Список ссылок на настройки - список id из "GET /uniQrc/psrv/all". Если не указано, то не меняется type: array items: type: string UniQrcPaymentSrvItem: title: Преднастроенная конфигурация платеного сервиса для Универсального QRC. type: object properties: id: type: string description: Внутренний ID записи, который использутеся для операций с настройкой example: 2634562 descr: type: string description: Описание сервиса example: Цифровой Рубль (PS0000000002) UniqrStatusNotificationRequestV2Dto: title: Данные метода "Уведомление для Оператора об изменении статуса платежа от Провайдера" type: object required: - requestId - paymentServiceId - status - timestamp - operId - amount properties: paramsId: type: string maxLength: 32 minLength: 32 description: | Идентификатор активных значений параметров Кассовой ссылки СБП. Присутствует только в уведомлениях, направленных по результатам выполнения Операции C2B с использованием Кассовой ссылки example: '83746290376583029856473829018735' requestId: type: string maxLength: 32 minLength: 32 description: Идентификатор запроса Провайдера Платежного сервиса example: IdempotenceKey000000000000000032 paymentServiceId: type: string maxLength: 12 minLength: 12 description: Идентификатор Платежного сервиса example: PS0000000001 status: maxLength: 4 minLength: 4 type: string description: | Статус Перевода УПК. Допустимые значения: * «RCVD» – Перевод УПК принят к обработке; * «ACWP» – Перевод УПК выполнен успешно; * «RJCT» – Перевод УПК отклонен. example: ACWP enum: - RCVD - ACWP - RJCT timestamp: type: string description: Дата и время отправки уведомления в формате UTC example: '2021-03-02T17:15:01.148Z' operId: type: string maxLength: 64 minLength: 1 description: Уникальный идентификатор Перевода УПК, назначаемый Провайдером Платежного сервиса example: A105600390167601000004681598593B amount: type: string maxLength: 12 minLength: 1 description: Сумма в копейках example: '100000' payerId: type: string maxLength: 15 minLength: 11 description: Маскированный номер телефона Клиента-Плательщика example: '*********6731'