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'