Валютное платежное поручение

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

Ресурс /v1/pay-doc-cur

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

Шаги:

1. Получить AccessToken.

2. Сформировать ЭП.

3. Отправить запрос.

4. Получить статус.

Для создания документа необходимо отправить POST-запрос (/v1 /pay-doc-cur), в котором необходимо передать авторизационный токен для доступа к данным собственной/дочерней организации (Access Token) и реквизитный состав документа. Авторизационный токен передается в параметре Authorization заголовка запроса.

Чтобы получить доступ к ресурсу, необходимо передать в scope сервис PAY_DOC_CUR.

Модель запроса и ответа

Наименование Описание
Параметры заголовка
Authorization String
Access token собственной/дочерней организации, полученный через SSO.
Пример: Bearer 8190f687-c916-453b-9d68-0ce22f4f3f9d-1
Параметры запроса
PayDocCur {
acceptDate (string, optional, read only) Дата представления в банк ,
addInfo (string, optional) Примечание , 300 символов
additionalInfo (string, optional) Информация получателю платежа (дополнительная информация), поле 72 , 220 символов
amountDebitTotal (number, optional, read only) Фактическая сумма списанной валюты ,
amountTransfer (AmountCurrency) Сумма перевода ,
amountTransferTotal (number, optional, read only) Фактическая сумма переведенной валюты ,
authPersonName (string, optional) ФИО уполномоченного сотрудника организации клиента ,
authPersonTelfax (string, optional) Номер телефона, факса уполномоченного сотрудника организации клиента ,
b77info (string, optional) Информация для регулирующих органов , 109 символов
bankComment (string, optional, read only) Банковский комментарий к статусу документа ,
bankStatus (string, optional, read only) Статус документа ,
beneficiaryAccount (string, optional) Счет бенефициара , 34 символа
beneficiaryAddress (string, optional) Адрес бенефициара ,
beneficiaryBankAccount (string, optional) Корреспондентский счет банка бенефициара ,
beneficiaryBankAddress (string, optional) Адрес банка бенефициара , 255 символов
beneficiaryBankBranchName (string, optional) Наименование филиала банка бенефициара , 70 символов
beneficiaryBankClearingCode (ClearingCode, optional) Клиринговый код банка бенефициара ,
beneficiaryBankCountryDigital (string) Цифровой код страны банка бенефициара ,
beneficiaryBankCountryIso2 (string) 2х буквенный ISO-код страны банка бенефициара ,
beneficiaryBankName (string) Наименование банка бенефициара , 140 символов
beneficiaryBankPlace (string) Местонахождение банка бенефициара , 255 символов
beneficiaryBankSwift (string, optional) SWIFT-код банка бенефициара ,11 символов
beneficiaryBeiCode (string, optional) BEI-код (SWIFT-код) банка бенефициара , 11 символов
beneficiaryCountryDigital (string) Цифровой код страны бенефициара , 3 цифры
beneficiaryCountryIso2 (string) 2х буквенный ISO-код страны бенефициара , 2 заглавные латинские буквы
beneficiaryCountryName (string, optional) Наименование страны бенефициара на русском языке (краткое наименование) , 255 символов
beneficiaryInn (string, optional) ИНН бенефициара , 10 либо 12 цифр, либо "0". Не заполняется при paymentDirection=0,
beneficiaryName (string) Наименование бенефициара , 140 символов
beneficiaryPlace (string) Город (месторасположение) бенефициара , 35 символов
chargesType (string) Тип комиссии за перевод: BEN, SHA или OUR = ['BEN', 'SHA', 'OUR']
stringEnum: "BEN", "SHA", "OUR",
codes23e (Array[Code23e], optional) 23E: Код инструкции ,
date (string) Дата составления документа , YYYY-MM-DD
digestSignatures (Array[Signature], optional) Электронные подписи по дайджесту документа ,
externalId (string) Идентификатор документа в организации-партнере (UUID) ,
factRate (number, optional, read only) Фактический курс конверсии ,
iMediaBankAddress (string, optional) Адрес банка-посредника , 255 символов
iMediaBankCountryDigital (string, optional) Цифровой код страны банка-посредника , 3 цифры
iMediaBankCountryIso2 (string, optional) 2х буквенный ISO-код страны банка-посредника , 2 заглавные латинские буквы
iMediaBankName (string, optional) Наименование банка-посредника , 140 символов
iMediaBankPlace (string, optional) Город банка-посредника , 35 символов
iMediaBankSwift (string, optional) SWIFT-код банка-посредника , 11 символов
iMediaClearingCode (ClearingCode, optional) Клиринговый код банка-посредника ,
iMediaFilialBankName (string, optional) Наименование филиала банка-посредника ,
inn (string) ИНН клиента , 10 либо 12 цифр, либо "0"
linkedDocs (Array[LinkedDoc], optional) Связанные документы ,
number (string, optional) Номер документа , до 7 цифр
option50a (string) Опция 50а = ['K', 'F'] stringEnum: "K", "F",
option56a (string, optional) Опция 56a = ['A', 'D'] stringEnum: "A", "D",
option57a (string) Опция 57а = ['A', 'D'] stringEnum: "A", "D",
option59a (string, optional) Опция 59а = ['A', 'F'] stringEnum: "A", "F",
orgName (string) Сокращенное наименование организации клиента , 160 символов
payerAccount (string) Счет плательщика , 20 цифр
payerAddress (string) Адрес плательщика , 120 символов
payerBankBic (string) БИК банка плательщика , 9 цифр
payerBankPlace (string, optional) Местонахождение банка плательщика , 35 символов
payerCountryDigital (string) Цифровой код страны перевододателя , 3 цифры
payerCountryIso2 (string) 2х буквенный ISO-код страны перевододателя ,
payerCountryName (string) Наименование страны перевододателя на русском языке (краткое наименование) , 255 символов
payerName (string) Международное наименование плательщика , 140 символов
payerPlace (string) Город (местонахождение) плательщика , 35 символов
paymentDetails (string) Назначение платежа , 146 символов
paymentDirection (string) Направление платежа (Платеж внутри или вне СБРФ): 1-внутри, 0-вне ,
rateAgree (boolean) С курсом проведения конверсионной операции согласны ,
urgent (boolean) Срочность , значение true необходимо отправлять в случае, если по счету списания есть возможность отправлять неотложные платежи.
valueDate (string, optional, read only) Дата валютирования/возврата
}AmountCurrency {
amount (number) Сумма , Максимум 16 цифр в целой части, максимум 2 цифры в дробной части, не менее 0.01
currencyCode (string) Цифровой код валюты , 3 символа: первый - заглавная латинская буква либо цифра, второй и третий - цифры
currencyName (string) Буквенный ISO-код валюты, 3 заглавные латинские буквы
}ClearingCode {
clearingCode (string, optional) Клиринговый код , 11 символов
countryCode (string, optional) 2-х символьный код страны,
shortName (string, optional) Сокращенное наименование национального клирингового кода , 140 символов
symbol (string, optional) Обозначение национального клирингового кода 2 заглавные латинские буквы
}Code23e {
code (string) Код инструкции , 4 символа
description (string, optional) Описание , 255 символов
info (string, optional) Дополнительная информация 30 символов
}Signature {
base64Encoded (string) Значение электронной подписи, закодированное в Base64 ,
certificateUuid (string) Уникальный идентификатор сертификата ключа проверки электронной подписи (UUID)
}LinkedDoc {
docExtId (string) Идентификатор документа во внешней системе (UUID) ,
type (string) Тип связанного документа
}

