Содержание

Ресурс /v1/currency-operation-details

Метод позволяет создавать документ сведений о валютных операциях (далее СВО) — черновик или ЭД заверенный ЭП. Документ может быть отправлен по собственной организации с ЭП организации или за клиента с ЭП клиента при наличии согласия на формирование СВО, без ЭП клиента при наличии согласия на формирование СВО для создания черновика.»

Предварительные действия


Выполнить OAuth-авторизацию, в результате которой получ
ить авторизационный токен

к данным (Access Token, см. Получение ключа доступа к данным клиента).

Предварительные действия

Выполнить OAuth-авторизацию, в результате которой получ
ить авторизационный токен
к данным (Access Token, см. Получение ключа доступа к данным клиента).

Выполнить OAuth-авторизацию клиента, в результате которой получить авторизационный токен к его данным (Access Token, см. г. Получение авторизационного токена к данным клиента).

Проверка неизменности реквизитов документа

Если партнёру требуется проверить неизменность реквизитов получателя платежа, до получения выписки с информацией о проведенном документе, необходимо сравнить хэш реквизитов получателя(crucialFieldsHash), полученные при создании черновика документа, с crucialFieldsHashполученнымпри запросе статуса документа.

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

№ п.п. Наименование поля Описание поля Пример
1. amount Сумма платежа 100.00
2. date Дата составления документа 2018-05-31
3. departmentalInfo.docNumber108 Номер налогового документа(реквизит-108) 123
4. departmentalInfo.drawerStatus101 Показатель статуса налогоплательщика(реквизит-101) 01
5. departmentalInfo.kbk Код бюджетной классификации(реквизит-104) 18210102010011000110
6. departmentalInfo.oktmo Код ОКТМО(реквизит-105) 01701000
7. departmentalInfo.paymentKind110 Тип налогового платежа(реквизит-110) НС
8. departmentalInfo.reasonCode106 Показатель основания платежа(реквизит-106) ТП
9. departmentalInfo.uip Уникальный идентификатор платежа 0
10. externalId Идентификатор документа, присвоенный партнёром a0000000-0000-0000-0000-000000000001
11. operationCode Код операции 01
12. payeeAccount Номер счёта получателя 40702810600100001212
13. payeeBankBic БИК получателя 044525225
14. payeeBankCorrAccount Корсчёт банка получателя 30101810400000000225
15. payeeInn Инн получателя 222201236445
16. payeeKpp Кпп получателя 222201001
17. payeeName Полное наименование получателя платежа Общество с ограниченной ответственностью «Получатель»
18. payerAccount Счёт плательщика 40702810500006103990
19. payerBankBic БИК плательщика 044525225
20. payerBankCorrAccount Корсчёт банка плательщика 30101810400000000225
21. payerInn ИНН плательщика 222201236445
22. payerKpp КПП плательщика 222201001
23. payerName Полное наименование плательщика Общество с ограниченной ответственностью «Клиент»
24. priority Очерёдность платежа 5
25. purpose Назначение платежа Оплата интернет заказа №123. НДС нет.
26. voCode Код вида валютной операции 61150
Пример дайджеста РПП
amount=100.00
date=2018-05-31
departmentalInfo.docDate109=0
departmentalInfo.docNumber108=123
departmentalInfo.drawerStatus101=01
departmentalInfo.kbk=18210102010011000110
departmentalInfo.oktmo=01701000
departmentalInfo.paymentKind110=НС
departmentalInfo.reasonCode106=ТП
departmentalInfo.taxPeriod107=ГД.00.2018
departmentalInfo.uip=0
externalId=a0000000-0000-0000-0000-000000000001
operationCode=01
payeeAccount=40702810600100001212
payeeBankBic=044525225
payeeBankCorrAccount=30101810400000000225
payeeInn=222201236445
payeeKpp=222201001
payeeName=Общество с ограниченной ответственностью "Получатель"
payerAccount=40702810500006103990
payerBankBic=044525225
payerBankCorrAccount=30101810400000000225
payerInn=222201236445
payerKpp=222201001
payerName=Общество с ограниченной ответственностью "Клиент"
priority=5
purpose=Оплата интернет заказа №123. НДС нет.
urgencyCode=0
voCode=61150
  • Теги дайджеста должны быть отсортированы по алфавиту, в формировании дайджеста не участвует поля таблицы linkedDocs и поле number.
  • Если значение поля не определено, то тег в дайджесте не используется.
  • В таблице B
    fAttachments строки сортируются по

    возрастанию fileId.
  • В таблице Operations строки сортируются по возрастанию serialNumber.
