ym88659208ym87991671
Подписки | Документация SmartMarket
Skip to main content

Подписки

Терминология

ЗДА (заранее данный акцепт) - документ, который содержит согласие юридического лица на списание средств с лицевого счета плательщика.

Подписка - согласие на безакцептное списание денежных средств за использование сервиса или услуг.

Пакет услуг - два и более сервиса внутри одной оферты.

СББОЛ - Сбербанк Бизнес Онлайн.

ЭП/ЭЦП/ЦП - электронная цифровая подпись, которая формируется закрытым ключом сертификата.

Пользователь партнера - логин в организации, которая является владельцем сервиса.

Пользователь клиента - логин в организации, которая не является владельцем сервиса.

Дайджест - набор значимых полей документа, который подписывается ЭП.

Тип подписи - полномочия пользователя СББОЛ. Например: первая, вторая, единственная подпись.

Base64/Base64Url - формат кодирования данных при помощи только 64 символов ASCII

Назначение

Ресурсы позволяют партнеру ежемесячно списывать денежные средства со счета клиента. Сервис позволяет автоматизировать оплату за предоставленные услуги.

Сценарий использования

  1. Получить AccessToken.
  2. Получить сведения о клиентах подключенных к подпискам и пакетам услуг.
  3. Отправить информацию по тарифу за используемый клиентом сервис (опционально).
  4. Реализовать один из вариантов списаний с клиента:
    • Платежное требование с электронной подписью.
    • Начисления.

Для обращения к ресурсу необходимо отправлять запрос на:

  • Тестовый контур https://edupirfintech.sberbank.ru:9443

  • Промышленный контур https://fintech.sberbank.ru:9443

Клиенты с подключенными подписками

Ресурс /v1/partner-info/advance-acceptances позволяет Партнеру получить сведения о клиентах, подключенных к подпискам и пакетам услуг. Полученную информацию можно анализировать и использовать для выставления платежных требований в адрес клиентов сервиса. В ответе возвращается информация за один запрашиваемый день. Для поддержания актуальной информации и изменений на своей стороне необходимо осуществлять ежедневный запрос информации.

Для получения информации о клиентах, подключенных к подпискам и пакетам услуг, необходимо выполнить следующие шаги.

Шаги

1. При авторизации пользователя партнера передать в scope сервис GET_ADVANCE_ACCEPTANCES.

2. Отправить GET-запрос (/v1/partner-info/advance-acceptances), в котором необходимо передать авторизационный токен (Access Token), полученный для собственной организации, дату, за которую запрашивается информация (date).

Модель запроса

НаименованиеОписание
Параметры заголовка
Authorization (String)Access token организации-клиента, полученный через SSO Пример: Bearer 5c2f4c8d-4c8a-4301-8df7-195354932b19-1
Параметры запроса
date (date-time)Дата (подключения или отключения)
Формат: yyyy-MM-dd
clientId (String)Идентификатор сервиса

Пример запроса

curl -X GET --header 'Accept: application/json' --header 'Authorization: Bearer 5c2f4c8d-4c8a-4301-8df7-195354932b19-1'
'http://edupirfintech.sberbank.ru:9443/fintech/api/v1/partner-info/advance-acceptances?date=2019-10-24'

Модель ответа

НаименованиеОписание
AdvanceAcceptance [
AdvanceAcceptance 1
] AdvanceAcceptance 1{
active (boolean, optional)Признак активности ЗДА ,
bundles (Array[AdvanceAcceptanceBundle], optional)Информация о пакете услуг,
payerAccount (string, optional)Счет плательщика ,
payerBankBic (string, optional)БИК банка плательщика ,
payerBankCorrAccount (string, optional)Корсчет банка плательщика ,
payerInn (string, optional)ИНН плательщика ,
payerName (string, optional)Наименование плательщика ,
payerOrgIdHash (string, optional)Идентификатор организации плательщика ,
purpose (string, optional)Назначение платежа ,
sinceDate (string, optional)Дата начала действия заранее данного акцепта ,
untilDate (string, optional)Дата окончания действия заранее данного акцепта
}AdvanceAcceptanceBundle {
code (string, optional)Код пакета услуг ,
name (string, optional)Наименование пакета услуг,
sinceDate (string, optional)Дата подключения пакета услуг ,
untilDate (string, optional)Дата отключения пакета услуг,
currentState (String, optional)Статус пакета услуг в настоящее время.
Возможные варианты: ACTIVE, NOT_PAID, DEACTIVATED
}

Пример ответа

{
"active":false,
"bundles":[
{
"code":"POLNHODB",
"name":"Полным ходом",
"sinceDate":"2018-12-31",
"untilDate":"2018-12-31",
"currentState":"ACTIVE"
}
],
"payerAccount":"40802810600000200000",
"payerBankBic":"044525225",
"payerBankCorrAccount":"40802810600000200000",
"payerInn":"7707083893",
"payerName":"Общество с ограниченной ответственностью \"Клиент\"",
"payerOrgIdHash":"ee0fb56b01a9d9b9648a2c60549b77702eb2a6de8f2189c4349447e43b250da5",
"purpose":"Оплата заказа №123. НДС нет.",
"sinceDate":"2018-12-31",
"untilDate":"2018-12-31"
}
note

Даже в том случае, если в ответе на запрос для атрибута Признак активности ЗДА получено значение "true", выставление в адрес клиента, оформившего ЗДА, платежных требований возможно только со следующего дня за датой, полученной в атрибуте ответа sinceDate.

