Сервис «Корпоративные подписки»
Информация о сервисе
Корпоративные подписки – это сервис для организации расчетов с юридическими лицами (ЮЛ) и индивидуальными предпринимателями (ИП), который позволяет получать сведения о подписчиках и безакцептно списывать денежные средства за предоставление услуг или товаров.
Ядро механизма сервиса составляют платежные требования, которые используются в качестве платежных документов для расчетов между компаниями.
Платежное требование
Платежное требование - это документ, используемый для безналичных расчетов между юридическими лицами, в котором поставщик предъявляет должнику претензию за неуплату задолженности по договору. Банк на основании этого документа списывает сумму задолженности со счета плательщика в пользу получателя.
Основное различие между платежным требованием и платежным поручением заключается в инициаторе платежа. В платежном поручении инициатором является владелец счета, тогда как в платежном требовании - получатель денег (кредитор, поставщик, продавец или исполнитель услуг). Кредитор оформляет платежное требование и направляет его в банк для исполнения. Часто для выполнения платежного требования требуется акцепт (согласие) плательщика.
Платежные требования могут быть с предварительным акцептом или без него. Акцепт - это согласие должника оплатить задолженность в определенный срок. Если акцепт не предусмотрен договором, то срок составляет 5 рабочих дней. Без акцепта банк имеет право списать деньги с расчетного счета клиента в определенных случаях, например, по решению суда на основании исполнительных документов.
Другая часть механизма построена на предварительном акцепте (у себя мы его называем Заранее данный акцепт - ЗДА) на списание денежных средств со счета подписчика.
До начала разработки интеграции с сервисом потребуется:
- Заключить договор с Банком на использование сервиса "Корпоративные подписки".
- Завершить интеграцию со СберБизнес ID.
Без сервиса СберБизнес ID настроить работу "Корпоративные подписки" невозможно.
Терминология
- Заранее данный акцепт (далее по тексту - ЗДА) – временное согласие Клиента на списание денежных средств в счет оплаты предоставленных услуг или товаров по подписке. Наличие Заранее данного акцепта позволяет по запросу от вашей компании Банку списывать средства со счета Клиента без дополнительного согласования.
- Оформить Подписку – подписать Заявление на Заранее данный акцепт.
- Исходящее Платежное требование (далее по тексту - ИПТ) – расчетный документ, на основании которого Банк списывает денежные средства со счета Клиента-подписчика.
- Digest ИПТ – набор значимых полей платежного документа, который подписывается электронной подписью (ЭП).
Схема работы сервиса
- Графическое описание
- Текстовое описание
Шаг | Что делаем | Подробности |
---|---|---|
1 | Предложите Клиенту авторизоваться через СберБизнес ID | Подробно о подключении сервиса СберБизнес ID рассказали в соответствующем разделе документации. |
2 | Предложите оформить Подписку | С помощью access_token пользователя Клиента и ресурса /v1/acceptance-advances создайте черновик заявления на ЗДА в СберБизнес Клиента. |
3 | Перенаправьте Клиента на страницу подписания | С использованием идентификатора созданного черновика заявления ЗДА из шага №2 вы формируете ссылку для подписания документа и перенаправляете по ней пользователя Клиента. Перейдя по ссылке в сервис, пользователь пройдет аутентификацию, выберет счет списания и подпишет черновик ЗДА для исполнения Банком. Ссылка переадресации выглядит следующим образом: {контур Банка}/ic/dcb/index.html#/acceptance-advance-creator/{externalid}?backUrl={backUrl} Дополнительная информация о формировании ссылки. |
4 | Проверьте статус оформления Подписки | С помощью access_token пользователя Клиента и ресурса /v1/acceptance-advances/{externalId}/state вы получите статус заявления ЗДА. Вы можете разработать механизм проверки статуса и реакцию Платформы на каждый из них.Важно: ЗДА вступает в силу на следующий рабочий день с даты его подписания. |
5 | Проверьте подписку Клиента | С помощью access_token пользователя Клиента и ресурса /v1/acceptance-advances/{externalId} вы получите полные данные ЗДА. Этот шаг позволит вам разработать механизм проверки неизменности подписанного документа путем сравнения отправленных параметров ЗДА в шаге №2 с результатами из ответа на данном шаге. |
6 | Получите access_token вашей компании | Его получение происходит также через СберБизнес ID, только сотрудником вашей компании. Он будет использоваться для запросов по созданию и проверке статуса ИПТ в следующих шагах. |
7 | Проверьте подписку Клиента | С помощью access_token пользователя Клиента и ресурса /v1/acceptance-advances/{externalId}/state запросите статус ЗДА и убедитесь, что у вас сохранилась возможность без акцептного списания платы за подписку.Если плату за подписку взимаете спустя некоторое время или повторно за следующий расчетный период, то данный шаг рекомендуем регулярно выполнять до перехода к шагу создания ИПТ. |
8 | Спишите плату за подписку | С помощью access_token пользователя вашей компании и ресурса /v1/payment-requests/outgoing необходимо сформировать и отправить в Банк подписанное ИПТ.Чтобы Банк мог начать обрабатывать платежный документ, документ должен быть подписан ЭП уполномоченным сотрудником, имеющим право подписи от лица компании. Подробно о работе с ЭП рассказали в соответствующем разделе документации. Важно: Владелец access_token пользователя вашей компании должен совпадать с владельцем ЭП, которую будете использовать для подписания ИПТ. |
9 | Проверьте статус оплаты | С помощью access_token пользователя вашей компании и ресурса /v1/payment-requests/outgoing/{externalId}/state вы получите статус платежного требования. Вы можете разработать механизм проверки статуса оплаты и реакцию Платформы на каждый из статусов. |
Варианты реализации
В рамках Платформы вы самостоятельно разрабатываете ролевую модель и настраиваете права доступа к функциональности.
Ниже, в качестве примера, приведена диаграмма вариантов использования:
- Предложите Клиенту оформить Подписку
Оформить подписку
Для наличия возможности без акцептного списания денежных средств со счета Клиента потребуется получить от него согласие на такие списания. Согласие можно получить при оформлении Подписки Клиентом. Клиент становится подписчиком после заключения договора с вашей компанией или акцепта Оферты вашей Платформы и оформления ЗДА на списание платы за подписку на основании заключенного договора/акцепта Оферты.
Шаги
- Получить access_token Клиента
- Сформировать черновик ЗДА
- Подписать черновик ЗДА
- Проверить статус подписания ЗДА
- Проверить подписанный ЗДА
Участники usecase
- Клиент - представитель ЮЛ/ИП, который от лица своей компании приобретает услуги или товары вашей компании;
- Платформа - любой web-ресурс (сайт, интернет-магазин, мобильное приложение и т.д.), который Вы используете рамках клиентского пути Клиентов;
- Банк - в контексте данного usecase представляет из себя методы и ресурсы Sber API, к которым обращается Платформа.
Предусловия
- Клиент находится на Платформе
- У Клиента до начала сценария была возможность ознакомиться с тарифами подписки вашей Платформы
Постусловия
- Платформа получила подтверждение оформления ЗДА
Используемые ресурсы
№ | Метод | Точка вызова | Описание | Операция в scope | Шаг в схеме |
---|---|---|---|---|---|
1 | /v2/oauth/authorize | Получение кода авторизации | openid | 1. Получить access_token | |
2 | /v2/oauth/token | Получение токена доступа | openid | 1. Получить access_token | |
3 | /v2/oauth/user-info | Получение информации | openid | 1. Получить access_token | |
4 | /v1/acceptance-advances | Создание черновика заявления ЗДА | ACCEPTANCE_ADVANCE | 2. Сформировать черновик ЗДА | |
5 | /v1/acceptance-advances/{externalId}/state | Получение статуса заявления ЗДА | ACCEPTANCE_ADVANCE | 4. Проверить статус подписания ЗДА | |
6 | /v1/acceptance-advances/{externalId} | Получение заявления ЗДА | ACCEPTANCE_ADVANCE | 5. Проверить подписанный ЗДА |
- Спишите оплату с Клиента за использование вашего сервиса
Списание платы за подписку
Шаги
- Получить access_token вашей компании
- Проверить подписку Клиента
- Списать плату за подписку
- Проверить статус оплаты
Участники usecase
- Платформа - любой web-ресурс (сайт, интернет-магазин, мобильное приложение и т.д.), который Вы используете рамках клиентского пути Клиентов;
- Банк - в контексте данного usecase представляет из себя методы и ресурсы Sber API, к которым обращается Платформа.
Предусловия
- Отсутствуют
Постусловия
- Платформа получила подтверждение исполнения ИПТ
Используемые ресурсы
№ | Метод | Точка вызова | Описание | Операция в scope | Шаг в схеме |
---|---|---|---|---|---|
1 | /v2/oauth/authorize | Получение кода авторизации | openid | 1. Получить access_token | |
2 | /v2/oauth/token | Получение токена доступа | openid | 1. Получить access_token | |
3 | /v2/oauth/user-info | Получение информации | openid | 1. Получить access_token | |
4 | /v1/acceptance-advances/{externalId}/state | Получение статуса заявления ЗДА | ACCEPTANCE_ADVANCE | 2. Проверить подписку Клиента | |
5 | /v1/payment-requests/outgoing | Создание платежного требования | PAYMENT_REQUEST_OUT | 3. Списать плату за подписку | |
6 | /v1/payment-requests/outgoing/{externalId}/state | Получение статуса платежного требования | PAYMENT_REQUEST_OUT | 4. Проверить статус оплаты |
Переадресация на заявление ЗДА
Чтобы Банк начал обработку заявления ЗДА, заявление должно быть подписано. В клиентском пути сервиса черновик заявления ЗДА формируется в клиентской части СберБизнес Клиента, поэтому и его должен Клиент.
Для реализации бесшовного перехода в клиентскую часть СберБизнес необходима переадресация Клиента. Перейдя по ссылке в сервис, клиент пройдет аутентификацию, выберет счет списания и подпишет черновик заявления ЗДА для его исполнения Банком.
- Модель ссылки
- Пример
Ссылка переадресации выглядит следующим образом:
{контур Банка}/ic/dcb/index.html#/acceptance-advance-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 нужно закодировать URLEncode; - Если не указать backUrl в ссылке, пользователи не смогут после подписания вернуться на Платформу; - Если backUrl будет отличаться от адреса вашей платформы, который указали при регистрации в Банке, то при возврате клиента на backUrl он будет видеть ошибку. |
https://sbi.sberbank.ru:9443/ic/dcb/index.html#/acceptance-advance-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 | Уникальный идентификатор ошибки (UUID), |
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 | Уникальный идентификатор ошибки (UUID), |
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 | Уникальный идентификатор ошибки (UUID), |
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 | Уникальный идентификатор ошибки (UUID), |
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-Fa-f]{8})-([0-9A-Fa-f]{4})-([0-9A-Za-z]{4})-([0-9A-Fa-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 | Уникальный идентификатор ошибки (UUID), |
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 | Уникальный идентификатор ошибки (UUID), |
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 | Уникальный идентификатор ошибки (UUID), |
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 | Уникальный идентификатор ошибки (UUID), |
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 | Уникальный идентификатор ошибки (UUID), |
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-Fa-f]{8})-([0-9A-Fa-f]{4})-([0-9A-Za-z]{4})-([0-9A-Fa-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 | required | Дата документа, |
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 | Уникальный идентификатор ошибки (UUID), |
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 | Уникальный идентификатор ошибки (UUID), |
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 | Уникальный идентификатор ошибки (UUID), |
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 | Уникальный идентификатор ошибки (UUID), |
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 | Уникальный идентификатор ошибки (UUID), |
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
для получения доступа к этому ресурсу.
Для обращения к ресурсу необходимо отправлять запрос на:
- Тестовый контур
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] | object | optional | Электронные подписи по дайджесту документа, | |
externalId | string | UUID | ^([0-9A-Fa-f]{8})-([0-9A-Fa-f]{4})-([0-9A-Za-z]{4})-([0-9A-Fa-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 | ^[a-zA-Z0-9._ -]{1,210}$ | required | Назначение платежа. Рекомендации по заполнению |
vat | Array[Vat] | object | required | Данные НДС, | |
voCode | string | string | ^[0-9]{5}$ | required | Код вида валютной операции |
} | |||||
Signature [ | |||||
{ | |||||
base64Encoded | string | base64 | ^[a-zA-Z0-9]+$ | optional | Значение электронной подписи (ЭП), закодированное в Base64. Можно передать одну или две ЭП вместе с реквизитами создаваемого документа - ссылка на ЭП. Если ЭП передана/ы в API, то они сохраняются вместе с документом, а сам документ продвигается дальше по своему жизненному циклу. Если ЭП не была/и передана/ы, то документ сохраняется в своем начальном статусе и ожидает дальнейшего подписания в интерфейсе СберБизнес, |
certificateUuid | string | UUID | ^([0-9A-Fa-f]{8})-([0-9A-Fa-f]{4})-([0-9A-Za-z]{4})-([0-9A-Fa-f]{12})$ | optional | Уникальный идентификатор сертификата ключа проверки электронной подписи |
} | |||||
] | |||||
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
Передача электронной подписи
Передача электронной подписи (ЭП) осуществляется с использованием массива digestSignatures, где каждый элемент представляет собой подпись (Signature). Каждая подпись должна содержать следующие обязательные поля:
Наименование поля | Описание поля | Пример |
---|---|---|
base64Encoded (string) | Значение ЭП документа | HlaeIHXXEcGT1bFxo1NlpAzpr+kJ2IQrcxVdvDTep6xjsmD1FDb+6NIyLT+/T24S0mPfVCU75sieOMt71TBS7w== |
certificateUuid (string) | Идентификатор сертификата, использованного при создании ЭП (можно узнать, обратившись к ресурсу /v1/crypto или /v1/crypto/eio) | 22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6 |
В документе можно передать одну или две электронных подписи вместе с реквизитами создаваемого документа. Если подписи переданы через API, то они сохраняются вместе с документом, а сам документ продолжает свой жизненный цикл. Если подписи не были переданы, то документ сохраняется в начальном статусе и ожидает дальнейшей подписи в интерфейсе СберБизнес.
Документ может быть подписан следующими наборами подписей:
- одна (единственная) подпись;
- первая и вторая подписи.
При этом нельзя сочетать подпись, имеющую единственное полномочие, с подписью, имеющей первую или вторую подписи.
Порядок наложения подписи не имеет значения при наложении первой и второй подписей. Состав полей дайджеста не изменяется. Тип подписи указывается в настройках криптопрофиля при создании пользователя в СберБизнес.
Подробнее о работе с ЭЦП в Sber API можно ознакомиться в соответствующем разделе документации.
Формат дайджеста
- Формат
- Пример
Наименование поля | Описание поля | Пример |
---|---|---|
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). Указывается цифра "1" - заранее данный акцепт плательщика или цифра "2" - требуется получение акцепта плательщика, |
priority | string | required | Очередность платежа, |
purpose | string | required | Назначение платежа. Заполнять значением purpose, полученным в ответе на запрос GET /v1/partner-info/advance-acceptances Если необходимо дополнить назначение, поставьте точку и укажите свою информацию, |
vat | Array[Vat] | required | Данные НДС, |
voCode | string | required | Код вида валютной операции |
} | |||
Signature [ | |||
{ | |||
base64Encoded | string | optional | Значение электронной подписи (ЭП), закодированное в Base64. Можно передать одну или две ЭП вместе с реквизитами создаваемого документа - ссылка на ЭП. Если ЭП передана/ы в API, то они сохраняются вместе с документом, а сам документ продвигается дальше по своему жизненному циклу. Если ЭП не была/и передана/ы, то документ сохраняется в своем начальном статусе и ожидает дальнейшего подписания в интерфейсе СберБизнес, |
certificateUuid | string | optional | Уникальный идентификатор сертификата ключа проверки электронной подписи |
} | |||
] | |||
Vat { | |||
amount | number | optional | Сумма НДС, |
rate | string | optional | Ставка НДС, |
type | string | required | Способ расчета НДС. INCLUDED - НДС включен в сумму платежа NO_VAT - не облагается НДС MANUAL - ручной ввод НДС |
} |
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 | Уникальный идентификатор ошибки (UUID), |
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 | Уникальный идентификатор ошибки (UUID), |
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": "Получение информации о подключенных клиентах возможно только по собственной организации"
}
500 (Internal Server Error)
Cause | Message | Description |
---|---|---|
UNKNOWN_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки (UUID), |
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 | Уникальный идентификатор ошибки (UUID), |
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) в querry-параметре запроса.
В параметре 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-Fa-f]{8})-([0-9A-Fa-f]{4})-([0-9A-Za-z]{4})-([0-9A-Fa-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 | Уникальный идентификатор ошибки (UUID), |
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 | Уникальный идентификатор ошибки (UUID), |
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 | Уникальный идентификатор ошибки (UUID), |
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 не найден"
}
500 (Internal Server Error)
Cause | Message | Description |
---|---|---|
UNKNOWN_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки (UUID), |
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 | Уникальный идентификатор ошибки (UUID), |
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 | Принят АБС | Электронный документ был принят к обработке в АБС Банка |
CARD2 | Картотека 2 | Электронный документ передан в картотеку в ожидание средств на счету клиента |
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 | Отказан АБС | ЭД не прошел проверки в АБС |
Окончательные(Успешные) статусы/Прекратить опрос | ||
IMPLEMENTED | Исполнен | Электронный документ исполнен Банком |
SENDED_TO_PAYER | Отправлен плательщику | Документ отправлен плательщику, который не является клиентом Сбербанка |
Дополнительная информация
Назначение платежа
Назначение должно раскрывать экономический смысл платежа.
- Сведения должны быть лаконичными — у поля есть ограничения по знакам 210 символов.
- В назначении необходимо указать реквизиты документа, по которому вы осуществляете платеж, например, номер договора или счета.
- Рекомендуем указывать конкретный предмет оплаты.
- Если платеж с НДС, необходимо прописать точную сумму налога.
Ниже подробнее рассказали о формировании информации об НДС в назначении платежа.
Рекомендуемый вариант заполнения:
Оплата по договору [номер договора] от [дата договора]. НДС [ставка НДС]% — [сумма НДС] рубля [способ расчета НДС]. [Любая ваша информация]
При создании ИПТ с помощью ресурса /v1/payment-requests/outgoing
в рамках сервиса Корпоративные подписки
- Атрибут [номер договора] соответствует contractNumber, который указывали при формировании заявления на ЗДА с помощью ресурса
/v1/acceptance-advances
- Атрибут [дата договора] соответстует contractDate, который указывали при формировании заявления на ЗДА с помощью ресурса
/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
Будет ли исполнено Банком платежное требование , отправленное выходные или праздничные дни?
В выходные и праздничные дни платежи исполняются, если вы подключили расширенный режима счета. В него входят:
- переводы на счета корпоративных клиентов и физических лиц внутри ПАО Сбербанк;
- переводы в пользу контрагентов в других банках (в том числе в бюджет и на счета физических лиц);
- переводы на основании документов, ранее помещенных в очередь не исполненных в срок распоряжений к банковскому счету клиента в пользу контрагентов (корпоративных клиентов и физических лиц) внутри ПАО Сбербанк (в том числе оплата задолженности, возникшей по комиссиям банка), а также в другие банки. Инструкция по подключению и отключению расширенного режима счета на странице помощи СберБизнеса.
Что происходит если денежных средств на счете клиента недостаточно?
В случае недостатка денежных средств на счете клиента для оплаты, платежное требование подлежит частичному исполнению (в сумме доступного остатка по банковскому счету плательщика), далее платежное требование помещается в очередь неисполненных в срок распоряжений и исполняется по мере поступления денежных средств в порядке очередности, установленной законодательством РФ.
В данном случае вы получите промежуточный статус по платежному требованию CARD2
(«Картотека»).
Необходимо продолжать спрашивать статус по платежному требованию до момента получения конечного статуса IMPLEMENTED
(«Исполнен»).
Создавать новое платежное поручение и отправлять повторно Клиенту не требуется.
Может ли клиент отключить подписку?
Клиент может отменить подписку в СберБизнесе, отозвав согласие на заранее данный акцепт. В таком случае при вызове ресурса /v1/partner-info/advance-acceptances
в поле "active" вы получите значение "false".