Наименование поля Описание поля Пример
accountNumber Номер счета 40702810123643875107
addInfo Дополнительная информация Дополнительная информация
authPersonName ФИО ответственного лица Иванов Иван Иванович
authPersonTelfax Телефон ответственного лица 7 123 1456 56 56
bankNonResidentCountryName Наименование страны СОЕДИНЕННОЕ КОРОЛЕВСТВО
bankNonResidentCountryNumericCode Код страны 826
correction Признак корректировки false
correctionNumber Номер корректировки 1
currencyDocDate Дата валютного документа 2019-05-16
currencyDocNumber Номер валютного документа 54321
currencyDocType Тип валютного документа PayDocCur
date Дата документа 2019-05-16
externalId Идентификатор документа в организации-партнёре 75d8d497-05cc-4cc6-9b78-070ae0a605fd
isAccountInOtherBank Признак счета в другом банке false
isNumberAbsent Признак отсутствия номера валютного документа false
operationDate Дата операции 2019-05-16
paymentAmount.amount Сумма платежа 2.02
paymentAmount.currencyCode Цифровой код валюты платежа 840
paymentAmount.currencyName ISO код валюты платежа USD
paymentDirection Направление платежа 1
senderInn ИНН клиента 7582099944
senderName Полное наименование клиента Организация NyJurbsIJTXzRTL
senderOkpo ОКПО клиента 1350995802
TABLES Значение указывается при наличии UUID-ов больших файлов или Операций
Table=B
fAttachments
Значение указывается при наличии UUID-ов больших файлов
fileId UUID больших файлов 08ba3412-118a-4f4d-be23-e93f81d58fdc
# Разделитель строк таблицы
fileId UUID больших файлов 81ff03ad-bceb-4a8a-b5bf-8c8439519bab
# Разделитель строк таблицы
Table=Operations Значение указывается при наличии операций
additionalInfo Дополнительная информация Примечание
amount.amount Сумма платежа 2.02
amount.currencyCode Цифровой код валюты платежа 840
amount.currencyName ISO код валюты платежа USD
contractDate Дата договора 2019-05-16
contractNumber Номер договора 123
contractNumberType Тип заполнения номера договора 0
creditAmount.amount Сумма договора 33.33
creditAmount.currencyCode Цифровой код валюты договора 840
creditAmount.currencyName ISO код валюты договора USD
dataComposition Состав предоставляемой информации 3
expectedDate Ожидаемый срок 2019-05-16
operationCode Код вида валютной операции 20300
operationCodeDescription Описание валютной операции Оплата нерезидента резиденту по договору аренды движимого или недвижимого имущества
operationReason Основание проведения операции 1
paymentConditions Условия расчета 1
serialNumber Номер по порядку 0
Предлагаем ознакомиться  Декларация по продаже гаража лист а образец заполнения
Пример дайджеста
accountNumber=40702810123643875107
addInfo=Дополнительная информация
authPersonName=Иванов Иван Иванович
authPersonTelfax= 7 123 1456 56 56
bankNonResidentCountryName=СОЕДИНЕННОЕ КОРОЛЕВСТВО
bankNonResidentCountryNumericCode=826
correction=false
correctionNumber=1
currencyDocDate=2019-05-16
currencyDocNumber=54321
currencyDocType=PayDocCur
date=2019-05-16
externalId=75d8d497-05cc-4cc6-9b78-070ae0a605fd
isAccountInOtherBank=false
isNumberAbsent=false
operationDate=2019-05-16
paymentAmount.amount=2.02
paymentAmount.currencyCode=840
paymentAmount.currencyName=USD
paymentDirection=1
senderInn=7582099944
senderName=Организация NyJurbsIJTXzRTL
senderOkpo=1350995802
TABLES
Table=BfAttachments
fileId=08ba3412-118a-4f4d-be23-e93f81d58fdc
#
fileId=81ff03ad-bceb-4a8a-b5bf-8c8439519bab
#
Table=Operations
additionalInfo=Примечание
amount.amount=2.02
amount.currencyCode=840
amount.currencyName=USD
contractDate=2019-05-16
contractNumber=123
contractNumberType=0
creditAmount.amount=33.33
creditAmount.currencyCode=840
creditAmount.currencyName=USD
dataComposition=3
expectedDate=2019-05-16
operationCode=20300
operationCodeDescription=Оплата нерезидента резиденту по договору аренды движимого или недвижимого имущества
operationReason=1
paymentConditions=1
serialNumber=0
#

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

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

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

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

