openapi: 3.0.1
info:
  title: payments_reconciliation API
  description: Merged OpenAPI spec for payments_reconciliation domain
  version: 1.0.0
servers:
- description: ''
  url: https://api.uat.btx.fr.banqup.com/payments/reconciliation
- description: ''
  url: https://api.uat.btx.eu.banqup.com/payments/reconciliation
paths:
  /transaction-radar/v1/spaces/{spaceId}/payments/{paymentId}:matchDocuments:
    post:
      tags:
      - TransactionRadar
      summary: Manage payment matches
      description: 'Update the document matches of a payment <br/> Scope: []'
      operationId: matchDocuments
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: paymentId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MatchDocumentsRequest'
        required: true
      responses:
        '200':
          description: OK
        '500':
          description: Internal server error
  /v1/transaction-radar/spaces/{spaceId}/payments/{paymentId}:matchDocuments:
    post:
      tags:
      - TransactionRadar
      summary: Manage payment matches
      description: 'Update the document matches of a payment <br/> Scope: []'
      operationId: matchDocuments_1
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: paymentId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MatchDocumentsRequest'
        required: true
      responses:
        '200':
          description: OK
        '500':
          description: Internal server error
  /transaction-radar/v1/spaces/{spaceId}/documents/{documentId}:matchModifiers:
    post:
      tags:
      - TransactionRadar
      summary: Manage document matches
      description: 'Update the modifier matches of a document <br/> Scope: []'
      operationId: matchModifiers
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: documentId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MatchModifiersRequest'
        required: true
      responses:
        '200':
          description: OK
        '500':
          description: Internal server error
  /v1/transaction-radar/spaces/{spaceId}/documents/{documentId}:matchModifiers:
    post:
      tags:
      - TransactionRadar
      summary: Manage document matches
      description: 'Update the modifier matches of a document <br/> Scope: []'
      operationId: matchModifiers_1
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: documentId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MatchModifiersRequest'
        required: true
      responses:
        '200':
          description: OK
        '500':
          description: Internal server error
  /v1/receive/messages:
    post:
      tags:
      - messages
      operationId: receiveMessage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Message'
        required: true
      responses:
        '200':
          description: OK
        '500':
          description: Internal server error
      description: ' <br/> Scope: []'
  /todos/v1/unmatchedPayments:
    post:
      tags:
      - Todos
      operationId: unmatchedPaymentsTodoAction
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TodoActionRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TodoAction'
      description: ' <br/> Scope: []'
  /todos/v1/proposedAggregations:
    post:
      tags:
      - Todos
      operationId: proposedAggregationsTodoAction
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TodoActionRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TodoAction'
      description: ' <br/> Scope: []'
  /support/v1/spaces/{spaceId}/documents/{documentId}:reimportStatement:
    post:
      tags:
      - Support
      summary: Reimport Statement
      description: 'Re-import a third-party statement that previously failed (status
        IMPORT_FAILED) <br/> Scope: []'
      operationId: reimportStatement
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: documentId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
        '409':
          description: Document is not in IMPORT_FAILED state
        '500':
          description: Internal server error
  /support/v1/spaces/{spaceId}/documents/{documentId}:aggregate:
    post:
      tags:
      - Support
      summary: Aggregate Document
      description: 'Run aggregation for the given document <br/> Scope: []'
      operationId: aggregateDocument
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: documentId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
        '500':
          description: Internal server error
  /settings/v1/emr/spaces/{spaceId}/{accountIdentifier}:
    get:
      tags:
      - Settings
      summary: Get EMR Settings for a space and account
      description: 'Retrieves the EMR settings configured for the given space and
        account identifier <br/> Scope: []'
      operationId: getEMRSettingsForSpaceAndAccount
      parameters:
      - name: spaceId
        in: path
        description: The unique identifier of the space
        required: true
        schema:
          type: string
          format: uuid
      - name: accountIdentifier
        in: path
        description: The account identifier
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/EMRSettingsResponse'
        '404':
          description: Settings not found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/EMRSettingsResponse'
        '500':
          description: Internal server error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/EMRSettingsResponse'
    post:
      tags:
      - Settings
      summary: Update EMR Settings for a space and account
      description: 'Creates or updates the EMR settings for the given space and account
        identifier <br/> Scope: []'
      operationId: updateEMRSettingsForSpaceAndAccount
      parameters:
      - name: spaceId
        in: path
        description: The unique identifier of the space
        required: true
        schema:
          type: string
          format: uuid
      - name: accountIdentifier
        in: path
        description: The account identifier
        required: true
        schema:
          type: string
      requestBody:
        description: The EMR settings to apply
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EMRSettingsRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/EMRSettingsResponse'
        '400':
          description: Bad request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/EMRSettingsResponse'
        '500':
          description: Internal server error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/EMRSettingsResponse'
  /settings/v1/emr/spaces/{spaceId}:
    get:
      tags:
      - Settings
      summary: Get default EMR Settings for a space
      description: 'Retrieves the default EMR settings configured for the given space
        <br/> Scope: []'
      operationId: getDefaultEMRSettingsForSpace
      parameters:
      - name: spaceId
        in: path
        description: The unique identifier of the space
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/EMRSettingsResponse'
        '404':
          description: Settings not found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/EMRSettingsResponse'
        '500':
          description: Internal server error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/EMRSettingsResponse'
    post:
      tags:
      - Settings
      summary: Update default EMR Settings for a space
      description: 'Creates or updates the default EMR settings for the given space
        <br/> Scope: []'
      operationId: updateDefaultEMRSettingsForSpace
      parameters:
      - name: spaceId
        in: path
        description: The unique identifier of the space
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        description: The EMR settings to apply
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EMRSettingsRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/EMRSettingsResponse'
        '400':
          description: Bad request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/EMRSettingsResponse'
        '500':
          description: Internal server error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/EMRSettingsResponse'
  /payments/v2/spaces/{spaceId}/payments/{paymentId}:markAsReconciled:
    post:
      tags:
      - PaymentsV2
      summary: Mark Payment As Reconciled
      description: 'Reconcile a payment with a user note <br/> Scope: []'
      operationId: markAsReconciled
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: paymentId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MarkAsReconciledRequest'
        required: true
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
  /payments/v1/spaces/{spaceId}/payments/{paymentId}:initiateAggregation:
    post:
      tags:
      - Payments
      summary: Initiate payment aggregation
      description: 'Initiate aggregation for a payment based on the mapping of document
        ids to payment end-to-end ids <br/> Scope: []'
      operationId: initiateAggregation_1
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: paymentId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DocumentCorrelationList'
        required: true
      responses:
        '200':
          description: OK
        '400':
          description: Incorrect id in document correlation
        '404':
          description: Payment could not be found
        '500':
          description: Internal server error
  /payments/v1/spaces/{spaceId}/payments/{paymentId}:findProposedDocuments:
    post:
      tags:
      - Payments
      summary: Find Proposed Documents
      description: 'Find proposed documents that could be an acceptable match for
        a given payment <br/> Scope: []'
      operationId: findProposedDocuments
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: paymentId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DocumentMatchResult'
        '500':
          description: Internal server error
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DocumentMatchResult'
  /enrichedMovementsReports/v2/spaces/{spaceId}/movements:enrich:
    post:
      tags:
      - EnrichedMovementsReports
      summary: Get enriched movements
      description: 'Get enriched movements V2 <br/> Scope: []'
      operationId: getEnrichedMovementsV2
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EMRContentRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/EMRContentResult'
        '500':
          description: Internal server error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/EMRContentResult'
  /enrichedMovementsReports/v2/spaces/{spaceId}/enrichedMovementsReports:generate:
    post:
      tags:
      - EnrichedMovementsReports
      summary: Generate enriched movements report
      description: 'Generate enriched movements report V2 <br/> Scope: []'
      operationId: generateEnrichedMovementsReportV2
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EMRRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EMRResult'
        '500':
          description: Internal server error
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EMRResult'
  /enrichedMovementsReports/v1/spaces/{spaceId}/enrichedMovementsReports:generate:
    post:
      tags:
      - EnrichedMovementsReports
      summary: Generate enriched movements report
      description: 'Generate enriched movements report <br/> Scope: []'
      operationId: generateEnrichedMovementsReport
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: accountIdentifier
        in: query
        required: true
        schema:
          type: string
      - name: toDate
        in: query
        required: true
        schema:
          type: string
          format: date
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EMRResult'
        '500':
          description: Internal server error
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EMRResult'
  /enrichedMovementsReports/v1/spaces/{spaceId}/enrichedMovementsReports/{statementId}:regenerate:
    post:
      tags:
      - EnrichedMovementsReports
      summary: Regenerate enriched movements report
      description: 'Regenerate enriched movements report <br/> Scope: []'
      operationId: regenerateEnrichedMovementsReport
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: statementId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/EMRResult'
        '500':
          description: Internal server error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/EMRResult'
  /documents/v2/actions/markAsWontBePaid/execute:
    post:
      tags:
      - DocumentActionsV2
      summary: Execute markAsWontBePaid action
      description: 'Executes the markAsWontBePaid action on the given documents <br/>
        Scope: []'
      operationId: executeMarkAsWontBePaid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ActionExecuteRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ActionExecuteResponse'
        '500':
          description: Internal server error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ActionExecuteResponse'
  /documents/v2/actions/markAsUnpaid/execute:
    post:
      tags:
      - DocumentActionsV2
      summary: Execute markAsUnpaid action
      description: 'Executes the markAsUnpaid action on the given documents <br/>
        Scope: []'
      operationId: executeMarkAsUnpaid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ActionExecuteRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ActionExecuteResponse'
        '500':
          description: Internal server error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ActionExecuteResponse'
  /documents/v2/actions/markAsPaid/initialize:
    post:
      tags:
      - DocumentActionsV2
      summary: Initialize markAsPaid action
      description: 'Returns pre-fill data for the markAsPaid dialog <br/> Scope: []'
      operationId: initializeMarkAsPaid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InitializeRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/InitializeResponse'
        '500':
          description: Internal server error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/InitializeResponse'
  /documents/v2/actions/markAsPaid/execute:
    post:
      tags:
      - DocumentActionsV2
      summary: Execute markAsPaid action
      description: 'Executes the markAsPaid action on the given documents <br/> Scope:
        []'
      operationId: executeMarkAsPaid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ActionExecuteRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ActionExecuteResponse'
        '500':
          description: Internal server error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ActionExecuteResponse'
  /documents/v1/spaces/{spaceId}/documents:markAsUnpaid:
    post:
      tags:
      - Documents
      summary: Mark documents as unpaid
      description: 'Mark the given documents as unpaid <br/> Scope: []'
      operationId: markAsUnpaid
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MarkAsUnpaidRequest'
        required: true
      responses:
        '200':
          description: OK
        '500':
          description: Internal server error
  /documents/v1/spaces/{spaceId}/documents:markAsPaid:
    post:
      tags:
      - Documents
      summary: Mark documents as paid
      description: 'Mark the given documents as paid with full amount <br/> Scope:
        []'
      operationId: markAsPaid
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MarkAsPaidRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DocumentActionResult'
        '500':
          description: Internal server error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DocumentActionResult'
  /documents/v1/spaces/{spaceId}/documents/{documentId}:markAsUnpaid:
    post:
      tags:
      - Documents
      summary: Mark a document as unpaid
      description: 'Mark the given document as unpaid <br/> Scope: []'
      operationId: markAsUnpaid_1
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: documentId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MarkAsUnpaidData'
        required: true
      responses:
        '200':
          description: OK
        '500':
          description: Internal server error
  /documents/v1/spaces/{spaceId}/documents/{documentId}:markAsPaid:
    post:
      tags:
      - Documents
      summary: Mark a document as paid
      description: 'Mark the given document as paid <br/> Scope: []'
      operationId: markAsPaid_1
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: documentId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MarkAsPaidData'
        required: true
      responses:
        '200':
          description: OK
        '500':
          description: Internal server error
  /documents/v1/spaces/{spaceId}/documents/{documentId}:findProposedModifiers:
    post:
      tags:
      - Documents
      summary: Find Proposed Modifiers
      description: 'Find proposed documents or payments that could be an acceptable
        match for a given document <br/> Scope: []'
      operationId: findProposedModifiers
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: documentId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ModifierMatchResult'
        '500':
          description: Internal server error
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ModifierMatchResult'
  /documents/v1/actions/markAsUnpaid:
    post:
      tags:
      - DocumentActions
      summary: Mark documents as unpaid
      description: 'Document action to mark the given documents as unpaid <br/> Scope:
        []'
      operationId: markAsUnpaidDocumentAction
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MarkAsUnpaidActionRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DocumentActionResult'
        '500':
          description: Internal server error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DocumentActionResult'
  /documents/v1/actions/markAsPaid:
    post:
      tags:
      - DocumentActions
      summary: Mark documents as paid
      description: 'Document action to mark the given documents as paid <br/> Scope:
        []'
      operationId: markAsPaidDocumentAction
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MarkAsPaidActionRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DocumentActionResult'
        '500':
          description: Internal server error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DocumentActionResult'
  /aggregations/v1/spaces/{spaceId}/aggregations:manage:
    post:
      tags:
      - Aggregations
      summary: Manage aggregations
      description: 'Add and reject aggregations in bulk <br/> Scope: []'
      operationId: manageAggregations
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManageAggregationsRequest'
        required: true
      responses:
        '200':
          description: OK
        '500':
          description: Internal server error
  /aggregations/v1/spaces/{spaceId}/aggregations:bulkCreate:
    post:
      tags:
      - Aggregations
      summary: Add aggregation bulk
      description: 'Add multiple user-confirmed aggregations for the given document
        and modifier <br/> Scope: []'
      operationId: addAggregationBulk
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/AggregationRequest'
        required: true
      responses:
        '200':
          description: OK
        '500':
          description: Internal server error
  /aggregations/v1/spaces/{spaceId}/aggregations/{aggregationId}:reject:
    post:
      tags:
      - Aggregations
      summary: Reject aggregation
      description: 'Reject a proposed or previously confirmed aggregation <br/> Scope:
        []'
      operationId: rejectAggregation_1
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: aggregationId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
        '500':
          description: Internal server error
  /aggregations/v1/spaces/{spaceId}/aggregations/{aggregationId}:confirm:
    post:
      tags:
      - Aggregations
      summary: Confirm aggregation
      description: 'Confirm a proposed or previously rejected aggregation <br/> Scope:
        []'
      operationId: confirmAggregation_1
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: aggregationId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
        '500':
          description: Internal server error
  /aggregations/v1/spaces/{spaceId}/aggregations:
    post:
      tags:
      - Aggregations
      summary: Add aggregation
      description: 'Add a user-confirmed aggregation for the given payment and document
        <br/> Scope: []'
      operationId: addAggregation_1
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AggregationRequest'
        required: true
      responses:
        '200':
          description: OK
        '500':
          description: Internal server error
  /transaction-radar/v1/spaces/{spaceId}/payments/{paymentId}/aggregations:
    get:
      tags:
      - TransactionRadar
      summary: Get Aggregated Payment
      description: 'Get details of an aggregated payment <br/> Scope: []'
      operationId: getSinglePaymentAggregationsPaginated
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: paymentId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TransactionRadarPaymentAggregationResponse'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TransactionRadarPaymentAggregationResponse'
  /v1/transaction-radar/spaces/{spaceId}/payments/{paymentId}/aggregations:
    get:
      tags:
      - TransactionRadar
      summary: Get Aggregated Payment
      description: 'Get details of an aggregated payment <br/> Scope: []'
      operationId: getSinglePaymentAggregationsPaginated_1
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: paymentId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TransactionRadarPaymentAggregationResponse'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TransactionRadarPaymentAggregationResponse'
  /transaction-radar/v1/spaces/{spaceId}/payments/aggregations:
    get:
      tags:
      - TransactionRadar
      summary: Get Aggregated Payments
      description: 'Get list of aggregated payments on the given space. <br/> Scope:
        []'
      operationId: getPaymentAggregationsPaginated
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: page
        in: query
        description: Zero-based page index, cannot be negative, default 0
        required: false
        schema:
          maximum: 10000
          minimum: 0
          type: integer
          description: Zero-based page index, cannot be negative, default 0
          format: int32
          example: 0
          default: 0
        example: 0
      - name: size
        in: query
        description: 'Page size. Minimum 1, maximum: 200, default 20'
        required: false
        schema:
          maximum: 200
          minimum: 1
          type: integer
          description: 'Page size. Minimum 1, maximum: 200, default 20'
          format: int32
          example: 20
          default: 20
        example: 20
      - name: includeTotalElements
        in: query
        description: Return the totalElements number of entries in the response
        required: false
        schema:
          type: boolean
          description: Return the totalElements number of entries in the response
          example: true
          default: true
        example: true
      - name: sortBy
        in: query
        required: false
        schema:
          type: string
          enum:
          - createdAt
          - createdAt.asc
          - createdAt.desc
          - paymentDate
          - paymentDate.asc
          - paymentDate.desc
      - name: matchingStatus
        in: query
        required: false
        schema:
          type: string
          enum:
          - PROPOSED
          - UNMATCHED
          - MATCHED
      - name: matchingType
        in: query
        required: false
        schema:
          type: string
          enum:
          - PURCHASE_INVOICE
          - PURCHASE_CREDITNOTE
          - SALES_INVOICE
          - SALES_CREDITNOTE
          - NOTE
          - PAYMENT
      - name: accountIdentifier
        in: query
        required: false
        schema:
          type: string
      - name: counterpartyAccountIdentifier
        in: query
        required: false
        schema:
          type: string
      - name: amountLowerBound
        in: query
        required: false
        schema:
          type: string
      - name: amountUpperBound
        in: query
        required: false
        schema:
          type: string
      - name: creditCardStatementId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TransactionRadarPaymentAggregationResponse'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TransactionRadarPaymentAggregationResponse'
  /v1/transaction-radar/spaces/{spaceId}/payments/aggregations:
    get:
      tags:
      - TransactionRadar
      summary: Get Aggregated Payments
      description: 'Get list of aggregated payments on the given space. <br/> Scope:
        []'
      operationId: getPaymentAggregationsPaginated_1
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: page
        in: query
        description: Zero-based page index, cannot be negative, default 0
        required: false
        schema:
          maximum: 10000
          minimum: 0
          type: integer
          description: Zero-based page index, cannot be negative, default 0
          format: int32
          example: 0
          default: 0
        example: 0
      - name: size
        in: query
        description: 'Page size. Minimum 1, maximum: 200, default 20'
        required: false
        schema:
          maximum: 200
          minimum: 1
          type: integer
          description: 'Page size. Minimum 1, maximum: 200, default 20'
          format: int32
          example: 20
          default: 20
        example: 20
      - name: includeTotalElements
        in: query
        description: Return the totalElements number of entries in the response
        required: false
        schema:
          type: boolean
          description: Return the totalElements number of entries in the response
          example: true
          default: true
        example: true
      - name: sortBy
        in: query
        required: false
        schema:
          type: string
          enum:
          - createdAt
          - createdAt.asc
          - createdAt.desc
          - paymentDate
          - paymentDate.asc
          - paymentDate.desc
      - name: matchingStatus
        in: query
        required: false
        schema:
          type: string
          enum:
          - PROPOSED
          - UNMATCHED
          - MATCHED
      - name: matchingType
        in: query
        required: false
        schema:
          type: string
          enum:
          - PURCHASE_INVOICE
          - PURCHASE_CREDITNOTE
          - SALES_INVOICE
          - SALES_CREDITNOTE
          - NOTE
          - PAYMENT
      - name: accountIdentifier
        in: query
        required: false
        schema:
          type: string
      - name: counterpartyAccountIdentifier
        in: query
        required: false
        schema:
          type: string
      - name: amountLowerBound
        in: query
        required: false
        schema:
          type: string
      - name: amountUpperBound
        in: query
        required: false
        schema:
          type: string
      - name: creditCardStatementId
        in: query
        required: false
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TransactionRadarPaymentAggregationResponse'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TransactionRadarPaymentAggregationResponse'
  /transaction-radar/v1/spaces/{spaceId}/documents/{documentId}/aggregations:
    get:
      tags:
      - TransactionRadar
      summary: Get Aggregated Document
      description: 'Get details of an aggregated document <br/> Scope: []'
      operationId: getSingleDocumentAggregations
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: documentId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TransactionRadarDocumentAggregationResponse'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TransactionRadarDocumentAggregationResponse'
  /v1/transaction-radar/spaces/{spaceId}/documents/{documentId}/aggregations:
    get:
      tags:
      - TransactionRadar
      summary: Get Aggregated Document
      description: 'Get details of an aggregated document <br/> Scope: []'
      operationId: getSingleDocumentAggregations_1
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: documentId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TransactionRadarDocumentAggregationResponse'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TransactionRadarDocumentAggregationResponse'
  /transaction-radar/v1/spaces/{spaceId}/documents/aggregations:
    get:
      tags:
      - TransactionRadar
      summary: Get Aggregated Documents
      description: 'Get list of aggregated documents on the given space. <br/> Scope:
        []'
      operationId: getDocumentAggregationsPaginated
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: page
        in: query
        description: Zero-based page index, cannot be negative, default 0
        required: false
        schema:
          maximum: 10000
          minimum: 0
          type: integer
          description: Zero-based page index, cannot be negative, default 0
          format: int32
          example: 0
          default: 0
        example: 0
      - name: size
        in: query
        description: 'Page size. Minimum 1, maximum: 200, default 20'
        required: false
        schema:
          maximum: 200
          minimum: 1
          type: integer
          description: 'Page size. Minimum 1, maximum: 200, default 20'
          format: int32
          example: 20
          default: 20
        example: 20
      - name: includeTotalElements
        in: query
        description: Return the totalElements number of entries in the response
        required: false
        schema:
          type: boolean
          description: Return the totalElements number of entries in the response
          example: true
          default: true
        example: true
      - name: sortBy
        in: query
        description: Sorting criteria
        required: false
        schema:
          type: string
          description: Sorting criteria
          enum:
          - createdAt
          - createdAt.asc
          - createdAt.desc
          - paymentDate
          - paymentDate.asc
          - paymentDate.desc
      - name: matchingStatus
        in: query
        required: false
        schema:
          type: string
          enum:
          - PROPOSED
          - UNMATCHED
          - MATCHED
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TransactionRadarDocumentAggregationResponse'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TransactionRadarDocumentAggregationResponse'
  /v1/transaction-radar/spaces/{spaceId}/documents/aggregations:
    get:
      tags:
      - TransactionRadar
      summary: Get Aggregated Documents
      description: 'Get list of aggregated documents on the given space. <br/> Scope:
        []'
      operationId: getDocumentAggregationsPaginated_1
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: page
        in: query
        description: Zero-based page index, cannot be negative, default 0
        required: false
        schema:
          maximum: 10000
          minimum: 0
          type: integer
          description: Zero-based page index, cannot be negative, default 0
          format: int32
          example: 0
          default: 0
        example: 0
      - name: size
        in: query
        description: 'Page size. Minimum 1, maximum: 200, default 20'
        required: false
        schema:
          maximum: 200
          minimum: 1
          type: integer
          description: 'Page size. Minimum 1, maximum: 200, default 20'
          format: int32
          example: 20
          default: 20
        example: 20
      - name: includeTotalElements
        in: query
        description: Return the totalElements number of entries in the response
        required: false
        schema:
          type: boolean
          description: Return the totalElements number of entries in the response
          example: true
          default: true
        example: true
      - name: sortBy
        in: query
        description: Sorting criteria
        required: false
        schema:
          type: string
          description: Sorting criteria
          enum:
          - createdAt
          - createdAt.asc
          - createdAt.desc
          - paymentDate
          - paymentDate.asc
          - paymentDate.desc
      - name: matchingStatus
        in: query
        required: false
        schema:
          type: string
          enum:
          - PROPOSED
          - UNMATCHED
          - MATCHED
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TransactionRadarDocumentAggregationResponse'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/TransactionRadarDocumentAggregationResponse'
  /payments/v2/spaces/{spaceId}/payments/{paymentId}/aggregations:
    get:
      tags:
      - PaymentsV2
      summary: Get Aggregated Payment
      description: 'Get details of an aggregated payment <br/> Scope: []'
      operationId: getSinglePaymentAggregations
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: paymentId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PaymentAggregationResponse'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PaymentAggregationResponse'
  /payments/v2/spaces/{spaceId}/payments/aggregations:
    get:
      tags:
      - PaymentsV2
      summary: Get Aggregated Payments
      description: 'Get list of aggregated payments on the given space. <br/> Scope:
        []'
      operationId: getPaymentAggregationsPaginated_2
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: page
        in: query
        description: Zero-based page index, cannot be negative, default 0
        required: false
        schema:
          maximum: 10000
          minimum: 0
          type: integer
          description: Zero-based page index, cannot be negative, default 0
          format: int32
          example: 0
          default: 0
        example: 0
      - name: size
        in: query
        description: 'Page size. Minimum 1, maximum: 200, default 20'
        required: false
        schema:
          maximum: 200
          minimum: 1
          type: integer
          description: 'Page size. Minimum 1, maximum: 200, default 20'
          format: int32
          example: 20
          default: 20
        example: 20
      - name: includeTotalElements
        in: query
        description: Return the totalElements number of entries in the response
        required: false
        schema:
          type: boolean
          description: Return the totalElements number of entries in the response
          example: true
          default: true
        example: true
      - name: sortBy
        in: query
        description: Sorting criteria
        required: false
        schema:
          type: string
          description: Sorting criteria
          enum:
          - createdAt
          - createdAt.asc
          - createdAt.desc
          - paymentDate
          - paymentDate.asc
          - paymentDate.desc
      - name: matchingStatus
        in: query
        required: false
        schema:
          type: string
          enum:
          - PROPOSED
          - UNMATCHED
          - MATCHED
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PaymentAggregationResponse'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PaymentAggregationResponse'
  /payments/v1/spaces/{spaceId}/payments/{paymentId}/aggregations:
    get:
      tags:
      - Payments
      summary: Get Aggregated Payment
      description: 'Get details of an aggregated payment <br/> Scope: []'
      operationId: getSinglePaymentAggregations_1
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: paymentId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PaymentAggregationResponse'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PaymentAggregationResponse'
  /payments/v1/spaces/{spaceId}/payments/aggregations:
    get:
      tags:
      - Payments
      summary: Get Aggregated Payments
      description: 'Get list of aggregated payments on the given space. <br/> Scope:
        []'
      operationId: getPaymentAggregationsPaginated_3
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: page
        in: query
        description: Zero-based page index, cannot be negative, default 0
        required: false
        schema:
          maximum: 10000
          minimum: 0
          type: integer
          description: Zero-based page index, cannot be negative, default 0
          format: int32
          example: 0
          default: 0
        example: 0
      - name: size
        in: query
        description: 'Page size. Minimum 1, maximum: 200, default 20'
        required: false
        schema:
          maximum: 200
          minimum: 1
          type: integer
          description: 'Page size. Minimum 1, maximum: 200, default 20'
          format: int32
          example: 20
          default: 20
        example: 20
      - name: includeTotalElements
        in: query
        description: Return the totalElements number of entries in the response
        required: false
        schema:
          type: boolean
          description: Return the totalElements number of entries in the response
          example: true
          default: true
        example: true
      - name: sortBy
        in: query
        description: Sorting criteria
        required: false
        schema:
          type: string
          description: Sorting criteria
          enum:
          - createdAt
          - createdAt.asc
          - createdAt.desc
          - paymentDate
          - paymentDate.asc
          - paymentDate.desc
      - name: matchingStatus
        in: query
        required: false
        schema:
          type: string
          enum:
          - PROPOSED
          - UNMATCHED
          - MATCHED
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PaymentAggregationResponse'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PaymentAggregationResponse'
  /enrichedMovementsReports/v1/spaces/{spaceId}/movements:enrich:
    get:
      tags:
      - EnrichedMovementsReports
      summary: Get enriched movements
      description: 'Get enriched movements <br/> Scope: []'
      operationId: getEnrichedMovements
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: accountIdentifier
        in: query
        required: true
        schema:
          type: string
      - name: fromDate
        in: query
        required: true
        schema:
          type: string
          format: date
      - name: toDate
        in: query
        required: true
        schema:
          type: string
          format: date
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/EMRContentResult'
        '500':
          description: Internal server error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/EMRContentResult'
  /documents/v2/spaces/{spaceId}/documents/{documentId}/aggregations:
    get:
      tags:
      - DocumentsV2
      summary: Get Aggregated Document
      description: 'Get details of an aggregated document <br/> Scope: []'
      operationId: getSingleDocumentAggregations_2
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: documentId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DocumentAggregationResponse'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DocumentAggregationResponse'
  /documents/v2/spaces/{spaceId}/documents/aggregations:
    get:
      tags:
      - DocumentsV2
      summary: Get Aggregated Documents
      description: 'Get list of aggregated documents on the given space <br/> Scope:
        []'
      operationId: getDocumentAggregationsPaginated_2
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: page
        in: query
        description: Zero-based page index, cannot be negative, default 0
        required: false
        schema:
          maximum: 10000
          minimum: 0
          type: integer
          description: Zero-based page index, cannot be negative, default 0
          format: int32
          example: 0
          default: 0
        example: 0
      - name: size
        in: query
        description: 'Page size. Minimum 1, maximum: 200, default 20'
        required: false
        schema:
          maximum: 200
          minimum: 1
          type: integer
          description: 'Page size. Minimum 1, maximum: 200, default 20'
          format: int32
          example: 20
          default: 20
        example: 20
      - name: includeTotalElements
        in: query
        description: Return the totalElements number of entries in the response
        required: false
        schema:
          type: boolean
          description: Return the totalElements number of entries in the response
          example: true
          default: true
        example: true
      - name: sortBy
        in: query
        description: Sorting criteria
        required: false
        schema:
          type: string
          description: Sorting criteria
          enum:
          - createdAt
          - createdAt.asc
          - createdAt.desc
          - paymentDate
          - paymentDate.asc
          - paymentDate.desc
      - name: matchingStatus
        in: query
        required: false
        schema:
          type: string
          enum:
          - PROPOSED
          - UNMATCHED
          - MATCHED
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DocumentAggregationResponse'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DocumentAggregationResponse'
  /documents/v1/spaces/{spaceId}/documents/{documentId}/aggregations:
    get:
      tags:
      - Documents
      summary: Get Aggregated Document
      description: 'Get details of an aggregated document <br/> Scope: []'
      operationId: getSingleDocumentAggregations_3
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: documentId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DocumentAggregationResponse'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DocumentAggregationResponse'
  /documents/v1/spaces/{spaceId}/documents/aggregations:
    get:
      tags:
      - Documents
      summary: Get Aggregated Documents
      description: 'Get list of aggregated documents on the given space. <br/> Scope:
        []'
      operationId: getDocumentAggregationsPaginated_3
      parameters:
      - name: spaceId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: page
        in: query
        description: Zero-based page index, cannot be negative, default 0
        required: false
        schema:
          maximum: 10000
          minimum: 0
          type: integer
          description: Zero-based page index, cannot be negative, default 0
          format: int32
          example: 0
          default: 0
        example: 0
      - name: size
        in: query
        description: 'Page size. Minimum 1, maximum: 200, default 20'
        required: false
        schema:
          maximum: 200
          minimum: 1
          type: integer
          description: 'Page size. Minimum 1, maximum: 200, default 20'
          format: int32
          example: 20
          default: 20
        example: 20
      - name: includeTotalElements
        in: query
        description: Return the totalElements number of entries in the response
        required: false
        schema:
          type: boolean
          description: Return the totalElements number of entries in the response
          example: true
          default: true
        example: true
      - name: sortBy
        in: query
        description: Sorting criteria
        required: false
        schema:
          type: string
          description: Sorting criteria
          enum:
          - createdAt
          - createdAt.asc
          - createdAt.desc
          - paymentDate
          - paymentDate.asc
          - paymentDate.desc
      - name: matchingStatus
        in: query
        required: false
        schema:
          type: string
          enum:
          - PROPOSED
          - UNMATCHED
          - MATCHED
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DocumentAggregationResponse'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DocumentAggregationResponse'
components:
  schemas:
    MatchDocumentRequest:
      required:
      - documentId
      type: object
      allOf:
      - $ref: '#/components/schemas/MatchPayableRequest'
      - type: object
        properties:
          documentId:
            type: string
            description: The id of the document to match
            format: uuid
          amount:
            type: string
            description: The amount to match
          balanceOffsetId:
            type: string
            description: The id of the balance offset for matches that were already
              selected
            format: uuid
    MatchDocumentsRequest:
      required:
      - currentSelection
      - updatedSelection
      type: object
      properties:
        currentSelection:
          type: array
          description: List of balance offset id's that were already matched
          items:
            type: string
            description: List of balance offset id's that were already matched
            format: uuid
        updatedSelection:
          type: array
          description: List of new match requests
          items:
            oneOf:
            - $ref: '#/components/schemas/MatchDocumentRequest'
            - $ref: '#/components/schemas/MatchNoteRequest'
    MatchNoteRequest:
      type: object
      allOf:
      - $ref: '#/components/schemas/MatchPayableRequest'
      - type: object
        properties:
          comment:
            type: string
            description: 'The user comment to reconcile the payment '
          amount:
            type: string
            description: The amount to match
          balanceOffsetId:
            type: string
            description: The id of the balance offset for matches that were already
              selected
            format: uuid
    MatchPayableRequest:
      type: object
      properties:
        payableType:
          type: string
          enum:
          - DOCUMENT
          - PAYMENT
          - NOTE
      description: List of new match requests
      discriminator:
        propertyName: payableType
        mapping:
          DOCUMENT: '#/components/schemas/MatchDocumentRequest'
          NOTE: '#/components/schemas/MatchNoteRequest'
    MatchModifierRequest:
      required:
      - modifierId
      - modifierType
      type: object
      properties:
        modifierId:
          type: string
          description: The id of the modifier to match
          format: uuid
        modifierType:
          type: string
          description: The modifier type of the match
          enum:
          - PAYMENT
          - DOCUMENT
          - CREDIT_NOTE
        amount:
          type: string
          description: The amount to match
        balanceOffsetId:
          type: string
          description: The id of the balance offset for matches that were already
            selected
          format: uuid
      description: List of new match requests
    MatchModifiersRequest:
      required:
      - currentSelection
      - updatedSelection
      type: object
      properties:
        currentSelection:
          type: array
          description: List of balance offset id's that were already matched
          items:
            type: string
            description: List of balance offset id's that were already matched
            format: uuid
        updatedSelection:
          type: array
          description: List of new match requests
          items:
            $ref: '#/components/schemas/MatchModifierRequest'
    Message:
      required:
      - category
      - data
      - messageId
      - type
      type: object
      properties:
        messageId:
          type: string
          description: The ID assigned by the API to this message.
        category:
          type: string
          description: The category of the message.
        type:
          type: string
          description: The type of the message.
        data:
          type: object
          description: All information related to the event that was emitted.
    DocumentCorrelation:
      required:
      - documentId
      type: object
      properties:
        documentId:
          type: string
          format: uuid
        endToEndIdentification:
          type: string
    DocumentCorrelationList:
      required:
      - documents
      type: object
      properties:
        documents:
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/DocumentCorrelation'
    RequiredPermission:
      type: object
      properties:
        resourceId:
          type: string
          description: The UMA resource needed to view this item.
          example: 1b34de13-4063-41e6-8b68-237f0c391550
        scope:
          type: string
          description: The UMA scope needed on the specified resource.
          example: space_read
      description: The permission needed to view this item
    TodoActionRequest:
      required:
      - todoItems
      type: object
      properties:
        todoItems:
          minItems: 1
          type: array
          description: List of todo items.
          example:
          - id: cd319a93-1782-4c3d-b4cd-ac5bb06a20c3
            spaceId: 1b34de13-4063-41e6-8b68-237f0c391550
            type: paymentDue
            data:
              spaceId: 1b34de13-4063-41e6-8b68-237f0c391550
              documentId: dab33574-472c-4353-8119-678d705e7f9d
            reference: dab33574-472c-4353-8119-678d705e7f9d
            requiredPermission:
              resourceId: 1b34de13-4063-41e6-8b68-237f0c391550
              scope: space_read
          - id: cd319a93-1782-4c3d-b4cd-ac5bb06a20c5
            spaceId: 1b34de13-4063-41e6-8b68-237f0c391550
            type: paymentDue
            data:
              spaceId: 1b34de13-4063-41e6-8b68-237f0c391550
              documentId: dab33574-472c-4353-8119-678d705e7f9e
            reference: dab33574-472c-4353-8119-678d705e7f9e
            requiredPermission:
              resourceId: 1b34de13-4063-41e6-8b68-237f0c391550
              scope: space_read
          items:
            $ref: '#/components/schemas/TodoItem'
    TodoItem:
      required:
      - type
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the todo.(A UUID specified by RFC4122)
          format: uuid
          example: bf514229-fa39-4bca-b8d9-b96607e9954a
        spaceId:
          type: string
          description: The space identifier.(A UUID specified by RFC4122)
          format: uuid
          example: 1b34de13-4063-41e6-8b68-237f0c391550
        type:
          minLength: 1
          type: string
          description: The type of the todo item.
          example: reviewPurchaseDocument
        data:
          $ref: '#/components/schemas/TodoItemData'
        reference:
          type: string
          description: Optional identifier to quickly find todo items.
          example: bf514229-fa39-4bca-b8d9-b96607e9961e
        requiredPermission:
          $ref: '#/components/schemas/RequiredPermission'
    TodoItemData:
      type: object
      properties:
        spaceId:
          type: string
          description: Identifier of the space. (A UUID specified by RFC4122).
          format: uuid
          example: 1b34de13-4063-41e6-8b68-237f0c391550
        paymentId:
          type: string
          description: Identifier of the document. (A UUID specified by RFC4122).
          format: uuid
          example: bf514229-fa39-4bca-b8d9-b96607e9961e
        balanceOffsetId:
          type: string
          description: Identifier of the balanceOffset. (A UUID specified by RFC4122).
          format: uuid
          example: 2c45de13-4063-41e6-8b68-237f0c392661
      description: Type‑specific data describing the todo item.
    TodoAction:
      type: object
      properties:
        type:
          type: string
    EMRSettingsResponse:
      type: object
      properties:
        spaceId:
          type: string
          format: uuid
        accountIdentifier:
          type: string
        frequency:
          type: string
          enum:
          - NONE
          - DAILY
          - MONTHLY
    EMRSettingsRequest:
      type: object
      properties:
        frequency:
          type: string
          enum:
          - NONE
          - DAILY
          - MONTHLY
    MarkAsReconciledRequest:
      type: object
      properties:
        amount:
          type: string
        comment:
          type: string
    AggregationConnection:
      required:
      - displayName
      - id
      type: object
      properties:
        id:
          type: string
          format: uuid
        displayName:
          type: string
        relationType:
          type: string
    AggregationDocumentMetadata:
      type: object
      properties:
        documentNumber:
          type: string
        paymentReference:
          type: object
          additionalProperties:
            type: string
        documentReference:
          type: string
        currencyCode:
          type: string
        documentTotals:
          $ref: '#/components/schemas/DocumentAggregationTotals'
    DocumentAggregationTotals:
      type: object
      properties:
        payableAmount:
          type: number
        totalAmount:
          type: number
        projectedOpenBalance:
          type: number
    DocumentInfo:
      required:
      - connections
      - createdAt
      - folder
      - id
      - metadata
      type: object
      properties:
        id:
          type: string
          format: uuid
        folder:
          type: string
        category:
          type: string
        createdAt:
          type: string
          format: date-time
        metadata:
          $ref: '#/components/schemas/AggregationDocumentMetadata'
        connections:
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/AggregationConnection'
    DocumentMatchResult:
      type: object
      properties:
        document:
          $ref: '#/components/schemas/DocumentInfo'
        rule:
          type: string
    AccountIdentifier:
      required:
      - currency
      - identifier
      - scheme
      type: object
      properties:
        identifier:
          minLength: 1
          type: string
          description: Account Identifier
          example: BE83504010119715
        scheme:
          type: string
          description: Account Scheme
          example: IBAN
        bank:
          $ref: '#/components/schemas/BankIdentifier'
        country:
          pattern: ^[a-zA-Z]{2}
          type: string
          example: BE
        currency:
          pattern: '[A-Z]{3}'
          type: string
          description: International code ISO 4217 of the currency used
          example: EUR
        parent:
          $ref: '#/components/schemas/AccountIdentifier'
    BankIdentifier:
      required:
      - identifier
      - scheme
      type: object
      properties:
        identifier:
          minLength: 1
          type: string
          description: Bank Identifier
          example: PANXBEB1XXX
        scheme:
          type: string
          description: Bank Identifier Scheme
          example: BIC
          enum:
          - BIC
          - CODE
          - ABA
          - CLABE
          - THIRD_PARTY
      description: Information about the issuer of the account
    EMRContentRequest:
      required:
      - fromDate
      - toDate
      type: object
      properties:
        fromDate:
          type: string
          format: date
        toDate:
          type: string
          format: date
        account:
          $ref: '#/components/schemas/AccountIdentifier'
    EMRAccountResult:
      type: object
      properties:
        bic:
          type: string
        accountNumber:
          type: string
        scheme:
          type: string
        id:
          type: string
        country:
          type: string
        bank:
          $ref: '#/components/schemas/EMRBankResult'
        description:
          type: string
        currency:
          type: string
    EMRBalanceResult:
      type: object
      properties:
        amount:
          type: number
        debitOrCredit:
          type: string
    EMRBankResult:
      type: object
      properties:
        scheme:
          type: string
        id:
          type: string
    EMRContentResult:
      type: object
      properties:
        statement:
          $ref: '#/components/schemas/EMRStatementResult'
    EMRDateBalanceResult:
      type: object
      properties:
        date:
          type: string
          format: date
        balance:
          $ref: '#/components/schemas/EMRBalanceResult'
    EMRHeaderResult:
      type: object
      properties:
        sequenceNumber:
          type: integer
          format: int32
        orderingParty:
          $ref: '#/components/schemas/EMRPartyResult'
        summary:
          $ref: '#/components/schemas/EMRSummaryResult'
    EMRPartyResult:
      type: object
      properties:
        holderName:
          type: string
        account:
          $ref: '#/components/schemas/EMRAccountResult'
    EMRStatementResult:
      type: object
      properties:
        header:
          $ref: '#/components/schemas/EMRHeaderResult'
        transactions:
          type: array
          items:
            $ref: '#/components/schemas/EMRTransactionResult'
    EMRSummaryResult:
      type: object
      properties:
        creditCount:
          type: integer
          format: int32
        creditTotal:
          type: number
        debitCount:
          type: integer
          format: int32
        debitTotal:
          type: number
        toDate:
          type: string
          format: date
        openingBalance:
          $ref: '#/components/schemas/EMRDateBalanceResult'
        closingBalance:
          $ref: '#/components/schemas/EMRDateBalanceResult'
    EMRTransactionResult:
      type: object
      properties:
        bookingDate:
          type: string
          format: date
        currency:
          type: string
        amount:
          type: number
        endToEndId:
          type: string
        counterParty:
          $ref: '#/components/schemas/EMRPartyResult'
        debitOrCredit:
          type: string
        structuredReference:
          type: string
        unstructuredReference:
          type: string
    EMRRequest:
      type: object
      properties:
        toDate:
          type: string
          format: date
        account:
          $ref: '#/components/schemas/AccountIdentifier'
    EMRResult:
      type: object
      properties:
        spaceId:
          type: string
          format: uuid
        statementId:
          type: string
          format: uuid
    ActionExecuteRequest:
      type: object
      properties:
        spaceId:
          type: string
          format: uuid
        documents:
          type: array
          items:
            type: string
            format: uuid
        data:
          type: object
          additionalProperties:
            type: object
        subject:
          type: string
          format: uuid
    ActionExecuteResponse:
      type: object
      properties:
        spaceId:
          type: string
          format: uuid
        documents:
          type: array
          items:
            $ref: '#/components/schemas/DocumentResult'
    DocumentResult:
      type: object
      properties:
        documentId:
          type: string
          format: uuid
        status:
          type: string
    InitializeRequest:
      type: object
      properties:
        spaceId:
          type: string
          format: uuid
        documents:
          type: array
          items:
            type: string
            format: uuid
        subject:
          type: string
          format: uuid
    InitializeResponse:
      type: object
      properties:
        data:
          type: object
          additionalProperties:
            type: object
    MarkAsUnpaidData:
      type: object
      properties:
        comment:
          type: string
        reason:
          type: string
        email:
          type: string
        balanceOffsetIds:
          type: array
          items:
            type: string
            format: uuid
        sharePaymentStatus:
          type: boolean
    MarkAsUnpaidRequest:
      type: object
      properties:
        documents:
          type: array
          items:
            type: string
            format: uuid
        data:
          $ref: '#/components/schemas/MarkAsUnpaidData'
    MarkAsPaidData:
      type: object
      properties:
        comment:
          type: string
        paymentAmount:
          type: string
        paymentDate:
          type: object
          description: Date when payment is made
          anyOf:
          - type: string
            format: date
            example: 2026-08-17
          - type: string
            format: date-time
            example: 2026-08-17 11:48:18+00:00
        paymentReferenceNumber:
          type: string
        paymentMethod:
          type: string
          enum:
          - BANK_TRANSFER
          - CREDIT_CARD
          - DEBIT_CARD
          - DIRECT_DEBIT
          - CHEQUE
          - DRAFT
          - CASH
          - STANDING_AGREEMENT
          - PARTNER_CLEARING
          - OTHER
        sharePaymentStatus:
          type: boolean
    MarkAsPaidRequest:
      type: object
      properties:
        documents:
          type: array
          items:
            type: string
            format: uuid
        data:
          $ref: '#/components/schemas/MarkAsPaidData'
    DocumentActionResult:
      type: object
      properties:
        success:
          type: array
          items:
            type: string
            format: uuid
        failure:
          type: array
          items:
            type: string
            format: uuid
    AmountDto:
      required:
      - currency
      - value
      type: object
      properties:
        value:
          type: string
          description: Amount value with a maximum of 14 integer digits and 2 fractional
            digits
          example: '10.05'
        currency:
          pattern: '[A-Z]{3}'
          type: string
          description: International code of the currency used
          example: EUR
    CounterPartyPaymentAccountInfo:
      required:
      - currency
      - identifier
      - scheme
      type: object
      properties:
        identifier:
          minLength: 1
          type: string
          description: Account Identifier
          example: BE83504010119715
        scheme:
          type: string
          description: Account Scheme
          example: IBAN
        bank:
          $ref: '#/components/schemas/BankIdentifier'
        country:
          pattern: ^[a-zA-Z]{2}
          type: string
          example: BE
        currency:
          pattern: '[A-Z]{3}'
          type: string
          description: International code ISO 4217 of the currency used
          example: EUR
        parent:
          $ref: '#/components/schemas/AccountIdentifier'
        ownerName:
          type: string
        alias:
          type: string
    DocumentModifierInfo:
      required:
      - connections
      - createdAt
      - folder
      - id
      - metadata
      type: object
      allOf:
      - $ref: '#/components/schemas/ModifierInfo'
      - type: object
        properties:
          id:
            type: string
            format: uuid
          folder:
            type: string
          category:
            type: string
          createdAt:
            type: string
            format: date-time
          metadata:
            $ref: '#/components/schemas/AggregationDocumentMetadata'
          connections:
            minItems: 1
            type: array
            items:
              $ref: '#/components/schemas/AggregationConnection'
    ModifierInfo:
      required:
      - matchType
      type: object
      properties:
        matchType:
          type: string
      discriminator:
        propertyName: matchType
        mapping:
          PAYMENT: '#/components/schemas/PaymentModifierInfo'
          DOCUMENT: '#/components/schemas/DocumentModifierInfo'
    ModifierMatchResult:
      type: object
      properties:
        modifier:
          oneOf:
          - $ref: '#/components/schemas/DocumentModifierInfo'
          - $ref: '#/components/schemas/PaymentModifierInfo'
        rule:
          type: string
    OwnerBankInfo:
      required:
      - identifier
      - scheme
      type: object
      properties:
        identifier:
          minLength: 1
          type: string
          description: Bank Identifier
          example: PANXBEB1XXX
        scheme:
          type: string
          description: Bank Identifier Scheme
          example: BIC
          enum:
          - BIC
          - CODE
          - ABA
          - CLABE
          - THIRD_PARTY
        logoUrl:
          type: string
        financialPlatformName:
          type: string
        financialPlatformId:
          type: string
          format: uuid
    OwnerPaymentAccountInfo:
      required:
      - currency
      - identifier
      - scheme
      type: object
      properties:
        identifier:
          minLength: 1
          type: string
          description: Account Identifier
          example: BE83504010119715
        scheme:
          type: string
          description: Account Scheme
          example: IBAN
        bank:
          $ref: '#/components/schemas/OwnerBankInfo'
        country:
          pattern: ^[a-zA-Z]{2}
          type: string
          example: BE
        currency:
          pattern: '[A-Z]{3}'
          type: string
          description: International code ISO 4217 of the currency used
          example: EUR
        parent:
          $ref: '#/components/schemas/AccountIdentifier'
        ownerName:
          type: string
        alias:
          type: string
    PaymentModifierInfo:
      required:
      - amount
      - createdAt
      - id
      - openForRecon
      - operationType
      - paymentDate
      type: object
      allOf:
      - $ref: '#/components/schemas/ModifierInfo'
      - type: object
        properties:
          id:
            type: string
            format: uuid
          createdAt:
            type: string
            format: date-time
          paymentDate:
            type: string
            format: date
          operationType:
            type: string
            enum:
            - CREDIT
            - DEBIT
            - DOC_TO_DOC
          amount:
            $ref: '#/components/schemas/AmountDto'
          openForRecon:
            $ref: '#/components/schemas/AmountDto'
          paymentReference:
            type: string
          paymentCertaintyLevel:
            type: string
          paymentAccount:
            $ref: '#/components/schemas/OwnerPaymentAccountInfo'
          counterpartyPaymentAccount:
            $ref: '#/components/schemas/CounterPartyPaymentAccountInfo'
          data:
            type: object
            additionalProperties:
              type: string
    MarkAsUnpaidActionRequest:
      type: object
      properties:
        spaceId:
          type: string
          format: uuid
        documents:
          type: array
          items:
            type: string
            format: uuid
        data:
          $ref: '#/components/schemas/MarkAsUnpaidData'
    MarkAsPaidActionRequest:
      type: object
      properties:
        spaceId:
          type: string
          format: uuid
        documents:
          type: array
          items:
            type: string
            format: uuid
        data:
          $ref: '#/components/schemas/MarkAsPaidData'
    AggregationRequest:
      type: object
      properties:
        documentId:
          type: string
          format: uuid
        paymentId:
          type: string
          format: uuid
        modifierId:
          type: string
          format: uuid
        amount:
          type: string
        modifierType:
          type: string
          enum:
          - PAYMENT
          - DOCUMENT
          - CREDIT_NOTE
    ManageAggregationsRequest:
      type: object
      properties:
        matchRequests:
          type: array
          items:
            $ref: '#/components/schemas/AggregationRequest'
        unmatchRequests:
          type: array
          items:
            type: string
            format: uuid
    PaymentAccountInfo:
      type: object
      properties:
        identifier:
          type: string
        name:
          type: string
        paymentMethod:
          type: string
    PaymentAccountWithLogo:
      type: object
      properties:
        identifier:
          type: string
        name:
          type: string
        paymentMethod:
          type: string
        logo:
          type: string
        financialPlatformId:
          type: string
          format: uuid
    TransactionRadarAggregationWithPayable:
      required:
      - aggregationStatus
      - availableOperations
      - smartLink
      type: object
      properties:
        id:
          type: string
          format: uuid
        smartLink:
          type: boolean
        amount:
          $ref: '#/components/schemas/AmountDto'
        counterpartyAmount:
          $ref: '#/components/schemas/AmountDto'
        rule:
          type: string
        aggregationStatus:
          type: string
          enum:
          - PROPOSED
          - UNMATCHED
          - MATCHED
        availableOperations:
          minItems: 1
          type: array
          items:
            type: string
            enum:
            - ACCEPT
            - REJECT
            - MATCH
            - UNMATCH
            - EDIT
        payable:
          type: object
        payableType:
          type: string
          enum:
          - NOTE
          - DOCUMENT
          - PAYMENT
          - UNMATCHED
    TransactionRadarPaymentAggregation:
      required:
      - amount
      - id
      - openForRecon
      - operationType
      - paymentDate
      type: object
      properties:
        id:
          type: string
          format: uuid
        paymentDate:
          type: string
          format: date
        operationType:
          type: string
          enum:
          - CREDIT
          - DEBIT
          - DOC_TO_DOC
        amount:
          $ref: '#/components/schemas/AmountDto'
        openForRecon:
          $ref: '#/components/schemas/AmountDto'
        paymentReference:
          type: string
        reconciliationReferences:
          type: array
          items:
            type: string
        paymentCertaintyLevel:
          type: string
        paymentAccount:
          $ref: '#/components/schemas/PaymentAccountWithLogo'
        counterpartyPaymentAccount:
          $ref: '#/components/schemas/PaymentAccountInfo'
        aggregations:
          type: array
          items:
            $ref: '#/components/schemas/TransactionRadarAggregationWithPayable'
      description: List of payment aggregations
    TransactionRadarPaymentAggregationResponse:
      type: object
      properties:
        paymentAccounts:
          type: array
          items:
            $ref: '#/components/schemas/AccountIdentifier'
        paymentAggregations:
          type: array
          items:
            $ref: '#/components/schemas/TransactionRadarPaymentAggregation'
        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
        totalAllElements:
          type: integer
          description: Total number of items regardless of matches
          format: int64
        totalMatchedElements:
          type: integer
          description: Total number of confirmed matches
          format: int64
        totalProposedElements:
          type: integer
          description: Total number of proposed matches
          format: int64
        totalUnmatchedElements:
          type: integer
          description: Total number of items that are not fully matched
          format: int64
    TransactionRadarAggregationWithModifier:
      required:
      - aggregationStatus
      - availableOperations
      - smartLink
      type: object
      properties:
        id:
          type: string
          format: uuid
        smartLink:
          type: boolean
        amount:
          $ref: '#/components/schemas/AmountDto'
        counterpartyAmount:
          $ref: '#/components/schemas/AmountDto'
        rule:
          type: string
        aggregationStatus:
          type: string
          enum:
          - PROPOSED
          - UNMATCHED
          - MATCHED
        availableOperations:
          minItems: 1
          type: array
          items:
            type: string
            enum:
            - ACCEPT
            - REJECT
            - MATCH
            - UNMATCH
            - EDIT
        modifier:
          oneOf:
          - $ref: '#/components/schemas/TransactionRadarPayableInfo'
          - $ref: '#/components/schemas/TransactionRadarDocumentPayableInfo'
          - $ref: '#/components/schemas/TransactionRadarPaymentPayableInfo'
        modifierType:
          type: string
          enum:
          - DOCUMENT
          - PAYMENT
          - UNMATCHED
    TransactionRadarDocumentAggregation:
      required:
      - documentDate
      - id
      type: object
      properties:
        id:
          type: string
          format: uuid
        folder:
          type: string
        category:
          type: string
        operationType:
          type: string
          enum:
          - CREDIT
          - DEBIT
          - DOC_TO_DOC
        documentDate:
          type: string
          format: date
        name:
          type: string
        info:
          type: string
        paymentReference:
          type: string
        amountDue:
          $ref: '#/components/schemas/AmountDto'
        totalAmount:
          $ref: '#/components/schemas/AmountDto'
        projectedBalance:
          $ref: '#/components/schemas/AmountDto'
        url:
          type: string
        aggregations:
          type: array
          items:
            $ref: '#/components/schemas/TransactionRadarAggregationWithModifier'
      description: List of document aggregations
    TransactionRadarDocumentAggregationResponse:
      type: object
      properties:
        documentAggregations:
          type: array
          items:
            $ref: '#/components/schemas/TransactionRadarDocumentAggregation'
        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
        totalAllElements:
          type: integer
          description: Total number of items regardless of matches
          format: int64
        totalMatchedElements:
          type: integer
          description: Total number of confirmed matches
          format: int64
        totalProposedElements:
          type: integer
          description: Total number of proposed matches
          format: int64
        totalUnmatchedElements:
          type: integer
          description: Total number of items that are not fully matched
          format: int64
    TransactionRadarDocumentPayableInfo:
      required:
      - documentDate
      - id
      type: object
      allOf:
      - $ref: '#/components/schemas/TransactionRadarPayableInfo'
      - type: object
        properties:
          id:
            type: string
            format: uuid
          folder:
            type: string
          category:
            type: string
          operationType:
            type: string
            enum:
            - CREDIT
            - DEBIT
            - DOC_TO_DOC
          documentDate:
            type: string
            format: date
          name:
            type: string
          info:
            type: string
          paymentReference:
            type: string
          amountDue:
            $ref: '#/components/schemas/AmountDto'
          totalAmount:
            $ref: '#/components/schemas/AmountDto'
          projectedBalance:
            $ref: '#/components/schemas/AmountDto'
          url:
            type: string
    TransactionRadarPayableInfo:
      required:
      - payableType
      type: object
      properties:
        payableType:
          type: string
      discriminator:
        propertyName: payableType
        mapping:
          PAYMENT: '#/components/schemas/TransactionRadarPaymentPayableInfo'
          DOCUMENT: '#/components/schemas/TransactionRadarDocumentPayableInfo'
    TransactionRadarPaymentPayableInfo:
      required:
      - amount
      - id
      - openForRecon
      - operationType
      - paymentDate
      type: object
      allOf:
      - $ref: '#/components/schemas/TransactionRadarPayableInfo'
      - type: object
        properties:
          id:
            type: string
            format: uuid
          paymentDate:
            type: string
            format: date
          operationType:
            type: string
            enum:
            - CREDIT
            - DEBIT
            - DOC_TO_DOC
          amount:
            $ref: '#/components/schemas/AmountDto'
          openForRecon:
            $ref: '#/components/schemas/AmountDto'
          paymentReference:
            type: string
          reconciliationReferences:
            type: array
            items:
              type: string
          paymentCertaintyLevel:
            type: string
          paymentAccount:
            $ref: '#/components/schemas/PaymentAccountWithLogo'
          counterpartyPaymentAccount:
            $ref: '#/components/schemas/PaymentAccountInfo'
          parentPaymentId:
            type: string
            format: uuid
          parentPaymentContext:
            type: string
    AggregationWithDocument:
      required:
      - aggregationStatus
      - availableOperations
      type: object
      allOf:
      - $ref: '#/components/schemas/AggregationWithPayable'
      - type: object
        properties:
          document:
            $ref: '#/components/schemas/DocumentInfo'
    AggregationWithNote:
      required:
      - aggregationStatus
      - availableOperations
      type: object
      allOf:
      - $ref: '#/components/schemas/AggregationWithPayable'
      - type: object
        properties:
          comment:
            type: string
    AggregationWithPayable:
      required:
      - aggregationStatus
      - availableOperations
      - payableType
      type: object
      properties:
        balanceOffset:
          $ref: '#/components/schemas/BalanceOffsetSummary'
        aggregationStatus:
          type: string
          enum:
          - PROPOSED
          - UNMATCHED
          - MATCHED
        availableOperations:
          minItems: 1
          type: array
          items:
            type: string
            enum:
            - ACCEPT
            - REJECT
            - MATCH
            - UNMATCH
            - EDIT
        payableType:
          type: string
      discriminator:
        propertyName: payableType
        mapping:
          NOTE: '#/components/schemas/AggregationWithNote'
          DOCUMENT: '#/components/schemas/AggregationWithDocument'
          PAYMENT: '#/components/schemas/AggregationWithPayment'
    AggregationWithPayment:
      required:
      - aggregationStatus
      - availableOperations
      type: object
      allOf:
      - $ref: '#/components/schemas/AggregationWithPayable'
      - type: object
        properties:
          operationType:
            type: string
            enum:
            - CREDIT
            - DEBIT
            - DOC_TO_DOC
          paymentDate:
            type: string
            format: date
    BalanceOffsetSummary:
      required:
      - smartLink
      type: object
      properties:
        id:
          type: string
          format: uuid
        smartLink:
          type: boolean
        amount:
          type: string
        currency:
          type: string
        rule:
          type: string
    PaymentAggregation:
      required:
      - amount
      - createdAt
      - id
      - openForRecon
      - operationType
      - paymentDate
      type: object
      properties:
        id:
          type: string
          format: uuid
        createdAt:
          type: string
          format: date-time
        paymentDate:
          type: string
          format: date
        operationType:
          type: string
          enum:
          - CREDIT
          - DEBIT
          - DOC_TO_DOC
        amount:
          $ref: '#/components/schemas/AmountDto'
        openForRecon:
          $ref: '#/components/schemas/AmountDto'
        paymentReference:
          type: string
        paymentCertaintyLevel:
          type: string
        paymentAccount:
          $ref: '#/components/schemas/OwnerPaymentAccountInfo'
        counterpartyPaymentAccount:
          $ref: '#/components/schemas/CounterPartyPaymentAccountInfo'
        data:
          type: object
          additionalProperties:
            type: string
        aggregations:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/AggregationWithPayable'
            - $ref: '#/components/schemas/AggregationWithDocument'
            - $ref: '#/components/schemas/AggregationWithNote'
            - $ref: '#/components/schemas/AggregationWithPayment'
      description: List of payment aggregations
    PaymentAggregationResponse:
      type: object
      properties:
        paymentAggregations:
          type: array
          items:
            $ref: '#/components/schemas/PaymentAggregation'
        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
        totalAllElements:
          type: integer
          description: Total number of items regardless of matches
          format: int64
        totalMatchedElements:
          type: integer
          description: Total number of confirmed matches
          format: int64
        totalProposedElements:
          type: integer
          description: Total number of proposed matches
          format: int64
        totalUnmatchedElements:
          type: integer
          description: Total number of items that are not fully matched
          format: int64
        paymentAccounts:
          type: array
          items:
            $ref: '#/components/schemas/AccountIdentifier'
    AggregationWithModifier:
      required:
      - aggregationStatus
      - availableOperations
      type: object
      properties:
        balanceOffset:
          $ref: '#/components/schemas/BalanceOffsetSummary'
        aggregationStatus:
          type: string
          enum:
          - PROPOSED
          - UNMATCHED
          - MATCHED
        availableOperations:
          minItems: 1
          type: array
          items:
            type: string
            enum:
            - ACCEPT
            - REJECT
            - MATCH
            - UNMATCH
            - EDIT
        modifier:
          oneOf:
          - $ref: '#/components/schemas/DocumentModifierInfo'
          - $ref: '#/components/schemas/PaymentModifierInfo'
    DocumentAggregation:
      required:
      - connections
      - createdAt
      - folder
      - id
      - metadata
      type: object
      properties:
        id:
          type: string
          format: uuid
        folder:
          type: string
        category:
          type: string
        createdAt:
          type: string
          format: date-time
        metadata:
          $ref: '#/components/schemas/AggregationDocumentMetadata'
        connections:
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/AggregationConnection'
        aggregations:
          type: array
          items:
            $ref: '#/components/schemas/AggregationWithModifier'
      description: List of document aggregations
    DocumentAggregationResponse:
      type: object
      properties:
        documentAggregations:
          type: array
          items:
            $ref: '#/components/schemas/DocumentAggregation'
        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
        totalAllElements:
          type: integer
          description: Total number of items regardless of matches
          format: int64
        totalMatchedElements:
          type: integer
          description: Total number of confirmed matches
          format: int64
        totalProposedElements:
          type: integer
          description: Total number of proposed matches
          format: int64
        totalUnmatchedElements:
          type: integer
          description: Total number of items that are not fully matched
          format: int64
    JsonBMap:
      type: object
      additionalProperties: true
    JsonBMapNullable:
      type: object
      additionalProperties: true
      nullable: true
    PatchRequest:
      type: array
      items:
        $ref: '#/components/schemas/PatchDocument'
    PatchDocument:
      required:
      - op
      - path
      type: object
      properties:
        op:
          type: string
          description: The operation to be performed
          enum:
          - add
          - remove
          - replace
          - move
          - copy
          - test
        path:
          type: string
          description: A JSON-Pointer
        value:
          type: object
          description: The value to be used within the operations.
        from:
          type: string
          description: A string containing a JSON Pointer value.
      description: A JSONPatch document as defined by RFC 6902
    AggregationStatus:
      type: string
      description: Status determined by aggregation
      example: AUTO_CONFIRMED
      enum:
      - PROPOSED
      - AUTO_CONFIRMED
      - USER_CONFIRMED
      - REJECTED
    BalanceOffsetPayableType:
      type: string
      description: Discriminator to determine the payable type.
      example: document
      enum:
      - document
      - note
      - payment
    BalanceOffsetResult:
      required:
      - aggregationStatus
      - offsetType
      - paymentId
      type: object
      properties:
        payableType:
          $ref: '#/components/schemas/BalanceOffsetPayableType'
        id:
          type: string
          description: id of balance offset
          format: uuid
        spaceId:
          type: string
          description: Space id
          format: uuid
        paymentId:
          type: string
          description: Payment id
          format: uuid
        amount:
          $ref: '#/components/schemas/AmountDto'
        offsetType:
          $ref: '#/components/schemas/BalanceOffsetType'
        aggregationStatus:
          $ref: '#/components/schemas/AggregationStatus'
        createdAt:
          type: string
          description: creation datetime
          format: date-time
        updatedAt:
          type: string
          description: updated datetime
          format: date-time
        metadata:
          $ref: '#/components/schemas/JsonBMap'
      description: Balance offsets
      discriminator:
        propertyName: payableType
        mapping:
          document: '#/components/schemas/DocumentBalanceOffsetResult'
          note: '#/components/schemas/NoteBalanceOffsetResult'
          payment: '#/components/schemas/PaymentBalanceOffsetResult'
    BalanceOffsetType:
      type: string
      description: Type of balance offset
      example: PARTIAL
      enum:
      - FULL
      - PARTIAL
      - DISCOUNT
      - REFUND
      - TIP
      - UNDERPAYMENT
      - OVERPAYMENT
      - FEE
    DocumentBalanceOffsetResult:
      required:
      - aggregationStatus
      - documentId
      - offsetType
      - paymentId
      type: object
      allOf:
      - $ref: '#/components/schemas/BalanceOffsetResult'
      - type: object
        properties:
          documentId:
            type: string
            description: Document id
            format: uuid
    NoteBalanceOffsetResult:
      required:
      - aggregationStatus
      - offsetType
      - paymentId
      type: object
      allOf:
      - $ref: '#/components/schemas/BalanceOffsetResult'
      - type: object
        properties:
          comment:
            type: string
            description: Comment on the note balance offset.
    PaymentBalanceOffsetResult:
      required:
      - aggregationStatus
      - counterpartyPaymentId
      - offsetType
      - paymentId
      type: object
      allOf:
      - $ref: '#/components/schemas/BalanceOffsetResult'
      - type: object
        properties:
          counterpartyPaymentId:
            type: string
            description: Counterparty payment id
            format: uuid
    PaymentBalanceOffsetResultList:
      required:
      - balanceOffsets
      type: object
      properties:
        balanceOffsets:
          type: array
          description: balanceOffsets of given payment
          items:
            $ref: '#/components/schemas/BalanceOffsetResult'
    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
    PaymentListBalanceOffsetRequest:
      type: object
      properties:
        payments:
          type: array
          description: List of payment ids
          items:
            type: string
            description: Payment id
            format: uuid
    CounterpartyPaymentInformationResult:
      required:
      - status
      type: object
      allOf:
      - $ref: '#/components/schemas/BasePaymentInformationResult'
      - type: object
        properties:
          referenceDetails:
            $ref: '#/components/schemas/PaymentInformationReferenceDetailsResult'
          status:
            $ref: '#/components/schemas/JsonBMap'
          endToEndId:
            type: string
            description: End to end id, according to PSD2 directive.
          amount:
            $ref: '#/components/schemas/AmountDto'
          counterpartySpaceUrl:
            type: string
            description: URL to the space of the counter party
          counterPartyBalanceOffsetId:
            type: string
            description: Id of counter party's balance offset
            format: uuid
          paymentAccount:
            $ref: '#/components/schemas/NamedPaymentAccountDto'
          counterpartyPaymentAccount:
            $ref: '#/components/schemas/NamedPaymentAccountDto'
    NamedPaymentAccountDto:
      type: object
      properties:
        identifier:
          type: string
          description: Account Identifier
          example: BE83504010119715
        scheme:
          type: string
          description: Account Scheme
          example: IBAN
        bank:
          $ref: '#/components/schemas/BankIdentifier'
        country:
          pattern: ^[a-zA-Z]{2}
          type: string
          example: BE
        currency:
          pattern: '[A-Z]{3}'
          type: string
          description: International code ISO 4217 of the currency used
          example: EUR
        parent:
          $ref: '#/components/schemas/AccountIdentifier'
        ownerName:
          type: string
          description: Name of the holder of this payment account.
    PaymentInformationReferenceDetailsResult:
      type: object
      properties:
        value:
          type: string
          description: The value of the payment reference
        type:
          $ref: '#/components/schemas/PaymentInformationReferenceType'
        scheme:
          $ref: '#/components/schemas/PaymentInformationReferenceScheme'
      description: Reference added to all transactions (resulting in movements) that
        will be performed while executing the transfer.
    PaymentInformationReferenceScheme:
      type: string
      description: Payment reference scheme
      example: ISO_11649
      enum:
      - OGM_VCS
      - ISO_11649
      - ACCEPT_GIRO
      - STRUCTURED_EE
      - STRUCTURED_SE
      - STRUCTURED_LU
      - STRUCTURED_FI
      - STRUCTURED_NO
      - STRUCTURED_CZ
    PaymentInformationReferenceType:
      type: string
      description: Payment reference scheme
      example: STRUCTURED
      enum:
      - STRUCTURED
      - UNSTRUCTURED
    CounterpartyPaymentInformationRequest:
      required:
      - counterPartyBalanceOffsetId
      - counterpartySpaceUrl
      - status
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/AmountDto'
        status:
          $ref: '#/components/schemas/JsonBMap'
        endToEndId:
          type: string
          description: End to end id, according to PSD2 directive.
        referenceDetails:
          $ref: '#/components/schemas/PaymentInformationReferenceDetails'
        paymentId:
          type: string
          description: Id of payment
          format: uuid
        counterpartySpaceUrl:
          type: string
          description: URL to the space of the counter party
        counterPartyBalanceOffsetId:
          type: string
          description: Id of counter party's balance offset
          format: uuid
        paymentAccount:
          $ref: '#/components/schemas/NamedPaymentAccountDto'
        counterpartyPaymentAccount:
          $ref: '#/components/schemas/NamedPaymentAccountDto'
    PaymentInformationReferenceDetails:
      required:
      - type
      - value
      type: object
      properties:
        value:
          type: string
          description: The value of the payment reference
        type:
          $ref: '#/components/schemas/PaymentInformationReferenceType'
        scheme:
          $ref: '#/components/schemas/PaymentInformationReferenceScheme'
      description: Reference details filled in by the payer when making the payment.
    AllCounterpartyPaymentInformationResult:
      type: object
      properties:
        counterpartyPaymentInformation:
          type: array
          description: List of counterparty payment information
          items:
            $ref: '#/components/schemas/CounterpartyPaymentInformationResult'
        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
    UpdateCounterpartyPaymentInformationRequest:
      required:
      - paymentId
      type: object
      properties:
        paymentId:
          type: string
          description: The new payment ID to associate with this counterparty payment
            information
          format: uuid
    CrossCurrencyTransactionResponse:
      required:
      - status
      type: object
      allOf:
      - $ref: '#/components/schemas/BasePaymentInformationResult'
      - type: object
        properties:
          originatingAmount:
            $ref: '#/components/schemas/AmountDto'
          counterpartyAmount:
            $ref: '#/components/schemas/AmountDto'
          referenceDetails:
            $ref: '#/components/schemas/PaymentInformationReferenceDetailsResult'
          status:
            $ref: '#/components/schemas/JsonBMap'
          beneficiary:
            $ref: '#/components/schemas/PaymentAccountListItem'
          payer:
            $ref: '#/components/schemas/PaymentAccountListItem'
          source:
            $ref: '#/components/schemas/CrossCurrencyTransactionSource'
          cost:
            $ref: '#/components/schemas/JsonBMap'
          collectConversionReference:
            type: string
            description: Additional reference added to the transaction which moves
              money from payer account to UP collect account (to be later converted
              to another currency). Set by FX service provider (PXG).
          feeConversionReference:
            type: string
            description: Additional reference added to the transaction which represents
              the cost charge. Set by FX service provider (PXG).
          notificationUrl:
            type: string
            description: URL registered by the initiating application which will serve
              as a callback through which BTX PAY can feed update notifications.
          redirectUrl:
            type: string
            description: URL registered by the initiating application which will be
              used to redirect the user once the authorization flow of the transfer
              has been completed.
    CrossCurrencyTransactionSource:
      required:
      - provider
      type: object
      properties:
        provider:
          type: string
          description: Source provider
          enum:
          - PXG
        crossCurrencyTransactionId:
          type: string
          description: Cross currency transaction identifier in context of specified
            source provider.
      description: Specifies the external identifier of the transfer.
    Iso20022StructuredAddress:
      type: object
      properties:
        country:
          type: string
          description: Nation with its own government, expressed as a two letter ISO
            3166 code (alpha-2) of the country. The country code is written in upper
            case.
          example: BE
        townName:
          type: string
          description: Name of a built-up area, with defined boundaries, and a local
            government.
          example: La Hulpe
        addressType:
          type: string
          description: Identifies the nature of the postal address.
          example: ADDR
          enum:
          - ADDR
          - PBOX
          - HOME
          - BIZZ
          - MLTO
          - DLVY
        streetName:
          maxLength: 140
          type: string
          description: Name of a street or thoroughfare.
          example: Avenue Reine Astrid
        buildingNumber:
          maxLength: 16
          type: string
          description: A unique number assigned to the building in the street or area
            //Number that identifies the position of a building on a street.
          example: '40'
        careOf:
          maxLength: 140
          type: string
          description: Identifies an addressee that is accepting the correspondence
            for the intended recipient. Using care of ensures the correspondence reaches
            the right recipient rather than getting returned to the sender.
          example: Finance
        department:
          maxLength: 70
          type: string
          description: Identification of a division of a large organisation or building.
          example: Finance
        subDepartment:
          maxLength: 70
          type: string
          description: Identification of a sub-division of a large organisation or
            building.
          example: Accounting
        buildingName:
          maxLength: 140
          type: string
          description: Name of the building or house.
          example: Empire State Building
        floor:
          maxLength: 70
          type: string
          description: Floor or storey within a building.
          example: ground
        unitNumber:
          maxLength: 16
          type: string
          description: Identifies a flat or dwelling within the building.
          example: '2'
        postBox:
          maxLength: 16
          type: string
          description: Numbered box in a post office, assigned to a person or organisation,
            where letters are kept until called for.
          example: '1003'
        room:
          maxLength: 70
          type: string
          description: Building room number.
          example: '2.22'
        postCode:
          maxLength: 16
          type: string
          description: Identifier consisting of a group of letters and/or numbers
            that is added to a postal address to assist the sorting of mail.
          example: '1310'
        townLocationName:
          maxLength: 140
          type: string
          description: Specific location name within the town. eg Borough (USA), Village
            (GB).
          example: Miami Beach
        districtName:
          maxLength: 140
          type: string
          description: Identifies a subdivision within a country sub-division eg County
            (USA), Landkreis (DE).
          example: Miami-Dade, Coburg
        countrySubDivision:
          maxLength: 35
          type: string
          description: Identifies a subdivision of a country such as state (USA),
            Bundesland (DE), region, province,....
          example: Florida, Bayern, Wallonia, Hainaut
      description: Information that locates and identifies a specific address, as
        defined by postal services
      externalDocs:
        description: More about EPC Interbank Structured Address Structure; see also
          PostalAddress27 type in https://www.iso20022.org/message/22905/download
        url: 
          https://www.europeanpaymentscouncil.eu/sites/default/files/kb/file/2022-10/EPC153-22%20EPC%20guidance%20document%20-%20Use%20of%20Structured%20Address%20under%20the%20SEPA%20Payment%20Schemes%20as%20of%20Nov%202025.pdf
    PaymentAccountListItem:
      type: object
      properties:
        id:
          type: string
          description: Payment account ID
          format: uuid
        identifier:
          type: string
          description: Identifier of the payment account
        scheme:
          type: string
          description: Scheme of the payment account
        country:
          type: string
          description: Country for the payment account
        currency:
          type: string
          description: Currency for the payment account
        bank:
          $ref: '#/components/schemas/BankIdentifier'
        spaceId:
          type: string
          description: Space id
          format: uuid
        ownedBySpace:
          type: boolean
          description: Flag to indicate if the space is the actual holder of the payment
            account.
        active:
          type: boolean
          description: Flag to indicate if the payment account is active or not.
        ownerName:
          type: string
          description: Name of owner.
        address:
          $ref: '#/components/schemas/Iso20022StructuredAddress'
        parent:
          $ref: '#/components/schemas/AccountIdentifier'
        financialPlatformId:
          type: string
          description: Optional identifier of the financial platform.
      description: The party initiating the transfer.
    CrossCurrencyTransactionRequest:
      required:
      - status
      type: object
      properties:
        paymentId:
          type: string
          description: Identifier of the wrapping BTX Payment (all CCTs need to be
            executed in the context of a payment)
          format: uuid
        originatingAmount:
          $ref: '#/components/schemas/AmountDto'
        counterpartyAmount:
          $ref: '#/components/schemas/AmountDto'
        beneficiary:
          $ref: '#/components/schemas/NamedPaymentAccountWithAddress'
        payer:
          $ref: '#/components/schemas/NamedPaymentAccountWithAddress'
        status:
          $ref: '#/components/schemas/JsonBMap'
        cost:
          $ref: '#/components/schemas/JsonBMap'
        source:
          $ref: '#/components/schemas/CrossCurrencyTransactionSource'
        referenceDetails:
          $ref: '#/components/schemas/PaymentInformationReferenceDetails'
        collectConversionReference:
          type: string
          description: Additional reference added to the transaction which moves money
            from payer account to UP collect account (to be later converted to another
            currency). Set by FX service provider (PXG).
        feeConversionReference:
          type: string
          description: Additional reference added to the transaction which represents
            the cost charge. Set by FX service provider (PXG).
        notificationUrl:
          type: string
          description: URL registered by the initiating application which will serve
            as a callback through which BTX PAY can feed update notifications.
        redirectUrl:
          type: string
          description: URL registered by the initiating application which will be
            used to redirect the user once the authorization flow of the transfer
            has been completed.
    NamedPaymentAccountWithAddress:
      type: object
      properties:
        identifier:
          type: string
          description: Account Identifier
          example: BE83504010119715
        scheme:
          type: string
          description: Account Scheme
          example: IBAN
        bank:
          $ref: '#/components/schemas/BankIdentifier'
        country:
          pattern: ^[a-zA-Z]{2}
          type: string
          example: BE
        currency:
          pattern: '[A-Z]{3}'
          type: string
          description: International code ISO 4217 of the currency used
          example: EUR
        parent:
          $ref: '#/components/schemas/AccountIdentifier'
        ownerName:
          type: string
          description: Name of the holder of this payment account.
        address:
          $ref: '#/components/schemas/Iso20022StructuredAddress'
      description: Creditor payment account data
      example:
        identifier: BE19519469892112
        scheme: IBAN
        bank:
          identifier: ABNABE2AIDJ
          scheme: BIC
        country: BE
        currency: EUR
        ownerName: The company
        address:
          country: BE
          townName: Gent
          addressType: BIZZ
          streetName: Kortrijksesteenweg
          buildingNumber: '1146'
          postCode: '9051'
    ListCrossCurrencyTransactionsResponse:
      type: object
      properties:
        crossCurrencyTransactions:
          type: array
          description: List of cross currency transactions
          items:
            $ref: '#/components/schemas/CrossCurrencyTransactionResponse'
        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
    ListCrossCurrencyTransactionsQueryParamsSingle:
      type: object
      properties:
        sourceId:
          type: string
          description: Source cross currency transaction id in context of source provider
        sourceProvider:
          type: string
          description: Source provider
          enum:
          - PXG
        originatingAmount:
          type: number
          description: Originating amount equals
          example: 100.0
        counterpartyAmount:
          type: number
          description: Counterparty amount equals
          example: 90.0
        reference:
          type: string
          description: Reference
          example: RF18000000000539007547034
        collectConversionReference:
          type: string
          description: Collect conversion reference
          example: COLLECT_REF_123
        feeConversionReference:
          type: string
          description: Fee conversion reference
          example: FEE_REF_456
        beneficiaryName:
          type: string
          description: Filter by beneficiary’s payment account owner name
        beneficiaryAccount:
          type: string
          description: Filter by beneficiary’s payment account identifier
        payerName:
          type: string
          description: Filter by payer’s payment account owner name
        payerAccount:
          type: string
          description: Filter by payer’s payment account identifier
    UpdateCrossCurrencyTransactionRequest:
      type: object
      properties:
        source:
          $ref: '#/components/schemas/CrossCurrencyTransactionSource'
        status:
          $ref: '#/components/schemas/JsonBMap'
        collectConversionReference:
          type: string
          description: Additional reference added to the transaction which moves money
            from payer account to UP collect account (to be later converted to another
            currency). Set by FX service provider (PXG).
        feeConversionReference:
          type: string
          description: Additional reference added to the transaction which represents
            the cost charge. Set by FX service provider (PXG).
        notificationUrl:
          type: string
          description: URL registered by the initiating application which will serve
            as a callback through which BTX PAY can feed update notifications.
        redirectUrl:
          type: string
          description: URL registered by the initiating application which will be
            used to redirect the user once the authorization flow of the transfer
            has been completed.
    ManualPaymentInformationResult:
      required:
      - status
      type: object
      allOf:
      - $ref: '#/components/schemas/BasePaymentInformationResult'
      - type: object
        properties:
          referenceDetails:
            $ref: '#/components/schemas/PaymentInformationReferenceDetailsResult'
          status:
            $ref: '#/components/schemas/JsonBMap'
          endToEndId:
            type: string
            description: End to end id, according to PSD2 directive.
          amount:
            $ref: '#/components/schemas/AmountDto'
          comment:
            type: string
            description: Additional comment of user
          paymentMethod:
            $ref: '#/components/schemas/PaymentMethod'
    PaymentMethod:
      type: string
      description: The payment method
      example: BANK_TRANSFER
      enum:
      - BANK_TRANSFER
      - CREDIT_CARD
      - DEBIT_CARD
      - CASH
      - OTHER
      - DIRECT_DEBIT
      - CHEQUE
      - DRAFT
    ManualPaymentInformationRequest:
      required:
      - status
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/AmountDto'
        status:
          $ref: '#/components/schemas/JsonBMap'
        endToEndId:
          type: string
          description: End to end id, according to PSD2 directive.
        referenceDetails:
          $ref: '#/components/schemas/PaymentInformationReferenceDetails'
        paymentId:
          type: string
          description: Id of payment
          format: uuid
        comment:
          type: string
          description: Additional comment of user
        paymentMethod:
          $ref: '#/components/schemas/PaymentMethod'
    AllManualPaymentInformationResult:
      type: object
      properties:
        manualPaymentInformation:
          type: array
          description: List of manual payment information
          items:
            $ref: '#/components/schemas/ManualPaymentInformationResult'
        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
    UpdateManualPaymentInformationRequest:
      type: object
      properties:
        paymentId:
          type: string
          description: Id of payment
          format: uuid
    BookedPaymentMovementResult:
      required:
      - status
      type: object
      allOf:
      - $ref: '#/components/schemas/PaymentMovementResult'
      - type: object
        properties:
          balancesAfterOperation:
            $ref: '#/components/schemas/JsonBMap'
          bookingDate:
            type: string
            description: Booking date in format yyyy-MM-dd
            format: date
            example: 2024-05-22
          relatedMovement:
            type: string
            description: Related movement
            example: 51c624a8-a584-41db-b1f7-30815f48666c
    BulkPaymentMovementFullResult:
      required:
      - paymentMovements
      type: object
      allOf:
      - $ref: '#/components/schemas/BulkPaymentMovementResult'
      - type: object
        properties:
          paymentMovements:
            type: array
            description: List of payment movements
            items:
              $ref: '#/components/schemas/PaymentMovementResult'
    BulkPaymentMovementIdsResult:
      type: object
      allOf:
      - $ref: '#/components/schemas/BulkPaymentMovementResult'
      - type: object
        properties:
          paymentMovements:
            type: array
            items:
              type: string
              format: uuid
    BulkPaymentMovementResult:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/BulkResponseType'
      discriminator:
        propertyName: type
        mapping:
          ids: '#/components/schemas/BulkPaymentMovementIdsResult'
          full: '#/components/schemas/BulkPaymentMovementFullResult'
    BulkResponseType:
      type: string
      description: Bulk response type
      example: full
      enum:
      - full
      - ids
    PaymentMovementMandate:
      type: object
      properties:
        reference:
          type: string
          description: Mandate reference
        creditor:
          type: string
          description: Mandate creditor
    PaymentMovementReservation:
      type: object
      properties:
        id:
          type: string
          description: Reservation id
        plannedDateStart:
          type: string
          description: Start of date interval for planned movement to execute.
          format: date
        plannedDateEnd:
          type: string
          description: End of date interval for planned movement to execute.
          format: date
    PaymentMovementResult:
      required:
      - status
      type: object
      discriminator:
        propertyName: movementBookingType
        mapping:
          booked: '#/components/schemas/BookedPaymentMovementResult'
          planned: '#/components/schemas/PlannedPaymentMovementResult'
          reserved: '#/components/schemas/ReservedPaymentMovementResult'
      allOf:
      - $ref: '#/components/schemas/BasePaymentInformationResult'
      - type: object
        properties:
          referenceDetails:
            $ref: '#/components/schemas/PaymentInformationReferenceDetailsResult'
          status:
            $ref: '#/components/schemas/JsonBMap'
          endToEndId:
            type: string
            description: End to end id, according to PSD2 directive.
          movementBookingType:
            type: string
            enum:
            - booked
            - planned
            - reserved
          amount:
            $ref: '#/components/schemas/AmountDto'
          originatingPaymentAccount:
            $ref: '#/components/schemas/NamedPaymentAccountDto'
          counterpartyPaymentAccount:
            $ref: '#/components/schemas/NamedPaymentAccountDto'
          counterpartyMetadata:
            $ref: '#/components/schemas/JsonBMap'
          source:
            $ref: '#/components/schemas/PaymentMovementSource'
          scheme:
            $ref: '#/components/schemas/PaymentMovementScheme'
          type:
            $ref: '#/components/schemas/PaymentMovementType'
          additionalInformation:
            type: string
            description: Additional information
            example: Something more
          mandate:
            $ref: '#/components/schemas/PaymentMovementMandate'
          cardTransactionDetails:
            $ref: '#/components/schemas/JsonBMap'
          sequence:
            type: string
            description: Sequence
            example: '1'
          failureCode:
            type: string
            description: Failure code
          rawRelatableMovementIds:
            $ref: '#/components/schemas/JsonBMap'
          statementId:
            type: string
            format: uuid
    PaymentMovementScheme:
      type: string
      description: Payment movement scheme
      example: CARDS
      enum:
      - SCT
      - SCT_INST
      - SDD
      - CARDS
    PaymentMovementSource:
      required:
      - provider
      type: object
      properties:
        provider:
          $ref: '#/components/schemas/PaymentMovementSourceProvider'
        movementId:
          type: string
          description: Source movement id in context of source provider
        paymentId:
          type: string
          description: Payment id in context of source provider
        bookingId:
          type: string
          description: Booking id in context of source provider
    PaymentMovementSourceProvider:
      type: string
      description: Payment movement source provider
      example: IBIS
      enum:
      - OB_PXG
      - IBIS
      - CODABOX
      - JE_DECLARE
      - OTHER
      - UNKNOWN
    PaymentMovementType:
      type: string
      description: Payment movement type
      example: REGULAR
      enum:
      - REGULAR
      - RETURN
      - REFUND
      - REVERSAL
      - CASH_WITHDRAWAL
      - POS
      - FEES
      - OCT
      - OCT_REVERSAL
      - OTHER
    PlannedPaymentMovementResult:
      required:
      - status
      type: object
      allOf:
      - $ref: '#/components/schemas/PaymentMovementResult'
      - type: object
        properties:
          reservation:
            $ref: '#/components/schemas/PaymentMovementReservation'
          collectionId:
            type: string
            description: Collection id
    ReservedPaymentMovementResult:
      required:
      - status
      type: object
      allOf:
      - $ref: '#/components/schemas/PaymentMovementResult'
      - type: object
        properties:
          balancesAfterOperation:
            $ref: '#/components/schemas/JsonBMap'
          reservation:
            $ref: '#/components/schemas/PaymentMovementReservation'
          collectionId:
            type: string
            description: Collection id
    BookedPaymentMovementRequest:
      required:
      - bookingDate
      - movementBookingType
      - sequence
      - status
      type: object
      allOf:
      - $ref: '#/components/schemas/PaymentMovementRequest'
      - type: object
        properties:
          balancesAfterOperation:
            $ref: '#/components/schemas/JsonBMap'
          bookingDate:
            type: string
            description: Booking date in format yyyy-MM-dd
            format: date
            example: 2024-05-22
          relatedMovement:
            type: string
            description: Related movement
            example: 51c624a8-a584-41db-b1f7-30815f48666c
    BulkPaymentMovementRequest:
      type: object
      properties:
        responseOptions:
          $ref: '#/components/schemas/BulkResponseOptions'
        paymentMovements:
          type: array
          items:
            $ref: '#/components/schemas/PaymentMovementRequest'
    BulkResponseOptions:
      type: object
      properties:
        full:
          type: boolean
          description: "Flag to indicate whether to return a detailed response.\n
            If `full` is false, only ids will be returned.\n"
          example: true
          default: false
      description: Response options
    PaymentMovementRequest:
      required:
      - movementBookingType
      - sequence
      - status
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/AmountDto'
        status:
          $ref: '#/components/schemas/JsonBMap'
        endToEndId:
          type: string
          description: End to end id, according to PSD2 directive.
        referenceDetails:
          $ref: '#/components/schemas/PaymentInformationReferenceDetails'
        movementBookingType:
          type: string
          description: discriminator to determine BookedPaymentMovementRequest / PlannedPaymentMovementRequest
            / ReservedPaymentMovementRequest
          example: booked
          enum:
          - booked
          - planned
          - reserved
        paymentId:
          type: string
          description: Id of payment
          format: uuid
        originatingPaymentAccount:
          $ref: '#/components/schemas/NamedPaymentAccountDto'
        counterpartyPaymentAccount:
          $ref: '#/components/schemas/NamedPaymentAccountDto'
        counterpartyMetadata:
          $ref: '#/components/schemas/JsonBMap'
        source:
          $ref: '#/components/schemas/PaymentMovementSource'
        scheme:
          $ref: '#/components/schemas/PaymentMovementScheme'
        type:
          $ref: '#/components/schemas/PaymentMovementType'
        additionalInformation:
          type: string
          description: Additional information
          example: Something more
        mandate:
          $ref: '#/components/schemas/PaymentMovementMandate'
        cardTransactionDetails:
          $ref: '#/components/schemas/JsonBMap'
        sequence:
          type: string
          description: Sequence
          example: '1'
        failureCode:
          type: string
          description: Failure code
        statementId:
          type: string
          description: Id of statement document encompassing this movement.
          format: uuid
        rawRelatableMovementIds:
          $ref: '#/components/schemas/JsonBMap'
      discriminator:
        propertyName: movementBookingType
        mapping:
          booked: '#/components/schemas/BookedPaymentMovementRequest'
          planned: '#/components/schemas/PlannedPaymentMovementRequest'
          reserved: '#/components/schemas/ReservedPaymentMovementRequest'
    PlannedPaymentMovementRequest:
      required:
      - movementBookingType
      - sequence
      - status
      type: object
      allOf:
      - $ref: '#/components/schemas/PaymentMovementRequest'
      - type: object
        properties:
          reservation:
            $ref: '#/components/schemas/PaymentMovementReservation'
          collectionId:
            type: string
            description: Collection id
    ReservedPaymentMovementRequest:
      required:
      - movementBookingType
      - sequence
      - status
      type: object
      allOf:
      - $ref: '#/components/schemas/PaymentMovementRequest'
      - type: object
        properties:
          balancesAfterOperation:
            $ref: '#/components/schemas/JsonBMap'
          reservation:
            $ref: '#/components/schemas/PaymentMovementReservation'
          collectionId:
            type: string
            description: Collection id
    AllPaymentMovementsResult:
      type: object
      properties:
        paymentMovements:
          type: array
          description: List of payment movements
          items:
            $ref: '#/components/schemas/PaymentMovementResult'
        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
    PaymentMovementSingleParams:
      type: object
      properties:
        counterpartyName:
          type: string
          description: Counterparty name
          example: Unifiedpost
        endToEndId:
          type: string
          description: End to end Id
          example: 0a2e9932-a660-4354-82a9-b5c0897f5887
        reference:
          type: string
          description: Reference
          example: RF18000000000539007547034
        amountValue[eq]:
          type: number
          description: Amount value equals
          example: 12.25
        amountValue[ne]:
          type: number
          description: Amount value not equals
          example: 12.25
        amountValue[gt]:
          type: number
          description: Amount value greater than
          example: 11.25
        amountValue[gte]:
          type: number
          description: Amount value greater than or equal
          example: 11.25
        amountValue[lt]:
          type: number
          description: Amount value less than
          example: 11.25
        amountValue[lte]:
          type: number
          description: Amount value less than or equal
          example: 13.25
        amountCurrency:
          type: string
          description: International code ISO 4217 of the currency used
          example: EUR
        bookingDate[eq]:
          type: string
          description: Booking date equals, in format yyyy-MM-dd
          format: date
          example: 2024-04-15
        bookingDate[ne]:
          type: string
          description: Booking date not equals, in format yyyy-MM-dd
          format: date
          example: 2024-04-15
        bookingDate[gt]:
          type: string
          description: Booking date greater than, in format yyyy-MM-dd
          format: date
          example: 2024-04-15
        bookingDate[gte]:
          type: string
          description: Booking date greater than or equal, in format yyyy-MM-dd
          format: date
          example: 2024-04-15
        bookingDate[lt]:
          type: string
          description: Booking date less than, in the format yyyy-MM-dd
          format: date
          example: 2024-04-15
        bookingDate[lte]:
          type: string
          description: Booking date less than or equal, in the format yyyy-MM-dd
          format: date
          example: 2024-04-15
        mandateReference:
          type: string
          description: Mandate reference
        sequence:
          type: string
          description: Sequence
        sourceProvider:
          $ref: '#/components/schemas/PaymentMovementSourceProvider'
        sourceMovementId:
          type: string
          description: Source movement id in context of source provider
        movementBookingType:
          type: string
          description: Movement booking type
          example: booked
        plannedDateStart[eq]:
          type: string
          description: '"Planned date start" equals, in format yyyy-MM-dd'
          format: date
          example: 2024-04-15
        plannedDateStart[ne]:
          type: string
          description: '"Planned date start" not equals, in format yyyy-MM-dd'
          format: date
          example: 2024-04-15
        plannedDateStart[gt]:
          type: string
          description: '"Planned date start" greater than, in format yyyy-MM-dd'
          format: date
          example: 2024-04-15
        plannedDateStart[gte]:
          type: string
          description: '"Planned date start" greater than or equal, in format yyyy-MM-dd'
          format: date
          example: 2024-04-15
        plannedDateStart[lt]:
          type: string
          description: '"Planned date start" less than, in the format yyyy-MM-dd'
          format: date
          example: 2024-04-15
        plannedDateStart[lte]:
          type: string
          description: '"Planned date start" less than or equal, in the format yyyy-MM-dd'
          format: date
          example: 2024-04-15
        plannedDateEnd[eq]:
          type: string
          description: '"Planned date end" equals, in format yyyy-MM-dd'
          format: date
          example: 2024-04-15
        plannedDateEnd[ne]:
          type: string
          description: '"Planned date end" not equals, in format yyyy-MM-dd'
          format: date
          example: 2024-04-15
        plannedDateEnd[gt]:
          type: string
          description: '"Planned date end" greater than, in format yyyy-MM-dd'
          format: date
          example: 2024-04-15
        plannedDateEnd[gte]:
          type: string
          description: '"Planned date end" greater than or equal, in format yyyy-MM-dd'
          format: date
          example: 2024-04-15
        plannedDateEnd[lt]:
          type: string
          description: '"Planned date end" less than, in the format yyyy-MM-dd'
          format: date
          example: 2024-04-15
        plannedDateEnd[lte]:
          type: string
          description: '"Planned date end" less than or equal, in the format yyyy-MM-dd'
          format: date
          example: 2024-04-15
    ANTLRErrorListener:
      type: object
    ATN:
      type: object
      properties:
        states:
          type: array
          items:
            $ref: '#/components/schemas/ATNState'
        decisionToState:
          type: array
          items:
            $ref: '#/components/schemas/DecisionState'
        ruleToStartState:
          type: array
          items:
            $ref: '#/components/schemas/RuleStartState'
        ruleToStopState:
          type: array
          items:
            $ref: '#/components/schemas/RuleStopState'
        modeNameToStartState:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/TokensStartState'
        grammarType:
          type: string
          enum:
          - LEXER
          - PARSER
        maxTokenType:
          type: integer
          format: int32
        ruleToTokenType:
          type: array
          items:
            type: integer
            format: int32
        lexerActions:
          type: array
          items:
            $ref: '#/components/schemas/LexerAction'
        modeToStartState:
          type: array
          items:
            $ref: '#/components/schemas/TokensStartState'
        numberOfDecisions:
          type: integer
          format: int32
    ATNConfig:
      type: object
      properties:
        state:
          $ref: '#/components/schemas/ATNState'
        alt:
          type: integer
          format: int32
        context:
          $ref: '#/components/schemas/PredictionContext'
        reachesIntoOuterContext:
          type: integer
          format: int32
        semanticContext:
          $ref: '#/components/schemas/SemanticContext'
        precedenceFilterSuppressed:
          type: boolean
        outerContextDepth:
          type: integer
          format: int32
    ATNConfigSet:
      uniqueItems: true
      type: array
      properties:
        readonly:
          type: boolean
        configLookup:
          type: array
          properties:
            empty:
              type: boolean
          items:
            $ref: '#/components/schemas/ATNConfig'
        configs:
          type: array
          items:
            $ref: '#/components/schemas/ATNConfig'
        uniqueAlt:
          type: integer
          format: int32
        hasSemanticContext:
          type: boolean
        dipsIntoOuterContext:
          type: boolean
        fullCtx:
          type: boolean
        empty:
          type: boolean
        alts:
          type: object
          properties:
            empty:
              type: boolean
        states:
          uniqueItems: true
          type: array
          items:
            $ref: '#/components/schemas/ATNState'
        predicates:
          type: array
          items:
            $ref: '#/components/schemas/SemanticContext'
      items:
        $ref: '#/components/schemas/ATNConfig'
    ATNState:
      type: object
      properties:
        atn:
          $ref: '#/components/schemas/ATN'
        stateNumber:
          type: integer
          format: int32
        ruleIndex:
          type: integer
          format: int32
        epsilonOnlyTransitions:
          type: boolean
        transitions:
          type: array
          items:
            $ref: '#/components/schemas/Transition'
        nextTokenWithinRule:
          $ref: '#/components/schemas/IntervalSet'
        numberOfTransitions:
          type: integer
          format: int32
        nonGreedyExitState:
          type: boolean
        stateType:
          type: integer
          format: int32
    AbstractConfigHashSet:
      type: array
      properties:
        empty:
          type: boolean
      items:
        $ref: '#/components/schemas/ATNConfig'
    AmbiguityInfo:
      type: object
      properties:
        decision:
          type: integer
          format: int32
        configs:
          uniqueItems: true
          type: array
          properties:
            readonly:
              type: boolean
            configLookup:
              type: array
              properties:
                empty:
                  type: boolean
              items:
                $ref: '#/components/schemas/ATNConfig'
            configs:
              type: array
              items:
                $ref: '#/components/schemas/ATNConfig'
            uniqueAlt:
              type: integer
              format: int32
            hasSemanticContext:
              type: boolean
            dipsIntoOuterContext:
              type: boolean
            fullCtx:
              type: boolean
            empty:
              type: boolean
            alts:
              type: object
              properties:
                empty:
                  type: boolean
            states:
              uniqueItems: true
              type: array
              items:
                $ref: '#/components/schemas/ATNState'
            predicates:
              type: array
              items:
                $ref: '#/components/schemas/SemanticContext'
          items:
            $ref: '#/components/schemas/ATNConfig'
        input:
          $ref: '#/components/schemas/TokenStream'
        startIndex:
          type: integer
          format: int32
        stopIndex:
          type: integer
          format: int32
        fullCtx:
          type: boolean
        ambigAlts:
          type: object
          properties:
            empty:
              type: boolean
    CharStream:
      type: object
      properties:
        sourceName:
          type: string
    ContextSensitivityInfo:
      type: object
      properties:
        decision:
          type: integer
          format: int32
        configs:
          uniqueItems: true
          type: array
          properties:
            readonly:
              type: boolean
            configLookup:
              type: array
              properties:
                empty:
                  type: boolean
              items:
                $ref: '#/components/schemas/ATNConfig'
            configs:
              type: array
              items:
                $ref: '#/components/schemas/ATNConfig'
            uniqueAlt:
              type: integer
              format: int32
            hasSemanticContext:
              type: boolean
            dipsIntoOuterContext:
              type: boolean
            fullCtx:
              type: boolean
            empty:
              type: boolean
            alts:
              type: object
              properties:
                empty:
                  type: boolean
            states:
              uniqueItems: true
              type: array
              items:
                $ref: '#/components/schemas/ATNState'
            predicates:
              type: array
              items:
                $ref: '#/components/schemas/SemanticContext'
          items:
            $ref: '#/components/schemas/ATNConfig'
        input:
          $ref: '#/components/schemas/TokenStream'
        startIndex:
          type: integer
          format: int32
        stopIndex:
          type: integer
          format: int32
        fullCtx:
          type: boolean
    DecisionInfo:
      type: object
      properties:
        decision:
          type: integer
          format: int32
        invocations:
          type: integer
          format: int64
        timeInPrediction:
          type: integer
          format: int64
        SLL_TotalLook:
          type: integer
          format: int64
        SLL_MinLook:
          type: integer
          format: int64
        SLL_MaxLook:
          type: integer
          format: int64
        SLL_MaxLookEvent:
          $ref: '#/components/schemas/LookaheadEventInfo'
        LL_TotalLook:
          type: integer
          format: int64
        LL_MinLook:
          type: integer
          format: int64
        LL_MaxLook:
          type: integer
          format: int64
        LL_MaxLookEvent:
          $ref: '#/components/schemas/LookaheadEventInfo'
        contextSensitivities:
          type: array
          items:
            $ref: '#/components/schemas/ContextSensitivityInfo'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorInfo'
        ambiguities:
          type: array
          items:
            $ref: '#/components/schemas/AmbiguityInfo'
        predicateEvals:
          type: array
          items:
            $ref: '#/components/schemas/PredicateEvalInfo'
        SLL_ATNTransitions:
          type: integer
          format: int64
        SLL_DFATransitions:
          type: integer
          format: int64
        LL_Fallback:
          type: integer
          format: int64
        LL_ATNTransitions:
          type: integer
          format: int64
        LL_DFATransitions:
          type: integer
          format: int64
    DecisionState:
      type: object
      properties:
        atn:
          $ref: '#/components/schemas/ATN'
        stateNumber:
          type: integer
          format: int32
        ruleIndex:
          type: integer
          format: int32
        epsilonOnlyTransitions:
          type: boolean
        transitions:
          type: array
          items:
            $ref: '#/components/schemas/Transition'
        nextTokenWithinRule:
          $ref: '#/components/schemas/IntervalSet'
        decision:
          type: integer
          format: int32
        nonGreedy:
          type: boolean
        numberOfTransitions:
          type: integer
          format: int32
        nonGreedyExitState:
          type: boolean
        stateType:
          type: integer
          format: int32
    ErrorInfo:
      type: object
      properties:
        decision:
          type: integer
          format: int32
        configs:
          uniqueItems: true
          type: array
          properties:
            readonly:
              type: boolean
            configLookup:
              type: array
              properties:
                empty:
                  type: boolean
              items:
                $ref: '#/components/schemas/ATNConfig'
            configs:
              type: array
              items:
                $ref: '#/components/schemas/ATNConfig'
            uniqueAlt:
              type: integer
              format: int32
            hasSemanticContext:
              type: boolean
            dipsIntoOuterContext:
              type: boolean
            fullCtx:
              type: boolean
            empty:
              type: boolean
            alts:
              type: object
              properties:
                empty:
                  type: boolean
            states:
              uniqueItems: true
              type: array
              items:
                $ref: '#/components/schemas/ATNState'
            predicates:
              type: array
              items:
                $ref: '#/components/schemas/SemanticContext'
          items:
            $ref: '#/components/schemas/ATNConfig'
        input:
          $ref: '#/components/schemas/TokenStream'
        startIndex:
          type: integer
          format: int32
        stopIndex:
          type: integer
          format: int32
        fullCtx:
          type: boolean
    IntStream:
      type: object
      properties:
        sourceName:
          type: string
    Interval:
      type: object
      properties:
        a:
          type: integer
          format: int32
        b:
          type: integer
          format: int32
    IntervalSet:
      type: object
      properties:
        intervals:
          type: array
          items:
            $ref: '#/components/schemas/Interval'
        readonly:
          type: boolean
        nil:
          type: boolean
        maxElement:
          type: integer
          format: int32
        minElement:
          type: integer
          format: int32
    LexerAction:
      type: object
      properties:
        positionDependent:
          type: boolean
        actionType:
          type: string
          enum:
          - CHANNEL
          - CUSTOM
          - MODE
          - MORE
          - POP_MODE
          - PUSH_MODE
          - SKIP
          - TYPE
    LookaheadEventInfo:
      type: object
      properties:
        decision:
          type: integer
          format: int32
        configs:
          uniqueItems: true
          type: array
          properties:
            readonly:
              type: boolean
            configLookup:
              type: array
              properties:
                empty:
                  type: boolean
              items:
                $ref: '#/components/schemas/ATNConfig'
            configs:
              type: array
              items:
                $ref: '#/components/schemas/ATNConfig'
            uniqueAlt:
              type: integer
              format: int32
            hasSemanticContext:
              type: boolean
            dipsIntoOuterContext:
              type: boolean
            fullCtx:
              type: boolean
            empty:
              type: boolean
            alts:
              type: object
              properties:
                empty:
                  type: boolean
            states:
              uniqueItems: true
              type: array
              items:
                $ref: '#/components/schemas/ATNState'
            predicates:
              type: array
              items:
                $ref: '#/components/schemas/SemanticContext'
          items:
            $ref: '#/components/schemas/ATNConfig'
        input:
          $ref: '#/components/schemas/TokenStream'
        startIndex:
          type: integer
          format: int32
        stopIndex:
          type: integer
          format: int32
        fullCtx:
          type: boolean
        predictedAlt:
          type: integer
          format: int32
    ParseInfo:
      type: object
      properties:
        decisionInfo:
          type: array
          items:
            $ref: '#/components/schemas/DecisionInfo'
        lldecisions:
          type: array
          items:
            type: integer
            format: int32
        dfasize:
          type: integer
          format: int32
        totalTimeInPrediction:
          type: integer
          format: int64
        totalSLLLookaheadOps:
          type: integer
          format: int64
        totalLLLookaheadOps:
          type: integer
          format: int64
        totalSLLATNLookaheadOps:
          type: integer
          format: int64
        totalLLATNLookaheadOps:
          type: integer
          format: int64
        totalATNLookaheadOps:
          type: integer
          format: int64
    ParseTree:
      type: object
      properties:
        parent:
          $ref: '#/components/schemas/ParseTree'
        text:
          type: string
        sourceInterval:
          $ref: '#/components/schemas/Interval'
        payload:
          type: object
        childCount:
          type: integer
          format: int32
    ParserRuleContext:
      type: object
      properties:
        parent:
          $ref: '#/components/schemas/ParserRuleContext'
        invokingState:
          type: integer
          format: int32
        children:
          type: array
          items:
            $ref: '#/components/schemas/ParseTree'
        start:
          $ref: '#/components/schemas/Token'
        stop:
          $ref: '#/components/schemas/Token'
        exception:
          $ref: '#/components/schemas/RecognitionException'
        childCount:
          type: integer
          format: int32
        sourceInterval:
          $ref: '#/components/schemas/Interval'
        empty:
          type: boolean
        payload:
          $ref: '#/components/schemas/RuleContext'
        text:
          type: string
        ruleContext:
          $ref: '#/components/schemas/RuleContext'
        ruleIndex:
          type: integer
          format: int32
        altNumber:
          type: integer
          format: int32
    PredicateEvalInfo:
      type: object
      properties:
        decision:
          type: integer
          format: int32
        configs:
          uniqueItems: true
          type: array
          properties:
            readonly:
              type: boolean
            configLookup:
              type: array
              properties:
                empty:
                  type: boolean
              items:
                $ref: '#/components/schemas/ATNConfig'
            configs:
              type: array
              items:
                $ref: '#/components/schemas/ATNConfig'
            uniqueAlt:
              type: integer
              format: int32
            hasSemanticContext:
              type: boolean
            dipsIntoOuterContext:
              type: boolean
            fullCtx:
              type: boolean
            empty:
              type: boolean
            alts:
              type: object
              properties:
                empty:
                  type: boolean
            states:
              uniqueItems: true
              type: array
              items:
                $ref: '#/components/schemas/ATNState'
            predicates:
              type: array
              items:
                $ref: '#/components/schemas/SemanticContext'
          items:
            $ref: '#/components/schemas/ATNConfig'
        input:
          $ref: '#/components/schemas/TokenStream'
        startIndex:
          type: integer
          format: int32
        stopIndex:
          type: integer
          format: int32
        fullCtx:
          type: boolean
        semctx:
          $ref: '#/components/schemas/SemanticContext'
        predictedAlt:
          type: integer
          format: int32
        evalResult:
          type: boolean
    PredictionContext:
      type: object
      properties:
        id:
          type: integer
          format: int32
        cachedHashCode:
          type: integer
          format: int32
        empty:
          type: boolean
    QueryContext:
      type: object
      properties:
        parent:
          $ref: '#/components/schemas/ParserRuleContext'
        invokingState:
          type: integer
          format: int32
        children:
          type: array
          items:
            $ref: '#/components/schemas/ParseTree'
        start:
          $ref: '#/components/schemas/Token'
        stop:
          $ref: '#/components/schemas/Token'
        exception:
          $ref: '#/components/schemas/RecognitionException'
        ruleIndex:
          type: integer
          format: int32
        childCount:
          type: integer
          format: int32
        sourceInterval:
          $ref: '#/components/schemas/Interval'
        empty:
          type: boolean
        payload:
          $ref: '#/components/schemas/RuleContext'
        text:
          type: string
        ruleContext:
          $ref: '#/components/schemas/RuleContext'
        altNumber:
          type: integer
          format: int32
    RecognitionException:
      type: object
      properties:
        cause:
          type: object
          properties:
            stackTrace:
              type: array
              items:
                type: object
                properties:
                  classLoaderName:
                    type: string
                  moduleName:
                    type: string
                  moduleVersion:
                    type: string
                  methodName:
                    type: string
                  fileName:
                    type: string
                  lineNumber:
                    type: integer
                    format: int32
                  className:
                    type: string
                  nativeMethod:
                    type: boolean
            message:
              type: string
            suppressed:
              type: array
              items:
                type: object
                properties:
                  stackTrace:
                    type: array
                    items:
                      type: object
                      properties:
                        classLoaderName:
                          type: string
                        moduleName:
                          type: string
                        moduleVersion:
                          type: string
                        methodName:
                          type: string
                        fileName:
                          type: string
                        lineNumber:
                          type: integer
                          format: int32
                        className:
                          type: string
                        nativeMethod:
                          type: boolean
                  message:
                    type: string
                  localizedMessage:
                    type: string
            localizedMessage:
              type: string
        stackTrace:
          type: array
          items:
            type: object
            properties:
              classLoaderName:
                type: string
              moduleName:
                type: string
              moduleVersion:
                type: string
              methodName:
                type: string
              fileName:
                type: string
              lineNumber:
                type: integer
                format: int32
              className:
                type: string
              nativeMethod:
                type: boolean
        recognizer:
          $ref: '#/components/schemas/RecognizerObjectObject'
        ctx:
          $ref: '#/components/schemas/RuleContext'
        offendingToken:
          $ref: '#/components/schemas/Token'
        offendingState:
          type: integer
          format: int32
        inputStream:
          $ref: '#/components/schemas/IntStream'
        expectedTokens:
          $ref: '#/components/schemas/IntervalSet'
        message:
          type: string
        suppressed:
          type: array
          items:
            type: object
            properties:
              stackTrace:
                type: array
                items:
                  type: object
                  properties:
                    classLoaderName:
                      type: string
                    moduleName:
                      type: string
                    moduleVersion:
                      type: string
                    methodName:
                      type: string
                    fileName:
                      type: string
                    lineNumber:
                      type: integer
                      format: int32
                    className:
                      type: string
                    nativeMethod:
                      type: boolean
              message:
                type: string
              localizedMessage:
                type: string
        localizedMessage:
          type: string
    RecognizerObjectObject:
      type: object
      properties:
        state:
          type: integer
          format: int32
        inputStream:
          $ref: '#/components/schemas/IntStream'
        ruleNames:
          type: array
          items:
            type: string
        tokenFactory:
          $ref: '#/components/schemas/TokenFactoryObject'
        parseInfo:
          $ref: '#/components/schemas/ParseInfo'
        ruleIndexMap:
          type: object
          additionalProperties:
            type: integer
            format: int32
        interpreter:
          type: object
        tokenTypeMap:
          type: object
          additionalProperties:
            type: integer
            format: int32
        errorListeners:
          type: array
          items:
            $ref: '#/components/schemas/ANTLRErrorListener'
        errorListenerDispatch:
          $ref: '#/components/schemas/ANTLRErrorListener'
        tokenNames:
          type: array
          items:
            type: string
        vocabulary:
          $ref: '#/components/schemas/Vocabulary'
        grammarFileName:
          type: string
        serializedATN:
          type: string
        atn:
          $ref: '#/components/schemas/ATN'
    RuleContext:
      type: object
      properties:
        parent:
          $ref: '#/components/schemas/RuleContext'
        invokingState:
          type: integer
          format: int32
        empty:
          type: boolean
        payload:
          $ref: '#/components/schemas/RuleContext'
        text:
          type: string
        childCount:
          type: integer
          format: int32
        ruleContext:
          $ref: '#/components/schemas/RuleContext'
        ruleIndex:
          type: integer
          format: int32
        sourceInterval:
          $ref: '#/components/schemas/Interval'
        altNumber:
          type: integer
          format: int32
    RuleStartState:
      type: object
      properties:
        atn:
          $ref: '#/components/schemas/ATN'
        stateNumber:
          type: integer
          format: int32
        ruleIndex:
          type: integer
          format: int32
        epsilonOnlyTransitions:
          type: boolean
        transitions:
          type: array
          items:
            $ref: '#/components/schemas/Transition'
        nextTokenWithinRule:
          $ref: '#/components/schemas/IntervalSet'
        stopState:
          $ref: '#/components/schemas/RuleStopState'
        isLeftRecursiveRule:
          type: boolean
        stateType:
          type: integer
          format: int32
        numberOfTransitions:
          type: integer
          format: int32
        nonGreedyExitState:
          type: boolean
    RuleStopState:
      type: object
      properties:
        atn:
          $ref: '#/components/schemas/ATN'
        stateNumber:
          type: integer
          format: int32
        ruleIndex:
          type: integer
          format: int32
        epsilonOnlyTransitions:
          type: boolean
        transitions:
          type: array
          items:
            $ref: '#/components/schemas/Transition'
        nextTokenWithinRule:
          $ref: '#/components/schemas/IntervalSet'
        stateType:
          type: integer
          format: int32
        numberOfTransitions:
          type: integer
          format: int32
        nonGreedyExitState:
          type: boolean
    SemanticContext:
      type: object
    Token:
      type: object
      properties:
        type:
          type: integer
          format: int32
        inputStream:
          $ref: '#/components/schemas/CharStream'
        channel:
          type: integer
          format: int32
        text:
          type: string
        tokenIndex:
          type: integer
          format: int32
        tokenSource:
          $ref: '#/components/schemas/TokenSource'
        startIndex:
          type: integer
          format: int32
        stopIndex:
          type: integer
          format: int32
        charPositionInLine:
          type: integer
          format: int32
        line:
          type: integer
          format: int32
    TokenFactoryObject:
      type: object
    TokenSource:
      type: object
      properties:
        inputStream:
          $ref: '#/components/schemas/CharStream'
        tokenFactory:
          $ref: '#/components/schemas/TokenFactoryObject'
        charPositionInLine:
          type: integer
          format: int32
        sourceName:
          type: string
        line:
          type: integer
          format: int32
    TokenStream:
      type: object
      properties:
        text:
          type: string
        tokenSource:
          $ref: '#/components/schemas/TokenSource'
        sourceName:
          type: string
    TokensStartState:
      type: object
      properties:
        atn:
          $ref: '#/components/schemas/ATN'
        stateNumber:
          type: integer
          format: int32
        ruleIndex:
          type: integer
          format: int32
        epsilonOnlyTransitions:
          type: boolean
        transitions:
          type: array
          items:
            $ref: '#/components/schemas/Transition'
        nextTokenWithinRule:
          $ref: '#/components/schemas/IntervalSet'
        decision:
          type: integer
          format: int32
        nonGreedy:
          type: boolean
        stateType:
          type: integer
          format: int32
        numberOfTransitions:
          type: integer
          format: int32
        nonGreedyExitState:
          type: boolean
    Transition:
      type: object
      properties:
        target:
          $ref: '#/components/schemas/ATNState'
        serializationType:
          type: integer
          format: int32
        epsilon:
          type: boolean
    Vocabulary:
      type: object
      properties:
        maxTokenType:
          type: integer
          format: int32
    PatchPaymentMovementReservation:
      type: object
      properties:
        plannedDateEnd:
          type: string
          description: End of date interval for planned movement to execute.
          format: date
      description: Reservation
    PatchPaymentMovementSource:
      type: object
      properties:
        movementId:
          type: string
          description: Movement id
          example: b276019f-b896-4dd6-96c8-7728272183c7
      description: Source movement
    UpdateBookedPaymentMovementRequest:
      required:
      - movementBookingType
      type: object
      allOf:
      - $ref: '#/components/schemas/UpdatePaymentMovementRequest'
      - type: object
        properties:
          bookingDate:
            type: string
            description: Booking date in format yyyy-MM-dd
            format: date
            example: 2024-05-22
    UpdatePaymentMovementRequest:
      required:
      - movementBookingType
      type: object
      properties:
        movementBookingType:
          type: string
          description: discriminator to determine BookedPaymentMovementRequest / PlannedPaymentMovementRequest
          example: booked
          enum:
          - booked
          - planned
          - reserved
        paymentId:
          type: string
          description: Id of payment
          format: uuid
        status:
          $ref: '#/components/schemas/JsonBMap'
        statementId:
          type: string
          description: Id of statement document encompassing this movement.
          format: uuid
        source:
          $ref: '#/components/schemas/PatchPaymentMovementSource'
      discriminator:
        propertyName: movementBookingType
        mapping:
          booked: '#/components/schemas/UpdateBookedPaymentMovementRequest'
          planned: '#/components/schemas/UpdatePlannedPaymentMovementRequest'
          reserved: '#/components/schemas/UpdateReservedPaymentMovementRequest'
    UpdatePlannedPaymentMovementRequest:
      required:
      - movementBookingType
      type: object
      allOf:
      - $ref: '#/components/schemas/UpdatePaymentMovementRequest'
      - type: object
        properties:
          collectionId:
            type: string
            description: Collection id
          reservation:
            $ref: '#/components/schemas/PatchPaymentMovementReservation'
    UpdateReservedPaymentMovementRequest:
      required:
      - movementBookingType
      type: object
      allOf:
      - $ref: '#/components/schemas/UpdatePaymentMovementRequest'
      - type: object
        properties:
          collectionId:
            type: string
            description: Collection id
          reservation:
            $ref: '#/components/schemas/PatchPaymentMovementReservation'
          amount:
            $ref: '#/components/schemas/AmountDto'
    ExtensionProcessableData:
      type: object
      properties:
        empty:
          type: boolean
      additionalProperties:
        type: object
    JsonPatch:
      type: object
    PaymentRequestResponse:
      required:
      - status
      type: object
      allOf:
      - $ref: '#/components/schemas/BasePaymentInformationResult'
      - type: object
        properties:
          referenceDetails:
            $ref: '#/components/schemas/PaymentInformationReferenceDetailsResult'
          status:
            $ref: '#/components/schemas/JsonBMap'
          endToEndId:
            type: string
            description: End to end id, according to PSD2 directive.
          description:
            type: string
            description: General description
          paymentMethod:
            $ref: '#/components/schemas/PaymentMethod'
          source:
            $ref: '#/components/schemas/PaymentRequestSource'
          requestedAmount:
            $ref: '#/components/schemas/AmountDto'
          collectedAmount:
            $ref: '#/components/schemas/AmountDto'
          dueDate:
            type: string
            description: Date until when the payment needs to happen.
            format: date
          expirationDate:
            type: string
            description: Date when this payment request expires.
            format: date
          metadata:
            $ref: '#/components/schemas/JsonBMap'
    PaymentRequestSource:
      required:
      - provider
      type: object
      properties:
        provider:
          $ref: '#/components/schemas/PaymentRequestSourceProvider'
        requestId:
          type: string
          description: Payment request identifier in context of specified source provider.
      description: Source
    PaymentRequestSourceProvider:
      type: string
      description: The payments service provider or the source of the payment request.
      example: OCS
      enum:
      - OCS
    PaymentRequestRequest:
      required:
      - status
      type: object
      properties:
        paymentId:
          type: string
          description: Id of payment
          format: uuid
        description:
          type: string
          description: General description
        paymentMethod:
          $ref: '#/components/schemas/PaymentMethod'
        status:
          $ref: '#/components/schemas/JsonBMap'
        source:
          $ref: '#/components/schemas/PaymentRequestSource'
        requestedAmount:
          $ref: '#/components/schemas/AmountDto'
        collectedAmount:
          $ref: '#/components/schemas/AmountDto'
        dueDate:
          type: string
          description: Date until when the payment needs to happen.
          format: date
        expirationDate:
          type: string
          description: Date when this payment request expires.
          format: date
        referenceDetails:
          $ref: '#/components/schemas/PaymentInformationReferenceDetails'
        metadata:
          $ref: '#/components/schemas/JsonBMap'
    ListPaymentRequestsResponse:
      type: object
      properties:
        paymentRequests:
          type: array
          description: List of payment requests
          items:
            $ref: '#/components/schemas/PaymentRequestResponse'
        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
    ListPaymentRequestsQueryParamsSingle:
      required:
      - sourceProvider
      type: object
      properties:
        sourceId:
          type: string
          description: Source payment id in context of source provider
        sourceProvider:
          $ref: '#/components/schemas/PaymentRequestSourceProvider'
        requestedAmount[eq]:
          type: number
          description: Requested amount equals
          example: 12.25
        requestedAmount[ne]:
          type: number
          description: Requested amount not equals
          example: 12.25
        requestedAmount[gt]:
          type: number
          description: Requested amount greater than
          example: 11.25
        requestedAmount[gte]:
          type: number
          description: Requested amount greater than or equal
          example: 11.25
        requestedAmount[lt]:
          type: number
          description: Requested amount less than
          example: 11.25
        requestedAmount[lte]:
          type: number
          description: Requested amount less than or equal
          example: 13.25
        collectedAmount[eq]:
          type: number
          description: Collected amount equals
          example: 12.25
        collectedAmount[ne]:
          type: number
          description: Collected amount not equals
          example: 12.25
        collectedAmount[gt]:
          type: number
          description: Collected amount greater than
          example: 11.25
        collectedAmount[gte]:
          type: number
          description: Collected amount greater than or equal
          example: 11.25
        collectedAmount[lt]:
          type: number
          description: Collected amount less than
          example: 11.25
        collectedAmount[lte]:
          type: number
          description: Collected amount less than or equal
          example: 13.25
        dueDate[eq]:
          type: string
          description: Due date equals, in format yyyy-MM-dd
          format: date
          example: 2024-04-15
        dueDate[ne]:
          type: string
          description: Due date not equals, in format yyyy-MM-dd
          format: date
          example: 2024-04-15
        dueDate[gt]:
          type: string
          description: Due date greater than, in format yyyy-MM-dd
          format: date
          example: 2024-04-15
        dueDate[gte]:
          type: string
          description: Due date greater than or equal, in format yyyy-MM-dd
          format: date
          example: 2024-04-15
        dueDate[lt]:
          type: string
          description: Due date less than, in the format yyyy-MM-dd
          format: date
          example: 2024-04-15
        dueDate[lte]:
          type: string
          description: Due date less than or equal, in the format yyyy-MM-dd
          format: date
          example: 2024-04-15
        expirationDate[eq]:
          type: string
          description: Expiration date equals, in format yyyy-MM-dd
          format: date
          example: 2024-04-15
        expirationDate[ne]:
          type: string
          description: Expiration date not equals, in format yyyy-MM-dd
          format: date
          example: 2024-04-15
        expirationDate[gt]:
          type: string
          description: Expiration date greater than, in format yyyy-MM-dd
          format: date
          example: 2024-04-15
        expirationDate[gte]:
          type: string
          description: Expiration date greater than or equal, in format yyyy-MM-dd
          format: date
          example: 2024-04-15
        expirationDate[lt]:
          type: string
          description: Expiration date less than, in the format yyyy-MM-dd
          format: date
          example: 2024-04-15
        expirationDate[lte]:
          type: string
          description: Expiration date less than or equal, in the format yyyy-MM-dd
          format: date
          example: 2024-04-15
        reference:
          type: string
          description: Reference
          example: RF18000000000539007547034
    UpdatePaymentRequestRequest:
      required:
      - status
      type: object
      properties:
        source:
          $ref: '#/components/schemas/PaymentRequestSource'
        status:
          $ref: '#/components/schemas/JsonBMap'
        description:
          type: string
          description: General description
        requestedAmount:
          $ref: '#/components/schemas/AmountDto'
        collectedAmount:
          $ref: '#/components/schemas/AmountDto'
        dueDate:
          type: string
          description: Date until when the payment needs to happen.
          format: date
        expirationDate:
          type: string
          description: Date when this payment request expires.
          format: date
        metadata:
          $ref: '#/components/schemas/JsonBMap'
    BasePaymentInformationResult:
      type: object
      properties:
        paymentInformationType:
          type: string
          description: Discriminator property to identify the payment information
            type
        id:
          type: string
          description: id of payment information
          format: uuid
        spaceId:
          type: string
          description: Space id
          format: uuid
        paymentId:
          type: string
          description: id of payment
          format: uuid
        createdAt:
          type: string
          description: creation datetime
          format: date-time
        updatedAt:
          type: string
          description: updated datetime
          format: date-time
      discriminator:
        propertyName: paymentInformationType
        mapping:
          paymentTransaction: '#/components/schemas/PaymentTransactionResult'
          counterparty: '#/components/schemas/CounterpartyPaymentInformationResult'
          manual: '#/components/schemas/ManualPaymentInformationResult'
          paymentMovement: '#/components/schemas/PaymentMovementResult'
          paymentRequest: '#/components/schemas/PaymentRequestResponse'
          thirdParty: '#/components/schemas/ThirdPartyPaymentInformationResponse'
          crossCurrencyTransaction: '#/components/schemas/CrossCurrencyTransactionResponse'
    GetBulkPaymentDetails:
      required:
      - status
      - type
      type: object
      properties:
        id:
          type: string
          description: id of payment
          format: uuid
        spaceId:
          type: string
          description: Space id
          format: uuid
        type:
          $ref: '#/components/schemas/PaymentType'
        operationType:
          $ref: '#/components/schemas/OperationType'
        parentPaymentId:
          type: string
          description: Id of parent payment, in case current payment is part of a
            bulk payment operation. Type of current payment should be SINGLE, if it
            has a parent. For BULK payments parentPaymentId should be null.
        amount:
          $ref: '#/components/schemas/AmountDto'
        reference:
          type: string
          description: Reference details filled in by the payer when making the payment.
            It can have a fixed format depending on the country.
        status:
          $ref: '#/components/schemas/JsonBMap'
        endToEndId:
          type: string
          description: End to end id, according to PSD2 directive.
        levelOfCertainty:
          $ref: '#/components/schemas/LevelOfCertainty'
        source:
          $ref: '#/components/schemas/PaymentSource'
        paymentAccount:
          $ref: '#/components/schemas/NamedPaymentAccountDto'
        counterpartyPaymentAccount:
          $ref: '#/components/schemas/NamedPaymentAccountDto'
        createdAt:
          type: string
          description: creation datetime
          format: date-time
        updatedAt:
          type: string
          description: updated datetime
          format: date-time
        childrenPayments:
          type: array
          description: Children SINGLE payments in case current payment is of type
            BULK. For SINGLE payments, this will be null.
          items:
            $ref: '#/components/schemas/PaymentDetails'
    GetBulkPaymentTransactions:
      type: object
      properties:
        id:
          type: string
          description: id of payment
          format: uuid
        paymentTransactions:
          type: array
          items:
            $ref: '#/components/schemas/PaymentTransactionResult'
    GetBulkPaymentsDetailsResponse:
      type: object
      allOf:
      - $ref: '#/components/schemas/GetBulkPaymentsResponse'
      - type: object
        properties:
          payments:
            type: array
            description: List of payments details.
            items:
              $ref: '#/components/schemas/GetBulkPaymentDetails'
    GetBulkPaymentsResponse:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/GetBulkPaymentsResponseOptionsType'
      discriminator:
        propertyName: type
        mapping:
          PAYMENT_DETAILS: '#/components/schemas/GetBulkPaymentsDetailsResponse'
          PAYMENT_TRANSACTIONS: '#/components/schemas/GetBulkPaymentsTransactionsResponse'
    GetBulkPaymentsResponseOptionsType:
      type: string
      description: Get bulk payments response type
      example: PAYMENT_TRANSACTIONS
      enum:
      - PAYMENT_DETAILS
      - PAYMENT_TRANSACTIONS
    GetBulkPaymentsTransactionsResponse:
      type: object
      allOf:
      - $ref: '#/components/schemas/GetBulkPaymentsResponse'
      - type: object
        properties:
          payments:
            type: array
            description: List of payments with transactions. Only those payments that
              have transactions will be included.
            items:
              $ref: '#/components/schemas/GetBulkPaymentTransactions'
    LevelOfCertainty:
      type: string
      description: Level of certainty
      nullable: true
      example: INFORMATIONAL
      enum:
      - REQUESTED
      - INFORMATIONAL
      - INITIATED
      - AUTHORISED
      - TRANSACTION_SUCCESSFUL
      - PLANNED
      - RESERVED
      - BOOKED_REVERSIBLE
      - BOOKED_GUARANTEED
      - ABANDONED
      - NOT_APPLICABLE
    OperationType:
      type: string
      description: Operation Type
      example: DEBIT
      enum:
      - CREDIT
      - DEBIT
      - DOC_TO_DOC
    PaymentDetails:
      required:
      - status
      type: object
      properties:
        id:
          type: string
          description: id of payment
          format: uuid
        reference:
          type: string
          description: Reference details filled in by the payer when making the payment.
            It can have a fixed format depending on the country.
        status:
          $ref: '#/components/schemas/JsonBMap'
        endToEndId:
          type: string
          description: End to end id, according to PSD2 directive.
        levelOfCertainty:
          $ref: '#/components/schemas/LevelOfCertainty'
      description: Children SINGLE payments in case current payment is of type BULK.
        For SINGLE payments, this will be null.
    PaymentSource:
      type: object
      properties:
        provider:
          $ref: '#/components/schemas/PaymentSourceProvider'
        paymentId:
          type: string
          description: Payment Id in context of source provider
      description: Source
      nullable: true
    PaymentSourceProvider:
      type: string
      description: Payment source provider
      example: PXG
      enum:
      - PXG
      - OCS
      - AGGREGATION
      - INTERNAL
    PaymentTransactionResult:
      required:
      - status
      type: object
      allOf:
      - $ref: '#/components/schemas/BasePaymentInformationResult'
      - type: object
        properties:
          referenceDetails:
            $ref: '#/components/schemas/PaymentInformationReferenceDetailsResult'
          status:
            $ref: '#/components/schemas/JsonBMap'
          endToEndId:
            type: string
            description: End to end id, according to PSD2 directive.
          amount:
            $ref: '#/components/schemas/AmountDto'
          source:
            $ref: '#/components/schemas/PaymentTransactionSource'
          paymentMethod:
            type: string
            description: Payment method - should be enum, but what values?
          debtor:
            $ref: '#/components/schemas/PaymentAccountListItem'
          creditor:
            $ref: '#/components/schemas/PaymentAccountListItem'
          requestedExecutionDate:
            type: string
            description: Requested execution date
            format: date
            example: 2024-06-23
    PaymentTransactionSource:
      required:
      - provider
      type: object
      properties:
        provider:
          $ref: '#/components/schemas/PaymentTransactionSourceProvider'
        transactionId:
          type: string
          description: Transaction identifier in context of specified source provider.
      description: Source
    PaymentTransactionSourceProvider:
      type: string
      description: The payments service provider or the source of the payment transaction.
      example: PXG
      enum:
      - PXG
      - OCS
      - INTERNAL
    PaymentType:
      type: string
      description: Bulk or single payment, depending on the number of paid items.
      example: SINGLE
      enum:
      - BULK
      - SINGLE
    ThirdPartyPaymentInformationResponse:
      type: object
      properties:
        paymentInformationType:
          type: string
          description: Discriminator property to identify the payment information
            type
        id:
          type: string
          description: id of payment information
          format: uuid
        spaceId:
          type: string
          description: Space id
          format: uuid
        paymentId:
          type: string
          description: id of payment
          format: uuid
        createdAt:
          type: string
          description: creation datetime
          format: date-time
        updatedAt:
          type: string
          description: updated datetime
          format: date-time
        amount:
          $ref: '#/components/schemas/AmountDto'
        originatingPaymentAccount:
          $ref: '#/components/schemas/NamedPaymentAccountDto'
        details:
          type: object
          additionalProperties:
            type: object
        fees:
          type: array
          items:
            type: object
            additionalProperties:
              type: object
        statementDocumentId:
          type: string
          format: uuid
    GetBulkPaymentsRequest:
      type: object
      properties:
        responseOptions:
          $ref: '#/components/schemas/GetBulkPaymentsResponseOptions'
        payments:
          uniqueItems: true
          type: array
          description: List of payment ids to retrieve
          items:
            type: string
            format: uuid
    GetBulkPaymentsResponseOptions:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/GetBulkPaymentsResponseOptionsType'
      description: Response options
    BulkPaymentFullResult:
      type: object
      allOf:
      - $ref: '#/components/schemas/BulkPaymentResult'
      - type: object
        properties:
          payments:
            type: array
            items:
              $ref: '#/components/schemas/PaymentResult'
    BulkPaymentIdsResult:
      type: object
      allOf:
      - $ref: '#/components/schemas/BulkPaymentResult'
      - type: object
        properties:
          payments:
            type: array
            items:
              type: string
              format: uuid
    BulkPaymentResult:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/BulkResponseType'
      discriminator:
        propertyName: type
        mapping:
          ids: '#/components/schemas/BulkPaymentIdsResult'
          full: '#/components/schemas/BulkPaymentFullResult'
    PaymentProcessingData:
      $ref: '#/components/schemas/JsonBMap'
    PaymentResult:
      required:
      - status
      - type
      type: object
      properties:
        id:
          type: string
          description: id of payment
          format: uuid
        spaceId:
          type: string
          description: Space id
          format: uuid
        type:
          $ref: '#/components/schemas/PaymentType'
        operationType:
          $ref: '#/components/schemas/OperationType'
        parentPaymentId:
          type: string
          description: Id of parent payment, in case current payment is part of a
            bulk payment operation. Type of current payment should be SINGLE, if it
            has a parent. For BULK payments parentPaymentId should be null.
        amount:
          $ref: '#/components/schemas/AmountDto'
        reference:
          type: string
          description: Reference details filled in by the payer when making the payment.
            It can have a fixed format depending on the country.
        status:
          $ref: '#/components/schemas/JsonBMap'
        endToEndId:
          type: string
          description: End to end id, according to PSD2 directive.
        levelOfCertainty:
          $ref: '#/components/schemas/LevelOfCertainty'
        source:
          $ref: '#/components/schemas/PaymentSource'
        paymentAccount:
          $ref: '#/components/schemas/NamedPaymentAccountDto'
        counterpartyPaymentAccount:
          $ref: '#/components/schemas/NamedPaymentAccountDto'
        createdAt:
          type: string
          description: creation datetime
          format: date-time
        updatedAt:
          type: string
          description: updated datetime
          format: date-time
        childrenPayments:
          type: array
          description: Children SINGLE payments in case current payment is of type
            BULK. For SINGLE payments, this will be null.
          items:
            $ref: '#/components/schemas/PaymentDetails'
        balanceOffsets:
          uniqueItems: true
          type: array
          description: Balance offsets
          items:
            $ref: '#/components/schemas/BalanceOffsetResult'
        processingData:
          $ref: '#/components/schemas/JsonBMap'
    BulkPaymentRequest:
      type: object
      properties:
        responseOptions:
          $ref: '#/components/schemas/BulkResponseOptions'
        payments:
          type: array
          items:
            $ref: '#/components/schemas/PaymentRequest'
    PaymentRequest:
      required:
      - status
      - type
      type: object
      properties:
        type:
          $ref: '#/components/schemas/PaymentType'
        operationType:
          $ref: '#/components/schemas/OperationType'
        parentPaymentId:
          type: string
          description: Id of parent payment, in case current payment is part of a
            bulk payment operation. Type of current payment should be SINGLE.
          format: uuid
        amount:
          $ref: '#/components/schemas/AmountDto'
        reference:
          type: string
          description: Reference details filled in by the payer when making the payment.
            It can have a fixed format depending on the country.
        status:
          $ref: '#/components/schemas/JsonBMap'
        endToEndId:
          type: string
          description: End to end id, according to PSD2 directive.
        levelOfCertainty:
          $ref: '#/components/schemas/LevelOfCertainty'
        source:
          $ref: '#/components/schemas/PaymentSource'
        paymentAccount:
          $ref: '#/components/schemas/NamedPaymentAccountDto'
        counterpartyPaymentAccount:
          $ref: '#/components/schemas/NamedPaymentAccountDto'
    CommonBalanceOffset:
      required:
      - aggregationStatus
      type: object
      properties:
        aggregationStatus:
          $ref: '#/components/schemas/AggregationStatus'
      description: Common document balance offset data for both creditor and debtor
        documents.
    DocToDocPaymentRequest:
      required:
      - status
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/AmountDto'
        reference:
          type: string
          description: Reference details filled in by the payer when making the payment.
            It can have a fixed format depending on the country.
        status:
          $ref: '#/components/schemas/JsonBMap'
        levelOfCertainty:
          $ref: '#/components/schemas/LevelOfCertainty'
        source:
          $ref: '#/components/schemas/PaymentSource'
        balanceOffset:
          $ref: '#/components/schemas/CommonBalanceOffset'
        creditorDocument:
          $ref: '#/components/schemas/Document'
        debtorDocument:
          $ref: '#/components/schemas/Document'
    Document:
      type: object
      properties:
        id:
          type: string
          description: Identifier of document
          format: uuid
        balanceOffset:
          $ref: '#/components/schemas/DocumentBalanceOffset'
      description: Debtor document details.
    DocumentBalanceOffset:
      required:
      - offsetType
      type: object
      properties:
        offsetType:
          $ref: '#/components/schemas/BalanceOffsetType'
        metadata:
          $ref: '#/components/schemas/JsonBMap'
      description: Details of document balance offset
    AllPaymentsResult:
      type: object
      properties:
        payments:
          type: array
          description: List of payments
          items:
            $ref: '#/components/schemas/PaymentResult'
        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
    ListPaymentsQueryParamsSingle:
      required:
      - type
      type: object
      properties:
        endToEndId:
          type: string
          description: End to end id, according to PSD2 directive
          example: 0a2e9932-a660-4354-82a9-b5c0897f5887
        operationType:
          $ref: '#/components/schemas/OperationType'
        amountValue[eq]:
          type: number
          description: Amount value equals
          example: 12.25
        amountValue[ne]:
          type: number
          description: Amount value not equals
          example: 12.25
        amountValue[gt]:
          type: number
          description: Amount value greater than
          example: 11.25
        amountValue[gte]:
          type: number
          description: Amount value greater than or equal
          example: 11.25
        amountValue[lt]:
          type: number
          description: Amount value less than
          example: 11.25
        amountValue[lte]:
          type: number
          description: Amount value less than or equal
          example: 13.25
        currency:
          type: string
          description: International code ISO 4217 of the currency used
          example: EUR
        reference:
          type: string
          description: Reference
          example: Invoice abc
        type:
          $ref: '#/components/schemas/PaymentType'
        levelOfCertainty:
          $ref: '#/components/schemas/LevelOfCertainty'
        balanceOffsets.aggregationStatus:
          $ref: '#/components/schemas/AggregationStatus'
        processingData:
          type: string
          description: processingData query param
          example: 
            processingData=spaceExtensions/com.unifiedpost.btx.payments/aggregation/unmatched=true
        counterpartyPaymentAccount.identifier[istart]:
          type: string
          description: Filter by counterparty payment account identifier having a
            specific prefix
          example: BE9
        counterpartyPaymentAccount.identifier[icont]:
          type: string
          description: Filter by counterparty payment account identifier containing
            a specific string
          example: '954'
        counterpartyPaymentAccount.ownerName:
          type: string
          description: Filter by counterparty payment account’s owner name
          example: Amazon
        createdAt[eq]:
          type: string
          description: Created at equals specific timestamp, iso datetime format
          format: date-time
        createdAt[ne]:
          type: string
          description: Created at does not equal specific timestamp, iso datetime
            format
          format: date-time
        createdAt[lt]:
          type: string
          description: Created is less than specific timestamp, iso datetime format
          format: date-time
        createdAt[lte]:
          type: string
          description: Created is less or equal than specific timestamp, iso datetime
            format
          format: date-time
        createdAt[gt]:
          type: string
          description: Created is greater than specific timestamp, iso datetime format
          format: date-time
        createdAt[gte]:
          type: string
          description: Created is greater than specific timestamp, iso datetime format
          format: date-time
    PaymentInclude:
      type: string
      description: The possible linked resources to include
      example: balanceOffsets
      enum:
      - balanceOffsets
      - processingData
    ListPaymentInformationResponse:
      required:
      - paymentInformation
      type: object
      properties:
        paymentInformation:
          type: array
          description: List of all payment information types
          items:
            $ref: '#/components/schemas/BasePaymentInformationResult'
    BulkUpdatePaymentRequest:
      type: object
      properties:
        responseOptions:
          $ref: '#/components/schemas/BulkResponseOptions'
        payments:
          type: array
          description: List of payments to update
          items:
            $ref: '#/components/schemas/BulkUpdatePaymentRequestItem'
    BulkUpdatePaymentRequestItem:
      type: object
      properties:
        id:
          type: string
        operations:
          $ref: '#/components/schemas/JsonPatch'
    UpdatePaymentRequest:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/JsonBMapNullable'
        levelOfCertainty:
          $ref: '#/components/schemas/LevelOfCertainty'
        source:
          $ref: '#/components/schemas/PaymentSource'
        amount:
          $ref: '#/components/schemas/AmountDto'
    BulkPaymentTransactionFullResult:
      type: object
      allOf:
      - $ref: '#/components/schemas/BulkPaymentTransactionResult'
      - type: object
        properties:
          paymentTransactions:
            type: array
            items:
              $ref: '#/components/schemas/PaymentTransactionResult'
    BulkPaymentTransactionIdsResult:
      type: object
      allOf:
      - $ref: '#/components/schemas/BulkPaymentTransactionResult'
      - type: object
        properties:
          paymentTransactions:
            type: array
            items:
              type: string
              format: uuid
    BulkPaymentTransactionResult:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/BulkResponseType'
      discriminator:
        propertyName: type
        mapping:
          ids: '#/components/schemas/BulkPaymentTransactionIdsResult'
          full: '#/components/schemas/BulkPaymentTransactionFullResult'
    BulkPaymentTransactionRequest:
      type: object
      properties:
        responseOptions:
          $ref: '#/components/schemas/BulkResponseOptions'
        paymentTransactions:
          type: array
          items:
            $ref: '#/components/schemas/PaymentTransactionRequest'
    PaymentTransactionRequest:
      required:
      - status
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/AmountDto'
        status:
          $ref: '#/components/schemas/JsonBMap'
        endToEndId:
          type: string
          description: End to end id, according to PSD2 directive.
        referenceDetails:
          $ref: '#/components/schemas/PaymentInformationReferenceDetails'
        paymentId:
          type: string
          description: Id of payment
          format: uuid
        source:
          $ref: '#/components/schemas/PaymentTransactionSource'
        paymentMethod:
          type: string
          description: Payment method - should be enum, but what values?
        debtor:
          $ref: '#/components/schemas/NamedPaymentAccountWithAddress'
        creditor:
          $ref: '#/components/schemas/NamedPaymentAccountWithAddress'
        requestedExecutionDate:
          type: string
          description: Requested execution date
          format: date
          example: 2024-06-23
    AllPaymentTransactionResult:
      type: object
      properties:
        paymentTransactions:
          type: array
          description: List of payment transactions
          items:
            $ref: '#/components/schemas/PaymentTransactionResult'
        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
    BulkUpdatePaymentTransactionRequest:
      type: object
      properties:
        responseOptions:
          $ref: '#/components/schemas/BulkResponseOptions'
        paymentTransactions:
          type: array
          description: List of payment transactions to update
          items:
            $ref: '#/components/schemas/BulkUpdatePaymentTransactionRequestItem'
    BulkUpdatePaymentTransactionRequestItem:
      type: object
      properties:
        id:
          type: string
        operations:
          $ref: '#/components/schemas/JsonPatch'
    UpdatePaymentTransactionRequest:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/JsonBMap'
        source:
          $ref: '#/components/schemas/PaymentTransactionSource'
    ThirdPartyPaymentInformationRequest:
      required:
      - amount
      - paymentId
      type: object
      properties:
        paymentId:
          type: string
          description: Id of payment
          format: uuid
        amount:
          $ref: '#/components/schemas/AmountDto'
        originatingPaymentAccount:
          $ref: '#/components/schemas/NamedPaymentAccountDto'
        details:
          $ref: '#/components/schemas/JsonBMap'
        fees:
          type: array
          description: List of fees
          items:
            $ref: '#/components/schemas/JsonBMap'
        statementDocumentId:
          type: string
          description: Id of statement document
          format: uuid
    ListThirdPartyPaymentInformationResponse:
      type: object
      properties:
        thirdPartyPaymentInformation:
          type: array
          description: List of third party payment information
          items:
            $ref: '#/components/schemas/ThirdPartyPaymentInformationResponse'
        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
    ThirdPartyPaymentInformationSingleParams:
      type: object
      properties:
        originatingPaymentAccount.identifier:
          type: string
          description: Account identifier of originating payment account.
          example: 547833XXXXXX0572
        originatingPaymentAccount.scheme:
          type: string
          description: Account scheme of originating payment account.
        originatingPaymentAccount.bank.scheme:
          type: string
          description: Bank scheme of originating payment account.
          example: THIRD_PARTY
          enum:
          - BIC
          - CODE
          - ABA
          - CLABE
          - THIRD_PARTY
        originatingPaymentAccount.bank.identifier:
          type: string
          description: Bank identifier of originating payment account.
    UpdateThirdPartyPaymentInformationRequest:
      type: object
      properties:
        paymentId:
          type: string
          description: Id of payment
          format: uuid
        paymentAccountId:
          type: string
          description: Id of payment account
          format: uuid
        statementDocumentId:
          type: string
          description: Id of statement document
          format: uuid
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.uat.btx.fr.banqup.com/oauth2/client_credential/gettoken
          scopes:
            info: Scopes are endpoint-specific, see each endpoint for required scope.
        authorizationCode:
          authorizationUrl: https://api.uat.btx.fr.banqup.com/oauth2/auth
          tokenUrl: https://api.uat.btx.fr.banqup.com/oauth2/token
          scopes:
            info: Scopes are endpoint-specific, see each endpoint for required scope.
tags:
- name: messages
  description: the messages API
- name: Spaces
  description: "Spaces are virtual environments (work spaces) where all relevant resources
    of an entity are managed.  Spaces can also facilitate document exchange and communication
    among entities, depending on the space type.\nThe role of spaces is to gather
    all relevant data of an entity into one accessible setting.  Such data can include:
    invoices, connections, cards, clients, payments, users, installed apps etc.  The
    capabilities offered by a space depends on the space type and the active subscription."
  x-BTX:
    unDocumented: 'false'
    internal: 'false'
- name: Files
  description: A file refers to the digital container that stores the data of one
    or more documents.  Files are the medium through which electronic documents are
    stored, transmitted, and accessed.
  x-BTX:
    unDocumented: 'false'
    internal: 'false'
- name: Documents
  description: "A document in e-invoicing refers to a formal, structured piece of
    information that contains details  related to invoicing: e.g financial data, payment
    details, tax information etc. or any other information  relevant to the company's
    operations, services, or interactions with clients and partners.\nEvery Banqup
    document is associated with a unique UUID that is stored in the Banqup database
    as documentId.  The UUID is generated when a new file is received/uploaded into
    Banqup and is necessary when performing  document actions via the Banqup APIs."
  x-BTX:
    unDocumented: 'false'
    internal: 'false'
- name: Connections
  description: 'Connections are business and persons in the private address book of
    a space and they represent the actors involved  in document exchange, such as:
    customers, suppliers, accountants, partners, groups.'
  x-BTX:
    unDocumented: 'false'
    internal: 'false'
- name: Payments
  description: A payment is a generic term for the business event of transferring
    funds from one party to another.
  x-BTX:
    unDocumented: 'false'
    internal: 'false'
- name: Payment Accounts
  description: "Payment accounts are bank or financial accounts used for managing
    payments, deposits, withdrawals, and transfers. \nThe Payment Accounts of a space
    are all bank or financial account the business represented by the space interacts
    with via e-invoicing or payments."
  x-BTX:
    unDocumented: 'false'
    internal: 'false'
- name: Payment Information
  description: "Payment Information representing some sort of evidence related to
    a Payment.\nThis evidence could be in different forms :\n  - PaymentTransaction
    : information related to a payment of which the transaction (initiation) \n  \
    \                       was started on platform.\n  - BookedPaymentMovement :
    information imported from your own account indicating a payment movement was booked.
    \n  - PlannedPaymentMovement : information imported from your own account indicating
    an amount was reserved \n                         for a future payment.\n  - ManualPaymentInformation
    : information about a payment that was manually entered by a user of the platform.\n\
    \  - CounterpartyPaymentInformation : information added to your space about a
    payment which was based on the \n                         PaymentInformation the
    counter party of the payment indicated on BTX platform."
  x-BTX:
    unDocumented: 'false'
    internal: 'false'
- name: Internal Payments
  description: "This is a set of internal API call only intended to be used by BTX
    Payment Service or Aggregation Service. They are restricted to ensure that updates
    on payments, payment information and links to documents (BalanceOffset)  are done
    in consistent way.  \nThe higher level public APIs for adding payment, payment
    information and linking payments to documents  will be provided by the BTX Payment
    Service or Aggregation Service."
  x-BTX:
    unDocumented: 'false'
    internal: 'true'
- name: Internal
  description: This is a set of pure internal API.  It contains for example callback
    endpoints that get registered to receive messages.
  x-BTX:
    unDocumented: 'true'
    internal: 'true'