Пример:

{
   "addInfo":"Примечание",
   "additionalInfo":"/CCTFDR/",
   "amountTransfer":{
      "amount":1.01,
      "currencyCode":"840",
      "currencyName":"USD"
   },
   "amountTransferTotal":1.01,
   "authPersonName":"Иванов Иван Иванович",
   "authPersonTelfax":"4955005550",
   "b77info":"/BENEFRES/",
   "beneficiaryAccount":"40802840600000200000",
   "beneficiaryAddress":"UL.KUTUZOVSKAYA,D.2",
   "beneficiaryBankAccount":"40802840600000200000",
   "beneficiaryBankAddress":"3, AVENUE HOCHE",
   "beneficiaryBankBranchName":"(TREASURY DEPARTMENT)",
   "beneficiaryBankClearingCode":{
      "clearingCode":"BLAAAOLU",
      "countryCode":"DE",
      "shortName":"German Bankleitzahl (BLZ)",
      "symbol":"BL"
   },
   "beneficiaryBankCountryDigital":"643",
   "beneficiaryBankCountryIso2":"RU",
   "beneficiaryBankName":"ALANDSBANKEN ABP (FINLAND),SVENSK FILIAL",
   "beneficiaryBankPlace":"ФИНЛЯНДИЯ",
   "beneficiaryBankSwift":"AABAFI22TMS",
   "beneficiaryBeiCode":"UBSWUS33CHI",
   "beneficiaryCountryDigital":"643",
   "beneficiaryCountryIso2":"RU",
   "beneficiaryCountryName":"РОССИЯ",
   "beneficiaryInn":"7707083893",
   "beneficiaryName":"EMIRP",
   "beneficiaryPlace":"MOSCOW",
   "chargesType":"BEN",
   "codes23e":[
      {
         "code":"SDVA",
         "description":"Средства должны быть зачислены бенефициару той же датой валютирования",
         "info":"DOPOLNITEL INFO 8747483893"
      }
   ],
   "date":"2018-12-31",
   "digestSignatures":[
      {
         "base64Encoded":"HlaeIHXXEcGT1bFxo1NlpAzpr+kJ2IQrcxVdvDTep6xjsmD1FDb+6NIyLT+/T24S0mPfVCU75sieOMt71TBS7w==",
         "certificateUuid":"22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6"
      }
   ],
   "externalId":"22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6",
   "iMediaBankAddress":"ACCIONES Y VALORES, PISO 12:CALLE 72 7 64",
   "iMediaBankCountryDigital":"643",
   "iMediaBankCountryIso2":"RU",
   "iMediaBankName":"BANCO DE DESENVOLVIMENTO DE ANGOLA",
   "iMediaBankPlace":"LUANDA",
   "iMediaBankSwift":"BDAAAOLU",
   "iMediaClearingCode":{
      "clearingCode":"BLAAAOLU",
      "countryCode":"DE",
      "shortName":"German Bankleitzahl (BLZ)",
      "symbol":"BL"
   },
   "iMediaFilialBankName":"BANCO DE DESENVOLVIMENTO DE ANGOLA",
   "inn":"7707083893",
   "linkedDocs":[
      {
         "docExtId":"22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6",
         "type":"PayDocCur"
      }
   ],
   "number":"1",
   "option50a":"K",
   "option56a":"A",
   "option57a":"A",
   "option59a":"A",
   "orgName":"ООО \"Организация\"",
   "payerAccount":"40802840600000200000",
   "payerAddress":"UL.DOBROLIUBOVA,D.18,OF.III",
   "payerBankBic":"044525225",
   "payerBankPlace":"MOSCOW",
   "payerCountryDigital":"643",
   "payerCountryIso2":"RU",
   "payerCountryName":"РОССИЯ",
   "payerName":"LLC COMPANY",
   "payerPlace":"MOSKVA",
   "paymentDetails":"CONTRACT 123",
   "paymentDirection":"0",
   "rateAgree":false,
   "urgent":false"valueDate":"2018-12-31"
}
Наименование документа type для linkedDocs
СВО CurrencyOperationDetails