Вид шифр операции сбербанк

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

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

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

Для создания необходимо отправить запрос POST на конечную точку /fintech/api/v1/currency-operation-details

1) application/json – запрос без подписи

2) application/jose – запрос, подписанный транспортной подписью

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

JWS состоит из:

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

Заголовок (Header), JSON-объект, содержащий алгоритм подписи, в данном случае gost34.10-2012; и UUID сертификата Партнёра парный приватному ключу, которым подписан запрос.

Пример
{
  "alg":"gost34.10-2012",
  "kid":"b994381d-d886-4b5a-9407-1672952610aa"
}
Пример
{				
	"number":"70162",
	"date":"2019-05-16",
	"digestSignatures":[{
			"certificateUuid":"ce5aeffe-0b43-4094-84c4-2b9aee6c0495",
			"base64Encoded":"YcHWQPC9JuJjPlrx37imvKx/oYv/q1Gy/2qYNfn180UqkwoAD1Q7kwjoX0mIIZzALFk5PqnzEhFvsGbQooRaFg=="}
	],
	"externalId":"f5c2fc6b-75d5-4dce-8f82-9de3ae5ed434",
	"authPersonName":"Иванов Иван Иванович",
	"authPersonTelfax":" 7 123 1456 56 56",
	"isAccountInOtherBank":false,
	"accountNumber":"40702840965206315903",
	"IsNumberAbsent":false,
	"currencyDocNumber":"54321",
	"currencyDocDate":"2019-05-16",
	"paymentAmount":{
		"amount":"2.02",
		"currencyCode":"840",
		"currencyName":"USD"},
	"paymentDirection":"1",
	"operationDate":"2019-05-16",
	"currencyDocType":"PayDocCur",
	"senderInn":"1520127693",
	"senderName":"Организация ZzuvpYvrdZfooZK",
	"senderOkpo":"7372206214",
	"correction":false,
	"bankNonResidentCountryNumericCode":"826",
	"bankNonResidentCountryName":"СОЕДИНЕННОЕ КОРОЛЕВСТВО",
	"addInfo":"Дополнительная информация",
	"operations":[{
		"serialNumber":0,
		"operationCode":"20300",
		"operationCodeDescription":"Оплата нерезидента резиденту по договору аренды движимого или недвижимого имущества",
		"amount":{
			"amount":"2.02",
			"currencyCode":"840",
			"currencyName":"USD"},
		"contractNumberType":"0",
		"contractNumber":"123",
		"contractDate":"2019-05-16",
		"creditAmount":{
			"amount":"33.33",
			"currencyCode":"840",
			"currencyName":"USD"},
		"expectedDate":"2019-05-16",
		"additionalInfo":"Примечание",
		"operationReason":"1",
		"dataComposition":"3",
		"paymentConditions":"1"}
	],
	"linkedDocs":[{
			"docExtId":"ce5aeffe-2222-4094-84c4-2b9aee6c0495",
			"type": "0401060"
		}
	],
	"bfAttachments": [{
			"fileId": "e27adbad-866e-4159-853f-25ab16e7ae62"
		},
		{
			"fileId": "54e96334-edf2-46e0-a8a1-93fa4907c5ae"
		}
	]
}

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

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

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

Для создания платёжного поручения (по счёту на оплату) необходимо отправить запрос POST на конечную точку /fintech/api/v1/payments/from-invoice.

1) application/json– запрос без подписи

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

JWS состоит из:

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

