openapi: 3.0.1
info:
  title: Account management
  version: '1.0'
servers:
  - url: https://api.solaris-sandbox.de
    description: Sandbox
  - url: https://api.solarisbank.de
    description: Production
tags:
  - name: Accounts
  - name: Person accounts
  - name: Business accounts
  - name: Reference accounts
  - name: Account closure requests
  - name: Fee collection
  - name: Reservations
  - name: Seizures
  - name: Bank statements
  - name: Statements of account
  - name: Fee summary statements
  - name: Person messages
  - name: Business messages
  - name: Trusted IBANs
  - name: Virtual IBANs
  - name: IBAN validation
paths:
  /v1/accounts:
    get:
      tags:
        - Accounts
      summary: Index accounts
      description: Returns all accounts (both personal & business) managed under a partner.
      parameters:
        - name: page[number]
          in: query
          description: Returns a specific page of results.
          required: false
          schema:
            type: string
        - name: page[size];
          in: query
          description: Determines the size of each page of results.The maximum value is 200
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 200
        - name: filter[type]
          in: query
          description: Filters the returned accounts by type.
          required: false
          schema:
            type: string
        - name: filter[iban]
          in: query
          description: Filters the returned accounts by IBAN.
          required: false
          schema:
            type: string
        - name: filter[id]
          in: query
          description: Filters the returned accounts by ID
          required: false
          schema:
            type: string
      responses:
        '200':
          description: The operation was successful.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/index-account'
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
        default:
          description: Unexpected error
      security:
        - oauth2:
            - solaris_service_account#all
  /v1/accounts/{id}:
    get:
      tags:
        - Accounts
      summary: Get an account
      description: Returns information about a specific account (personal or business).
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The operation was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account'
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '404':
          description: The account could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
        default:
          description: Unexpected error
      security:
        - oauth2:
            - solaris_service_account#find
  /v1/accounts/{account_id}/balance:
    get:
      tags:
        - Accounts
      summary: Get balance for an account
      description: >-
        Returns the balance of an account in the form of two objects—`balance`
        and `available_balance`.
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The operation was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account_balance'
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '404':
          description: The account could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
      security:
        - oauth2:
            - solaris_service_account#balance
  /v1/accounts/{account_id}/average_daily_balance:
    get:
      description: >
        Fetches the average of daily end-of-day balance for the specified
        account and date range. A maximum of one year can be provided as date
        range. If the account has no balance for a given day because for example
        it was opened after the `start_date` OR closed before `end_date`, those
        days will have end-of-day balance as `0`. If `end_date` is in the
        future, those days' balance is equal to the latest balance. It is
        recommended to present the average balance to the Customer as Yearly for
        past years and Year to Date for current year.
      summary: Get average daily balance for an account
      security:
        - oauth2:
            - solaris_service_account#average_daily_balance
      tags:
        - Accounts
      parameters:
        - $ref: '#/components/parameters/account_id'
        - $ref: '#/components/parameters/start_date'
        - $ref: '#/components/parameters/end_date'
      responses:
        '200':
          description: Average daily balance successfully calculated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/average_daily_balance'
        '400':
          description: Request error due invalid parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '404':
          description: Specified account was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404'
        '500':
          description: A server error was encountered during the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
  /v1/persons/{person_id}/accounts:
    get:
      tags:
        - Person accounts
      summary: Index accounts for a person
      description: >-
        Returns an array containing all accounts owned by the person specified
        in the request URL.
      parameters:
        - name: person_id
          in: path
          required: true
          schema:
            type: string
        - name: page[number]
          in: query
          description: The number of results pages to return.
          required: false
          schema:
            type: string
        - name: page[size]
          in: query
          description: The size of each results page to return.
          required: false
          schema:
            type: string
        - name: filter[iban]
          in: query
          description: Filters the results by IBAN.
          required: false
          schema:
            type: string
        - name: filter[status]
          in: query
          description: Filters the results by account status.
          schema:
            type: string
      responses:
        '200':
          description: The operation was successful.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: >-
                    #/components/schemas/Decorators-AccountWithoutBalanceAndLimit
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '404':
          description: The resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
        default:
          description: Unexpected error
      security:
        - oauth2:
            - solaris_service_person_account#all
  /v1/persons/{person_id}/accounts/{account_id}:
    get:
      tags:
        - Person accounts
      summary: Get a single personal account
      description: Returns information about a single personal banking account.
      parameters:
        - name: person_id
          in: path
          required: true
          schema:
            type: string
        - name: account_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The operation was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account'
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '404':
          description: The account could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
      security:
        - oauth2:
            - solaris_service_person_account#find
    patch:
      tags:
        - Person accounts
      summary: Update a personal account
      description: Updates the personal account specified in the request URL.
      parameters:
        - name: person_id
          in: path
          required: true
          schema:
            type: string
        - name: account_id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/person_account_body'
      responses:
        '204':
          description: Successfully updated the person's account.
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
        '404':
          description: The resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
              example:
                errors:
                  - id: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
                    status: 404
                    code: model_not_found
                    title: Model Not Found
                    detail: Couldn't find Partner's account for id 'Id'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/internal_error'
      security:
        - oauth2:
            - solaris_service_person_account#update
  /v1/businesses/{business_id}/accounts:
    get:
      tags:
        - Business accounts
      summary: Index accounts for a business
      description: >-
        Returns an array containing all accounts owned by the business specified
        in the request URL.
      parameters:
        - name: business_id
          in: path
          required: true
          schema:
            type: string
        - name: page[number]
          in: query
          description: The number of results pages to return.
          required: false
          schema:
            type: string
        - name: page[size]
          in: query
          description: The size of each results page.
          required: false
          schema:
            type: string
        - name: filter[iban]
          in: query
          description: Filter on Iban
          required: false
          schema:
            type: string
      responses:
        '200':
          description: The operation was successful.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: >-
                    #/components/schemas/solaris_server_decorators_account_without_balance
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '404':
          description: The resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
        default:
          description: Unexpected error
      security:
        - oauth2:
            - solaris_service_business_account#all
  /v1/businesses/{business_id}/accounts/{id}:
    get:
      tags:
        - Business accounts
      summary: Retrieve a business account
      description: Returns the business account specified in the request URL.
      parameters:
        - name: business_id
          in: path
          required: true
          schema:
            type: string
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The operation was successful.
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/solaris_server_decorators_account_with_status
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '404':
          description: The account could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
        default:
          description: Unexpected error
      security:
        - oauth2:
            - solaris_service_business_account#find
  /v1/businesses/{business_id}/accounts/{account_id}/reference_accounts:
    get:
      tags:
        - Reference accounts
      summary: Index reference accounts for a business
      description: >-
        Returns an array containing all reference accounts associated with the
        business account specified in the request URL.
      parameters:
        - name: business_id
          in: path
          required: true
          schema:
            type: string
        - name: account_id
          in: path
          required: true
          schema:
            type: string
        - name: page[number]
          in: query
          description: The number of results pages to return.
          required: false
          schema:
            type: integer
        - name: page[size]
          in: query
          description: The number of results to return in each page.
          required: false
          schema:
            type: integer
        - name: filter[iban]
          in: query
          description: Filter the results by IBAN.
          required: false
          schema:
            type: string
        - name: filter[status]
          in: query
          description: Filter the results by account status.
          required: false
          schema:
            type: string
            enum:
              - ACTIVE
              - INACTIVE
      responses:
        '200':
          description: The operation was successful.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BusinessReferenceAccount'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidRequestError'
        '403':
          description: You are not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: The requested resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelNotFound'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
      security:
        - oauth2:
            - reference_account_service_reference_account_business#all
    post:
      tags:
        - Reference accounts
      summary: Create a reference account for a business
      description: >-
        Adds an external bank account as a reference account to the business'
        Solaris account specified in the request URL.<br> **Note:** Before
        calling this endpoint, you must create a SEPA Direct Debit mandate and
        have the customer sign it.
      parameters:
        - name: business_id
          in: path
          required: true
          schema:
            type: string
        - name: account_id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              example:
                name: account_holder_unique_ref
                iban: DE32110101001000000029
                mandate_number: example-mandate-number
                mandate_signature_date: '2020-01-08'
                mandate_type: Core
              type: object
              properties:
                name:
                  description: The name of the external account holder.
                  type: string
                iban:
                  description: IBAN of the reference account.
                  type: string
                mandate_number:
                  description: The identifier of the SDD mandate that the customer signed.
                  type: string
                mandate_signature_date:
                  description: The date when the customer signed the SDD mandate.
                  format: date
                  type: string
                mandate_type:
                  description: The type of SDD mandate.
                  type: string
                  enum:
                    - B2B
                    - Core
        description: The content of the request.
      responses:
        '201':
          description: The operation was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessReferenceAccount'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidRequestError'
        '403':
          description: You are not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: The requested resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelNotFound'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
      security:
        - oauth2:
            - reference_account_service_reference_account_business#create
  /v1/persons/{person_id}/accounts/{account_id}/reference_accounts:
    post:
      tags:
        - Reference accounts
      summary: Create reference account for a person
      description: >-
        Adds an external bank account as a reference account to the person's
        Solaris account specified in the request URL. <br>**Note:** Before
        calling this endpoint, you must create a SEPA Direct Debit mandate for
        your customer and have them sign it.
      parameters:
        - name: person_id
          in: path
          required: true
          schema:
            type: string
        - name: account_id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              example:
                name: account_holder_unique_ref
                iban: DE32110101001000000029
                mandate_number: example-mandate-number
                mandate_signature_date: '2020-01-08'
              type: object
              properties:
                name:
                  description: The name of the external account holder.
                  type: string
                iban:
                  description: IBAN of the reference account.
                  type: string
                mandate_number:
                  description: The identifier of the SDD mandate that the customer signed.
                  type: string
                mandate_signature_date:
                  description: The date when the customer signed the SDD mandate.
                  format: date
                  type: string
        description: The content of the request.
      responses:
        '201':
          description: The operation was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonReferenceAccount'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidRequestError'
        '403':
          description: You are not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: The requested resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelNotFound'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
      security:
        - oauth2:
            - reference_account_service_reference_account_person#create
    get:
      tags:
        - Reference accounts
      summary: Index reference accounts for a person
      description: >-
        Returns an array containing all reference accounts associated with the
        person's Solaris account specified in the request URL.
      parameters:
        - name: person_id
          in: path
          required: true
          schema:
            type: string
        - name: account_id
          in: path
          required: true
          schema:
            type: string
        - name: page[number]
          in: query
          description: The number of results pages to return.
          required: false
          schema:
            type: integer
        - name: page[size]
          in: query
          description: The number of results to return in each page.
          required: false
          schema:
            type: integer
        - name: filter[iban]
          in: query
          description: Filter the results by IBAN.
          required: false
          schema:
            type: string
        - name: filter[status]
          in: query
          description: Filter the results by account status.
          required: false
          schema:
            type: string
            enum:
              - ACTIVE
              - INACTIVE
      responses:
        '200':
          description: The operation was successful.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PersonReferenceAccount'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidRequestError'
        '403':
          description: You are not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: The requested resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelNotFound'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
      security:
        - oauth2:
            - reference_account_service_reference_account_person#all
  /v1/accounts/{account_id}/rejected_incoming_transactions:
    get:
      tags:
        - Reference accounts
      summary: Index rejected incoming transactions
      description: >-
        Returns an array containing all incoming transactions to the account
        specified in the request URL that Solaris rejected/returned.
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
        - name: page[number]
          in: query
          required: false
          description: The number of results pages to return.
          schema:
            type: integer
            minimum: 1
            default: 1
        - name: page[size]
          in: query
          description: The size of each page of results.
          required: false
          schema:
            type: integer
            default: 10
      responses:
        '200':
          description: The operation was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rejected_transactions'
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error-2'
        '403':
          description: You are not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/unauthorized_error'
        '404':
          description: The account could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/not_found_error'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/internal_error-2'
      security:
        - oauth2:
            - solaris_payments_transaction_reviewer_rejected_transactions#all
  /v1/account_closure_requests:
    post:
      tags:
        - Account closure requests
      summary: Initiate account closure request
      description: >-
        Creates an account closure request for the specified account. See the
        [account closure
        guide](https://docs.solarisgroup.com/guides/compliance/account-closure/)
        for more information about this process and the associated stages.
      operationId: Create account_closure_request
      requestBody:
        $ref: '#/components/requestBodies/AccountClosureRequest_Create'
      responses:
        '200':
          description: The operation was successful (idempotency).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account_closure_request'
        '201':
          description: The account closure request was successfully initiated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account_closure_request'
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
      security:
        - oauth2:
            - solaris_account_closure_request#create
    get:
      tags:
        - Account closure requests
      summary: List all account closure requests
      description: Returns an array containing all account closure requests.
      operationId: Index account_closure_requests
      parameters:
        - name: filter[account_id]
          in: query
          description: Filter the response by account ID.
          schema:
            type: string
        - name: filter[status]
          in: query
          description: Filter the response by the status of the ACR.
          schema:
            $ref: '#/components/schemas/status_enum'
        - name: filter[legal_closure_date][min]
          in: query
          description: Filter the response by legal closure date (min border).
          schema:
            type: string
        - name: filter[legal_closure_date][max]
          in: query
          description: Filter the response by legal closure date (max border).
          schema:
            type: string
        - name: sort
          in: query
          description: Sort the returned ACRs by `legal_closure_date` or `created_at`.
          schema:
            type: string
        - name: page[size]
          in: query
          description: Determines the size of each page of results.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 1000
            default: 10
        - name: page[number]
          in: query
          description: The number of results pages to return.
          required: false
          schema:
            type: integer
            minimum: 1
            default: 1
      responses:
        '200':
          description: The operation was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account_closure_requests'
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
      security:
        - oauth2:
            - solaris_account_closure_request#index
  /v1/account_closure_requests/{id}:
    get:
      tags:
        - Account closure requests
      summary: Get a single account closure request
      description: >-
        Retrieves information about a specific account closure request,
        specified in the request URL.
      operationId: Get account_closure_request by Id
      parameters:
        - name: id
          in: path
          description: ID of the account closure request to query.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The operation was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account_closure_request'
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '404':
          description: The account closure request could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
      security:
        - oauth2:
            - solaris_account_closure_request#find
  /v1/accounts/{account_id}/transactions/fees:
    post:
      tags:
        - Fee collection
      summary: Create a fee collection transaction
      description: >-
        Creates a fee transaction on the account specified in the URL. Solaris
        will debit the amount from the customer's account and transfer the funds
        to a Solaris settlement account. Each month, Solaris will pay out the
        amounts collected from fee transactions to your partner account.
      parameters:
        - $ref: '#/components/parameters/pathAccountID'
      requestBody:
        description: The content of the request.
        content:
          application/json:
            schema:
              required:
                - type
                - amount
              type: object
              properties:
                type:
                  type: string
                  description: >-
                    The type of fee. Note that you may only collect the types of
                    fees that have been enabled for you.
                  enum:
                    - ChargeATM
                    - ChargeATMForeignCurrency
                    - CashDepositRetail
                    - CashWithdrawalRetail
                    - ChargeCardDelivery
                    - ChargeCard
                    - ChargeVirtualCard
                    - ChargeReissuePhysicalCard
                    - ChargeAdditionalPhysicalCard
                    - ChargeAdditionalVirtualCard
                    - ChargeReissueVirtualCard
                    - ChargeCardMaintenance
                    - BoosterPackage
                    - ChargeAccountMaintenance
                    - ChargeTopUpCard
                    - ChargeAdditionalAccountMaintenance
                    - ChargeSharedAccount
                    - ChargeAuthorizedUser
                    - ChargeGamblingTransactionPartner
                    - ChargeSEPAInstantOutgoing
                    - ChargeSEPAInstantIncoming
                    - ChargeManualSepaTransferPartner
                    - ChargeIncomingSwift
                    - ChargeGamblingOrCashEquivalent
                    - ChargeFXCardTransaction
                amount:
                  type: object
                  description: The amount of the fee transaction.
                  required:
                    - value
                    - currency
                  properties:
                    value:
                      type: integer
                      description: The value of the fee, in Euro cents.
                      example: 1000
                      minimum: 1
                    currency:
                      type: string
                      description: >-
                        The currency of the fee. Only EUR is currently
                        supported.
                      example: EUR
                original_transaction_id:
                  type: string
                  description: >-
                    Optional ID to be provided for fee types that relate to or
                    are charged for individual transactions. In this case, you
                    would provide the ID of the booking linked to the
                    transaction.
                initiator_reference:
                  type: string
                  description: >-
                    Optional reference for the fee transaction to be populated
                    by you.
                idempotency_key:
                  type: string
                  description: >-
                    Optional idempotency key to be used when creating the fee
                    transaction.
                valuta_date:
                  type: string
                  description: >-
                    Optional valuta date provided by client. If both
                    'original_transaction_id' and 'valuta_date' are provided in
                    the request payload, the provided valuta_data will be used.
                  example: '2023-06-01'
              example:
                type: ChargeAccountMaintenance
                amount:
                  value: 499
                  currency: EUR
                initiator_reference: 2022_08_acc_maint
                idempotency_key: 653e91ae-7e93-4106-a33c-00607dae851e
        required: true
      responses:
        '201':
          description: The operation was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeeTransaction'
        '400':
          $ref: '#/components/responses/400ClientError'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404ModelNotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        default:
          description: Unexpected error
          content: {}
      security:
        - oauth2:
            - fee_collection_transaction_fee#create
      x-codegen-request-body-name: body
    get:
      tags:
        - Fee collection
      summary: List fee transactions for an account
      description: >-
        Returns an array containing all fee transactions created for the account
        specified in the request URL.
      parameters:
        - $ref: '#/components/parameters/pathAccountID'
        - name: page[number]
          in: query
          description: The number of results pages to return.
          schema:
            type: integer
        - name: page[size]
          in: query
          description: The size of each page in the response.
          schema:
            type: string
        - name: filter[type]
          in: query
          description: Filter the results by the type of fee collected.
          required: false
          schema:
            type: string
        - name: filter[reconciliation_id]
          in: query
          description: >-
            Filter the results by a transactions reconciliation ID. (Effectively
            allows you to look up the transaction of one fee booking.)
          required: false
          schema:
            type: string
        - name: filter[solaris_initiated]
          in: query
          description: >-
            Filter the results to indicate whether **Solaris** initiated the fee
            transaction.
          required: false
          schema:
            type: boolean
      responses:
        '200':
          description: The operation was successful.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FeeTransaction'
          headers:
            Total:
              $ref: '#/components/headers/total'
            Per-Page:
              $ref: '#/components/headers/per_page'
            Link:
              $ref: '#/components/headers/link'
        '400':
          $ref: '#/components/responses/400ClientError'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404ModelNotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        default:
          description: Unexpected error
          content: {}
      security:
        - oauth2:
            - fee_collection_transaction_fee#list
  /v1/persons/{person_id}/deposit_accounts/{account_id}/mappings:
    post:
      summary: Map a person's main account to a savings account
      description: >
        Maps a person's savings account to their main (checking) account and
        then

        triggers the remaining steps for savings account onboarding. The person

        may only transfer money to and from their savings account using the main

        account mapped by this request.
      security:
        - oauth2:
            - solaris_person_deposit_accounts_mappings#create
      tags:
        - Savings Accounts
      parameters:
        - name: person_id
          $ref: '#/components/parameters/PersonID'
        - name: account_id
          $ref: '#/components/parameters/AccountID'
      requestBody:
        description: The request body.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDepositAccountsMappings_Request'
      responses:
        '202':
          description: >-
            The mapping was successfully created, and the savings account
            onboarding process has started.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateDepositAccountsMappings_Response'
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-400'
        '403':
          description: You are not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-403'
        '404':
          description: The provided resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-500'
  /v1/businesses/{business_id}/deposit_accounts/{account_id}/mappings:
    post:
      summary: Map a business' main account to a savings account
      description: >
        Maps a business' savings account to its main (checking) account and then

        triggers the remaining steps for savings account onboarding. The
        business

        may only transfer money to and from their savings account using the main

        account mapped by this request.
      security:
        - oauth2:
            - solaris_business_deposit_accounts_mappings#create
      tags:
        - Savings Accounts
      parameters:
        - name: business_id
          $ref: '#/components/parameters/BusinessID'
        - name: account_id
          $ref: '#/components/parameters/AccountID'
      requestBody:
        description: The request payload.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDepositAccountsMappings_Request'
      responses:
        '202':
          description: >-
            The mapping was successfully created, and the savings account
            onboarding process has started.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateDepositAccountsMappings_Response'
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-400'
        '403':
          description: You are not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-403'
        '404':
          description: The provided resource could not be found..
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-500'
  /v1/persons/{person_id}/deposit_accounts/{account_id}/payin:
    post:
      summary: Create pay-in to a person's savings account
      description: |
        Transfers money from a person's main account to their savings account.
      security:
        - oauth2:
            - solaris_person_deposit_accounts_payin#create
      tags:
        - Savings Accounts
      parameters:
        - name: person_id
          $ref: '#/components/parameters/PersonID'
        - name: account_id
          $ref: '#/components/parameters/AccountID'
      requestBody:
        description: The request body.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayInRequest'
      responses:
        '201':
          description: The transaction has been executed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayInResponse'
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-400'
        '403':
          description: You are not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-403'
        '404':
          description: The provided resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-500'
  /v1/businesses/{business_id}/deposit_accounts/{account_id}/payin:
    post:
      summary: |
        Create pay-in to a business' savings account
      description: |
        Transfers money from a business' main account to its savings account. 
      security:
        - oauth2:
            - solaris_business_deposit_accounts_payin#create
      tags:
        - Savings Accounts
      parameters:
        - name: business_id
          $ref: '#/components/parameters/BusinessID'
        - name: account_id
          $ref: '#/components/parameters/AccountID'
      requestBody:
        description: The request body.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayInRequest'
      responses:
        '201':
          description: The transaction has been executed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayInResponse'
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-400'
        '403':
          description: You are not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-403'
        '404':
          description: The provided resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-500'
  /v1/persons/{person_id}/deposit_accounts/{account_id}/payout:
    post:
      summary: Create payout from a person's savings account
      description: |
        Transfers money from a person's savings account to their main account.
      security:
        - oauth2:
            - solaris_person_deposit_accounts_payout#create
      tags:
        - Savings Accounts
      parameters:
        - name: person_id
          $ref: '#/components/parameters/PersonID'
        - name: account_id
          $ref: '#/components/parameters/AccountID'
      requestBody:
        description: The request body.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayOutRequest'
      responses:
        '201':
          description: The transaction has been executed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayOutResponse'
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-400'
        '403':
          description: You are not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-403'
        '404':
          description: The provided resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-500'
  /v1/businesses/{business_id}/deposit_accounts/{account_id}/payout:
    post:
      summary: |
        Create payout from a business' savings account
      description: |
        Transfers money from a business' savings account to its main account.
      security:
        - oauth2:
            - solaris_business_deposit_accounts_payout#create
      tags:
        - Savings Accounts
      parameters:
        - name: business_id
          $ref: '#/components/parameters/BusinessID'
        - name: account_id
          $ref: '#/components/parameters/AccountID'
      requestBody:
        description: The request body.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayOutRequest'
      responses:
        '201':
          description: The transaction has been executed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayOutResponse'
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-400'
        '403':
          description: You are not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-403'
        '404':
          description: The provided resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-500'
  /v1/persons/{person_id}/deposit_accounts/{account_id}/tax_exemptions:
    post:
      summary: Create tax exemption order for a person
      description: >
        Creates a tax exemption order for a person's savings account, specified
        in

        the request URL by its ID. Specify the amount to be exempted from tax in
        the

        request body.
      security:
        - oauth2:
            - solaris_person_deposit_accounts_tax_exemption#create
      tags:
        - Savings Accounts
      parameters:
        - name: person_id
          $ref: '#/components/parameters/PersonID'
        - name: account_id
          $ref: '#/components/parameters/AccountID'
      requestBody:
        description: Tax Exemption Request payload.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TaxExemptionCreateRequest'
      responses:
        '202':
          description: >-
            The request for a tax exemption order has been submitted for
            processing.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaxExemptionCreateResponse'
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-400'
        '403':
          description: You are not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-403'
        '404':
          description: The provided resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-404'
        '409':
          description: Record not unique.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericConflictError'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-500'
    patch:
      summary: Update a person's tax exemption order
      description: |
        Modifies the time period and/or tax-exempt amount of a person's tax
        exemption order.
      security:
        - oauth2:
            - solaris_person_deposit_accounts_tax_exemption#update
      tags:
        - Savings Accounts
      parameters:
        - name: person_id
          $ref: '#/components/parameters/PersonID'
        - name: account_id
          $ref: '#/components/parameters/AccountID'
      requestBody:
        description: The request payload.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TaxExemptionUpdateRequest'
      responses:
        '202':
          description: >-
            The request to update the tax exemption order has been submitted for
            processing.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaxExemptionUpdateResponse'
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericClientErrorPatch'
        '403':
          description: You are not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericForbiddenErrorPatch'
        '404':
          description: The provided resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericNotFoundErrorPatch'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericServerErrorPatch'
    get:
      summary: Retrieve a person's tax exemption order
      description: >
        Returns the tax exemption order for the person specified in the request
        URL.
      security:
        - oauth2:
            - solaris_person_deposit_accounts_tax_exemption#read
      tags:
        - Savings Accounts
      parameters:
        - name: person_id
          $ref: '#/components/parameters/PersonID'
        - name: account_id
          $ref: '#/components/parameters/AccountID'
      responses:
        '200':
          description: The request was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaxExemptionReadResponse'
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-400'
        '403':
          description: You are not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-403'
        '404':
          description: The provided resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-500'
    delete:
      summary: Remove a person's tax exemption order
      description: >
        Deletes the tax exemption order for the person specified in the request

        URL. <br> Note that you should only use this endpoint for **erroneous**
        or

        **wrongly submitted** tax exemption orders that were **not utilized.**

        Please use **PATCH Close a person's tax exemption order** to close

        previously utilized tax exemption orders.
      security:
        - oauth2:
            - solaris_person_deposit_accounts_tax_exemption#delete
      tags:
        - Savings Accounts
      parameters:
        - name: person_id
          $ref: '#/components/parameters/PersonID'
        - name: account_id
          $ref: '#/components/parameters/AccountID'
      responses:
        '202':
          description: >-
            The request to delete the tax exemption order was successfully
            submitted.
          headers:
            Location:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaxExemptionDeleteResponse'
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-400'
        '403':
          description: You are not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-403'
        '404':
          description: The provided resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-500'
  /v1/persons/{person_id}/deposit_accounts/{account_id}/tax_exemptions/close:
    patch:
      summary: Close a person's tax exemption order
      description: >
        Closes the tax exemption order for the person specified in the request
        URL.

        <br> Note that you should only use this endpoint for previously utilized
        tax

        exemption orders. To delete **erroneous** or **wrongly submitted** tax

        exemption orders that were **not utilized,** please use **DELETE Remove
        a

        person's tax exemption order.**
      security:
        - oauth2:
            - solaris_person_deposit_accounts_tax_exemption#close
      tags:
        - Savings Accounts
      parameters:
        - name: person_id
          $ref: '#/components/parameters/PersonID'
        - name: account_id
          $ref: '#/components/parameters/AccountID'
      responses:
        '202':
          description: >-
            The request to close the person's tax exemption order was
            successfully submitted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaxExemptionCloseResponse'
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-400'
        '403':
          description: You are not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-403'
        '404':
          description: The provided resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-500'
  /v1/persons/{person_id}/deposit_accounts/{account_id}/tax_exemptions/utilization:
    post:
      summary: Request the utilization details of a person's tax exemption order
      description: >
        Submits a request to retrieve the tax exemption utilization details for
        the person and the savings account specified in the request URL. This
        endpoint will return a response body with only the ID of the request.
        The utilization details will be sent asynchronously via the
        'TAX_EXEMPTION_UTILIZATION' webhook event after the request is
        successfully processed.
      security:
        - oauth2:
            - solaris_person_deposit_accounts_tax_exemption#read_utilization
      tags:
        - Savings Accounts
      parameters:
        - name: person_id
          $ref: '#/components/parameters/PersonID'
        - name: account_id
          $ref: '#/components/parameters/AccountID'
      responses:
        '202':
          description: >-
            The request to fetch the person's tax exemption order utilization
            was successfully submitted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaxExemptionGetUtilizationResponse'
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-400'
        '403':
          description: You are not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-403'
        '404':
          description: The provided resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-500'
  /v1/persons/{person_id}/deposit_accounts/{account_id}/interest_details:
    get:
      summary: Get interest details for a person's savings account
      description: >
        Returns the interest details for a person's savings account, specified
        in

        the request URL by its ID. The response includes the interest rate, the

        amount of interest accrued, and the date when the interest calculator
        was

        last run for the account.
      security:
        - oauth2:
            - solaris_person_deposit_accounts_get_interest_details#read
      tags:
        - Savings Accounts
      parameters:
        - name: person_id
          $ref: '#/components/parameters/PersonID'
        - name: account_id
          $ref: '#/components/parameters/AccountID'
      responses:
        '200':
          description: |
            Interest details have been fetched successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetInterestDetailsResponse'
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-400'
        '403':
          description: You are not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-403'
        '404':
          description: The provided resource could not be found..
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-500'
  /v1/businesses/{business_id}/deposit_accounts/{account_id}/interest_details:
    get:
      summary: Get interest details for a business' savings account
      description: >
        Returns the interest details for a business' savings account, specified
        in

        the request URL by its ID. The response includes the interest rate, the

        amount of interest accrued, and the date when the interest calculator
        was

        last run for the account.
      security:
        - oauth2:
            - solaris_business_deposit_accounts_get_interest_details#read
      tags:
        - Savings Accounts
      parameters:
        - name: business_id
          $ref: '#/components/parameters/BusinessID'
        - name: account_id
          $ref: '#/components/parameters/AccountID'
      responses:
        '200':
          description: |
            Interest details have been fetched successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetInterestDetailsResponse'
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-400'
        '403':
          description: You are not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-403'
        '404':
          description: The provided resource could not be found..
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Errors-500'
  /v1/accounts/{account_id}/bookings:
    get:
      tags:
        - Accounts
      summary: Get account bookings
      description: Returns an array containing all bookings for an account.
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
        - name: page[number]
          in: query
          required: false
          description: The number of results pages to return.
          schema:
            type: string
        - name: page[size]
          in: query
          required: false
          description: The size of each page in the response.
          schema:
            type: string
        - name: sort
          in: query
          required: false
          description: >-
            Sort the results by `booking_date`, `valuta_date`, `recorded_at`, or
            `id`.
          schema:
            type: string
            enum:
              - booking_date
              - valuta_date
              - recorded_at
              - id
        - name: filter[id]
          in: query
          required: false
          description: ID of the booking.
          schema:
            type: string
        - name: filter[recorded_at][min]
          in: query
          required: false
          description: >-
            Filter the results by the date and time when the booking was
            recorded **starting from** a certain date and time.
          schema:
            type: string
        - name: filter[recorded_at][max]
          in: query
          required: false
          description: >-
            Filter the results by the date and time when the booking was
            recorded **up until** a certain date and time.
          schema:
            type: string
        - name: filter[valuta_date]
          in: query
          required: false
          description: Filter the results by the valuta date.
          schema:
            type: string
        - name: filter[booking_type]
          in: query
          required: false
          description: Filter the results by booking type.
          schema:
            type: string
        - name: filter[description]
          in: query
          required: false
          description: Filter the results by booking description.
          schema:
            type: string
        - name: filter[receiver_iban_virtual]
          in: query
          required: false
          description: Filter the results to show bookings received on virtual IBANs.
          schema:
            type: string
        - name: filter[transaction_id]
          in: query
          required: false
          description: Filter the results by transaction ID.
          schema:
            type: string
      responses:
        '200':
          description: The operation was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Resources-Booking'
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '404':
          description: The account could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
      security:
        - oauth2:
            - solaris_service_booking#all
  /v1/accounts/{account_id}/reservations:
    get:
      tags:
        - Reservations
      summary: Index reservations on an account. Version 2022-07-18
      description: >-
        Returns an array containing all outstanding reservations on the account
        specified in the request URL. The API will not return reservations that
        have been applied or revoked.<br> **Important** This endpoint replaces
        the [old
        version](https://docs.solarisgroup.com/api-reference/digital-banking/account-management/#tag/Reservations/paths/~1v1~1accounts~1{account_id}~1reservations~1old/get).
        However, please note that you have to set the `api-version` header to
        the version you want (e.g., `2022-07-18`). If you do not specify a
        version, then the API will return the older version of the response.
      security:
        - oauth2:
            - solaris_service_account_reservation#all
      parameters:
        - $ref: '#/components/parameters/account_id-2'
        - name: page[number]
          in: query
          description: Returns a specific page of results.
          required: false
          schema:
            type: string
        - name: page[size]
          in: query
          description: Determines the size of each page of results.
          required: false
          schema:
            type: string
        - name: filter[type]
          in: query
          description: Filters the returned reservations by type.
          example: CardAuthorization
          required: false
          schema:
            $ref: '#/components/schemas/reservation_types'
        - name: filter[id]
          in: query
          description: Filters the returned reservations by ID.
          required: false
          example: 162ddd7e-790c-5963-908f-4cedfd30f9a1
          schema:
            type: string
        - name: filter[status]
          in: query
          description: Filters the reservations by status, e.g., OPEN.
          example: OPEN
          required: false
          schema:
            type: string
            enum:
              - OPEN
              - RESOLVED
        - name: sort
          in: query
          description: Sorts the returned reservations by created_at date.
          example: '-created_at'
          required: false
          schema:
            type: string
            enum:
              - created_at
              - '-created_at'
      responses:
        '200':
          description: Successfully fetched the reservations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/reservations'
        '400':
          description: Invalid parameters provided.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '404':
          description: The account could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404'
  /v1/accounts/{account_id}/reservations/old:
    get:
      tags:
        - Reservations
      summary: (Deprecated) Get account reservations. Version 2022-06-01
      description: >-
        Returns an array containing all reservations on a given account. This
        endpoint will deprecated soon. All partners must switch to the [new
        version](https://docs.solarisgroup.com/api-reference/digital-banking/account-management/#tag/Reservations/paths/~1v1~1accounts~1{account_id}~1reservations/get).
      deprecated: true
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
        - name: page[number]
          in: query
          description: Returns a specific page of results.
          required: false
          schema:
            type: string
        - name: page[size];
          in: query
          description: Determines the size of each page of results.
          required: false
          schema:
            type: string
        - name: filter[reservation_type]
          in: query
          description: Filters the returned reservations by type.
          example: CARD_AUTHORIZATION
          required: false
          schema:
            type: string
            enum:
              - CARD_AUTHORIZATION
              - SEPA_CREDIT_TRANSFER
              - CLEARING_TRANSACTION
              - INTRA_CUSTOMER_TRANSFER
              - SEPA_CREDIT_BATCH
              - SEIZURE
              - SEPAInstantCreditTransfer
        - name: filter[id]
          in: query
          description: Filters the returned reservations by ID.
          required: false
          example: 162ddd7e-790c-5963-908f-4cedfd30f9a1
          schema:
            type: string
        - name: filter[status]
          in: query
          description: Filters the reservations by status, e.g., OPEN.
          example: OPEN
          required: false
          schema:
            type: string
            enum:
              - OPEN
              - RESOLVED
        - name: sort
          in: query
          description: Sorts the returned reservations by created_at date.
          example: '-created_at'
          required: false
          schema:
            type: string
            enum:
              - created_at
              - '-created_at'
      responses:
        '200':
          description: The operation was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/reservations-2'
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '404':
          description: The account could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
      security:
        - oauth2:
            - solaris_service_account_reservation#all
  /v1/persons/{person_id}/seizures:
    get:
      tags:
        - Seizures
      summary: Index seizures for a person
      description: >-
        Returns an array containing all seizures for the person specified in the
        request URL. Note that the `amount` of a seizure always reflects the
        **total amount** of the seizure, even if part of it has been paid. It
        does **not** reflect the **outstanding** amount of the seizure.
      parameters:
        - name: person_id
          in: path
          required: true
          schema:
            type: string
        - name: page[number]
          in: query
          description: The number of results pages to return.
          schema:
            type: string
        - name: page[size]
          in: query
          description: The size of each page in the response.
          schema:
            type: string
        - name: sort
          in: query
          description: Sort the results by the date when the seizure was created.
          schema:
            type: string
            enum:
              - created_at
        - name: filter[status]
          in: query
          description: Filter the results by seizure status.
          schema:
            type: string
      responses:
        '200':
          description: Successful result of the operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Solaris-Server-Decorators-Seizure'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '403':
          description: You are not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error403'
        '404':
          description: The resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404-2'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
        default:
          description: Unexpected error
          content: {}
      security:
        - oauth2:
            - solaris_service_seizure#all_for_customer
  /v1/businesses/{business_id}/seizures:
    get:
      tags:
        - Seizures
      summary: Index seizures for a business
      description: >-
        Returns an array containing all active seizures related to the given
        business. Note that the `amount` of a seizure always reflects the
        **total amount** of the seizure, even if part of it has been paid. It
        does **not** reflect the **outstanding** amount of the seizure.
      parameters:
        - name: business_id
          in: path
          required: true
          schema:
            type: string
        - name: page[number]
          in: query
          description: The number of results pages to return.
          schema:
            type: string
        - name: page[size]
          in: query
          description: The size of each page in the response.
          schema:
            type: string
        - name: sort
          in: query
          schema:
            type: string
        - name: filter[status]
          in: query
          description: Filter the results by seizure status.
          schema:
            type: string
      responses:
        '200':
          description: Successful result of the operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Solaris-Server-Decorators-Seizure'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '403':
          description: You are not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error403'
        '404':
          description: The resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404-2'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
        default:
          description: Unexpected error
          content: {}
      security:
        - oauth2:
            - solaris_service_seizure#all_for_customer
  /v1/accounts/{account_id}/bank_statements:
    post:
      tags:
        - Bank statements
      summary: Create a bank statement for an account
      description: >-
        Generates a bank statement for the account specified in the request URL.
        You must provide a `start_date` and an `end_date`. The API will return
        all bookings with a `valuta_date` that falls on and between these two
        dates. You may set the `start_date` to a date before the account was
        opened, but **do not** provide this option to your customers in your
        frontend.<br>**Note:** This request is idempotent. If you attempt
        multiple requests with the same `start_date` and `end_date`, then the
        API will return a `200` response with the data produced by the original
        request.
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              example:
                start_date: '2016-05-24'
                end_date: '2016-05-31'
              required:
                - start_date
                - end_date
              type: object
              properties:
                start_date:
                  description: >-
                    The starting date from which to return bookings for the
                    account.
                  type: string
                  format: date
                end_date:
                  description: >-
                    The ending date for the bank statement. Must be a later date
                    than the `start_date`.
                  type: string
                  format: date
        description: The content of the request.
      responses:
        '200':
          description: The statement has already been created for the given dates.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Bank-Statement-Response'
        '201':
          description: The operation was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Bank-Statement-Response'
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '403':
          description: You are not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error403'
        '404':
          description: The resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
      security:
        - oauth2:
            - solaris_service_account_statement#create
  /v1/accounts/{account_id}/bank_statements/{statement_id}/bookings:
    get:
      tags:
        - Bank statements
      summary: Index bookings for a bank statement
      description: >-
        Returns an array containing all bookings that are contained within the
        account statement specified in the request URL.
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
        - name: statement_id
          in: path
          required: true
          schema:
            type: string
        - name: page[number]
          in: query
          description: Returns a specific page of results.
          required: false
          schema:
            type: string
        - name: page[size];
          in: query
          description: Determines the size of each page of results.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: The operation was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Resources-Booking'
          headers:
            Total:
              description: Total number of bookings within this statement.
              schema:
                type: integer
            Per-Page:
              description: Number of bookings per page.
              schema:
                type: integer
            Link:
              description: Links to the first, last, next, and previous pages.
              schema:
                type: array
                items:
                  type: string
              style: simple
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '403':
          description: You are not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error403'
        '404':
          description: The resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
      security:
        - oauth2:
            - solaris_service_account_statement#bookings
  /v1/accounts/{account_id}/statement_of_accounts:
    post:
      tags:
        - Statements of account
      summary: Create a statement of account
      description: >-
        Creates a statement of account (_Rechnungsabschluss_) for the account
        specified in the request URL. Use the information returned in the
        response to generate your own branded PDF file to present to the
        customer. This file must include the **entire** data set returned by our
        API **without exception,** including the mandatory disclaimer text.<br>
        In the request, you must specify a `year` along with an `interval` and a
        `period`. Together, the `interval` and `period` determine the
        statement's beginning and end dates (`statement_period_start_date` and
        `statement_period_end_date`). For example, if you make a request with an
        `interval` of `MONTHLY`, a `period` of `3`, and a `year` of `2022`, then
        the API will return a statement of account for the month of March 2022.
        If the API returns an error related to the start and end dates, then the
        `interval` and `period` could not be translated into dates (e.g., an
        invalid enum was passed) or the given interval fell outside of the
        allowed time frame (e.g., in the future).
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              example:
                interval: MONTHLY
                period: 3
                year: 2022
              required:
                - interval
                - period
                - year
              type: object
              properties:
                interval:
                  description: >-
                    Determines the amount of time that the statement of account
                    should cover.
                  enum:
                    - MONTHLY
                    - QUARTERLY
                    - EVERY_SIX_MONTHS
                    - ANNUALLY
                  type: string
                period:
                  description: >-
                    Determines the starting period in the year from which to
                    return bookings.
                  enum:
                    - 1
                    - 2
                    - 3
                    - 4
                    - 5
                    - 6
                    - 7
                    - 8
                    - 9
                    - 10
                    - 11
                    - 12
                  type: integer
                year:
                  description: The year for which to create the statement of account.
                  type: integer
        description: The content of the request.
      responses:
        '200':
          description: >-
            A statement for account has already been created based on the
            provided values.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account-Statement-Response'
        '201':
          description: The operation was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account-Statement-Response'
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '403':
          description: You are not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error403'
        '404':
          description: The resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
      security:
        - oauth2:
            - solaris_service_account_statement#create
  /v1/accounts/{account_id}/statement_of_accounts/{statement_id}/bookings:
    get:
      tags:
        - Statements of account
      summary: Index bookings within a statement of account
      description: >-
        Returns an array of all bookings with a `valuta_date` that falls between
        the start and end dates of the account statement specified in the
        request URL.
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
        - name: statement_id
          in: path
          required: true
          schema:
            type: string
        - name: page[number]
          in: query
          description: Returns a specific page of results.
          required: false
          schema:
            type: string
        - name: page[size];
          in: query
          description: Determines the size of each page of results.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: The operation was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Solaris-Resources-Booking'
          headers:
            Total:
              description: Total number of bookings within this statement.
              schema:
                type: integer
            Per-Page:
              description: Number of bookings per page.
              schema:
                type: integer
            Link:
              description: Links to the first, last, next, and previous pages.
              schema:
                type: array
                items:
                  type: string
              style: simple
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '403':
          description: You are not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error403'
        '404':
          description: The resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
      security:
        - oauth2:
            - solaris_service_account_statement#bookings
  /v1/accounts/{account_id}/statement_of_accounts/{statement_id}/fees:
    get:
      tags:
        - Statements of account
      summary: (Italy only) Index fees for a statement of account
      description: >-
        Returns a list of fees associated with a statement of account. The API
        returns the type of fee (described in the table below) in the `name`
        property of each fee, along with the amount (in EUR cents). The count
        property indicates the number of times that the given fee was
        charged.<br>**Note:** This endpoint is only relevant for customers with
        an **Italian** branch bank account.<br><table> <thead> <tr>
        <th><code>name</code> value</th> <th>English description</th>
        <th>Italian description</th> </tr> </thead> <tbody> <tr>
        <td><code>InterestOverdraft</code></td> <td>Interest fee for
        overdraft</td> <td>Interessi debitori (utilizzo intrafido)</td> </tr>
        <tr> <td><code>InterestOverdraftExceeded</code></td> <td>Interest fee
        for overdraft exceeded</td> <td>Interessi debitori (utilizzo
        extrafido)</td> </tr> <tr> <td><code>InterestExcessDeposit</code></td>
        <td>Negative interest</td> <td>Spese di scritturazione contabile</td>
        </tr> <tr> <td><code>CorrectionInterestExcessDeposit</code></td>
        <td>Correction negative interest</td> <td>Rettifica addebito
        interessi</td> </tr> <tr>
        <td><code>InterestFixedTermDeposits</code></td> <td>Interest credit</td>
        <td>Interessi creditori</td> </tr> <tr>
        <td><code>ChargeSEPADirectDebitReturn</code></td> <td>Charge for SEPA
        Direct Debit return</td> <td>Spese per la restituzione addebito diretto
        SEPA</td> </tr> <tr> <td><code>ChargeDunning</code></td> <td>Fee for
        dunning letter</td> <td>Spese di invio messa in mora</td> </tr> <tr>
        <td><code>ChargeRecallRequest</code></td> <td>Fee for transaction
        recall</td> <td>Revoca operazioni</td> </tr> <tr>
        <td><code>ChargeCard</code></td> <td>Issuing of cards</td> <td>Costi di
        emissione carta</td> </tr> <tr>
        <td><code>ChargeAccountMaintenance</code></td> <td>Account maintenance
        fee</td> <td>Costi di tenuta del conto</td> </tr> <tr>
        <td><code>ChargeATM</code></td> <td>Cash withdrawal</td> <td>Prelievo
        contanti</td> </tr> </tbody> </table>
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
        - name: statement_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The operation was successful.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                      description: >-
                        The name of the fee. See the table above for possible
                        values.
                    count:
                      type: integer
                      description: >-
                        The number of times this fee was charged during the bank
                        statement period.
                    amount:
                      description: >-
                        The total amount charged for this type of fee during the
                        bank statement period.
                      allOf:
                        - $ref: >-
                            #/components/schemas/Solaris-Server-Decorators-Money-2
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '403':
          description: You are not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error403'
        '404':
          description: The resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
      security:
        - oauth2:
            - solaris_service_account_statement#fees
  /v1/accounts/{account_id}/fee_summary_statement_request:
    post:
      tags:
        - Fee summary statements
      summary: Create a Fee Summary Statement
      description: >-
        Creates a request to issue a fee summary statement upon customer
        request. The statement will be uploaded to the postbox service. You'll
        receive a notification on the webhook event `POSTBOX_ITEM_CREATED` once
        it's available. 
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
            description: The ID of the account for which the statement should be created.
      requestBody:
        content:
          application/json:
            schema:
              example:
                year: 2019
                language: EN
              required:
                - year
                - language
              type: object
              properties:
                year:
                  description: The year for which the statement should be created.
                  type: integer
                language:
                  description: The language in which the statement should be issued.
                  enum:
                    - ES
                    - FR
                    - IT
                    - DE
                    - EN
                  type: string
        description: The content of the request.
      responses:
        '200':
          description: >-
            A Fee Summary statement has already been created based on the
            provided values.
          content: {}
        '201':
          description: The operation was successful.
          content: {}
        '400':
          description: An error occurred on the client side.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400'
        '403':
          description: You are not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error403'
        '404':
          description: The resource could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error500'
      security:
        - oauth2:
            - solaris_service_fee_summary_statement_request#create
  /v1/persons/{person_id}/accounts/{account_id}/messages:
    get:
      tags:
        - Person messages
      summary: Index messages for a person's account
      description: >-
        Returns an array containing all messages sent to the person specified in
        the request URL regarding the given account.
      parameters:
        - $ref: '#/components/parameters/person_id'
        - $ref: '#/components/parameters/account_id-3'
        - $ref: '#/components/parameters/page_size'
        - $ref: '#/components/parameters/page_number'
      responses:
        '200':
          $ref: '#/components/responses/person_messages'
        '403':
          $ref: '#/components/responses/unauthorized_error'
        '404':
          $ref: '#/components/responses/not_found_error'
      security:
        - oauth2:
            - solaris_account_messages_service_message#index
  /v1/persons/{person_id}/messages:
    get:
      tags:
        - Person messages
      summary: Index messages for a person
      description: >-
        Returns an array containing all messages sent to the person specified in
        the request URL.
      parameters:
        - $ref: '#/components/parameters/person_id'
        - $ref: '#/components/parameters/page_size'
        - $ref: '#/components/parameters/page_number'
      responses:
        '200':
          $ref: '#/components/responses/person_messages'
        '403':
          $ref: '#/components/responses/unauthorized_error'
        '404':
          $ref: '#/components/responses/not_found_error'
      security:
        - oauth2:
            - solaris_account_messages_service_person_message#index
  /v1/persons/{person_id}/messages/{id}:
    get:
      tags:
        - Person messages
      summary: Return a message for a person
      description: Returns a specific message for the person specified in the request URL.
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/person_id'
      responses:
        '200':
          $ref: '#/components/responses/person_message'
        '403':
          $ref: '#/components/responses/unauthorized_error'
        '404':
          $ref: '#/components/responses/not_found_error'
      security:
        - oauth2:
            - solaris_account_messages_service_person_message#show
  /v1/persons/{person_id}/accounts/{account_id}/messages/{id}:
    get:
      tags:
        - Person messages
      summary: Retrieve a message for a person
      description: >-
        Returns a specific message for a person regarding the given account as
        specified in the request URL.
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/person_id'
        - $ref: '#/components/parameters/account_id-3'
      responses:
        '200':
          $ref: '#/components/responses/person_message'
        '403':
          $ref: '#/components/responses/unauthorized_error'
        '404':
          $ref: '#/components/responses/not_found_error'
      security:
        - oauth2:
            - solaris_account_messages_service_message#show
  /v1/businesses/{business_id}/accounts/{account_id}/messages:
    get:
      tags:
        - Business messages
      summary: Index messages for a business
      description: >-
        Returns an array containing all messages sent to the business specified
        in the request URL regarding the given account.
      parameters:
        - $ref: '#/components/parameters/business_id'
        - $ref: '#/components/parameters/account_id-3'
        - $ref: '#/components/parameters/page_size'
        - $ref: '#/components/parameters/page_number'
      responses:
        '200':
          $ref: '#/components/responses/business_messages'
        '403':
          $ref: '#/components/responses/unauthorized_error'
        '404':
          $ref: '#/components/responses/not_found_error'
      security:
        - oauth2:
            - solaris_account_messages_service_business_message#index
  /v1/businesses/{business_id}/accounts/{account_id}/messages/{id}:
    get:
      tags:
        - Business messages
      summary: Retrieve a message for a business
      description: >-
        Returns a specific message for a business as specified in the request
        URL.
      parameters:
        - $ref: '#/components/parameters/id'
        - $ref: '#/components/parameters/business_id'
        - $ref: '#/components/parameters/account_id-3'
      responses:
        '200':
          $ref: '#/components/responses/business_message'
        '403':
          $ref: '#/components/responses/unauthorized_error'
        '404':
          $ref: '#/components/responses/not_found_error'
      security:
        - oauth2:
            - solaris_account_messages_service_business_message#show
  /v1/accounts/{account_id}/trusted_ibans:
    post:
      tags:
        - Trusted IBANs
      summary: Add a trusted IBAN
      description: >-
        Adds an IBAN as a trusted IBAN to the account specified in the request
        URL. Transactions to trusted IBANs do not require two-factor
        authentication.<br> **Note:** This endpoint will trigger the **change
        request** process. Specify the `person_id` of an authorized person on
        the account who will receive the 2FA challenge to confirm the trusted
        IBAN.
      parameters:
        - $ref: '#/components/parameters/account_id-2'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - iban
                - person_id
              properties:
                iban:
                  type: string
                person_id:
                  type: string
      responses:
        '200':
          description: The IBAN was successfully added as a trusted IBAN.
          content:
            application/json:
              schema:
                type: object
                properties:
                  iban:
                    type: string
        '202':
          description: >-
            The request has been accepted, and now the customer must complete
            the change request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/change_request'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/internal_error'
      security:
        - oauth2:
            - transaction_information_service_trusted_ibans#create
    get:
      tags:
        - Trusted IBANs
      summary: Index trusted IBANs for an account
      description: >-
        Returns an array containing all IBANs added to the given account as
        trusted IBANs.
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
        - name: filter[approved_by]
          in: query
          description: >-
            Filter the results by the person who approved the trusted IBAN
            creation requests.
          schema:
            type: string
        - name: filter[iban]
          in: query
          description: Filter the results by IBAN.
          schema:
            type: string
        - name: sort
          in: query
          description: >-
            Sort the results by the date and time when the trusted IBAN was
            created.
          example: created_at
          schema:
            type: string
        - name: page[size]
          in: query
          description: Specifies the number of entries to return on each page.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 1000
            default: 10
        - name: page[number]
          in: query
          description: Specifies the number of pages of results to return.
          required: false
          schema:
            type: integer
            minimum: 1
            default: 1
      responses:
        '200':
          description: Successful result of the operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/get_response'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/internal_error'
      security:
        - oauth2:
            - transaction_information_service_trusted_ibans#index
  /v1/accounts/{account_id}/trusted_ibans/{trusted_iban_id}:
    delete:
      tags:
        - Trusted IBANs
      summary: Delete trusted IBAN
      description: >-
        Deletes the trusted IBAN specified in the request URL. Please note the
        following:<ol><li>You must submit the `person_id` of the person who
        added this trusted IBAN as a query parameter in this
        request.</li><li>This endpoint will trigger the **change request**
        process.</li></ol>
      parameters:
        - $ref: '#/components/parameters/account_id-2'
        - name: trusted_iban_id
          in: path
          required: true
          description: ID of the trusted IBAN to delete.
          schema:
            type: string
        - name: person_id
          in: query
          required: true
          description: ID of the person who added the trusted IBAN to the account.
          schema:
            type: string
      responses:
        '202':
          description: The trusted IBAN was successfully deleted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/change_request'
        '204':
          description: The trusted IBAN has already been deleted.
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/internal_error'
      security:
        - oauth2:
            - transaction_information_service_trusted_ibans#delete
  /v1/accounts/{account_id}/virtual_ibans:
    get:
      tags:
        - Virtual IBANs
      summary: List virtual IBANs
      description: Returns all virtual IBANs bound to the account specified in the request.
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
        - name: page[number]
          in: query
          description: >-
            The specific results page to return. See the [pagination
            docs](http://example.com) for more details.
          schema:
            type: string
        - name: page[size]
          in: query
          description: >-
            The size of the results page to return. See the [pagination
            docs](http://example.com) for more details.
          schema:
            type: string
        - name: filter[virtual_iban]
          in: query
          description: Filters the response for a specific virtual IBAN.
          schema:
            type: string
        - name: filter[state]
          in: query
          description: >-
            Filters the response for virtual IBANs based on their state
            (`ACTIVE` or `INACTIVE`).
          schema:
            type: string
      responses:
        '200':
          description: Successful result of the operation.
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VirtualIban'
        '403':
          description: You are not authorized to perform this action.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error403'
        '404':
          description: The account with the given ID could not be found.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error404'
        '500':
          description: Internal server error.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error500'
      security:
        - oauth2:
            - solaris_virtual_iban_management_service_virtual_iban#index
    post:
      tags:
        - Virtual IBANs
      summary: Create virtual IBAN
      description: >-
        Creates a new virtual IBAN and attaches it to the account specified in
        the request.
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        $ref: '#/components/requestBodies/VirtualIban_Create'
      responses:
        '200':
          description: The virtual IBAN was already created.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/VirtualIban_Create_Response'
        '201':
          description: The virtual IBAN was created successfully.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/VirtualIban_Create_Response'
        '400':
          description: An error occurred on the client side.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error-2'
        '403':
          description: You are not authorized to perform this action.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error403'
        '500':
          description: Internal server error.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error500'
      security:
        - oauth2:
            - solaris_virtual_iban_management_service_virtual_iban#create
      x-codegen-request-body-name: body
  /v1/accounts/{account_id}/virtual_ibans/{virtual_iban_id}/disable:
    patch:
      tags:
        - Virtual IBANs
      summary: Disable virtual IBAN
      description: Changes the state of the virtual IBAN in the request URL to `DISABLED`.
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
        - name: virtual_iban_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '202':
          description: The virtual IBAN was successfully disabled.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/VirtualIban_Disable_enable'
        '400':
          description: An error occurred on the client side.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error400'
        '403':
          description: You are not authorized to perform this action.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error403'
        '404':
          description: >-
            The (Account | Virtual IBAN) with the ID (account_id |
            virtual_iban_id) could not be found.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error-2'
        '500':
          description: Internal server error.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error-2'
      security:
        - oauth2:
            - solaris_virtual_iban_management_service_virtual_iban#disable
  /v1/accounts/{account_id}/virtual_ibans/{virtual_iban_id}/enable:
    patch:
      tags:
        - Virtual IBANs
      summary: Enable virtual IBAN
      description: Changes the state of a previously disabled virtual IBAN to `ENABLED`.
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
        - name: virtual_iban_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '202':
          description: The virtual IBAN was enabled.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/VirtualIban_Disable_enable'
        '400':
          description: An error occurred on the client side.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error400'
        '403':
          description: You are not authorized to perform this action.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error403'
        '404':
          description: >-
            The (Account | Virtual IBAN) with the ID (account_id |
            virtual_iban_id) could not be found.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error-2'
        '500':
          description: Internal server error.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Error-2'
      security:
        - oauth2:
            - solaris_virtual_iban_management_service_virtual_iban#enable
  /v1/iban_lookups:
    post:
      tags:
        - IBAN validation
      summary: Validate an IBAN
      description: >-
        This endpoint validates an IBAN. If the IBAN is valid, then the API
        returns details about the number, e.g., the financial institution of the
        bank account and the account number.
      requestBody:
        description: The content of the request.
        content:
          application/json:
            schema:
              required:
                - ibans
              type: object
              properties:
                iban:
                  $ref: '#/components/schemas/IBAN'
        required: true
      responses:
        '200':
          description: >-
            The supplied IBAN is valid. The response contains more detailed
            information about the IBAN.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetIBAN'
        '400':
          description: The API returns this error when the supplied IBAN is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IBANError400'
      security:
        - oauth2:
            - solaris_service_iban#lookup
      x-codegen-request-body-name: body
components:
  schemas:
    Solaris-Enums-LockingReason:
      type: array
      description: >-
        Read-only indicator of the reason a block was applied to the account. If
        the account is not blocked, then this value will contain an empty array.
      items:
        type: string
        enum:
          - AML_FOLLOW_UP_OVERDUE
          - COMPANY_FOUNDATION
          - COMPLIANCE
          - CUSTOMER_WISH
          - DECOUPLED_CARD_DUNNING
          - DECOUPLED_CARD_TERMINATION
          - IDENTIFICATION_FAILED
          - IDENTIFICATION_DOCUMENT_EXPIRED
          - IN_CLOSURE
          - INSOLVENCY
          - LOAN_RESERVATION
          - MISSING_TAX_INFORMATION
          - OTHER
          - SEIZURE
    overdraft:
      type: object
      properties:
        rate:
          type: number
          example: 12.5
        limit:
          type: integer
          example: 10000
    index-account:
      type: object
      properties:
        id:
          type: string
          description: ID of the account.
          example: 5526853938474f3e92b22a03ea57a544cacc
        iban:
          type: string
          description: IBAN associated with the account.
          example: DE76110101001100000999
        bic:
          type: string
          description: BIC associated with the account.
          example: SOBKDEBBXXX
        type:
          type: string
          description: Type of the account.
          example: CHECKING_PERSONAL
          enum:
            - CHECKING_PERSONAL
            - CHECKING_BUSINESS
        locking_status:
          type: string
          description: >-
            Read-only booking block indicating whether funds can be transferred
            to/from the account. The default status is `NO_BLOCK`. Other status
            values indicate that funds may neither be credited to, nor debited
            from, the account. Only authorized Solaris employees can change the
            status of this value. Attempting to perform an action not compliant
            with the current blocking status (e.g., initiating a transaction to
            or from a blocked account) will cause either a return of the
            transaction or an exception.
          enum:
            - NO_BLOCK
            - CREDIT_BLOCK
            - DEBIT_BLOCK
            - BLOCK
        locking_reasons:
          $ref: '#/components/schemas/Solaris-Enums-LockingReason'
        person_id:
          type: string
          description: ID of the person for whom the account was created.
          example: bb66a0161a0a4066abfe133412f6236dcper
        business_id:
          type: string
          description: >-
            ID of the business for whom the account was created. Only filled if
            the account owner is a legal entity.
          example: a9a25dc10aa74244bd0bb75d1ce6b3b5cbiz
        overdraft:
          $ref: '#/components/schemas/overdraft'
    Error400:
      type: object
      properties:
        id:
          type: string
          example: a95f2aaf-4e0c-4d49-8021-8a16a884ed86
        status:
          type: string
          example: '400'
        code:
          type: string
          example: build_pagination_headers_failure
        title:
          type: string
          example: Failed to build pagination headers.
        detail:
          type: string
          example: Cannot connect to database.
    Error500:
      type: object
      properties:
        id:
          type: string
          example: e8915041-9d8c-4d96-9dd1-04e8522ecdbf
        status:
          type: string
          example: '500'
        code:
          type: string
          example: generic_error
        title:
          type: string
          example: Generic Error
        detail:
          type: string
          example: There was an error.
    account:
      type: object
      properties:
        id:
          type: string
          description: ID of the account.
          example: 5526853938474f3e92b22a03ea57a544cacc
        iban:
          type: string
          description: IBAN associated with the account.
          example: DE76110101001100000999
        bic:
          type: string
          description: BIC associated with the account.
          example: SOBKDEBBXXX
        type:
          type: string
          description: Type of the account.
          example: CHECKING_PERSONAL
          enum:
            - CHECKING_PERSONAL
            - CHECKING_BUSINESS
        overdraft:
          $ref: '#/components/schemas/overdraft'
        balance:
          type: object
          description: The current account balance. Value is in Euro cents.
          properties:
            value:
              type: integer
              example: 99000
            unit:
              type: string
              example: cents
            currency:
              type: string
              example: EUR
        available_balance:
          type: object
          description: >-
            The current account balance including reservations that have not yet
            been booked. Value is in Euro cents.
          properties:
            value:
              type: integer
              example: 89000
            unit:
              type: string
              example: cents
            currency:
              type: string
              example: EUR
        locking_status:
          type: string
          description: >-
            Read-only booking block indicating whether funds can be transferred
            to/from the account. The default status is `NO_BLOCK`. Other status
            values indicate that funds may neither be credited to, nor debited
            from, the account. Only authorized Solaris employees can change the
            status of this value. Attempting to perform an action not compliant
            with the current blocking status (e.g., initiating a transaction to
            or from a blocked account) will cause either a return of the
            transaction or an exception.
          enum:
            - NO_BLOCK
            - CREDIT_BLOCK
            - DEBIT_BLOCK
            - BLOCK
        locking_reasons:
          $ref: '#/components/schemas/Solaris-Enums-LockingReason'
        account_limit:
          type: object
          description: >-
            The allowed amount of negative balance on the account. This is
            included into the calculation of the `available_balance`.
          properties:
            value:
              type: integer
              example: 100000
            unit:
              type: string
              example: cents
            currency:
              type: string
              example: EUR
        person_id:
          type: string
          description: ID of the person for whom the account was created.
          example: bb66a0161a0a4066abfe133412f6236dcper
        business_id:
          type: string
          description: >-
            ID of the business for whom the account was created. Only filled if
            the account owner is a legal entity.
          example: a9a25dc10aa74244bd0bb75d1ce6b3b5cbiz
        partner_id:
          type: string
          description: ID of the Solaris partner with whom the account is associated.
          example: 55e47118b78741dbb81cdd3d372bc448cpar
        opened_at:
          type: string
          description: Date and time when the account was opened (UTC format).
          example: '2017-10-11T22:33:26Z'
        status:
          type: string
          description: Status of the account.
          example: ACTIVE
          enum:
            - ACTIVE
            - INACTIVE
        closed_at:
          type: string
          description: Date and time when the account was closed (UTC format).
          example: '2022-01-01T12:11:16Z'
    Error404:
      type: object
      properties:
        id:
          type: string
          example: a95f2aaf-4e0c-4d49-8021-8a16a884ed86
        status:
          type: string
          example: '404'
        code:
          type: string
          example: model_not_found
        title:
          type: string
          example: Model Not Found
        detail:
          type: string
          example: Couldn't find 'Account' for id 'DE24112233445566'.
    money:
      type: object
      properties:
        value:
          type: integer
          description: Amount in cents
          example: 2000
        unit:
          type: string
          description: Money unit - cents
          example: cents
        currency:
          type: string
          description: Currency - 'EUR'
          example: EUR
    seizure_protection:
      type: object
      description: >-
        (For **seizure protected accounts only**) An object that describes the
        current Seizure Protection state of the account. It includes the amount
        of funds on the account that has been blocked by a seizure and the
        amount that is seizure-protected.
      properties:
        current_blocked_amount:
          description: >-
            The current amount of funds that is unavailable to the customer
            because it has been blocked by a seizure. This amount is in excess
            of the current protected amount. In the next month, the monthly
            allowance out of this amount will be released to the customer and
            the excess will remain blocked.
          allOf:
            - $ref: '#/components/schemas/money'
          example:
            value: 10000
            currency: EUR
            unit: cents
        protected_amount:
          description: >-
            The seizure-protected funds for the current month plus any
            seizure-protected funds that rolled over from the previous month(s).
          allOf:
            - $ref: '#/components/schemas/money'
          example:
            value: 5000
            currency: EUR
            unit: cents
        protected_amount_expiring:
          description: >-
            The amount of seizure-protected funds rolled over from previous
            months that will expire if the customer does not spend it by the end
            of the current month.
          allOf:
            - $ref: '#/components/schemas/money'
          example:
            value: 0
            currency: EUR
            unit: cents
        protected_amount_expiring_date:
          type: string
          format: date
          description: >-
            The date when the funds described in `protected_amount_expiring`
            will expire. Note that this is calculated based on the **UTC time
            zone.**
          example: '2022-07-31'
    account_balance:
      type: object
      description: >-
        The amount of funds available on the account. Account balances are
        represented through two properties: `balance` and `available_balance`.
      properties:
        available_balance:
          type: object
          description: >-
            The amount of funds that a customer currently has on their account
            minus any funds that are held in reservations (i.e., the amount of
            money the customer currently has at their disposal) including the
            account limit.
          properties:
            value:
              type: integer
              example: 89000
            unit:
              type: string
              example: cents
            currency:
              type: string
              example: EUR
        balance:
          type: object
          description: >-
            The amount of funds that a customer currently has on their account.
            This object only includes posted bookings (i.e., bookings with an
            elapsed valuta_date).
          properties:
            value:
              type: integer
              example: 99000
            unit:
              type: string
              example: cents
            currency:
              type: string
              example: EUR
        seizure_protection:
          $ref: '#/components/schemas/seizure_protection'
    average_daily_balance:
      type: object
      properties:
        acccount_id:
          type: string
          example: e48c29b85992b8772eb7ddd518490920cacc
        average_daily_balance:
          $ref: '#/components/schemas/money'
    Solaris-Decorators-AccountTypeEnum:
      type: string
      description: The type of account.
      enum:
        - BASIC_ACCOUNT
        - BILLING_ACCOUNT
        - CALL_MONEY
        - CASH_DEPOSIT
        - CHECKING_BUSINESS
        - CHECKING_BUSINESS_CREDITLINE
        - CHECKING_FIXED_MATURITY
        - CHECKING_OVERDRAFT
        - CHECKING_OVERDRAFT_FLEXIBLE
        - CHECKING_PERSON_CREDIT_LINE
        - CHECKING_PERSON_INSTALMENT_LOAN
        - CHECKING_PERSONAL
        - CHECKING_PERSONAL_OVERDRAFT
        - CHECKING_SOLE_PROPRIETOR
        - CLEARING_ACCOUNT
        - COLLECTION_ACCOUNT
        - DECOUPLED_CARD_BUSINESS
        - DEPOSIT_FIXED_TERM_BUSINESS
        - DEPOSIT_TIME_PASSIVE
        - EMONEY_PARKING
        - EMONEY_PREPAID
        - EMONEY_PREPAID_POOLING
        - ESCROW_LIABILITY
        - EXTERNAL_ACCOUNT
        - FACTORING
        - GENERAL_LEDGER
        - GUARANTEE
        - INDIVIDUAL_SPECIFIC_PROVISIONS
        - LIABILITY_ASSUMPTION
        - LOAN_ACCOUNT_CREDIT_LINE
        - LOAN_ACCOUNT_MUNICIPALITIES
        - LOAN_BALLOON
        - LOAN_BULLET
        - LOAN_RATE_FIXED
        - LOAN_RATE_VARIABLE
        - LORO
        - SDD_DEPOSIT
        - SETTLEMENT
        - SME_LOAN
        - SURETY
        - TAGESGELD_ACTIVE
    overdraft-2:
      type: object
      description: Object describing an overdraft on the account.
      properties:
        rate:
          type: number
          description: The overdraft rate.
        limit:
          type: integer
          description: The overdraft limit.
    Decorators-AccountWithoutBalanceAndLimit:
      type: object
      properties:
        id:
          type: string
          description: The ID of the account.
          example: efdd8c5e7ec0b4e36768c6de39e6cfc0cacc
        iban:
          type: string
          description: The account's IBAN.
          example: DE05011010100000000043
        bic:
          type: string
          description: The account's BIC.
          example: SOBKDEB2XXX
        type:
          $ref: '#/components/schemas/Solaris-Decorators-AccountTypeEnum'
        purpose:
          type: string
          description: The purpose of the account.
          example: primary
        opened_at:
          type: string
          description: UTC timestamp from when the account was opened.
          example: '2020-04-25T12:50:33Z'
        status:
          type: string
          description: Current status of the account
          example: ACTIVE
        locking_status:
          type: string
          description: >-
            Indicates whether or not funds can be transferred to or from the
            account.
          example: BLOCK
          enum:
            - BLOCK
            - CREDIT_BLOCK
            - DEBIT_BLOCK
            - NO_BLOCK
        locking_reasons:
          $ref: '#/components/schemas/Solaris-Enums-LockingReason'
        person_id:
          type: string
          description: Person ID of the account owner.
          example: 0ba2211cab11af6094d60ead81f2bd9dcper
        business_id:
          type: string
          description: ID of the business that owns the account (if applicable).
          example: 52e6a9b8a559d842ed7d8901b0e1bf4bcbiz
        overdraft:
          $ref: '#/components/schemas/overdraft-2'
    person_account_body:
      type: object
      required:
        - block_reasons
        - account_id
        - person_id
      properties:
        block_reasons:
          type: array
          description: The reason the customer wants to block/unblock their account.
          example:
            - CUSTOMER_WISH
          items:
            type: string
            enum:
              - CUSTOMER_WISH
              - COMPLIANCE_PARTNER
        acccount_id:
          type: string
          description: The account ID.
          example: adc123a45d6d7cf8fbfeed537ba919d5cacc
        person_id:
          type: string
          description: The customer's unique person ID.
          example: dc1a6812a14f6cc338cd084208535bcdcper
        comment:
          type: string
          description: Additional information about the request.
    error:
      type: object
      required:
        - errors
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: A unique identifier for this error message.
                example: b805c37f-75e9-4445-974c-12d28e7584ee
              status:
                type: integer
                description: >-
                  The HTTP status code of the response (typically in the range
                  4xx–5xx).
                example: 400
              code:
                type: string
                description: A machine-readable representation of the error type.
                example: invalid_json
              title:
                type: string
                description: The human-readable name of the error type.
                example: Invalid JSON
              detail:
                type: string
                description: A human-readable description of the error.
                example: The provided JSON was not properly formatted.
            example:
              id: b805c37f-75e9-4445-974c-12d28e7584ee
              status: 400
              code: invalid_json
              title: Invalid JSON
              detail: The provided JSON was not properly formatted.
    internal_error:
      allOf:
        - $ref: '#/components/schemas/error'
        - type: object
          example:
            errors:
              - id: b805c37f-75e9-4445-974c-12d28e7584ee
                status: 500
                code: generic_error
                title: Generic Error
                detail: There was an error.
    solaris_server_decorators_account_without_balance:
      type: object
      properties:
        id:
          type: string
          description: ID of the account.
          example: 5526853938474f3e92b22a03ea57a544cacc
        iban:
          type: string
          description: IBAN associated with the account.
          example: DE76110101001100000999
        bic:
          type: string
          description: BIC associated with the account.
          example: SOBKDEBBXXX
        type:
          type: string
          description: Type of the account.
          example: CHECKING_PERSONAL
          enum:
            - CHECKING_PERSONAL
            - CHECKING_BUSINESS
        purpose:
          type: string
          description: purpose of account
        currency:
          type: string
          description: currency of account
          example: EUR
        opened_at:
          type: string
          description: Date and time when the account was opened (UTC format).
          example: '2017-10-11T22:33:26Z'
        locking_status:
          type: string
          description: >-
            Read-only booking block indicating whether funds can be transferred
            to/from the account. The default status is `NO_BLOCK`. Other status
            values indicate that funds may neither be credited to, nor debited
            from, the account. Only authorized Solaris employees can change the
            status of this value. Attempting to perform an action not compliant
            with the current blocking status (e.g., initiating a transaction to
            or from a blocked account) will cause either a return of the
            transaction or an exception.
          enum:
            - NO_BLOCK
            - CREDIT_BLOCK
            - DEBIT_BLOCK
            - BLOCK
        locking_reasons:
          $ref: '#/components/schemas/Solaris-Enums-LockingReason'
        account_limit:
          type: object
          description: >-
            The allowed amount of negative balance on the account. This is
            included into the calculation of the `available_balance`.
          properties:
            value:
              type: integer
              example: 100000
            unit:
              type: string
              example: cents
            currency:
              type: string
              example: EUR
        person_id:
          type: string
          description: ID of the person for whom the account was created.
          example: bb66a0161a0a4066abfe133412f6236dcper
        business_id:
          type: string
          description: >-
            ID of the business for whom the account was created. Only filled if
            the account owner is a legal entity.
          example: a9a25dc10aa74244bd0bb75d1ce6b3b5cbiz
        overdraft:
          $ref: '#/components/schemas/overdraft'
    closure_reason_enum:
      type: string
      description: >-
        List of possible reasons for an account closure request initiated by
        Solaris.
      example: COMPLIANCE_IMMEDIATE_INTERNAL
      enum:
        - ACCOUNT_REVOCATION
        - ACCOUNT_REVOCATION_INTERNAL
        - COMPLIANCE_IMMEDIATE_INTERNAL
        - COMPLIANCE_ORDINARY_INTERNAL
        - CUSTOMER_WISH
        - CUSTOMER_WISH_INTERNAL
        - DUNNING_DECOUPLED_CARD_INTERNAL
        - INSOLVENCY_IMMEDIATE_INTERNAL
        - INSOLVENCY_ORDINARY_INTERNAL
        - PARTNER_SERVICE_ACCOUNT_TERMINATED
        - RELATIONSHIP_TERMINATION
        - RELATIONSHIP_TERMINATION_INTERNAL
        - SEIZURES_ORDINARY_INTERNAL
        - TECHNICAL_IMMEDIATE_INTERNAL
    solaris_server_decorators_account_with_status:
      type: object
      properties:
        id:
          type: string
          description: ID of the account.
          example: 5526853938474f3e92b22a03ea57a544cacc
        iban:
          type: string
          description: IBAN associated with the account.
          example: DE76110101001100000999
        bic:
          type: string
          description: BIC associated with the account.
          example: SOBKDEBBXXX
        type:
          type: string
          description: Type of the account.
          example: CHECKING_PERSONAL
          enum:
            - CHECKING_PERSONAL
            - CHECKING_BUSINESS
        purpose:
          type: string
          description: purpose of account
        currency:
          type: string
          description: currency of account
          example: EUR
        balance:
          type: object
          description: The current account balance. Value is in Euro cents.
          properties:
            value:
              type: integer
              example: 99000
            unit:
              type: string
              example: cents
            currency:
              type: string
              example: EUR
        available_balance:
          type: object
          description: >-
            The current account balance including reservations that have not yet
            been booked. Value is in Euro cents.
          properties:
            value:
              type: integer
              example: 89000
            unit:
              type: string
              example: cents
            currency:
              type: string
              example: EUR
        opened_at:
          type: string
          description: Date and time when the account was opened (UTC format).
          example: '2017-10-11T22:33:26Z'
        locking_status:
          type: string
          description: >-
            Read-only booking block indicating whether funds can be transferred
            to/from the account. The default status is `NO_BLOCK`. Other status
            values indicate that funds may neither be credited to, nor debited
            from, the account. Only authorized Solaris employees can change the
            status of this value. Attempting to perform an action not compliant
            with the current blocking status (e.g., initiating a transaction to
            or from a blocked account) will cause either a return of the
            transaction or an exception.
          enum:
            - NO_BLOCK
            - CREDIT_BLOCK
            - DEBIT_BLOCK
            - BLOCK
        locking_reasons:
          $ref: '#/components/schemas/Solaris-Enums-LockingReason'
        account_limit:
          type: object
          description: >-
            The allowed amount of negative balance on the account. This is
            included into the calculation of the `available_balance`.
          properties:
            value:
              type: integer
              example: 100000
            unit:
              type: string
              example: cents
            currency:
              type: string
              example: EUR
        person_id:
          type: string
          description: ID of the person for whom the account was created.
          example: bb66a0161a0a4066abfe133412f6236dcper
        business_id:
          type: string
          description: >-
            ID of the business for whom the account was created. Only filled if
            the account owner is a legal entity.
          example: a9a25dc10aa74244bd0bb75d1ce6b3b5cbiz
        status:
          type: string
        closure_reason:
          description: The reason for the account closure.
          allOf:
            - $ref: '#/components/schemas/closure_reason_enum'
        overdraft:
          $ref: '#/components/schemas/overdraft'
        closed_at:
          type: string
          description: Date and time when the account was closed (UTC format).
          example: '2022-01-01T12:11:16Z'
    BusinessReferenceAccount:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the reference account.
        status:
          type: string
          description: Current status of the reference account.
        name:
          type: string
          description: The reference account holder's name.
        iban:
          type: string
          description: The reference account's IBAN.
        mandate_number:
          type: string
          description: The number of the SDD mandate associated with the reference account.
        mandate_signature_date:
          type: string
          format: date
          description: The date when the customer signed the SDD mandate.
        mandate_type:
          type: string
          description: The type of SDD mandate.
          enum:
            - B2B
            - Core
      example:
        id: ee4cc80bee604de09d036d8b7a9b6cb0
        status: ACTIVE
        name: Max Mustermann
        iban: DE32110101001000000029
        mandate_number: example-mandate-number
        mandate_signature_date: '2020-01-08'
        mandate_type: Core
    InvalidRequestError:
      type: object
      properties:
        id:
          type: string
          example: a95f2aaf-4e0c-4d49-8021-8a16a884ed86
        code:
          type: string
          example: invalid_request
        title:
          type: string
          example: Invalid Request
        details:
          type: string
          example: Request is invalid
    Error:
      type: object
      properties:
        id:
          type: string
          example: a95f2aaf-4e0c-4d49-8021-8a16a884ed86
        code:
          type: string
          example: build_pagination_headers_failure
        title:
          type: string
          example: failed to build pagination headers
        details:
          type: string
          example: cannot connect to database
    ModelNotFound:
      type: object
      properties:
        id:
          type: string
          example: a95f2aaf-4e0c-4d49-8021-8a16a884ed86
        code:
          type: string
          example: model_not_found
        title:
          type: string
          example: Model Not Found
        details:
          type: string
          example: Model was not found
    InternalServerError:
      type: object
      properties:
        id:
          type: string
          example: a95f2aaf-4e0c-4d49-8021-8a16a884ed86
        code:
          type: string
          example: generic_error
        title:
          type: string
          example: Internal Server Error
        details:
          type: string
          example: Internal server error. occurred
    PersonReferenceAccount:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the reference account.
        status:
          type: string
          description: Current status of the reference account.
        name:
          type: string
          description: The reference account holder's name.
        iban:
          type: string
          description: The reference account's IBAN.
        mandate_number:
          type: string
          description: The number of the SDD mandate associated with the reference account.
        mandate_signature_date:
          type: string
          format: date
          description: The date when the customer signed the SDD mandate.
      example:
        id: ee4cc80bee604de09d036d8b7a9b6cb0
        status: ACTIVE
        name: Max Mustermann
        iban: DE32110101001000000029
        mandate_number: example-mandate-number
        mandate_signature_date: '2020-01-08'
    amount:
      type: object
      properties:
        value:
          type: integer
          description: The amount of the transaction, in Euro cents.
        currency:
          type: string
          description: The currency of the transaction.
          enum:
            - EUR
        unit:
          type: string
          description: The unit of the transaction.
    rejected_transaction:
      type: object
      properties:
        id:
          type: string
          description: ID of the rejected transaction.
          example: 95d06bc4e448af0d78259549964e4b4bsddm
        sender_name:
          type: string
          description: The name of the person who sent the funds.
          example: John Mustermann
        sender_iban:
          type: string
          description: IBAN of the account from which the funds were sent.
          example: DE32110101001000000029
        amount:
          allOf:
            - $ref: '#/components/schemas/amount'
          description: The amount of the transaction.
          example:
            value: 10000
            unit: cents
            currency: EUR
        rejection_reason:
          type: string
          description: The reason why Solaris rejected the transaction.
          example: Transaction sender name and account debtor name do not match.
        rejected_at:
          type: string
          description: UTC timestamp from when Solaris rejected the transaction.
          example: '2022-08-18T08:36:55Z'
    rejected_transactions:
      type: array
      items:
        $ref: '#/components/schemas/rejected_transaction'
    error-2:
      type: object
      required:
        - errors
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: Error identifier
              status:
                type: integer
                description: Error status
              code:
                type: string
                description: Error code
              title:
                type: string
                description: Error title
              detail:
                type: string
                description: Error detail
    unauthorized_error:
      allOf:
        - $ref: '#/components/schemas/error-2'
        - type: object
          example:
            errors:
              - id: 7aaf4dfb-b7cd-4a50-a1d2-fad0e19624ef
                status: 403
                code: unauthorized_action
                title: Unauthorized Action
                detail: Unauthorized action is not allowed.
    not_found_error:
      allOf:
        - $ref: '#/components/schemas/error-2'
        - type: object
          example:
            errors:
              - id: 93537ebd-c038-4a56-aa1b-17e540f57c3a
                status: 404
                code: model_not_found
                title: Model Not Found
                detail: Couldn't find 'Solaris::Account' for id.
    internal_error-2:
      allOf:
        - $ref: '#/components/schemas/error-2'
        - type: object
          example:
            errors:
              - id: b5a79a32-fc0c-4326-aed4-a7e76d565f86
                status: 500
                code: generic_error
                title: Generic Error
                detail: There was an error.
    status_enum:
      type: string
      description: Possible status values for an account closure request.
      example: IN_PROGRESS
      enum:
        - INITIATED
        - CONFIRMED
        - IN_PROGRESS
        - COMPLETED
        - FAILED
        - REVOKED
    account_closure_request:
      type: object
      properties:
        id:
          type: string
          description: ID of the account closure request.
          example: f8d7fbbd587047a0aa449ce69d2d6c08acrq
        closure_reason:
          description: The reason for the account closure.
          allOf:
            - $ref: '#/components/schemas/closure_reason_enum'
        status:
          description: Status of the account closure request.
          allOf:
            - $ref: '#/components/schemas/status_enum'
        account_id:
          type: string
          description: ID of the account to be closed.
          example: 5526853938474f3e92b22a03ea57a544cacc
        technical_closure_date:
          type: string
          format: date
          example: '2021-10-11'
          description: The date when the account was removed from the Solaris system.
        legal_closure_date:
          type: string
          format: date
          example: '2021-10-11'
          description: >-
            The date when the contractual relationship underlying the
            product/account ends.
        failure_reason:
          type: object
          description: >-
            An object containing information about the reason why an account
            closure request has failed.
          properties:
            code:
              type: string
              description: Code value describing the failure_reason.
              enum:
                - account_inactive
                - negative_balance
                - positive_balance
                - accrued_interest
                - forced_failure
                - processing_timeout
            detail:
              type: string
              description: >-
                Additional details about the failure_reason. Check the guide for
                the
                [mapping](https://docs.solarisgroup.com/guides/compliance/account-closure/#failure-reasons)
                between the values of the fields `code` and `detail`.
              enum:
                - Account already technically closed.
                - Account balance is negative, can't perform technical closure.
                - Account balance is positive, can't perform technical closure.
                - >-
                  Accrued interest found on the account, can't perform technical
                  closure.
                - >-
                  Account Closure was manually stopped. Please contact Solaris
                  Customer Support for details.
                - >-
                  Account Closure failed. Please contact Solaris Customer
                  Support for details.
          example:
            code: negative_balance
            detail: Account balance is negative, can't perform technical closure.
        payout_allowed:
          type: boolean
          description: >-
            payout_allowed is deciding whether the funds can be paid out in the
            automated process, but it also serves as information for the Partner
            on whether or not the Customer is allowed to pay out funds from the
            account.
          enum:
            - false
            - true
        updated_at:
          type: string
          format: date-time
          description: Updated date and time
          example: '2021-12-22T15:05:33.634Z'
    account_closure_requests:
      type: array
      items:
        $ref: '#/components/schemas/account_closure_request'
    closure_reason_external_enum:
      type: string
      description: >-
        List of possible reasons for an account closure request initiated by a
        partner.
      example: CUSTOMER_WISH
      enum:
        - ACCOUNT_REVOCATION
        - CUSTOMER_WISH
        - PARTNER_SERVICE_ACCOUNT_TERMINATED
        - RELATIONSHIP_TERMINATION
        - COMPLIANCE_IMMEDIATE_PARTNER
    AccountClosureRequest_Create_Request:
      type: object
      required:
        - account_id
        - closure_reason
      properties:
        account_id:
          type: string
          description: ID of the account to be closed.
          example: 5526853938474f3e92b22a03ea57a544cacc
        closure_reason:
          description: The reason for the account closure.
          example: CUSTOMER_WISH
          allOf:
            - $ref: '#/components/schemas/closure_reason_external_enum'
    FeeTransaction:
      type: object
      properties:
        type:
          type: string
          description: >-
            The type of fee. Note that you may only collect the types of fees
            that have been enabled for you.
          example: ChargeAccountMaintenance
        amount:
          type: object
          description: The amount of the fee transaction.
          properties:
            value:
              type: integer
              example: 499
            currency:
              type: string
              example: EUR
        reconciliation_id:
          type: string
          description: >-
            An ID linking a fee transaction to an account booking for
            reconciliation.
          example: 938cfdf93ef54bdcbd4e955584da3bf0fct
        initiator_reference:
          type: string
          description: Optional reference for the fee transaction to be populated by you.
          example: 2022_08_acct_maint
        original_transaction_id:
          type: string
          description: >-
            Optional ID to be provided for fee types that relate to or are
            charged for individual transactions. In this case, you would provide
            the ID of the booking linked to the transaction.
          example: 6d4659e500ef4b10aa48d6b08d0d3e7b
        solaris_initiated:
          type: boolean
          description: >-
            A field to indicate whether the fee transaction solaris initiated or
            not.
          example: false
        valuta_date:
          type: string
          description: >-
            Optional valuta date provided by client. If both
            'original_transaction_id' and 'valuta_date' are provided in the
            request payload, the provided valuta_data will be used.
          example: '2023-06-01'
    ForbiddenError:
      type: object
      properties:
        id:
          type: string
          example: a95f2aaf-4e0c-4d49-8021-8a16a884ed86
        code:
          type: string
          example: unauthorized_action
        title:
          type: string
          example: Unauthorized Action
        details:
          type: string
          example: Unauthorized action is not allowed.
    InternalServerError-2:
      type: object
      properties:
        id:
          type: string
          example: a95f2aaf-4e0c-4d49-8021-8a16a884ed86
        code:
          type: string
          example: generic_error
        title:
          type: string
          example: Internal Server Error
        details:
          type: string
          example: Internal server error occurred
    MainAccount:
      type: string
      description: ID of the main account.
      example: 148c29b85992b8772eb7ddd518490110cacc
    DepositTypes:
      description: The account type.
      type: string
      enum:
        - SAVINGS_ACCOUNT
    Reference:
      description: |
        UUID to use as an idempotency reference for the transaction.
      type: string
      format: uuid
      example: 162ddd7e-790c-5963-908f-4cedfd30f9a1
    CreateDepositAccountsMappings_Request:
      type: object
      required:
        - main_account_id
        - deposit_type
        - reference
      properties:
        main_account_id:
          $ref: '#/components/schemas/MainAccount'
        deposit_type:
          $ref: '#/components/schemas/DepositTypes'
        reference:
          $ref: '#/components/schemas/Reference'
    DepositStatus:
      type: string
      description: The current status of the savings account.
      enum:
        - OPENED
        - TAX_REGISTERED
        - ACTIVE
        - INACTIVE
        - FAILED
    CreateDepositAccountsMappings_Response:
      type: object
      required:
        - id
        - main_account_id
        - deposit_type
        - reference
      properties:
        id:
          description: ID of the mapping between the main account and the savings account.
          type: string
          example: d222a0b8-07ea-49be-83c1-68719be286e8
        main_account_id:
          $ref: '#/components/schemas/MainAccount'
        status:
          $ref: '#/components/schemas/DepositStatus'
        deposit_type:
          $ref: '#/components/schemas/DepositTypes'
        reference:
          $ref: '#/components/schemas/Reference'
    Solaris-Errors-400:
      type: object
      properties:
        id:
          type: string
          example: a95f2aaf-4e0c-4d49-8021-8a16a884ed86
        status:
          type: string
          example: '400'
        code:
          type: string
          example: build_pagination_headers_failure
        title:
          type: string
          example: Failed to build pagination headers.
        details:
          type: string
          example: Cannot connect to database.
    Solaris-Errors-403:
      type: object
      properties:
        id:
          type: string
          example: a95f2aaf-4e0c-4d49-8021-8a16a884ed86
        status:
          type: string
          example: '403'
        code:
          type: string
          example: unauthorized_action
        title:
          type: string
          example: Unauthorized Action
        details:
          type: string
          example: Unauthorized action is not allowed.
    Solaris-Errors-404:
      type: object
      properties:
        id:
          type: string
          example: a95f2aaf-4e0c-4d49-8021-8a16a884ed86
        status:
          type: string
          example: '404'
        code:
          type: string
          example: model_not_found
        title:
          type: string
          example: Model Not Found
        details:
          type: string
          example: Couldn't find {resource} for id {resource_id}.
    Solaris-Errors-500:
      type: object
      properties:
        id:
          type: string
          example: e8915041-9d8c-4d96-9dd1-04e8522ecdbf
        status:
          type: string
          example: '500'
        code:
          type: string
          example: generic_error
        title:
          type: string
          example: Generic Error
        details:
          type: string
          example: There was an error.
    Solaris-Resources-Money-With-Unit:
      type: object
      properties:
        value:
          type: integer
          description: The amount.
          example: 5000
        unit:
          type: string
          description: Money unit used to represent the amount.
          example: cents
        currency:
          type: string
          description: The currency in which the amount is represented.
          example: EUR
    PayInRequest:
      type: object
      required:
        - main_account_id
        - reference
        - amount
      properties:
        main_account_id:
          $ref: '#/components/schemas/MainAccount'
        reference:
          $ref: '#/components/schemas/Reference'
        description:
          type: string
          description: Optional note about the transaction.
          example: Transfer money into Deposit Account
        amount:
          description: The amount to pay in to the savings account.
          allOf:
            - $ref: '#/components/schemas/Solaris-Resources-Money-With-Unit'
    PayInResponse:
      type: object
      required:
        - id
        - main_account_id
        - reference
        - amount
      properties:
        id:
          description: Transaction ID of the pay-in request.
          type: string
          example: d222a0b8-07ea-49be-83c1-68719be286e8
        main_account_id:
          $ref: '#/components/schemas/MainAccount'
        reference:
          $ref: '#/components/schemas/Reference'
        description:
          type: string
          description: Optional note about the transaction.
          example: Transfer money from Deposit Account to Main Account
        amount:
          description: The amount of the transaction.
          allOf:
            - $ref: '#/components/schemas/Solaris-Resources-Money-With-Unit'
        created_at:
          type: string
          format: date-time
          description: UTC timestamp from when the transaction was requested.
          example: '2023-10-10T16:02:54Z'
    PayOutRequest:
      type: object
      required:
        - main_account_id
        - reference
        - amount
      properties:
        main_account_id:
          $ref: '#/components/schemas/MainAccount'
        reference:
          $ref: '#/components/schemas/Reference'
        description:
          type: string
          description: Optional note about the transaction.
          example: Transfer money from Deposit Account to Main Account
        amount:
          description: The amount to pay out to the main account.
          allOf:
            - $ref: '#/components/schemas/Solaris-Resources-Money-With-Unit'
    PayOutResponse:
      type: object
      required:
        - id
        - main_account_id
        - reference
        - amount
      properties:
        id:
          description: Transaction ID of the payout request.
          type: string
          example: d222a0b8-07ea-49be-83c1-68719be286e8
        main_account_id:
          $ref: '#/components/schemas/MainAccount'
        reference:
          $ref: '#/components/schemas/Reference'
        description:
          type: string
          description: Optional note about the transaction.
          example: Transfer money from Deposit Account to Main Account
        amount:
          description: The amount of the transaction.
          allOf:
            - $ref: '#/components/schemas/Solaris-Resources-Money-With-Unit'
        created_at:
          type: string
          format: date-time
          description: UTC timestamp from when the transaction was requested.
          example: '2023-10-10T16:02:54Z'
    ValidFromYear:
      type: string
      example: '2023'
      description: Year from which the tax exemption order takes effect.
    ValidToYear:
      type: string
      example: '2025'
      description: Year until which the tax exemption order applies.
    TaxExemptionReadResponse:
      type: object
      required:
        - id
        - reference
        - amount
        - valid_from_year
        - status
      properties:
        id:
          description: ID of the tax exemption order.
          type: string
          example: d222a0b8-07ea-49be-83c1-68719be286e8
        amount:
          description: The amount to be exempted from tax.
          allOf:
            - $ref: '#/components/schemas/Solaris-Resources-Money-With-Unit'
        valid_from_year:
          $ref: '#/components/schemas/ValidFromYear'
        valid_to_year:
          $ref: '#/components/schemas/ValidToYear'
        status:
          description: The current status of the tax exemption order.
          type: string
          enum:
            - ACTIVE
            - INACTIVE
            - DELETED
            - EXPIRED
            - INVALID
          example: ACTIVE
    TaxExemptionCreateRequest:
      type: object
      required:
        - reference
        - amount
        - valid_from_year
      properties:
        reference:
          $ref: '#/components/schemas/Reference'
        amount:
          description: The amount to be exempted from tax.
          allOf:
            - $ref: '#/components/schemas/Solaris-Resources-Money-With-Unit'
        valid_from_year:
          $ref: '#/components/schemas/ValidFromYear'
        valid_to_year:
          $ref: '#/components/schemas/ValidToYear'
    TaxExemptionCreateResponse:
      type: object
      required:
        - id
        - reference
        - amount
        - valid_from_year
      properties:
        id:
          description: ID of the tax exemption order.
          type: string
          example: d222a0b8-07ea-49be-83c1-68719be286e8
        reference:
          $ref: '#/components/schemas/Reference'
        amount:
          description: The amount to be exempted from tax.
          allOf:
            - $ref: '#/components/schemas/Solaris-Resources-Money-With-Unit'
        valid_from_year:
          $ref: '#/components/schemas/ValidFromYear'
        valid_to_year:
          $ref: '#/components/schemas/ValidToYear'
    GenericConflictError:
      type: object
      properties:
        id:
          type: string
          example: b35f2aaf-4e0c-4d49-8021-8a16a884ed81
          description: X-Request-ID of the http request
        status:
          type: string
          example: '409'
        code:
          type: string
          example: record_not_unique
        title:
          type: string
          example: Record not unique
        details:
          type: string
          example: Record already exists.
    TaxExemptionDeleteResponse:
      type: object
      required:
        - id
      properties:
        id:
          description: ID of the tax exemption order.
          type: string
          example: d222a0b8-07ea-49be-83c1-68719be286e8
    TaxExemptionUpdateRequest:
      type: object
      properties:
        amount:
          description: The amount to be exempted from tax.
          allOf:
            - $ref: '#/components/schemas/Solaris-Resources-Money-With-Unit'
        valid_from_year:
          $ref: '#/components/schemas/ValidFromYear'
        valid_to_year:
          $ref: '#/components/schemas/ValidToYear'
    TaxExemptionUpdateResponse:
      type: object
      required:
        - id
        - amount
        - valid_from_year
      properties:
        id:
          description: ID of the tax exemption order.
          type: string
          example: d222a0b8-07ea-49be-83c1-68719be286e8
        amount:
          description: The amount to be exempted from tax.
          allOf:
            - $ref: '#/components/schemas/Solaris-Resources-Money-With-Unit'
        valid_from_year:
          $ref: '#/components/schemas/ValidFromYear'
        valid_to_year:
          $ref: '#/components/schemas/ValidToYear'
    GenericClientError:
      type: object
      properties:
        id:
          type: string
          example: b35f2aaf-4e0c-4d49-8021-8a16a884ed81
          description: X-Request-ID of the http request
        status:
          type: string
          example: '400'
        code:
          type: string
          example: build_pagination_headers_failure
        title:
          type: string
          example: Failed to build pagination headers.
        details:
          type: string
          example: Cannot connect to database.
    GenericClientErrorPatch:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/GenericClientError'
    GenericForbiddenError:
      type: object
      properties:
        id:
          type: string
          example: a95f2aaf-4e0c-4d49-8021-8a16a884ed86
          description: X-Request-ID of the http request
        status:
          type: string
          example: '403'
        code:
          type: string
          example: forbidden_error
        title:
          type: string
          example: Forbidden Error
        details:
          type: string
          example: No Access to the given resource.
    GenericForbiddenErrorPatch:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/GenericForbiddenError'
    GenericNotFoundError:
      type: object
      properties:
        id:
          type: string
          example: c22f2aaf-4e0c-4d49-8021-8a16a884ed86
          description: X-Request-ID of the http request
        status:
          type: string
          example: '404'
        code:
          type: string
          example: resource_not_found
        title:
          type: string
          example: Resource Not Found
        details:
          type: string
          example: No resource found for the given ID.
    GenericNotFoundErrorPatch:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/GenericNotFoundError'
    GenericServerError:
      type: object
      properties:
        id:
          type: string
          example: a88f2aaf-4e0c-4d49-8021-8a16a884ed81
          description: X-Request-ID of the http request
        status:
          type: string
          example: '500'
        code:
          type: string
          example: generic_error
        title:
          type: string
          example: Generic Error
        details:
          type: string
          example: Error while processing this request.
    GenericServerErrorPatch:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/GenericServerError'
    TaxExemptionCloseResponse:
      type: object
      required:
        - id
      properties:
        id:
          description: ID of the tax exemption order.
          type: string
          example: d222a0b8-07ea-49be-83c1-68719be286e8
    TaxExemptionGetUtilizationResponse:
      type: object
      required:
        - id
      properties:
        id:
          description: >-
            The ID of the request to retrieve the tax exemption utilization
            details.
          type: string
          example: d222a0b8-07ea-49be-83c1-68719be286e8
    MoneyAmount:
      type: object
      properties:
        value:
          type: integer
          format: int64
          example: 1400
        currency:
          type: string
          enum:
            - EUR
        unit:
          type: string
          enum:
            - cents
          example: cents
    GetInterestDetailsResponse:
      type: object
      required:
        - interest_rate
        - accrued_interest
      properties:
        interest_rate:
          description: The interest rate that applies to the savings account.
          type: number
          example: 10.5
        accrued_interest:
          description: The amount of interest accrued for the savings account.
          $ref: '#/components/schemas/MoneyAmount'
        last_valuta_date:
          description: >-
            Date (`valuta_date`) on which the interest calculator was last run
            for the savings account.
          type: string
          example: '2024-07-22'
    Solaris-Enums-BookingType:
      type: string
      description: >-
        The type of the booking. See the [booking
        documentation](https://docs.solarisgroup.com/guides/digital-banking/account-management/#appendix-i-booking-types)
        for a list of explanations for each booking type.
      enum:
        - CANCELLATION_BOOKING
        - CancellationCardTransaction
        - CANCELLATION_CARD_TRANSACTION_DIRECT
        - CANCELLATION_CHARGE_CARD
        - CANCELLATION_CHARGE_DUNNING
        - CANCELLATION_CHARGE_SEPA_DIRECT_DEBIT_RETURN
        - CANCELLATION_CRYPTO_EXCHANGE
        - CANCELLATION_CURRENCY_EXCHANGE_PARTNER
        - CANCELLATION_DIRECT_DEBIT
        - CANCELLATION_DOUBLE_BOOKING
        - CANCELLATION_INTERNAL_TRANSFER
        - CANCELLATION_INTERNATIONAL_CREDIT_TRANSFER
        - CANCELLATION_INTEREST_ACCRUED
        - CANCELLATION_INTEREST_ANNUITY
        - CANCELLATION_INTEREST_LOAN
        - CANCELLATION_LOAN_PAYOUT
        - CANCELLATION_REBOOKING
        - CANCELLATION_REBOOKING_INTEREST
        - CANCELLATION_SEPA_CREDIT_TRANSFER_RETURN
        - CANCELLATION_SEPA_DIRECT_DEBIT
        - CANCELLATION_SEPA_DIRECT_DEBIT_RETURN
        - CANCELLATION_TRANSFER_ANNUITY
        - CARD_DIRECT_DEBIT
        - CARD_TRANSACTION
        - CARD_TRANSACTION_DIRECT
        - CASH_DEPOSIT_RETAIL
        - CASH_WITHDRAWAL_RETAIL
        - CHARGE_ACCOUNT_MAINTENANCE
        - CHARGE_CARD
        - CHARGE_DUNNING
        - ChargeRecallRequest
        - CHARGE_SEPA_DIRECT_DEBIT_RETURN
        - ClosureBalanceTransfer
        - COMMISSION_OVERDRAFT
        - CREDIT_TRANSFER_CANCELLATION
        - CRYPTO_EXCHANGE
        - CURRENCY_EXCHANGE_PARTNER
        - DIRECT_DEBIT
        - FOREIGN_PAYMENT
        - INTEREST_ACCRUED
        - INTEREST_ANNUITY
        - INTEREST_LOAN
        - INTERNAL_TRANSFER
        - INTERNATIONAL_CREDIT_TRANSFER
        - LOAN_PAYOUT
        - REBOOKING
        - REBOOKING_INTEREST
        - SEPA_CREDIT_TRANSFER
        - SEPA_CREDIT_TRANSFER_RETURN
        - SEPA_DIRECT_DEBIT
        - SEPA_DIRECT_DEBIT_RETURN
        - SEPAInstantCreditTransfer
        - SepaInstantCreditTransferReturn
        - TARGET2_CREDIT_TRANSFER
        - TRANSFER_ANNUITY
        - OTHER
      example: SEPA_CREDIT_TRANSFER
    Solaris-Resources-MetaInfo-JSON:
      type: string
      description: >-
        JSON-serialized supplementary information about the transaction. For
        example, information about the card and the merchant associated with the
        transaction.
      example: >-
        {"cards":{"card_id":"abe6963e8be94364b8c1aa34d1bb5bc3mcrd","merchant":{"id":"123456789101112","country_code":"GB","category_code":"5411","name":"Grocery","town":"London"},"original_amount":{"currency":"GBP","value":50000,"fx_rate":10.0,"fx_markup":7.3165,"issuer_fee":0.0},"pos_entry_mode":"MANUAL_PAN_ENTRY","trace_id":"382621b66280020528d9433d135c2ae418fa53d0","transaction_id":"c158f11c-d6b2-4f8f-9391-ac20c2167f89","transaction_date":"2024-10-18","transaction_time":"2024-10-18T15:22:02+00:00","auth_code":"053630","acquirer_id":"123456","terminal_id":"12345678","transaction_type":"PURCHASE"}}
    Solaris-Resources-Booking:
      type: object
      properties:
        id:
          type: string
          description: ID of the booking.
          example: fe6561bdb526ed8866e9dac00bd1848ecboo
        creation_date:
          type: string
          description: >-
            The date when the booking was created. Do not expose this to the
            account holder(s).
          example: '2022-01-18'
        valuta_date:
          type: string
          description: >-
            The valuta date of the booking (i.e., the date when the booking
            becomes effective).
          example: '2022-01-18'
        booking_date:
          type: string
          description: The date when the booking was posted.
          example: '2022-01-18'
        booking_type:
          $ref: '#/components/schemas/Solaris-Enums-BookingType'
        amount:
          description: The amount of the booking.
          example:
            value: -160
            unit: cents
            currency: EUR
          allOf:
            - $ref: '#/components/schemas/Solaris-Resources-Money-With-Unit'
        description:
          type: string
          description: A description of the booking.
          example: BERLINER VOLKSBANK EG, TXL ABFLUG
        purpose_code:
          type: string
          description: The purpose code of the booking.
          example: 'null'
        recipient_bic:
          type: string
          description: The recipient's BIC.
          example: SOBKDEBBXXX
        recipient_iban:
          type: string
          description: The recipient's IBAN.
          example: DE97110101002242911754
        recipient_name:
          type: string
          description: The recipient's full name.
          example: SURIA LUIS VENTURA VIERA PEREIRA RIBEIRO
        receiver_iban_virtual:
          type: string
          description: (If applicable) The receiver's virtual IBAN.
        sender_bic:
          type: string
          description: The sender's BIC.
          example: SOBKDEBBXXX
        sender_iban:
          type: string
          description: The sender's IBAN.
          example: DE95110101000018501020
        sender_name:
          type: string
          description: The sender's full name.
          example: HANS MUSTERMANN
        end_to_end_id:
          type: string
          description: >-
            SEPA identifier provided by the customer who initiated the SEPA
            transaction, routed through the entire payment process.
          example: END2ENDREJ
        creditor_identifier:
          type: string
          description: >-
            Unique reference that identifies a party collecting payments under
            the SEPA Direct Debit scheme within and across 32 countries. See the
            [Deutsche Bundesbank's definition of creditor
            identifier](https://www.bundesbank.de/en/tasks/payment-systems/services/sepa/creditor-identifier/creditor-identifier-626704)
            for more information.
          example: DE98ZZZ09999999999
        mandate_reference:
          type: string
          description: The reference of the SDD mandate.
          example: '00000000000001'
        transaction_id:
          type: string
          description: The Solaris transaction ID.
          example: d651ee23300b4e7c8fe7b7e2b2e96trx
        return_transaction_id:
          type: string
          description: (If applicable) The Solaris ID of the return transaction.
          example: 758ea4a268974284ae7af17871f3fdc4
        sepa_charges:
          type: object
          description: >-
            (If applicable) Object containing information about the SEPA Direct
            Debit return transaction charges.
          allOf:
            - $ref: '#/components/schemas/Solaris-Resources-Money-With-Unit'
        sepa_return_code:
          type: string
          description: >-
            (If applicable) The SEPA reason code for the return transaction. See
            the [EPC173-14
            guidelines](https://www.europeanpaymentscouncil.eu/sites/default/files/kb/file/2019-05/EPC173-14%20v5.0%20Guidance%20on%20Reason%20Codes%20for%20SDD%20R-transactions.pdfttps://www.europeanpaymentscouncil.eu/document-library/guidance-documents/epc-guidance-reason-codes-sepa-direct-debit-r-transactions)
            for more information.
          nullable: true
          enum:
            - AC01
            - AC03
            - AC04
            - AC06
            - AC13
            - AC14
            - AG01
            - AG02
            - AM01
            - AM02
            - AM03
            - AM04
            - AM05
            - AM06
            - AM07
            - AM09
            - AM10
            - ARDT
            - BE01
            - BE04
            - BE05
            - BE06
            - BE07
            - BE08
            - CNOR
            - CURR
            - CUST
            - DNOR
            - DS28
            - DT01
            - ED01
            - ED03
            - ED05
            - EMVL
            - FF05
            - FOCR
            - FR01
            - FRTR
            - MD01
            - MD02
            - MD06
            - MD07
            - MS02
            - MS03
            - NARR
            - NOAS
            - NOOR
            - PINL
            - RC01
            - RC07
            - RF01
            - RR01
            - RR02
            - RR03
            - RR04
            - RUTA
            - SL01
            - SL02
            - SL11
            - SL12
            - SL13
            - SL14
            - SVNR
            - TM01
            - TRAC
            - UPAY
        sepa_return_reason:
          type: string
          description: >-
            (If applicable) The SEPA return reason text as defined by [ISO
            20022](https://en.wikipedia.org/wiki/ISO_20022).
        sepa_return_reason_definition:
          type: string
          description: >-
            (If applicable) Explanation of the SEPA return reason code as
            defined by [ISO 20022](https://en.wikipedia.org/wiki/ISO_20022).
        meta_info:
          type: object
          allOf:
            - $ref: '#/components/schemas/Solaris-Resources-MetaInfo-JSON'
          nullable: true
        recorded_at:
          type: string
          description: UTC timestamp from when the booking was recorded.
          example: '2022-01-24T00:41:57.634Z'
        reconciliation_id:
          type: string
          description: >-
            (If applicable) Unique ID of the related clearing transaction
            initiated by Solaris.
          example: 87271dda6e454393036b4ec2b64b2221itrx
        initiator_reference:
          type: string
          description: Unique reference for the transaction's initiator.
        charge_details:
          type: string
          description: >-
            Transaction charge details. Only relevant for bookings with the type
            `TARGET2_CREDIT_TRANSFER`.
          enum:
            - DEBT
            - SHAR
            - CRED
          example: CRED
    reservation_types:
      type: string
      enum:
        - CardAuthorization
        - SepaCreditTransfer
        - ClearingTransaction
        - IntraCustomerTransfer
        - SepaCreditBatch
        - Seizure
        - SecuritiesPurchase
        - PendingTrade
        - SEPAInstantCreditTransfer
    reservations_meta_info:
      type: object
      description: An object containing all meta information related to the reservation.
      properties:
        card_id:
          type: string
          description: Solaris ID of the card used to create the reservation.
        merchant:
          type: object
          description: >-
            Object containing all metadata related to the merchant with whom the
            transaction was conducted.
          properties:
            id:
              type: string
              description: The ID that the merchant provided to their acquirer.
            country_code:
              type: string
              description: Two-letter code of the country where the merchant is based.
              example: DE
            category_code:
              type: string
              description: >-
                The [Merchant Category Code
                (MCC)](https://www.citibank.com/tts/solutions/commercial-cards/assets/docs/govt/Merchant-Category-Codes.pdf)
                of the merchant.
              example: '6011'
            post_code:
              type: string
              description: Postal code where the merchant is based.
            state:
              type: string
              description: State where the merchant is based.
            street_address:
              type: string
              description: Street address of the merchant.
            name:
              type: string
              description: The name of the merchant.
              example: BERLINER VOLKSBANK EG
            town:
              type: string
              description: Town where the merchant is based.
              example: TXL ABFLUG
        original_amount:
          type: object
          description: >-
            The amount of the reservation (in Euro cents) combined with the
            foreign exchange rate.
          properties:
            currency:
              type: string
              example: EUR
            value:
              type: integer
              example: -1000
            fx_rate:
              type: integer
              example: 1
        pos_entry_mode:
          type: string
          description: The POS entry mode used for the reservation.
          example: CHIP
          enum:
            - CARD_NOT_PRESENT
            - CHIP
            - CONTACTLESS
            - MAG_STRIPE
        trace_id:
          type: string
          description: >-
            ID used to link the authorization and the settlement. Note that
            Solaris cannot guarantee that this will always match.
          example: 651afb5beea67124d57be6dee27a2c5b7a241e58
        transaction_date:
          type: string
          description: Date when the transaction occurred.
          example: '2021-10-11'
        transaction_time:
          type: string
          description: Date and time when the transaction occurred (UTC format).
          example: '2021-10-11T22:33:26Z'
        transaction_type:
          type: string
          description: The type of the credit card transaction.
          example: PURCHASE
          enum:
            - PURCHASE
            - ATM_WITHDRAWAL
        auth_code:
          type: string
          description: >-
            Code generated by Solaris to confirm the authorization of a
            settlement.
        terminal_id:
          type: string
          description: (Legacy) Merchant ID for the terminal used for payment.
        acquirer_id:
          type: string
          description: >-
            An identification code (up to 11 characters) of the acquiring
            institution.
        wallet_type:
          type: string
          description: >-
            Name of a digital wallet. `UNKNOWN` if the internal ID doesn't match
            known to Solaris. Empty string (`""`) if the transaction does not
            come from a wallet.
          example: GOOGLE
          enum:
            - APPLE
            - GOOGLE
            - SAMSUNG
        device_pan:
          type: string
          description: Reference to the device's token in that wallet
          example: '4537920000006141'
    reservations:
      type: array
      description: An array containing all open reservations for the account.
      items:
        type: object
        properties:
          id:
            type: string
            description: ID of the reservation.
            example: 162ddd7e-790c-5963-908f-4cedfd30f9a1
          description:
            description: >-
              A description for the reservation, which is visible to the
              customer.
            type: string
          account_id:
            description: ID of the account to which the reservation is attached.
            type: string
            example: e48c29b85992b8772eb7ddd518490920cacc
          iban:
            description: IBAN of the account to which the reservation is attached.
            type: string
            example: DE84110101010001234567
          amount:
            type: object
            description: The amount of the reservation, in Euro cents.
            properties:
              value:
                type: integer
                example: 800
              unit:
                type: string
                example: cents
              currency:
                type: string
                example: EUR
          type:
            type: string
            description: The type of reservation.
            example: CardAuthorization
            $ref: '#/components/schemas/reservation_types'
          reference:
            type: string
            description: Internal reference number for the reservation.
            example: 85f20dc2-190f-47d3-94c7-2737ca71f286
          status:
            type: string
            description: >-
              The current status of the reservation. Possible values are `OPEN`
              and `RESOLVED`.
            example: OPEN
            enum:
              - OPEN
              - RESOLVED
          meta_info:
            oneOf:
              - $ref: '#/components/schemas/reservations_meta_info'
          created_at:
            type: string
            description: UTC timestamp from when the reservation was created.
            example: '2022-06-20T18:49:49Z'
          resolved_at:
            type: string
            example: 'null'
            description: >-
              UTC timestamp from when the reservation was resolved. If the
              reservation has not yet been resolved, then this property will
              have a value of `null`.
    Solaris-Resources-MetaInfo:
      type: object
      description: An object containing all meta information related to the reservation.
      properties:
        cards:
          type: object
          description: >-
            Object containing all metadata related to the card used to make the
            reservation.
          properties:
            card_id:
              type: string
              description: Solaris ID of the card used to create the reservation.
            merchant:
              type: object
              description: >-
                Object containing all metadata related to the merchant with whom
                the transaction was conducted.
              properties:
                id:
                  type: string
                  description: The ID that the merchant provided to their acquirer.
                country_code:
                  type: string
                  description: Two-letter code of the country where the merchant is based.
                  example: DE
                category_code:
                  type: string
                  description: >-
                    The [Merchant Category Code
                    (MCC)](https://www.citibank.com/tts/solutions/commercial-cards/assets/docs/govt/Merchant-Category-Codes.pdf)
                    of the merchant.
                  example: '6011'
                post_code:
                  type: string
                  description: Postal code where the merchant is based.
                state:
                  type: string
                  description: State where the merchant is based.
                street_address:
                  type: string
                  description: Street address of the merchant.
                name:
                  type: string
                  description: The name of the merchant.
                  example: BERLINER VOLKSBANK EG
                town:
                  type: string
                  description: Town where the merchant is based.
                  example: TXL ABFLUG
            original_amount:
              type: object
              description: >-
                The amount of the reservation (in Euro cents) combined with the
                foreign exchange rate.
              properties:
                currency:
                  type: string
                  example: EUR
                value:
                  type: integer
                  example: 10
                fx_rate:
                  type: integer
                  example: 1
                fx_markup:
                  type: integer
                  example: 7.3165
                issuer_fee:
                  type: integer
                  example: 0
            pos_entry_mode:
              type: string
              description: The POS entry mode used for the reservation.
              example: CHIP
              enum:
                - ECOMMERCE
                - CREDENTIAL_ON_FILE
                - MANUAL_PAN_ENTRY
                - UNKNOWN
                - CHIP
                - CONTACTLESS
                - MAG_STRIPE
            trace_id:
              type: string
              description: >-
                ID used to link the authorization and the settlement. Note that
                Solaris cannot guarantee that this will always match.
              example: 651afb5beea67124d57be6dee27a2c5b7a241e58
            transaction_date:
              type: string
              description: Date when the transaction occurred.
              example: '2021-10-11'
            transaction_time:
              type: string
              description: Date and time when the transaction occurred (UTC format).
              example: '2021-10-11T22:33:26Z'
            transaction_type:
              type: string
              description: The type of the credit card transaction.
              example: PURCHASE
              enum:
                - PURCHASE
                - ATM_WITHDRAWAL
            auth_code:
              type: string
              description: >-
                Code generated by Solaris to confirm the authorization of a
                settlement.
            terminal_id:
              type: string
              description: (Legacy) Merchant ID for the terminal used for payment.
            acquirer_id:
              type: string
              description: >-
                An identification code (up to 11 characters) of the acquiring
                institution.
            wallet_type:
              type: string
              description: >-
                Name of a digital wallet. `UNKNOWN` if the internal ID doesn't
                match known to Solaris. Empty string (`""`) if the transaction
                does not come from a wallet.
              example: GOOGLE
              enum:
                - APPLE
                - GOOGLE
                - SAMSUNG
            device_pan:
              type: string
              description: Reference to the device's token in that wallet
              example: '4537920000006141'
    reservations-2:
      type: array
      description: An array containing all open reservations for the account.
      items:
        type: object
        properties:
          id:
            type: string
            description: ID of the reservation.
            example: b814e2213c5c45149945ed53422db0c4cres
          amount:
            type: object
            description: Amount of the reservation (in Euro cents).
            properties:
              value:
                type: integer
                example: 800
              unit:
                type: string
                example: cents
              currency:
                type: string
                example: EUR
          reservation_type:
            type: string
            description: The type of reservation.
            example: CARD_AUTHORIZATION
            enum:
              - CARD_AUTHORIZATION
              - CLEARING_TRANSACTION
              - INTRA_CUSTOMER_TRANSFER
              - SEIZURE
              - SEPA_CREDIT_BATCH
              - SEPA_CREDIT_TRANSFER
              - ProtectedAccountSeizure
          reference:
            type: string
            description: Reference for the reservation.
            example: c222a0b8-07ea-49be-83c1-68719be286e6
          status:
            type: string
            description: >-
              The current status of the reservation. Possible values are `OPEN`
              and `RESOLVED`.
            example: OPEN
            enum:
              - OPEN
              - RESOLVED
          meta_info:
            $ref: '#/components/schemas/Solaris-Resources-MetaInfo'
          expires_at:
            type: string
          expired_at:
            type: string
          resolved_at:
            type: string
          description:
            type: string
    Solaris-Decorators-SeizureTypeEnum:
      type: string
      description: The type of seizure.
      enum:
        - ATTACHMENT
        - AUTHORITY_SEIZURE
        - COURT_SEIZURE
        - PRE_ATTACHMENT
    Solaris-Decorators-SeizureStatusEnum:
      type: string
      description: The current status of the seizure.
      enum:
        - ACTIVE
        - FULFILLED
        - WAITING_FOR_AUTHORITY
    Solaris-Server-Decorators-Money:
      type: object
      properties:
        value:
          type: integer
          description: The amount value.
          example: 1000
        unit:
          type: string
          description: The unit of the given value in cents.
          example: cents
        currency:
          type: string
          description: The currency of the given value. Only EUR is currently supported.
          example: EUR
    Solaris-Server-Decorators-CountryEnum:
      type: string
      enum:
        - AD
        - AE
        - AF
        - AG
        - AI
        - AL
        - AM
        - AO
        - AQ
        - AR
        - AS
        - AT
        - AU
        - AW
        - AX
        - AZ
        - BA
        - BB
        - BD
        - BE
        - BF
        - BG
        - BH
        - BI
        - BJ
        - BL
        - BM
        - BN
        - BO
        - BQ
        - BR
        - BS
        - BT
        - BV
        - BW
        - BY
        - BZ
        - CA
        - CC
        - CD
        - CF
        - CG
        - CH
        - CI
        - CK
        - CL
        - CM
        - CN
        - CO
        - CR
        - CU
        - CV
        - CW
        - CX
        - CY
        - CZ
        - DE
        - DJ
        - DK
        - DM
        - DO
        - DZ
        - EC
        - EE
        - EG
        - EH
        - ER
        - ES
        - ET
        - FI
        - FJ
        - FK
        - FM
        - FO
        - FR
        - GA
        - GB
        - GD
        - GE
        - GF
        - GG
        - GH
        - GI
        - GL
        - GM
        - GN
        - GP
        - GQ
        - GR
        - GS
        - GT
        - GU
        - GW
        - GY
        - HK
        - HM
        - HN
        - HR
        - HT
        - HU
        - ID
        - IE
        - IL
        - IM
        - IN
        - IO
        - IQ
        - IR
        - IS
        - IT
        - JE
        - JM
        - JO
        - JP
        - KE
        - KG
        - KH
        - KI
        - KM
        - KN
        - KP
        - KR
        - KW
        - KY
        - KZ
        - LA
        - LB
        - LC
        - LI
        - LK
        - LR
        - LS
        - LT
        - LU
        - LV
        - LY
        - MA
        - MC
        - MD
        - ME
        - MF
        - MG
        - MH
        - MK
        - ML
        - MM
        - MN
        - MO
        - MP
        - MQ
        - MR
        - MS
        - MT
        - MU
        - MV
        - MW
        - MX
        - MY
        - MZ
        - NA
        - NC
        - NE
        - NF
        - NG
        - NI
        - NL
        - 'NO'
        - NP
        - NR
        - NU
        - NZ
        - OM
        - PA
        - PE
        - PF
        - PG
        - PH
        - PK
        - PL
        - PM
        - PN
        - PR
        - PS
        - PT
        - PW
        - PY
        - QA
        - RE
        - RO
        - RS
        - RU
        - RW
        - SA
        - SB
        - SC
        - SD
        - SE
        - SG
        - SH
        - SI
        - SJ
        - SK
        - SL
        - SM
        - SN
        - SO
        - SR
        - SS
        - ST
        - SV
        - SX
        - SY
        - SZ
        - TC
        - TD
        - TF
        - TG
        - TH
        - TJ
        - TK
        - TL
        - TM
        - TN
        - TO
        - TR
        - TT
        - TV
        - TW
        - TZ
        - UA
        - UG
        - UM
        - US
        - UY
        - UZ
        - VA
        - VC
        - VE
        - VG
        - VI
        - VN
        - VU
        - WF
        - WS
        - XK
        - YE
        - YT
        - ZA
        - ZM
        - ZW
    Solaris-Server-Decorators-SeizureDebtor:
      type: object
      properties:
        name:
          type: string
          description: Debtor's name.
        address:
          type: string
          description: Debtor's street address.
        postal_code:
          type: string
          description: Debtor's postal code.
        city:
          type: string
          description: Debtor's city of residence.
        country:
          description: Debtor's country of residence.
          allOf:
            - $ref: '#/components/schemas/Solaris-Server-Decorators-CountryEnum'
        state:
          type: string
          description: (For German addresses) State/Bundesland
          enum:
            - BE
            - BB
            - BW
            - BY
            - HB
            - HE
            - HH
            - MV
            - NI
            - NW
            - RP
            - SH
            - SL
            - SN
            - ST
            - TH
          example: BE
    Solaris-Server-Decorators-SeizureCreditor:
      type: object
      properties:
        name:
          type: string
          description: Creditor name.
          example: Betflix LLC
        address:
          type: string
          description: Creditor's street address.
          example: Bethousestrasse 43
        postal_code:
          type: string
          description: Creditor's postal code.
          example: '10409'
        city:
          type: string
          description: Creditor's city of residence.
          example: Berlin
        country:
          description: Creditor's country of residence.
          example: DE
          allOf:
            - $ref: '#/components/schemas/Solaris-Server-Decorators-CountryEnum'
        state:
          type: string
          description: (For German addresses) State/Bundesland
          enum:
            - BE
            - BB
            - BW
            - BY
            - HB
            - HE
            - HH
            - MV
            - NI
            - NW
            - RP
            - SH
            - SL
            - SN
            - ST
            - TH
          example: BE
        iban:
          type: string
          description: Creditor's IBAN.
          example: DE72110101001000014344
    Solaris-Server-Decorators-SeizureCreditorRepresentative:
      type: object
      properties:
        name:
          type: string
          description: Creditor representative's name.
          example: Lawyer LLC
        address:
          type: string
          description: Creditor representative's street address.
          example: Gunsterstrasse 22
        postal_code:
          type: string
          description: Creditor representative's postal code.
          example: '10409'
        city:
          type: string
          description: Creditor representative's city of residence.
          example: Berlin
        country:
          description: Creditor representative's country of residence.
          example: DE
          allOf:
            - $ref: '#/components/schemas/Solaris-Server-Decorators-CountryEnum'
        state:
          type: string
          description: (For German addresses) State/Bundesland
          enum:
            - BE
            - BB
            - BW
            - BY
            - HB
            - HE
            - HH
            - MV
            - NI
            - NW
            - RP
            - SH
            - SL
            - SN
            - ST
            - TH
          example: BE
        case_number:
          type: string
          description: Creditor representative's case number.
          example: 42ABC-2
        iban:
          type: string
          description: Creditor representative's IBAN.
          example: DE87110101001000057123
    Solaris-Server-Decorators-Seizure:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the seizure resource.
          example: 211c5c2f34ac442ff6f93d09fc8fb3edseiz
        enactment_date:
          type: string
          description: The date when the authority issued the seizure.
          format: date
          example: '2019-01-31'
        delivery_date:
          type: string
          description: The date when the seizure notice was delivered to Solaris.
          format: date
          example: '2019-01-28'
        authority_name:
          type: string
          description: The name of the authority that issued the seizure.
          example: Court
        resolution_case_number:
          type: string
          description: The seizure's case ID number, generated by the issuing authority.
          example: Number 212121212
        seizure_type:
          allOf:
            - $ref: '#/components/schemas/Solaris-Decorators-SeizureTypeEnum'
          example: COURT_SEIZURE
        status:
          allOf:
            - $ref: '#/components/schemas/Solaris-Decorators-SeizureStatusEnum'
          example: ACTIVE
        amount:
          type: object
          description: Object that represents the amount of the debt.
          allOf:
            - $ref: '#/components/schemas/Solaris-Server-Decorators-Money'
        additional_cost:
          type: object
          description: Additional costs of the seizure.
          allOf:
            - $ref: '#/components/schemas/Solaris-Server-Decorators-Money'
        debtor:
          type: object
          description: Object that contains the name and address information of the debtor.
          allOf:
            - $ref: '#/components/schemas/Solaris-Server-Decorators-SeizureDebtor'
        creditor:
          type: object
          description: >-
            Object that contains the name and address information of the
            creditor.
          allOf:
            - $ref: '#/components/schemas/Solaris-Server-Decorators-SeizureCreditor'
        creditor_representative:
          type: object
          description: >-
            Object containing information about a person or an entity that
            represents the creditor (i.e., a third-party liaison between the
            debtor and creditor).
          allOf:
            - $ref: >-
                #/components/schemas/Solaris-Server-Decorators-SeizureCreditorRepresentative
    Error403:
      type: object
      properties:
        id:
          type: string
          example: a95f2aaf-4e0c-4d49-8021-8a16a884ed86
        status:
          type: string
          example: '403'
        code:
          type: string
          example: unauthorized_action
        title:
          type: string
          example: Unauthorized Action
        detail:
          type: string
          example: Unauthorized action is not allowed.
    Error404-2:
      type: object
      properties:
        id:
          type: string
          example: a95f2aaf-4e0c-4d49-8021-8a16a884ed86
        status:
          type: string
          example: '404'
        code:
          type: string
          example: model_not_found
        title:
          type: string
          example: Model Not Found
        detail:
          type: string
          example: >-
            Couldn't find 'Solaris::Identification' for id
            'bbbcccfff388923eb899a5852df6cidt'.
    AddressInStatement:
      type: object
      properties:
        line_1:
          type: string
          description: First line of the recipient information text.
          example: Mr. Peter Mustermann
        line_2:
          type: string
          description: Second line of the recipient information text.
          example: Musterstrasse 23
        line_3:
          type: string
          description: Third line of the recipient information text.
          example: 10409 Berlin
        line_4:
          type: string
          description: Fourth line of the recipient information text.
          example: DE
        line_5:
          type: string
          description: Fifth line of the recipient information text.
        line_6:
          type: string
          description: Sixth line of the recipient information text.
    Solaris-Server-Decorators-Money-2:
      type: object
      properties:
        value:
          type: integer
          description: The amount value.
        unit:
          type: string
          description: The unit of the given value.
        currency:
          type: string
          description: The currency of the given value.
    Bank-Statement-Response:
      type: object
      properties:
        id:
          type: string
          description: ID of the bank statement.
          example: 4463f72f46cc9233c5494146f01b152ccsas
        recipient_information:
          allOf:
            - $ref: '#/components/schemas/AddressInStatement'
          description: The recipient's name and address.
        issue_date:
          type: string
          format: date
          description: Date when the statement was issued.
          example: '2022-04-01'
        statement_period_start_date:
          type: string
          format: date
          description: The beginning date of the period covered by the statement.
          example: '2022-03-01'
        statement_period_end_date:
          type: string
          format: date
          description: The end date of the period covered by the statement.
          example: '2022-03-31'
        overdraft_facility:
          allOf:
            - $ref: '#/components/schemas/Solaris-Server-Decorators-Money-2'
          description: Overdraft facility that has been granted to the customer.
          example:
            value: 10000
            unit: cents
            currency: EUR
        account_information:
          type: object
          description: Object containing the account's IBAN, BIC, and balance information.
          properties:
            iban:
              type: string
              description: IBAN of the account.
              example: DE76110101001100000999
            bic:
              type: string
              description: BIC of the account.
              example: SOBKDEBBXXX
            balance_start:
              allOf:
                - $ref: '#/components/schemas/Solaris-Server-Decorators-Money-2'
              description: The account balance at the start of the statement period.
              example:
                value: 20321
                unit: cents
                currency: EUR
            balance_end:
              allOf:
                - $ref: '#/components/schemas/Solaris-Server-Decorators-Money-2'
              description: The account balance at the end of the statement period.
              example:
                value: 18405
                unit: cents
                currency: EUR
        disclaimer:
          type: string
          description: Solaris' legal disclaimer text, which you must show to the customer.
          example: >-
            Sehr geehrte Kundin, sehr geehrter Kunde,\nbitte prüfen Sie die
            Buchungen, Berechnungen und den Abschlusssaldo im beiliegenden
            Kontoauszug, der zugleich einen Rechnungsabschluss darstellt.
            Rechnungsabschlüsse gelten als genehmigt, sofern Sie innerhalb von
            sechs Wochen nach Zugang keine Einwendungen erheben. Einwendungen
            gegen Rechnungsabschlüsse müssen der solarisBank schriftlich oder in
            Textform (z.B. an support@solarisbank.de) zugehen. Im Falle der
            Einwendung in Textform genügt zur Fristwahrung die rechtzeitige
            Absendung. Der angegebene Kontostand berücksichtigt nicht die
            Wertstellung der einzelnen Buchungen. Dies bedeutet, dass der
            genannte Betrag nicht dem für die Zinsrechnung maßgeblichen
            Kontostand entsprechen muss und bei Verfügungen möglicherweise
            Zinsen für die Inanspruchnahme einer eingeräumten oder geduldeten
            Kontoüberziehung anfallen können. Gutschriften aus eingereichten
            Lastschriften und anderen Einzugspapieren erfolgen unter dem
            Vorbehalt der Einlösung. Guthaben sind als Einlagen nach Maßgabe des
            Einlagensicherungsgesetzes entschädigungsfähig. Nähere Informationen
            können dem Informationsbogen für den Einleger entnommen werden, den
            Sie gemeinsam mit unseren für den Geschäftsverkehr mit Ihnen
            geltenden Allgemeinen Geschäftsbedingungen und besonderen
            Bedingungen unter www.solarisbank.de/partner einsehen können.\nMit
            freundlichen Grüßen\nIhre solarisBank
    Account-Statement-Response:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the statement.
          example: e349cdc6b712035236bed32d7399ab72csoa
        year:
          type: integer
          description: The year for which the statement was created.
          example: 2022
        interval:
          type: string
          description: The time interval covered by the statement.
          example: MONTHLY
          enum:
            - MONTHLY
            - QUARTERLY
            - EVERY_SIX_MONTHS
            - ANNUALLY
        period:
          type: integer
          description: The period from which the statement `interval` begins.
          example: 3
        statement_number:
          type: string
          description: The statement number.
          example: 2022-M-03
        recipient_information:
          allOf:
            - $ref: '#/components/schemas/AddressInStatement'
          description: The statement recipient's name and address.
        issue_date:
          type: string
          format: date
          description: Date when the statement was issued.
          example: '2022-04-01'
        statement_period_start_date:
          type: string
          format: date
          description: The beginning date of the period covered by the statement.
          example: '2022-03-01'
        statement_period_end_date:
          type: string
          format: date
          description: The end date of the period covered by the statement.
          example: '2022-03-31'
        overdraft_facility:
          allOf:
            - $ref: '#/components/schemas/Solaris-Server-Decorators-Money-2'
          description: Overdraft facility that has been granted to the customer.
          example:
            value: 10000
            unit: cents
            currency: EUR
        interest_accrual_rate:
          type: number
          format: float
          description: >-
            The daily rate at which interest is accrued on the used amount of an
            overdraft.
          example: 12.5
        overdraft_rate:
          type: integer
          format: float
          example: 9
          description: >-
            The increased interest rate applied when going below the granted
            overdraft facility.
        interest_accrued:
          allOf:
            - $ref: '#/components/schemas/Solaris-Server-Decorators-Money-2'
          description: The interest accrued in EURO cents.
          example:
            value: 10000
            unit: cents
            currency: EUR
        account_information:
          type: object
          description: Object containing the account's IBAN, BIC, and balance information.
          properties:
            iban:
              type: string
              description: IBAN of the account.
              example: DE76110101001100000999
            bic:
              type: string
              description: BIC of the account.
              example: SOBKDEBBXXX
            balance_start:
              allOf:
                - $ref: '#/components/schemas/Solaris-Server-Decorators-Money-2'
              description: The account balance at the start of the statement period.
              example:
                value: 20321
                unit: cents
                currency: EUR
            balance_end:
              allOf:
                - $ref: '#/components/schemas/Solaris-Server-Decorators-Money-2'
              description: The account balance at the end of the statement period.
              example:
                value: 18405
                unit: cents
                currency: EUR
        disclaimer:
          type: string
          description: Solaris' legal disclaimer text, which you must show to the customer.
          example: >-
            Sehr geehrte Kundin, sehr geehrter Kunde,\nbitte prüfen Sie die
            Buchungen, Berechnungen und den Abschlusssaldo im beiliegenden
            Kontoauszug, der zugleich einen Rechnungsabschluss darstellt.
            Rechnungsabschlüsse gelten als genehmigt, sofern Sie innerhalb von
            sechs Wochen nach Zugang keine Einwendungen erheben. Einwendungen
            gegen Rechnungsabschlüsse müssen der solarisBank schriftlich oder in
            Textform (z.B. an support@solarisgroup.com) zugehen. Im Falle der
            Einwendung in Textform genügt zur Fristwahrung die rechtzeitige
            Absendung. Der angegebene Kontostand berücksichtigt nicht die
            Wertstellung der einzelnen Buchungen. Dies bedeutet, dass der
            genannte Betrag nicht dem für die Zinsrechnung maßgeblichen
            Kontostand entsprechen muss und bei Verfügungen möglicherweise
            Zinsen für die Inanspruchnahme einer eingeräumten oder geduldeten
            Kontoüberziehung anfallen können. Gutschriften aus eingereichten
            Lastschriften und anderen Einzugspapieren erfolgen unter dem
            Vorbehalt der Einlösung. Guthaben sind als Einlagen nach Maßgabe des
            Einlagensicherungsgesetzes entschädigungsfähig. Nähere Informationen
            können dem Informationsbogen für den Einleger entnommen werden, den
            Sie gemeinsam mit unseren für den Geschäftsverkehr mit Ihnen
            geltenden Allgemeinen Geschäftsbedingungen und besonderen
            Bedingungen unter www.solarisbank.de/partner einsehen können.\nMit
            freundlichen Grüßen\nIhre solarisBank
    person_message_response:
      type: object
      properties:
        id:
          type: string
          description: ID of the message.
          example: f4ed772c970e1096a73d9418192a2d0camsg
        account_id:
          type: string
          description: ID of the account for which the message was sent.
          example: c2a13abed3b0686ab5343aa748d7f2fecacc
        title:
          type: string
          description: The title of the message.
          example: Ihre Samsung Pay Bezahlung
        text:
          type: string
          description: The text of the message.
        required_notification_channel:
          type: string
          description: The notification channel used to send the message.
          enum:
            - any
            - email
        created_at:
          type: string
          format: date-time
          description: UTC timestamp from when the message was created.
          example: '2022-06-20T19:02:49Z'
    error-3:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: Error identifier
              status:
                type: integer
                description: Error status
              code:
                type: string
                description: Error code
              title:
                type: string
                description: Error title
              detail:
                type: string
                description: Error detail
    business_message_response:
      type: object
      properties:
        id:
          type: string
          description: ID of the message.
          example: f4ed772c970e1096a73d9418192a2d0camsg
        business_id:
          type: string
          description: ID of the business to whom the message was sent.
          example: 567eaf2b22fce21a1920e14e11e2bfa3cbiz
        person_id:
          type: string
          description: >-
            ID of the person associated with the business to whom the message
            was delivered.
          example: 0ba2211cab11af6094d60ead81f2bd9dcper
        account_id:
          type: string
          description: ID of the account for which the message was sent.
          example: c2a13abed3b0686ab5343aa748d7f2fecacc
        title:
          type: string
          description: The title of the message.
          example: Ihre Samsung Pay Bezahlung
        text:
          type: string
          description: The text of the message.
        required_notification_channel:
          type: string
          description: The notification channel used to send the message.
          enum:
            - any
            - email
        created_at:
          type: string
          description: UTC timestamp from when the message was created.
          example: '2022-06-20T19:02:49Z'
          format: date-time
    get_response:
      type: array
      items:
        type: object
        properties:
          id:
            type: string
          iban:
            type: string
          approved_by:
            type: string
    updatedAt:
      type: string
      format: date-time
      description: Updation date and time
      example: '2021-01-30T08:30:00Z'
    change_request:
      type: object
      properties:
        id:
          type: string
          description: ID of the change request.
          example: d6c778822b2d7bd3b778935bcfd02d1d3csc
        updated_at:
          $ref: '#/components/schemas/updatedAt'
        status:
          type: string
          description: Current status of the change request.
          example: AUTHORIZATION_REQUIRED
          enum:
            - ACCEPTED
            - AUTHORIZATION_REQUIRED
            - CONFIRMATION_REQUIRED
            - COMPLETED
            - FAILED
        url:
          type: string
          description: URL to use for authorizing the change request.
          example: >-
            https://api.solaris-sandbox.de/v1/change_requests/d6c778822b2d7bd3b778935bcfd02d1d3csc/authorize
          pattern: >-
            ^https://api.solaris-(staging|test|production|sandbox).de/v1/change_requests/[0-9a-z]{36}/authorize
    VirtualIban:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the Virtual IBAN.
          example: dfcfdb70-e082-4c79-91de-d32e67a5f2e8
        virtual_iban:
          type: string
          description: The virtual IBAN.
          example: DE84110101016453209874
        target_account_bic:
          type: string
          description: BIC of the target account.
          example: SOBKDEB2XXX
        target_account_iban:
          type: string
          description: IBAN of the target account.
          example: DE84110101019999999999
        bic:
          type: string
          description: Virtual IBAN BIC.
          example: SOBKDEB2XXX
        created_at:
          type: string
          description: Date and time when the virtual IBAN was created.
          example: '2021-09-10T12:57:59Z'
        currency:
          type: string
          description: Currency of the virtual IBAN.
          example: EUR
        description:
          type: string
          description: Description of the virtual IBAN. Can be seen by the customer.
          example: Example description
        disabled_at:
          type: string
          description: >-
            Date and time when the virtual IBAN was disabled. `null` if the
            status is `ENABLED`.
          example: 'null'
        state:
          type: string
          description: The state of the virtual IBAN.
          enum:
            - ENABLED
            - DISABLED
          example: ENABLED
        updated_at:
          type: string
          description: Date and time when the virtual IBAN was last updated.
          example: '2021-09-10T12:57:59Z'
        customer_id:
          type: string
          description: ID of the virtual IBAN customer.
        customer_type:
          type: string
          description: Type of the virtual IBAN customer.
    VirtualIban_Create_Request:
      type: object
      required:
        - reference
      properties:
        customer_id:
          type: string
          example: 12312312cus
          description: >-
            Customer data related to the issued Virtual IBAN. Optional if
            partner configuration allows issuing vIBANs without customer.
        reference:
          type: string
          description: >-
            Partners must generate a reference for the vIBAN and supply it in
            this property. This property acts as an idempotency key and must be
            unique.
          format: uuid
          example: f3757e7e-57ec-4e07-a3f1-7a5d1e412be7
        description:
          type: string
          description: A description of the vIBAN. Visible to the customer.
          example: Example description
    VirtualIban_Create_Response:
      type: object
      properties:
        id:
          type: string
          description: The ID of the created vIBAN.
          example: 919325d2-cd99-4875-8935-542c36240ec3
        virtual_iban:
          type: string
          format: IBAN
          description: The vIBAN created and assigned to the account.
          example: DE88110101013303512971
        account_id:
          type: string
          description: ID of the account to which the vIBAN was assigned.
          example: 8e98fe2c6b0df0cdeff56517494abbadcacc
        reference:
          type: string
          description: Partner-generated reference for the created vIBAN.
          format: uuid
    Error-2:
      type: object
      properties:
        id:
          type: string
          example: a95f2aaf-4e0c-4d49-8021-8a16a884ed86
        code:
          type: string
          example: build_pagination_headers_failure
        title:
          type: string
          example: Failed to build pagination headers
        details:
          type: string
          example: Cannot authenticate the account
    VirtualIban_Disable_enable:
      type: object
    IBAN:
      type: string
      example: DE75512108001245126199
      description: International Bank Account Number (IBAN).
    GetIBAN:
      type: object
      properties:
        iban:
          $ref: '#/components/schemas/IBAN'
        bic:
          type: string
          example: SOBKDEB2XXX
          description: The BIC of the financial institution.
        institution:
          type: string
          description: The name of the financial institution to which the account belongs.
          example: solarisBank Gf (S)
    IBANError400:
      type: object
      properties:
        id:
          type: string
          example: a95f2aaf-4e0c-4d49-8021-8a16a884ed86
        status:
          type: string
          example: '400'
        code:
          type: string
          example: invalid_iban
        title:
          type: string
          example: Invalid IBAN.
        detail:
          type: string
          example: IBAN (DE7911010013828082634) is structurally invalid.
  parameters:
    account_id:
      name: account_id
      in: path
      description: Unique identifier to an account.
      schema:
        type: string
      required: true
      example: e48c29b85992b8772eb7ddd518490920cacc
    start_date:
      name: start_date
      in: query
      description: Starting date (inclusive) for balance calculation
      schema:
        type: string
        format: date
        pattern: ([0-9]{4})-(?:[0-9]{2})-([0-9]{2})
        example: '2020-01-31'
      required: true
    end_date:
      name: end_date
      in: query
      description: End date (inclusive) for balance calculation
      schema:
        type: string
        format: date
        pattern: ([0-9]{4})-(?:[0-9]{2})-([0-9]{2})
        example: '2020-12-31'
      required: true
    pathAccountID:
      name: account_id
      in: path
      required: true
      schema:
        type: string
    PersonID:
      in: path
      name: person_id
      description: Unique ID of a person.
      required: true
      allowEmptyValue: false
      schema:
        type: string
      example: 111110faed3c03261a08e2660c0c08bdcper
    AccountID:
      in: path
      name: account_id
      description: Unique ID of a Solaris account.
      allowEmptyValue: false
      schema:
        type: string
      required: true
      example: e48c29b85992b8772eb7ddd518490920cacc
    BusinessID:
      in: path
      name: business_id
      description: Unique ID of a business.
      allowEmptyValue: false
      schema:
        type: string
      required: true
      example: 990bbac68a34add190786b9c74f4c82fcbiz
    account_id-2:
      name: account_id
      in: path
      description: Unique identifier of a customer's account.
      schema:
        type: string
      required: true
      example: e48c29b85992b8772eb7ddd518490920cacc
    person_id:
      name: person_id
      in: path
      required: true
      schema:
        type: string
    account_id-3:
      name: account_id
      in: path
      required: true
      schema:
        type: string
    page_size:
      name: page[size]
      in: query
      description: Specifies the number of entries to include in each results page.
      schema:
        type: integer
        default: 10
    page_number:
      name: page[number]
      in: query
      description: Specifies the number of results pages to return.
      schema:
        type: integer
        default: 1
    id:
      name: id
      in: path
      required: true
      schema:
        type: string
    business_id:
      name: business_id
      in: path
      required: true
      schema:
        type: string
  requestBodies:
    AccountClosureRequest_Create:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AccountClosureRequest_Create_Request'
    VirtualIban_Create:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/VirtualIban_Create_Request'
  headers:
    total:
      description: Total number of resources to return that match the provided filters.
      schema:
        type: string
        example: '123'
    per_page:
      description: Number of resources to return per page.
      schema:
        type: string
        example: '10'
    link:
      description: Links to other pages.
      schema:
        type: string
        example: >
          <url?page[size]=10&page[number]=1>; rel="first",
          <url?page[size]=10&page[number]=13>; rel="last",
          <url?page[size]=10&page[number]=2>; rel="next",
          <url?page[size]=10&page[number]=4>; rel="prev"
    total-2:
      description: Total number of entries to return in the response.
      schema:
        type: string
        example: '123'
    per_page-2:
      description: Number of entries to return per page.
      schema:
        type: string
        example: '10'
    link-2:
      description: Specifies links to other pages.
      schema:
        type: string
        example: >
          <url?page[size]=10&page[number]=1>; rel="first",
          <url?page[size]=10&page[number]=13>; rel="last",
          <url?page[size]=10&page[number]=2>; rel="next",
          <url?page[size]=10&page[number]=4>; rel="prev"
  responses:
    400ClientError:
      description: There was an error on the client side.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InvalidRequestError'
    403Forbidden:
      description: You are not authorized to perform this action.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ForbiddenError'
    404ModelNotFound:
      description: The model could not be found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ModelNotFound'
    500InternalServerError:
      description: Internal server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InternalServerError-2'
    person_messages:
      description: Successful result of the operation.
      headers:
        Total:
          $ref: '#/components/headers/total-2'
        Per-Page:
          $ref: '#/components/headers/per_page-2'
        Link:
          $ref: '#/components/headers/link-2'
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/person_message_response'
    unauthorized_error:
      description: You are not authorized to perform this action.
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/error-3'
              - type: object
                example:
                  errors:
                    - id: 7aaf4dfb-b7cd-4a50-a1d2-fad0e19624ef
                      status: 403
                      code: unauthorized_action
                      title: Unauthorized Action
                      detail: Unauthorized action is not allowed.
    not_found_error:
      description: An entity in the request URL could not be found.
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/error-3'
              - type: object
                example:
                  errors:
                    - id: 93537ebd-c038-4a56-aa1b-17e540f57c3a
                      status: 404
                      code: model_not_found
                      title: Model Not Found
                      detail: Couldn't find 'XXX' for id.
    person_message:
      description: Successful result of the operation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/person_message_response'
    business_messages:
      description: Successful result of the operation.
      headers:
        Total:
          $ref: '#/components/headers/total-2'
        Per-Page:
          $ref: '#/components/headers/per_page-2'
        Link:
          $ref: '#/components/headers/link-2'
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/business_message_response'
    business_message:
      description: Successful result of the operation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/business_message_response'
