openapi: 3.0.1
info:
  title: Service Store Management API
  description: The app's APIs allow you to build a digital distribution platform where
    users can browse, download, and install apps. Apps can be standalone applications,
    connectors, and services. These apps offer a wide range of functionality from
    invoicing and payments to user management and networking. Users can use the APIs
    to discover, download, and manage these applications.
  version: 1.0.0
servers:
- description: The Service Store Management API REST endpoint
  url: https://api.uat.btx.fr.banqup.com/servicemngmt
- description: The Service Store Management API REST endpoint
  url: https://api.uat.btx.eu.banqup.com/servicemngmt
tags:
- name: Application categories
  description: Application category API
- name: Application languages
  description: "Application Translations API is designed to make applications more
    accessible by providing translations for various languages.\nThis functionality
    helps developers ensure their applications cater to a diverse audience, improving
    user experience across different countries.\n"
- name: Application locations
  description: Application location API
- name: Application media
  description: Application media API
- name: Application permission
  description: Application permission API
- name: Application versions
  description: Versions simplify application updates and ensure that each version
    is correctly set up. The Version object contains essential details about the new
    version, including a manifest, copyright, and release information.
- name: Application brands
  description: Application brand API
- name: Applications
  description: "The app object represents a software package that allows users to
    perform specific tasks. They can cater to diverse business needs within the Banqup
    platform. There can be various apps, ranging from industry-specific tools to general-purpose
    applications. Apps can typically be pre-installed on a platform or distributed
    via a proprietary app store.\n\nApps can be targeted to 2 types of audiences:
    the Banqup consumer and third-party developers who want to integrate with particular
    applications.\n"
- name: Application space types
  description: Application space type API
- name: Categories
  description: Categories serve as organizational structures grouping similar applications
    based on functionality or use case, making it simpler for users to explore and
    find the kind of apps they are looking for. Categories help in organizing the
    available apps into specific genres or themes.
- name: Sub-categories
  description: Subcategories are used to refine further and narrow down the types
    of apps within a particular main category. While categories group applications
    based on overarching themes or functionalities, sub-categories further segment
    these applications into more specialized niches or user needs. They provide users
    with more specific options based on their preferences or requirements.
- name: Application info localizations
  description: "Manage the app metadata that is localized and appears on the Banqup
    Store.\n"