JSON-документ с реквизитным составом платежного поручения (Payload). Содержимое Payload изменяется в зависимости от реквизитного состава платежного поручения.

Содержимое Payload изменяется в зависимости от реквизитного состава платежного поручения. Описание реквизитного состава г. Создание платежного документа по свободным реквизитам.

Пример
{  
   "amount": 13.01,  
   "date":"2018-07-11",  
   "deliveryKind":"электронно",  
   "externalId":"3e5e5f5a-84f4-11e8-adc0-fa7ae01bbebc",  
   "number": "12",  
   "operationCode":"01",  
   "payeeAccount":"40706810755040000177",  
   "payeeBankBic": "044030653",  
   "payeeBankCorrAccount":"30101810500000000653",  
   "payeeInn": "2723114081",  
   "payeeKpp":"272301001",  
   "payeeName": "Общество с ограниченной ответственностью "Ажур-Аудит-Консалтинг"",  
   "payerAccount":"40702810938000026865",  
   "payerBankBic":"044525225",  
   "payerBankCorrAccount":"30101810400000000225",  
   "payerInn":"7743869996",  
   "payerKpp":"774301001",  
   "payerName": "Общество с ограниченной ответственностью "Аквамир"", 
   "priority":"5",  
   "purpose":"Назначение платежа НДС не облагается", 
   "urgencyCode": "NORMAL",  
   "vat": { 
     "amount": 100.01, 
     "rate": "0", 
     "type": "NO_VAT" 
   }  
}

Формирование компактной сериализации 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).

Пример исходных данных для вычисления подписи
ewogICJhbGciOiAiZ29zdDM0LjEwLTIwMTIiLAogICJraWQiOiAiYjk5NDM4MWQtZDg4Ni00YjVhLTk0MDctMTY3Mjk1MjYxMGFhIgp9.eyJhbW91bnQiOjEzLjAxLCJkYXRlIjoiMjAxOC0wNy0xMSIsImRlbGl2ZXJ5S2luZCI6ItGN0LvQtdC60YLRgNC0L3QvdCIiwiZXh0ZXJuYWxJZCI6IjNlNWU1ZjVhLTg0ZjQtMTFlOC1hZGMwLWZhN2FlMDFiYmViYyIsIm51bWJlciI6IjEyIiwib3BlcmF0aW9uQ29kZSI6IjAxIiwicGF5ZWVBY2NvdW50IjoiNDA3MDY4MTA3NTUwNDAwMDAxNzciLCJwYXllZUJhbmtCaWMiOiIwNDQwMzA2NTMiLCJwYXllZUJhbmtDb3JyQWNjb3VudCI6IjMwMTAxODEwNTAwMDAwMDAwNjUzIiwicGF5ZWVJbm4iOiIyNzIzMTE0MDgxIiwicGF5ZWVLcHAiOiIyNzIzMDEwMDEiLCJwYXllZU5hbWUiOiLQntCx0YnQtdGB0YLQstCINGBINC0LPRgNCw0L3QuNGH0LXQvdC90L7QuSDQvtGC0LLQtdGC0YHRgtCy0LXQvdC90L7RgdGC0YzRjiBcItCQ0LbRg9GALdCQ0YPQtNC40YIt0JrQvtC90YHQsNC70YLQuNC90LNcIiIsInBheWVyQWNjb3VudCI6IjQwNzAyODEwOTM4MDAwMDI2ODY1IiwicGF5ZXJCYW5rQmljIjoiMDQ0NTI1MjI1IiwicGF5ZXJCYW5rQ29yckFjY291bnQiOiIzMDEwMTgxMDQwMDAwMDAwMDIyNSIsInBheWVySW5uIjoiNzc0Mzg2OTk5NiIsInBheWVyS3BwIjoiNzc0MzAxMDAxIiwicGF5ZXJOYW1lIjoi0J7QsdGJ0LXRgdGC0LLQviDRgSDQvtCz0YDQsNC90LjRh9C10L3QvdC-0Lkg0L7RgtCy0LXRgtGB0YLQstC10L3QvdC-0YHRgtGM0Y4gXCLQkNC60LLQsNC80LjRgFwiIiwicHJpb3JpdHkiOiI1IiwicHVycG9zZSI6ItCd0LDQt9C90LDRh9C10L3QuNC1INC_0LvQsNGC0LXQttCwINCd0JTQoSDQvdC1INC-0LHQu9Cw0LPQsNC10YLRgdGPIiwidXJnZW5jeUNvZGUiOiJOT1JNQUwiLCJ2YXQiOnsiYW1vdW50IjoxMDAuMDEsInJhdGUiOiI3IiwidHlwZSI6Ik5PX1ZBVCJ9fQ
Пример вычисленной подписи
SNM2l3cktEuhlcbvxM49v3Mk9vNtgvQfG_JR4bHhDc5dDZMwDkmNdesZ9TGHk7lFQHp_zoTH8KBSDbb-PmTn6g
Пример сформированной компактной сериализации JWS
ewogICJhbGciOiAiZ29zdDM0LjEwLTIwMTIiLAogICJraWQiOiAiYjk5NDM4MWQtZDg4Ni00YjVhLTk0MDctMTY3Mjk1MjYxMGFhIgp9.eyJhbW91bnQiOjEzLjAxLCJkYXRlIjoiMjAxOC0wNy0xMSIsImRlbGl2ZXJ5S2luZCI6ItGN0LvQtdC60YLRgNC-0L3QvdC-IiwiZXh0ZXJuYWxJZCI6IjNlNWU1ZjVhLTg0ZjQtMTFlOC1hZGMwLWZhN2FlMDFiYmViYyIsIm51bWJlciI6IjEyIiwib3BlcmF0aW9uQ29kZSI6IjAxIiwicGF5ZWVBY2NvdW50IjoiNDA3MDY4MTA3NTUwNDAwMDAxNzciLCJwYXllZUJhbmtCaWMiOiIwNDQwMzA2NTMiLCJwYXllZUJhbmtDb3JyQWNjb3VudCI6IjMwMTAxODEwNTAwMDAwMDAwNjUzIiwicGF5ZWVJbm4iOiIyNzIzMTE0MDgxIiwicGF5ZWVLcHAiOiIyNzIzMDEwMDEiLCJwYXllZU5hbWUiOiLQntCx0YnQtdGB0YLQstC-INGBINC-0LPRgNCw0L3QuNGH0LXQvdC90L7QuSDQvtGC0LLQtdGC0YHRgtCy0LXQvdC90L7RgdGC0YzRjiBcItCQ0LbRg9GALdCQ0YPQtNC40YIt0JrQvtC90YHQsNC70YLQuNC90LNcIiIsInBheWVyQWNjb3VudCI6IjQwNzAyODEwOTM4MDAwMDI2ODY1IiwicGF5ZXJCYW5rQmljIjoiMDQ0NTI1MjI1IiwicGF5ZXJCYW5rQ29yckFjY291bnQiOiIzMDEwMTgxMDQwMDAwMDAwMDIyNSIsInBheWVySW5uIjoiNzc0Mzg2OTk5NiIsInBheWVyS3BwIjoiNzc0MzAxMDAxIiwicGF5ZXJOYW1lIjoi0J7QsdGJ0LXRgdGC0LLQviDRgSDQvtCz0YDQsNC90LjRh9C10L3QvdC0Lkg0L7RgtCy0LXRgtGB0YLQstC10L3QvdC0YHRgtGM0Y4gXCLQkNC60LLQsNC80LjRgFwiIiwicHJpb3JpdHkiOiI1IiwicHVycG9zZSI6ItCd0LDQt9C90LDRh9C10L3QuNC1INC_0LvQsNGC0LXQttCwINCd0JTQoSDQvdC1INC0LHQu9Cw0LPQsNC10YLRgdGPIiwidXJnZW5jeUNvZGUiOiJOT1JNQUwiLCJ2YXQiOnsiYW1vdW50IjoxMDAuMDEsInJhdGUiOiI3IiwidHlwZSI6Ik5PX1ZBVCJ9fQ.SNM2l3cktEuhlcbvxM49v3Mk9vNtgvQfG_JR4bHhDc5dDZMwDkmNdesZ9TGHk7lFQHp_zoTH8KBSDbb-PmTn6g

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

JSON-документ с реквизитным составом документа. Содержимое изменяется в зависимости от реквизитного состава документа.

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

Пример исходных данных для вычисления подписи:
ewogICJhbGciOiAiZ29zdDM0LjEwLTIwMTIiLAogICJraWQiOiAiYjk5NDM4MWQtZDg4Ni00YjVhLTk0MDctMTY3Mjk1MjYxMGFhIgp9.CnsgIAogICJhbW91bnQiOjEwLAogICJkYXRlIjoiMjAxOC0wMS0zMVQwMzoxN
zo1MC4zMDlaIiwKICAiZXh0ZXJuYWxJZCI6ICJjMWFkMmQ4Ni04NmQyLTQxN2QtOWNjNC1iYzU3MDNmZDU3YjEiLAogICJudW1iZXIiOiIxMzAiLAogICJvcGVyYXRpb25Db2RlIjogIjAxIiwKICAiZGVsaXZlcnlLaW5
kIjogIjAiLAogICJwYXllZUJhbmtDb3JyQWNjb3VudCI6ICIzMDEwMTgxMDcwMDAwMDAwMDE4NyIsCiAgInBheWVlQmljIjoiMDQ0NTI1MTg3IiwKICAicGF5ZWVJbm4iOiI3NzAyMDcwMTM5IiwKICAicGF5ZWVOYW1lI
jogItCS0KLQkSDQn9CQ0J4iLAogICJwYXllZUFjY291bnQiOiI0MDcwMjgxMDcwMDAwMDAwMDAwMSIsCiAgInBheWVyQWNjb3VudCI6ICI0MDcwMjgxMDczODE3MDAyMTIzMyIsCiAgInBheWVyQmFua0NvcnJBY2NvdW5
0IjogIjMwMTAxODEwNDAwMDAwMDAwMjI1IiwKICAicGF5ZXJCaWMiOiIwNDQ1MjUyMjUiLAogICJwYXllcklubiI6Ijc3MzM4MTI5MjAiLAogICJwYXllck5hbWUiOiLQntCe0J4g0JzQtdC0INCt0LrRgdC_0YDQtdGB0
YEiLAogICJwcmlvcml0eSI6ICI1IiwKICAicHVycG9zZSI6ICLQndCw0LfQvdCw0YfQtdC90LjQtSDQv9C70LDRgtC10LbQsC4g0J3QlNChINC90LXRgi4iCn0=
Пример вычисленной подписи:
SNM2l3cktEuhlcbvxM49v3Mk9vNtgvQfG_JR4bHhDc5dDZMwDkmNdesZ9TGHk7lFQHp_zoTH8KBSDbb-PmTn6g
Пример сформированной компактной сериализации JWS:
ewogICJhbGciOiAiZ29zdDM0LjEwLTIwMTIiLAogICJraWQiOiAiYjk5NDM4MWQtZDg4Ni00YjVhLTk0MDctMTY3Mjk1MjYxMGFhIgp9.CnsgIAogICJhbW91bnQiOjEwLAogICJkYXRlIjoiMjAxOC0wMS0zMVQwMzoxNz
o1MC4zMDlaIiwKICAiZXh0ZXJuYWxJZCI6ICJjMWFkMmQ4Ni04NmQyLTQxN2QtOWNjNC1iYzU3MDNmZDU3YjEiLAogICJudW1iZXIiOiIxMzAiLAogICJvcGVyYXRpb25Db2RlIjogIjAxIiwKICAiZGVsaXZlcnlLaW5kI
jogIjAiLAogICJwYXllZUJhbmtDb3JyQWNjb3VudCI6ICIzMDEwMTgxMDcwMDAwMDAwMDE4NyIsCiAgInBheWVlQmljIjoiMDQ0NTI1MTg3IiwKICAicGF5ZWVJbm4iOiI3NzAyMDcwMTM5IiwKICAicGF5ZWVOYW1lIjog
ItCS0KLQkSDQn9CQ0J4iLAogICJwYXllZUFjY291bnQiOiI0MDcwMjgxMDcwMDAwMDAwMDAwMSIsCiAgInBheWVyQWNjb3VudCI6ICI0MDcwMjgxMDczODE3MDAyMTIzMyIsCiAgInBheWVyQmFua0NvcnJBY2NvdW50Ijo
gIjMwMTAxODEwNDAwMDAwMDAwMjI1IiwKICAicGF5ZXJCaWMiOiIwNDQ1MjUyMjUiLAogICJwYXllcklubiI6Ijc3MzM4MTI5MjAiLAogICJwYXllck5hbWUiOiLQntCe0J4g0JzQtdC0INCt0LrRgdC_0YDQtdGB0YEiLA
ogICJwcmlvcml0eSI6ICI1IiwKICAicHVycG9zZSI6ICLQndCw0LfQvdCw0YfQtdC90LjQtSDQv9C70LDRgtC10LbQsC4g0J3QlNChINC90LXRgi4iCn0=.SNM2l3cktEuhlcbvxM49v3Mk9vNtgvQfG_JR4bHhDc5dDZMw
DkmNdesZ9TGHk7lFQHp_zoTH8KBSDbb-PmTn6g

Примечание

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

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

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

  1. Используются другие вспомогательные символы Base 64 Encoding with URL and Filename Safe Alphabet.
BASE64URL BASE64
— (minus)
_ (underline) /

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

  1. Используются другие вспомогательные символы Base 64 Encoding with URL and Filename Safe Alphabet.
    BASE64URL BASE64
    — (minus)
    _ (underline) /
  2. В BASE64URL не используется (опускается) padding, т.е. не добавляются знаки ‘=’ на конце закодированного содержимого Padding of Encoded Data

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

Полный список атрибутов и описание ответа можно найти тут Создание документа по фиксированным реквизитам.

Валидация параметров запроса

Наименование Правила валидации Возвращаемая ошибка Код ошибки
Authorization Токен действующий (есть запись в таблице sso_access_token) Ошибка авторизации 401 Unauthorized
externalId Соответствие регулярному выражению для UUID Некорректный идентификатор 400 Bad Request

accountNumber

Счет указанный в СВО присутствует в оферте

Для внешнего сервиса недоступны операции по счёту

403 Forbidden
operations.contractNumberType Проверяем, что передано одно из допустимых значений: 0, 1, 2

Для строки с номером № неверно указан номер контракта. Неверное значение поля «Тип указания номера договора»
400 Bad Request
operations.contractNumber Если operations.contractNumberType = 0, проверяем, что поле не пусто Для строки с номером № неверно указан номер контракта. Не заполнено поле «Номер договора» 400 Bad Request
operations.contractDate Если operations.contractNumberType = 0 или 1, проверяем, что поле не пусто Для строки с номером № неверно указан номер контракта. Не заполнено поле «Дата договора» 400 Bad Request
operations.passportNumber Если operations.contractNumberType = 2, проверяем, что поле не пусто Для строки с номером № неверно указан номер контракта. Не заполнено поле «Номер паспорта сделки» 400 Bad Request

Описание кодов возврата

