openapi: 3.0.2
info:
  title: Payments Overview
  description: |
    ## Методы Sber API для работы с платёжными поручениями
    * [Уведомление о финальном статусе РПП (Вебхук)](/ru/sber-api/specifications/payments/wh-payment)
    * [Создание рублёвого платёжного поручения](/ru/sber-api/specifications/payments/create-payment)
    * [Получение статуса рублёвого платёжного поручения](/ru/sber-api/specifications/payments/get-payment-state)
    * [Получение платёжного поручения](/ru/sber-api/specifications/payments/get-payment)
    * [Выставление счёта на оплату по фиксированным реквизитам](/ru/sber-api/specifications/payments/create-payment-from-invoice)
    * [Выставление счёта на оплату по свободным реквизитам](/ru/sber-api/specifications/payments/create-payment-from-invoice-any)
    * [Выставление счёта на оплату в бюджет](/ru/sber-api/specifications/payments/create-payment-from-invoice-budget)
    * [Сформировать QR-код для подтверждения](/ru/sber-api/specifications/payments/qr-confirm)

  version: 1.0.0

servers:
  - url: https://fintech-test.sberbank.ru:9443/fintech/api
    description: Песочница
  - url: https://fintech.sberbank.ru:9443/fintech/api
    description: Промышленный контур