Клиенты с небанковскими сервисами

Ресурс /v1/partner-info/package-of-services позволяет Партнеру получить сведения о клиентах, подключенных к пакетам услуг с небанковскими сервисами.

Для получения информации о клиентах, подключенных к подпискам и пакетам услуг, необходимо выполнить следующие шаги.

Шаги

1. При авторизации пользователя партнера передать в scope сервис GET_ADVANCE_ACCEPTANCES.

2. Отправить GET-запрос (/v1/partner-info/package-of-services), в котором передать авторизационный токен (Access Token) и дату (подключения/отключения/изменения статуса ПУ). Авторизационный токен передается в параметре Authorization заголовка запроса.

Модель запроса

НаименованиеОписание
Параметры заголовка
Authorization (String)Access token полученный через SSO
Пример: Bearer daf9a14c-821d-4bde-9c10-0e56e63d54a0-1
Параметры запроса
date (date-time)Дата (подключения или отключения)
Формат: yyyy-MM-dd
clientId (String)Идентификатор сервиса

Пример запроса

curl -X GET --header 'Accept: application/json' --header
'Authorization:  Bearer daf9a14c-821d-4bde-9c10-0e56e63d54a0-1'
'https://edupirfintech.sberbank.ru:9443/fintech/api/v1/partner-info/package-of-services?date=2018-09-12'

Модель ответа

НаименованиеОписание
Inn (String)ИНН плательщика,
orgName (String)Наименование организации,
orgIdHash (String)Хэш от идентификатора организации клиента,
bundles (Array[AdvanceAcceptanceBundle]) {
code (String)Код пакета услуг.
Возможные варианты: LIGHTSTB, ONBORTB, POLNHODB
name (String)Наименование пакета услуг
sinceDate (String)Дата подключения
untilDate (String)Дата отключения
currentState (String, optional)Статус пакета услуг в настоящее время.
Возможные варианты: INITIATED, ACTIVE, NOT_PAID, DEACTIVATED
}

Пример ответа

{
"Inn":"7733812920",
"orgName":"Общество с ограниченной ответственностью Ромашка",
"orgIdHash":"31256b9025db931f02f2353213061d46f309ba09fc5464cb4c14c2f69abf7024",
"bundles":[
{
"code":"POLNHODB",
"name":"Полным ходом",
"sinceDate":"2018-12-31",
"untilDate":"2019-12-31",
"currentState":"ACTIVE"
}
]
}

Информация по тарифам сервисов

Ресурс /v1/client-tariffs позволяет Партнеру передать в банк информацию по тарифу за использование сервиса/услуги клиентом.

Шаги

1. При авторизации пользователя партнера передать в scope сервис CLIENT_TARIFF.

2. Отправить PUT-запрос (/v1/client-tariffs), в заголовке передать авторизационный токен к данным клиента (Access Token) и информацию по тарифу в теле запроса. авторизационный токен передается в параметре Authorization заголовка запроса.

Модель запроса

НаименованиеОписание
Параметры заголовка
Authorization (String)Access token организации клиента, полученный через SSO
Пример: Bearer f8ad3141-b7e8-4924-92de-3de4fd0a464e-1

Пример запроса

curl -X GET --header 'Accept: application/json' --header
'Authorization:  Bearer f8ad3141-b7e8-4924-92de-3de4fd0a464e-1'
'https://edupirfintech.sberbank.ru:9443/fintech/api/v1/client-tariffs'

Модель ответа

НаименованиеОписание
ClientTariff {
activationDate (string, optional)Дата активации тарифа ,
code (string)Код тарифа ,
description (string, optional)Описание тарифа ,
expireDate (string, optional)Дата окончания тарифа ,
expireTrialModeDate (string, optional)Дата завершения триального периода ,
name (string)Наименование тарифа ,
plannedPaymentDate (string, optional)Плановая дата списания денежных средств за сервис ,
rateAmount (number)Стоимость ,
ratePeriodMonths (integer)Периодичность оплаты в месяцах ,
tokenUrl (string, optional)Ссылка на страницу управления тарифом для токен клиентов ,
trialMode (boolean, optional),
url (string, optional)Ссылка на страницу управления тарифом,
useAdditionalTariff (boolean, optional)Использовать несколько тарифов
}

Пример ответа

{
"activationDate":"2018-12-31",
"code":"N",
"description":"Описание тарифа N",
"expireDate":"2018-12-31",
"expireTrialModeDate":"2018-12-31",
"name":"Тариф N",
"plannedPaymentDate":"2018-12-31",
"rateAmount":1.01,
"ratePeriodMonths":12,
"tokenUrl":"https://www.partner.ru/tariffs",
"trialMode":true,
"url":"https://www.partner.ru/tariffs",
"useAdditionalTariff":true
}
danger

Если billing выполняется по каждому пользователю, то в поле rateAmount необходимо указывать общую сумму списания в рамках организации.

Информация по офертам клиента

Ресурс /v1/partner-info/offers позволяет Партнеру получить информацию по офертам клиента, которые были заключены пользователями этого клиента.

Шаги

1. При авторизации пользователя партнера передать в scope сервис GET_ADVANCE_ACCEPTANCES.

