--- swagger: "2.0" info: title: Сервис списания денежных средств с заемщика description: "Сервис предназначен для реализации прямого списания денежных средств кредитором с организации, являющейся заемщиком по заранее выданному долгосрочному согласию.\n\n###\n**Термины и определения**\n\n**Согласие** - сущность, которую должен создать в сервисе Партнер, чтобы зарегистрировать выданный займ и зафиксировать реквизиты Партнера, на которые возможен возврат займа.\n\n**Оферта** - Перечень действий, которые Клиент разрешает выполнять приложению Партнера. Оферта создается при подписании Клиентом длительного поручения Банку в момент начала работы с Партнером.\n\n**Счет займа** - (в контексте данного сервиса) счет заемщика, на который был зачислен займ.\n\n**Платежное поручение (ПП)** - платежный документ, создаваемый Банком в момент вызова Партнером сервиса списания денежных средств, на основании длительного поручения Клиента, зафиксированного в Оферте.\n\n###\nЕсть некоторые условия работы Партнера с данным сервисом \n\n- в назначении кредитного транша должен присутствовать 'service Id: transactionId', где transactionId - уникальный идентификатор, присваиваемый траншу Партнером;\n- в оферте Партнеру должно быть выдано разрешение на списание средств заемщика и на получение статуса платежного поручения." version: 1.1.0 contact: name: "" x-ibm-name: open-api-loan-standing-order x-ibm-configuration: testable: true enforced: true phase: realized application-authentication: certificate: true paths: /open-banking/v1.1/loan/standingOrder/consents: post: tags: - loan standing order summary: Метод создания долгосрочного согласия на прямое списание средств с организации . description:
Метод postLoanConsent предназначен для создания долгосрочного согласия на списание средств организации.

Алгоритм работы метода

После получения запроса, валидируются входные параметры запроса. Описание форматов входных параметров и ошибок представлено ниже. В случае успешной валидации, осуществляются следующие проверки:

- проверяется, что счета Партнера в consent.accountsTo являются его банковскими счетами,

- проверка является ли авторизованный пользователь руководителем организации (ЕИО) или владельцем выбранного ИП,

- наличие у Партнера актуальной подписанной оферты от организации и разрешения на действия по списанию средств в ней,

- по параметрам date, accountTo запрашивается выписка и проверяется существование кредитного транша с идентификатором transactionId в назначении, в рамках которого Партнер запрашивает списание. Транзакция должна быть рублевой и на нее не должно быть создано согласие.

В случае успеха создается согласие, а Клиенту формируется и направляется 201 Created.
operationId: postLoanConsent parameters: - name: Content-Type in: header description: Стандартный заголовок HTTP. Представляет формат полезной нагрузки в запросе. Допустимый тип - application/json. required: true type: string - name: Accept in: header description: Стандартный HTTP заголовок, определяющий тип контента, который требуется от сервера. Допустимый тип - application/json. required: false type: string - name: request-body in: body description: Тело запроса на создание согласия required: true schema: $ref: '#/definitions/PostConsentRequest' - name: x-fapi-customer-ip-address in: header description: IP адрес пользователя. required: true type: string pattern: /((^\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\s*$)|(^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$))/ - name: x-fapi-interaction-id type: string required: false in: header description: RFC4122 UID, используемый в качестве идентификатора корреляции. - name: Authorization type: string required: true in: header description: Заголовок передается в формате "Bearer token", где token - это access token, полученный на сервере авторизации. responses: 201: description: Согласие на списание средств успешно создано. headers: Content-Type: type: string description: Стандартный параметр заголовка HTTP. Представляет формат полезной нагрузки, возвращаемой в ответе. schema: $ref: '#/definitions/PostConsentResponse' 400: description: | Неверные входные параметры тела запроса или заголовок. Возможные кейсы: | Кейс | Errors/ErrorCode | Errors/Message | | ------------- |:-------------:| ---------:| | Некорректный формат заголовка | RU.ALFB.Header.IncorrectFormat |Некорректный формат заголовка {наименование заголовка}: {уточнение ошибки}| | Отсутствие обязательного заголовка | RU.ALFB.Header.Missing |Не заполнен заголовок {наименование заголовка}| | Тело запроса не соответствует JSON | RU.ALFB.Body.IncorrectFormat |Тело запроса не соответствует JSON| | Пустое тело запроса | RU.ALFB.Body.Missing | Пустое тело запроса | | Некорректный параметр тела запроса | RU.ALFB.Field.IncorrectFormat |Некорректный формат параметра тела запроса: {наименование параметра}: {уточнение}| | Отсутствие обязательного параметра в теле запроса | RU.ALFB.Field.Missing |Отсутствует обязательный параметр тела запроса {наименование параметра}| | В рамках транзакции займа совершен не рублевый перевод. | RU.ALFB.Business.NonRubleCreditTransaction |Кредитный транш должен быть выполнен в рублевой валюте| | Для указанной транзакции уже оформлено согласие. | RU.ALFB.Business.ConsentAlredyExists|Для указанной транзакции уже зарегистрировано согласие| | Не найдена актуальная подписанная оферта | RU.ALFB.Business.OffertNotFound|Не найдена актуальная оферта| schema: $ref: '#/definitions/OBErrorResponse' 403: description: "| Кейс | Errors/ErrorCode | Errors/Message | \n| ------------- |:-------------:| ---------:| \n| Авторизованное уполномоченное лицо не является руководителем авторизованной организации-заемщика| RU.ALFB.User.Forbidden | Недостаточно прав на доступ УЛ к методу (не является ЕИО организации или владельцем ИП) |\n| В найденой оферте отсутствуют разрешения на действия, связанные со списанием средств| RU.ALFB.Organization.Forbidden | В актуальной оферте отсутствуют права на доступ Партнера к методу |\n| \ У уполномоченного лица организации недостаточно прав на получение выписки, невозможно проверить наличие транша | RU.ALFB.Statement.Forbidden | У пользователя отсутствуют права доступа на получение выписки |\n" schema: $ref: '#/definitions/OBErrorResponse' 404: description: |2 | Кейс | Errors/ErrorCode | Errors/Message | | ------------- |:-------------:| ---------:| | Один из счетов кредитора не является его банковским счетом | RU.ALFB.CreditorAccount.NotAvailable | Счет со значением {ошибочное значение} не существует или не является счетом Партнера в банке | | При получении выписки получили ошибку о том, что у пользователя нет доступа к счету (он не существует или не доступен)| RU.ALFB.DebtorAccount.NotAvailable | Счет со значением {ошибочное значение} не существует или не доступен для организации | | Не найдена транзакция займа в выписке организации | RU.ALFB.Transaction.NotFound |Не найден кредитный транш для ЮЛ по переданному идентификатору, дате и номеру счета| schema: $ref: '#/definitions/OBErrorResponse' 406: description: Значение заголовка Accept не является application/json и не поддерживается. 415: description: Неверное значение заголовка Content-type или в теле запроса передан не JSON. 500: description: |2 Внутренняя ошибка сервиса при выполнении обработки запроса. | Кейс | Errors/ErrorCode | OErrors/Message | | ------------- |:-------------:| ---------:| | Внутренняя ошибка сервиса при выполнении обработки запроса. | RU.ALFB.Service.InternalError |Внутренняя ошибка сервиса при обработке запроса| schema: $ref: '#/definitions/OBErrorResponse' 503: description: Версия сервиса устарела и больше не поддерживается. /open-banking/v1.1/loan/standingOrder/consents/{consentId}/paymentOrders/{paymentOrderId}: post: tags: - loan standing order summary: Метод создания платежного поручения на списание средств по долгосрочному согласию организации. description:
Метод postLoanPayment предназначен для создания платежного поручения на списание средств организации.

Алгоритм работы метода

После получения запроса, валидируются входные параметры запроса. Описание форматов входных параметров и ошибок представлено ниже. В случае успешной валидации, осуществляются следующие проверки:

- наличие платежа и согласия по идентификаторам consentId и paymentOrderId

- является ли авторизованный пользователь руководителем организации (ЕИО) или владельцем выбранного ИП,

- наличие счета зачисления (accountTo) в согласии,

- наличие у Партнера актуальной подписанной оферты от организации, разрешения на действия по списанию средств со счета списания (accountFrom) в ней,

В случае успеха создается платежное поручение,а Клиенту формируется и направляется 201 Created.
operationId: postLoanPayment parameters: - name: paymentOrderId in: path description: Идентификатор платежа required: true type: string format: uuid - name: consentId in: path description: Идентификатор согласия required: true type: string format: uuid - name: Accept in: header description: Стандартный HTTP заголовок, определяющий тип контента, который требуется от сервера. Допустимый тип - application/json. required: false type: string - name: request-body in: body description: Тело запроса на создание платежного поручения required: true schema: $ref: '#/definitions/PostPaymentRequest' - name: x-fapi-interaction-id type: string required: false in: header description: RFC4122 UID, используемый в качестве идентификатора корреляции. - name: Authorization type: string required: true in: header description: Заголовок передается в формате "Bearer token", где token - это access token, полученный на сервере авторизации. responses: 201: description: Успешный результат. Возвращаются данные платежного поручения. headers: Content-Type: type: string description: Стандартный параметр заголовка HTTP. Представляет формат полезной нагрузки, возвращаемой в ответе. schema: $ref: '#/definitions/PostPaymentResponse' 400: description: | Неверные входные параметры тела запроса или заголовок. Возможные кейсы: | Кейс | Errors/ErrorCode | Errors/Message | | ------------- |:-------------:| ---------:| | Некорректный формат заголовка | RU.ALFB.Header.IncorrectFormat |Некорректный формат заголовка {наименование заголовка}: {уточнение ошибки}| | Отсутствие обязательного заголовка | RU.ALFB.Header.Missing |Не заполнен заголовок {наименование заголовка}| | Тело запроса не соответствует JSON | RU.ALFB.Body.IncorrectFormat |Тело запроса не соответствует JSON| | Пустое тело запроса | RU.ALFB.Body.Missing |Пустое тело запроса| | Некорректный параметр тела запроса | RU.ALFB.Field.IncorrectFormat |Некорректный формат параметра тела запроса: {наименование параметра}: {уточнение}| | Отсутствие обязательного параметра в теле запроса | RU.ALFB.Field.Missing |Отсутствует обязательный параметр тела запроса {наименование параметра}| | Организация не является ЮЛ или ИП | RU.ALFB.Business.IncorrectClientType |Клиент не является юридическим лицом или ИП| | В сервисе уже существует платеж с переданным во входных параметрах идентификатором согласия и платежа.| RU.ALFB.Business.PaymentAlreadyExists|Платеж с идентификатором {paymentOrderId} в рамках согласия {ConsentId} уже существует| | Не найдена актуальная оферта | RU.ALFB.Business.OffertNotFound|Не найдена актуальная оферта| | Операция недоступна для счета списания | RU.ALFB.Business.DebitForbidden|Операция по счету accountFrom {номер счета} недоступна| | Операция недоступна для счета зачисления | RU.ALFB.Business.CreditForbidden|Операция по счету accountFrom {номер счета} недоступна| 403: description: |2 | Кейс | Errors/ErrorCode | Errors/Message | | ------------- |:-------------:| ---------:| | Счет зачисления не найден в ранее созданном согласии (consent) | RU.ALFB.Account.Forbidden |Счет зачисления отсутствует в согласии с идентификатором {consentId}| | У Партнера нет доступа к счету зачисления | RU.ALFB.Account.Forbidden |Счет зачисления недоступен для Партнера| | Авторизованное уполномоченное лицо не является ЕИО или владельцем ИП организации заемщика | RU.ALFB.User.Forbidden |Недостаточно прав на доступ УЛ к методу (не является ЕИО организации или владельцем ИП)| | У организации нет доступа к счету списания | RU.ALFB.Account.Forbidden |Счет списания недоступен для организации| | Проведение операции запрещено по результатам внутренних проверок| RU.ALFB.User.Forbidden | Проведение операции запрещено | | В найденой оферте отсутствуют разрешения на действия, связанные со списанием| RU.ALFB.Organization.Forbidden | В актуальной оферте отсутствуют права на доступ Партнера к методу | | В перечне авторизованных счетов в оферте отсутствует счет списания| RU.ALFB.Account.Forbidden | Счет списания не авторизован для действий по списанию средств в актуальной оферте | schema: $ref: '#/definitions/OBErrorResponse' 404: description: |2 | Кейс | Errors/ErrorCode | Errors/Message | | ------------- |:-------------:| ---------:| | Не найдено согласие, в рамках которого осуществляется списание | RU.ALFB.Consent.NotFound |Согласие не найдено| schema: $ref: '#/definitions/OBErrorResponse' 406: description: Значение заголовка Accept не является application/json и не поддерживается. 500: description: | Внутренняя ошибка сервиса при выполнении обработки запроса. | Кейс | Errors/ErrorCode | OErrors/Message | | ------------- |:-------------:| ---------:| | Внутренняя ошибка сервиса при выполнении запроса | RU.ALFB.Service.InternalError |Внутренняя ошибка сервиса при обработке запроса| schema: $ref: '#/definitions/OBErrorResponse' 503: description: Версия сервиса устарела и больше не поддерживается. /open-banking/v1.1/loan/standingOrder/consents/{consentId}/paymentOrders/{paymentOrderId}/status: get: tags: - loan standing order summary: Метод запроса статуса платежного поручения. description:
Метод postLoanPayment предназначен для получения статуса платежного поручения.

Алгоритм работы метода

После получения запроса, валидируются входные параметры запроса. Описание форматов входных параметров и ошибок представлено ниже. В случае успешной валидации, осуществляются следующие проверки:

- наличие платежа по paymentOrderId

- является ли авторизованный пользователь руководителем организации (ЕИО) или владельцем выбранного ИП,

- наличие счета зачисления (accountTo) в согласии,

- наличие у Партнера актуальной подписанной оферты от организации, разрешения на запрос статуса платежного поручения и авторизованного счета списания запрашиваемого ПП в ней,
В случае успеха Клиенту формируется и направляется 200 Ok и тело с данными о статусе платежного поручения.
operationId: getLoanPaymentStatus parameters: - name: Accept in: header description: Стандартный HTTP заголовок, определяющий тип контента, который требуется от сервера. Допустимый тип - application/json. required: false type: string - name: paymentOrderId in: path description: Идентификатор платежа required: true type: string format: uuid - name: consentId in: path description: Идентификатор согласия required: true type: string format: uuid - name: x-fapi-interaction-id type: string required: false in: header description: RFC4122 UID, используемый в качестве идентификатора корреляции. - name: Authorization type: string required: true in: header description: Заголовок передается в формате "Bearer token", где token - это access token, полученный на сервере авторизации. responses: 200: description: Успешный результат. Возвращается статус платежного поручения. headers: Content-Type: type: string description: Стандартный параметр заголовка HTTP. Представляет формат полезной нагрузки, возвращаемой в ответе. schema: $ref: '#/definitions/GetPaymentStatusResponse' 400: description: | Неверные входные параметры URI или заголовка. Возможные кейсы: | Кейс | Errors/ErrorCode | Errors/Message | | ------------- |:-------------:| ---------:| | Некорректный формат заголовка | RU.ALFB.Header.IncorrectFormat |Некорректный формат заголовка {наименование заголовка}: {уточнение ошибки}| | Отсутствие обязательного заголовка | RU.ALFB.Header.Missing |Не заполнен заголовок {наименование заголовка}| | Отсутствие обязательного параметра URI (paymentOrederId) | RU.ALFB.URI.Missing |Отсутствует обязательный параметр URI: {наименование параметра}| | Некорректный формат параметра URI | RU.ALFB.URI.IncorrectFormat |'Некорректный формат параметра URI {наименование параметра}: {уточнение}'| 403: description: |2 | Кейс | Errors/ErrorCode | Errors/Message | | ------------- |:-------------:| ---------:| | Авторизованное уполномоченное лицо не является ЕИО или владельцем ИП организации заемщика | RU.ALFB.User.Forbidden |Недостаточно прав на доступ УЛ к методу (не является ЕИО организации или владельцем ИП)| | Не найдена актуальная оферта или в актуальной оферте нет прав на операции списания средств | RU.ALFB.Organization.Forbidden |Не найдена актуальная оферта или права на доступ Партнера к методу для организации отсутствует в действительной оферте| schema: $ref: '#/definitions/OBErrorResponse' 404: description: |2 | Кейс | Errors/ErrorCode | Errors/Message | | ------------- |:-------------:| ---------:| | Не найден запрашиваемый платеж | RU.ALFB.PaymentOrder.NotFound |Запрашиваемый платеж не найден| schema: $ref: '#/definitions/OBErrorResponse' 406: description: Значение заголовка Accept не является application/json и не поддерживается. 500: description: | Внутренняя ошибка сервиса при выполнении обработки запроса. | Кейс | Errors/ErrorCode | OErrors/Message | | ------------- |:-------------:| ---------:| | Внутренняя ошибка сервиса при выполнении обработки запроса. | RU.ALFB.Service.InternalError |Внутренняя ошибка сервиса при обработке запроса| schema: $ref: '#/definitions/OBErrorResponse' 503: description: Версия сервиса устарела и больше не поддерживается. definitions: PostConsentRequest: type: object required: - transaction - consent properties: transaction: type: object description: Параметры транзакции займа $ref: '#/definitions/Transaction' consent: type: object description: Дополнительные параметры для согласия $ref: '#/definitions/Consent' Transaction: type: object required: - transactionId - date - accountTo properties: transactionId: type: string description: Идентификатор транзакции, присваеваемый на стороне сервиса Партнера. Передается Партнером в поле "Назначение платежа". example: 1200610MOCO#DS4004541 maxLength: 36 date: type: string description: Дата совершения транзакции займа. Формат YYYY-MM-DD. example: "2020-12-03" accountTo: type: string maxLength: 20 minLength: 20 pattern: '[0-9]+' description: Номер счета организации, которой были переведены средства по займу. example: "40702810401300001316" Consent: type: object required: - accountsTo properties: accountsTo: type: array description: Номера счетов кредитора, на которые требуется оформить согласие. Далее на эти номера смогут быть перечислены средства заемщика. items: type: string maxLength: 20 minLength: 20 pattern: '[0-9]+' example: "40702810401300001316" PostConsentResponse: type: object required: - consentId - creationDateTime properties: consentId: type: string description: Идентификатор согласия, сгенерированный на стороне сервиса format: uuid example: f8afcd30-1d22-11eb-adc1-0242ac120002 creationDateTime: type: string description: Дата и время создания согласия. Формат YYYY-MM-DD.Thh:mm:ss±hh:mm. example: "2020-12-03T10:15:30+03:00" PostPaymentRequest: type: object required: - amount - accountFrom - accountTo - purpose properties: amount: type: string description: Сумма списания, строго больше 0. Формат дробный, разделитель точка, не более двух знаков после разделителя. format: double example: "5,5" accountFrom: type: string description: 20-значный номер счета отправителя (заемщика) maxLength: 20 minLength: 20 pattern: '[0-9]+' example: "40702810401300001316" accountTo: type: string description: 20-значный номер счета получателя (кредитора) maxLength: 20 minLength: 20 pattern: '[0-9]+' example: "40702810401300001316" purpose: type: string description: Назначение платежа. Не должно быть пустым, null или содержать пробелы. maxLength: 210 example: Оплата по счёту № 81 от 28.02.2019. В том числе НДС (20%), 8 905.57 руб. PostPaymentResponse: type: object required: - id - consentId properties: id: type: string description: Идентификатор платежного поручения, сгенерированный на стороне сервиса format: uuid example: ff9d005e-1d31-11eb-adc1-0242ac120002 consentId: type: string description: Идентификатор согласия format: uuid example: f8afcd30-1d22-11eb-adc1-0242ac120002 date: type: string description: Дата и время создания записи о платеже. Формат - YYYY-MM-DDThh:mm:ss±hh:mm. example: "2020-12-12T18:31:42+03:30" amount: type: number description: Сумма списания (7) format: double example: "5,5" currency: type: string description: Валюта pattern: ^[A-Z]{3,3}$ example: RUR OBErrorResponse: type: object required: - Code - Message - Errors properties: Code: type: string maxLength: 40 description: Высокоуровневый текстовый код ошибки, необходимый для классификации Id: type: string maxLength: 40 description: Уникальный идентификатор ошибки, для целей аудита, в случае неизвестных / не классифицированных ошибок. Message: type: string maxLength: 500 description: Краткое сообщение об ошибке. Например, «что-то не так с предоставленными параметрами запроса». Errors: type: array items: $ref: '#/definitions/OBRUError' OBRUError: type: object required: - ErrorCode - Message properties: ErrorCode: type: string description: Низкоуровневое текстовое описание ошибки. Message: type: string maxLength: 500 description: Описание ошибки. Path: type: string maxLength: 500 description: Путь к элементу с ошибкой в JSON объекте. Url: type: string description: URL для помощи в устранении проблемы, Также через URL можно предоставлять дополнительную информацию. GetPaymentStatusResponse: type: object required: - status - description properties: status: type: string description: "Статус платежного поручения.:\n * 'JWF' - Обработка внутрифилиального ПД завершена. Финальный статус. \n * 'G27' - Сквитован-списан по квитанции. Финальный статус. \n * 'G21' - Списан-сквитован. Финальный статус. \n * 'L24' - ОМФО отправлен – текущая ДПП. Финальный статус. \n * 'F22' - Списан. Финальный статус. \n * 'G26' - Списан-сквитован. Финальный статус. \n * 'G23' - Списан-сквитован. Финальный статус. \n * 'LL5' - Списан-сквитован. Финальный статус. \n * 'L12' - Отвергнут. Финальный статус. \n * 'H42' - Отменен. Финальный статус. \n * 'H11' - На полн.контроль правильности ввода\n * 'H12' - На крат.контроль правильности ввода\n * 'H52' - Помещен в дневную очередь\n * 'С20' - На антифрод-контроль\n" enum: - JWF - G27 - G21 - L24 - F22 - G26 - G23 - LL5 - L12 - H42 - H11 - H12 - H52 - С20 description: type: string description: Человекочитаемое описание статуса платежного поручения. rejectionReason: type: string description: Причина отклонения платежного документа. Передается в случае, если платеж отклонен. basePath: / schemes: - https consumes: - application/json produces: - application/json securityDefinitions: clientIdHeader: type: apiKey description: "" in: header name: X-IBM-Client-Id security: - clientIdHeader: [] x-ibm-endpoints: - endpointUrl: https://apiwsg.alfabank.ru/alfabank/alfadevportal description: TLS ГОСТ Промышленный режим type: - production - endpointUrl: https://apiws.alfabank.ru/alfabank/alfadevportal description: TLS RSA type: - production - development - endpointUrl: https://apiwsgdev.alfabank.ru/alfabank/alfadevportal description: TLS ГОСТ Режим разработки type: - development ...