Сервис «Корпоративные подписки»
Информация о сервисе
Корпоративные подписки – это сервис для организации расчетов с юридическими лицами (ЮЛ) и индивидуальными предпринимателями (ИП), который позволяет получать сведения о подписчиках и безакцептно списывать денежные средства за предоставление услуг или товаров.
Ядро механизма сервиса составляют платежные требования, которые используются в качестве платежных документов для расчетов между компаниями.
Платежное требование
Платежное требование - это документ, используемый для безналичных расчетов между юридическими лицами, в котором поставщик предъявляет должнику претензию за неуплату задолженности по договору. Банк на основании этого документа списывает сумму задолженности со счета плательщика в пользу получателя.
Основное различие между платежным требованием и платежным поручением заключается в инициаторе платежа. В платежном поручении инициатором является владелец счета, тогда как в платежном требовании - получатель денег (кредитор, поставщик, продавец или исполнитель услуг). Кредитор оформляет платежное требование и направляет его в банк для исполнения. Часто для выполнения платежного требования требуется акцепт (согласие) плательщика.
Платежные требования могут быть с предварительным акцептом или без него. Акцепт - это согласие должника оплатить задолженность в определенный срок. Если акцепт не предусмотрен договором, то срок составляет 5 рабочих дней. Без акцепта банк имеет право списать деньги с расчетного счета клиента в определенных случаях, например, по решению суда на основании исполнительных документов.
Другая часть механизма построена на предварительном акцепте (у себя мы его называем Заранее данный акцепт - ЗДА) на списание денежных средств со счета подписчика.
Терминология
- Заранее данный акцепт (далее по тексту - ЗДА) – временное согласие Клиента на списание денежных средств в счет оплаты предоставленных услуг или товаров по подписке. Наличие Заранее данного акцепта позволяет по запросу от вашей компании Банку списывать средства со счета Клиента без дополнительного согласования.
- Оформить Подписку – подписать Заявление на Заранее данный акцепт.
- Исходящее Платежное требование (далее по тексту - ИПТ) – расчетный документ, на основании которого Банк списывает денежные средства со счета Клиента-подписчика.
- Digest ИПТ – набор значимых полей платежного документа, который подписывается электронной подписью (ЭП).
Схема работы сервиса
- Графическое описание
- Текстовое описание
Шаг | Что делаем | Подробности |
---|---|---|
1 | Авторизуйте Пользователя с помощью СберБизнес ID | Подробно о подключении сервиса СберБизнес ID рассказали в соответствующем разделе документации. |
2 | Предложите оформить Подписку | С помощью access_token пользователя Клиента и ресурса /fintech/api/v1/acceptance-advances создайте черновик заявления на ЗДА в СберБизнес Клиента. |
3 | Переадресуйте Пользователя на страницу подписания документа | С использованием идентификатора созданного черновика заявления ЗДА из шага №2 вы формируете ссылку для подписания документа и перенаправляете по ней пользователя Клиента. Перейдя по ссылке в сервис, пользователь пройдет аутентификацию, выберет счет списания и подпишет черновик ЗДА для исполнения Банком. Ссылка переадресации выглядит следующим образом: {контур банка}/ic/ufs/advance-acceptance/index.html#/advance-acceptance-creator/{externalId}?backUrl={backUrl} Дополнительная информация о формировании ссылки. |
4 | Проверьте статус и корректность оформления Подписки | С помощью access_token пользователя Клиента и ресурса /fintech/api/v1/acceptance-advances/{externalId}/state вы получите статус заявления ЗДА. Вы можете разработать механизм проверки статуса и реакцию Платформы на каждый из них.Важно: ЗДА вступает в силу на следующий рабочий день с даты его подписания. С помощью access_token пользователя Клиента и ресурса /fintech/api/v1/acceptance-advances/{externalId} вы получите полные данные ЗДА. Этот шаг позволит вам разработать механизм проверки неизменности подписанного документа путем сравнения отправленных параметров ЗДА в шаге №2 с результатами из ответа на данном шаге. |
5 | Спишите плату за подписку | С помощью access_token пользователя вашей компании и ресурса /fintech/api/v1/payment-requests/outgoing необходимо сформировать и отправить в Банк подписанное ИПТ.Чтобы Банк мог начать обрабатывать платежный документ, документ должен быть подписан ЭП уполномоченным сотрудником, имеющим право подписи от лица компании. Подробно о работе с ЭП рассказали в соответствующем разделе документации. Важно: Владелец access_token пользователя вашей компании должен совпадать с владельцем ЭП, которую будете использовать для подписания ИПТ. |
6 | Проверьте статус оплаты | С помощью access_token пользователя вашей компании и ресурса /fintech/api/v1/payment-requests/outgoing/{externalId}/state вы получите статус платежного требования. Вы можете разработать механизм проверки статуса оплаты и реакцию Платформы на каждый из статусов. |
Варианты реализации
В рамках Платформы вы самостоятельно разрабатываете ролевую модель и настраиваете права доступа к функциональности.
Ниже, в качестве примера, приведена диаграмма вариантов использования:
Оформление подписки
Для наличия возможности без акцептного списания денежных средств со счета Клиента потребуется получить от него согласие на автоматические списания. Его получить можно при оформлении Подписки пользователем Клиента. Клиент становится подписчиком после заключения договора с вашей компанией или акцепта Оферты вашей Платформы и оформления ЗДА на списание платы за подписку на основании заключенного договора/акцепта Оферты.
Шаги
- Сформировать черновик ЗДА
- Подписать черновик ЗДА
- Проверить статус подписания ЗДА
- Проверить подписанный ЗДА
Участники usecase
- Пользователь - представитель ЮЛ/ИП, от лица которого он работает в рамках вашего сервиса (Платформы)
- Платформа - любой web-ресурс (интернет-магазин, облачный сервис, мобильное приложение и т.д.) либо ваша внутренняя система (ERP, учетная система и др.), которую используют Пользователи
- Sber API - в контексте usecase представляет из себя запросы и ресурсы Sber API, к которым обращается Платформа
Предварительные условия
- Пользователь имеет пользовательский профиль в СберБизнес своей компании
- Пользователь находится в пространстве Платформы
- Пользователь прошел авторизацию с помощью СберБизнес ID
Результат применения
- Платформа получила подтверждение оформления Подписки (подписан документ заявление на ЗДА)
Используемые запросы
№ | Метод | Точка вызова | Описание | Операция в scope | Шаг в схеме |
---|---|---|---|---|---|
1 | /fintech/api/v1/acceptance-advances | Создание черновика заявления ЗДА | ACCEPTANCE_ADVANCE | 1. Сформировать черновик ЗДА | |
2 | /ic/sso/api/v2/oauth/token | Обновление токена доступа | openid | 1. Сформировать черновик ЗДА | |
3 | /fintech/api/v1/acceptance-advances/{externalId}/state | Получение статуса заявления ЗДА | ACCEPTANCE_ADVANCE | 3. Проверить статус подписания ЗДА | |
4 | /fintech/api/v1/acceptance-advances/{externalId} | Получение заявления ЗДА | ACCEPTANCE_ADVANCE | 4. Проверить подписанный ЗДА |
Списание платы за подписку
Выставить платежное требование Клиенту можно не раньше даты, следующей за датой оформления Подписки.
Например, Пользователь Клиента оформил Подписку 15 января. На следующий день, 16 января, можно будет сформировать платежное требование для списания денежных средств. Если сформировать платежное требование в день оформления Подписки, то платежное требование исполнено не будет - оно встанет в "Картотеку" в СберБизнес Клиента на ручное подтверждение.
В схеме можно использовать автоматизированное подписание документа. Данная возможность доступна только при использовании ЭЦП сотрудника вашей компании.
Подробнее об использовании ЭЦП в Sber API можно почитать в одноименном разделе.
Шаги
- Проверить актуальность подписки
- Создать и подписать ИПТ
Участники usecase
- Платформа - любой web-ресурс (интернет-магазин, облачный сервис, мобильное приложение и т.д.) либо ваша внутренняя система (ERP, учетная система и др.), которую используют Пользователи
- Sber API - в контексте usecase представляет из себя запросы и ресурсы Sber API, к которым обращается Платформа
Предварительные условия
- Успешно выполнен сценарий "Оформление подписки"
- Платформа сохранила идентификатор (extertalId) заявления на ЗДА, созданного в сценарии "Оформление подписки"
- У Платформы есть access_token пользователя вашей компании
Результат применения
- Платформа создала ИПТ
Используемые запросы
№ | Метод | Точка вызова | Описание | Операция в scope | Шаг в схеме |
---|---|---|---|---|---|
1 | /fintech/api/v1/acceptance-advances/{externalId}/state | Получение статуса заявления ЗДА | ACCEPTANCE_ADVANCE | 1. Проверить актуальность подписки | |
2 | /ic/sso/api/v2/oauth/token | Обновление токена доступа | openid | 1. Проверить актуальность подписки и 2. Создать и подписать ИПТ | |
3 | /fintech/api/v1/payment-requests/outgoing | Создание платежного требования | PAYMENT_REQUEST_OUT | 2. Создать и подписать ИПТ |
Проверка статуса оплаты
Шаги
- Проверить статус оплаты
Участники usecase
- Платформа - любой web-ресурс (интернет-магазин, облачный сервис, мобильное приложение и т.д.) либо ваша внутренняя система (ERP, учетная система и др.), которую используют Пользователи
- Sber API - в контексте usecase представляет из себя запросы и ресурсы Sber API, к которым обращается Платформа
Предварительные условия
- Успешно выполнен сценарий "Списание платы за подписку"
- Платформа сохранила идентификатор (extertalId) ИПТ, созданного в сценарии "Списание платы за подписку"
- У Платформы есть access_token пользователя вашей компании
Результат применения
- ИПТ исполнено Банком
Используемые запросы
№ | Метод | Точка вызова | Описание | Операция в scope | Шаг в схеме |
---|---|---|---|---|---|
1 | /fintech/api/v1/payment-requests/outgoing/{externalId}/state | Получение статуса платежного требования | PAYMENT_REQUEST_OUT | 1. Проверить статус оплаты | |
2 | /ic/sso/api/v2/oauth/token | Обновление токена доступа | openid | 1. Проверить статус оплаты |
Переадресация на заявление ЗДА
Для начала обработки заявления на ЗДА Банком оно должно быть подписано. При создании документа с помощью запроса API, документ также появляется в клиентской части СберБизнес Пользователя.
Можно облегчить пользовательский сценарий, если Пользователю сразу открыть упрощенный интерфейс СберБизнес только с данными заявления на ЗДА. Для открытия упрощенного интерфейса СберБизнес потребуется сформировать ссылку и переадресовать по ней пользователя. Перейдя по ссылке в сервис подписания заявления, Пользователь пройдет аутентификацию, выберет счет списания и подпишет документ. При успешном подписании сервис вернет Пользователя на вашу Платформу.
- Модель ссылки
- Пример
Ссылка переадресации выглядит следующим образом:
{контур банка}/ic/ufs/advance-acceptance/index.html#/advance-acceptance-creator/{externalId}?backUrl={backUrl}
Переменная | Описание | Дополнительная информация |
---|---|---|
{контур Банка} | адрес Банка, на который делается запрос для открытия страницы сервиса подписания заявления | Для корректного выбора контура Банка потребуется определить тип криптопрофиля пользователя Клиента. В рамках запроса /v1/oauth/user-info вы получаете данные по Клиенту, в том числе атрибут userCryptoType.Атрибут позволяет определить криптопрофиль пользователя - SMS (СМС) или Token (электронный ключ (токен)). - Тестовый контур https://efs-sbbol-ift-web.testsbi.sberbank.ru:9443 - Промышленный контур СМС-пользователь https://sbi.sberbank.ru:9443 - Промышленный контур Токен-пользователь http://localhost:28016 |
{externalId} | уникальный идентификатор заявления | Данный идентификатор присваивает ваша Платформа на шаге создания черновика заявления на ЗДА |
{backUrl} | страница возврата, на которую Банк вернет пользователя Клиента после успешного подписания черновика заявления | - Если не указать backUrl в ссылке, пользователи не смогут после подписания вернуться на Платформу; - Если backUrl будет отличаться от адреса вашей платформы, который указали при регистрации в Банке, то при возврате клиента на backUrl он будет видеть ошибку. |
https://sbi.sberbank.ru:9443/ic/ufs/advance-acceptance/index.html#/advance-acceptance-creator/d4fbfe27-ee37-4451-b224-8113a06c44a3?backUrl=https%3A%2F%2Fwww.example.ru%2F
Создание черновика заявления ЗДА
/fintech/api/v1/acceptance-advances
Ресурс позволяет создать черновик заявления на заранее данный акцепт.
Для создания черновика заранее данного акцепта необходимо отправить POST-запрос /fintech/api/v1/acceptance-advances
с токеном доступа (access_token) пользователя в параметре Authorization заголовка и реквизитами документа в теле запросе.
В параметре scope ссылки авторизации пользователя должен быть указан сервис ACCEPTANCE_ADVANCE
для получения доступа к этому ресурсу.
Для обращения к ресурсу необходимо отправлять запрос на:
- Тестовый контур
https://iftfintech.testsbi.sberbank.ru:9443
- Промышленный контур
https://fintech.sberbank.ru:9443
Request
/fintech/api/v1/acceptance-advances
- Модель
- Пример
Наименование | Тип | Формат | Regexp | Обязательность | Описание |
---|---|---|---|---|---|
HEADER | |||||
Authorization | string | string | ^[a-zA-Z0-9]{38}$ | required | Access token пользователя, полученный через SSO. |
Content-Type | string | string | ^(application/json|text/plain|application/xml|multipart/form-data|application/x-www-form-urlencoded)$ | required | Тип данных, которые передаются в теле запроса. Должен содержать значение application/json. |
BODY | |||||
AcceptanceAdvance { | |||||
acceptLastDate | string | ISO 8601 YYYY-MM-DD | ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ | optional | Дата окончания периода действия ЗДА. Если поле оставить незаполненным, то будет создаваться черновик заявления на выпуск бессрочного ЗДА, |
acceptStartDate | string | ISO 8601 YYYY-MM-DD | ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ | required | Дата начала периода действия ЗДА, |
contractDate | string | ISO 8601 YYYY-MM-DD | ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ | required | Дата заключения договора, на основании которого в дальнейшем Клиенту выставляется ИПТ, |
contractNumber | string | string | ^[0-9a-zA-Zа-яА-ЯеЁ \t]{1,40}$ | required | Номер договора, на основании которого в дальнейшем Клиенту выставляется ИПТ, |
date | string | ISO 8601 YYYY-MM-DD | ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ | required | Дата составления документа, |
externalId | string | UUID | ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ | required | Идентификатор документа, присвоенный вами, |
number | string | string | ^[0-9]{1,6}$ | required | Номер документа, |
obligation | string | string | ^[0-9a-zA-Zа-яА-ЯеЁ \t]{1,50}$ | optional | Предмет договора, |
payeeAccount | string | string | ^[0-9]{20}$ | required | Счет получателя, |
payeeBankBic | string | string | ^[0-9]{9}$ | optional | БИК получателя, |
payeeInn | string | string | ^([0-9]{5}|[0-9]{10}|[0-9]{12}|0)$ | optional | ИНН получателя, |
payeeName | string | string | ^[0-9a-zA-Zа-яА-ЯеЁ \t]+$ | optional | Наименование получателя, |
payerAccount | string | string | ^[0-9]{20}$ | optional | Счет плательщика, |
payerBic | string | string | ^[0-9]{9}$ | optional | БИК плательщика, |
payerInn | string | string | ^([0-9]{5}|[0-9]{10}|[0-9]{12}|0)$ | optional | ИНН плательщика, |
payerName | string | string | ^[0-9a-zA-Zа-яА-ЯеЁ \t]+$ | optional | Наименование плательщика |
} |
POST /fintech/api/v1/acceptance-advances HTTP/1.1
Content-Type: application/json
Authorization: Bearer 9126b3df-0a3c-4963-bd82-e88a2f3d4994-2
{
"acceptStartDate": "2024-04-18",
"contractDate": "2024-04-17",
"contractNumber": "3735",
"date": "2024-04-17",
"externalId": "c8a4bf86-fa63-411f-b705-1b764386855a",
"number": "670",
"obligation": "Оплата телефонных услуг. НДС 20%",
"payeeAccount": "40702810006000001792",
"payeeBankBic": "048073601",
"payeeInn": "7379190522",
"payeeName": "ТЕСТ9036",
"payerAccount": "40702810506000002149",
"payerBic": "048073601",
"payerInn": "213504669246",
"payerName": "ИП_Автотест_Клиент_ЕКС_20231027092336"
}
Responses
201 (Сreated)
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
AcceptanceAdvance { | |||
acceptLastDate | string | optional | Дата окончания периода действия ЗДА, |
acceptStartDate | string | required | Дата начала периода действия ЗДА, |
bankComment | string | optional | Расшифровка статуса обработки, |
bankStatus | string | optional | Статус обработки, |
contractDate | string | required | Дата договора, |
contractNumber | string | required | Номер договора, |
date | string | required | Дата документа, |
externalId | string | required | Идентификатор документа, присвоенный партнером, |
number | string | required | Номер документа, |
obligation | string | optional | Предмет договора, |
payeeAccount | string | required | Счет получателя, |
payeeBankBic | string | optional | БИК получателя, |
payeeInn | string | optional | ИНН получателя, |
payeeName | string | optional | Наименование получателя, |
payerAccount | string | optional | Счет плательщика, |
payerBic | string | optional | БИК плательщика, |
payerInn | string | optional | ИНН плательщика, |
payerName | string | optional | Наименование плательщика |
} |
HTTP/1.1 201 Created
Content-Type: application/json;charset=UTF-8
{
"externalId": "c8a4bf86-fa63-411f-b705-1b764386855a",
"contractNumber": "3735",
"acceptStartDate": "2024-04-18",
"acceptLastDate": null,
"contractDate": "2024-04-17",
"number": "670",
"date": "2024-04-17",
"obligation": "Оплата телефонных услуг. НДС 20%",
"payeeAccount": "40702810006000001792",
"bankStatus": "CREATED",
"bankComment": null,
"payeeName": "ТЕСТ9036",
"payeeInn": "7379190522",
"payeeBankBic": "048073601",
"payerAccount": "40802810706000000087",
"payerName": "ИП_Автотест_Клиент_ЕКС_20231027092336",
"payerInn": "213504669246",
"payerBic": "048073601"
}
400 (Bad request)
Cause | Message | Description |
---|---|---|
DESERIALIZATION_FAULT | Неверный формат запроса | Данные в request указаны в неправильном формате. Атрибуты request, в которых найдены ошибки, указаны в responce в массиве fields с описанием проблемы. Описание типа, формата и regexp атрибутов находится в request ресурса. Скорректируйте заполнение атрибутов и повторите запрос. |
WORKFLOW_FAULT | Документ с таким externalId уже существует в системе | Используется externalId, который уже есть в системе (дубль). Сгенерируйте новый externalId и повторите запрос. |
Неизвестный счет плательщика: {payerAccount} | ||
Неизвестный счет получателя: {accountNumber} | ||
Отсутствует доступный открытый рублевый расчетный счет | Ошибка может возникнуть если: 1. Указан не расчетный счет (например, транзитный) 2. Указан валютный счет 3. Указан счет для гособоронзаказа 4. Указан счет ТСЖ | |
Счет закрыт: {accountNumber} | ||
Счет заблокирован: {accountNumber} | ||
Введен некорректный ИНН получателя | ||
Введен некорректный ИНН плательщика | ||
БИК банка получателя не соответствует БИК привязанного к счету получателя | ||
БИК банка плательщика не соответствует БИК привязанного к счету плательщика | ||
VALIDATION_FAULT | Объект AcceptanceAdvance не соответствует модели | Данные не соответствуют требованиям валидации. Сведения о некорректных атрибутах request содержатся в массивах fieldNames и checks. Подробные требования к атрибутам описаны в request ресурса, включая типы, форматы и регулярные выражения. Необходимо скорректировать заполнение атрибутов и повторить запрос. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
ResourceFault { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки (UUID), |
message | string | optional | Сообщение, |
checks | array[Check] | optional | Список проверок, приведших к ошибке, |
fieldNames | array[string] | optional | Названия полей с некорректным значением (только для VALIDATION_FAULT) |
} | |||
Check { | |||
level | string | optional | Уровень результата = ['ERROR', 'WARNING'], |
message | string | optional | Сообщение, |
fields | array[string] | optional | Названия полей (при наличии связи с моделью) |
} |
HTTP/1.1 400 Bad Request
Content-Type: application/json;charset=UTF-8
{
"cause": "DESERIALIZATION_FAULT",
"referenceId": "d202ea3a-d380-464d-ad75-c398728d111c",
"message": "Неверный формат запроса",
"checks": [
{
"level": "ERROR",
"message": "Cannot deserialize value of type `java.util.Date` from String \"17.04.2024\": not a valid representation",
"fields": [
"acceptStartDate"
]
}
],
"fieldNames": [
"acceptStartDate"
]
}
401 (Unauthorized Error)
Cause | Message | Description |
---|---|---|
UNAUTHORIZED | accessToken not found by value =хххххххх-хххх-хххх-хххх-хххххххххххх-х | Указан некорректный или просроченный access_token. Используйте refresh_token для обновления access_token и повторите запрос. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки, |
message | string | optional | Сообщение, |
} |
HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=UTF-8
{
"cause": "UNAUTHORIZED",
"referenceId": "014ec3a1-3e41-4805-9e22-d07947b012af",
"message": "accessToken not found by value = 3513f959-bbd5-490a-9f9f-67fb7380fae5-2"
}
403 (Forbidden)
Cause | Message | Description |
---|---|---|
ACTION_ACCESS_EXCEPTION | Операция не может быть выполнена: доступ к ресурсу запрещен | Используемый в запросе access_token не имеет разрешения на доступ к нужному сервису Sber API. В ссылке авторизации СберБизнес ID, в параметре scope, не указана операция ACCEPTANCE_ADVANCE . Необходимо добавить эту операцию в scope. Пользователю потребуется пройти авторизацию заново. Вы получите новые токены access_token и refresh_token. Сделайте повторный запрос с новым access_token. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки, |
message | string | optional | Сообщение, |
} |
HTTP/1.1 403 Forbidden
Content-Type: application/json;charset=UTF-8
{
"cause": "ACTION_ACCESS_EXCEPTION",
"referenceId": "7535c2bb-7706-4b16-9882-d68aedbf2fef",
"message": "Операция не может быть выполнена: доступ к ресурсу запрещен"
}
415 (Unsupported Media Type)
Cause | Message | Description |
---|---|---|
Отсутствует параметр Content-type в header запроса | ||
В параметре Content-type установлено значение, отличное от application/json |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Отсутствует |
HTTP/1.1 415 Unsupported Media Type
500 (Internal Server Error)
Cause | Message | Description |
---|---|---|
UNKNOWN_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки, |
message | string | optional | Сообщение, |
} |
HTTP/1.1 500 Internal Server Error
Content-Type: application/json;charset=UTF-8
{
"cause": "UNKNOWN_EXCEPTION",
"referenceId": "9e209109-4b0d-408c-a2fd-e1983c20a65d",
"message": "Внутренняя ошибка сервера"
}
503 (Service Temporarily Unavailable)
Cause | Message | Description |
---|---|---|
UNAVAILABLE_RESOURCE_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки, |
message | string | optional | Сообщение, |
} |
HTTP/1.1 503 Service Temporarily Unavailable
Content-Type: application/json;charset=UTF-8
{
"cause": "UNAVAILABLE_RESOURCE_EXCEPTION",
"referenceId": "9e209109-4b0d-408c-a2fd-e1983c20a67d",
"message": "Внутренняя ошибка сервера"
}
Получение статуса заявления ЗДА
/fintech/api/v1/acceptance-advances/{externalId}/state
Ресурс позволяет получить актуальный статус заявления на заранее данный акцепт.
Для получения статуса заявления на заранее данный акцепт необходимо отправить GET-запрос /fintech/api/v1/acceptance-advances/{externalId}/state
с токеном доступа (access_token) пользователя в параметре Authorization заголовка и идентификатором документа (externalId) в path-параметре.
В параметре scope ссылки авторизации пользователя должен быть указан сервис ACCEPTANCE_ADVANCE
для получения доступа к этому ресурсу.
Для обращения к ресурсу необходимо отправлять запрос на:
- Тестовый контур
https://iftfintech.testsbi.sberbank.ru:9443
- Промышленный контур
https://fintech.sberbank.ru:9443
Request
/fintech/api/v1/acceptance-advances/{externalId}/state
- Модель
- Пример
Наименование | Тип | Формат | Regexp | Обязательность | Описание |
---|---|---|---|---|---|
HEADER | |||||
Authorization | string | string | ^[a-zA-Z0-9]{38}$ | required | Access token пользователя, полученный через SSO. |
PATH PARAMETERS | |||||
externalId | string | UUID | ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ | required | Идентификатор документа, присвоенный вами при создании заявления на ЗДА |
GET /fintech/api/v1/acceptance-advances/40fba3d3-21a4-4be6-9c02-c1c320476412/state HTTP/1.1
Authorization: Bearer f8b476b0e95e4ad2b3ec122fbf331444276b0e
Responses
200 (OK)
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
PaymentDocState { | |||
bankComment | string | optional | Банковский комментарий к статусу документа, |
bankStatus | string | optional | Статус документа |
} |
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"bankStatus": "ACCEPTED_BY_ABS",
"bankComment": null
}
400 (Bad request)
Cause | Message | Description |
---|---|---|
DESERIALIZATION_FAULT | Неверный формат запроса | Данные в request указаны в неправильном формате. Атрибуты request, в которых найдены ошибки, указаны в responce в массиве fields с описанием проблемы. Описание типа, формата и regexp атрибутов находится в request ресурса. Скорректируйте заполнение атрибутов и повторите запрос. |
VALIDATION_FAULT | Ошибка валидации | Данные не соответствуют требованиям валидации. Сведения о некорректных атрибутах request содержатся в массивах fieldNames и checks. Подробные требования к атрибутам описаны в request ресурса, включая типы, форматы и регулярные выражения. Необходимо скорректировать заполнение атрибутов и повторить запрос. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
ResourceFault { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки (UUID), |
message | string | optional | Сообщение, |
checks | array[Check] | optional | Список проверок, приведших к ошибке, |
fieldNames | array[string] | optional | Названия полей с некорректным значением (только для VALIDATION_FAULT) |
} | |||
Check { | |||
level | string | optional | Уровень результата = ['ERROR', 'WARNING'], |
message | string | optional | Сообщение, |
fields | array[string] | optional | Названия полей (при наличии связи с моделью) |
} |
HTTP/1.1 400 Bad Request
Content-Type: application/json;charset=UTF-8
{
"cause": "WORKFLOW_FAULT",
"referenceId": "6a2489c7-b65f-4ffa-a3cc-0e66dc86a49c",
"message": "Параметр \"externalId\" не соответствует регулярному выражению: [0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
"checks": [],
"fieldNames": null
}
401 (Unauthorized Error)
Cause | Message | Description |
---|---|---|
UNAUTHORIZED | accessToken not found by value =хххххххх-хххх-хххх-хххх-хххххххххххх-х | Указан некорректный или просроченный access_token. Используйте refresh_token для обновления access_token и повторите запрос. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки, |
message | string | optional | Сообщение, |
} |
HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=UTF-8
{
"cause": "UNAUTHORIZED",
"referenceId": "014ec3a1-3e41-4805-9e22-d07947b012af",
"message": "accessToken not found by value = 3513f959-bbd5-490a-9f9f-67fb7380fae5-2"
}
403 (Forbidden)
Cause | Message | Description |
---|---|---|
ACTION_ACCESS_EXCEPTION | Операция не может быть выполнена: доступ к ресурсу запрещен | Используемый в запросе access_token не имеет разрешения на доступ к нужному сервису Sber API. В ссылке авторизации СберБизнес ID, в параметре scope, не указана операция ACCEPTANCE_ADVANCE . Необходимо добавить эту операцию в scope. Пользователю потребуется пройти авторизацию заново. Вы получите новые токены access_token и refresh_token. Сделайте повторный запрос с новым access_token. |
Вы использовали access_token пользователя Клиента, а не пользователя вашей организации. Нужно использовать access_token пользователя вашей организации. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки, |
message | string | optional | Сообщение, |
} |
HTTP/1.1 403 Forbidden
Content-Type: application/json;charset=UTF-8
{
"cause": "ACTION_ACCESS_EXCEPTION",
"referenceId": "7535c2bb-7706-4b16-9882-d68aedbf2fef",
"message": "Операция не может быть выполнена: доступ к ресурсу запрещен"
}
404 (Not found)
Cause | Message | Description |
---|---|---|
NOT_FOUND | Документ с указанным ID не найден | Проверьте корректность указанного идентификатора документа (externalId). Возможно, ранее отправленный запрос на создание документа с таким externalId не был создан в системах Банка |
Указанный документ удален | Пользователь зашел в UI СберБизнес и удалил документ |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки, |
message | string | optional | Сообщение, |
} |
HTTP/1.1 404 Not Found
Content-Type: application/json;charset=UTF-8
{
"cause": "NOT_FOUND",
"referenceId": "cbc97da9-23eb-4065-a971-cdf71cbe0d0f",
"message": "Документ с указанным ID не найден"
}
500 (Internal Server Error)
Cause | Message | Description |
---|---|---|
UNKNOWN_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки, |
message | string | optional | Сообщение, |
} |
HTTP/1.1 500 Internal Server Error
Content-Type: application/json;charset=UTF-8
{
"cause": "UNKNOWN_EXCEPTION",
"referenceId": "9e209109-4b0d-408c-a2fd-e1983c20a65d",
"message": "Внутренняя ошибка сервера"
}
503 (Service Temporarily Unavailable)
Cause | Message | Description |
---|---|---|
UNAVAILABLE_RESOURCE_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки, |
message | string | optional | Сообщение, |
} |
HTTP/1.1 503 Service Temporarily Unavailable
Content-Type: application/json;charset=UTF-8
{
"cause": "UNAVAILABLE_RESOURCE_EXCEPTION",
"referenceId": "9e209109-4b0d-408c-a2fd-e1983c20a67d",
"message": "Внутренняя ошибка сервера"
}
Статусы заявления ЗДА
bankStatus (string)
Код статуса | Наименование | Комментарий |
---|---|---|
Промежуточный/Продолжать опрашивать | ||
CREATED | Создан | Документ создан и прошел первичный контроль на КЧ. |
DELETED | Удален | Документ удален Пользователем |
PARTSIGNED | Частично подписан | Документ подписан не полным набором подписей. |
SIGNED | Подписан | Документ подписан полным набором подписей. |
ACCEPTED | Принят | Документ принят на стороне банка |
ACCEPTED_BY_ABS | Принят АБС | Документ принят АБС Банка. |
REFUSEDBYABS | Отказан АБС | Документ отказан АБС Банка. |
REFUSEDBYBANK | Отвергнут банком | Документ отказан сотрудником Банка по результатам ручной обработки. |
REQUISITEERROR | Ошибка реквизитов | В процессе контроля в АБС Банка обнаружены ошибки в реквизитах документа. |
INVALIDEDS | ЭП/АСП не верна | В процессе контроля в АБС Банка обнаружена ошибка подписи документа. |
Окончательный (Успешный)/Прекратить опрос | ||
IMPLEMENTED | Исполнен | 1. Документ исполнен Банком. В ЕКС создано Распоряжение на ЗДА. |
(для заявления на заранее данный акцепт) | 2. Документ исполнен Банком. Есть связанное заявление на отмену действия ЗДА. | |
Окончательный (Не успешный)/Прекратить опрос | ||
ACCEPTEXPIRE | Истек срок акцепта | Истек срок действия заранее данного акцепта. |
RECALL | Отозван | Дата отмены действия ЗДА меньше (раньше) или равна текущей дате. Заранее данный акцепт (Распоряжение) отменен. |
CHECKERROR | Ошибка контроля | При прохождении контролей на КЧ, в процессе сохранения, обнаружены ошибки. |
Получение заявления ЗДА
/fintech/api/v1/acceptance-advances/{externalId}
Ресурс позволяет получить полные данные заявления на заранее данный акцепт.
Для получения данных заявления на заранее данный акцепт необходимо отправить GET-запрос /fintech/api/v1/acceptance-advances/{externalId}
с токеном доступа (access_token) пользователя в параметре Authorization заголовка и идентификатором документа (externalId) в path-параметре.
В параметре scope ссылки авторизации пользователя должен быть указан сервис ACCEPTANCE_ADVANCE
для получения доступа к этому ресурсу.
Для обращения к ресурсу необходимо отправлять запрос на:
- Тестовый контур
https://iftfintech.testsbi.sberbank.ru:9443
- Промышленный контур
https://fintech.sberbank.ru:9443
Request
/fintech/api/v1/acceptance-advances/{externalId}
- Модель
- Пример
Наименование | Тип | Формат | Regexp | Обязательность | Описание |
---|---|---|---|---|---|
HEADER | |||||
Authorization | string | string | ^[a-zA-Z0-9]{38}$ | required | Access token пользователя, полученный через SSO. |
PATH PARAMETERS | |||||
externalId | string | UUID | ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ | required | Идентификатор документа, присвоенный вами при создании заявления на ЗДА |
GET /fintech/api/v1/acceptance-advances/40fba3d3-21a4-4be6-9c02-c1c320476412 HTTP/1.1
Authorization: Bearer f8b476b0e95e4ad2b3ec122fbf3314442fbf33
Responses
200 (OK)
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
AcceptanceAdvance { | |||
acceptLastDate | string | optional | Дата окончания периода действия ЗДА, |
acceptStartDate | string | required | Дата начала периода действия ЗДА, |
bankComment | string | optional | Расшифровка статуса обработки, |
bankStatus | string | optional | Статус обработки, |
contractDate | string | required | Дата договора, |
contractNumber | string | required | Номер договора, |
date | string | optional | Дата документа, |
externalId | string | required | Идентификатор документа, присвоенный партнером, |
number | string | required | Номер документа, |
obligation | string | optional | Предмет договора, |
payeeAccount | string | required | Счет получателя, |
payeeBankBic | string | optional | БИК банка получателя, |
payerCorrAcc | string | optional | Корсчет банка получателя платежа, |
payeeInn | string | optional | ИНН получателя, |
payeeName | string | optional | Наименование получателя, |
payerAccount | string | optional | Счет плательщика, |
payerBic | string | optional | БИК плательщика, |
payerInn | string | optional | ИНН плательщика, |
payerName | string | optional | Наименование плательщика |
} |
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"externalId": "c8a4bf86-fa63-411f-b705-1b764386855a",
"contractNumber": "3735",
"acceptStartDate": "2024-04-18",
"acceptLastDate": null,
"contractDate": "2024-04-17",
"number": "670",
"date": "2024-04-17",
"obligation": "Оплата телефонных услуг. НДС 20%",
"payeeAccount": "40702810006000001792",
"bankStatus": "ACCEPTED_BY_ABS",
"bankComment": null,
"payeeName": "ТЕСТ9036",
"payeeInn": "7379190522",
"payeeBankBic": "048073601",
"payerCorrAcc": "42000003360000041336",
"payerAccount": "40802810706000000087",
"payerName": "ИП_Автотест_Клиент_ЕКС_20231027092336",
"payerInn": "213504669246",
"payerBic": "048073601"
}
400 (Bad request)
Cause | Message | Description |
---|---|---|
DESERIALIZATION_FAULT | Неверный формат запроса | Данные в request указаны в неправильном формате. Атрибуты request, в которых найдены ошибки, указаны в responce в массиве fields с описанием проблемы. Описание типа, формата и regexp атрибутов находится в request ресурса. Скорректируйте заполнение атрибутов и повторите запрос. |
VALIDATION_FAULT | Ошибка валидации | Данные не соответствуют требованиям валидации. Сведения о некорректных атрибутах request содержатся в массивах fieldNames и checks. Подробные требования к атрибутам описаны в request ресурса, включая типы, форматы и регулярные выражения. Необходимо скорректировать заполнение атрибутов и повторить запрос. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
ResourceFault { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки (UUID), |
message | string | optional | Сообщение, |
checks | array[Check] | optional | Список проверок, приведших к ошибке, |
fieldNames | array[string] | optional | Названия полей с некорректным значением (только для VALIDATION_FAULT) |
} | |||
Check { | |||
level | string | optional | Уровень результата = ['ERROR', 'WARNING'], |
message | string | optional | Сообщение, |
fields | array[string] | optional | Названия полей (при наличии связи с моделью) |
} |
HTTP/1.1 400 Bad Request
Content-Type: application/json;charset=UTF-8
{
"cause": "WORKFLOW_FAULT",
"referenceId": "6a2489c7-b65f-4ffa-a3cc-0e66dc86a49c",
"message": "Параметр \"externalId\" не соответствует регулярному выражению: [0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
"checks": [],
"fieldNames": null
}
401 (Unauthorized Error)
Cause | Message | Description |
---|---|---|
UNAUTHORIZED | accessToken not found by value =хххххххх-хххх-хххх-хххх-хххххххххххх-х | Указан некорректный или просроченный access_token. Используйте refresh_token для обновления access_token и повторите запрос. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки, |
message | string | optional | Сообщение, |
} |
HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=UTF-8
{
"cause": "UNAUTHORIZED",
"referenceId": "014ec3a1-3e41-4805-9e22-d07947b012af",
"message": "accessToken not found by value = 3513f959-bbd5-490a-9f9f-67fb7380fae5-2"
}
403 (Forbidden)
Cause | Message | Description |
---|---|---|
ACTION_ACCESS_EXCEPTION | Операция не может быть выполнена: доступ к ресурсу запрещен | Используемый в запросе access_token не имеет разрешения на доступ к нужному сервису Sber API. В ссылке авторизации СберБизнес ID, в параметре scope, не указана операция ACCEPTANCE_ADVANCE . Необходимо добавить эту операцию в scope. Пользователю потребуется пройти авторизацию заново. Вы получите новые токены access_token и refresh_token. Сделайте повторный запрос с новым access_token. |
Вы использовали access_token пользователя Клиента, а не пользователя вашей организации. Нужно использовать access_token пользователя вашей организации. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки, |
message | string | optional | Сообщение, |
} |
HTTP/1.1 403 Forbidden
Content-Type: application/json;charset=UTF-8
{
"cause": "ACTION_ACCESS_EXCEPTION",
"referenceId": "7535c2bb-7706-4b16-9882-d68aedbf2fef",
"message": "Операция не может быть выполнена: доступ к ресурсу запрещен"
}
404 (Not found)
Cause | Message | Description |
---|---|---|
NOT_FOUND | Документ с указанным ID не найден | Проверьте корректность указанного идентификатора документа (externalId). Возможно, ранее отправленный запрос на создание документа с таким externalId не был создан в системах Банка |
Указанный документ удален | Пользователь зашел в UI СберБизнес и удалил документ |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки, |
message | string | optional | Сообщение, |
} |
HTTP/1.1 404 Not Found
Content-Type: application/json;charset=UTF-8
{
"cause": "NOT_FOUND",
"referenceId": "cbc97da9-23eb-4065-a971-cdf71cbe0d0f",
"message": "Документ с указанным ID не найден"
}
500 (Internal Server Error)
Cause | Message | Description |
---|---|---|
UNKNOWN_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки, |
message | string | optional | Сообщение, |
} |
HTTP/1.1 500 Internal Server Error
Content-Type: application/json;charset=UTF-8
{
"cause": "UNKNOWN_EXCEPTION",
"referenceId": "9e209109-4b0d-408c-a2fd-e1983c20a65d",
"message": "Внутренняя ошибка сервера"
}
503 (Service Temporarily Unavailable)
Cause | Message | Description |
---|---|---|
UNAVAILABLE_RESOURCE_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки, |
message | string | optional | Сообщение, |
} |
HTTP/1.1 503 Service Temporarily Unavailable
Content-Type: application/json;charset=UTF-8
{
"cause": "UNAVAILABLE_RESOURCE_EXCEPTION",
"referenceId": "9e209109-4b0d-408c-a2fd-e1983c20a67d",
"message": "Внутренняя ошибка сервера"
}
Создание платежного требования
ВАЖНО!
Выставить платежное требование Клиенту можно не раньше даты, следующей за датой оформления Подписки.
Например, Клиент оформил Подписку 15 января. На следующий день, 16 января, можно будет сформировать платежное требование для списания денежных средств. Если сформировать платежное требование в день оформления Подписки, то платежное требование не будет исполнено - оно встанет в "Картотеку" в СберБизнес Клиента на ручное подтверждение.
/fintech/api/v1/payment-requests/outgoing
Ресурс позволяет создавать платежные требования, где получателем средств является ваша компания.
Для создания платежного требования необходимо отправить POST-запрос /fintech/api/v1/payment-requests/outgoing
с токеном доступа (access_token) пользователя собственной организации в параметре Authorization заголовка и реквизитами платежного требования в теле запросе.
В параметре scope ссылки авторизации пользователя должен быть указан сервис PAYMENT_REQUEST_OUT
для получения доступа к этому ресурсу.
Если в запросе на создание платежного документа передать ЭП к документу (объект digestSignatures), то Банк сразу начнет его обработку.
Если в запросе не передавать ЭП к документу, то документ будет создан в статусе черновик. Для начала его обработки Банком потребуется зайти в интерфейс СберБизнес и подписать его.
Для обращения к ресурсу необходимо отправлять запрос на:
- Тестовый контур
https://iftfintech.testsbi.sberbank.ru:9443
- Промышленный контур
https://fintech.sberbank.ru:9443
Request
/fintech/api/v1/payment-requests/outgoing
- Модель
- Пример
Наименование | Тип | Формат | Regexp | Обязательность | Описание |
---|---|---|---|---|---|
HEADER | |||||
Authorization | string | string | ^[a-zA-Z0-9]{38}$ | required | Access token пользователя, полученный через SSO. |
BODY | |||||
PaymentRequestOut { | |||||
acceptanceTerm | string | string | ^[1-5]{1}$ | optional | Срок для акцепта (поле 36). Указывается количество дней для получения акцепта плательщика, |
amount | number | float | ^[0-9]+(.[0-9]+)?$ | required | Сумма платежа, |
date | string | ISO 8601 YYYY-MM-DD | ^(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$ | required | Дата составления документа, |
deliveryKind | string | string | ^(электронно|срочно|0)$ | optional | Вид платежа: электронно, срочно Если не заполнено или 0, то будет присвоено значение "электронно", |
digestSignatures | array[Signature] | array[object] | optional | Электронные подписи по дайджесту документа. Если ЭП передана/ы в API, то они сохраняются вместе с документом, а сам документ продвигается дальше по своему жизненному циклу. Если ЭП не была/и передана/ы, то документ сохраняется в своем начальном статусе и ожидает дальнейшего подписания в интерфейсе СберБизнес. О подписании дайджеста платежного документа подробно рассказали в соответствующем разделе документации | |
externalId | string | UUID | ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ | required | Идентификатор документа, присвоенный партнером, |
number | string | string | ^[0-9]$ | optional | Номер документа, |
operationCode | string | string | ^02$ | required | Код операции, |
payeeAccount | string | string | ^[0-9]$ | required | Счет получателя платежа, |
payeeBankBic | string | string | ^[0-9]{9}$ | required | БИК получателя платежа, |
payeeBankCorrAccount | string | string | ^[0-9]{20}$ | required | Корсчет банка получателя платежа, |
payeeInn | string | string | ^([0-9]{5}|[0-9]{10}|[0-9]{12}|0)$ | optional | ИНН получателя платежа, |
payeeName | string | string | ^[0-9a-zA-Zа-яА-ЯеЁ \t]+$ | required | Полное наименование получателя платежа, |
payerAccount | string | string | ^[0-9]{20}$ | required | Счет плательщика, |
payerBankBic | string | string | ^[0-9]{9}$ | required | БИК банка плательщика, |
payerBankCorrAccount | string | string | ^[0-9]{20}$ | required | Корсчет банка плательщика, |
payerInn | string | string | ^([0-9]{5}|[0-9]{10}|[0-9]{12}|0)$ | required | ИНН плательщика, |
payerName | string | string | ^[0-9a-zA-Zа-яА-ЯеЁ \t]+$ | required | Полное наименование плательщика, |
paymentCondition | string | string | ^(1|2)$ | required | Условие оплаты (поле 35). Указывается цифра "1" - заранее данный акцепт плательщика или цифра "2" - требуется получение акцепта плательщика, |
priority | string | string | ^[1-5]{1}$ | required | Очередность платежа, |
purpose | string | string | ^.{0,210}$ | required | Назначение платежа. Рекомендации по заполнению |
vat | Vat | object | required | Данные НДС, | |
voCode | string | string | ^[0-9]{5}$ | required | Код вида валютной операции |
} | |||||
Signature { | |||||
base64Encoded | string | base64 | ^[a-zA-Z0-9]+$ | required | Значение электронной подписи, закодированное в Base64, |
certificateUuid | string | UUID | ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ | required | Уникальный идентификатор сертификата ключа проверки электронной подписи |
} | |||||
Vat { | |||||
amount | number | float | ^[0-9]+(.[0-9]+)?$ | optional | Сумма НДС, |
rate | string | string | ^[0-9]{0,2}$ | optional | Ставка НДС, |
type | string | string | ^(INCLUDED|NO_VAT|MANUAL)$ | required | Способ расчета НДС. INCLUDED - НДС включен в сумму платежа NO_VAT - не облагается НДС MANUAL - ручной ввод НДС |
} |
POST /fintech/api/v1/payment-requests/outgoing HTTP/1.1
Authorization: Bearer xbgDF3brf456ghi789jkl012mNKFtEpqr678
Content-Type: application/json
{
"acceptanceTerm": "1",
"amount": 100.00,
"date": "2023-11-24",
"deliveryKind": "электронно",
"digestSignatures": [
{
"base64Encoded": "HlaeIHXXEcGT1bFxo1NlpAzpr+kJ2IQrcxVdvDTep6xjsmD1FDb+6NIyLT+/T24S0mPfVCU75sieOMt71TBS7w==",
"certificateUuid": "22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6"
}
],
"externalId": "88ffd6c6-61d8-4269-ab1c-8c6ba21eb257",
"number": "1",
"operationCode": "02",
"payeeAccount": "40702810006000001792",
"payeeBankBic": "048073601",
"payeeBankCorrAccount": "30101810300000000601",
"payeeInn": "7379190522",
"payeeName": "ТЕСТ9036",
"payerAccount": "40702810506000002149",
"payerBankBic": "048073601",
"payerBankCorrAccount": "30101810300000000601",
"payerInn": "6376615662",
"payerName": "ООО_Автотест_Клиент_ЕКС_20231027092414",
"paymentCondition": "2",
"priority": "5",
"purpose": "Оплата_по_договору_№123_от_13.04.2024._НДС_20%-20.00_рублей_включен_в_сумму.",
"vat": {
"amount": 20,
"rate": "20",
"type": "INCLUDED"
},
"voCode": "61150"
}
digestSignatures
Формат дайджеста
- Формат
- Пример
Наименование поля | Описание поля | Пример |
---|---|---|
acceptanceTerm | Срок акцепта | 5 |
amount | Сумма платежа | 100.01 |
date | Дата составления документа | 31.12.2018 |
externalId | Идентификатор документа, присвоенный сервисом | 22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6 |
operationCode | Код операции | 02 |
payeeAccount | Номер счета получателя | 40802810600000200000 |
payeeBankBic | БИК получателя | 044525225 |
payeeBankCorrAccount | Корсчет банка получателя | 30101810400000000225 |
payeeInn | ИНН получателя | 0452566242 |
payeeName | Полное наименование получателя платежа | Общество с ограниченной ответственностью "Получатель" |
payerAccount | Счет плательщика | 40802810600000200000 |
payerBankBic | БИК плательщика | 044525225 |
payerBankCorrAccount | Корсчет банка плательщика | 30101810400000000225 |
payerInn | ИНН плательщика | 8554122325 |
payerName | Полное наименование плательщика | Общество с ограниченной ответственностью "Клиент" |
paymentCondition | Условие оплаты (1/2) | 1 |
priority | Очередность платежа | 5 |
purpose | Назначение платежа | Оплата по договору №123 от 13.04.2024. НДС 20% - 20.00 рублей включен в сумму. |
acceptanceTerm=5
amount=100.01
date=2018-12-31
externalId=22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6
operationCode=02
payeeAccount=40802810600000200000
payeeBankBic=044525225
payeeBankCorrAccount=30101810400000000225
payeeInn=0
payeeName=Общество с ограниченной ответственностью "Получатель"
payerAccount=40802810600000200000
payerBankBic=044525225
payerBankCorrAccount=30101810400000000225
payerInn=0
payerName=Общество с ограниченной ответственностью "Клиент"
paymentCondition=1
priority=5
purpose=Назначение платежа
Responses
201 (Created)
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
PaymentRequestOut { | |||
acceptanceTerm | string | optional | Срок для акцепта (поле 36). Указывается количество дней для получения акцепта плательщика, |
amount | number | required | Сумма платежа, |
bankComment | string | optional | Банковский комментарий к статусу документа, |
bankStatus | string | optional | Статус документа, |
crucialFieldsHash | string | optional | Hash от ключевых полей документа, |
date | string | required | Дата составления документа, |
deliveryKind | string | optional | Вид платежа: электронно, срочно Если не заполнено или 0, то будет присвоено значение "электронно", |
digestSignatures | array[Signature] | optional | Электронные подписи по дайджесту документа, |
externalId | string | required | Идентификатор документа, присвоенный партнером, |
number | string | optional | Номер документа, |
operationCode | string | required | Код операции, |
payeeAccount | string | required | Счет получателя платежа, |
payeeBankBic | string | required | БИК получателя платежа, |
payeeBankCorrAccount | string | required | Корсчет банка получателя платежа, |
payeeInn | string | optional | ИНН получателя платежа, |
payeeName | string | required | Полное наименование получателя платежа, |
payerAccount | string | required | Счет плательщика, |
payerBankBic | string | required | БИК банка плательщика, |
payerBankCorrAccount | string | required | Корсчет банка плательщика, |
payerInn | string | required | ИНН плательщика, |
payerName | string | required | Полное наименование плательщика, |
paymentCondition | string | required | Условие оплаты (поле 35), |
priority | string | required | Очередность платежа, |
purpose | string | required | Назначение платежа, |
vat | Vat | required | Данные НДС, |
voCode | string | required | Код вида валютной операции |
} | |||
Signature { | |||
base64Encoded | string | optional | Значение электронной подписи (ЭП), закодированное в Base64, |
certificateUuid | string | optional | Уникальный идентификатор сертификата ключа проверки электронной подписи |
} | |||
Vat { | |||
amount | number | optional | Сумма НДС, |
rate | string | optional | Ставка НДС, |
type | string | required | Способ расчета НДС |
} |
HTTP/1.1 201 Created
Content-Type: application/json;charset=UTF-8
{
"number": "1",
"date": "2023-11-24",
"bankStatus": "CREATED",
"bankComment": null,
"externalId": "88ffd6c6-61d8-4269-ab1c-8c6ba21eb257",
"amount": "100.00",
"operationCode": "02",
"deliveryKind": "электронно",
"digestSignatures": [
{
"base64Encoded": "HlaeIHXXEcGT1bFxo1NlpAzpr+kJ2IQrcxVdvDTep6xjsmD1FDb+6NIyLT+/T24S0mPfVCU75sieOMt71TBS7w==",
"certificateUuid": "22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6"
}
],
"priority": "5",
"voCode": null,
"purpose": "Оплата заказа №123. НДС 20%",
"payerName": "ООО_Автотест_Клиент_ЕКС_20231027092414",
"payerInn": "6376615662",
"payerAccount": "40702810506000002149",
"payerBankBic": "048073601",
"payerBankCorrAccount": "30101810300000000601",
"payeeName": "ТЕСТ9036",
"payeeInn": "7379190522",
"payeeAccount": "40702810006000001792",
"payeeBankBic": "048073601",
"payeeBankCorrAccount": "30101810300000000601",
"crucialFieldsHash": "0c78790070b8487a4d73151bdab59899",
"vat": {
"type": "INCLUDED",
"rate": "20",
"amount": "20.00"
},
"paymentCondition": "1"
}
202 (Accepted)
Cause | Message | Description |
---|---|---|
WORKFLOW_FAULT | Документ сохранен, но обработка ЭП или принятие документа завершились ошибкой. ЭП не может быть принята | Неизвестный идентификатор сертификата. Проверьте корректность отправленной ЭП в запросе. Возможно, была отправлена ЭП с типом "Первая подпись" или "Вторая подпись". Для случаев, когда используется ЭП подписантов с типом "Первая подпись" или "Вторая подпись" для принятия документа в обработку требуется передать в запросе данные обеих подписей. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
ResourceFault { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки (UUID), |
message | string | optional | Сообщение, |
checks | array[Check] | optional | Список проверок, приведших к ошибке, |
fieldNames | array[string] | optional | Названия полей с некорректным значением (только для VALIDATION_FAULT) |
} | |||
Check { | |||
level | string | optional | Уровень результата = ['ERROR', 'WARNING'], |
message | string | optional | Сообщение, |
fields | array[string] | optional | Названия полей (при наличии связи с моделью) |
} |
HTTP/1.1 202 Accepted
Content-Type: application/json;charset=UTF-8
{
"cause": "WORKFLOW_FAULT",
"referenceId": "73d032bd-e5ca-486b-8978-4d430af67320",
"message": "Документ сохранен, но обработка ЭП или принятие документа завершились ошибкой. ЭП не может быть принята",
"checks": [
{
"level": "ERROR",
"message": "Неизвестный идентификатор сертификата: 22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6",
"fields": []
}
],
"fieldNames": null
}
400 (Bad request)
Cause | Message | Description |
---|---|---|
DESERIALIZATION_FAULT | Неверный формат запроса | Данные в request указаны в неправильном формате. Атрибуты request, в которых найдены ошибки, указаны в responce в массиве fields с описанием проблемы. Описание типа, формата и regexp атрибутов находится в request ресурса. Скорректируйте заполнение атрибутов и повторите запрос. |
WORKFLOW_FAULT | Невозможно идентифицировать организацию плательщика | Проверьте корректность указанных реквизитов плательщика. |
Невозможно идентифицировать банк получателя по указанным номеру БИК и корреспондентскому счету | Проверьте корректность указанных реквизитов получателя платежа - атрибуты payeeBankBic и payeeBankCorrAccount | |
Документ с таким externalId уже существует в системе | Используется externalId, который уже есть в системе (дубль). Сгенерируйте новый externalId и повторите запрос. | |
VALIDATION_FAULT | Ошибка валидации | Данные не соответствуют требованиям валидации. Сведения о некорректных атрибутах request содержатся в массивах fieldNames и checks. Подробные требования к атрибутам описаны в request ресурса, включая типы, форматы и регулярные выражения. Необходимо скорректировать заполнение атрибутов и повторить запрос. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
ResourceFault { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки (UUID), |
message | string | optional | Сообщение, |
checks | array[Check] | optional | Список проверок, приведших к ошибке, |
fieldNames | array[string] | optional | Названия полей с некорректным значением (только для VALIDATION_FAULT) |
} | |||
Check { | |||
level | string | optional | Уровень результата = ['ERROR', 'WARNING'], |
message | string | optional | Сообщение, |
fields | array[string] | optional | Названия полей (при наличии связи с моделью) |
} |
HTTP/1.1 400 Bad Request
Content-Type: application/json;charset=UTF-8
{
"cause": "DESERIALIZATION_FAULT",
"referenceId": "4a0e6754-ad22-4d7d-ac82-810afd08b5b2",
"message": "Неверный формат запроса",
"checks": [
{
"level": "ERROR",
"message": "Cannot deserialize instance of `java.util.ArrayList<Signature>` out of START_OBJECT token",
"fields": [
"digestSignatures"
]
}
],
"fieldNames": [
"digestSignatures"
]
}
401 (Unauthorized Error)
Cause | Message | Description |
---|---|---|
UNAUTHORIZED | accessToken not found by value =хххххххх-хххх-хххх-хххх-хххххххххххх-х | Указан некорректный или просроченный access_token. Используйте refresh_token для обновления access_token и повторите запрос. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки, |
message | string | optional | Сообщение, |
} |
HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=UTF-8
{
"cause": "UNAUTHORIZED",
"referenceId": "014ec3a1-3e41-4805-9e22-d07947b012af",
"message": "accessToken not found by value = 3513f959-bbd5-490a-9f9f-67fb7380fae5-2"
}
403 (Forbidden)
Cause | Message | Description |
---|---|---|
ACTION_ACCESS_EXCEPTION | Операция не может быть выполнена: доступ к ресурсу запрещен | Используемый в запросе access_token не имеет разрешения на доступ к нужному сервису Sber API. В ссылке авторизации СберБизнес ID, в параметре scope, не указана операция PAYMENT_REQUEST_OUT . Необходимо добавить эту операцию в scope. Пользователю потребуется пройти авторизацию заново. Вы получите новые токены access_token и refresh_token. Сделайте повторный запрос с новым access_token. |
Вы использовали access_token пользователя Клиента, а не пользователя вашей организации. Нужно использовать access_token пользователя вашей организации. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки, |
message | string | optional | Сообщение, |
} |
HTTP/1.1 403 Forbidden
Content-Type: application/json;charset=UTF-8
{
"cause": "ACCESS_EXCEPTION",
"referenceId": "74cbc645-297c-451d-af9c-97c68c2c3560",
"message": "Получение информации о подключенных клиентах возможно только по собственной организации"
}
429 (Too Many Requests)
Cause | Message | Description |
---|---|---|
TOO_MANY_REQUESTS | Превышен лимит запросов. Повторите операцию позже. | Количество запросов к данному методу за ограниченное время превысило допустимое значение. Пользователю необходимо повторить запрос позднее |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки (UUID), |
message | string | optional | Сообщение, |
} |
HTTP/1.1 429 Too Many Requests
Content-Type: application/json;charset=UTF-8
{
"cause": " TOO_MANY_REQUESTS ",
"referenceId": "5650c1e4-5039-4038-8cad-afab64003f61",
"message": " Превышен лимит запросов. Повторите операцию позже"
}
500 (Internal Server Error)
Cause | Message | Description |
---|---|---|
UNKNOWN_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки, |
message | string | optional | Сообщение, |
} |
HTTP/1.1 500 Internal Server Error
Content-Type: application/json;charset=UTF-8
{
"cause": "UNKNOWN_EXCEPTION",
"referenceId": "9e209109-4b0d-408c-a2fd-e1983c20a65d",
"message": "Внутренняя ошибка сервера"
}
503 (Service Temporarily Unavailable)
Cause | Message | Description |
---|---|---|
UNAVAILABLE_RESOURCE_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки, |
message | string | optional | Сообщение, |
} |
HTTP/1.1 503 Service Temporarily Unavailable
Content-Type: application/json;charset=UTF-8
{
"cause": "UNAVAILABLE_RESOURCE_EXCEPTION",
"referenceId": "9e209109-4b0d-408c-a2fd-e1983c20a67d",
"message": "Внутренняя ошибка сервера"
}
Получение статуса платежного требования
/fintech/api/v1/payment-requests/outgoing/{externalId}/state
Ресурс позволяет получить статус ранее отправленного платежного требования.
Для получения статуса необходимо отправить GET-запрос /fintech/api/v1/payment-requests/outgoing/{externalId}/state
с токеном доступа (access_token) пользователя собственной организации в параметре Authorization заголовка и идентификатор документа (externalId) в query-параметре запроса.
В параметре scope ссылки авторизации пользователя вашей компании должен быть указан сервис PAYMENT_REQUEST_OUT
для получения доступа к этому ресурсу.
Для обращения к ресурсу необходимо отправлять запрос на:
- Тестовый контур
https://iftfintech.testsbi.sberbank.ru:9443
- Промышленный контур
https://fintech.sberbank.ru:9443
Request
/fintech/api/v1/payment-requests/outgoing/{externalId}/state
- Модель
- Пример
Наименование | Тип | Формат | Regexp | Обязательность | Описание |
---|---|---|---|---|---|
HEADER | |||||
Authorization | string | string | ^[a-zA-Z0-9]{38}$ | required | Access token пользователя, полученный через SSO. |
PATH PARAMETERS | |||||
externalId | string | UUID | ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ | required | Идентификатор документа, присвоенный вами при создании исходящего платежного требования |
GET /fintech/api/v1/payment-requests/outgoing/db7d9e97-fc35-456b-a8a0-b864b0ee6dfb/state HTTP/1.1
Authorization: Bearer xbgDF3brf456ghi789jkl012mNKFtEpqr678
Responses
200 (OK)
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
PaymentDocState { | |||
bankComment | string | optional | Банковский комментарий к статусу документа, |
bankStatus | string | optional | Статус документа, |
channelInfo | string | optional | Комментарий, специфичный для документа, полученного по данному каналу, |
crucialFieldsHash | string | optional | Hash от ключевых полей документа |
} |
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"bankStatus": "CREATED",
"bankComment": null,
"channelInfo": null,
"crucialFieldsHash": "0c78790070b8487a4d73151bdab59899"
}
400 (Bad request)
Cause | Message | Description |
---|---|---|
DESERIALIZATION_FAULT | Неверный формат запроса | Данные в request указаны в неправильном формате. Атрибуты request, в которых найдены ошибки, указаны в responce в массиве fields с описанием проблемы. Описание типа, формата и regexp атрибутов находится в request ресурса. Скорректируйте заполнение атрибутов и повторите запрос. |
VALIDATION_FAULT | Ошибка валидации | Данные не соответствуют требованиям валидации. Сведения о некорректных атрибутах request содержатся в массивах fieldNames и checks. Подробные требования к атрибутам описаны в request ресурса, включая типы, форматы и регулярные выражения. Необходимо скорректировать заполнение атрибутов и повторить запрос. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
ResourceFault { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки (UUID), |
message | string | optional | Сообщение, |
checks | array[Check] | optional | Список проверок, приведших к ошибке, |
fieldNames | array[string] | optional | Названия полей с некорректным значением (только для VALIDATION_FAULT) |
} | |||
Check { | |||
level | string | optional | Уровень результата = ['ERROR', 'WARNING'], |
message | string | optional | Сообщение, |
fields | array[string] | optional | Названия полей (при наличии связи с моделью) |
} |
HTTP/1.1 400 Bad Request
Content-Type: application/json;charset=UTF-8
{
"cause": "VALIDATION_FAULT",
"referenceId": "0d6a80ba-7d35-4858-8443-9a77039ad9f1",
"message": "Параметр \"externalId\" не соответствует регулярному выражению: [0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
"checks": [],
"fieldNames": null
}
401 (Unauthorized Error)
Cause | Message | Description |
---|---|---|
UNAUTHORIZED | accessToken not found by value =хххххххх-хххх-хххх-хххх-хххххххххххх-х | Указан некорректный или просроченный access_token. Используйте refresh_token для обновления access_token и повторите запрос. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки, |
message | string | optional | Сообщение, |
} |
HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=UTF-8
{
"cause": "UNAUTHORIZED",
"referenceId": "014ec3a1-3e41-4805-9e22-d07947b012af",
"message": "accessToken not found by value = 3513f959-bbd5-490a-9f9f-67fb7380fae5-2"
}
403 (Forbidden)
Cause | Message | Description |
---|---|---|
ACTION_ACCESS_EXCEPTION | Операция не может быть выполнена: доступ к ресурсу запрещен | Используемый в запросе access_token не имеет разрешения на доступ к нужному сервису Sber API. В ссылке авторизации СберБизнес ID, в параметре scope, не указана операция PAYMENT_REQUEST_OUT . Необходимо добавить эту операцию в scope. Пользователю потребуется пройти авторизацию заново. Вы получите новые токены access_token и refresh_token. Сделайте повторный запрос с новым access_token. |
Вы использовали access_token пользователя Клиента, а не пользователя вашей организации. Нужно использовать access_token пользователя вашей организации. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки, |
message | string | optional | Сообщение, |
} |
HTTP/1.1 403 Forbidden
Content-Type: application/json;charset=UTF-8
{
"cause": "ACTION_ACCESS_EXCEPTION",
"referenceId": "7535c2bb-7706-4b16-9882-d68aedbf2fef",
"message": "Операция не может быть выполнена: доступ к ресурсу запрещен"
}
404 (Not found)
Cause | Message | Description |
---|---|---|
NOT_FOUND | Документ с указанным ID не найден |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки, |
message | string | optional | Сообщение, |
} |
HTTP/1.1 404 Not Found
Content-Type: application/json;charset=UTF-8
{
"cause": "NOT_FOUND",
"referenceId": "1bd1b8b9-1bd3-4159-9909-d30536211114",
"message": "Документ с указанным ID не найден"
}
429 (Too Many Requests)
Cause | Message | Description |
---|---|---|
TOO_MANY_REQUESTS | Превышен лимит запросов. Повторите операцию позже. | Количество запросов к данному методу за ограниченное время превысило допустимое значение. Пользователю необходимо повторить запрос позднее |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки (UUID), |
message | string | optional | Сообщение, |
} |
HTTP/1.1 429 Too Many Requests
Content-Type: application/json;charset=UTF-8
{
"cause": " TOO_MANY_REQUESTS ",
"referenceId": "5650c1e4-5039-4038-8cad-afab64003f61",
"message": " Превышен лимит запросов. Повторите операцию позже"
}
500 (Internal Server Error)
Cause | Message | Description |
---|---|---|
UNKNOWN_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки, |
message | string | optional | Сообщение, |
} |
HTTP/1.1 500 Internal Server Error
Content-Type: application/json;charset=UTF-8
{
"cause": "UNKNOWN_EXCEPTION",
"referenceId": "9e209109-4b0d-408c-a2fd-e1983c20a65d",
"message": "Внутренняя ошибка сервера"
}
503 (Service Temporarily Unavailable)
Cause | Message | Description |
---|---|---|
UNAVAILABLE_RESOURCE_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки, |
message | string | optional | Сообщение, |
} |
HTTP/1.1 503 Service Temporarily Unavailable
Content-Type: application/json;charset=UTF-8
{
"cause": "UNAVAILABLE_RESOURCE_EXCEPTION",
"referenceId": "9e209109-4b0d-408c-a2fd-e1983c20a67d",
"message": "Внутренняя ошибка сервера"
}
Статусы платежных требований
bankStatus (string)
Код состояние документа | Наименование статуса | Назначение кода состояния |
---|---|---|
Промежуточные статусы/Продолжать опрашивать | ||
ACCEPTED | Принят | Электронный документ принят на стороне Банка |
ACCEPTED_BY_ABS | Принят АБС | Электронный документ был принят к обработке в АБС Банка |
CREATED | Создан | Документ записан в БД, проверки не выполнялись |
DELAYED | Приостановлен | Обработка электронного документа была приостановлена |
DELIVERED | Доставлен | Запрос доставлен в ДБО и взят в обработку |
EXPORTED | Выгружен | Электронный документ выгружен Банком в АБС |
FRAUDALLOW | Одобрен ФРОД | Проверка во ФРОДЕ прошла успешно, переход на «Принят» |
FRAUDDENY | Отвергнут ФРОД | Документ отказан на основе проверки в АС Fraud-мониторинг, переходим в «Отвергнут банком» |
FRAUDREVIEW | На проверке у специалиста Банка | Со стороны ФРОД-анализа получен статус документа «На проверке у специалиста Банка» |
FRAUDSENT | Отправлен во ФРОД | Документ отправлен на проверку в АС Fraud-мониторинг |
FRAUDSMS | Требуется подтверждение sms-паролем | Со стороны ФРОД-анализа получен статус документа «Требуется подтверждение sms-паролем» |
PARTSIGNED | Частично подписан | ЭД подписан частью подписей, входящих в предусмотренный для данного документа комплект подписей |
PROCESSING | В обработке | Клиент сформировал «Заявление об акцепте/частичном акцепте/отказе от акцепта» |
REQUESTED_RECALL | Запрошен отзыв | Документ отозван |
SENDED_TO_PAYER | Отправлен плательщику | Документ отправлен плательщику, который является клиентом Сбербанка |
SIGNED | Подписан | ЭД подписан предусмотренным для него комплектом подписей |
SUBMITTED | Представлен | Электронный документ принят ВК |
Окончательные статусы/Прекратить опрос | ||
CHECKERROR | Ошибка контроля | ЭД сформирован, но при сохранении не прошел проверку корректности заполнения полей и сохранен с имеющимися в нем ошибками |
CHECKERROR_BANK | Ошибка контроля, Банк | ЭД сформирован, но при сохранении не прошел проверку корректности заполнения полей и сохранен с имеющимися в нем ошибками |
DECLINED_BY_PAYER | Отвергнут плательщиком | Документ отвергнут плательщиком |
INVALIDEDS | ЭПАСП не верна | Проверка ЭП под ЭД на стороне Банка дала отрицательный результат |
RECALL | Отозван | Электронный документ был отозван Клиентом по запросу |
REFUSED_BY_RZK | Отказан контролирующей организацией | ЭД не прошел проверки контролирующей организацией |
REFUSEDBYBANK | Отвергнут банком или Отклонен банком | Электронный документ отвергнут банком |
REQUISITEERROR | Ошибка реквизитов | В ЭД указаны ошибочные реквизиты |
REFUSEDBYABS | Отказан АБС | ЭД не прошел проверки в АБС |
NONEACCEPTANCE | Отказ от акцепта | Получатель отказался от акцепта. |
Окончательные(Успешные) статусы/Прекратить опрос | ||
IMPLEMENTED | Исполнен | Электронный документ исполнен Банком |
SENDED_TO_PAYER | Отправлен плательщику | Документ отправлен плательщику, который не является клиентом Сбербанка |
Дополнительная информация
Назначение платежа
Назначение должно раскрывать экономический смысл платежа.
- Сведения должны быть лаконичными — у поля есть ограничения по знакам 210 символов.
- В назначении необходимо указать реквизиты документа, по которому вы осуществляете платеж, например, номер договора или счета.
- Рекомендуем указывать конкретный предмет оплаты.
- Если платеж с НДС, необходимо прописать точную сумму налога.
Ниже подробнее рассказали о формировании информации об НДС в назначении платежа.
Рекомендуемый вариант заполнения:
Оплата по договору [номер договора] от [дата договора]. НДС [ставка НДС]% - [сумма НДС] рубля [способ расчета НДС]. [Любая ваша информация]
При создании ИПТ с помощью ресурса /fintech/api/v1/payment-requests/outgoing
в рамках сервиса Корпоративные подписки
- Где [номер договора] соответствует contractNumber, который указывали при формировании заявления на ЗДА с помощью ресурса
/fintech/api/v1/acceptance-advances
- Где [дата договора] это дата в формате DD.MM.YYYY (ГОСТ Р 7.0.97-2016 (п. 5.10)), совпадающая с датой указанной в атрибуте contractDate при формировании заявления на ЗДА с помощью ресурса
/fintech/api/v1/acceptance-advances
. - [ставка НДС], [сумма НДС] и [способ расчета НДС] вы указываете в объекте vat (НДС).
- Если необходимо дополнить назначение, поставьте точку после блока с НДС и укажите свою информацию
Параметры НДС
Чтобы все работало правильно, нужно передать такие параметры:
- Если НДС не указан, то по умолчанию будут использованы эти значения:Важно: в поле «Назначение платежа» обязательно укажите
"vat": {
"type": "NO_VAT",
"rate": "0",
"amount": "0.00"
}НДС не облагается
. - Если выбрали «type» —
INCLUDED
(НДС включен в сумму платежа), то в поле «amount» укажите сумму НДС. Значение «rate» должно быть 10 или 20. В поле «Назначение платежа» обязательно укажите посчитанную сумму НДС. Пример правильного заполнения:НДС 10% — 100.63 рубля
(пробел обозначается нижним подчеркиванием, символ не ставится). Если процентное значение не указано, то дефис перед суммой ставить не нужно:НДС 100.63 рубля
. - Если выбрали «type» —
MANUAL
(ввод НДС вручную), то поле «amount» заполнять необязательно, но по умолчанию сумма НДС будет равна нулю. Если же поле «amount» заполнено, то укажите нужную сумму НДС в соответствии с форматом. Если процентное значение не указано, то дефис перед суммой ставить не нужно:НДС 100.63 рубля
.
FAQ
Будет ли исполнено Банком платежное требование, отправленное выходные или праздничные дни?
В выходные и праздничные дни платежи исполняются, если вы подключили расширенный режима счета. В него входят:
- переводы на счета корпоративных клиентов и физических лиц внутри ПАО Сбербанк;
- переводы в пользу контрагентов в других банках (в том числе в бюджет и на счета физических лиц). Инструкция по подключению и отключению расширенного режима счета на странице помощи СберБизнеса.
Что происходит, если денежных средств на счете клиента недостаточно?
В этом случае платежное требование будет отклонено банком (Банк осуществляет возврат Распоряжения без исполнения). Ответ на запрос будет содержать окончательный статус `REFUSEDBYBANK'. При этом опрос статуса платежного требования следует прекратить и попробовать создать новое платежное требование спустя некоторое время.
Может ли клиент отключить подписку?
Клиент может отменить подписку в СберБизнесе, отозвав согласие на заранее данный акцепт. В таком случае при вызове ресурса /fintech/api/v1/partner-info/advance-acceptances
в поле "active" вы получите значение "false".