2. Отправить GET-запрос (/v1/partner-info/offers), в котором необходимо передать авторизационный токен (Access Token), полученный для собственной организации, хэш от идентификатора организации клиента (client), и статус запрашиваемых оферт (status). Авторизационный токен передается в параметре Authorization заголовка запроса. Хэш от идентификатора организации клиента можно узнать из запроса Получение информации о клиенте (т.е. из запроса user-info (значение атрибута HashOrgId в ответе на запрос user-info) по данному клиенту). Информацию необходимо хранить на своей стороне для последующего использования.

Модель запроса

НаименованиеОписание
Параметры заголовка
Authorization (String)Access token полученный через SSO
Пример: Bearer c5e7110b-394a-45eb-9a4b-d8759cf6f9eb-1
Параметры запроса
client (String)Хэш от идентификатора организации. Значение атрибута HashOrgId в ответе на запрос user-info
status (String)Статус оферт
clientId (String)Идентификатор сервиса

Пример запроса

curl -X GET --header 'Accept: application/json' --header
'Authorization: Bearer c5e7110b-394a-45eb-9a4b-d8759cf6f9eb-1'
'https://edupirfintech.sberbank.ru:9443/fintech/api/v1/partner-info/offers?client=66e018dc56ac32363f3afdc92e86c092943bba97c16986327ab2f4f6b6ce1435'

Модель ответа

НаименованиеОписание
PartnerOfferInfo {
clientId (string, optional)Идентификатор сервиса,
inn (string, optional)ИНН организации,
orgName (string, optional)Название организации,
users (Array[UserOffers], optional)Список пользователей с офертами
}UserOffers {
accountList (Array[string], optional)Список счетов,
sinceDate (string, optional)Дата начала действия оферты,
status (string, optional)Статус оферты,
sub (string, optional)Хэш идентификатора пользователя,
untilDate (string, optional)Дата завершения действия оферты,
userName (string, optional)Наименование пользователя
}

Пример ответа

{
"clientId":"1005",
"inn":"7707083893",
"orgName":"OrgName",
"users":[
{
"accountList":[
"string"
],
"sinceDate":"2018-12-31",
"status":"PUBLIC",
"sub":"026f8e459c8f89ef75fa7a78265a0025",
"untilDate":"2018-12-31",
"userName":"Name"
}
]
}

Таблица допустимых значений параметра status

Значение параметраОписание
publicВозвращает данные по клиентам, с активными офертами
privateВозвращает данные по клиентам, с неактивными офертами, которые отозвал клиент
revokeВозвращает данные по клиентам, с неактивными офертами, которые отозвал Банк
danger

Если параметр status не указан в запросе, то предполагается что запрос выполняется по всем допустимым значениям параметра status.

Создание платежных требований

Ресурс /v1/payment-requests/outgoing позволяет Партнеру создавать исходящие платежные требования, где получателем средств является организация, предоставляющая сервис.

Шаги

1. При авторизации пользователя партнера передать в scope сервис PAYMENT_REQUEST_OUT.

2. Отправить POST-запрос (/v1/payment-requests/outgoing), в котором необходимо передать авторизационный токен (Access Token), полученный по собственной организации и реквизиты платёжного требования. Авторизационный токен передается в параметре Authorization заголовка запроса.

Модель запроса

НаименованиеОписание
Параметры заголовка
Authorization (String)Access token собственной организации, полученный через SSO
Пример: Bearer c5e7110b-394a-45eb-9a4b-d8759cf6f9eb-1
Параметры тела запроса
PaymentRequestOut {
acceptanceTerm (string, optional)Срок для акцепта (поле 36). Указывается количество дней для получения акцепта плательщика,
amount (number)Сумма платежа,
bankComment (string, optional, read only)Банковский комментарий к статусу документа,
bankStatus (string, optional, read only)Статус документа,
crucialFieldsHash (string, optional)Hash от ключевых полей документа,
date (string)Дата составления документа,
deliveryKind (string, optional)Вид платежа,
digestSignatures (Array[Signature], optional)Электронные подписи по дайджесту документа,
externalId (string)Идентификатор документа, присвоенный партнером (UUID),
number (string, optional)Номер документа,
operationCode (string)Код операции,
payeeAccount (string, optional)Счет получателя платежа,
payeeBankBic (string)БИК получателя платежа,
payeeBankCorrAccount (string, optional)Корсчет банка получателя платежа,
payeeInn (string, optional)ИНН получателя платежа,
payeeName (string)Полное наименование получателя платежа,
payerAccount (string)Счет плательщика,
payerBankBic (string)БИК банка плательщика,
payerBankCorrAccount (string)Корсчет банка плательщика,
payerInn (string)ИНН плательщика,
payerName (string)Полное наименование плательщика,
paymentCondition (string)Условие оплаты (поле 35).
Указывается цифра "1" - заранее данный акцепт плательщика или
цифра "2" - требуется получение акцепта плательщика,
priority (string)Очередность платежа,
purpose (string)Назначение платежа,
vat (Vat, optional)Данные НДС,
voCode (string, optional)Код вида валютной операции
}Signature {
base64Encoded (string)Значение электронной подписи, закодированное в Base64,
certificateUuid (string)Уникальный идентификатор сертификата ключа проверки электронной подписи (UUID)
}Vat {
amount (number, optional)Сумма НДС,
rate (string, optional)Ставка НДС,
type (string)Способ расчета НДС = ['INCLUDED','NO_VAT', 'MANUAL']
stringEnum "INCLUDED", "NO_VAT", "MANUAL"
}

