openapi: 3.1.0
info:
  title: Инвойсбокс API — публичный контракт
  version: v3
  description: >-
    Сгенерировано из публичных методов RAML-схем Инвойсбокс. Документация:
    https://docs.invoicebox.ru


    Обязательные заголовки каждого запроса: Authorization: Bearer <токен>,
    Content-Type: application/json, User-Agent: <приложение>/<версия>. Ответ
    несёт X-Request-Id — прикладывайте его к обращениям в поддержку. Денежные
    значения — number с двумя знаками после точки: в коде используйте
    Decimal/BigDecimal.
  license:
    name: Проприетарная документация Инвойсбокс
    url: https://www.invoicebox.ru/
servers:
  - url: https://api.invoicebox.ru
security:
  - bearerAuth: []
paths:
  /v3/billing/api/order/order:
    post:
      operationId: post_v3_billing_api_order_order
      summary: Создание заказа
      description: Создание заказа. Заказ представляет собой заявку на оплату товаров,
        работ или услуг. При создании проверяется лимит на сумму заказов для
        юридического лица, если у контрагента указан ИНН — выполняется проверка
        КИСП. Если у способа оплаты включена автооплата, оплата создаётся
        автоматически.
      x-doc-page: /docs/merchant/order/create/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BillingProviderDomainOrderEntityOrderApiReadMetadat\
                  aResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BillingProviderDomainOrderEntityOrderApiCreate"
    get:
      operationId: get_v3_billing_api_order_order
      summary: Получение списка заказов магазина
      description: |-
        Получение списка заказов магазина

         Allowed ```_extend[]=``` query param values: ```merchant```
      x-doc-page: /docs/merchant/order/create/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BillingProviderDomainOrderEntityOrderApiReadMetadat\
                  aCollectionResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /v3/billing/api/order/order/{id}:
    get:
      operationId: get_v3_billing_api_order_order_id
      summary: Получение информации о заказе по его идентификатору
      description: >-
        Получение информации о заказе по его идентификатору. Возвращает полный
        состав заказа, включая позиции, сумму, налог, данные о магазине и
        статусе.

         Allowed ```_extend[]=``` query param values: ```language, merchant, currency```
      x-doc-page: /docs/merchant/order/update/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BillingProviderDomainOrderEntityOrderApiReadMetadat\
                  aResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
    put:
      operationId: put_v3_billing_api_order_order_id
      summary: Редактирование состава заказа
      description: Редактирование состава заказа. Позволяет изменить позиции в заказе,
        сумму, описание и другие параметры. Изменения применяются в рамках
        транзакции.
      x-doc-page: /docs/merchant/order/update/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BillingProviderDomainOrderEntityOrderApiReadMetadat\
                  aResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BillingProviderDomainOrderEntityOrderApiUpdate"
    delete:
      operationId: delete_v3_billing_api_order_order_id
      summary: Отмена заказа
      description: Отмена заказа. Доступно только для заказов со статусом `created`.
        При отмене заказ переходит в статус `canceled`, а связанный контейнер
        заказов и дебетовая накладная обновляются соответствующим образом.
      x-doc-page: /docs/merchant/order/update/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BillingProviderDomainOrderEntityOrderApiReadMetadat\
                  aResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
  /v3/billing/api/order/order-container:
    post:
      operationId: post_v3_billing_api_order_order_container
      summary: Создание группы заказов магазина
      description: >-
        Создание группы заказов магазина. Группировка заказов позволяет
        обрабатывать несколько заказов одновременно, что удобно при интеграции с
        маркетплейсами. Группа заказов содержит заказы с одинаковым магазином,
        валютой и способом оплаты.

         Allowed ```_include[]=``` query param values: ```order```

         Always returned ```_include[]=``` values (even if not requested): ```order```
      x-doc-page: /docs/merchant/order/create-order-container/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BillingProviderDomainOrderEntityOrderContainerApiRe\
                  adMetadataResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BillingProviderDomainOrderEntityOrderContainerMarke\
                tplaceApiCreate"
  /v3/billing/api/order/correction-order:
    post:
      operationId: post_v3_billing_api_order_correction_order
      summary: Создание корректирующего заказа
      description: Создание корректирующего заказа. Статус возвратного
        заказа(parentId) должен быть draft.
      x-doc-page: /docs/merchant/refund/correction/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BillingProviderDomainOrderEntityOrderApiReadMetadat\
                  aResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BillingAppApplicationOrderDTOCorrectionOrderApiCrea\
                te"
  /v3/billing/api/order/refund-order:
    post:
      operationId: post_v3_billing_api_order_refund_order
      summary: Создание возвратного заказа
      description: Создание возвратного заказа. Родительский заказ должен иметь статус
        `completed`. Возвратный заказ создаёт кредитную накладну для возврата
        средств клиенту. Проверяется доступность возврата по родительскому
        заказу и уникальность позиций в корзине.
      x-doc-page: /docs/merchant/refund/create/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BillingProviderDomainOrderEntityRefundOrderApiReadM\
                  etadataResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BillingAppApplicationOrderDTORefundOrderApiCreate"
    get:
      operationId: get_v3_billing_api_order_refund_order
      summary: Получение списка возвратов
      description: |-
        Получение списка возвратов

         Allowed ```_extend[]=``` query param values: ```merchant, order```
      x-doc-page: /docs/merchant/refund/create/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BillingProviderDomainOrderEntityRefundOrderApiReadM\
                  etadataCollectionResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /v3/billing/api/order/refund-order/{id}:
    put:
      operationId: put_v3_billing_api_order_refund_order_id
      summary: Редактирование возвратного заказа
      description: Редактирование возвратного заказа. Позволяет изменить позиции
        возврата и сумму. Нельзя изменить возврат, если уже создана кредитная
        накладная. Проверяется доступность возврата по родительскому заказу.
      x-doc-page: /docs/merchant/refund/get/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BillingProviderDomainOrderEntityRefundOrderApiReadM\
                  etadataResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BillingProviderDomainOrderEntityRefundOrderApiUpdat\
                e"
    delete:
      operationId: delete_v3_billing_api_order_refund_order_id
      summary: Отмена возвратного заказа
      description: Отмена возвратного заказа. Доступно только для возвратов со
        статусом `created`. При отмене статус меняется на `cancel`. Если
        существует кредитная накладная, удаление запрещено.
      x-doc-page: /docs/merchant/refund/get/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptyTypeResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
  /v3/billing/api/order/order/{id}/refund-basket-item:
    get:
      operationId: get_v3_billing_api_order_order_id_refund_basket_item
      summary: Получение списка позиций заказа, доступных для возврата
      description: "Получение списка позиций заказа, доступных для возврата.
        Возвращает только те позиции, по которым остался невозвращённый остаток.
        Остаток считается по сумме и лежит в `availableAmount`. `amount` —
        заказная цена за единицу, `quantity` — сколько единиц ещё покрывает
        остаток (округление вверх), так что `amount * quantity` с остатком не
        совпадает. Полей `totalAmount` и `totalVatAmount` в ответе нет: строку
        возврата клиент собирает сам, исходя из того, сколько он возвращает, и
        её сумма не должна превышать `availableAmount`."
      x-doc-page: /docs/merchant/refund/create/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BillingAppApplicationOrderDTOAvailableBasketItemApi\
                  ReadMetadataCollectionResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
  /v3/billing/api/order/shipment:
    post:
      operationId: post_v3_billing_api_order_shipment
      summary: Создание отгрузки по заказу
      description: Создание отгрузки по заказу. Отгрузка фиксирует часть товаров или
        услуг, переданных клиенту по заказу. Статус заказа должен быть
        `completed`, `hold` или `expired`. Если отгрузка помечена как последняя
        (`final`), а отгружено не всё, создаётся автоматическая отмена на
        оставшиеся позиции.
      x-doc-page: /docs/merchant/order/shipment_create/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BillingProviderDomainOrderEntityShipmentApiReadMeta\
                  dataResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BillingAppApplicationOrderDTOShipmentApiCreate"
    get:
      operationId: get_v3_billing_api_order_shipment
      summary: Получение списка отгрузок магазина
      description: |-
        Получение списка отгрузок магазина

         Allowed ```_extend[]=``` query param values: ```merchant```
      x-doc-page: /docs/merchant/order/shipment_create/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BillingProviderDomainOrderEntityShipmentApiReadMeta\
                  dataCollectionResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /v3/billing/api/order/shipment/{id}:
    put:
      operationId: put_v3_billing_api_order_shipment_id
      summary: Редактирование состава отгрузки
      description: Редактирование состава отгрузки. Позволяет изменить позиции в
        отгрузке и сумму. Для черновых отгрузок проверяются лимиты и
        корректность суммы. Для завершённых отгрузок сумма не может быть
        изменена.
      x-doc-page: /docs/merchant/order/shipment_update/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BillingProviderDomainOrderEntityShipmentApiReadMeta\
                  dataResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BillingProviderDomainOrderEntityShipmentApiUpdate"
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
  /v3/billing/api/order/shipment/{id}/status:
    put:
      operationId: put_v3_billing_api_order_shipment_id_status
      summary: Изменение статуса отгрузки
      description: Изменение статуса отгрузки. Черновую отгрузку можно завершить
        (`completed`) или отменить (`canceled`). Завершённую отгрузку можно
        только отменить. При изменении статуса пересчитываются суммы и, при
        необходимости, создаются автоматические отмены.
      x-doc-page: /docs/merchant/order/shipment_update/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BillingProviderDomainOrderEntityShipmentApiReadMeta\
                  dataResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BillingAppApplicationOrderDTOShipmentStatusDataApiU\
                pdate"
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
  /v3/billing/api/order/order/order-merchant-move:
    put:
      operationId: put_v3_billing_api_order_order_order_merchant_move
      summary: Перенос заказа в другой магазин
      description: Перенос заказа в другой магазин. Доступно только для заказов со
        статусом `created`. При переносе заказ привязывается к новому магазину и
        продолжает обрабатываться в его контексте.
      x-doc-page: /docs/merchant/order/merchant-move/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BillingProviderDomainOrderEntityOrderApiReadMetadat\
                  aResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BillingAppApplicationOrderDTOUpdateOrderMerchantApi\
                Update"
  /v3/billing/api/payment/confirm:
    post:
      operationId: post_v3_billing_api_payment_confirm
      summary: Оплата заказа без прохождения 3-D Secure аутентификации
      description: Оплата заказа без прохождения 3-D Secure аутентификации. Создаёт
        операцию оплаты для заказа, инициируя платёж через подключённый
        платёжный метод. После успешной оплаты заказ переходит в статус
        `completed`.
      x-doc-page: /docs/merchant/order/recurring/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BillingProviderDomainOrderEntityOrderApiReadMetadat\
                  aResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BillingAppApplicationOrderDTOAcceptPaymentApiCreate"
  /v3/billing/api/merchant/special-offer:
    post:
      operationId: post_v3_billing_api_merchant_special_offer
      summary: Создание специального предложения для магазина
      description: Создание специального предложения для магазина. Спецпредложение
        привязывается к магазину и действует в течение заданного периода (от
        `startAt` до `finishAt`). Дата окончания должна быть больше даты начала.
      x-doc-page: /docs/marketplace/special-offer/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BillingProviderDomainMerchantEntitySpecialOfferApiR\
                  eadMetadataResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BillingProviderDomainMerchantEntitySpecialOfferApiC\
                reate"
    get:
      operationId: get_v3_billing_api_merchant_special_offer
      summary: Получение списка спец
      description: |-
        Получение списка спец. предложений

         Allowed ```_extend[]=``` query param values: ```merchant```
      x-doc-page: /docs/marketplace/special-offer/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BillingProviderDomainMerchantEntitySpecialOfferApiR\
                  eadMetadataCollectionResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
  /v3/billing/api/merchant/special-offer/{id}:
    put:
      operationId: put_v3_billing_api_merchant_special_offer_id
      summary: Редактирование специального предложения
      description: Редактирование специального предложения. Проверяется, что дата
        окончания больше даты начала. Изменения сохраняются в рамках транзакции.
      x-doc-page: /docs/marketplace/special-offer/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BillingProviderDomainMerchantEntitySpecialOfferApiR\
                  eadMetadataResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BillingProviderDomainMerchantEntitySpecialOfferApiU\
                pdate"
    delete:
      operationId: delete_v3_billing_api_merchant_special_offer_id
      summary: Удаление специального предложения
      description: Удаление специального предложения. Используется мягкое удаление —
        устанавливается дата удаления. Предложение больше не учитывается при
        обработке заказов.
      x-doc-page: /docs/marketplace/special-offer/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptyTypeResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
  /v3/filter/api/order/order:
    get:
      operationId: get_v3_filter_api_order_order
      summary: Запрашивает список заказов магазина через SDK бэк-офиса
      description: >-
        Запрашивает список заказов магазина через SDK бэк-офиса. Поддерживает

        фильтрацию стандартными параметрами. Расширяет ответ встроенными
        данными:

        `order-container` — группа заказа, `merchant` — магазин. Возвращает

        коллекцию заказов с пагинацией.


         Allowed ```_extend[]=``` query param values: ```merchant```

        Ответ — объект { data, metaData: { totalCount, page, pageSize },
        extendedData }, а не массив. Фильтры по полям и операторы сравнения:
        https://docs.invoicebox.ru/docs/api/filters/
      x-doc-page: /docs/merchant/order/get/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FilterEnvelope"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      parameters:
        - name: merchantOrderId
          in: query
          required: false
          description: "Точное совпадение номера в учётной системе магазина. Используется
            в восстановлении после таймаута: повторяйте создание только если
            выборка пуста"
          schema:
            type: string
            maxLength: 100
        - name: _page
          in: query
          required: false
          description: Номер страницы, с 1
          schema:
            type: integer
            minimum: 1
        - name: _pageSize
          in: query
          required: false
          description: Элементов на странице, по умолчанию 30
          schema:
            type: integer
            minimum: 1
        - name: _order
          in: query
          required: false
          description: "Сортировка: _order[<поле>]=asc|desc, можно по нескольким полям"
          style: deepObject
          explode: true
          schema:
            type: object
            additionalProperties:
              type: string
              enum:
                - asc
                - desc
  /v3/filter/api/order/refund-order:
    get:
      operationId: get_v3_filter_api_order_refund_order
      summary: Запрашивает список возвратов заказов через SDK бэк-офиса
      description: >-
        Запрашивает список возвратов заказов через SDK бэк-офиса. Поддерживает

        фильтрацию стандартными параметрами. Расширяет ответ встроенными
        данными:

        `merchant` — магазин, `order` — заказ, `order-container` — группа
        заказа.

        Через `include` доступна подгрузка кредитных счетов (`credit-invoice`).

        Возвращает коллекцию возвратов с пагинацией.


         Allowed ```_extend[]=``` query param values: ```merchant, order```

        Ответ — объект { data, metaData: { totalCount, page, pageSize },
        extendedData }, а не массив. Фильтры по полям и операторы сравнения:
        https://docs.invoicebox.ru/docs/api/filters/
      x-doc-page: /docs/merchant/refund/get/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FilterEnvelope"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      parameters:
        - name: merchantOrderId
          in: query
          required: false
          description: "Точное совпадение номера в учётной системе магазина. Используется
            в восстановлении после таймаута: повторяйте создание только если
            выборка пуста"
          schema:
            type: string
            maxLength: 100
        - name: _page
          in: query
          required: false
          description: Номер страницы, с 1
          schema:
            type: integer
            minimum: 1
        - name: _pageSize
          in: query
          required: false
          description: Элементов на странице, по умолчанию 30
          schema:
            type: integer
            minimum: 1
        - name: _order
          in: query
          required: false
          description: "Сортировка: _order[<поле>]=asc|desc, можно по нескольким полям"
          style: deepObject
          explode: true
          schema:
            type: object
            additionalProperties:
              type: string
              enum:
                - asc
                - desc
  /v3/filter/api/counterparty-detail:
    get:
      operationId: get_v3_filter_api_counterparty_detail
      summary: Ищет реквизиты организаций тремя способами в зависимости от параметра
        `type`
      description: >-
        Ищет реквизиты организаций тремя способами в зависимости от параметра
        `type`.

        Значение `vat` ищет по ИНН через поле `vatNumber` — обращается к DaData.

        Значение `tinkoff` ищет организации через Tinkoff Open API по параметру
        `code`.

        Значение `ids` ищет по массиву внутренних идентификаторов `id`. Для
        каждого

        найденного реквизита автоматически обновляются внутренние свойства через

        зарегистрированные провайдеры. При отсутствии результатов или ошибке

        провайдера возвращается пустой список.



        Ответ — объект { data, metaData: { totalCount, page, pageSize },
        extendedData }, а не массив. Фильтры по полям и операторы сравнения:
        https://docs.invoicebox.ru/docs/api/filters/
      x-doc-page: /docs/dictionary/counterparty-detail/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FilterProviderDomainEntityCounterpartyDetailApiRead\
                  DefaultMetadataCollectionResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      parameters:
        - name: _page
          in: query
          required: false
          description: Номер страницы, с 1
          schema:
            type: integer
            minimum: 1
        - name: _pageSize
          in: query
          required: false
          description: Элементов на странице, по умолчанию 30
          schema:
            type: integer
            minimum: 1
        - name: _order
          in: query
          required: false
          description: "Сортировка: _order[<поле>]=asc|desc, можно по нескольким полям"
          style: deepObject
          explode: true
          schema:
            type: object
            additionalProperties:
              type: string
              enum:
                - asc
                - desc
  /v3/security/api/auth/auth:
    get:
      operationId: get_v3_security_api_auth_auth
      summary: Проверяет текущую сессию пользователя API
      description: >
        Проверяет текущую сессию пользователя API. Возвращает идентификатор
        пользователя,

        профиль, данные учётной записи, идентификатор приложения и области
        действия токена.
      x-doc-page: /docs/api/auth/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SecurityAppApplicationDTOAuthStatusApiReadMetadataR\
                  esponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
    post:
      operationId: post_v3_security_api_auth_auth
      summary: Авторизует пользователя API по паролю
      description: >
        Авторизует пользователя API по паролю. Поддерживает вход по email или
        телефону (`type: email`

        или `type: phone`). Пользователь должен быть в статусе `active`. После
        успешной

        аутентификации создаётся сессионный cookie, в ответе возвращаются
        идентификатор пользователя,

        профиль и данные идентификатора учётной записи.
      x-doc-page: /docs/api/auth/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SecurityAppApplicationDTOAuthStatusApiReadMetadataR\
                  esponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SecurityAppApplicationDTOAuthenticatedDataApiCreate"
  /v3/security/api/api-user-group/activation:
    post:
      operationId: post_v3_security_api_api_user_group_activation
      summary: Активирует интеграцию (группу пользователя API) для мерчанта
      description: >
        Активирует интеграцию (группу пользователя API) для мерчанта. Возвращает
        данные

        интеграции, включая идентификатор мерчанта.
      x-doc-page: /docs/partner/integration/activation/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SecurityAppApplicationDTOMerchantIntegrationDataApi\
                  ReadMetadataResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SecurityAppApplicationDTOActivationDataApiCreate"
  /v3/notification/api/invite:
    post:
      operationId: post_v3_notification_api_invite
      summary: Создаёт приглашение в приложение для партнёра
      description: |
        Создаёт приглашение в приложение для партнёра. Приглашение может быть
        отправлено на email или номер телефона (`type`). Система регистрирует
        факт отправки и привязывает его к партнёру (`partnerId`). Роут
        доступен без аутентификации.
      x-doc-page: /docs/partner/integration/invite/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NotificationProviderDomainEntityInviteApiReadMetada\
                  taResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/NotificationProviderDomainEntityInviteApiCreate"
  /v3/processing/api/payment-token/delete:
    post:
      operationId: post_v3_processing_api_payment_token_delete
      summary: Удаляет сохранённый платёжный токен (paymentToken) для указанного
        клиента (clientId)
      description: >
        Удаляет сохранённый платёжный токен (paymentToken) для указанного
        клиента (clientId). Используется для отзыва доступа к рекуррентным
        платежам.
      x-doc-page: /docs/merchant/order/recurring/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptyTypeResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProcessingAppApplicationPaymentOperationDTODeletePa\
                ymentTokenDataApiCreate"
  /v3/marketplace/api/shop:
    get:
      operationId: get_v3_marketplace_api_shop
      summary: Список точек продаж
      description: >2-
        

         Allowed ```_extend[]=``` query param values: ```image, model, brand```

         Allowed ```_include[]=``` query param values: ```shop-domain, marketplace-setting```
      x-doc-page: /docs/marketplace/create/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AppDomainEntityShopPaymentgatewayReadApiReadMetadat\
                  aCollectionResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
    post:
      operationId: post_v3_marketplace_api_shop
      summary: Добавление точки продаж
      x-doc-page: /docs/marketplace/create/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AppDomainEntityShopPaymentgatewayReadApiReadMetadat\
                  aResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AppDomainEntityShopPaymentgatewayCreateApiCreate"
  /v3/marketplace/api/shop/{id}:
    put:
      operationId: put_v3_marketplace_api_shop_id
      summary: Обновление точки продаж
      x-doc-page: /docs/marketplace/update/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AppDomainEntityShopPaymentgatewayReadApiReadMetadat\
                  aResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AppDomainEntityShopPaymentgatewayUpdateApiUpdate"
    delete:
      operationId: delete_v3_marketplace_api_shop_id
      summary: Удаляет магазин продавца (мягкое удаление — магазин помечается как
        удалённый, запись в БД не физически стирается)
      description: >
        Удаляет магазин продавца (мягкое удаление — магазин помечается как
        удалённый, запись в БД не физически стирается). Доступно менеджеру
        магазина и менеджеру мерчанта — только для своего магазина.
      x-doc-page: /docs/marketplace/update/
      responses:
        "200":
          description: Успех
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmptyResponse"
          headers:
            X-Request-Id:
              description: "Идентификатор запроса: приложите его к обращению в поддержку"
              schema:
                type: string
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "401":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "403":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "404":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "405":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "422":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
        "429":
          description: "Превышен лимит: 100 запросов за 30 секунд на учётную запись, 500
            на IP. Заголовка Retry-After в ответе нет: повторяйте с растущей
            задержкой и случайным разбросом"
        "500":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorResponse"
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API-токен интеграции (см. /docs/api/auth/)
  schemas:
    ArrayMap:
      type: object
      properties: {}
      additionalProperties:
        type: string
    BillingProviderDomainOrderEntityBasketItemApiCreate:
      type: object
      properties:
        sku:
          oneOf:
            - type: string
            - type: integer
            - type: "null"
          maxLength: 36
          description: Артикул
          x-source: docs
          examples:
            - 5fe0adcfa7fb4
        name:
          type: string
          maxLength: 300
          description: "Наименование позиции. Попадает в фискальный чек как есть и должно
            совпадать с отчётностью магазина:
            https://docs.invoicebox.ru/docs/merchant/fz54/"
          x-source: docs
          examples:
            - Бронирование номера
        groupName:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 500
          description: Наименование группы позиций заказа, используется при формировании
            отчётных документов
          x-source: docs
        measureCode:
          anyOf:
            - type: string
            - type: "null"
          description: "Код единицы измерения по ОКЕИ
            (https://docs.invoicebox.ru/docs/dictionary/okei/). Парное поле к
            measure: достаточно одного из двух"
          x-source: docs
          examples:
            - "796"
        originCountry:
          anyOf:
            - type: string
            - type: "null"
          description: Страна происхождения товара
          x-source: docs
          examples:
            - Россия
        originCountryCode:
          anyOf:
            - type: string
            - type: "null"
          description: Код страны происхождения
          x-source: docs
          examples:
            - "643"
        grossWeight:
          anyOf:
            - type: number
            - type: "null"
          description: Вес брутто
          x-source: docs
        netWeight:
          anyOf:
            - type: number
            - type: "null"
          description: Вес нетто
          x-source: docs
        quantity:
          type: number
          description: Количество
          x-source: docs
        amount:
          type: number
          description: "Стоимость единицы с НДС. Денежное значение: ровно два знака после
            точки. В коде считайте Decimal/BigDecimal, не двоичным float"
          x-source: docs
          multipleOf: 0.01
        amountWoVat:
          type: number
          description: "Стоимость единицы без учёта НДС. Денежное значение: ровно два
            знака после точки. В коде считайте Decimal/BigDecimal, не двоичным
            float"
          x-source: docs
          multipleOf: 0.01
        totalAmount:
          type: number
          description: "Стоимость всех единиц с НДС. Денежное значение: ровно два знака
            после точки. В коде считайте Decimal/BigDecimal, не двоичным float"
          x-source: docs
          multipleOf: 0.01
        totalVatAmount:
          type: number
          description: "Итого сумма НДС по позиции. Денежное значение: ровно два знака
            после точки. В коде считайте Decimal/BigDecimal, не двоичным float"
          x-source: docs
          multipleOf: 0.01
        vatCode:
          type: string
          enum:
            - RUS_VAT22
            - RUS_VAT20
            - RUS_VAT10
            - RUS_VAT7
            - RUS_VAT5
            - RUS_VAT0
          x-source: docs
          description: "Код ставки НДС Инвойсбокс — справочник:
            https://docs.invoicebox.ru/docs/dictionary/tag1199/"
          examples:
            - RUS_VAT22
        type:
          anyOf:
            - type: string
              enum:
                - commodity
                - service
              x-source: docs
            - type: "null"
          description: "Тип позиции по справочнику
            (https://docs.invoicebox.ru/docs/dictionary/tag1212/): service —
            услуга, commodity — товар"
          x-source: docs
        gtdNumber:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 23
          description: Номер грузовой транспортной накладной
          x-source: docs
        paymentType:
          anyOf:
            - type: string
              enum:
                - full_prepayment
                - prepayment
                - advance
                - full_payment
              x-source: docs
            - type: "null"
          description: "Признак способа расчёта (тег 1214): full_prepayment, prepayment,
            advance, full_payment. Если не передать, сервер подставит значение
            из настроек магазина; передавайте явно — так состав чека не зависит
            от настройки в кабинете"
          x-source: docs
        excise:
          anyOf:
            - type: number
            - type: "null"
          minimum: 0
          description: Сумма акциза
          x-source: docs
        metaData:
          anyOf:
            - $ref: "#/components/schemas/ArrayMap"
            - type: "null"
          description: "Дополнительные данные элемента корзины:
            https://docs.invoicebox.ru/docs/merchant/order/metadata/"
          x-source: docs
        tnved:
          anyOf:
            - type: string
            - type: "null"
        rnpt:
          anyOf:
            - type: string
            - type: "null"
        gtin:
          anyOf:
            - type: string
            - type: "null"
        category:
          anyOf:
            - type: string
            - type: "null"
          description: Товарная группа в справочнике категорий магазина или системы
            «Честный знак»
          x-source: docs
          examples:
            - milk
            - water
        categoryType:
          anyOf:
            - type: string
            - type: "null"
          description: "Справочник категории товаров: merchantHonestSignMap — справочник
            категорий магазина, honestSign — Честный знак
            (https://docs.invoicebox.ru/docs/merchant/honest-sign/). Обязательно
            при заполненном category"
          x-source: docs
        serviceDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          description: Дата оказания услуги, если тип позиции — услуга
          x-source: docs
          examples:
            - 2026-11-16T12:00:00+03:00
      required:
        - sku
        - name
        - quantity
        - amount
        - amountWoVat
        - totalAmount
        - totalVatAmount
        - vatCode
        - type
    BillingProviderDomainOrderEntityBasketItemApiCreateCollection:
      type: array
      items:
        $ref: "#/components/schemas/BillingProviderDomainOrderEntityBasketItemApiCreate"
    BillingProviderDomainOrderEntityOrderSettingApiCreate:
      type: object
      properties:
        roundPolicy:
          type: string
        disableValidate:
          type: boolean
    BillingProviderDomainOrderEntityCustomerApiCreate:
      type: object
      properties:
        type:
          type: string
          maxLength: 50
          description: "Тип заказчика: legal — юрлицо или ИП, private — физлицо (из
            документов формируется только фискальный чек)"
          x-source: docs
          examples:
            - legal
            - private
        name:
          type: string
          maxLength: 255
          description: Наименование организации или имя
          x-source: docs
          examples:
            - ООО «Ромашка»
        phone:
          type: string
          maxLength: 50
          description: Номер телефона
          x-source: docs
          examples:
            - "79001112233"
        email:
          type: string
          maxLength: 255
          description: Электронная почта
          x-source: docs
          examples:
            - buh@example.invbox.ru
        vatNumber:
          type: string
          maxLength: 50
          description: ИНН. У юрлица 10 цифр, у ИП 12
          x-source: docs
          examples:
            - "7701234560"
        countryId:
          type: string
          maxLength: 50
        registrationAddress:
          type: string
          maxLength: 1000
          description: Юридический адрес, включая почтовый индекс
          x-source: docs
          examples:
            - 190000, Санкт-Петербург, Невский пр. 147, офис 321
        taxRegistrationReasonCode:
          type: string
          maxLength: 50
          description: КПП. У ИП отсутствует — поле остаётся пустым
          x-source: docs
          examples:
            - "770101001"
    BillingProviderDomainOrderEntityInvoiceSettingApiCreate:
      type: object
      properties:
        customerLocked:
          type: boolean
        customerLockedFields:
          $ref: "#/components/schemas/ArrayMap"
        customerHiddenFields:
          $ref: "#/components/schemas/ArrayMap"
        paymentMethodIdLocked:
          type: boolean
        paymentMethodId:
          type: integer
        savePaymentData:
          type: boolean
        clientId:
          type: string
        paymentToken:
          type: string
        paymentMethodCode:
          type: string
        paymentMethodAutosubmit:
          type: boolean
        bankDetailId:
          type: integer
    BillingProviderDomainOrderEntityOrderApiCreate:
      type: object
      properties:
        description:
          type: string
          maxLength: 1000
          description: Описание заказа
          x-source: docs
          examples:
            - Оплата номера в отеле
        currencyId:
          type: string
          maxLength: 3
          enum:
            - RUB
            - USD
            - EUR
            - GBP
          x-source: docs
          description: "Код валюты заказа по ISO 4217:
            https://docs.invoicebox.ru/docs/dictionary/iso4217/"
          examples:
            - RUB
        amount:
          type: number
          minimum: 0
          description: "Сумма заказа. Денежное значение: ровно два знака после точки. В
            коде считайте Decimal/BigDecimal, не двоичным float"
          x-source: docs
          multipleOf: 0.01
        vatAmount:
          type: number
          minimum: 0
          description: "Сумма НДС заказа. Денежное значение: ровно два знака после точки.
            В коде считайте Decimal/BigDecimal, не двоичным float"
          x-source: docs
          multipleOf: 0.01
        basketItems:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityBasketItemApiCreate\
            Collection"
          description: "Корзина заказа. Наименования попадают в фискальный чек как есть:
            требования к номенклатуре —
            https://docs.invoicebox.ru/docs/merchant/fz54/"
          x-source: docs
        merchantId:
          type: string
          description: Идентификатор магазина. В примерах документации стоит демо-магазин
            — свой возьмите в личном кабинете, вкладка «Интеграция (API)»
          x-source: docs
          examples:
            - ffffffff-ffff-ffff-ffff-ffffffffffff
        status:
          type: string
          maxLength: 50
          description: "Статус заказа (в ответе): created — ожидает оплаты, completed —
            оплачен, hold — средства захолдированы, canceled — отменён, expired
            — просрочен"
          x-source: docs
        subtype:
          type: string
          maxLength: 100
          enum:
            - order
            - hold
          x-source: docs
          description: "Подтип заказа: order — обычный (по умолчанию), hold — заказ с
            холдированием"
        processingStatus:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 100
        merchantOrderId:
          type: string
          maxLength: 100
          description: Идентификатор заказа в учётной системе магазина, должен быть
            уникальным. При повторе после сбоя не меняйте номер — сначала
            проверьте выборкой, создался ли заказ
          x-source: docs
          examples:
            - O-12345
        merchantOrderIdVisible:
          anyOf:
            - type: string
            - type: "null"
          description: Номер заказа, отображаемый на платёжной странице. Если не
            заполнено, показывается значение из merchantOrderId
          x-source: docs
          examples:
            - 111TN22-33
        expirationDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          description: Срок действия заказа. Когда наступает, заказ сам переходит в статус
            expired — оплатить по старой ссылке нельзя
          x-source: docs
        metaData:
          anyOf:
            - $ref: "#/components/schemas/ArrayMap"
            - type: "null"
          description: "Дополнительные данные заказа:
            https://docs.invoicebox.ru/docs/merchant/order/metadata/"
          x-source: docs
        notificationUrl:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 1000
          description: URL для уведомлений об изменениях статуса заказа; по умолчанию
            используется URL из настроек магазина. Только HTTPS, на localhost
            уведомление не придёт
          x-source: docs
        orderSetting:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityOrderSettingApiCrea\
            te"
          description: Дополнительные настройки параметров заказа
          x-source: docs
        shopId:
          anyOf:
            - type: integer
            - type: "null"
          description: Идентификатор связанного магазина или маркетплейса
          x-source: docs
        parentId:
          type: string
          description: "Идентификатор базового заказа — для корректирующих заказов:
            https://docs.invoicebox.ru/docs/merchant/refund/correction/"
          x-source: docs
          examples:
            - 01771534-196a-1105-839a-82422289d6d9
        returnUrl:
          anyOf:
            - type: string
            - type: "null"
          description: Ссылка для возврата на сайт магазина (кнопка «вернуться в магазин»
            на платёжной странице)
          x-source: docs
          examples:
            - https://shop.example.com/order/4412?result=return
        successUrl:
          anyOf:
            - type: string
            - type: "null"
          description: Ссылка для перехода на сайт магазина в случае успешной оплаты
          x-source: docs
          examples:
            - https://shop.example.com/order/4412?result=success
        failUrl:
          anyOf:
            - type: string
            - type: "null"
          description: Ссылка для перехода на сайт магазина в случае ошибки оплаты
          x-source: docs
          examples:
            - https://shop.example.com/order/4412?result=fail
        customer:
          anyOf:
            - $ref: "#/components/schemas/BillingProviderDomainOrderEntityCustomerApiCreate"
            - type: "null"
          description: Информация о заказчике. По реквизитам заказчика-юрлица уходят
            закрывающие документы
          x-source: docs
        languageId:
          anyOf:
            - type: string
              enum:
                - ru
                - en
              x-source: docs
            - type: "null"
          description: Язык интерфейса платёжной страницы
          x-source: docs
          examples:
            - ru
            - en
        contactId:
          anyOf:
            - type: integer
            - type: "null"
        contactCounterpartyId:
          anyOf:
            - type: integer
            - type: "null"
        processable:
          type: boolean
          description: "Признак процессингового заказа: true — расчёты проходят в биллинге
            Инвойсбокса (по умолчанию); false — непроцессинговый заказ: оплату
            принимает магазин, а Инвойсбокс формирует документы
            (https://docs.invoicebox.ru/docs/merchant/order/non-processable-ord\
            er/)"
          x-source: docs
        userAccountId:
          anyOf:
            - type: string
            - type: "null"
          description: Идентификатор программы лояльности
          x-source: docs
        invoiceSetting:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityInvoiceSettingApiCr\
            eate"
          description: Дополнительные настройки параметров оплаты
          x-source: docs
        orderContainerId:
          anyOf:
            - type: string
            - type: "null"
          description: Идентификатор контейнера заказов — группы заказов, объединённых
            одним процессом оплаты покупателя. Указывается, чтобы добавить заказ
            к уже существующему счёту
          x-source: docs
          examples:
            - 01771534-196a-1105-839a-82422289d6d9
        paymentInfo:
          anyOf:
            - $ref: "#/components/schemas/ArrayMap"
            - type: "null"
          description: Информация об оплате и плательщике (в ответе, если заказ оплачен)
          x-source: docs
        holdTill:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
          description: Дата и время списания холдированных средств — для заказов с
            подтипом hold
          x-source: docs
      required:
        - currencyId
        - amount
        - vatAmount
        - merchantId
        - merchantOrderId
    BillingProviderDomainOrderEntityBasketItemApiReadMetadata:
      type: object
      properties:
        sku:
          oneOf:
            - type: string
            - type: integer
            - type: "null"
          maxLength: 36
        name:
          type: string
          maxLength: 300
        groupName:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 500
        measure:
          anyOf:
            - type: string
            - type: "null"
        measureCode:
          anyOf:
            - type: string
            - type: "null"
        originCountry:
          anyOf:
            - type: string
            - type: "null"
        originCountryCode:
          anyOf:
            - type: string
            - type: "null"
        grossWeight:
          anyOf:
            - type: number
            - type: "null"
        netWeight:
          anyOf:
            - type: number
            - type: "null"
        quantity:
          type: number
        amount:
          type: number
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        amountWoVat:
          type: number
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        totalAmount:
          type: number
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        totalVatAmount:
          type: number
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        vatCode:
          type: string
          enum:
            - RUS_VAT22
            - RUS_VAT20
            - RUS_VAT10
            - RUS_VAT7
            - RUS_VAT5
            - RUS_VAT0
          x-source: docs
        type:
          oneOf:
            - type: string
            - type: integer
            - type: "null"
        gtdNumber:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 23
        paymentType:
          anyOf:
            - type: string
              enum:
                - full_prepayment
                - prepayment
                - advance
                - full_payment
              x-source: docs
            - type: "null"
        excise:
          anyOf:
            - type: number
            - type: "null"
          minimum: 0
        metaData:
          anyOf:
            - $ref: "#/components/schemas/ArrayMap"
            - type: "null"
        tnved:
          anyOf:
            - type: string
            - type: "null"
        rnpt:
          anyOf:
            - type: string
            - type: "null"
        gtin:
          anyOf:
            - type: string
            - type: "null"
        category:
          anyOf:
            - type: string
            - type: "null"
        categoryType:
          anyOf:
            - type: string
            - type: "null"
        serviceDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
      required:
        - sku
        - name
        - quantity
        - amount
        - amountWoVat
        - totalAmount
        - totalVatAmount
        - vatCode
        - type
    BillingProviderDomainOrderEntityBasketItemApiReadMetadataCollection:
      type: array
      items:
        $ref: "#/components/schemas/BillingProviderDomainOrderEntityBasketItemApiReadMe\
          tadata"
    BillingProviderDomainOrderEntityOrderSettingApiReadMetadata:
      type: object
      properties:
        roundPolicy:
          type: string
        disableValidate:
          type: boolean
    BillingProviderDomainCommonDTOMetadataInternalPropertyApiReadMetadata:
      type: object
      properties:
        guarantee:
          type: boolean
        hold:
          type: boolean
        rtp:
          type: boolean
        agent:
          type: boolean
        rtpExternal:
          type: boolean
    BillingProviderDomainOrderEnumOrderSourceApiReadMetadata:
      type: string
      enum:
        - l3
        - v3
    BillingProviderDomainPaymentEnumPaymentActionTypeApiReadMetadata:
      type: string
      enum:
        - redirect
        - download
        - none
        - error
        - data
        - qr
        - qr-download
        - message
        - wait
    BillingProviderDomainOrderEntityCustomerApiReadMetadata:
      type: object
      properties:
        type:
          type: string
          maxLength: 50
        name:
          type: string
          maxLength: 255
        phone:
          type: string
          maxLength: 50
        email:
          type: string
          maxLength: 255
        vatNumber:
          type: string
          maxLength: 50
        countryId:
          type: string
          maxLength: 50
        registrationAddress:
          type: string
          maxLength: 1000
        taxRegistrationReasonCode:
          type: string
          maxLength: 50
    BillingProviderDomainOrderEntityInvoiceSettingApiReadMetadata:
      type: object
      properties:
        customerLocked:
          type: boolean
        customerLockedFields:
          $ref: "#/components/schemas/ArrayMap"
        customerHiddenFields:
          $ref: "#/components/schemas/ArrayMap"
        paymentMethodIdLocked:
          type: boolean
        paymentMethodId:
          type: integer
        savePaymentData:
          type: boolean
        clientId:
          type: string
        paymentToken:
          type: string
        paymentMethodCode:
          type: string
        paymentMethodAutosubmit:
          type: boolean
        bankDetailId:
          type: integer
    BillingProviderDomainOrderEntityOrderApiReadMetadata:
      type: object
      properties:
        id:
          type: string
        description:
          type: string
          maxLength: 1000
        currencyId:
          type: string
          maxLength: 3
          enum:
            - RUB
            - USD
            - EUR
            - GBP
          x-source: docs
        amount:
          type: number
          minimum: 0
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        vatAmount:
          type: number
          minimum: 0
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        basketItems:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityBasketItemApiReadMe\
            tadataCollection"
        merchantId:
          type: string
        status:
          type: string
          maxLength: 50
        shipmentStatus:
          type: string
          maxLength: 50
        subtype:
          type: string
          maxLength: 100
        processingStatus:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 100
        createdAt:
          type: string
          format: date-time
        merchantOrderId:
          type: string
          maxLength: 100
        merchantOrderIdVisible:
          anyOf:
            - type: string
            - type: "null"
        expirationDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
        metaData:
          anyOf:
            - $ref: "#/components/schemas/ArrayMap"
            - type: "null"
        customerData:
          anyOf:
            - $ref: "#/components/schemas/ArrayMap"
            - type: "null"
        notificationUrl:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 1000
        orderSetting:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityOrderSettingApiRead\
            Metadata"
        internalProperty:
          $ref: "#/components/schemas/BillingProviderDomainCommonDTOMetadataInternalPrope\
            rtyApiReadMetadata"
        tags:
          anyOf:
            - $ref: "#/components/schemas/ArrayMap"
            - type: "null"
        shopId:
          anyOf:
            - type: integer
            - type: "null"
        sourceId:
          anyOf:
            - $ref: "#/components/schemas/BillingProviderDomainOrderEnumOrderSourceApiReadMet\
                adata"
            - type: "null"
        paidAt:
          type: string
          format: date-time
        parentId:
          type: string
        returnUrl:
          anyOf:
            - type: string
            - type: "null"
        successUrl:
          anyOf:
            - type: string
            - type: "null"
        failUrl:
          anyOf:
            - type: string
            - type: "null"
        paymentUrl:
          anyOf:
            - type: string
            - type: "null"
        paymentUrlType:
          anyOf:
            - $ref: "#/components/schemas/BillingProviderDomainPaymentEnumPaymentActionTypeAp\
                iReadMetadata"
            - type: "null"
        paymentPageUrl:
          anyOf:
            - type: string
            - type: "null"
        customer:
          anyOf:
            - $ref: "#/components/schemas/BillingProviderDomainOrderEntityCustomerApiReadMeta\
                data"
            - type: "null"
        languageId:
          anyOf:
            - type: string
              enum:
                - ru
                - en
              x-source: docs
            - type: "null"
        contactId:
          anyOf:
            - type: integer
            - type: "null"
        contactCounterpartyId:
          anyOf:
            - type: integer
            - type: "null"
        processable:
          type: boolean
        userAccountId:
          anyOf:
            - type: string
            - type: "null"
        invoiceSetting:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityInvoiceSettingApiRe\
            adMetadata"
        orderContainerId:
          anyOf:
            - type: string
            - type: "null"
        paymentInfo:
          anyOf:
            - $ref: "#/components/schemas/ArrayMap"
            - type: "null"
        holdTill:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
        additionalOrderId:
          anyOf:
            - type: string
            - type: "null"
        shipmentTotalAmount:
          anyOf:
            - type: string
            - type: "null"
        shipmentTotalVatAmount:
          anyOf:
            - type: string
            - type: "null"
      required:
        - id
        - currencyId
        - amount
        - vatAmount
        - merchantId
        - createdAt
        - merchantOrderId
    MetaDataType:
      type: object
      properties:
        totalCount:
          type: integer
        pageSize:
          type: integer
        page:
          type: integer
      required:
        - totalCount
        - pageSize
        - page
    ExtendedDataItem:
      type: object
      properties:
        type:
          type: string
        data:
          $ref: "#/components/schemas/ArrayMap"
      required:
        - type
        - data
    ExtendedData:
      type: array
      items:
        $ref: "#/components/schemas/ExtendedDataItem"
    BillingProviderDomainOrderEntityOrderApiReadMetadataResponse:
      type: object
      properties:
        data:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityOrderApiReadMetadat\
            a"
        metaData:
          $ref: "#/components/schemas/MetaDataType"
        extendedData:
          $ref: "#/components/schemas/ExtendedData"
      required:
        - data
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
            code:
              type: string
            fields:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                  type:
                    type: string
                  message:
                    type: string
                required:
                  - name
                  - type
                  - message
          required:
            - message
            - code
            - fields
      required:
        - error
    BillingProviderDomainOrderEntityOrderApiReadMetadataCollection:
      type: array
      items:
        $ref: "#/components/schemas/BillingProviderDomainOrderEntityOrderApiReadMetadat\
          a"
    BillingProviderDomainOrderEntityOrderApiReadMetadataCollectionResponse:
      type: object
      properties:
        data:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityOrderApiReadMetadat\
            aCollection"
        metaData:
          $ref: "#/components/schemas/MetaDataType"
        extendedData:
          $ref: "#/components/schemas/ExtendedData"
      required:
        - data
    BillingProviderDomainOrderEntityBasketItemApiUpdate:
      type: object
      properties:
        sku:
          oneOf:
            - type: string
            - type: integer
            - type: "null"
          maxLength: 36
        name:
          type: string
          maxLength: 300
        groupName:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 500
        measureCode:
          anyOf:
            - type: string
            - type: "null"
        originCountry:
          anyOf:
            - type: string
            - type: "null"
        originCountryCode:
          anyOf:
            - type: string
            - type: "null"
        grossWeight:
          anyOf:
            - type: number
            - type: "null"
        netWeight:
          anyOf:
            - type: number
            - type: "null"
        quantity:
          type: number
        amount:
          type: number
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        amountWoVat:
          type: number
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        totalAmount:
          type: number
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        totalVatAmount:
          type: number
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        vatCode:
          type: string
          enum:
            - RUS_VAT22
            - RUS_VAT20
            - RUS_VAT10
            - RUS_VAT7
            - RUS_VAT5
            - RUS_VAT0
          x-source: docs
        type:
          oneOf:
            - type: string
            - type: integer
            - type: "null"
        gtdNumber:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 23
        paymentType:
          anyOf:
            - type: string
              enum:
                - full_prepayment
                - prepayment
                - advance
                - full_payment
              x-source: docs
            - type: "null"
        excise:
          anyOf:
            - type: number
            - type: "null"
          minimum: 0
        metaData:
          anyOf:
            - $ref: "#/components/schemas/ArrayMap"
            - type: "null"
        tnved:
          anyOf:
            - type: string
            - type: "null"
        rnpt:
          anyOf:
            - type: string
            - type: "null"
        gtin:
          anyOf:
            - type: string
            - type: "null"
        category:
          anyOf:
            - type: string
            - type: "null"
        categoryType:
          anyOf:
            - type: string
            - type: "null"
        serviceDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
      required:
        - sku
        - name
        - quantity
        - amount
        - amountWoVat
        - totalAmount
        - totalVatAmount
        - vatCode
        - type
    BillingProviderDomainOrderEntityBasketItemApiUpdateCollection:
      type: array
      items:
        $ref: "#/components/schemas/BillingProviderDomainOrderEntityBasketItemApiUpdate"
    BillingProviderDomainOrderEntityCustomerApiUpdate:
      type: object
      properties:
        type:
          type: string
          maxLength: 50
        name:
          type: string
          maxLength: 255
        phone:
          type: string
          maxLength: 50
        email:
          type: string
          maxLength: 255
        vatNumber:
          type: string
          maxLength: 50
        countryId:
          type: string
          maxLength: 50
        registrationAddress:
          type: string
          maxLength: 1000
        taxRegistrationReasonCode:
          type: string
          maxLength: 50
    BillingProviderDomainOrderEntityInvoiceSettingApiUpdate:
      type: object
      properties:
        customerLocked:
          type: boolean
        customerLockedFields:
          $ref: "#/components/schemas/ArrayMap"
        customerHiddenFields:
          $ref: "#/components/schemas/ArrayMap"
        paymentMethodIdLocked:
          type: boolean
        paymentMethodId:
          type: integer
        savePaymentData:
          type: boolean
        clientId:
          type: string
        paymentToken:
          type: string
        paymentMethodCode:
          type: string
        paymentMethodAutosubmit:
          type: boolean
        bankDetailId:
          type: integer
    BillingProviderDomainOrderEntityOrderApiUpdate:
      type: object
      properties:
        description:
          type: string
          maxLength: 1000
        amount:
          type: number
          minimum: 0
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        vatAmount:
          type: number
          minimum: 0
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        basketItems:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityBasketItemApiUpdate\
            Collection"
        expirationDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
        metaData:
          anyOf:
            - $ref: "#/components/schemas/ArrayMap"
            - type: "null"
        parentId:
          type: string
        returnUrl:
          anyOf:
            - type: string
            - type: "null"
        successUrl:
          anyOf:
            - type: string
            - type: "null"
        failUrl:
          anyOf:
            - type: string
            - type: "null"
        customer:
          anyOf:
            - $ref: "#/components/schemas/BillingProviderDomainOrderEntityCustomerApiUpdate"
            - type: "null"
        languageId:
          anyOf:
            - type: string
              enum:
                - ru
                - en
              x-source: docs
            - type: "null"
        contactId:
          anyOf:
            - type: integer
            - type: "null"
        contactCounterpartyId:
          anyOf:
            - type: integer
            - type: "null"
        invoiceSetting:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityInvoiceSettingApiUp\
            date"
    BillingProviderDomainOrderEntityCustomerMarketplaceApiCreate:
      type: object
      properties:
        type:
          type: string
          maxLength: 50
        name:
          type: string
          maxLength: 255
        phone:
          type: string
          maxLength: 50
        email:
          type: string
          maxLength: 255
        vatNumber:
          type: string
          maxLength: 50
        countryId:
          type: string
          maxLength: 50
        registrationAddress:
          type: string
          maxLength: 1000
        taxRegistrationReasonCode:
          type: string
          maxLength: 50
    BillingProviderDomainOrderEntityInvoiceSettingMarketplaceApiCreate:
      type: object
      properties:
        customerLocked:
          type: boolean
        customerLockedFields:
          $ref: "#/components/schemas/ArrayMap"
        customerHiddenFields:
          $ref: "#/components/schemas/ArrayMap"
        paymentMethodIdLocked:
          type: boolean
        paymentMethodId:
          type: integer
        savePaymentData:
          type: boolean
        clientId:
          type: string
        paymentToken:
          type: string
        paymentMethodCode:
          type: string
        paymentMethodAutosubmit:
          type: boolean
        bankDetailId:
          type: integer
    BillingProviderDomainOrderEntityBasketItemMarketplaceApiCreate:
      type: object
      properties:
        sku:
          oneOf:
            - type: string
            - type: integer
            - type: "null"
          maxLength: 36
        name:
          type: string
          maxLength: 300
        groupName:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 500
        measure:
          anyOf:
            - type: string
            - type: "null"
        measureCode:
          anyOf:
            - type: string
            - type: "null"
        originCountry:
          anyOf:
            - type: string
            - type: "null"
        originCountryCode:
          anyOf:
            - type: string
            - type: "null"
        grossWeight:
          anyOf:
            - type: number
            - type: "null"
        netWeight:
          anyOf:
            - type: number
            - type: "null"
        quantity:
          type: number
        amount:
          type: number
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        amountWoVat:
          type: number
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        totalAmount:
          type: number
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        totalVatAmount:
          type: number
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        vatCode:
          type: string
          enum:
            - RUS_VAT22
            - RUS_VAT20
            - RUS_VAT10
            - RUS_VAT7
            - RUS_VAT5
            - RUS_VAT0
          x-source: docs
        type:
          oneOf:
            - type: string
            - type: integer
            - type: "null"
        gtdNumber:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 23
        paymentType:
          anyOf:
            - type: string
              enum:
                - full_prepayment
                - prepayment
                - advance
                - full_payment
              x-source: docs
            - type: "null"
        excise:
          anyOf:
            - type: number
            - type: "null"
          minimum: 0
        metaData:
          anyOf:
            - $ref: "#/components/schemas/ArrayMap"
            - type: "null"
        tnved:
          anyOf:
            - type: string
            - type: "null"
        rnpt:
          anyOf:
            - type: string
            - type: "null"
        gtin:
          anyOf:
            - type: string
            - type: "null"
        category:
          anyOf:
            - type: string
            - type: "null"
        categoryType:
          anyOf:
            - type: string
            - type: "null"
        serviceDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
      required:
        - sku
        - name
        - quantity
        - amount
        - amountWoVat
        - totalAmount
        - totalVatAmount
        - vatCode
        - type
    BillingProviderDomainOrderEntityBasketItemMarketplaceApiCreateCollection:
      type: array
      items:
        $ref: "#/components/schemas/BillingProviderDomainOrderEntityBasketItemMarketpla\
          ceApiCreate"
    BillingProviderDomainOrderEntityOrderSettingMarketplaceApiCreate:
      type: object
      properties:
        roundPolicy:
          type: string
        disableValidate:
          type: boolean
    BillingProviderDomainOrderEntityOrderMarketplaceApiCreate:
      type: object
      properties:
        currencyId:
          type: string
          maxLength: 3
          enum:
            - RUB
            - USD
            - EUR
            - GBP
          x-source: docs
        amount:
          type: number
          minimum: 0
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        vatAmount:
          type: number
          minimum: 0
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        basketItems:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityBasketItemMarketpla\
            ceApiCreateCollection"
        merchantId:
          type: string
        subtype:
          type: string
          maxLength: 100
        merchantOrderId:
          type: string
          maxLength: 100
        expirationDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
        notificationUrl:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 1000
        orderSetting:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityOrderSettingMarketp\
            laceApiCreate"
        shopId:
          anyOf:
            - type: integer
            - type: "null"
        parentId:
          type: string
      required:
        - currencyId
        - amount
        - vatAmount
        - merchantId
        - merchantOrderId
    BillingProviderDomainOrderEntityOrderMarketplaceApiCreateCollection:
      type: array
      items:
        $ref: "#/components/schemas/BillingProviderDomainOrderEntityOrderMarketplaceApi\
          Create"
    BillingProviderDomainOrderEntityOrderContainerMarketplaceApiCreate:
      type: object
      properties:
        merchantId:
          type: string
        originalCurrencyId:
          type: string
          maxLength: 3
        originalAmount:
          type: number
          minimum: 0
        originalVatAmount:
          type: number
          minimum: 0
        expirationDate:
          type: string
          format: date-time
        customer:
          anyOf:
            - $ref: "#/components/schemas/BillingProviderDomainOrderEntityCustomerMarketplace\
                ApiCreate"
            - type: "null"
        invoiceSetting:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityInvoiceSettingMarke\
            tplaceApiCreate"
        languageId:
          type: string
          maxLength: 2
          enum:
            - ru
            - en
          x-source: docs
        returnUrl:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 1000
        successUrl:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 1000
        failUrl:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 1000
        orders:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityOrderMarketplaceApi\
            CreateCollection"
        merchantOrderIdVisible:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 100
      required:
        - merchantId
        - originalCurrencyId
        - originalAmount
        - originalVatAmount
    BillingProviderDomainOrderEntityOrderContainerApiReadMetadata:
      type: object
      properties:
        id:
          type: string
        merchantId:
          type: string
        originalCurrencyId:
          type: string
          maxLength: 3
        originalAmount:
          type: number
          minimum: 0
        originalVatAmount:
          type: number
          minimum: 0
        expirationDate:
          type: string
          format: date-time
        customer:
          anyOf:
            - $ref: "#/components/schemas/BillingProviderDomainOrderEntityCustomerApiReadMeta\
                data"
            - type: "null"
        invoiceSetting:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityInvoiceSettingApiRe\
            adMetadata"
        status:
          type: string
          maxLength: 100
        returnUrl:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 1000
        successUrl:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 1000
        failUrl:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 1000
        paymentUrl:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 1000
        paymentUrlType:
          anyOf:
            - $ref: "#/components/schemas/BillingProviderDomainPaymentEnumPaymentActionTypeAp\
                iReadMetadata"
            - type: "null"
          maxLength: 1000
        paymentPageUrl:
          anyOf:
            - type: string
            - type: "null"
        payerUserId:
          anyOf:
            - type: string
            - type: "null"
        payerCounterpartyId:
          anyOf:
            - type: string
            - type: "null"
        systemCounterpartyId:
          anyOf:
            - type: string
            - type: "null"
        processable:
          type: boolean
        merchantOrderIdVisible:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 100
        createdAt:
          type: string
          format: date-time
        internalProperty:
          $ref: "#/components/schemas/BillingProviderDomainCommonDTOMetadataInternalPrope\
            rtyApiReadMetadata"
        tags:
          anyOf:
            - $ref: "#/components/schemas/ArrayMap"
            - type: "null"
        sourceId:
          anyOf:
            - $ref: "#/components/schemas/BillingProviderDomainOrderEnumOrderSourceApiReadMet\
                adata"
            - type: "null"
      required:
        - id
        - merchantId
        - originalCurrencyId
        - originalAmount
        - originalVatAmount
        - status
        - processable
        - createdAt
    BillingProviderDomainOrderEntityOrderContainerApiReadMetadataResponse:
      type: object
      properties:
        data:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityOrderContainerApiRe\
            adMetadata"
        metaData:
          $ref: "#/components/schemas/MetaDataType"
        extendedData:
          $ref: "#/components/schemas/ExtendedData"
      required:
        - data
    BillingAppApplicationOrderDTOCorrectionOrderApiCreate:
      type: object
      properties:
        amount:
          type: number
          minimum: 0
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        vatAmount:
          type: number
          minimum: 0
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        basketItems:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityBasketItemApiCreate\
            Collection"
        parentId:
          type: string
        description:
          type: string
      required:
        - amount
        - vatAmount
        - basketItems
        - parentId
        - description
    BillingProviderDomainOrderEnumRefundOrderTypeApiCreate:
      type: string
      enum:
        - refund
        - secured
    BillingAppApplicationOrderDTORefundOrderApiCreate:
      type: object
      properties:
        amount:
          type: number
          minimum: 0
          description: "Сумма возврата. Денежное значение: ровно два знака после точки. В
            коде считайте Decimal/BigDecimal, не двоичным float"
          x-source: docs
          multipleOf: 0.01
        vatAmount:
          type: number
          minimum: 0
          description: "Сумма НДС возврата. Денежное значение: ровно два знака после
            точки. В коде считайте Decimal/BigDecimal, не двоичным float"
          x-source: docs
          multipleOf: 0.01
        basketItems:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityBasketItemApiCreate\
            Collection"
          description: Состав возврата; форма позиций — та же BasketItem, что у создания
            заказа
          x-source: docs
        parentId:
          type: string
          description: Идентификатор базового (оплаченного) заказа, по которому
            оформляется возврат
          x-source: docs
          examples:
            - 01771534-196a-1105-839a-82422289d6d9
        description:
          type: string
          description: Описание возврата
          x-source: docs
          examples:
            - Возврат за неоказанную услугу
        status:
          type: string
          enum:
            - created
            - draft
          default: created
          description: "По умолчанию created; draft — для корректирующих заказов:
            https://docs.invoicebox.ru/docs/merchant/refund/correction/"
          x-source: docs
        subtype:
          $ref: "#/components/schemas/BillingProviderDomainOrderEnumRefundOrderTypeApiCre\
            ate"
          enum:
            - refund
            - secured
          default: refund
          description: "Вид возврата: refund — обычный (по умолчанию), secured — возврат с
            обеспечением"
          x-source: docs
        merchantOrderId:
          type: string
          description: "Идентификатор возвратного заказа в учётной системе магазина — свой
            у каждого возврата. При повторе после сбоя не меняйте номер: сначала
            проверьте выборкой по /v3/filter/api/order/refund-order, создался ли
            возврат"
          x-source: docs
          examples:
            - R-12345
        orderSetting:
          anyOf:
            - $ref: "#/components/schemas/BillingProviderDomainOrderEntityOrderSettingApiCrea\
                te"
            - type: "null"
      required:
        - amount
        - vatAmount
        - basketItems
        - parentId
        - description
        - merchantOrderId
    BillingProviderDomainOrderEntityRefundOrderApiReadMetadata:
      type: object
      properties:
        id:
          type: string
        description:
          type: string
          maxLength: 1000
        currencyId:
          type: string
          maxLength: 3
          enum:
            - RUB
            - USD
            - EUR
            - GBP
          x-source: docs
        amount:
          type: number
          minimum: 0
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        vatAmount:
          type: number
          minimum: 0
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        basketItems:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityBasketItemApiReadMe\
            tadataCollection"
        merchantId:
          type: string
        status:
          type: string
          maxLength: 50
        shipmentStatus:
          type: string
          maxLength: 50
        subtype:
          type: string
          maxLength: 100
        processingStatus:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 100
        createdAt:
          type: string
          format: date-time
        merchantOrderId:
          type: string
          maxLength: 100
        merchantOrderIdVisible:
          anyOf:
            - type: string
            - type: "null"
        expirationDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
        metaData:
          anyOf:
            - $ref: "#/components/schemas/ArrayMap"
            - type: "null"
        customerData:
          anyOf:
            - $ref: "#/components/schemas/ArrayMap"
            - type: "null"
        notificationUrl:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 1000
        orderSetting:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityOrderSettingApiRead\
            Metadata"
        internalProperty:
          $ref: "#/components/schemas/BillingProviderDomainCommonDTOMetadataInternalPrope\
            rtyApiReadMetadata"
        tags:
          anyOf:
            - $ref: "#/components/schemas/ArrayMap"
            - type: "null"
        shopId:
          anyOf:
            - type: integer
            - type: "null"
        sourceId:
          anyOf:
            - $ref: "#/components/schemas/BillingProviderDomainOrderEnumOrderSourceApiReadMet\
                adata"
            - type: "null"
        paidAt:
          type: string
          format: date-time
        orderContainerId:
          anyOf:
            - type: string
            - type: "null"
        parentId:
          anyOf:
            - type: string
            - type: "null"
        securityOrderId:
          anyOf:
            - type: string
            - type: "null"
        processable:
          type: boolean
        userAccountId:
          anyOf:
            - type: string
            - type: "null"
      required:
        - id
        - currencyId
        - amount
        - vatAmount
        - merchantId
        - createdAt
        - merchantOrderId
    BillingProviderDomainOrderEntityRefundOrderApiReadMetadataResponse:
      type: object
      properties:
        data:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityRefundOrderApiReadM\
            etadata"
        metaData:
          $ref: "#/components/schemas/MetaDataType"
        extendedData:
          $ref: "#/components/schemas/ExtendedData"
      required:
        - data
    BillingProviderDomainOrderEntityRefundOrderApiReadMetadataCollection:
      type: array
      items:
        $ref: "#/components/schemas/BillingProviderDomainOrderEntityRefundOrderApiReadM\
          etadata"
    BillingProviderDomainOrderEntityRefundOrderApiReadMetadataCollectionResponse:
      type: object
      properties:
        data:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityRefundOrderApiReadM\
            etadataCollection"
        metaData:
          $ref: "#/components/schemas/MetaDataType"
        extendedData:
          $ref: "#/components/schemas/ExtendedData"
      required:
        - data
    BillingProviderDomainOrderEntityRefundOrderApiUpdate:
      type: object
      properties:
        description:
          type: string
          maxLength: 1000
        amount:
          type: number
          minimum: 0
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        vatAmount:
          type: number
          minimum: 0
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        basketItems:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityBasketItemApiUpdate\
            Collection"
        expirationDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
        metaData:
          anyOf:
            - $ref: "#/components/schemas/ArrayMap"
            - type: "null"
    EmptyType:
      anyOf:
        - type: array
        - type: "null"
    EmptyTypeResponse:
      type: object
      properties:
        data:
          $ref: "#/components/schemas/EmptyType"
        metaData:
          $ref: "#/components/schemas/MetaDataType"
        extendedData:
          $ref: "#/components/schemas/ExtendedData"
      required:
        - data
    BillingAppApplicationOrderDTOAvailableBasketItemApiReadMetadata:
      type: object
      properties:
        sku:
          type: string
        name:
          type: string
        groupName:
          anyOf:
            - type: string
            - type: "null"
        measure:
          anyOf:
            - type: string
            - type: "null"
        measureCode:
          anyOf:
            - type: string
            - type: "null"
        originCountry:
          anyOf:
            - type: string
            - type: "null"
        originCountryCode:
          anyOf:
            - type: string
            - type: "null"
        grossWeight:
          anyOf:
            - type: number
            - type: "null"
        netWeight:
          anyOf:
            - type: number
            - type: "null"
        quantity:
          type: number
        amount:
          type: number
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        amountWoVat:
          type: number
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        availableAmount:
          type: number
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        availableVatAmount:
          type: number
          multipleOf: 0.01
          description: "Денежное значение: ровно два знака после точки. В коде считайте
            Decimal/BigDecimal, не двоичным float"
        vatCode:
          type: string
          enum:
            - RUS_VAT22
            - RUS_VAT20
            - RUS_VAT10
            - RUS_VAT7
            - RUS_VAT5
            - RUS_VAT0
          x-source: docs
        type:
          oneOf:
            - type: string
            - type: integer
            - type: "null"
        gtdNumber:
          anyOf:
            - type: string
            - type: "null"
        paymentType:
          anyOf:
            - type: string
              enum:
                - full_prepayment
                - prepayment
                - advance
                - full_payment
              x-source: docs
            - type: "null"
        excise:
          anyOf:
            - type: number
            - type: "null"
        metaData:
          anyOf:
            - $ref: "#/components/schemas/ArrayMap"
            - type: "null"
        tnved:
          anyOf:
            - type: string
            - type: "null"
        rnpt:
          anyOf:
            - type: string
            - type: "null"
        gtin:
          anyOf:
            - $ref: "#/components/schemas/ArrayMap"
            - type: "null"
        category:
          anyOf:
            - type: string
            - type: "null"
        categoryType:
          anyOf:
            - type: string
            - type: "null"
        serviceDate:
          anyOf:
            - type: string
              format: date-time
            - type: "null"
      required:
        - sku
        - name
        - quantity
        - amount
        - amountWoVat
        - availableAmount
        - availableVatAmount
        - vatCode
        - type
    BillingAppApplicationOrderDTOAvailableBasketItemApiReadMetadataCollection:
      type: array
      items:
        $ref: "#/components/schemas/BillingAppApplicationOrderDTOAvailableBasketItemApi\
          ReadMetadata"
    BillingAppApplicationOrderDTOAvailableBasketItemApiReadMetadataCollectionResponse:
      type: object
      properties:
        data:
          $ref: "#/components/schemas/BillingAppApplicationOrderDTOAvailableBasketItemApi\
            ReadMetadataCollection"
        metaData:
          $ref: "#/components/schemas/MetaDataType"
        extendedData:
          $ref: "#/components/schemas/ExtendedData"
      required:
        - data
    BillingProviderDomainOrderEnumShipmentStatusApiCreate:
      type: string
      enum:
        - draft
        - completed
        - pending
        - canceled
    BillingAppApplicationOrderDTOShipmentApiCreate:
      type: object
      properties:
        orderId:
          type: string
        type:
          type: string
        status:
          $ref: "#/components/schemas/BillingProviderDomainOrderEnumShipmentStatusApiCrea\
            te"
        basketItems:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityBasketItemApiCreate\
            Collection"
        amount:
          anyOf:
            - type: number
            - type: "null"
          minimum: 0
        vatAmount:
          anyOf:
            - type: number
            - type: "null"
          minimum: 0
        final:
          anyOf:
            - type: boolean
            - type: "null"
        documentNumber:
          type: string
        documentDate:
          type: string
          format: date-time
        description:
          type: string
      required:
        - orderId
        - basketItems
    BillingProviderDomainOrderEnumShipmentStatusApiReadMetadata:
      type: string
      enum:
        - draft
        - completed
        - pending
        - canceled
    BillingProviderDomainOrderEntityShipmentApiReadMetadata:
      type: object
      properties:
        id:
          type: integer
        orderId:
          type: string
        merchantId:
          type: string
        basketItems:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityBasketItemApiReadMe\
            tadataCollection"
        createdAt:
          type: string
          format: date-time
        type:
          type: string
          maxLength: 100
        status:
          $ref: "#/components/schemas/BillingProviderDomainOrderEnumShipmentStatusApiRead\
            Metadata"
          maxLength: 100
        amount:
          anyOf:
            - type: number
            - type: "null"
          minimum: 0
        vatAmount:
          anyOf:
            - type: number
            - type: "null"
          minimum: 0
        final:
          type: boolean
        documentNumber:
          type: string
          maxLength: 100
        description:
          type: string
          maxLength: 200
        documentDate:
          type: string
          format: date-time
      required:
        - id
        - orderId
        - merchantId
        - basketItems
        - createdAt
    BillingProviderDomainOrderEntityShipmentApiReadMetadataResponse:
      type: object
      properties:
        data:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityShipmentApiReadMeta\
            data"
        metaData:
          $ref: "#/components/schemas/MetaDataType"
        extendedData:
          $ref: "#/components/schemas/ExtendedData"
      required:
        - data
    BillingProviderDomainOrderEntityShipmentApiReadMetadataCollection:
      type: array
      items:
        $ref: "#/components/schemas/BillingProviderDomainOrderEntityShipmentApiReadMeta\
          data"
    BillingProviderDomainOrderEntityShipmentApiReadMetadataCollectionResponse:
      type: object
      properties:
        data:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityShipmentApiReadMeta\
            dataCollection"
        metaData:
          $ref: "#/components/schemas/MetaDataType"
        extendedData:
          $ref: "#/components/schemas/ExtendedData"
      required:
        - data
    BillingProviderDomainOrderEntityShipmentApiUpdate:
      type: object
      properties:
        basketItems:
          $ref: "#/components/schemas/BillingProviderDomainOrderEntityBasketItemApiUpdate\
            Collection"
        amount:
          anyOf:
            - type: number
            - type: "null"
          minimum: 0
        vatAmount:
          anyOf:
            - type: number
            - type: "null"
          minimum: 0
        documentNumber:
          type: string
          maxLength: 100
        documentDate:
          type: string
          format: date-time
      required:
        - basketItems
    BillingProviderDomainOrderEnumShipmentStatusApiUpdate:
      type: string
      enum:
        - draft
        - completed
        - pending
        - canceled
    BillingAppApplicationOrderDTOShipmentStatusDataApiUpdate:
      type: object
      properties:
        status:
          $ref: "#/components/schemas/BillingProviderDomainOrderEnumShipmentStatusApiUpda\
            te"
        description:
          type: string
      required:
        - status
        - description
    BillingAppApplicationOrderDTOUpdateOrderMerchantApiUpdate:
      type: object
      properties:
        merchantId:
          type: string
        orderId:
          type: string
      required:
        - merchantId
        - orderId
    BillingAppApplicationOrderDTOAcceptPaymentApiCreate:
      type: object
      properties:
        orderId:
          type: string
        type:
          type: string
        paymentToken:
          type: string
      required:
        - orderId
        - type
        - paymentToken
    BillingProviderDomainMerchantEntitySpecialOfferApiCreate:
      type: object
      properties:
        merchantId:
          type: string
        externalId:
          anyOf:
            - type: string
            - type: "null"
        active:
          type: boolean
        startAt:
          type: string
          format: date-time
        finishAt:
          type: string
          format: date-time
        name:
          type: string
        description:
          anyOf:
            - type: string
            - type: "null"
        tags:
          anyOf:
            - $ref: "#/components/schemas/ArrayMap"
            - type: "null"
      required:
        - merchantId
        - active
        - startAt
        - finishAt
        - name
    BillingProviderDomainMerchantEntitySpecialOfferApiReadMetadata:
      type: object
      properties:
        id:
          type: integer
        merchantId:
          type: string
        externalId:
          anyOf:
            - type: string
            - type: "null"
        active:
          type: boolean
        startAt:
          type: string
          format: date-time
        finishAt:
          type: string
          format: date-time
        name:
          type: string
        description:
          anyOf:
            - type: string
            - type: "null"
        tags:
          anyOf:
            - $ref: "#/components/schemas/ArrayMap"
            - type: "null"
      required:
        - id
        - merchantId
        - active
        - startAt
        - finishAt
        - name
    BillingProviderDomainMerchantEntitySpecialOfferApiReadMetadataResponse:
      type: object
      properties:
        data:
          $ref: "#/components/schemas/BillingProviderDomainMerchantEntitySpecialOfferApiR\
            eadMetadata"
        metaData:
          $ref: "#/components/schemas/MetaDataType"
        extendedData:
          $ref: "#/components/schemas/ExtendedData"
      required:
        - data
    BillingProviderDomainMerchantEntitySpecialOfferApiReadMetadataCollection:
      type: array
      items:
        $ref: "#/components/schemas/BillingProviderDomainMerchantEntitySpecialOfferApiR\
          eadMetadata"
    BillingProviderDomainMerchantEntitySpecialOfferApiReadMetadataCollectionResponse:
      type: object
      properties:
        data:
          $ref: "#/components/schemas/BillingProviderDomainMerchantEntitySpecialOfferApiR\
            eadMetadataCollection"
        metaData:
          $ref: "#/components/schemas/MetaDataType"
        extendedData:
          $ref: "#/components/schemas/ExtendedData"
      required:
        - data
    BillingProviderDomainMerchantEntitySpecialOfferApiUpdate:
      type: object
      properties:
        merchantId:
          type: string
        externalId:
          anyOf:
            - type: string
            - type: "null"
        active:
          type: boolean
        startAt:
          type: string
          format: date-time
        finishAt:
          type: string
          format: date-time
        name:
          type: string
        description:
          anyOf:
            - type: string
            - type: "null"
        tags:
          anyOf:
            - $ref: "#/components/schemas/ArrayMap"
            - type: "null"
      required:
        - merchantId
        - active
        - startAt
        - finishAt
        - name
    EmptyResponse:
      type: object
      properties:
        data:
          anyOf:
            - type: array
            - type: "null"
      required:
        - data
    FilterProviderDomainEntityCounterpartyDetailApiReadDefaultMetadata:
      type: object
      properties:
        id:
          type: string
        vatNumber:
          type: string
          maxLength: 20
        taxRegistrationReasonCode:
          type: string
          maxLength: 20
        name:
          type: string
          maxLength: 500
        nameFull:
          type: string
          maxLength: 500
        nameDisplay:
          type: string
          maxLength: 500
        nameI18n:
          type: string
          maxLength: 500
        registrationNumber:
          type: string
          maxLength: 20
        registrationDate:
          type: string
          format: date-time
        registrationAddress:
          type: string
          maxLength: 500
        postAddress:
          type: string
          maxLength: 200
        postAddressZip:
          type: string
          maxLength: 6
        legalEntityTypeId:
          type: integer
        registered:
          type: boolean
        internalProperty:
          anyOf:
            - $ref: "#/components/schemas/ArrayMap"
            - type: "null"
      required:
        - id
        - vatNumber
        - registered
    FilterProviderDomainEntityCounterpartyDetailApiReadDefaultMetadataCollection:
      type: array
      items:
        $ref: "#/components/schemas/FilterProviderDomainEntityCounterpartyDetailApiRead\
          DefaultMetadata"
    FilterProviderDomainEntityCounterpartyDetailApiReadDefaultMetadataCollectionResponse:
      type: object
      properties:
        data:
          $ref: "#/components/schemas/FilterProviderDomainEntityCounterpartyDetailApiRead\
            DefaultMetadataCollection"
        metaData:
          $ref: "#/components/schemas/MetaDataType"
        extendedData:
          $ref: "#/components/schemas/ExtendedData"
      required:
        - data
    SecurityProviderDomainEntityProfileApiReadMetadata:
      type: object
      properties:
        id:
          type: integer
        firstName:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 100
        lastName:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 100
        email:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 300
        cityId:
          anyOf:
            - type: integer
            - type: "null"
        countryId:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 3
        userId:
          type: string
      required:
        - id
        - userId
    SecurityAppApplicationDTOAccessTokenApiReadMetadata:
      type: object
      properties:
        accessToken:
          type: string
        tokenType:
          type: string
        scope:
          $ref: "#/components/schemas/ArrayMap"
        expiredAt:
          type: string
          format: date-time
        refreshToken:
          type: string
      required:
        - accessToken
        - tokenType
        - expiredAt
        - refreshToken
    SecurityProviderDomainEntityUserIdentifierApiReadMetadata:
      type: object
      properties:
        id:
          type: integer
        identifier:
          type: string
          maxLength: 100
        active:
          type: boolean
        userId:
          type: string
        type:
          type: string
          maxLength: 255
      required:
        - id
        - identifier
        - active
        - userId
        - type
    ApiBundleAuthorizationPermissionValueApiReadMetadata:
      type: object
      properties:
        name:
          type: string
        value:
          type: string
        targetType:
          type: string
        targetIds:
          $ref: "#/components/schemas/ArrayMap"
        scopes:
          $ref: "#/components/schemas/ArrayMap"
      required:
        - name
        - value
        - targetType
        - targetIds
        - scopes
    ApiBundleAuthorizationPermissionValueApiReadMetadataCollection:
      type: array
      items:
        $ref: "#/components/schemas/ApiBundleAuthorizationPermissionValueApiReadMetadat\
          a"
    SecurityAppApplicationDTOAuthStatusApiReadMetadata:
      type: object
      properties:
        userId:
          anyOf:
            - type: string
            - type: "null"
        applicationId:
          anyOf:
            - type: integer
            - type: "null"
        scopes:
          anyOf:
            - $ref: "#/components/schemas/ArrayMap"
            - type: "null"
        profile:
          anyOf:
            - $ref: "#/components/schemas/SecurityProviderDomainEntityProfileApiReadMetadata"
            - type: "null"
        accessToken:
          anyOf:
            - $ref: "#/components/schemas/SecurityAppApplicationDTOAccessTokenApiReadMetadata"
            - type: "null"
        userIdentifier:
          anyOf:
            - $ref: "#/components/schemas/SecurityProviderDomainEntityUserIdentifierApiReadMe\
                tadata"
            - type: "null"
        permissions:
          anyOf:
            - $ref: "#/components/schemas/ApiBundleAuthorizationPermissionValueApiReadMetadat\
                aCollection"
            - type: "null"
      required:
        - userId
    SecurityAppApplicationDTOAuthStatusApiReadMetadataResponse:
      type: object
      properties:
        data:
          $ref: "#/components/schemas/SecurityAppApplicationDTOAuthStatusApiReadMetadata"
        metaData:
          $ref: "#/components/schemas/MetaDataType"
        extendedData:
          $ref: "#/components/schemas/ExtendedData"
      required:
        - data
    SecurityAppApplicationDTOAuthenticatedDataApiCreate:
      type: object
      properties:
        identifier:
          type: string
        password:
          type: string
      required:
        - identifier
    SecurityAppApplicationDTOActivationDataApiCreate:
      type: object
      properties:
        activationCode:
          type: string
        partnerId:
          type: string
      required:
        - activationCode
    SecurityAppApplicationDTOMerchantIntegrationDataApiReadMetadata:
      type: object
      properties:
        merchantId:
          type: string
        token:
          type: string
        notificationSetting:
          $ref: "#/components/schemas/ArrayMap"
      required:
        - merchantId
        - token
    SecurityAppApplicationDTOMerchantIntegrationDataApiReadMetadataResponse:
      type: object
      properties:
        data:
          $ref: "#/components/schemas/SecurityAppApplicationDTOMerchantIntegrationDataApi\
            ReadMetadata"
        metaData:
          $ref: "#/components/schemas/MetaDataType"
        extendedData:
          $ref: "#/components/schemas/ExtendedData"
      required:
        - data
    NotificationProviderDomainEntityInviteApiCreate:
      type: object
      properties:
        partnerId:
          anyOf:
            - type: string
            - type: "null"
        identifier:
          type: string
        type:
          type: string
      required:
        - identifier
        - type
    NotificationProviderDomainEntityInviteApiReadMetadata:
      type: object
      properties:
        id:
          type: string
    NotificationProviderDomainEntityInviteApiReadMetadataResponse:
      type: object
      properties:
        data:
          $ref: "#/components/schemas/NotificationProviderDomainEntityInviteApiReadMetada\
            ta"
        metaData:
          $ref: "#/components/schemas/MetaDataType"
        extendedData:
          $ref: "#/components/schemas/ExtendedData"
      required:
        - data
    ProcessingAppApplicationPaymentOperationDTODeletePaymentTokenDataApiCreate:
      type: object
      properties:
        clientId:
          type: string
        paymentToken:
          type: string
      required:
        - clientId
        - paymentToken
    AppDomainEntityHoursPaymentgatewayReadApiReadMetadata:
      type: object
      properties:
        mon:
          $ref: "#/components/schemas/ArrayMap"
        tue:
          $ref: "#/components/schemas/ArrayMap"
        wed:
          $ref: "#/components/schemas/ArrayMap"
        thu:
          $ref: "#/components/schemas/ArrayMap"
        fri:
          $ref: "#/components/schemas/ArrayMap"
        sat:
          $ref: "#/components/schemas/ArrayMap"
        sun:
          $ref: "#/components/schemas/ArrayMap"
      required:
        - mon
        - tue
        - wed
        - thu
        - fri
        - sat
        - sun
    AppDomainEntityShopPaymentgatewayReadApiReadMetadata:
      type: object
      properties:
        id:
          type: integer
        title:
          type: string
          maxLength: 50
        description:
          type: string
          maxLength: 2000
        shortDescription:
          type: string
          maxLength: 2000
        seoTitle:
          type: string
          maxLength: 500
        seoKeywords:
          type: string
          maxLength: 500
        seoDescription:
          type: string
          maxLength: 500
        categoryId:
          anyOf:
            - type: integer
            - type: "null"
        shopDeliveryId:
          anyOf:
            - type: integer
            - type: "null"
        alias:
          type: string
          maxLength: 32
        shopUrl:
          type: string
          maxLength: 64
        minOrderSum:
          type: number
        stockMode:
          type: string
          maxLength: 20
        priceMode:
          type: string
          maxLength: 20
        notificationEmail:
          type: string
          maxLength: 500
        defaultPriceId:
          anyOf:
            - type: integer
            - type: "null"
        imagePath:
          type: string
        imageId:
          anyOf:
            - type: integer
            - type: "null"
        ogImagePath:
          type: string
        ogImageId:
          anyOf:
            - type: integer
            - type: "null"
        mode:
          type: string
          maxLength: 100
        jivositeId:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 256
        orderFlow:
          type: string
          maxLength: 256
        yandexMetrikaId:
          anyOf:
            - type: integer
            - type: "null"
        deliveryInfo:
          type: string
          maxLength: 1000
        shopIds:
          $ref: "#/components/schemas/ArrayMap"
        accountProgramIds:
          anyOf:
            - $ref: "#/components/schemas/ArrayMap"
            - type: "null"
        type:
          type: string
        orderLifetime:
          type: integer
        modelId:
          anyOf:
            - type: integer
            - type: "null"
        manualProperties:
          $ref: "#/components/schemas/ArrayMap"
        compiledProperties:
          $ref: "#/components/schemas/ArrayMap"
        properties:
          $ref: "#/components/schemas/ArrayMap"
        imageIds:
          $ref: "#/components/schemas/ArrayMap"
        modelIds:
          $ref: "#/components/schemas/ArrayMap"
        hours:
          anyOf:
            - $ref: "#/components/schemas/AppDomainEntityHoursPaymentgatewayReadApiReadMetada\
                ta"
            - type: "null"
        address:
          type: string
          maxLength: 200
        lat:
          type: number
        lon:
          type: number
        distance:
          anyOf:
            - type: number
            - type: "null"
        externalId:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 50
        brandId:
          anyOf:
            - type: integer
            - type: "null"
        merchantId:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 36
        countryId:
          type: string
          maxLength: 3
        cityId:
          type: integer
        active:
          type: boolean
        priority:
          type: integer
        merchantCategoryId:
          anyOf:
            - type: integer
            - type: "null"
        status:
          type: string
          maxLength: 256
        contactEmail:
          type: string
          maxLength: 500
        contactPhone:
          type: string
          maxLength: 500
        contactVkLink:
          type: string
          maxLength: 500
        contactTgLink:
          type: string
          maxLength: 500
        contactOkLink:
          type: string
          maxLength: 500
      required:
        - id
        - compiledProperties
        - properties
    AppDomainEntityShopPaymentgatewayReadApiReadMetadataCollection:
      type: array
      items:
        $ref: "#/components/schemas/AppDomainEntityShopPaymentgatewayReadApiReadMetadat\
          a"
    AppDomainEntityShopPaymentgatewayReadApiReadMetadataCollectionResponse:
      type: object
      properties:
        data:
          $ref: "#/components/schemas/AppDomainEntityShopPaymentgatewayReadApiReadMetadat\
            aCollection"
        metaData:
          $ref: "#/components/schemas/MetaDataType"
        extendedData:
          $ref: "#/components/schemas/ExtendedData"
      required:
        - data
    AppDomainEntityHoursPaymentgatewayCreateApiCreate:
      type: object
      properties:
        mon:
          $ref: "#/components/schemas/ArrayMap"
        tue:
          $ref: "#/components/schemas/ArrayMap"
        wed:
          $ref: "#/components/schemas/ArrayMap"
        thu:
          $ref: "#/components/schemas/ArrayMap"
        fri:
          $ref: "#/components/schemas/ArrayMap"
        sat:
          $ref: "#/components/schemas/ArrayMap"
        sun:
          $ref: "#/components/schemas/ArrayMap"
      required:
        - mon
        - tue
        - wed
        - thu
        - fri
        - sat
        - sun
    AppDomainEntityShopPaymentgatewayCreateApiCreate:
      type: object
      properties:
        title:
          type: string
          maxLength: 50
        description:
          type: string
          maxLength: 2000
        shortDescription:
          type: string
          maxLength: 2000
        mode:
          type: string
          maxLength: 100
        accountProgramIds:
          anyOf:
            - $ref: "#/components/schemas/ArrayMap"
            - type: "null"
        type:
          type: string
        modelId:
          anyOf:
            - type: integer
            - type: "null"
        manualProperties:
          $ref: "#/components/schemas/ArrayMap"
        hours:
          anyOf:
            - $ref: "#/components/schemas/AppDomainEntityHoursPaymentgatewayCreateApiCreate"
            - type: "null"
        address:
          type: string
          maxLength: 200
        lat:
          type: number
        lon:
          type: number
        externalId:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 50
        brandId:
          anyOf:
            - type: integer
            - type: "null"
        merchantId:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 36
        active:
          type: boolean
        merchantCategoryId:
          anyOf:
            - type: integer
            - type: "null"
    AppDomainEntityShopPaymentgatewayReadApiReadMetadataResponse:
      type: object
      properties:
        data:
          $ref: "#/components/schemas/AppDomainEntityShopPaymentgatewayReadApiReadMetadat\
            a"
        metaData:
          $ref: "#/components/schemas/MetaDataType"
        extendedData:
          $ref: "#/components/schemas/ExtendedData"
      required:
        - data
    AppDomainEntityHoursPaymentgatewayUpdateApiUpdate:
      type: object
      properties:
        mon:
          $ref: "#/components/schemas/ArrayMap"
        tue:
          $ref: "#/components/schemas/ArrayMap"
        wed:
          $ref: "#/components/schemas/ArrayMap"
        thu:
          $ref: "#/components/schemas/ArrayMap"
        fri:
          $ref: "#/components/schemas/ArrayMap"
        sat:
          $ref: "#/components/schemas/ArrayMap"
        sun:
          $ref: "#/components/schemas/ArrayMap"
      required:
        - mon
        - tue
        - wed
        - thu
        - fri
        - sat
        - sun
    AppDomainEntityShopPaymentgatewayUpdateApiUpdate:
      type: object
      properties:
        title:
          type: string
          maxLength: 50
        description:
          type: string
          maxLength: 2000
        shortDescription:
          type: string
          maxLength: 2000
        seoTitle:
          type: string
          maxLength: 500
        seoKeywords:
          type: string
          maxLength: 500
        seoDescription:
          type: string
          maxLength: 500
        categoryId:
          anyOf:
            - type: integer
            - type: "null"
        shopDeliveryId:
          anyOf:
            - type: integer
            - type: "null"
        alias:
          type: string
          maxLength: 32
        shopUrl:
          type: string
          maxLength: 64
        minOrderSum:
          type: number
        notificationEmail:
          type: string
          maxLength: 500
        defaultPriceId:
          anyOf:
            - type: integer
            - type: "null"
        imageId:
          anyOf:
            - type: integer
            - type: "null"
        ogImageId:
          anyOf:
            - type: integer
            - type: "null"
        mode:
          type: string
          maxLength: 100
        jivositeId:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 256
        orderFlow:
          type: string
          maxLength: 256
        yandexMetrikaId:
          anyOf:
            - type: integer
            - type: "null"
        deliveryInfo:
          type: string
          maxLength: 1000
        accountProgramIds:
          anyOf:
            - $ref: "#/components/schemas/ArrayMap"
            - type: "null"
        orderLifetime:
          type: integer
        modelId:
          anyOf:
            - type: integer
            - type: "null"
        manualProperties:
          $ref: "#/components/schemas/ArrayMap"
        imageIds:
          $ref: "#/components/schemas/ArrayMap"
        modelIds:
          $ref: "#/components/schemas/ArrayMap"
        hours:
          anyOf:
            - $ref: "#/components/schemas/AppDomainEntityHoursPaymentgatewayUpdateApiUpdate"
            - type: "null"
        address:
          type: string
          maxLength: 200
        lat:
          type: number
        lon:
          type: number
        externalId:
          anyOf:
            - type: string
            - type: "null"
          maxLength: 50
        brandId:
          anyOf:
            - type: integer
            - type: "null"
        active:
          type: boolean
        merchantCategoryId:
          anyOf:
            - type: integer
            - type: "null"
        status:
          type: string
          maxLength: 256
        contactEmail:
          type: string
          maxLength: 500
        contactPhone:
          type: string
          maxLength: 500
        contactVkLink:
          type: string
          maxLength: 500
        contactTgLink:
          type: string
          maxLength: 500
        contactOkLink:
          type: string
          maxLength: 500
    FilterEnvelope:
      type: object
      required:
        - data
        - metaData
      properties:
        data:
          type: array
          items:
            type: object
          description: Элементы страницы; форма элемента — по документации ресурса
            (x-doc-page операции)
        metaData:
          type: object
          properties:
            totalCount:
              type: integer
              description: Всего записей по фильтру
            page:
              type: integer
              description: Возвращённая страница; листая в цикле, сверяйте с запрошенной
            pageSize:
              type: integer
        extendedData:
          type: array
          items:
            type: object
          description: Связанные сущности, если запрошены
    OrderNotification:
      type: object
      required:
        - id
        - status
        - merchantId
        - merchantOrderId
        - amount
        - currencyId
        - createdAt
      description: "Повторяет структуру OrderResponse. ВАЖНО: id — идентификатор
        ЗАКАЗА, а не уведомления; один заказ проходит несколько статусов,
        поэтому дедупликация только по id теряет переходы. Дедуплицируйте по
        заголовку X-Event-Id (у всех попыток доставки одного уведомления он
        один), применяйте переход только вперёд по паре id + status и
        подтверждайте контрольным GET заказа"
      properties:
        id:
          type: string
          maxLength: 36
          description: Идентификатор заказа (НЕ события)
        status:
          type: string
          enum:
            - created
            - hold
            - completed
            - expired
            - canceled
          description: Оплаченным считается только completed
        merchantId:
          type: string
          maxLength: 36
          description: "Идентификатор магазина: сверяйте со своим и по нему же выбирайте
            ключ проверки подписи"
        merchantOrderId:
          type: string
          maxLength: 100
          description: Идентификатор заказа в учётной системе магазина — по нему находится
            локальный заказ
        merchantOrderIdVisible:
          type: string
          maxLength: 100
          description: Номер заказа, показанный на платёжной странице
        amount:
          type: number
          multipleOf: 0.01
          description: Сверяйте с суммой заказа в своей системе; несовпадение — отказ в
            обработке
        currencyId:
          type: string
          maxLength: 3
          description: Код валюты по ISO 4217; сверяйте вместе с суммой
        createdAt:
          type: string
          format: date-time
          description: Дата создания заказа
        customer:
          type: object
          description: Информация о заказчике — та же форма Customer, что при создании
            заказа
webhooks:
  orderStatus:
    post:
      operationId: webhook_order_status_changed
      summary: Уведомление о смене статуса заказа
      description: 'POST на URL магазина. Подпись — заголовок X-Signature: HMAC от
        СЫРОГО тела запроса ключом магазина из merchantId уведомления, сравнение
        за постоянное время. Алгоритм берётся из настроек уведомлений магазина:
        у новых магазинов sha256, у настроенных раньше обычно sha1. Ответ всегда
        HTTP 200: успех — {"status":"success"}, осознанная ошибка —
        {"status":"error","code":...}. Любой другой HTTP-код считается
        недоступностью и вызывает повтор (до 10 раз в течение суток). Подпись
        покрывает только тело: заголовки X-Event-* и X-Delivery-Attempt не
        аутентифицированы — это ключ дедупликации и телеметрия, а от
        подделанного повтора защищает правило «переход только вперёд» и
        контрольный GET заказа. Подробности:
        https://docs.invoicebox.ru/docs/merchant/notification/status/'
      parameters:
        - name: X-Signature
          in: header
          required: true
          schema:
            type: string
          description: HMAC подпись сырого тела ключом магазина; алгоритм из настроек
            магазина (sha256 у новых, sha1 у ранних)
        - name: X-Event-Id
          in: header
          required: true
          schema:
            type: string
          description: "Идентификатор уведомления: у всех попыток его доставки он один —
            это ключ дедупликации. Подписью не покрыт"
        - name: X-Event-Type
          in: header
          required: true
          schema:
            type: string
            example: order_status_changed
          description: Код события
        - name: X-Event-Occurred-At
          in: header
          required: true
          schema:
            type: string
            format: date-time
          description: Когда событие произошло; не путайте с createdAt в теле — тот про
            заказ
        - name: X-Delivery-Attempt
          in: header
          required: true
          schema:
            type: integer
            minimum: 1
          description: Номер попытки, с единицы; больше единицы — предыдущий ответ не
            устроил
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OrderNotification"
      responses:
        "200":
          description: Всегда 200; исход в теле
          content:
            application/json:
              schema:
                type: object
                required:
                  - status
                properties:
                  status:
                    type: string
                    enum:
                      - success
                      - error
                  code:
                    type: string
                    description: "Код осознанной ошибки: signature_error, order_wrong_amount,
                      order_already_paid, out_of_service и другие"