Код возврата Расшифровка кода возврата Описание кода возврата Причина возникновения
201 CREATED Создан  
202 SC_ACCEPTED Операция не завершена полностью Документ создан, сохранён, но не подписан
400 DESERIALIZATION_FAULT Неверный формат запроса Неверный формат запроса
WORKFLOW_FAULT Указанный в документе счет не обслуживается в системе ДБО Указанный в документе счет не обслуживается в системе ДБО.
Документ с такими реквизитами уже существует Документ с такими реквизитами уже существует. Проверка по номер документа в течении года.
Не указан идентификатор сертификата подписи Не указан идентификатор сертификата подписи(параметр 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 Операция не может быть выполнена: доступ к ресурсу запрещён
  • У пользователя нет прав на использование соответствующего сервиса Fintech API, доступ к которому не предусмотрен настройками scope;
  • У пользователя отсутствует оферта с внешним сервисом.
415 JWS_EXCEPTED В соответствии с текущими настройками сервиса с clientId=%s необходимо использовать запрос в формате JWS Compact Serialization
  • Ошибка возникает, если в настройках внешних сервисов выставлен флаг «Требуется подпись для внешнего сервиса»
500 UNKNOWN_EXCEPTION Внутренняя ошибка сервера  
Предлагаем ознакомиться  Оформление дома в наследство после смерти – официальный рейтинг
Код возврата Расшифровка кода возврата Описание кода возврата Причина возникновения
201 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 Операция не может быть выполнена: доступ к ресурсу запрещён
  • У пользователя нет прав на использование соответствующего сервиса Fintech API, доступ к которому не предусмотрен настройками scope;
  • У пользователя отсутствует оферта с внешним сервисом.
415 JWS_EXCEPTED В соответствии с текущими настройками сервиса с clientId=%s необходимо использовать запрос в формате JWS Compact Serialization
  • Ошибка возникает, если в настройках внешних сервисов выставлен флаг «Требуется подпись для внешнего сервиса»
500 UNKNOWN_EXCEPTION Внутренняя ошибка сервера  
Пример вызова
curl -X POST --header "Content-Type: application/json" --header "Accept: */*"--header "Authorization: Bearer f8ad3141-b7e8-4924-92de-3de4fd0a464e-1" -d"
{
  "amount":10,
  "date":"2018-01-31T03:17:50.309Z",
  "externalId": "c1ad2d86-86d2-417d-9cc4-bc5703fd57b1",
  "number":"130",
  "operationCode": "01",
  "deliveryKind": "0",
  "payeeBankCorrAccount": "30101810700000000187",
  "payeeBic":"044525187",
  "payeeInn":"7702070139",
  "payeeKpp":"783501001",
  "payeeName": "ВТБ ПАО",
  "payeeAccount":"40702810700000000001",
  "payerAccount": "40702810738170021233",
  "payerBankCorrAccount": "30101810400000000225",
  "payerBic":"044525225",
  "payerInn":"7733812920",
  "payerKpp":"773301001",
  "payerName":"ООО Мед Экспресс",
  "priority": "5",
  "purpose": "Назначение платежа. НДС нет."
}"

Пример успешного ответа

Заголовки ответа (Response headers)
{
  "date": "Wed, 31 Jan 2018 05:04:23 GMT",
  "content-type": "application/json;charset=UTF-8",
  "x-powered-by": "Servlet/3.0",
  "transfer-encoding": "chunked",
  "content-language": "ru-RU"
}
Тело ответа (Response body)
{
  "externalId": "c1ad2d86-86d2-417d-9cc4-bc5703fd57b1",
  "number": "130",
  "date": 1517346000000,
  "amount": 10,
  "operationCode": "01",
  "deliveryKind": "0",
  "priority":"5",
  "purpose":"Назначение платежа. НДС нет.",
  "payerName": "ООО Мед Экспресс",
  "payerInn":"7733812920",
  "payerKpp": "773301001",
  "payerAccount": "40702810738170021233",
  "payerBic": "044525225",
  "payerBankCorrAccount": "30101810400000000225",
  "payeeName": "ВТБ ПАО",
  "payeeInn": "7702070139",
  "payeeKpp": "783501001",
  "payeeAccount": "40702810700000000001",
  "payeeBic": "044525187",
  "payeeBankCorrAccount": "30101810700000000187",
  "bankStatus": "CREATED",
  "bankComment": null
}
Пример сообщения об ошибке обработки запроса
{
  "cause":"WORKFLOW_FAULT",
  "referenceId":"d78bb1c9-05e0-4000-8fc1-a9be9e207489",
  "message": "Ошибка создания платёжного поручения [Номер 2015 от  19.04.2018 на сумму 10,01 руб. со счета № 40702.810.0.38000102537 на счет №40702.810.7.02150000029]",
  "checks": [
    {
      "level": "WARNING",
      "message": "Уже имеется документ(ы) с номером 2015 за 2018 год",
      "fields": []
    },
    {
      "level": "WARNING",
      "message": "В назначении платежа не обнаружено упоминание об НДС",
      "fields": []
    },
    {
      "level": "ERROR",
      "message": "По счету установлено ограничение "Запрет дебетования счета".",
      "fields": []
    },
    {
     "level": "WARNING",
      "message": "Указанный корреспондент отсутствует среди подтвержденных записей в справочнике корреспондентов",
      "fields": []
    },
    {
      "level": "ERROR",
      "message": "Документ с такими реквизитами уже существует",
      "fields": []
    }
  ],
  "fieldNames": null
}