Пример запроса

{
"acceptanceTerm":"string",
"amount":1.01,
"bankComment":"string",
"bankStatus":"string",
"crucialFieldsHash":"string",
"date":"2018-12-31",
"deliveryKind":"электронно",
"digestSignatures":[
{
"base64Encoded":"HlaeIHXXEcGT1bFxo1NlpAzpr+kJ2IQrcxVdvDTep6xjsmD1FDb+6NIyLT+/T24S0mPfVCU75sieOMt71TBS7w==",
"certificateUuid":"22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6"
}
],
"externalId":"22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6",
"number":"1",
"operationCode":"02",
"payeeAccount":"40802810600000200000",
"payeeBankBic":"044525225",
"payeeBankCorrAccount":"30101810400000000225",
"payeeInn":"7707083893",
"payeeName":"Общество с ограниченной ответственностью \"Клиент\"",
"payerAccount":"40802810600000200000",
"payerBankBic":"044525225",
"payerBankCorrAccount":"30101810400000000225",
"payerInn":"7707083893",
"payerName":"Общество с ограниченной ответственностью \"Клиент\"",
"paymentCondition":"string",
"priority":"5",
"purpose":"Оплата заказа №123. НДС нет.",
"vat":{
"amount":1.01,
"rate":"10",
"type":"NO_VAT"
},
"voCode":"61150"
}

Модель ответа

НаименованиеОписание
PaymentRequestOut {
acceptanceTerm (string, optional)Срок для акцепта (поле 36). Указывается количество дней для получения акцепта плательщика,
amount (number)Сумма платежа,
bankComment (string, optional, read only)Банковский комментарий к статусу документа,
bankStatus (string, optional, read only)Статус документа,
crucialFieldsHash (string, optional)Hash от ключевых полей документа,
date (string)Дата составления документа,
deliveryKind (string, optional)Вид платежа,
digestSignatures (Array[Signature], optional)Электронные подписи по дайджесту документа,
externalId (string)Идентификатор документа, присвоенный партнером (UUID),
number (string, optional)Номер документа,
operationCode (string)Код операции,
payeeAccount (string, optional)Счет получателя платежа,
payeeBankBic (string)БИК получателя платежа,
payeeBankCorrAccount (string, optional)Корсчет банка получателя платежа,
payeeInn (string, optional)ИНН получателя платежа,
payeeName (string)Полное наименование получателя платежа,
payerAccount (string)Счет плательщика,
payerBankBic (string)БИК банка плательщика,
payerBankCorrAccount (string)Корсчет банка плательщика,
payerInn (string)ИНН плательщика,
payerName (string)Полное наименование плательщика,
paymentCondition (string)Условие оплаты (поле 35).
Указывается цифра "1" - заранее данный акцепт плательщика или
цифра "2" - требуется получение акцепта плательщика,
priority (string)Очередность платежа,
purpose (string)Назначение платежа,
vat (Vat, optional)Данные НДС,
voCode (string, optional)Код вида валютной операции
}Signature {
base64Encoded (string)Значение электронной подписи, закодированное в Base64,
certificateUuid (string)Уникальный идентификатор сертификата ключа проверки электронной подписи (UUID)
}Vat {
amount (number, optional)Сумма НДС,
rate (string, optional)Ставка НДС,
type (string)Способ расчета НДС = ['INCLUDED','NO_VAT', 'MANUAL']
stringEnum "INCLUDED", "NO_VAT", "MANUAL"
}

Пример ответа

{
"acceptanceTerm":"string",
"amount":1.01,
"bankComment":"string",
"bankStatus":"string",
"crucialFieldsHash":"string",
"date":"2018-12-31",
"deliveryKind":"электронно",
"digestSignatures":[
{
"base64Encoded":"HlaeIHXXEcGT1bFxo1NlpAzpr+kJ2IQrcxVdvDTep6xjsmD1FDb+6NIyLT+/T24S0mPfVCU75sieOMt71TBS7w==",
"certificateUuid":"22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6"
}
],
"externalId":"22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6",
"number":"1",
"operationCode":"02",
"payeeAccount":"40802810600000200000",
"payeeBankBic":"044525225",
"payeeBankCorrAccount":"30101810400000000225",
"payeeInn":"7707083893",
"payeeName":"Общество с ограниченной ответственностью \"Клиент\"",
"payerAccount":"40802810600000200000",
"payerBankBic":"044525225",
"payerBankCorrAccount":"30101810400000000225",
"payerInn":"7707083893",
"payerName":"Общество с ограниченной ответственностью \"Клиент\"",
"paymentCondition":"string",
"priority":"5",
"purpose":"Оплата заказа №123. НДС нет.",
"vat":{
"amount":1.01,
"rate":"10",
"type":"NO_VAT"
},
"voCode":"61150"
}

Передача электронной подписи

Для передачи ЭП под документом используется массив digestSignatures, в котором передаются элементы типа Signature (все поля обязательны):

Наименования поляОписания поляПример
base64Encoded (string)Значение ЭП документаHlaeIHXXEcGT1bFxo1NlpAzpr+kJ2IQrcxVdvDTep6xjsmD1FDb+6NIyLT+/T24S0mPfVCU75sieOMt71TBS7w==
certificateUuid (string)Идентификатор сертификата, использованного при создании ЭП ( можно узнать, обратившись к ресурсу /v1/crypto)22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6