paths:
  /v1/applications/{applicationId}/versions:
    post:
      tags:
      - Application versions
      summary: Create application version
      description: 'Create a new application version <br/> Scope: store_write, store_admin'
      operationId: createAppVersion
      parameters:
      - name: applicationId
        in: path
        description: The application identifier
        required: true
        schema:
          pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
          type: string
          format: uuid
      requestBody:
        description: Application version to create
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppVersionRequest'
            example:
              version: 1.0.0
              releaseNote: Initial Sales release notes
              releaseDate: 2023-06-16 13:03:36
              manifest:
                serviceAccount: f47c5440-89cb-11ee-b9d1-0242ac120002
                permissions:
                - resource: space
                  scope: space_read
                - resource: space
                  scope: space_write
                - resource: entity
                  scope: entity_read
                additionalScopes:
                  spaceScopes:
                  - valitax_manage_configuration
                  translations: http://app.valitax.com/btx/translations
                frontendModules:
                - name: Purchase
                  type: Application
                  basePath: purchase-invoices
                  supportedDevices:
                  - web
                  - mobile
                  module: invoices
                  moduleUrl: /assets/{version}/micro-frontends/purchase/something.js
                dependencies:
                - namespace: com.unifiedpost.btx
                  name: app-dependency-1
                  minVersion: '1.0'
                  countries:
                  - BE
                  - FR
                - namespace: com.unifiedpost.btx
                  name: app-dependency-2
                  minVersion: '1.2'
                appCallbacks:
                  addUrl: http://addurl.com
                  activationUrl: http://activationurl.com
                  deactivationUrl: http://deactivationurl.com
                  configureUrl: http://configureurl.com
                  removeUrl: http://removeurl.com
                minAssuranceLevels:
                  entity: urn:btx:L2
                  user: urn:btx:L1
              properties:
                prop1: value1
                prop2: value2
              copyright: Copyright 2024 Unifiedpost
              extensions:
              - extensionPoint:
                  name: documentConnectors
                  namespace: com.unifiedpost.btx
                  version: '1.0'
                data:
                  name: peppol
                  foo: bar
                  type: INOUT
                  basePath: https://app.acme.com/connector/choruspro
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppVersionResponse'
              example:
                id: 2aa7c753-6d55-44b6-9b60-06212611cfd6
                version: 1.2.3
                releaseNote: Initial Sales release notes
                releaseDate: 2023-06-16 13:03:36
                manifest:
                  permissions:
                  - resource: space
                    scope: space_read
                  - resource: space
                    scope: space_write
                  - resource: entity
                    scope: entity_read
                  additionalScopes:
                    spaceScopes:
                    - valitax_manage_configuration
                    translations: http://app.valitax.com/btx/translations
                  frontendModules:
                  - name: Purchase
                    type: Application
                    basePath: purchase-invoices
                    supportedDevices:
                    - web
                    - mobile
                    module: invoices
                    moduleUrl: /assets/{version}/micro-frontends/purchase/something.js
                  dependencies:
                  - name: orchestration
                    namespace: com.unifiedpost.btx.platform
                    minVersion: '1.0'
                  - name: cross-upload
                    namespace: com.unifiedpost.btx.platform
                    minVersion: '1.0'
                  - name: cross-sales
                    namespace: com.unifiedpost.btx.platform.connectors
                    minVersion: '1.0'
                  appCallbacks:
                    addUrl: http://addurl.com
                    activationUrl: http://activationurl.com
                    deactivationUrl: http://deactivationurl.com
                    configureUrl: http://configureurl.com
                    removeUrl: http://removeurl.com
                  minAssuranceLevels:
                    entity: urn:btx:L2
                    user: urn:btx:L1
                copyright: Copyright 2024 Unifiedpost
                status: VALID
        '409':
          description: Already exists
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiErrorProblemDetail'
      security:
      - service_store:
        - store_write
        - store_admin
  /v1/applications:
    get:
      tags:
      - Applications
      summary: List applications
      description: 'List applications with pagination <br/> Scope: store_admin'
      operationId: listApplications
      parameters:
      - name: status
        in: query
        description: Application status
        schema:
          type: string
        example: APPROVED
      - name: page
        in: query
        description: Zero-based page index, cannot be negative, default 0
        schema:
          maximum: 10000
          minimum: 0
          type: integer
          format: int32
          default: 0
        example: 20
      - name: pageSize
        in: query
        description: 'Page size. Minimum 1, maximum: 200, default 20'
        schema:
          maximum: 200
          minimum: 1
          type: integer
          format: int32
          default: 20
        example: 20
      - name: includeTotalElements
        in: query
        description: Return the totalElements number of entries in the response
        schema:
          type: boolean
          default: true
        example: true
      responses:
        '200':
          description: ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListApplicationResponse'
              example:
                applications:
                - id: 2aa7c753-6d55-44b6-9b60-06212611cfd6
                  namespace: com.unifiedpost.btx.documents
                  name: sales-invoices
                  displayName: display_name
                  shortDescription: short_description
                  description: description
                  status: APPROVED
                  functionalType: APPLICATION
                  audienceType: INTERNAL
                - id: 228cf514-83cc-46ca-aa56-7a627dc777eb
                  namespace: com.unifiedpost.btx.connectors
                  name: cross-peppol
                  displayName: display_name
                  shortDescription: short_description
                  description: description
                  status: APPROVED
                  functionalType: CONNECTOR
                  audienceType: PUBLIC
                totalElements: 6
                currentPage: 0
                pageSize: 2
      security:
      - service_store:
        - store_admin
    post:
      tags:
      - Applications
      summary: Create application
      description: 'Create a new application <br/> Scope: store_write, store_admin'
      operationId: createApplication
      requestBody:
        description: Application to create
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationRequest'
            example:
              namespace: com.unifiedpost.btx
              name: test-app
              displayName: display_name
              shortDescription: short_description
              description: description
              ownerEntityId: f47c5440-89cb-11ee-b9d1-0242ac120002
              functionalType: CONNECTOR
              audienceType: INTERNAL
              supportedCountries:
              - fr
              - be
              supportedBrands:
              - banqup
              - jefacture
              supportedSpaceTypes:
              - BUSINESS
              - PERSONAL
              logo: 
                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
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationResponse'
              example:
                id: 2aa7c753-6d55-44b6-9b60-06212611cfd6
                namespace: com.unifiedpost.btx.documents
                name: sales-invoices
                displayName: display_name
                shortDescription: short_description
                description: description
                status: APPROVED
                functionalType: APPLICATION
                audienceType: INTERNAL
        '409':
          description: Already exists
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiErrorProblemDetail'
      security:
      - service_store:
        - store_write
        - store_admin
  /v1/applications/{applicationId}:
    get:
      tags:
      - Applications
      summary: Get application
      description: 'Retrieve the application <br/> Scope: store_read'
      operationId: getApplication
      parameters:
      - name: applicationId
        in: path
        description: The application identifier
        required: true
        schema:
          pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
          type: string
          format: uuid
      responses:
        '200':
          description: Retrieved application
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationResponse'
              example:
                id: 2aa7c753-6d55-44b6-9b60-06212611cfd6
                namespace: com.unifiedpost.btx.documents
                name: sales-invoices
                displayName: display_name
                shortDescription: short_description
                description: description
                status: APPROVED
                functionalType: APPLICATION
                audienceType: INTERNAL
        '404':
          description: Not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiErrorProblemDetail'
      security:
      - service_store:
        - store_read
    delete:
      tags:
      - Applications
      summary: Delete application
      description: 'Delete the application <br/> Scope: store_write, store_admin'
      operationId: deleteApplication
      parameters:
      - name: applicationId
        in: path
        description: The application identifier
        required: true
        schema:
          pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
          type: string
          format: uuid
      responses:
        '204':
          description: Deleted application
        '404':
          description: Not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiErrorProblemDetail'
      security:
      - service_store:
        - store_write
        - store_admin
    patch:
      tags:
      - Applications
      summary: Update application field(s)
      description: 'Patch some application field(s) <br/> Scope: store_write, store_admin'
      operationId: updateApplication
      parameters:
      - name: applicationId
        in: path
        description: The application identifier
        required: true
        schema:
          pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
          type: string
          format: uuid
      requestBody:
        description: Application patch request in json-patch format
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/JsonPatch'
            example:
            - op: replace
              path: /name
              value: new name
        required: true
      responses:
        '200':
          description: Updated/patched application field(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationResponse'
              example:
                id: 2aa7c753-6d55-44b6-9b60-06212611cfd6
                namespace: com.unifiedpost.btx.documents
                name: sales-invoices
                displayName: display_name
                shortDescription: short_description
                description: description
                status: APPROVED
                functionalType: APPLICATION
                audienceType: INTERNAL
        '404':
          description: Not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiErrorProblemDetail'
        '409':
          description: Already exists
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiErrorProblemDetail'
      security:
      - service_store:
        - store_write
        - store_admin
  /v1/applications/{applicationId}/logo:
    put:
      tags:
      - Applications
      summary: Replace application logo
      description: 'Upload logo to an application <br/> Scope: store_write, store_admin'
      operationId: replaceAppLogo
      parameters:
      - name: applicationId
        in: path
        description: The application identifier
        required: true
        schema:
          pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
          type: string
          format: uuid
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                logoFile:
                  type: object
                  description: The logo file
                  format: binary
      responses:
        '204':
          description: Logo uploaded successfully
      security:
      - service_store:
        - store_write
        - store_admin
  /v1/categories:
    get:
      tags:
      - Categories
      summary: List categories
      description: 'List the categories <br/> Scope: []'
      operationId: listCategories
      responses:
        '200':
          description: Listed categories
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCategoryResponse'
              example:
                categories:
                - id: ac313bfd-1bc2-460a-853e-5102091e52ec
                  name: Purchases
                  description: Purchases main category
                  displayOrder: 1
                  displayName: category.purchases
                  theme: Purchases
                - id: 00751e78-2285-4369-9e04-58f386aa63f6
                  name: Sales
                  description: Sales main category
                  displayOrder: 2
                  displayName: category.sales
                  theme: Sales
  /v1/categories/{categoryId}/subcategories:
    get:
      tags:
      - Sub-categories
      summary: List sub-categories
      description: 'List the sub-categories for a category <br/> Scope: []'
      operationId: listSubCategories
      parameters:
      - name: categoryId
        in: path
        description: The category identifier
        required: true
        schema:
          pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
          type: string
          format: uuid
      responses:
        '200':
          description: Listed sub-categories
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListSubCategoryResponse'
              example:
                subcategories:
                - id: 5ccfb15f-1b59-4463-9d4b-ffc181947fe4
                  categoryId: ac313bfd-1bc2-460a-853e-5102091e52ec
                  name: Purchases
                  description: Purchases sub category
                  displayOrder: 1
                  displayName: subcategory.purchases
                  theme: Purchases
  /v2/applications:
    post:
      tags:
      - Applications
      summary: Create application V2
      description: 'Create a new application <br/> Scope: store_write, store_admin'
      operationId: createApplicationV2
      requestBody:
        description: Application to create
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationRequest_V2'
            example:
              namespace: com.unifiedpost.btx
              name: test-app
              ownerEntityId: f47c5440-89cb-11ee-b9d1-0242ac120002
              functionalType: CONNECTOR
              audienceType: INTERNAL
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationResponse_V2'
              example:
                id: 2aa7c753-6d55-44b6-9b60-06212611cfd6
                namespace: com.unifiedpost.btx.documents
                name: sales-invoices
                status: APPROVED
                functionalType: APPLICATION
                audienceType: INTERNAL
        '409':
          description: Already exists
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiErrorProblemDetail'
      security:
      - service_store:
        - store_write
        - store_admin
  /v2/applications/{applicationId}:
    patch:
      tags:
      - Applications
      summary: Update application V2
      description: 'Patch some application field(s) <br/> Scope: store_admin'
      operationId: updateApplicationV2
      parameters:
      - name: applicationId
        in: path
        description: The application identifier
        required: true
        schema:
          pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
          type: string
          format: uuid
      requestBody:
        description: Application to update
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationPatchRequest_V2'
            example:
              audienceType: INTERNAL
        required: true
      responses:
        '200':
          description: Updated/patched application field(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationResponse_V2'
              example:
                id: 2aa7c753-6d55-44b6-9b60-06212611cfd6
                namespace: com.unifiedpost.btx.documents
                name: sales-invoices
                status: APPROVED
                functionalType: APPLICATION
                audienceType: INTERNAL
        '404':
          description: Not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiErrorProblemDetail'
      security:
      - service_store:
        - store_admin
  /v2/categories:
    get:
      tags:
      - Categories
      summary: List categories V2
      description: 'List the categories <br/> Scope: []'
      operationId: listCategoriesV2
      parameters:
      - name: include
        in: query
        description: What extra data to include in the response.
        explode: false
        schema:
          type: array
          items:
            type: string
            enum:
            - presentation
            - subcategories
        example: subcategories
      responses:
        '200':
          description: Listed categories
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCategoryResponse_V2'
              example:
                categories:
                - id: ac313bfd-1bc2-460a-853e-5102091e52ec
                  name: Purchases
                  description: Purchases main category
                  presentation:
                    displayOrder: 1
                    theme: Purchases
                    translations:
                      en-GB:
                        name: Purchases
                      fr-FR:
                        name: Achats
                - id: 00751e78-2285-4369-9e04-58f386aa63f6
                  name: Sales
                  description: Sales main category
                  presentation:
                    displayOrder: 2
                    theme: Sales
                    translations:
                      en-GB:
                        name: Sales
                      fr-FR:
                        name: Ventes
  /v2/categories/{categoryId}:
    get:
      tags:
      - Categories
      summary: Get category V2
      description: 'Retrieve the category details <br/> Scope: []'
      operationId: getCategoryV2
      parameters:
      - name: categoryId
        in: path
        description: The category identifier
        required: true
        schema:
          pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
          type: string
          format: uuid
      - name: include
        in: query
        description: What extra data to include in the response.
        explode: false
        schema:
          type: array
          items:
            type: string
            enum:
            - presentation
            - subcategories
        example: subcategories
      responses:
        '200':
          description: Retrieved category
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryResponse_V2'
              example:
                id: ac313bfd-1bc2-460a-853e-5102091e52ec
                name: Purchases
                description: Purchases main category
                presentation:
                  displayOrder: 1
                  theme: Purchases
                  translations:
                    en-GB:
                      name: Purchases
                    fr-FR:
                      name: Achats
                subcategories:
                - id: 92655142-1dff-4099-b136-89d9643d06d7
                  name: Purchases1
                  description: Purchases first sub category
                  presentation:
                    displayOrder: 1
                    theme: Purchases
                    translations:
                      en-GB:
                        name: Purchases1
                      fr-FR:
                        name: Achats1
                - id: 192d0bd1-96c6-4433-8dfd-b19251347af3
                  name: Purchases2
                  description: Purchases second sub category
                  presentation:
                    displayOrder: 2
                    theme: Purchases
                    translations:
                      en-GB:
                        name: Purchases2
                      fr-FR:
                        name: Achats2
        '404':
          description: Not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiErrorProblemDetail'
components:
  schemas:
    AppCategoryResponse:
      required:
      - id
      - subCategoryId
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the application category
          format: uuid
        subCategoryId:
          type: string
          description: The unique identifier of the sub-category
          format: uuid
      description: List of application categories
    ApiErrorProblemDetail:
      required:
      - error
      - requestId
      - timestamp
      type: object
      properties:
        status:
          type: integer
          format: int32
        error:
          type: string
        requestId:
          type: string
        timestamp:
          type: string
          format: date-time
        type:
          type: string
          format: uri
        title:
          type: string
        detail:
          type: string
        instance:
          type: string
          format: uri
        problems:
          type: array
          items:
            $ref: '#/components/schemas/NestedProblem'
        properties:
          type: object
          additionalProperties:
            type: object
    NestedProblem:
      required:
      - detail
      - error
      - title
      type: object
      properties:
        error:
          type: string
        title:
          type: string
        detail:
          type: string
        type:
          type: string
          format: uri
    AppCategoryRequest:
      required:
      - subCategoryId
      type: object
      properties:
        subCategoryId:
          type: string
          description: The identifier of the application sub-category
          format: uuid
    ListAppCategoryResponse:
      type: object
      properties:
        applicationCategories:
          type: array
          items:
            $ref: '#/components/schemas/AppCategoryResponse'
    AppLanguageResponse:
      required:
      - id
      - language
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the application language
          format: uuid
        language:
          type: string
          description: The ISO code of the language
        translation:
          type: object
          additionalProperties:
            type: object
            description: The translations
          description: The translations
    AppLanguageRequest:
      type: object
      properties:
        language:
          type: string
          description: The locale of the language
          example: fr-FR
        translation:
          type: object
          additionalProperties:
            type: object
            description: translations
          description: translations
    ListAppLanguageResponse:
      type: object
      properties:
        languages:
          type: array
          items:
            $ref: '#/components/schemas/AppLanguageResponse'
    AppLanguagePatchRequest:
      type: object
      properties:
        translation:
          type: object
          additionalProperties:
            type: object
            description: translations
          description: translations
    AppLocationResponse:
      required:
      - countryCode
      - id
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the application location
          format: uuid
        countryCode:
          type: string
          description: The country ISO code of the location
        status:
          $ref: '#/components/schemas/LocationStatus'
    LocationStatus:
      type: string
      description: The status of the location
      example: ACTIVE
      enum:
      - ACTIVE
      - INACTIVE
    AppLocationRequest:
      type: object
      properties:
        countryCode:
          pattern: ^[A-Z]{2}
          type: string
          description: The ISO country code of the location
        status:
          $ref: '#/components/schemas/LocationStatus'
    ListAppLocationResponse:
      type: object
      properties:
        locations:
          type: array
          items:
            $ref: '#/components/schemas/AppLocationResponse'
    AppLocationPatchRequest:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/LocationStatus'
    AppMediaResponse:
      required:
      - applicationId
      - displayOrder
      - id
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the application media
          format: uuid
        applicationId:
          type: string
          description: The unique identifier of the application
          format: uuid
        mediaType:
          $ref: '#/components/schemas/MediaType'
        displayOrder:
          type: integer
          description: The order of the media (UI level)
          format: int32
    MediaType:
      type: string
      description: The type of the media
      example: IMAGE
      enum:
      - LOGO
      - VIDEO
      - IMAGE
    ListAppMediaResponse:
      type: object
      properties:
        medias:
          type: array
          items:
            $ref: '#/components/schemas/AppMediaResponse'
    AppMediaPatchRequest:
      type: object
      properties:
        displayOrder:
          type: integer
          description: The order of the media (UI level)
          format: int32
    PermissionResponse:
      type: object
      properties:
        requester:
          type: string
          description: The identifier of the requester who is requesting the permission.
        id:
          type: string
          description: The unique identifier for the permission.
        scope:
          type: string
          description: The scope name associated with the permission.
          example: store_read
        granted:
          type: boolean
          description: Indicates whether the permission is granted or not (true/false).
    PermissionRequest:
      required:
      - permission
      - requester
      type: object
      properties:
        requester:
          pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
          type: string
          description: OIDC subject that identifies the user or service account for
            which the permission is granted.
        permission:
          type: string
          description: The permission (resource scope)
    ListPermissionsResult:
      required:
      - subjects
      type: object
      properties:
        subjects:
          type: array
          items:
            $ref: '#/components/schemas/PermissionsResult'
    PermissionListItem:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for the permission.
        scope:
          type: string
          description: The scope name associated with the permission.
          example: entity_read
        granted:
          type: boolean
          description: Indicates whether the permission is granted or not (true/false).
      description: the list of permissions
    PermissionsResult:
      required:
      - permissions
      - requester
      type: object
      properties:
        requester:
          type: string
          description: the requester
        permissions:
          type: array
          items:
            $ref: '#/components/schemas/PermissionListItem'
      description: List of permissions
    AppVersionResponse:
      required:
      - id
      - status
      - version
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the application version
          format: uuid
        version:
          type: string
          description: The version of the application
        releaseNote:
          type: string
          description: The release note of version
        releaseDate:
          type: string
          description: The release date of version
          format: date-time
        manifest:
          type: object
          additionalProperties:
            type: object
            description: The manifest of version
          description: The manifest of version
        copyright:
          type: string
          description: The copyright of version
        status:
          $ref: '#/components/schemas/VersionStatus'
    VersionStatus:
      type: string
      description: The status of the version
      example: VALID
      enum:
      - DRAFT
      - VALID
      - INVALID
    AppVersionRequest:
      required:
      - version
      type: object
      properties:
        releaseNote:
          type: string
          description: The release note of version
        releaseDate:
          type: string
          description: The release date of version
          format: date-time
        manifest:
          type: object
          additionalProperties:
            type: object
            description: The manifest of version
          description: The manifest of version
        properties:
          type: object
          additionalProperties:
            type: object
            description: The properties of version
          description: The properties of version
        copyright:
          type: string
          description: The copyright of version
        extensions:
          type: array
          description: The app extensions
          items:
            $ref: '#/components/schemas/Extension'
        version:
          pattern: \d+(\.\d+){0,2}
          type: string
          description: The version of the application
    Extension:
      required:
      - data
      - extensionPoint
      type: object
      properties:
        extensionPoint:
          $ref: '#/components/schemas/ExtensionPoint'
        data:
          $ref: '#/components/schemas/JsonNode'
      description: The app extensions
    ExtensionPoint:
      required:
      - name
      - namespace
      - version
      type: object
      properties:
        name:
          type: string
          description: The name of the extension point
          example: my_connector
        namespace:
          type: string
          description: The namespace of the extension point
          example: com.unifiedpost.btx
        version:
          type: string
          description: The version of the extension point
          example: '1.0'
      description: The extension point
    JsonNode:
      type: object
      description: The extension data
    AppVersionInfo:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the application version
          format: uuid
        version:
          type: string
          description: The version of the application
        releaseDate:
          type: string
          description: The release date of version
          format: date-time
        status:
          $ref: '#/components/schemas/VersionStatus'
      description: List of application versions
    ListAppVersionInfoResponse:
      type: object
      properties:
        versions:
          type: array
          items:
            $ref: '#/components/schemas/AppVersionInfo'
    AppVersionPatchRequest:
      type: object
      properties:
        releaseNote:
          type: string
          description: The release note of version
        releaseDate:
          type: string
          description: The release date of version
          format: date-time
        manifest:
          type: object
          additionalProperties:
            type: object
            description: The manifest of version
          description: The manifest of version
        properties:
          type: object
          additionalProperties:
            type: object
            description: The properties of version
          description: The properties of version
        copyright:
          type: string
          description: The copyright of version
        extensions:
          type: array
          description: The app extensions
          items:
            $ref: '#/components/schemas/Extension'
    ApplicationBrandResponse:
      required:
      - brandName
      - id
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the brand
          format: uuid
        brandName:
          type: string
          description: The brand name
      description: List of application brands
    ApplicationBrandRequest:
      type: object
      properties:
        brandName:
          type: string
          description: The brand name
    ListApplicationBrandResponse:
      type: object
      properties:
        brands:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationBrandResponse'
    ApplicationResponse:
      required:
      - audienceType
      - description
      - displayName
      - functionalType
      - id
      - name
      - namespace
      - shortDescription
      - status
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the application
          format: uuid
        namespace:
          type: string
          description: The namespace of the application
          example: com.unifiedpost.btx.connectors
        name:
          type: string
          description: The name of the application
          example: my-app
        displayName:
          type: string
          description: The translation key of application's display name
          example: display_name
        shortDescription:
          type: string
          description: The translation key of application's short description
          example: short_description
        description:
          type: string
          description: The translation key of application's description
          example: description
        status:
          $ref: '#/components/schemas/ApplicationStatus'
        functionalType:
          $ref: '#/components/schemas/FunctionalType'
        audienceType:
          $ref: '#/components/schemas/AudienceType'
    ApplicationStatus:
      type: string
      description: The status of the application
      example: APPROVED
      enum:
      - DRAFT
      - REVIEW
      - APPROVED
      - REFUSED
      - DELETED
    AudienceType:
      type: string
      description: The type of the audience
      example: PUBLIC
      enum:
      - INTERNAL
      - PUBLIC
    FunctionalType:
      type: string
      description: The type of the application
      example: APPLICATION
      enum:
      - CONNECTOR
      - APPLICATION
      - SERVICE
    ApplicationRequest:
      required:
      - audienceType
      - description
      - displayName
      - functionalType
      - name
      - namespace
      - ownerEntityId
      - shortDescription
      type: object
      properties:
        namespace:
          type: string
          description: The namespace of the application
          example: com.unifiedpost.btx
        name:
          type: string
          description: The name of the application
          example: my-app
        displayName:
          type: string
          description: The translation key of application's display name
          example: display_name
        shortDescription:
          type: string
          description: The translation key of application's short description
          example: short_description
        description:
          type: string
          description: The translation key of application's description
          example: description
        ownerEntityId:
          type: string
          description: The entity identifier
          format: uuid
        functionalType:
          $ref: '#/components/schemas/FunctionalType'
        audienceType:
          $ref: '#/components/schemas/AudienceType'
        supportedCountries:
          type: array
          description: The supported countries of the application
          items:
            type: string
            description: The supported countries of the application
        supportedBrands:
          type: array
          description: The supported brands of the application
          items:
            type: string
            description: The supported brands of the application
        supportedSpaceTypes:
          type: array
          description: The supported space types of the application
          items:
            $ref: '#/components/schemas/SpaceType'
        logo:
          type: string
          description: The logo of application in base64 format
    SpaceType:
      type: string
      description: The type of the space
      example: BUSINESS
      enum:
      - BUSINESS
      - PARTNER
      - PERSONAL
    IdResponse:
      required:
      - id
      type: object
      properties:
        id:
          type: string
          description: The identifier
          format: uuid
    ListApplicationResponse:
      required:
      - currentPage
      - pageSize
      type: object
      properties:
        applications:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationResponse'
        totalElements:
          type: integer
          description: Total number of items in the database that correspond to this
            search criteria
          format: int64
        currentPage:
          type: integer
          description: Current page
          format: int32
        pageSize:
          type: integer
          description: Response page size
          format: int32
    JsonPatch:
      type: object
    ApplicationSpaceTypeResponse:
      required:
      - id
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the space type
          format: uuid
        spaceType:
          $ref: '#/components/schemas/SpaceType'
      description: List of application space type
    ApplicationSpaceTypeRequest:
      type: object
      properties:
        spaceType:
          $ref: '#/components/schemas/SpaceType'
    ListApplicationSpaceTypeResponse:
      type: object
      properties:
        spaceTypes:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationSpaceTypeResponse'
    CategoryResponse:
      required:
      - description
      - displayName
      - displayOrder
      - id
      - name
      - theme
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the category
          format: uuid
        name:
          type: string
          description: The name of the category
        description:
          type: string
          description: The description of the category
        displayOrder:
          type: integer
          description: The order of the category (UI level)
          format: int32
        displayName:
          type: string
          description: The translation key of the category
        theme:
          type: string
          description: The theme the category
      description: List of categories
    ListCategoryResponse:
      type: object
      properties:
        categories:
          type: array
          items:
            $ref: '#/components/schemas/CategoryResponse'
    ListSubCategoryResponse:
      type: object
      properties:
        subCategories:
          type: array
          items:
            $ref: '#/components/schemas/SubCategoryResponse'
    SubCategoryResponse:
      required:
      - categoryId
      - description
      - displayName
      - displayOrder
      - id
      - name
      - theme
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the sub-category
          format: uuid
        categoryId:
          type: string
          description: The unique identifier of the parent category
          format: uuid
        name:
          type: string
          description: The name of the sub-category
        description:
          type: string
          description: The description of the sub-category
        displayOrder:
          type: integer
          description: The order of the sub-category (UI level)
          format: int32
        displayName:
          type: string
          description: The translation key of the category
        theme:
          type: string
          description: The theme the category
      description: List of sub-categories
    ApplicationInfoLocalizationResponse:
      required:
      - displayName
      - id
      - locale
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the application
          format: uuid
        locale:
          type: string
          description: The locale of the info
          example: en-GB
        displayName:
          type: string
          description: The application's display name
          example: Purchase invoices
        shortDescription:
          type: string
          description: The application's short description
          example: Manage purchase invoices
        description:
          type: string
          description: The application's description
          example: Purchase invoices helps you manage your purchase invoices
    ApplicationInfoLocalizationRequest:
      required:
      - displayName
      type: object
      properties:
        locale:
          type: string
          description: The locale of the info
          example: en-GB
        displayName:
          type: string
          description: The application's display name
          example: Purchase invoices
        shortDescription:
          type: string
          description: The application's short description
          example: Manage purchase invoices
        description:
          type: string
          description: The application's description
          example: Purchase invoices helps you manage your purchase invoices
    ListApplicationInfoLocalizationResponse:
      type: object
      properties:
        infoLocalizations:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationInfoLocalizationResponse'
    ApplicationInfoLocalizationPatchRequest:
      type: object
      properties:
        displayName:
          type: string
          description: The application's display name
          example: Purchase invoices
        shortDescription:
          type: string
          description: The application's short description
          example: Manage purchase invoices
        description:
          type: string
          description: The application's description
          example: Purchase invoices helps you manage your purchase invoices
    ApplicationResponse_V2:
      required:
      - audienceType
      - functionalType
      - id
      - name
      - namespace
      - status
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the application
          format: uuid
        namespace:
          type: string
          description: The namespace of the application
          example: com.unifiedpost.btx.connectors
        name:
          type: string
          description: The name of the application
          example: my-app
        status:
          $ref: '#/components/schemas/ApplicationStatus'
        functionalType:
          $ref: '#/components/schemas/FunctionalType'
        audienceType:
          $ref: '#/components/schemas/AudienceType'
    ApplicationRequest_V2:
      required:
      - audienceType
      - functionalType
      - name
      - namespace
      - ownerEntityId
      type: object
      properties:
        namespace:
          type: string
          description: The namespace of the application
          example: com.unifiedpost.btx
        name:
          type: string
          description: The name of the application
          example: my-app
        ownerEntityId:
          type: string
          description: The entity identifier
          format: uuid
        functionalType:
          $ref: '#/components/schemas/FunctionalType'
        audienceType:
          $ref: '#/components/schemas/AudienceType'
    ExtensionsChangeAction:
      type: string
      description: The action type of the extensions change
      example: ADD
      enum:
      - ADD
      - REMOVE
      - UPGRADE
    ExtensionsChangedFailureResponse:
      required:
      - applicationId
      - changeAction
      - errorLog
      - retryTimes
      - spaceId
      type: object
      properties:
        spaceId:
          type: string
          description: The unique identifier of the space
          format: uuid
        applicationId:
          type: string
          description: The unique identifier of the application
          format: uuid
        changeAction:
          $ref: '#/components/schemas/ExtensionsChangeAction'
        errorLog:
          type: string
          description: The error log of failure
        retryTimes:
          type: integer
          description: The number of retry times
          format: int32
      description: List of extensions changed failures
    ListExtensionsChangedFailuresResponse:
      type: object
      properties:
        extensionsChangedFailures:
          type: array
          items:
            $ref: '#/components/schemas/ExtensionsChangedFailureResponse'
    ApplicationPatchRequest_V2:
      type: object
      properties:
        audienceType:
          $ref: '#/components/schemas/AudienceType'
    CategoryPresentation:
      required:
      - displayOrder
      type: object
      properties:
        displayOrder:
          type: integer
          description: The order of the category (UI level)
          format: int32
        theme:
          type: string
          description: The theme of the category
        translations:
          type: object
          additionalProperties:
            type: object
            description: The translations of the category
          description: The translations of the category
      description: The presentation of the category
    CategoryResponse_V2:
      required:
      - description
      - id
      - name
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the category
          format: uuid
        name:
          type: string
          description: The name of the category
        description:
          type: string
          description: The description of the category
        presentation:
          $ref: '#/components/schemas/CategoryPresentation'
        subcategories:
          type: array
          items:
            $ref: '#/components/schemas/CategoryResponse_V2'
    CategoryRequest_V2:
      required:
      - description
      - name
      type: object
      properties:
        name:
          pattern: ^[a-zA-Z]+
          type: string
          description: The name of the category
        description:
          type: string
          description: The description of the category
        presentation:
          $ref: '#/components/schemas/CategoryPresentation'
    ListCategoryResponse_V2:
      type: object
      properties:
        categories:
          type: array
          items:
            $ref: '#/components/schemas/CategoryResponse_V2'
    CategoryPatchPresentation:
      type: object
      properties:
        displayOrder:
          type: integer
          description: The order of the category (UI level)
          format: int32
        theme:
          type: string
          description: The theme of the category
        translations:
          type: object
          additionalProperties:
            type: object
            description: The translations of the category
          description: The translations of the category
      description: The presentation of the category
    CategoryPatchRequest_V2:
      type: object
      properties:
        description:
          type: string
          description: The description of the category
        presentation:
          $ref: '#/components/schemas/CategoryPatchPresentation'
  securitySchemes:
    service_store:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://docs.uat.btx.banqup.com/docs/identity/auth/get-bearer-token
          scopes:
            store_admin: Can manage store data
            store_read: Can read store data
            store_write: Can write store data
        authorizationCode:
          authorizationUrl: https://api.uat.btx.fr.banqup.com/v1/oauth20/authorization
          tokenUrl: https://api.uat.btx.fr.banqup.com/v1/oauth20/token_kc
          scopes:
            store_admin: Can manage store data
            store_read: Can read store data
            store_write: Can write store data