Заполнение клиринговых кодов

Для задания клиринговых кодов банка бенефициара и банка-посредника, описываемых в виде JSON-объекта ClearingStructure, можно использовать данные справочников:

  • Справочник структур национальных клиринговых кодов (ClearingStructure) для заполнения countryCode, shortName и symbol;
  • Международный справочник банков (SwiftBic) для заполнения clearingCode и countryCode.

Чтобы их получить, необходимо отправить соответствующие GET-запросы с указанием имени нужного справочника (см. Получение справочной информации). ДОБАВИТЬ ССЫЛКУ, НО КУДА?

Ниже представлена таблица с заполняемыми полями объекта ClearingCode с соответствующими им значениями полей объектов из полученных справочников.

Имя поля Описание
Поля объекта ClearingCode
clearingCode (String) Клиринговый код банка
countryCode (String) Код страны (2 символа)
shortName (String) Сокращенное наименование национального клирингового кода
symbol (String) Обозначение национального клирингового кода
Поля объектов из справочника ClearingStructure
countryCode (String) Код страны (2 символа)
name (String) Сокращенное наименование национального клирингового кода
note (String) Обозначение национального клирингового кода
Поля объектов из справочника SwiftBic
bicInt (String) Международный БИК
mnem02 (String) 2-символьный код страны

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

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

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

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

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

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

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

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

Формирование электронной подписи (ГОСТ 2012)

Теги дайджеста должны быть отсортированы по алфавиту. В дайджесте не указываются значения number и блок linkedDocs.

Формат дайджеста

Наименование поля Описание поля Пример
addInfo Примечание Примечание
additionalInfo Информация получателю платежа (поле 72) /CCTFDR/
amountTransfer.amount Сумма валютного перевода 1.00
amountTransfer.currencyCode Цифровой код валюты 840
amountTransfer.currencyName ISO-код валюты USD
authPersonName ФИО ответственного лица Иванов Алексей Сергеевич
authPersonTelfax Телефон ответственного лица 74951234567
b77info Информация для регулирующих органов Информация для регулирующих органов
beneficiaryAccount Счет бенефициара 4,08028E+19
beneficiaryAddress Адрес бенефициара UL.KUTUZOVSKAYA,D.2
beneficiaryBankAccount Корреспондентский счет банка бенефициара 4,08028E+19
beneficiaryBankAddress Адрес банка бенефициара ул. Вавилова, д. 19
beneficiaryBankBranchName Наименование филиала банка бенефициара (TREASURY DEPARTMENT)
beneficiaryBankClearingCode.clearingCode Клиринговый код банка бенефициара 111111
beneficiaryBankClearingCode.countryCode Обозначение национального клирингового кода банка бенефициара UA
beneficiaryBankClearingCode.shortName Сокращенное наименование национального клирингового кода Сокращенное наименование национального клирингового кода
beneficiaryBankClearingCode.symbol Клиринговый код банка бенефициара UA
beneficiaryBankCountryDigital Цифровой код страны банка бенефициара 643
beneficiaryBankCountryIso2 2х буквенный ISO-код страны банка бенефициара RU
beneficiaryBankName Наименование банка бенефициара ПАО СБЕРБАНК
beneficiaryBankPlace Местонахождение банка бенефициара MOSKVA
beneficiaryBankSwift SWIFT-код банка бенефициара ABNARUMMSPB
beneficiaryBeiCode BEI-код (SWIFT-код) AAAAAAAA
beneficiaryCountryDigital Цифровой код страны бенефициара 643
beneficiaryCountryIso2 2х буквенный ISO-код страны бенефициара RU
beneficiaryCountryName Наименование страны бенефициара на русском языке (краткое наименование) Россия
beneficiaryInn ИНН бенефициара 2,22201E+11
beneficiaryName Наименование бенефициара EMIRP
beneficiaryPlace Город (месторасположение) бенефициара MOSKVA
chargesType Тип комиссии за перевод: BEN, SHA или OUR BEN
date Дата документа 16.10.2019
externalId Идентификатор документа в организации-партнере (UUID) 619e25cf-dc0b-4420-8957-1b94bf29f145
iMediaBankAddress Адрес банка-посредника SWEDEN HOUSE
iMediaBankCountryDigital Цифровой код страны банка-посредника 643
iMediaBankCountryIso2 2х буквенный ISO-код страны банка-посредника RU
iMediaBankName Наименование банка-посредника ABN AMRO BANK A.O.
iMediaBankPlace Город банка-посредника ST. PETERSBURG
iMediaBankSwift SWIFT-код банка-посредника ABNARUMMSPB
iMediaClearingCode.clearingCode Клиринговый код банка посредника 111111
iMediaClearingCode.countryCode Обозначение национального клирингового кода банка-посредника UA
iMediaClearingCode.shortName Сокращенное наименование национального клирингового кода
iMediaClearingCode.symbol Обозначение национального клирингового кода банка-посредника UA
iMediaFilialBankName Наименование филиала банка-посредника ОСБ1
inn ИНН клиента 1182079004
option50a Опция "K" для поля 50а K
option56a Опция "A", "D" для поля 56а A
option57a Опция "A", "D" для поля 57а A
option59a Опция "А" для поля 59а или «без опции» A
orgName Наименование организации клиента Организация YUaegpVCyvHROOE
payerAccount Счет плательщика 4,07028E+19
payerAddress Адрес плательщика UL.DOBROLIUBOVA,D.18,OF.III
payerBankBic БИК банка плательщика 44525225
payerBankPlace Местонахождение банка плательщика MOSKVA
payerCountryDigital Цифровой код страны перевододателя 643
payerCountryIso2 2х буквенный ISO-код страны перевододателя RU
payerCountryName Наименование страны перевододателя на русском языке (краткое наименование) Россия
payerName Международное наименование плательщика LLC COMPANY
payerPlace Город (местонахождение) плательщика MOSKVA
paymentDetails Назначение платежа ABCD
paymentDirection Направление платежа (Платеж внутри или вне СБРФ): 1-внутри, 0-вне 1
rateAgree С курсом проведения конверсионной операции согласны true
urgent Срочность false
TABLES
Table 23E: Код инструкции Codes23e
code Код инструкции TELE
description Описание Описание
info Дополнительная информация ИНФО
# Разделитель

Пример:

addInfo=Примечание
additionalInfo=Информация получателю платежа
amountTransfer.amount=1.00
amountTransfer.currencyCode=840
amountTransfer.currencyName=USD
authPersonName=Иванов Алексей Сергеевич
authPersonTelfax=+74951234567
b77info=Информация для регулирующих органов
beneficiaryAccount=40802840600000200000
beneficiaryAddress=UL.KUTUZOVSKAYA,D.2
beneficiaryBankAccount=40802840600000200000
beneficiaryBankAddress=ул. Вавилова, д. 19
beneficiaryBankBranchName=ОСБ1
beneficiaryBankClearingCode.clearingCode=111111
beneficiaryBankClearingCode.countryCode=UA
beneficiaryBankClearingCode.shortName=Сокращенное наименование национального клирингового кода
beneficiaryBankClearingCode.symbol=UA
beneficiaryBankCountryDigital=643
beneficiaryBankCountryIso2=RU
beneficiaryBankName=ПАО СБЕРБАНК
beneficiaryBankPlace=MOSKVA
beneficiaryBankSwift=ABNARUMMSPB
beneficiaryBeiCode=AAAAAAAA
beneficiaryCountryDigital=643
beneficiaryCountryIso2=RU
beneficiaryCountryName=Россия
beneficiaryInn=222201236445
beneficiaryName=EMIRP
beneficiaryPlace=MOSKVA
chargesType=BEN
date=2019-11-26
externalId=fa1dabed-d7c4-42c3-9c59-25cbf4724765
iMediaBankAddress=SWEDEN HOUSE
iMediaBankCountryDigital=643
iMediaBankCountryIso2=RU
iMediaBankName=ABN AMRO BANK A.O.
iMediaBankPlace=ST. PETERSBURG
iMediaBankSwift=ABNARUMMSPB
iMediaClearingCode.clearingCode=111111
iMediaClearingCode.countryCode=UA
iMediaClearingCode.shortName=Сокращенное наименование национального клирингового кода
iMediaClearingCode.symbol=UA
iMediaFilialBankName=ОСБ1
inn=7494979410
option50a=K
option56a=A
option57a=A
option59a=A
orgName=Организация LCMdmYRFBCUflhq
payerAccount=40702840459430282265
payerAddress=UL.DOBROLIUBOVA,D.18,OF.III
payerBankBic=044525225
payerBankPlace=MOSKVA
payerCountryDigital=643
payerCountryIso2=RU
payerCountryName=Россия
payerName=LLC COMPANY
payerPlace=MOSKVA
paymentDetails=НАЗНАЧЕНИЕ ПЛАТЕЖА
paymentDirection=1
rateAgree=true
urgent=false
TABLES
Table=Codes23e
code=TELE
description=Описание
info=Дополнительная информация
#

Подписание запроса транспортной подписью (JWS)

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

Ресурс /v1/pay-doc-cur/{externalId}/state

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

Шаги:

1. Получить AccessToken.

2. Отправить запрос

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

Чтобы получить доступ к ресурсу, необходимо передать в scope сервис PAY_DOC_CUR.

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

Наименование Описание
Параметры заголовка
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/pay-doc-cur
/22a6dd81-103a-4d3a-8e9b0ba4b527f010/state'

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

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

Пример:

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

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