В документе можно передать одну или две ЭП вместе с реквизитами создаваемого документа.
Если ЭП передана/ы в 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Инн получателя0
payeeNameПолное наименование получателя платежаОбщество с ограниченной ответственностью "Получатель"
payerAccountСчет плательщика40802810600000200000
payerBankBicБИК плательщика044525225
payerBankCorrAccountКорсчет банка плательщика30101810400000000225
payerInnИНН плательщика0
payerNameПолное наименование плательщикаОбщество с ограниченной ответственностью "Клиент"
paymentConditionУсловие оплаты (1/2)1
priorityОчередность платежа5
purposeНазначение платежаОплата товара по договору №123 от 01.08.2018. НДС не облагается

Пример дайджеста

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=Назначение платежа

Процесс обработки платежного требования

Обработка платежного требования (ПТ)

Выгрузка ПТ из СББОЛ осуществляется каждые 5 минут в период с 9:00 – 16:30

Если плательщик в Сбербанке

При поступлении платежного требования на стороне Банка выполняются следующие проверки:

  1. Логические проверки плательщика/получателя ПТ. ПТ не исполняется и возвращается ошибка, если не прошли проверки

  2. Проверка на наличие заранее данного акцепта(ЗДА), выданного клиентом в Партнеру

    2.1 Если ЗДА есть:

    2.1.1 Проверка реквизитов ЗДА

    2.1.1.1 Если проверка пройдена, выполняется проверка на ограничение по счету:

    2.1.1.1.1 Если есть полные ограничения на списание денежных средств по счету, платежный документ помещается бессрочно в Картотеку 1

    2.1.1.1.2 Если есть частичные ограничения, проверяется достаточность средств для списания (остаток от блокировки)

    2.1.1.2 Выполняется проверка наличия денежных средств на счете:

    2.1.1.2.1 Если денежных средств достаточно на полную оплату требования (с учетом всех действующих частичных блокировок средств), сразу выполняется списание и перечисление

    2.1.1.2.2 Если денежных средств недостаточно (доступна не полная сумма), документ помещается в Картотеку 1 без срока и оплачивается из нее на сумму свободных средств

    2.1.1.2.3 Если денежных средств на счете нет, вся сумма помещается в Картотеку 1/ Картотеку 2

    2.1.1.2.4 Если выявлено неполное соответствие ЗДА (например, не сходится одна цифра в дате или регистр в номере договора (русские/англ.буквы), документ передается на ручную обработку в операционный центр

    2.2 Если ЗДА нет или реквизиты ЗДА полностью не соответствуют реквизитам из ПТ, то платежное требование помещается на 5 рабочих дней (не считая дня поступления) в Картотеку 1 для ручного акцепта клиента

Если получатель Внешний плательщик

ПТ сформированное в СББОЛ уходит в Банк России, далее Банк России отправляет в банк получателя

Частичная оплата со стороны клиента, периодичность обработки вновь появившихся денежных средств на счете клиента

Ручной акцепт:

Акцепт ПТ клиент может выполнить в СберБизнес. Есть возможность акцептовать как полную сумму, так и частично. После акцепта формируется документ на оплату

При частичном акцепте суммы, оставшаяся сумма остается в картотеке до конца срока нахождения проводки в Картотеке либо на оставшуюся сумму можно сформировать отказ

Списание денежных средств по проводке в бессрочной Картотеке 2 (при наличии ЗДА):

Списание выполняются с 9 до 22 часов каждые 2-2,5 часа. Перебираются все счета с Картотекой 2 и Картотекой 1 без срока, определяется платежеспособность счета (рассчитывается остаток свободных средств >0) и запускается процесс списания. Если до полного списания средств недостаточно, то выполняется частичное списание

Отзыв платежного документа из Картотеки:

ИПТ в Картотека 1 (на ручном акцепте клиента) может быть отозвано плательщиком (отказ от акцепта)

Если ИПТ находится бессрочно в Картотека 1 или 2, отозвать ИПТ в СберБизнес нельзя

Действие ЗДА:

ЗДА начинает действовать со дня следующего за днем поступления в Банк

Если ПТ отправить в день создания ЗДА, платежный документ попадет в Картотеку 1 (на ручной акцепт клиенту)

Закрытие счета:

При закрытии счета все документы в картотеке аннулируются (возвращаются составителям без исполнения) без списания

Статус SEND_TO_PAYER

Если платежный документ помещается в Картотеку 1 или Картотеку 2, то в статус документа переводится в SEND_TO_PAYER

Получение статуса платежного требования

Ресурс /v1/payment-requests/outgoing/{externalId}/state позволяет Партнеру получить статус ранее отправленного платежного требования.

Шаги

1. При авторизации пользователя партнера передать в scope сервис PAYMENT_REQUEST_OUT.

2. Отправить GET-запрос (/v1/payment-requests/outgoing/{externalId}/state), в котором необходимо передать авторизационный токен (Access Token), полученный для собственной организации организации и идентификатор документа (externalId). Авторизационный токен передается в параметре Authorization заголовка запроса.

Модель запроса

НаименованиеОписание
Параметры заголовка
Authorization (String)Access token собственной организации, полученный через SSO
Пример: Bearer f8ad3141-b7e8-4924-92de-3de4fd0a464e-1
Параметры запроса
externalId (String)Идентификатор документа, присвоенный клиентом

Пример запроса

curl -X GET --header 'Accept: /' --header
'Authorization: Bearer f8ad3141-b7e8-4924-92de-3de4fd0a464e-1'
'https://edupirfintech.sberbank.ru:9443/fintech/api/v1/payment-requests/outgoing/ffffffff-fffa-458e-ad92-fff9497303ba/state'

Модель ответа

НаименованиеОписание
PaymentDocState {
bankComment (string, optional, read only)Банковский комментарий к статусу документа,
bankStatus (string, optional)Статус документа,
channelInfo (string, optional, read only)Комментарий, специфичный для документа, полученного по данному каналу,
}

Пример ответа

{
"bankStatus": "CREATED",
"bankComment": null,
"channelInfo": null
}

Статусы обработки платежных документов

Код состояние документаНаименование статусаНазначение кода состояния
Промежуточные статусы/Продолжать опрашивать
ACCEPTEDПринятЭлектронный документ принят на стороне Банка
ACCEPTED_BY_ABSПринят АБСЭлектронный документ был принят к обработке в АБС Банка
CARD2Картотека 2Электронный документ передан в картотеку в ожидание средств на счету клиента
CHECKERRORОшибка контроляЭД сформирован, но при сохранении не прошел проверку корректности заполнения полей и сохранен с имеющимися в нем ошибками
CREATEDСозданДокумент записан в БД, проверки не выполнялись
DELAYEDПриостановленОбработка электронного документа была приостановлена
DELIVEREDДоставленЗапрос доставлен в ДБО и взят в обработку
EXPORTEDВыгруженЭлектронный документ выгружен Банком в АБС
FRAUDALLOWОдобрен ФРОДПроверка во ФРОДЕ прошла успешно, переход на «Принят»
FRAUDDENYОтвергнут ФРОДДокумент отказан на основе проверки в АС Fraud-мониторинг, переходим в «Отвергнут банком»
FRAUDREVIEWНа проверке у специалиста БанкаСо стороны ФРОД-анализа получен статус документа «На проверке у специалиста Банка»
FRAUDSENTОтправлен во ФРОДДокумент отправлен на проверку в АС Fraud-мониторинг
FRAUDSMSТребуется подтверждение sms-паролемСо стороны ФРОД-анализа получен статус документа «Требуется подтверждение sms-паролем»
PARTSIGNEDЧастично подписанЭД подписан частью подписей, входящих в предусмотренный для данного документа комплект подписей
PROCESSINGВ обработкеКлиент сформировал «Заявление об акцепте/частичном акцепте/отказе от акцепта»
REQUESTED_RECALLЗапрошен отзывДокумент отозван
SENDED_TO_PAYERОтправлен плательщикуДокумент отправлен плательщику
SIGNEDПодписанЭД подписан предусмотренным для него комплектом подписей
SUBMITTEDПредставленЭлектронный документ принят ВК
Окончательные статусы/Прекратить опрос
CHECKERROR_BANKОшибка контроля, БанкЭД сформирован, но при сохранении не прошел проверку корректности заполнения полей и сохранен с имеющимися в нем ошибками
DECLINED_BY_PAYERОтвергнут плательщикомДокумент отвергнут плательщиком
INVALIDEDSЭПАСП не вернаПроверка ЭП под ЭД на стороне Банка дала отрицательный результат
RECALLОтозванЭлектронный документ был отозван Клиентом по запросу
REFUSED_BY_RZKОтказан контролирующей организациейЭД не прошел проверки контролирующей организацией
REQUISITEERRORОшибка реквизитовВ ЭД указаны ошибочные реквизиты
REFUSEDBYABSОтказан АБСЭД не прошел проверки в АБС
Окончательные(Успешные) статусы/Прекратить опрос
IMPLEMENTEDИсполненЭлектронный документ исполнен Банком
SENDED_TO_PAYERОтправлен плательщикуДокумент отправлен плательщику в другом банке

Списание платы за использование сервиса

Ресурс /v1/client-accruals позволяет Партнеру отправлять в банк запрос на списание платы за использование клиентом сервиса. Изначально списание происходит на счет банка, в дальнейшем банк переводит деньги Партнеру.

Шаги

1. При авторизации пользователя партнера передать в scope сервис CLIENT_ACCRUAL.

2. Отправить POST-запрос (/v1/client-accruals), в котором передать авторизационный токен собственной организации (Access Token). Авторизационный токен передается в параметре Authorization заголовка запроса.

Модель запроса

НаименованиеОписание
Параметры заголовка
Authorization (String)Access token собственной организации, полученный через SSO
Пример: Bearer f8ad3141-b7e8-4924-92de-3de4fd0a464e-1
Параметры тела запроса
ClientAccrual {
account (string, optional)Счет клиента для списания комиссии ,
amount (number, optional)Сумма начисления без НДС ,
amountDebt (number, optional, read only)Остаток задолженности ,
amountVat (number, optional)Сумма НДС ,
bankComment (string, optional, read only)Банковский комментарий к статусу ,
bankStatus (string, optional, read only)Статус списания денежных средств за
начисление = [ANNULLED, CANCELED, CHECKERROR,
CHECKERRORABS, CREATED, DELIVERED, NOT_PROCESSED,
NOTPAID, PAID, PARTPAID, REFUSED_BY_LIMIT,
REQUISITEERROR, EXPORTED, SENDED, UPLOADERROR,
WAITING]
stringEnum ANNULLED, CANCELED, CHECKERROR,
CHECKERRORABS, CREATED, DELIVERED, NOT_PROCESSED,
NOTPAID, PAID, PARTPAID, REFUSED_BY_LIMIT,
REQUISITEERROR, EXPORTED, SENDED, UPLOADERROR,
WAITING
clientId (integer, optional)Идентификатор сервиса ,
client (string)Идентификатор организации ,
countServiceFact (integer, optional)Количество фактов потребления услуги за период ,
dateExpiration (string, optional)Дата начала взимания пени при просрочке платежа ,
dateSince (string)Дата начала периода списания ,
dateUntil (string)Дата окончания периода списания ,
datetimeStatusChange (string, optional, read only)Дата и время исполнения документа ,
digestSignatures (Array[Signature])Подписи начисления ,
externalId (string)Идентификатор начисления, присвоенный партнером (UUID) ,
purpose (string, optional)Назначение платежа
}Signature {
base64Encoded (string)Значение электронной подписи, закодированное в Base64 ,
certificateUuid (string)Уникальный идентификатор сертификата ключа проверки электронной подписи (UUID)
}

Пример запроса

{
"account":"40802810600000200000",
"amount":1.01,
"amountDebt":1.01,
"amountVat":1.01,
"bankComment":"string",
"bankStatus":"ANNULLED",
"clientId":1005,
"client":"ee0fb56b01a9d9b9648a2c60549b77702eb2a6de8f2189c4349447e43b250da5",
"countServiceFact":20,
"dateExpiration":"2018-12-31",
"dateSince":"2018-12-31",
"dateUntil":"2018-12-31",
"datetimeStatusChange":"2018-12-31T23:59:59",
"digestSignatures":[
{
"base64Encoded":"HlaeIHXXEcGT1bFxo1NlpAzpr+kJ2IQrcxVdvDTep6xjsmD1FDb+6NIyLT+/T24S0mPfVCU75sieOMt71TBS7w==",
"certificateUuid":"22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6"
}
],
"externalId":"22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6",
"purpose":"Оплата заказа №123. НДС нет."
}

Передача электронной подписи

Для передачи ЭП под документом используется массив digestSignatures, в котором передаются элементы типа Signature (все поля обязательны):

Наименования поляОписания поляПример
base64Encoded (string)Значение ЭП документаHlaeIHXXEcGT1bFxo1NlpAzpr+kJ2IQrcxVdvDTep6xjsmD1FDb+6NIyLT+/T24S0mPfVCU75sieOMt71TBS7w==
certificateUuid (string)Идентификатор сертификата, использованного при создании ЭП ( можно узнать, обратившись к ресурсу /v1/crypto)22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6

В документе можно передать одну или две ЭП вместе с реквизитами создаваемого документа.
Если ЭП передана/ы в API, то они сохраняются вместе с документом, а сам документ продвигается дальше по своему жизненному циклу.
Если ЭП не была/и передана/ы, то документ сохраняется в своем начальном статусе и ожидает дальнейшего подписания в интерфейсе СББОЛ.

Документ может быть подписан следующими наборами подписей:

  • одна (единственная) подпись;

  • первая и вторая подписи.

При этом подписант, обладающий полномочием единственной подписи, не может «сочетаться» с подписантом, владеющим первой или второй подписью.

Очередность наложения ЭП при наложении первой и второй подписей не имеет значения, состав полей дайджеста не изменяется. Тип подписи указывается в настройках криптопрофиля, когда пользователь Партнера создается в Банке.

Формат дайджеста платежного требования

Наименование поляОписание поля
clientИдентификатор организации
clientIdИдентификатор сервиса
externalIdИдентификатор начисления, присвоенный партнером (UUID)
accountСчет клиента для списания комиссии
dateSinceДата начала периода списания
dateUntilДата окончания периода списания
countServiceFactКоличество фактов потребления услуги за период
amountСумма начисления без НДС
amountVatСумма НДС
purposeНазначение платежа
dateExpirationДата начала взимания пени при просрочке платежа

Пример дайджеста

client=ee0fb56b01a9d9b9648a2c60549b77702eb2a6de8f2189c4349447e43b250da5
clientId=1005
externalId=22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6
account=40802810600000200000
dateSince=2018-12-31
dateUntil=2018-12-31
countServiceFact=20
amount=1.01
amountVat=1.01
purpose=Оплата заказа №123. НДС нет.
dateExpiration=2018-12-31

Получение документа по списанию средств

Ресурс /v1/client-accruals/{externalId} позволяет Партнеру получить документ по списанию банком денежных средств с клиента за пользование сервисом.

Шаги

1. При авторизации пользователя партнера передать в scope сервис CLIENT_ACCRUAL.

2. Отправить GET-запрос (/v1/client-accruals/{externalId}), в котором передать авторизационный токен (Access Token) и идентификатор документа (externalId). Авторизационный токен передается в параметре Authorization заголовка запроса.

Модель запроса

НаименованиеОписание
Параметры заголовка
Authorization (String)Access token полученный через SSO
Пример: Bearer daf9a14c-821d-4bde-9c10-0e56e63d54a0-1
Параметры запроса
externalId (String)Идентификатор документа, присвоенный клиентом

Пример запроса

curl -X GET --header 'Accept: application/json' --header
'Authorization: Bearer daf9a14c-821d-4bde-9c10-0e56e63d54a0-1'
'https://edupirfintech.sberbank.ru:9443/fintech/api/v1/client-accruals/22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6'

Модель ответа

Соответствует модели запроса v1/client-accruals.

Возможные статусы

Код состояние документаНаименование статусаНазначение кода состояния
Промежуточные статусы/Продолжать опрашивать
CREATEDСоздан факт потребления
DELIVEREDДоставлено в ЕКС
EXPORTEDСформирован файл с начислениями
NOT_PROCESSEDНе обработано
NOTPAIDНе оплачено
PARTPAIDЧастично оплачено
PROCESSINGВ обработке
SENDEDОтправлено в ЕКС
WAITINGОжидается проводка
Окончательные статусы/Прекратить опрос
ANNULLEDАннулировано
CHECKERRORОшибка контроляЭД сформирован, но при сохранении не прошел проверку корректности заполнения полей и сохранен с имеющимися в нем ошибками.
CANCELEDОтменено на стороне СББОЛ
CHECKERRORABSОшибка валидации ЭЦП ЕКС
DECLINEDОтказано
REFUSED_BY_LIMITОтказано по лимиту суммы
REQUISITEERRORОшибка реквизитов
Окончательные(Успешные) статусы/Прекратить опрос
PAIDОплачено

Дополнительная информация

Параметры НДС

Для корректной работы необходимо передавать параметры в следующем сочетании :

  • Если блок vat не указан, то по умолчанию будут присвоены и придут в ответе на запрос следующие значения :
"vat": {
"type": "NO_VAT",
"rate": "0",
"amount": "0.00"
}
note

В поле "Назначение платежа" необходимо обязательно отправлять "НДС не облагается".

  • При выбранном "type":"INCLUDED" (НДС включен в сумму платежа) в атрибуте "amount" необходимо указать сумму НДС.
    Атрибут "rate" должен принимать только значения 10, 20.
    В поле "Назначение платежа" необходимо обязательно указать посчитанное значение НДС.
    Пример ПРАВИЛЬНОГО заполнения:
    НДС_10_%_-_100.63 рублей (нижнее подчеркивание является признаком пробела, символ проставлять не нужно).
    Если процентное значение не указано, то дефис перед суммой указывать не нужно: НДС_100.63 рублей.

  • При выбранном "type":"MANUAL" (Ручной ввод НДС) атрибут "amount" указывать не обязательно, но в этом случае по умолчанию сумма НДС примет значение 0 рублей.
    Если же атрибут "amount" указывается в запросе, то в нем нужно указать желаемое значение НДС, соответствующее формату.
    Если процентное значение не указано, то дефис перед суммой указывать не нужно:
    НДС_100.63 рублей.

Коды возврата

Код возвратаОписание кода возвратаПричина возникновения
200 (GET-запрос)ОК
201 (POST-запрос)CREATED
Создан Операция не завершена полностьюДокумент создан, сохранен но не подписан Банком
202 (POST-запрос)SC_ACEPTED
Операция не завершена полностьюДокумент создан, сохранен но не подписан Банком
400DESERIALIZATION_FAULT
Неверный формат запросаНеверный формат запроса
WORKFLOW_FAULT
Для внешнего сервиса недоступны операции по счету: 40702810ХХХХХХХХХХХХДля внешнего сервиса недоступны операции по счету:

счет не добавлен в список разрешенных в оферте;
внешний сервис заблокирован в СББОЛ;
счет указан неверно.

Отсутствует доступный открытый рублевый расчетный счет у организации плательщика
Документ с такими реквизитами уже существуетДокумент с такими реквизитами уже существует. Проверка по номер документа в течении года.
Не указан идентификатор сертификата подписиНе указан идентификатор сертификата подписи(параметр kid заголовка JWS)
Некорректный формат параметра kid заголовка JWSНекорректный формат параметра kid заголовка JWS(ожидается UUID)
VALIDATION_FAULT
Ошибка валидацииОшибка валидации данных запроса с указанием некорректных значений. Значения полей модели или параметров запроса не соответствуют допустимым и определенным в модели.
SIGN_CHECK_EXCEPTION
Подлинность подписи не установлена/Сертификат не обнаружен или не является активнымОшибка возникает, если не удалось установить подлинность подписи
401UNAUTHORIZED
accessToken not found by value =хххххххх-хххх-хххх-хххх-хххххххххххх-хУказан некорректный или просроченный access_token.
403ACTION_ACCESS_EXCEPTION
Операция не может быть выполнена: доступ к ресурсу запрещенУ пользователя нет прав на использование соответствующего сервиса SberBusinessAPI, доступ к которому не предусмотрен настройками scope; У пользователя отсутствует оферта с внешним сервисом.
404DATA_NOT_FOUND_EXCEPTION
Платежный документ не найденНеверное значение externalId
415JWS_EXCEPTED
В соответствии с текущими настройками сервиса с clientId=%s необходимо использовать запрос в формате JWS Compact SerializationОшибка возникает, если в настройках внешних сервисов выставлен флаг "Требуется подпись для внешнего сервиса"
500UNKNOWN_EXCEPTION
Внутренняя ошибка сервера
503UNAVAILABLE_RESOURCE_EXCEPTION
Сервис временно недоступенПроводятся технические работы
Обновлено 20 апреля 2022

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней