Создание платежного требования
ВАЖНО!
Выставить платежное требование Клиенту можно не раньше даты, следующей за датой оформления Подписки.
Например, Клиент оформил Подписку 15 января. На следующий день, 16 января, можно будет сформировать платежное требование для списания денежных средств. Если сформировать платежное требование в день оформления Подписки, то платежное требование не будет исполнено - оно встанет в "Картотеку" в СберБизнес Клиента на ручное подтверждение.
/fintech/api/v1/payment-requests/outgoing
Ресурс позволяет создавать платежные требования, где получателем средств является ваша компания. Отправьте POST-запрос с токеном доступа (access_token) пользователя собственной организации в параметре Authorization заголовка и реквизитами платежного требования в теле запросе.
В параметре scope ссылки авторизации пользователя должен быть указан сервис PAYMENT_REQUEST_OUT
для получения доступа к этому ресурсу.
Если в запросе на создание платежного документа передать ЭП к документу (объект digestSignatures), то Банк сразу начнет его обработку.
Если в запросе не передавать ЭП к документу, то документ будет создан в статусе черновик. Для начала его обработки Банком потребуется зайти в интерфейс СберБизнес и подписать его.
Для обращения к ресурсу необходимо отправлять запрос на:
- Тестовый контур
https://iftfintech.testsbi.sberbank.ru:9443
- Промышленный контур
https://fintech.sberbank.ru:9443
Request
/fintech/api/v1/payment-requests/outgoing
- Модель
- Пример
Наименование | Тип | Формат | Regexp | Обязательность | Описание |
---|---|---|---|---|---|
HEADER | |||||
Authorization | string | string | ^[a-zA-Z0-9]{38}$ | required | Access token пользователя, полученный через SSO. |
BODY | |||||
PaymentRequestOut { | |||||
acceptanceTerm | string | string | ^[1-5]{1}$ | optional | Срок для акцепта (поле 36). Указывается количество дней для получения акцепта плательщика, |
amount | number | float | ^[0-9]+(.[0-9]+)?$ | required | Сумма платежа, |
date | string | ISO 8601 YYYY-MM-DD | ^(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$ | required | Дата составления документа, |
deliveryKind | string | string | ^(электронно|срочно|0)$ | optional | Вид платежа: электронно, срочно Если не заполнено или 0, то будет присвоено значение "электронно", |
digestSignatures | array[Signature] | array[object] | optional | Электронные подписи по дайджесту документа. Если ЭП передана/ы в API, то они сохраняются вместе с документом, а сам документ продвигается дальше по своему жизненному циклу. Если ЭП не была/и передана/ы, то документ сохраняется в своем начальном статусе и ожидает дальнейшего подписания в интерфейсе СберБизнес. О подписании дайджеста платежного документа подробно рассказали в соответствующем разделе документации | |
externalId | string | UUID | ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ | required | Идентификатор документа, присвоенный партнером, |
number | string | string | ^[0-9]$ | optional | Номер документа, |
operationCode | string | string | ^02$ | required | Код операции, |
payeeAccount | string | string | ^[0-9]$ | required | Счет получателя платежа, |
payeeBankBic | string | string | ^[0-9]{9}$ | required | БИК получателя платежа, |
payeeBankCorrAccount | string | string | ^[0-9]{20}$ | required | Корсчет банка получателя платежа, |
payeeInn | string | string | ^([0-9]{5}|[0-9]{10}|[0-9]{12}|0)$ | optional | ИНН получателя платежа, |
payeeName | string | string | ^[0-9a-zA-Zа-яА-ЯеЁ \t]+$ | required | Полное наименование получателя платежа, |
payerAccount | string | string | ^[0-9]{20}$ | required | Счет плательщика, |
payerBankBic | string | string | ^[0-9]{9}$ | required | БИК банка плательщика, |
payerBankCorrAccount | string | string | ^[0-9]{20}$ | required | Корсчет банка плательщика, |
payerInn | string | string | ^([0-9]{5}|[0-9]{10}|[0-9]{12}|0)$ | required | ИНН плательщика, |
payerName | string | string | ^[0-9a-zA-Zа-яА-ЯеЁ \t]+$ | required | Полное наименование плательщика, |
paymentCondition | string | string | ^(1|2)$ | required | Условие оплаты (поле 35). Указывается цифра "1" - заранее данный акцепт плательщика или цифра "2" - требуется получение акцепта плательщика, |
priority | string | string | ^[1-5]{1}$ | required | Очередность платежа, |
purpose | string | string | ^.{0,210}$ | required | Назначение платежа. Рекомендации по заполнению |
vat | Vat | object | required | Данные НДС, | |
voCode | string | string | ^[0-9]{5}$ | required | Код вида валютной операции |
} | |||||
Signature { | |||||
base64Encoded | string | base64 | ^[a-zA-Z0-9]+$ | required | Значение электронной подписи, закодированное в Base64, |
certificateUuid | string | UUID | ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ | required | Уникальный идентификатор сертификата ключа проверки электронной подписи |
} | |||||
Vat { | |||||
amount | number | float | ^[0-9]+(.[0-9]+)?$ | optional | Сумма НДС, |
rate | string | string | ^[0-9]{0,2}$ | optional | Ставка НДС, |
type | string | string | ^(INCLUDED|NO_VAT|MANUAL)$ | required | Способ расчета НДС. INCLUDED - НДС включен в сумму платежа NO_VAT - не облагается НДС MANUAL - ручной ввод НДС |
} |
POST /fintech/api/v1/payment-requests/outgoing HTTP/1.1
Authorization: Bearer xbgDF3brf456ghi789jkl012mNKFtEpqr678
Content-Type: application/json
{
"acceptanceTerm": "1",
"amount": 100.00,
"date": "2023-11-24",
"deliveryKind": "электронно",
"digestSignatures": [
{
"base64Encoded": "HlaeIHXXEcGT1bFxo1NlpAzpr+kJ2IQrcxVdvDTep6xjsmD1FDb+6NIyLT+/T24S0mPfVCU75sieOMt71TBS7w==",
"certificateUuid": "22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6"
}
],
"externalId": "88ffd6c6-61d8-4269-ab1c-8c6ba21eb257",
"number": "1",
"operationCode": "02",
"payeeAccount": "40702810006000001792",
"payeeBankBic": "048073601",
"payeeBankCorrAccount": "30101810300000000601",
"payeeInn": "7379190522",
"payeeName": "ТЕСТ9036",
"payerAccount": "40702810506000002149",
"payerBankBic": "048073601",
"payerBankCorrAccount": "30101810300000000601",
"payerInn": "6376615662",
"payerName": "ООО_Автотест_Клиент_ЕКС_20231027092414",
"paymentCondition": "2",
"priority": "5",
"purpose": "Оплата_по_договору_№123_от_13.04.2024._НДС_20%-20.00_рублей_включен_в_сумму.",
"vat": {
"amount": 20,
"rate": "20",
"type": "INCLUDED"
},
"voCode": "61150"
}
digestSignatures
Формат дайджеста
- Формат
- Пример
Наименование поля | Описание поля | Пример |
---|---|---|
acceptanceTerm | Срок акцепта | 5 |
amount | Сумма платежа | 100.01 |
date | Дата составления документа | 31.12.2018 |
externalId | Идентификатор документа, присвоенный сервисом | 22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6 |
operationCode | Код операции | 02 |
payeeAccount | Номер счета получателя | 40802810600000200000 |
payeeBankBic | БИК получателя | 044525225 |
payeeBankCorrAccount | Корсчет банка получателя | 30101810400000000225 |
payeeInn | ИНН получателя | 0452566242 |
payeeName | Полное наименование получателя платежа | Общество с ограниченной ответственностью "Получатель" |
payerAccount | Счет плательщика | 40802810600000200000 |
payerBankBic | БИК плательщика | 044525225 |
payerBankCorrAccount | Корсчет банка плательщика | 30101810400000000225 |
payerInn | ИНН плательщика | 8554122325 |
payerName | Полное наименование плательщика | Общество с ограниченной ответственностью "Клиент" |
paymentCondition | Условие оплаты (1/2) | 1 |
priority | Очередность платежа | 5 |
purpose | Назначение платежа | Оплата по договору №123 от 13.04.2024. НДС 20% - 20.00 рублей включен в сумму. |
acceptanceTerm=5
amount=100.01
date=2018-12-31
externalId=22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6
operationCode=02
payeeAccount=40802810600000200000
payeeBankBic=044525225
payeeBankCorrAccount=30101810400000000225
payeeInn=0
payeeName=Общество с ограниченной ответственностью "Получатель"
payerAccount=40802810600000200000
payerBankBic=044525225
payerBankCorrAccount=30101810400000000225
payerInn=0
payerName=Общество с ограниченной ответственностью "Клиент"
paymentCondition=1
priority=5
purpose=Назначение платежа
Responses
201 (Created)
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
PaymentRequestOut { | |||
acceptanceTerm | string | optional | Срок для акцепта (поле 36). Указывается количество дней для получения акцепта плательщика, |
amount | number | required | Сумма платежа, |
bankComment | string | optional | Банковский комментарий к статусу документа, |
bankStatus | string | optional | Статус документа, |
crucialFieldsHash | string | optional | Hash от ключевых полей документа, |
date | string | required | Дата составления документа, |
deliveryKind | string | optional | Вид платежа: электронно, срочно Если не заполнено или 0, то будет присвоено значение "электронно", |
digestSignatures | array[Signature] | optional | Электронные подписи по дайджесту документа, |
externalId | string | required | Идентификатор документа, присвоенный партнером, |
number | string | optional | Номер документа, |
operationCode | string | required | Код операции, |
payeeAccount | string | required | Счет получателя платежа, |
payeeBankBic | string | required | БИК получателя платежа, |
payeeBankCorrAccount | string | required | Корсчет банка получателя платежа, |
payeeInn | string | optional | ИНН получателя платежа, |
payeeName | string | required | Полное наименование получателя платежа, |
payerAccount | string | required | Счет плательщика, |
payerBankBic | string | required | БИК банка плательщика, |
payerBankCorrAccount | string | required | Корсчет банка плательщика, |
payerInn | string | required | ИНН плательщика, |
payerName | string | required | Полное наименование плательщика, |
paymentCondition | string | required | Условие оплаты (поле 35), |
priority | string | required | Очередность платежа, |
purpose | string | required | Назначение платежа, |
vat | Vat | required | Данные НДС, |
voCode | string | required | Код вида валютной операции |
} | |||
Signature { | |||
base64Encoded | string | optional | Значение электронной подписи (ЭП), закодированное в Base64, |
certificateUuid | string | optional | Уникальный идентификатор сертификата ключа проверки электронной подписи |
} | |||
Vat { | |||
amount | number | optional | Сумма НДС, |
rate | string | optional | Ставка НДС, |
type | string | required | Способ расчета НДС |
} |
HTTP/1.1 201 Created
Content-Type: application/json;charset=UTF-8
{
"number": "1",
"date": "2023-11-24",
"bankStatus": "CREATED",
"bankComment": null,
"externalId": "88ffd6c6-61d8-4269-ab1c-8c6ba21eb257",
"amount": "100.00",
"operationCode": "02",
"deliveryKind": "электронно",
"digestSignatures": [
{
"base64Encoded": "HlaeIHXXEcGT1bFxo1NlpAzpr+kJ2IQrcxVdvDTep6xjsmD1FDb+6NIyLT+/T24S0mPfVCU75sieOMt71TBS7w==",
"certificateUuid": "22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6"
}
],
"priority": "5",
"voCode": null,
"purpose": "Оплата заказа №123. НДС 20%",
"payerName": "ООО_Автотест_Клиент_ЕКС_20231027092414",
"payerInn": "6376615662",
"payerAccount": "40702810506000002149",
"payerBankBic": "048073601",
"payerBankCorrAccount": "30101810300000000601",
"payeeName": "ТЕСТ9036",
"payeeInn": "7379190522",
"payeeAccount": "40702810006000001792",
"payeeBankBic": "048073601",
"payeeBankCorrAccount": "30101810300000000601",
"crucialFieldsHash": "0c78790070b8487a4d73151bdab59899",
"vat": {
"type": "INCLUDED",
"rate": "20",
"amount": "20.00"
},
"paymentCondition": "1"
}
202 (Accepted)
Cause | Message | Description |
---|---|---|
WORKFLOW_FAULT | Документ сохранен, но обработка ЭП или принятие документа завершились ошибкой. ЭП не может быть принята | Неизвестный идентификатор сертификата. Проверьте корректность отправленной ЭП в запросе. Возможно, была отправлена ЭП с типом "Первая подпись" или "Вторая подпись". Для случаев, когда используется ЭП подписантов с типом "Первая подпись" или "Вторая подпись" для принятия документа в обработку требуется передать в запросе данные обеих подписей. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
ResourceFault { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки (UUID), |
message | string | optional | Сообщение, |
checks | array[Check] | optional | Список проверок, приведших к ошибке, |
fieldNames | array[string] | optional | Названия полей с некорректным значением (только для VALIDATION_FAULT) |
} | |||
Check { | |||
level | string | optional | Уровень результата = ['ERROR', 'WARNING'], |
message | string | optional | Сообщение, |
fields | array[string] | optional | Названия полей (при наличии связи с моделью) |
} |
HTTP/1.1 202 Accepted
Content-Type: application/json;charset=UTF-8
{
"cause": "WORKFLOW_FAULT",
"referenceId": "73d032bd-e5ca-486b-8978-4d430af67320",
"message": "Документ сохранен, но обработка ЭП или принятие документа завершились ошибкой. ЭП не может быть принята",
"checks": [
{
"level": "ERROR",
"message": "Неизвестный идентификатор сертификата: 22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6",
"fields": []
}
],
"fieldNames": null
}
400 (Bad request)
Cause | Message | Description |
---|---|---|
DESERIALIZATION_FAULT | Неверный формат запроса | Данные в request указаны в неправильном формате. Атрибуты request, в которых найдены ошибки, указаны в responce в массиве fields с описанием проблемы. Описание типа, формата и regexp атрибутов находится в request ресурса. Скорректируйте заполнение атрибутов и повторите запрос. |
WORKFLOW_FAULT | Невозможно идентифицировать организацию плательщика | Проверьте корректность указанных реквизитов плательщика. |
Невозможно идентифицировать банк получателя по указанным номеру БИК и корреспондентскому счету | Проверьте корректность указанных реквизитов получателя платежа - атрибуты payeeBankBic и payeeBankCorrAccount | |
Документ с таким externalId уже существует в системе | Используется externalId, который уже есть в системе (дубль). Сгенерируйте новый externalId и повторите запрос. | |
VALIDATION_FAULT | Ошибка валидации | Данные не соответствуют требованиям валидации. Сведения о некорректных атрибутах request содержатся в массивах fieldNames и checks. Подробные требования к атрибутам описаны в request ресурса, включая типы, форматы и регулярные выражения. Необходимо скорректировать заполнение атрибутов и повторить запрос. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
ResourceFault { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки (UUID), |
message | string | optional | Сообщение, |
checks | array[Check] | optional | Список проверок, приведших к ошибке, |
fieldNames | array[string] | optional | Названия полей с некорректным значением (только для VALIDATION_FAULT) |
} | |||
Check { | |||
level | string | optional | Уровень результата = ['ERROR', 'WARNING'], |
message | string | optional | Сообщение, |
fields | array[string] | optional | Названия полей (при наличии связи с моделью) |
} |
HTTP/1.1 400 Bad Request
Content-Type: application/json;charset=UTF-8
{
"cause": "DESERIALIZATION_FAULT",
"referenceId": "4a0e6754-ad22-4d7d-ac82-810afd08b5b2",
"message": "Неверный формат запроса",
"checks": [
{
"level": "ERROR",
"message": "Cannot deserialize instance of `java.util.ArrayList<Signature>` out of START_OBJECT token",
"fields": [
"digestSignatures"
]
}
],
"fieldNames": [
"digestSignatures"
]
}
401 (Unauthorized Error)
Cause | Message | Description |
---|---|---|
UNAUTHORIZED | accessToken not found by value =хххххххх-хххх-хххх-хххх-хххххххххххх-х | Указан некорректный или просроченный access_token. Используйте refresh_token для обновления access_token и повторите запрос. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки, |
message | string | optional | Сообщение, |
} |
HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=UTF-8
{
"cause": "UNAUTHORIZED",
"referenceId": "014ec3a1-3e41-4805-9e22-d07947b012af",
"message": "accessToken not found by value = 3513f959-bbd5-490a-9f9f-67fb7380fae5-2"
}
403 (Forbidden)
Cause | Message | Description |
---|---|---|
ACTION_ACCESS_EXCEPTION | Операция не может быть выполнена: доступ к ресурсу запрещен | Используемый в запросе access_token не имеет разрешения на доступ к нужному сервису Sber API. В ссылке авторизации СберБизнес ID, в параметре scope, не указана операция PAYMENT_REQUEST_OUT . Необходимо добавить эту операцию в scope. Пользователю потребуется пройти авторизацию заново. Вы получите новые токены access_token и refresh_token. Сделайте повторный запрос с новым access_token. |
Вы использовали access_token пользователя Клиента, а не пользователя вашей организации. Нужно использовать access_token пользователя вашей организации. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки, |
message | string | optional | Сообщение, |
} |
HTTP/1.1 403 Forbidden
Content-Type: application/json;charset=UTF-8
{
"cause": "ACCESS_EXCEPTION",
"referenceId": "74cbc645-297c-451d-af9c-97c68c2c3560",
"message": "Получение информации о подключенных клиентах возможно только по собственной организации"
}
429 (Too Many Requests)
Cause | Message | Description |
---|---|---|
TOO_MANY_REQUESTS | Превышен лимит запросов. Повторите операцию позже. | Количество запросов к данному методу за ограниченное время превысило допустимое значение. Пользователю необходимо повторить запрос позднее |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice{ | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки (UUID), |
message | string | optional | Сообщение, |
} |
json HTTP/1.1 429 Too Many Requests Content-Type: application/json;charset=UTF-8
{ "cause": " TOO_MANY_REQUESTS ", "referenceId": "5650c1e4-5039-4038-8cad-afab64003f61", "message": " Превышен лимит запросов. Повторите операцию позже" }
500 (Internal Server Error)
Cause | Message | Description |
---|---|---|
UNKNOWN_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки, |
message | string | optional | Сообщение, |
} |
HTTP/1.1 500 Internal Server Error
Content-Type: application/json;charset=UTF-8
{
"cause": "UNKNOWN_EXCEPTION",
"referenceId": "9e209109-4b0d-408c-a2fd-e1983c20a65d",
"message": "Внутренняя ошибка сервера"
}
503 (Service Temporarily Unavailable)
Cause | Message | Description |
---|---|---|
UNAVAILABLE_RESOURCE_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки, |
message | string | optional | Сообщение, |
} |
HTTP/1.1 503 Service Temporarily Unavailable
Content-Type: application/json;charset=UTF-8
{
"cause": "UNAVAILABLE_RESOURCE_EXCEPTION",
"referenceId": "9e209109-4b0d-408c-a2fd-e1983c20a67d",
"message": "Внутренняя ошибка сервера"
}