Код состояние документа Наименование статуса
Промежуточные статусы/Продолжать опрашивать
ACCEPTED Принят
ACCEPTED_BY_ABS Принят АБС
ACCEPTED_BY_CFE Принят ВК
ACCEPTED_RZK Акцептован СБК
CARD2 Картотека №2
CORRESPONDENT_APPROVE_WAITING Ожидает подтверждения контрагента
CREATED Создан
CHECKERROR Ошибка контроля
CREATED_BANK Создан Банком
CHECKERROR_BANK Ошибка контроля, Банк
DELAYED Приостановлен
DELIVERED Доставлен
EXPORTED Выгружен
FRAUDSMS Требуется подтверждение СМС-паролем
FRAUDREVIEW На проверке у специалиста банка
FRAUDSENT Отправлен во ФРОД
FRAUDALLOW Одобрен ФРОД
FRAUDDENY Отвергнут ФРОД
IMPORTED Импортирован
IMPORTED_BANK Импортирован Банком
NEED_REVIEW Необходимы исправления
PROCESSING В обработке
PUBLISHED_BY_BANK Издан Банком
PARTSIGNED Частично подписан
PROCESSING_RZK Обрабатывается СБК
PROCESSED Обработан
READY_TO_SEND Ждет отправки
RETURNED Возвращен
RATE_CONFIRMATION На подтверждении курса
SIGNED Подписан
SENDING Отправляется
SENDED Отправлен
SENDING_TO_RZK Отправляется в СБК
SIGNED_BANK Подписан Банком
SENT_TO_ADMIN Передан администратору
TEMPLATE Шаблон документа
TRIED Проверен
TO_PROCESSING_RZK К отправке в СБК
TO_SIGN_IN_RZK Подписывается в СБК
TRIED_BY_CFE Проверяется ВК
USER_RESERVED Зарезервированы логины
VALIDEDS ЭП/АСП верна
Окончательные статусы/Прекратить опрос
CLOSED Закрыт
DELETED Удален
EXPORTED_TO_1C Выгружен в реестр
INVALIDEDS ЭП/АСП не верна
PROCESSERROR Отказан
REQUISITEERROR Ошибка реквизитов
REFUSEDBYBANK Отвергнут Банком
REFUSEDBYABS Отказан АБС
RECALL Отозван
RECALL_BY_BANK Отозван Банком
REFUSED_BY_CFE Отказан ВК
UNABLE_TO_DECRYPT Ошибка шифрования
UNABLE_TO_RECEIVE Ошибка при приеме
Окончательные(Успешные) статусы/Прекратить опрос
IMPLEMENTED Исполнен

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

Ресурс /v1/pay-doc-cur/{externalId}

Метод позволяет получить ранее отправленный электронный документа с информацией о причинах возврата/отказа электронного документа.

Шаги:

1. Получить AccessToken.

2. Отправить запрос.

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

Чтобы получить доступ к ресурсу, необходимо передать в scope сервис PAY_DOC_CUR.

Модель запроса и ответа

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

Пример:

curl -X GET --header 'Accept: application/json' --header
'Authorization: Bearer f8ad3141-b7e8-4924-92de-3de4fd0a464e-1'
'https://edupirfintech.sberbank.ru:9443/fintech/api/v1/pay-doc-cur/22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6'

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

Соответствует модели запроса и ответа /v1/pay-doc-cur

Подписание запроса транспортной подписью (JWS)

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

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

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

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

Подписание запроса транспортной подписью

Content-Type может содержать одно из двух значений:

  • application/json – запрос без подписи
  • application/jose – запрос, подписанный транспортной подписью

Если Content-Type имеет значение application/jose, то запрос должен содержать данные (реквизитный состав платежного документа) в виде компактной сериализации RFC 7515: JSON Web Signature (JWS).

JWS состоит из:

1. Заголовка (Header)
2. JSON-документа с реквизитным составом платежного поручения (Payload)
3. Подписи запроса (Signature)

Формирование компактной сериализации JWS

JWS формируется из трех составляющих:

Base64Url(Header) || ’.’ ||  Base64Url(Payload) || ’.’ || Base64Url(Signature)

Signature - это подпись данных приватной частью ключевой пары клиента (используется приватный ключ парный сертификату клиента с UUID, указанному в Заголовке (Header) в параметре kid).
Подпись вычисляется по алгоритму указанному в Заголовке (Header) в параметре alg, в данном случае gost34.10-2012, и вычисляется от исходных данных:

Base64Url(Header) || ‘.’ || Base64Url(Payload).

Формирование исходных данных для вычисления подписи описано в спецификации RFC 7515: JSON Web Signature (JWS).

Следует отметить, что при кодировании JWS используется преобразование Base64Url, отличающееся от Base64 преобразования.
Условно это преобразование можно представить следующим образом:

Base64Url(x) := Base64(x).Split(‘=’)[0].Replace(‘+’, ’-’).Replace(‘/’, ’_’)

здесь функция Split(x), разбивает строку на части ([i] означает взятие i–ой части), используя символ разделитель x, функция Replace(x,y) заменяет все вхождения символа x на символ y.

Преобразование BASE64URL, отличается от BASE64 преобразования:

BASE64URL BASE64
- (minus) +
_ (underline) /
  • В BASE64URL не используется (опускается) padding, т.е. не добавляются знаки ‘=’ на конце закодированного содержимого Padding of Encoded Data.

В ответе на запрос сервер возвращает JSON-документ, который содержит реквизитный состав подготовленного черновика рублевого платежного поручения в статусе Создан.

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

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

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

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

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

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