paths:
  /v1/payments:
    post:
      tags:
        - payments
      summary: Создание рублёвого платёжного поручения
      description:  | 
        Запрос на создание рублёвого платёжного поручения (РПП).

        Должен содержать токен доступа (access_token) пользователя в параметре **Authorization** заголовка.
        В случае использования подписи КЭП ЮЛ, необходимо передавать access_token пользователя, на имя которого выпущен сертификат КЭП ЮЛ.

        Для доступа к этому методу в параметре `scope` ссылки авторизации пользователя должен быть указан сервис `PAY_DOC_RU`.

        * Если в запросе на создание платежного документа передать ЭП к документу (объект **digestSignatures**), то Банк сразу начнет обработку документа.
        * Если в запросе не передавать ЭП к документу, то платежное поручение будет создано в статусе черновик. Для начала обработки документа Банком потребуется зайти в интерфейс СберБизнес и подписать его. 
      
        <details>
          <summary>Дайджест</summary>
    
          Дайджест это текстовый документ, содержащий перечень и значения полей запроса, к которому он относится и предназначенный для подписания ЭП. Сохраняйте порядок и количество полей дайджеста, как показано в примере ниже, иначе подписать его не получится.

          | **Наименование поля**            | **Описание поля**                                    | **Пример**                                              |
          | -------------------------------- | ---------------------------------------------------- | ------------------------------------------------------- |
          | amount                           | Сумма платежа                                        | 100.00                                                  |
          | date                             | Дата составления документа                           | 2018-05-31                                              |
          | departmentalInfo.docNumber108    | Номер налогового   документа(реквизит-108)           | 123                                                     |
          | departmentalInfo.drawerStatus101 | Показатель статуса   налогоплательщика(реквизит-101) | 01                                                      |
          | departmentalInfo.kbk             | Код бюджетной   классификации(реквизит-104)          | 18210102010011000110                                    |
          | departmentalInfo.oktmo           | Код ОКТМО(реквизит-105)                              | 1701000                                                 |
          | departmentalInfo.paymentKind110  | Тип налогового платежа(реквизит-110)                 | НС                                                      |
          | departmentalInfo.reasonCode106   | Показатель основания   платежа(реквизит-106)         | ТП                                                      |
          | departmentalInfo.uip             | Уникальный идентификатор платежа                     | 0                                                       |
          | externalId                       | Идентификатор документа, присвоенный   сервисом      | a0000000-0000-0000-0000-000000000001                    |
          | incomeTypeCode                   | Код вида дохода   получателей выплаты по 229-ФЗ      | 2                                                       |
          | 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. НДС нет.                   |
          | voCode                           | Код вида валютной операции                           | 61150                                                   |
          | creditContractNumber             | Номер кредитного договора                            | 2026/33556
        
        

          Пример:

          ```json
          amount=100.00
          date=2018-05-31
          departmentalInfo.docNumber108=123
          departmentalInfo.drawerStatus101=01
          departmentalInfo.kbk=18210102010011000110
          departmentalInfo.oktmo=01701000
          departmentalInfo.paymentKind110=НС
          departmentalInfo.reasonCode106=ТП
          departmentalInfo.uip=0
          externalId=a0000000-0000-0000-0000-000000000001
          incomeTypeCode=2
          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. НДС нет.
          voCode=61150
          creditContractNumber=2026/33556
          ```
        </details>

        <details>
          <summary>Рекомендации по тестированию в песочнице</summary>

          При тестировании создания рублёвого платёжного поручения в Песочнице соблюдайте правила:

            * **Генерируйте уникальный `externalId`** для каждого документа.
            * **Не нужно устанавливать промышленные сертификаты электронной подписи (ЭП)** — Песочница использует тестовые идентификаторы ЭП (certificateUuid).
            * Все остальные поля запроса заполняйте произвольными данными (реквизиты, суммы, назначение платежа) в соответствии с требованиями в документации.

          ## Сценарии тестирования

          Для тестирования сценариев используйте **фиксированные** значения `certificateUuid`. При использовании любых других значений `certificateUuid` вернется ошибка WORKFLOW_FAULT "Проверьте актуальность сертификата электронной подписи."

          Возможны следующие сценарии, при которых платежное поручение в бюджет будет создано:

          * передан полный набор параметров в объекте `departmentalInfo`;
          * переданы все параметры `departmentalInfo`, за исключением `paymentKind110`;
          * в объекте `departmentalInfo` заполнен только `paymentKind110`, а остальные поля имеют значение `null`;
          * объект `departmentalInfo` передан как `null`.

          <br />
          
          **1.** Чтобы создать неподписанное платежное поручение (черновик), отправьте запрос **без объекта `digestSignatures`**.

          **Статус в ответе:** `bankStatus: "CREATED"`

          ---

          **2.** Для отправки документа с единственной подписью передайте в объекте `digestSignatures` тестовый UUID единоличного исполнительного органа (ЕИО).

          **Параметры:**
          * `certificateUuid`: `bb014b5d-8159-40be-97c1-eafeed4a8c3d`

          **Статус в ответе:** `bankStatus: "IMPLEMENTED"`

          **Пример:**

          ```json
            "digestSignatures": [
              {
                "certificateUuid": "bb014b5d-8159-40be-97c1-eafeed4a8c3d",
                "base64Encoded": "MIILDgYJKoZIhvcNAQcCoIIK..."
              }
            ],
          ```

          ---

          **3.** Для отправки документа с двумя подписями передайте в объекте `digestSignatures` тестовые UUID первой **И** второй подписи.

          **Параметры:**
          * `certificateUuid`: `d5d4f811-f4d4-4205-a70f-58f772eeab72` (Первая подпись)
          * `certificateUuid`: `4f29c8ef-b55d-43c7-a321-f2b1303a29cd` (Вторая подпись)

          **Статус в ответе:** `bankStatus: "IMPLEMENTED"`

          **Пример:**

          ```json
            "digestSignatures": [
              {
                "certificateUuid": "d5d4f811-f4d4-4205-a70f-58f772eeab72",
                "base64Encoded": "MIILDgYJKoZIhvcNAQcCoIIK..."
              },
              {
                "certificateUuid": "4f29c8ef-b55d-43c7-a321-f2b1303a29cd",
                "base64Encoded": "MIILDgYJKoZIhvcNAQcCoIIK..."
              }
            ],
          ```

          ---

          **4.** Для отправки документа с одной из двух подписей передайте в объекте `digestSignatures` тестовые UUID первой **ИЛИ** второй подписи.

          **Статус в ответе:** `bankStatus: "PARTSIGNED"`

          **Параметры:**
          * `certificateUuid`: `d5d4f811-f4d4-4205-a70f-58f772eeab72` (Первая подпись)
          * `certificateUuid`: `4f29c8ef-b55d-43c7-a321-f2b1303a29cd` (Вторая подпись)

          **Важно:** для получения указанного статуса, передать необходимо только одну подпись.

          **Пример:**

          ```json
            "digestSignatures": [
              {
                "certificateUuid": "d5d4f811-f4d4-4205-a70f-58f772eeab72",
                "base64Encoded": "MIILDgYJKoZIhvcNAQcCoIIK..."
              }
            ],
          ```

          ---

          **5.** Для отправки документа с УКЭП передайте в объекте `digestSignatures` тестовый UUID.

          **Статус в ответе:** `bankStatus: "IMPLEMENTED"`

          **Параметры:**
          * `certificateUuid`: `f47ac10b-58cc-4372-a567-0e02b2c3d479`
          * `signType`: `UKEP_UL`

          ---

          **6.** Если блок departmentalInfo передан некорректно, то метод вернет `bankStatus`: `CHECKERROR` и комментарий, в котором будет указано, какое именно поле вызвало ошибку.

        </details>

      operationId: createPayment
      parameters:
        - name: Authorization
          in: header
          schema:
            type: string
          required: true
          example: "f8ad3141-b7e8-4924-92de-3de4fd0a464e-1"
          description: "Access token организации-клиента, полученный через SSO"
        - name: Content-Type
          in: header
          schema:
            type: string
            enum:
              - application/json
          required: false
          example: "application/json"
          description: "Указывает тип передаваемых данных"
      requestBody:
        description: Платёжное поручение
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FintechPaymentIncomingRequest'
        required: true
      responses:
        '201':
          description: Успешный запрос перевода
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechPayment'
        '400':
          description: | 
            "Ошибка в запросе"

            | **Cause**             | **Message**             | **Description**                                                                                                                                                                                                                                                                                                   |
            | --------------------- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
            | DESERIALIZATION_FAULT | Неверный формат запроса | Данные в request указаны в неправильном формате. Атрибуты request, в которых найдены ошибки, указаны в response в массиве fields с описанием проблемы. Описание типа, формата и regexp атрибутов находится в request запроса. Скорректируйте заполнение атрибутов и повторите запрос.                             |
            | VALIDATION_FAULT      | Ошибка валидации        | Данные не соответствуют требованиям валидации. Сведения о некорректных атрибутах request содержатся в массивах fieldNames и checks. Подробные требования к атрибутам описаны в request запроса, включая типы, форматы и регулярные выражения. Необходимо скорректировать заполнение атрибутов и повторить запрос. |
            | WORKFLOW_FAULT     | Ошибка бизнес-процесса     | Данные не соответствуют логике бизнес- процесса. Сведение об ошибке содержится в message (например, отсутствие требуемых объектов (организаций, счетов, реквизитов банков), невозможность их идентификации, дублирование уникальных идентификаторов. Необходимо скорректировать заполнение атрибутов и повторить запрос.|

          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '401':
          description: | 
            "Не авторизован"

            | **Cause**    | **Message**                                                            | **Description**                                                                                                              |
            | ------------ | ---------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
            | UNAUTHORIZED | accessToken not found by value =хххххххх-хххх-хххх-хххх-хххххххххххх-х | Указан некорректный или просроченный access_token. Используйте refresh_token для обновления access_token и повторите запрос. |    
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '403':
          description: | 
            "Операция не может быть выполнена: доступ к ресурсу запрещён"
            | **Cause**    | **Message**                                                            | **Description** |
            | ----------------------- | ----------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
            | ACTION_ACCESS_EXCEPTION | Операция не может быть выполнена: доступ к ресурсу запрещен | Используемый в запросе access_token не имеет разрешения на доступ к нужному сервису Sber API.<br />В ссылке авторизации СберБизнес ID, в параметре scope, не указана операция `PAY_DOC_RU`. Необходимо добавить одному или несколько операций в scope. Пользователю потребуется пройти авторизацию заново. Вы получите новые токены access_token и refresh_token. Сделайте повторный запрос с новым access_token. |
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '429':
          description: | 
            "Превышен лимит запросов"

            | **Cause**         | **Message**                                        | **Description**    |
            | ----------------- | -------------------------------------------------- | ---------------------|
            | TOO_MANY_REQUESTS | Превышен лимит запросов. Повторите операцию позже. | Количество запросов к данному методу за ограниченное время превысило допустимое значение. Пользователю необходимо повторить запрос позднее |
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '500':
          description: | 
            "Внутренняя ошибка сервера"

            | **Cause**         | **Message**               | **Description**                                                                                                               |
            | ----------------- | ------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
            | UNKNOWN_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |              
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '503':
          description: | 
            "Сервис временно недоступен"

            | **Cause**                      | **Message**               | **Description**                                                                                                               |
            | ------------------------------ | ------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
            | UNAVAILABLE_RESOURCE_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |      
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'

  /v1/payments/from-invoice:
    post:
      tags:
        - payments
      summary: Создание черновика платежного поручения по фиксированным реквизитам
      description:  | 
        Запрос создаёт черновик платёжного поручения с фиксированным сроком действия, без возможности изменить сумму оплаты и реквизиты получателя. 

        Должен содержать токен доступа (access_token) пользователя в параметре **Authorization** заголовка.

        Для доступа к этому методу в параметре `scope` ссылки авторизации пользователя должен быть указан сервис `PAY_DOC_RU_INVOICE`.

        Получение денежных средств возможно только на расчётный счет в Сбербанке, который принадлежит вашей организации.

        <details>
          <summary>Рекомендации по тестированию в песочнице</summary>

          ## Сценарии тестирования

          Для тестирования создания черновика платежного поручения по фиксированным реквизитам в песочнице, используйте следующие сценарии:

          <br />
          
          **1.** Чтобы создать документ со статусом `CREATED`, необходимо отправить запрос согласно документации с произвольными значениями.

          ---

          **2.** Чтобы получить ошибку `CHECKERROR`, нужно в поле `date` передать дату на 10 дней больше текущей.

          ---

          **3.** Для имитации проведения платежа от имени третьего лица (клиента или покупателя) необходимо использовать тестовую учетную запись. Порядок получения access_token описан в [инструкции](/ru/sber-api/start/sandbox#kak-testirovat-metody).

        </details>
      operationId: createPaymentFromInvoice
      parameters:
        - name: Authorization
          in: header
          schema:
            type: string
          required: true
          example: "f8ad3141-b7e8-4924-92de-3de4fd0a464e-1"
          description: "Access token организации-клиента, полученный через SSO"
        - name: Content-Type
          in: header
          schema:
            type: string
            enum:
              - application/json
          required: false
          example: "application/json"
          description: "Указывает тип передаваемых данных"
      requestBody:
        description: Счёт на оплату по фиксированным реквизитам
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FintechInvoice'
        required: true
      responses:
        '201':
          description: Успешный запрос перевода
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechPayment'
        '400':
          description: | 
            "Ошибка в запросе"

            | **Cause**             | **Message**             | **Description**                                                                                                                                                                                                                                                                                                   |
            | --------------------- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
            | DESERIALIZATION_FAULT | Неверный формат запроса | Данные в request указаны в неправильном формате. Атрибуты request, в которых найдены ошибки, указаны в response в массиве fields с описанием проблемы. Описание типа, формата и regexp атрибутов находится в request запроса. Скорректируйте заполнение атрибутов и повторите запрос.                             |
            | VALIDATION_FAULT      | Ошибка валидации        | Данные не соответствуют требованиям валидации. Сведения о некорректных атрибутах request содержатся в массивах fieldNames и checks. Подробные требования к атрибутам описаны в request запроса, включая типы, форматы и регулярные выражения. Необходимо скорректировать заполнение атрибутов и повторить запрос. |
            | WORKFLOW_FAULT     | Ошибка бизнес-процесса     | Данные не соответствуют логике бизнес- процесса. Сведение об ошибке содержится в message (например, отсутствие требуемых объектов (организаций, счетов, реквизитов банков), невозможность их идентификации, дублирование уникальных идентификаторов. Необходимо скорректировать заполнение атрибутов и повторить запрос.|

          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '401':
          description: | 
            "Не авторизован"

            | **Cause**    | **Message**                                                            | **Description**                                                                                                              |
            | ------------ | ---------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
            | UNAUTHORIZED | accessToken not found by value =хххххххх-хххх-хххх-хххх-хххххххххххх-х | Указан некорректный или просроченный access_token. Используйте refresh_token для обновления access_token и повторите запрос. |    
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '403':
          description: | 
            "Операция не может быть выполнена: доступ к ресурсу запрещён"
            | **Cause**    | **Message**                                                            | **Description** |
            | ----------------------- | ----------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
            | ACTION_ACCESS_EXCEPTION | Операция не может быть выполнена: доступ к ресурсу запрещен | Используемый в запросе access_token не имеет разрешения на доступ к нужному сервису Sber API.<br />В ссылке авторизации СберБизнес ID, в параметре scope, не указана операция `PAY_DOC_RU`. Необходимо добавить одному или несколько операций в scope. Пользователю потребуется пройти авторизацию заново. Вы получите новые токены access_token и refresh_token. Сделайте повторный запрос с новым access_token. |
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '429':
          description: | 
            "Превышен лимит запросов"

            | **Cause**         | **Message**                                        | **Description**    |
            | ----------------- | -------------------------------------------------- | ---------------------|
            | TOO_MANY_REQUESTS | Превышен лимит запросов. Повторите операцию позже. | Количество запросов к данному методу за ограниченное время превысило допустимое значение. Пользователю необходимо повторить запрос позднее |
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '500':
          description: | 
            "Внутренняя ошибка сервера"

            | **Cause**         | **Message**               | **Description**                                                                                                               |
            | ----------------- | ------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
            | UNKNOWN_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |              
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '503':
          description: | 
            "Сервис временно недоступен"

            | **Cause**                      | **Message**               | **Description**                                                                                                               |
            | ------------------------------ | ------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
            | UNAVAILABLE_RESOURCE_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |      
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'

  /v1/payments/from-invoice-any:
    post:
      tags:
        - payments
      summary: Создание черновика платежного поручения по свободным реквизитам
      description:  | 
        Запрос создаёт черновик платёжного поручения по свободным реквизитам. 
        
        Должен содержать токен доступа (access_token) пользователя в параметре **Authorization** заголовка.

        Для доступа к этому методу в параметре `scope` ссылки авторизации пользователя должен быть указан сервис `PAY_DOC_RU_INVOICE_ANY`.

        Получение денежных средств возможно на счета сторонних банков, а получателем денежных средств может быть любая организация.

        <details>
          <summary>Рекомендации по тестированию в песочнице</summary>

          ## Сценарии тестирования

          Для тестирования создания черновика платежного поручения по свободным реквизитам в песочнице, используйте следующие сценарии:

          <br />
          
          **1.** Чтобы создать документ со статусом `CREATED`, необходимо отправить запрос согласно документации с произвольными значениями.

          ---

          **2.** Чтобы получить ошибку `CHECKERROR`, нужно в поле `date` передать дату на 10 дней больше текущей.

          ---

          **3.** Для имитации проведения платежа от имени третьего лица (клиента или покупателя) необходимо использовать тестовую учетную запись. Порядок получения access_token описан в [инструкции](/ru/sber-api/start/sandbox#kak-testirovat-metody).

        </details>
      operationId: createPaymentFromInvoiceAny
      parameters:
        - name: Authorization
          in: header
          schema:
            type: string
          required: true
          example: "f8ad3141-b7e8-4924-92de-3de4fd0a464e-1"
          description: "Access token организации-клиента, полученный через SSO"
        - name: Content-Type
          in: header
          schema:
            type: string
            enum:
              - application/json
          required: false
          example: "application/json"
          description: "Указывает тип передаваемых данных"
      requestBody:
        description: Счёт на оплату по свободным реквизитам
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FintechInvoiceAny'
        required: true
      responses:
        '201':
          description: Успешный запрос перевода
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechPayment'
        '400':
          description: | 
            "Ошибка в запросе"

            | **Cause**             | **Message**             | **Description**                                                                                                                                                                                                                                                                                                   |
            | --------------------- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
            | DESERIALIZATION_FAULT | Неверный формат запроса | Данные в request указаны в неправильном формате. Атрибуты request, в которых найдены ошибки, указаны в response в массиве fields с описанием проблемы. Описание типа, формата и regexp атрибутов находится в request запроса. Скорректируйте заполнение атрибутов и повторите запрос.                             |
            | VALIDATION_FAULT      | Ошибка валидации        | Данные не соответствуют требованиям валидации. Сведения о некорректных атрибутах request содержатся в массивах fieldNames и checks. Подробные требования к атрибутам описаны в request запроса, включая типы, форматы и регулярные выражения. Необходимо скорректировать заполнение атрибутов и повторить запрос. |
            | WORKFLOW_FAULT     | Ошибка бизнес-процесса     | Данные не соответствуют логике бизнес- процесса. Сведение об ошибке содержится в message (например, отсутствие требуемых объектов (организаций, счетов, реквизитов банков), невозможность их идентификации, дублирование уникальных идентификаторов. Необходимо скорректировать заполнение атрибутов и повторить запрос.|

          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '401':
          description: | 
            "Не авторизован"

            | **Cause**    | **Message**                                                            | **Description**                                                                                                              |
            | ------------ | ---------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
            | UNAUTHORIZED | accessToken not found by value =хххххххх-хххх-хххх-хххх-хххххххххххх-х | Указан некорректный или просроченный access_token. Используйте refresh_token для обновления access_token и повторите запрос. |    
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '403':
          description: | 
            "Операция не может быть выполнена: доступ к ресурсу запрещён"
            | **Cause**    | **Message**                                                            | **Description** |
            | ----------------------- | ----------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
            | ACTION_ACCESS_EXCEPTION | Операция не может быть выполнена: доступ к ресурсу запрещен | Используемый в запросе access_token не имеет разрешения на доступ к нужному сервису Sber API.<br />В ссылке авторизации СберБизнес ID, в параметре scope, не указана операция `PAY_DOC_RU`. Необходимо добавить одному или несколько операций в scope. Пользователю потребуется пройти авторизацию заново. Вы получите новые токены access_token и refresh_token. Сделайте повторный запрос с новым access_token. |
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '429':
          description: | 
            "Превышен лимит запросов"

            | **Cause**         | **Message**                                        | **Description**    |
            | ----------------- | -------------------------------------------------- | ---------------------|
            | TOO_MANY_REQUESTS | Превышен лимит запросов. Повторите операцию позже. | Количество запросов к данному методу за ограниченное время превысило допустимое значение. Пользователю необходимо повторить запрос позднее |
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '500':
          description: | 
            "Внутренняя ошибка сервера"

            | **Cause**         | **Message**               | **Description**                                                                                                               |
            | ----------------- | ------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
            | UNKNOWN_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |              
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '503':
          description: | 
            "Сервис временно недоступен"

            | **Cause**                      | **Message**               | **Description**                                                                                                               |
            | ------------------------------ | ------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
            | UNAVAILABLE_RESOURCE_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |      
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'

  /v1/payments/from-invoice-budget:
    post:
      tags:
        - payments
      summary: Создание черновика платежного поручения в бюджет
      description:  | 
        Запрос создаёт черновик платёжного поручения поручений в адрес бюджетных организаций со счетом в любом банке для оплаты налоговых, таможенных и других бюджетных платежей.

        Должен содержать токен доступа (access_token) пользователя в параметре **Authorization** заголовка.

        Для доступа к этому методу в параметре `scope` ссылки авторизации пользователя должен быть указан сервис `PAY_DOC_RU_INVOICE_BUDGET`.

        <details>
          <summary>Рекомендации по тестированию в песочнице</summary>

          ## Сценарии тестирования

          Для тестирования создания черновика платежного поручения в бюджет по фиксированным реквизитам в песочнице, используйте следующие сценарии:

          <br />
                    
          **1.** Возможны следующие сценарии, при которых платежное поручение будет создано со статусом `CREATED`:

          * передан полный набор параметров в объекте `departmentalInfo`;
          * переданы все параметры `departmentalInfo`, за исключением `paymentKind110`;
          * в объекте `departmentalInfo` заполнен только `paymentKind110`, а остальные поля имеют значение `null`;
          * объект `departmentalInfo` передан как `null`.
          
          ---

          **2.** Чтобы получить ошибку `CHECKERROR`, нужно в поле `date` передать дату на 10 дней больше текущей.

          ---

          **3.** Для имитации проведения платежа от имени третьего лица (клиента или покупателя) необходимо использовать тестовую учетную запись. Порядок получения access_token описан в [инструкции](/ru/sber-api/start/sandbox#kak-testirovat-metody).

        </details>
      operationId: createPaymentFromInvoiceBudget
      parameters:
        - name: Authorization
          in: header
          schema:
            type: string
          required: true
          example: "f8ad3141-b7e8-4924-92de-3de4fd0a464e-1"
          description: "Access token организации-клиента, полученный через SSO"
        - name: Content-Type
          in: header
          schema:
            type: string
            enum:
              - application/json
          required: false
          example: "application/json"
          description: "Указывает тип передаваемых данных"
      requestBody:
        description: Счёт на оплату в бюджет
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FintechInvoiceBudget'
        required: true
      responses:
        '201':
          description: Успешный запрос перевода
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechPayment'
        '400':
          description: | 
            "Ошибка в запросе"

            | **Cause**             | **Message**             | **Description**                                                                                                                                                                                                                                                                                                   |
            | --------------------- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
            | DESERIALIZATION_FAULT | Неверный формат запроса | Данные в request указаны в неправильном формате. Атрибуты request, в которых найдены ошибки, указаны в response в массиве fields с описанием проблемы. Описание типа, формата и regexp атрибутов находится в request запроса. Скорректируйте заполнение атрибутов и повторите запрос.                             |
            | VALIDATION_FAULT      | Ошибка валидации        | Данные не соответствуют требованиям валидации. Сведения о некорректных атрибутах request содержатся в массивах fieldNames и checks. Подробные требования к атрибутам описаны в request запроса, включая типы, форматы и регулярные выражения. Необходимо скорректировать заполнение атрибутов и повторить запрос. |
            | WORKFLOW_FAULT     | Ошибка бизнес-процесса     | Данные не соответствуют логике бизнес- процесса. Сведение об ошибке содержится в message (например, отсутствие требуемых объектов (организаций, счетов, реквизитов банков), невозможность их идентификации, дублирование уникальных идентификаторов. Необходимо скорректировать заполнение атрибутов и повторить запрос.|

          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '401':
          description: | 
            "Не авторизован"

            | **Cause**    | **Message**                                                            | **Description**                                                                                                              |
            | ------------ | ---------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
            | UNAUTHORIZED | accessToken not found by value =хххххххх-хххх-хххх-хххх-хххххххххххх-х | Указан некорректный или просроченный access_token. Используйте refresh_token для обновления access_token и повторите запрос. |    
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '403':
          description: | 
            "Операция не может быть выполнена: доступ к ресурсу запрещён"
            | **Cause**    | **Message**                                                            | **Description** |
            | ----------------------- | ----------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
            | ACTION_ACCESS_EXCEPTION | Операция не может быть выполнена: доступ к ресурсу запрещен | Используемый в запросе access_token не имеет разрешения на доступ к нужному сервису Sber API.<br />В ссылке авторизации СберБизнес ID, в параметре scope, не указана операция `PAY_DOC_RU`. Необходимо добавить одному или несколько операций в scope. Пользователю потребуется пройти авторизацию заново. Вы получите новые токены access_token и refresh_token. Сделайте повторный запрос с новым access_token. |
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '429':
          description: | 
            "Превышен лимит запросов"

            | **Cause**         | **Message**                                        | **Description**    |
            | ----------------- | -------------------------------------------------- | ---------------------|
            | TOO_MANY_REQUESTS | Превышен лимит запросов. Повторите операцию позже. | Количество запросов к данному методу за ограниченное время превысило допустимое значение. Пользователю необходимо повторить запрос позднее |
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '500':
          description: | 
            "Внутренняя ошибка сервера"

            | **Cause**         | **Message**               | **Description**                                                                                                               |
            | ----------------- | ------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
            | UNKNOWN_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |              
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '503':
          description: | 
            "Сервис временно недоступен"

            | **Cause**                      | **Message**               | **Description**                                                                                                               |
            | ------------------------------ | ------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
            | UNAVAILABLE_RESOURCE_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |      
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'

  /v1/payments/{externalId}/state:
    get:
      tags:
        - payments
      summary: Получение статуса рублёвого платёжного поручения
      description:  | 
        Возвращает статус ранее сформированного черновика платёжного поручения. В случае, если у Клиента отключена услуга на формирование платежных поручений (или срок соглашения истёк), вы все равно сможете получить статус готовых документов.

        Должен содержать токен доступа (access_token) пользователя в параметре **Authorization** заголовка.

        Для доступа к этому методу в параметре `scope` ссылки авторизации пользователя должен быть указан один из сервисов:
        * `PAY_DOC_RU`
        * `PAY_DOC_RU_INVOICE`
        * `PAY_DOC_RU_INVOICE_ANY`
        * `PAY_DOC_RU_INVOICE_BUDGET` 

        :::note
        При исполнении запроса в тестовом контуре статус «Исполнено» не будет возвращён.
        Для подтверждения завершения платежа, поручение по которому всё ещё находится в статусе ожидания, пожалуйста, свяжитесь с поддержкой supportdbo2@sberbank.ru, указав `externalid` в обращении.
        :::

        <details>
          <summary>Рекомендации по тестированию в песочнице</summary>

          При получении статуса рублёвого платёжного поручения в песочнице, ответ зависит от переданного параметра `externalId`. Для симуляции различных сценариев используйте следующие тестовые идентификаторы:

          | Передаваемое значение `externalId` | Возвращаемое значение `bankStatus` |
          | :----------------------------------- | :---------------------------------- |
          | `c327a169-fa1d-4225-b293-e103938923ba` | `CHECKERROR`                       |
          | `b64923fd-d561-4202-a567-c5522319a871` | `REQUISITEERROR`                    |
          | `5b7568dc-ce32-4355-ad41-ff1b961a894c` | `INVALIDEDS`                        |
          | Любое другое значение                  | `IMPLEMENTED`                       |

        </details>

      operationId: getPaymentState
      parameters:
        - in: header
          name: Authorization
          schema:
            type: string
          required: true
          example: "f8ad3141-b7e8-4924-92de-3de4fd0a464e-1"
          description: "Access token организации-клиента, полученный через SSO"
        - in: path
          name: externalId
          schema:
            type: string
          description: Внешний UUID платежного поручения
          required: true
          example: b64923fd-d561-4202-a567-c5522319a872
      responses:
        '200':
          description: | 
            "Успешный запрос статуса"

            | bankStatus                      | Наименование статуса                    | Назначение кода состояния                                                                                              |
            | ------------------------------------------------ | ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
            | **Промежуточный/Продолжать опрашивать**          |                                           |                                                                                                                           |
            | `ACCEPTED`                                       | Принят                                    | Электронный документ принят на стороне Банка                                                                              |
            | `ACCEPTED_BY_ABS`                                | Принят АБС или<br />Принят                | Электронный документ был принят к обработке в АБС Банка                                                                   |
            | `CARD2`                                          | Картотека 2 или<br />Ожидает оплаты       | АБС обнаружено, что на счете плательщика недостаточно средств для иcполнения документа                                    |
            | `CREATED`                                        | Создан                                    | Документ записан в БД, проверки не выполнялись                                                                            |
            | `DELAYED`                                        | Приостановлен                             | Обработка электронного документа была приостановлена                                                                      |
            | `DELIVERED`                                      | Доставлен                                 | Запрос доставлен в ДБО и взят в обработку                                                                                 |
            | `DELIVERED_RZK`                                  | Доставлен в СБК                           | Электронный документ отправлен в СБК и получен квиток о доставке                                                          |
            | `FRAUDALLOW`                                     | Одобрен ФРОД                              | Проверка во ФРОДЕ прошла успешно, переход на «Принят»                                                                     |
            | `FRAUDREVIEW`                                    | На проверке у специалиста Банка           | Со стороны ФРОД-анализа получен статус документа «На проверке у специалиста Банка»                                        |
            | `FRAUDSENT`                                      | Отправлен во ФРОД                         | Документ отправлен на проверку в АС Fraud-мониторинг                                                                      |
            | `FRAUDSMS`                                       | Требуется подтверждение sms-паролем       | Со стороны ФРОД-анализа получен статус документа «Требуется подтверждение sms-паролем»                                    |
            | `NOT_ACCEPTED_RZK`                               | Не принят СБК                             | Электронный документ не прошел логические контроли СБК                                                                    |
            | `PARTSIGNED`                                     | Частично подписан                         | ЭД подписан частью подписей, входящих в предусмотренный для данного документа комплект подписей                           |
            | `PROCESSING_RZK`                                 | Обрабатывается СБК                        | ЭД успешно прошел проверки ЭП и логические проверки СБК                                                                   |
            | `REQUESTED_RECALL`                               | Запрошен отзыв                            | Документ отозван                                                                                                          |
            | `RZK_SIGN_ERROR`                                 | Ошибка ЭП СБК                             | Проверка подписи под ЭД на стороне СБК дала отрицательный результат                                                       |
            | `SENDING_TO_RZK`                                 | Отправляется в СБК                        | Электронный документ отправлен в СБК, но не получен квиток о доставке                                                     |
            | `SIGNED`                                         | Подписан                                  | ЭД подписан предусмотренным для него комплектом подписей.                                                                 |
            | `TO_PROCESSING_RZK`                              | К отправке в СБК                          | ЭД подписан предусмотренным для него комплектом о доставке                                                                |
            | `CHECKERROR`                                     | Ошибка контроля                           | ЭД сформирован, но при сохранении не прошел проверку корректности заполнения полей и сохранен с имеющимися в нем ошибками |
            | **Окончательный (Не успешный)/Прекратить опрос** |                                           |                                                                                                                           |
            | `DELETED`                                        | Удален                                    | Электронный документа удален из числа действующих документов                                                              |
            | `INVALIDEDS`                                     | ЭП/АСП не верна<br />Подпись неверна      | Проверка ЭП под ЭД на стороне Банка дала отрицательный результат                                                          |
            | `RECALL`                                         | Отозван                                   | Электронный документ был отозван Клиентом по запросу                                                                      |
            | `REFUSEDBYBANK`                                  | Отвергнут банком или<br />Отклонен банком | Электронный документ отвергнут банком                                                                                     |
            | `REFUSEDBYABS`                                   | Отказан АБС                               | Электронный документ не прошел проверки в АБС                                                                             |
            | `REQUISITEERROR`                                 | Ошибка реквизитов                         | В ЭД указаны ошибочные реквизиты                                                                                          |
            | `REFUSED_BY_RZK`                                 | Отказан контролирующей организацией       | Электронный документ не прошел проверки контролирующей организацией                                                       |
            | `FRAUDDENY`                                      | Отвергнут ФРОД                            | Документ отказан на основе проверки в АС Fraud-мониторинг, переходим в «Отвергнут банком»                                 |
            | **Окончательный (Успешный)/Прекратить опрос**    |                                           |                                                                                                                           |
            | `IMPLEMENTED`                                    | Исполнен                                  | Электронный документ исполнен Банком                                                                                      |
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechPaymentDocState'
        '400':
          description: | 
            "Ошибка в запросе"

            | **Cause**             | **Message**             | **Description**                                                                                                                                                                                                                                                                                                   |
            | --------------------- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
            | DESERIALIZATION_FAULT | Неверный формат запроса | Данные в request указаны в неправильном формате. Атрибуты request, в которых найдены ошибки, указаны в response в массиве fields с описанием проблемы. Описание типа, формата и regexp атрибутов находится в request запроса. Скорректируйте заполнение атрибутов и повторите запрос.                             |
            | VALIDATION_FAULT      | Ошибка валидации        | Данные не соответствуют требованиям валидации. Сведения о некорректных атрибутах request содержатся в массивах fieldNames и checks. Подробные требования к атрибутам описаны в request запроса, включая типы, форматы и регулярные выражения. Необходимо скорректировать заполнение атрибутов и повторить запрос. |

          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '401':
          description: | 
            "Не авторизован"

            | **Cause**    | **Message**                                                            | **Description**                                                                                                              |
            | ------------ | ---------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
            | UNAUTHORIZED | accessToken not found by value =хххххххх-хххх-хххх-хххх-хххххххххххх-х | Указан некорректный или просроченный access_token. Используйте refresh_token для обновления access_token и повторите запрос. |    
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '403':
          description: | 
            "Операция не может быть выполнена: доступ к ресурсу запрещён"
            | **Cause**    | **Message**                                                            | **Description** |
            | ----------------------- | ----------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
            | ACTION_ACCESS_EXCEPTION | Операция не может быть выполнена: доступ к ресурсу запрещен | Используемый в запросе access_token не имеет разрешения на доступ к нужному сервису Sber API.<br />В ссылке авторизации СберБизнес ID, в параметре scope, не указана операция `PAY_DOC_RU`. Необходимо добавить одному или несколько операций в scope. Пользователю потребуется пройти авторизацию заново. Вы получите новые токены access_token и refresh_token. Сделайте повторный запрос с новым access_token. |
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '404':
          description: "Данные не найдены"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FintechWorkflowFault"
        '429':
          description: | 
            "Превышен лимит запросов"

            | **Cause**         | **Message**                                        | **Description**    |
            | ----------------- | -------------------------------------------------- | ---------------------|
            | TOO_MANY_REQUESTS | Превышен лимит запросов. Повторите операцию позже. | Количество запросов к данному методу за ограниченное время превысило допустимое значение. Пользователю необходимо повторить запрос позднее |
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '500':
          description: | 
            "Внутренняя ошибка сервера"

            | **Cause**         | **Message**               | **Description**                                                                                                               |
            | ----------------- | ------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
            | UNKNOWN_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |              
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '503':
          description: | 
            "Сервис временно недоступен"

            | **Cause**                      | **Message**               | **Description**                                                                                                               |
            | ------------------------------ | ------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
            | UNAVAILABLE_RESOURCE_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |      
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'

  /v1/payments/{externalId}:
    get:
      tags:
        - payments
      summary: Получение платёжного поручения
      description: |
        Возвращает полные данные ранее созданного платежного поручения.

        Должен содержать токен доступа (access_token) пользователя в параметре **Authorization** заголовка.

        Для доступа к этому методу в параметре `scope` ссылки авторизации пользователя должен быть указан один из сервисов:
        * `PAY_DOC_RU`
        * `PAY_DOC_RU_INVOICE`
        * `PAY_DOC_RU_INVOICE_ANY`
        * `PAY_DOC_RU_INVOICE_BUDGET`

        :::note
        При исполнении запроса в тестовом контуре статус «Исполнено» не будет возвращён.
        Для подтверждения завершения платежа, поручение по которому всё ещё находится в статусе ожидания, пожалуйста, свяжитесь с поддержкой supportdbo2@sberbank.ru, указав `externalid` в обращении.
        :::

        <details>
          <summary>Рекомендации по тестированию в песочнице</summary>

          При получении платёжного поручения в песочнице, ответ зависит от переданного параметра `externalId`. Для симуляции различных сценариев используйте следующие тестовые идентификаторы:

        | Передаваемое значение `externalId` | Ответ |
        | :----------------------------------- | :-------------- |
        | `74a13bca-69e7-4681-9585-de825b422e5d` | Возвращается рублёвое платёжное поручение, **содержащее блок `departmentalInfo`** (оплата в бюджет). |
        | Любое другое значение                 | Возвращается **статичное** рублёвое платёжное поручение (без блока `departmentalInfo`). |

        </details>
      operationId: getPayment
      parameters:
        - in: header
          name: Authorization
          schema:
            type: string
          required: true
          example: "f8ad3141-b7e8-4924-92de-3de4fd0a464e-1"
          description: "Access token организации-клиента, полученный через SSO"
        - in: path
          name: externalId
          schema:
            type: string
          description: Внешний UUID платежного поручения
          required: true
          example: 74a13bca-69e7-4681-9595-de825b422e5d
      responses:
        '200':
          description: Успешный запрос перевода
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechPayment'
        '400':
          description: | 
            "Ошибка в запросе"

            | **Cause**             | **Message**             | **Description**                                                                                                                                                                                                                                                                                                   |
            | --------------------- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
            | DESERIALIZATION_FAULT | Неверный формат запроса | Данные в request указаны в неправильном формате. Атрибуты request, в которых найдены ошибки, указаны в response в массиве fields с описанием проблемы. Описание типа, формата и regexp атрибутов находится в request запроса. Скорректируйте заполнение атрибутов и повторите запрос.                             |
            | VALIDATION_FAULT      | Ошибка валидации        | Данные не соответствуют требованиям валидации. Сведения о некорректных атрибутах request содержатся в массивах fieldNames и checks. Подробные требования к атрибутам описаны в request запроса, включая типы, форматы и регулярные выражения. Необходимо скорректировать заполнение атрибутов и повторить запрос. |

          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '401':
          description: | 
            "Не авторизован"

            | **Cause**    | **Message**                                                            | **Description**                                                                                                              |
            | ------------ | ---------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
            | UNAUTHORIZED | accessToken not found by value =хххххххх-хххх-хххх-хххх-хххххххххххх-х | Указан некорректный или просроченный access_token. Используйте refresh_token для обновления access_token и повторите запрос. |    
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '403':
          description: | 
            "Операция не может быть выполнена: доступ к ресурсу запрещён"
            | **Cause**    | **Message**                                                            | **Description** |
            | ----------------------- | ----------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
            | ACTION_ACCESS_EXCEPTION | Операция не может быть выполнена: доступ к ресурсу запрещен | Используемый в запросе access_token не имеет разрешения на доступ к нужному сервису Sber API.<br />В ссылке авторизации СберБизнес ID, в параметре scope, не указана операция `PAY_DOC_RU`. Необходимо добавить одному или несколько операций в scope. Пользователю потребуется пройти авторизацию заново. Вы получите новые токены access_token и refresh_token. Сделайте повторный запрос с новым access_token. |
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '404':
          description: "Данные не найдены"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FintechWorkflowFault"
        '429':
          description: | 
            "Превышен лимит запросов"

            | **Cause**         | **Message**                                        | **Description**    |
            | ----------------- | -------------------------------------------------- | ---------------------|
            | TOO_MANY_REQUESTS | Превышен лимит запросов. Повторите операцию позже. | Количество запросов к данному методу за ограниченное время превысило допустимое значение. Пользователю необходимо повторить запрос позднее |
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '500':
          description: | 
            "Внутренняя ошибка сервера"

            | **Cause**         | **Message**               | **Description**                                                                                                               |
            | ----------------- | ------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
            | UNKNOWN_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |              
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'
        '503':
          description: | 
            "Сервис временно недоступен"

            | **Cause**                      | **Message**               | **Description**                                                                                                               |
            | ------------------------------ | ------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
            | UNAVAILABLE_RESOURCE_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |      
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FintechWorkflowFault'

components:
  schemas:
    FintechPayment:
      type: object
      title: Payment
      description: Рублёвое платёжное поручение
      required:
        - date
        - externalId
        - amount
        - operationCode
        - priority
        - purpose
        - payerName
        - payerInn
        - payerAccount
        - payerBankBic
        - payerBankCorrAccount
        - payeeName
        - payeeBankBic
      properties:
        number:
          type: string
          pattern: "^\\d{0,8}$"
          description: Номер документа
          example: "1"
        date:
          type: string
          pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
          format: date
          nullable: false
          description: Дата составления документа
          example: '2025-03-31'
        digestSignatures:
          type: array
          items:
            $ref: '#/components/schemas/FintechSignature'
          description: Электронные подписи по дайджесту документа
        bankStatus:
          type: string
          description: Статус документа
          example: "PROCESSING"
        bankComment:
          type: string
          description: Банковский комментарий к статусу документа
          example: "Документ успешно обработан"
        externalId:
          type: string
          pattern: "^.{0,36}$"
          format: uuid
          nullable: false
          description: Идентификатор документа, присвоенный партнёром (UUID)
          example: "22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6"
        amount:
          type: number
          pattern: "^-?\\d{0,18}(\\.\\d{1,2})?$"  
          nullable: false
          description: |
           Сумма платежа
           ВНИМАНИЕ. Фактически возвращаемое значение поля – "string". Для предотвращения возможных ошибок, выполните явную конвертацию значения из строки в число.
          example: '1.01'
        operationCode:
          type: string
          pattern: "^01$"
          nullable: false
          description: Код операции
          example: "01"
        deliveryKind:
          type: string
          pattern: "^(электронно|срочно|0)"
          nullable: false
          description: Вид платежа
          example: "электронно"
        priority:
          type: string
          nullable: false
          pattern: "^[1-5]{1}$"
          description: Очерёдность платежа
          example: "5"
        urgencyCode:
          $ref: '#/components/schemas/UrgencyCode'
        voCode:
          type: string
          pattern: "^[0-9]{5}$"
          nullable: true
          description: Код вида валютной операции
          example: "61150"
        purpose:
          type: string
          description: Назначение платежа
          nullable: false
          pattern: ^(.|\n|\r){0,210}$
          example: "Оплата заказа №123. НДС не облагается"
        departmentalInfo:
          $ref: '#/components/schemas/FintechDepartmentalInfo'
        payerName:
          type: string
          pattern: ^.{0,160}$
          nullable: false
          description: Полное наименование плательщика
          example: "ООО \"Наименование плательщика\""
        payerInn:
          type: string
          pattern: "^([0-9]{5}|[0-9]{10}|[0-9]{12}|0)$"
          nullable: false
          description: ИНН плательщика
          example: "7707083893"
        payerKpp:
          type: string
          pattern: "^([0-9]{9}|0)$"
          nullable: true
          description: |
           КПП плательщика

           Для юридического лица КПП должен состоять из 9 знаков. КПП не может начинаться с двух нулей (00). Если не знаете укажите 0. Для ИП укажите 0.
          example: "222201001"
        payerAccount:
          type: string
          pattern: "^[0-9]{20}$"
          nullable: false
          description: Счёт плательщика
          example: "40802810600000200000"
        payerBankBic:
          type: string
          pattern: "^[0-9]{9}$"
          nullable: false
          description: БИК банка плательщика
          example: "044525225"
        payerBankCorrAccount:
          type: string
          pattern: "^[0-9]{20}$"
          nullable: false
          description: Корсчёт банка плательщика
          example: "30101810400000000225"
        payeeName:
          type: string
          pattern: "^.{0,160}$"
          nullable: false
          description: Полное наименование получателя платежа
          example: "ООО \"Наименование получателя\""
        payeeInn:
          type: string
          pattern: "^([0-9]{5}|[0-9]{10}|[0-9]{12}|0)$"
          nullable: true
          description: ИНН получателя платежа
          example: "7707083893"
        payeeKpp:
          type: string
          pattern: "^([0-9]{9}|0)$"
          nullable: true
          description: |
            КПП получателя платежа
            
            Для юридического лица КПП должен состоять из 9 знаков. КПП не может начинаться с двух нулей (00). Если не знаете укажите 0. Для ИП укажите 0.
          example: "222201001"
        payeeAccount:
          type: string
          pattern: "^[0-9]{20}$"
          nullable: true
          description: Счёт получателя платежа
          example: "40802810600000200000"
        payeeBankBic:
          type: string
          pattern: "^[0-9]{9}$"
          nullable: false
          description: БИК получателя платежа
          example: "044525225"
        payeeBankCorrAccount:
          type: string
          pattern: "^[0-9]{20}$"
          nullable: true
          description: Корсчёт банка получателя платежа
          example: "30101810400000000225"
        crucialFieldsHash:
          type: string
          pattern: "^[0-9a-f]+$"
          description: Hash от ключевых полей документа
          example: "a1b2c3d4e5f678901234567890abcdef"
        vat:
          $ref: '#/components/schemas/FintechVat'
        incomeTypeCode:
          type: string
          pattern: "^.{0,2}$"
          description: Код вида дохода получателей выплаты по 229-ФЗ
          example: "2"

    FintechPaymentIncomingRequest:
      type: object
      title: PaymentIncomingRequest
      description: Рублёвое платёжное поручение (запрос)
      required:
        - date
        - externalId
        - amount
        - operationCode
        - priority
        - purpose
        - payerName
        - payerInn
        - payerAccount
        - payerBankBic
        - payerBankCorrAccount
        - payeeName
        - payeeBankBic
      properties:
        number:
          type: string
          pattern: "^\\d{0,8}$"
          description: Номер документа
          example: "1"
        date:
          type: string
          pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
          format: date
          nullable: false
          description: Дата составления документа
          example: '2025-03-31'
        digestSignatures:
          type: array
          items:
            $ref: '#/components/schemas/FintechSignature'
          description: Электронные подписи по дайджесту документа
        externalId:
          type: string
          pattern: "^.{0,36}$"
          format: uuid
          nullable: false
          description: Идентификатор документа, присвоенный партнёром (UUID)
          example: "22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6"
        amount:
          type: number
          pattern: "^-?\\d{0,15}(\\.\\d{1,2})?$"  
          nullable: false
          description: Сумма платежа 
          example: "1.01"
        operationCode:
          type: string
          pattern: "^01$"
          nullable: false
          description: Код операции
          example: "01"
        deliveryKind:
          type: string
          pattern: "^(электронно|срочно|0)"
          nullable: false
          description: Вид платежа
          example: "электронно"
        priority:
          type: string
          nullable: false
          pattern: "^[1-5]{1}$"
          description: Очерёдность платежа
          example: "5"
        urgencyCode:
          $ref: '#/components/schemas/UrgencyCode'
        voCode:
          type: string
          pattern: "^[0-9]{5}$"
          nullable: true
          description: Код вида валютной операции
          example: "61150"
        purpose:
          type: string
          pattern: ^(.|\n|\r){0,210}$
          description: | 
            Назначение платежа

            Допустимые символы: 
              * цифры (0-9), латиница (a-z, A-Z) и кириллица (а-я, А-Я, Ёё), 
              * спецсимволы: ! " # $ % & ' ( ) [ ] * . , : ; - / \  < = > ? @ ^ _ ` { | } ~ № 
              * пробел, перенос строки (\n), возврат каретки (\r).
              
            При формировании платежного поручения в адрес контрагента-нерезидента в начало поля необходимо добавить уникальный код операции.
            
            Формат: {VOXXXXX}, где XXXXX - значение параметра voCode  
          nullable: false
          example: "Оплата заказа №123. НДС не облагается"
        departmentalInfo:
          $ref: '#/components/schemas/FintechDepartmentalInfo'
        payerName:
          type: string
          pattern: ^.{0,160}$
          nullable: false
          description: Полное наименование плательщика
          example: "ООО \"Наименование плательщика\""
        payerInn:
          type: string
          pattern: "^([0-9]{5}|[0-9]{10}|[0-9]{12}|0)$"
          nullable: false
          description: ИНН плательщика
          example: "7707083893"
        payerKpp:
          type: string
          pattern: "^([0-9]{9}|0)$"
          nullable: true
          description: |
           КПП плательщика

           Для юридического лица КПП должен состоять из 9 знаков. КПП не может начинаться с двух нулей (00). Если не знаете укажите 0. Для ИП укажите 0.
          example: "222201001"
        payerAccount:
          type: string
          pattern: "^[0-9]{20}$"
          nullable: false
          description: Счёт плательщика
          example: "40802810600000200000"
        payerBankBic:
          type: string
          pattern: "^[0-9]{9}$"
          nullable: false
          description: БИК банка плательщика
          example: "044525225"
        payerBankCorrAccount:
          type: string
          pattern: "^[0-9]{20}$"
          nullable: false
          description: Корсчёт банка плательщика
          example: "30101810400000000225"
        payeeName:
          type: string
          pattern: "^.{0,160}$"
          nullable: false
          description: Полное наименование получателя платежа
          example: "ООО \"Наименование получателя\""
        payeeInn:
          type: string
          pattern: "^([0-9]{5}|[0-9]{10}|[0-9]{12}|0)$"
          nullable: true
          description: ИНН получателя платежа
          example: "7707083893"
        payeeKpp:
          type: string
          pattern: "^([0-9]{9}|0)$"
          nullable: true
          description: |
           КПП получателя платежа

           Для юридического лица КПП должен состоять из 9 знаков. КПП не может начинаться с двух нулей (00). Если не знаете укажите 0. Для ИП укажите 0.
          example: "222201001"
        payeeAccount:
          type: string
          pattern: "^[0-9]{20}$"
          nullable: true
          description: Счёт получателя платежа
          example: "40802810600000200000"
        payeeBankBic:
          type: string
          pattern: "^[0-9]{9}$"
          nullable: false
          description: БИК получателя платежа
          example: "044525225"
        payeeBankCorrAccount:
          type: string
          pattern: "^[0-9]{20}$"
          nullable: true
          description: Корсчёт банка получателя платежа
          example: "30101810400000000225"
        vat:
          $ref: '#/components/schemas/FintechVat'
        incomeTypeCode:
          type: string
          pattern: "^.{0,2}$"
          description: Код вида дохода получателей выплаты по 229-ФЗ
          example: "2"
        isPaidByCredit:
          type: boolean
          description: Признак того, что платёжное поручение будет оплачено за счёт кредитных средств
          example: true
        creditContractNumber:
          type: string
          pattern: "^.{0,50}$"
          description: Номер кредитного договора
          example: "2020/66556"

    FintechCommonInvoice:
      type: object
      title: CommonInvoice
      description: Счёт на оплату - общая часть документарных моделей
      required:
        - externalId
        - date
        - amount
        - purpose
        - payeeAccount
      properties:
        externalId:
          type: string
          pattern: "^.{0,36}$"
          format: uuid
          nullable: false
          description: Идентификатор документа, присвоенный партнёром (UUID)
          example: "22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6"
        paymentNumber:
          type: string
          pattern: "^\\d{0,8}$"
          description: Номер платёжного поручения
          example: "1"
        date:
          type: string
          pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
          format: date
          nullable: false
          description: Дата составления документа
          example: "2025-03-31"
        amount:
          type: number
          pattern: "^-?\\d{0,18}(\\.\\d{1,2})?$"
          nullable: false
          description: Сумма платежа
          example: '1.01'
        operationCode:
          type: string
          pattern: "^01$"
          description: Код операции
          default: "01"
          example: "01"
        deliveryKind:
          type: string
          description: Вид платежа
          pattern: "^(электронно|срочно|0)$"
          nullable: false
          example: "электронно"
        priority:
          type: string
          default: "5"
          pattern: "^[4-5]{1}$"
          description: Очерёдность платежа
          example: "5"
        urgencyCode:
          $ref: '#/components/schemas/UrgencyCode'
        purpose:
          type: string
          description: | 
            Назначение платежа

            Допустимые символы: 
              * цифры (0-9), латиница (a-z, A-Z) и кириллица (а-я, А-Я, Ёё), 
              * спецсимволы: ! " # $ % & ' ( ) [ ] * . , : ; - / \  < = > ? @ ^ _ ` { | } ~ № 
              * пробел, перенос строки (\n), возврат каретки (\r).
              
            При формировании платежного поручения в адрес контрагента-нерезидента в начало поля необходимо добавить уникальный код операции.
            
            Формат: {VOXXXXX}, где XXXXX - значение параметра voCode  
          nullable: false
          pattern: ^(.|\n|\r){0,210}$
          example: "Оплата заказа №123. НДС не облагается"
        payeeAccount:
          type: string
          pattern: "^[0-9]{20}$"
          nullable: false
          description: Счёт получателя платежа
          example: "40802810600000200000"
        vat:
          $ref: "#/components/schemas/FintechVat"

    FintechInvoice:
      allOf:
        - $ref: '#/components/schemas/FintechCommonInvoice'
        - type: object
          title: Invoice
          description: Счёт на оплату по фиксированным реквизитам
          properties:
            payeeOrgIdHash:
              type: string
              pattern: "^[0-9a-f]{64}$"
              description: Идентификатор получателя платежа
              example: "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
            expirationDate:
              type: string
              format: date-time
              pattern: "^[0-9a-f]{64}$"
              description: Дата истечения заказа (платёж должен быть подтверждён клиентом)
              example: "2025-03-31"
            orderNumber:
              type: string
              pattern: "^.{0,255}$"
              description: Номер заказа
              example: "123"

    FintechInvoiceDetails:
      allOf:
        - $ref: '#/components/schemas/FintechCommonInvoice'
        - type: object
          title: InvoiceDetails
          description: Счёт на оплату по реквизитам
          required:
            - payeeBankBic
            - payeeInn
            - payeeName
          properties:
            payeeBankBic:
              type: string
              nullable: false
              pattern: "^[0-9]{9}$"
              description: БИК банка получателя платежа
              example: "044525225"
            payeeBankCorrAccount:
              type: string
              pattern: "^[0-9]{20}$"
              description: Кор. счёт банка получателя платежа
              example: "30101810400000000225"
            payeeInn:
              type: string
              pattern: "^([0-9]{5}|[0-9]{10}|[0-9]{12}|0)$"
              nullable: false
              description: ИНН получателя платежа
              example: "7707083893"
            payeeKpp:
              type: string
              pattern: "^([0-9]{9}|0)$"
              description: КПП получателя платежа
              example: "222201001"
            payeeName:
              type: string
              pattern: "^.{0,160}$"
              description: Наименование получателя платежа
              example: "ООО \"Наименование получателя\""
       
    FintechInvoiceAny:
      allOf:
        - $ref: '#/components/schemas/FintechInvoiceDetails'
        - type: object
          title: InvoiceAny
          description: Счёт на оплату по свободным реквизитам
          properties:
            expirationDate:
              type: string
              pattern: "^[0-9a-f]{64}$"
              format: date-time
              description: Дата истечения заказа (платёж должен быть подтверждён клиентом)
              example: "2025-12-31"
            orderNumber:
              type: string
              pattern: "^.{0,255}$"
              description: Номер заказа
              example: "123"
            isPaidByCredit:
              type: boolean
              description: Признак того, что платёжное поручение будет оплачено за счёт кредитных средств
              example: true
            creditContractNumber:
              type: string
              pattern: "^.{0,50}$"
              description: Номер кредитного договора
              example: "2020/66556"

    FintechDepartmentalInfo:
      type: object
      title: DepartmentalInfo
      description: Реквизиты налогового, таможенного или иного бюджетного платежа
      properties:
        uip:
          type: string
          pattern: "^[A-ZА-Я0-9/]{1,25}$"
          description: |
           Уникальный идентификатор платежа.

           При отсутствии номера может быть передано значение "0"

           Если при оплате контрагенту номер счета (payee.accountNumber) начинается на 40822, необходимо указать УИП. Уточнить УИП можно у получателя платежа. Если УИП указан неверно или не заполнен платеж не будет принят
          example: "1234567890123456789012345"
        drawerStatus101:
          type: string
          pattern: ^.{0,2}$
          description: Показатель статуса налогоплательщика (реквизит - 101)
          example: "01"
        kbk:
          type: string
          description: Код бюджетной классификации (реквизит - 104)
          pattern: ([A-ZА-Я0-9]{1,20})$
          example: "18210102010011000110"
        oktmo:
          type: string
          description: Код OKTMO (реквизит - 105).Если значение ОКТМО состоит из 11 цифр, то используются только первые 8 цифр
          pattern: (0|\d{8,11})
          example: "17010000"
        reasonCode106:
          type: string
          description: Показатель основания платежа (реквизит - 106)
          pattern: "^.{0,2}$"
          example: "ТП"
        taxPeriod107:
          type: string
          description: |
           Код таможенного органа (реквизит - 107).

           Поле должно состоять из 8 цифр. Если Код таможенного органа неизвестен, необходимо указать 0.

           Для payee.accountNumber = 40204810800000950001 должно принимать значение 0
          pattern: "^(0|[0-9]{8})$"
          example: "10100000"
        docNumber108:
          type: string
          pattern: ^.{0,15}$
          description: Номер налогового документа (реквизит - 108)
          example: "123456"
        docDate109:
          type: string
          description: Дата налогового документа (реквизит - 109)
          pattern: "^(0|00|[0-9]{2}\\.[0-9]{2}\\.[0-9]{4})$"
          example: "31.12.2025"
        paymentKind110:
          type: string
          pattern: ^.{0,2}$
          description: Тип налогового платежа (реквизит - 110)
          example: "01"

    FintechInvoiceBudget:
      allOf:
        - $ref: '#/components/schemas/FintechInvoiceDetails'
        - type: object
          title: InvoiceBudget
          description: Счёт на оплату в бюджет
          required:
            - departmentalInfo
          properties:
            departmentalInfo:
              $ref: '#/components/schemas/FintechDepartmentalInfo'
            payerKpp:
              type: string
              pattern: "^([0-9]{9}|0)$"
              description: |
               КПП плательщика.

               Для юридического лица КПП должен состоять из 9 знаков. КПП не может начинаться с двух нулей (00). Если не знаете укажите 0. Для ИП укажите 0.
              example: "222201001"

    UrgencyCode:
      type: string
      pattern: ^.{0,32}$
      nullable: true
      description: |
        Код срочности платежа.
        * INTERNAL - срочный
        * INTERNAL_NOTIF - срочный платеж с уведомлением
        * OFFHOURS - неотложный
        * BESP - банковские электронные срочные платежи
        * NORMAL - срочность не указана (значение по умолчанию)
      enum:
       - INTERNAL
       - INTERNAL_NOTIF
       - OFFHOURS
       - BESP
       - NORMAL
      example: "NORMAL"
    
    FintechSignature:
      description: Электронная подпись
      title: Signature
      type: object
      required:
        - certificateUuid
        - base64Encoded
      properties:
        certificateUuid:
          type: string
          format: uuid
          description: |
           Уникальный идентификатор сертификата ключа проверки электронной подписи (UUID).
           Можно получить в методах [Получения криптоинформации](/ru/sber-api/specifications/crypto/crypto-info-get) и [Получения крипроинформации для ЕИО](https://developers.sber.ru/docs/ru/sber-api/specifications/crypto/crypto-info-eio-get) в поле certificateInfos.uuid
          example: '22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6'
        base64Encoded:
          type: string
          nullable: false
          minLength: 1
          description: |
           Значение электронной подписи, закодированное в Base64.
           [Дайджест](/ru/sber-api/specifications/payments/payments-overview), подписанный соответствующим типом подписи и закодированный в Base64. 
          example: 'HlaeIHXXEcGT1bFxo1NlpAzpr+kJ2IQrcxVdvDTep6xjsmD1FDb+6NIyLT+/T24S0mPfVCU75sieOMt71TBS7w=='
        signType:
          type: string
          nullable: true
          description: | 
           Тип способа подписи.
           Для типа "UKEP_UL" может быть передан только один объект в digestSignatures.
           Если параметр не указан, то по умолчанию используется значение "UNEP".
          enum:
            - UKEP_UL
            - UNEP
          example: "UKEP_UL"

    FintechWorkflowFault:
      description: Описание ошибки ресурса (ошибка в запросе или его жизненном цикле)
      type: object
      title: WorkflowFault
      properties:
        cause:
          type: string
          example: WORKFLOW_FAULT
          description: Причина или основание ошибки
        referenceId:
          type: string
          description: Уникальный идентификатор ошибки (UUID)
        message:
          type: string
          description: Сообщение
        checks:
          type: array
          description: Список проверок, приведших к ошибке
          items:
            $ref: '#/components/schemas/FintechCheck'
        internalErrorCode:
          description: Внутренний код ошибки
          nullable: true
          type: string

    FintechCheck:
      description: Результат проверки
      type: object
      title: Check
      properties:
        level:
          type: string
          description: Уровень результата
          example: ERROR
        message:
          type: string
          description: Сообщение
        fields:
          type: array
          items:
            type: string
          description: Названия полей (при наличии связи с моделью)

    FintechVat:
      nullable: true
      description: |
       Данные НДС (носит информационный характер, не влияет на заполнение "Назначения платежа")
      type: object
      title: Vat
      required:
        - type
      properties:
        type:
          type: string
          pattern: "^.{0,15}$"
          nullable: true
          enum:
            - INCLUDED
            - ONTOP
            - NO_VAT
            - MANUAL
          description: | 
           Способ расчета НДС 
           * INCLUDED - НДС включен в сумму платежа
           * NO_VAT - не облагается НДС
           * MANUAL - ручной ввод НДС
           * ONTOP - НДС рассчитан по указанной ставке и добавляется к сумме платежа.
          example: "NO_VAT"
        rate:
          type: string
          pattern: ^(0|5|7|10|20|22)$
          description: Ставка НДС
          example: "10"
          nullable: true
        amount:
          type: number
          pattern: "^-?\\d{0,18}(\\.\\d{1,2})?$"
          description: Сумма НДС
          example: 1.01
          nullable: true
  
    FintechPaymentDocState:
      description: Статус документа
      type: object
      title: PaymentDocState
      allOf:
        - $ref: '#/components/schemas/FintechDocState'
        - type: object
          properties:
            crucialFieldsHash:
              type: string
              description: Hash от ключевых полей документа
              example: "12345678901234567890123456789012"
    
    FintechDocState:
      description: Статус документа
      type: object
      title: DocState
      allOf:
        - $ref: '#/components/schemas/FintechDocStateShort'
        - type: object
          properties:
            channelInfo:
              type: string
              title: Дополнительная информация
              description: Комментарий, специфичный для документа, полученного по данному каналу
    
    FintechDocStateShort:
      description: Сокращенный статус документа
      type: object
      title: DocStateShort
      properties:
        bankStatus:
          type: string
          description: Статус документа
          example: "PROCESSING"
        bankComment:
          type: string
          pattern: ^[\s\S]{0,4000}$
          description: Банковский комментарий к статусу документа
          example: "Документ в обработке"

# Powered by APIStudio